MMRCommon.xjs 254 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. var TX_SUBMIT_COMN_FORM = "TXMMR01301";
  4. var TX_SUBMIT_EXTN_FORM = "TXMMR01303";
  5. //var gPageInfo = new PAGEINFO();
  6. var arrDsMain = ["ds_data_paminfo", "ds_data_validinfo", "ds_data_formmast", "ds_data_formdegn",
  7. "ds_data_unitformmast", "ds_data_unitformdegn", "ds_data_vallist", "ds_data_imgelist",
  8. "ds_data_extnformlist", "ds_data_readonlylist", "ds_data_programdesignformlist",
  9. "ds_data_formrec", "ds_data_recitem", "ds_temp_comnclinclist"];
  10. var arrDsForminfo = ["ds_data_validinfo", "ds_data_formmast", "ds_data_formdegn",
  11. "ds_data_unitformmast", "ds_data_unitformdegn", "ds_data_vallist", "ds_data_imgelist",
  12. "ds_data_extnformlist", "ds_data_readonlylist", "ds_data_programdesignformlist"];
  13. var arrDsTempFrominfo = ["ds_temp_validinfo", "ds_temp_formmast", "ds_temp_formdegn",
  14. "ds_temp_unitformmast", "ds_temp_unitformdegn", "ds_temp_vallist", "ds_temp_imgelist",
  15. "ds_temp_extnformlist", "ds_temp_readonlylist", "ds_temp_programdesignformlist" ];
  16. var arrDsRecinfo = ["ds_data_formrec", "ds_data_recitem"];
  17. var arrDsHiddenRecinfo = ["ds_hidden_formrec", "ds_hidden_recitem"];
  18. var arrDsTempRecinfo = ["ds_temp_formrec", "ds_temp_recitem"];
  19. // 추가 확인 필요한 부분
  20. var arrDsExtnRecinfo = ["ds_hidden_extnformrec_recitem", "ds_hidden_extnformrec_formrec"]
  21. var arrDsTempEtcinfo = ["ds_temp_imgerec_recitem", "ds_temp_fmyrec_recitem", "ds_temp_etcrec_recitem", "ds_temp_lastdiag_recitem"];
  22. // ds_data_paminfo
  23. // comnclinclist
  24. // ds_temp_comnclinclist
  25. /**
  26. * @desc : page info 설정
  27. * @id :
  28. * @event :
  29. * @return :
  30. * @authur : 이상현
  31. */
  32. function PAGEINFO(viewerobj)
  33. {
  34. // if(viewerobj == null){
  35. // if( frmf_getCurrentFormKind() == "main" ){
  36. // viewerobj = frmf_getMainViewer();
  37. // }else{
  38. // viewerobj = getOwnerFrame().form;
  39. // }
  40. // }
  41. this.paperwidth = 680;
  42. this.paperheight = 1000;
  43. // this.pagewidth = viewerobj.position.width;
  44. // this.pageheight = viewerobj.position.height;
  45. this.rowheight = 20;
  46. this.curxpos = 20;
  47. this.curypos = 10;
  48. this.ctrlwidth = 100;
  49. this.ctrlheight = 20;
  50. this.offsetx = 5;
  51. this.offsety = 5;
  52. this.fontengwidth = 8;
  53. this.fonthngwidth = 12;
  54. this.indentwidth = 15;
  55. this.leftmargin = 10;
  56. // this.forminfoRef = "ds_main_forminfo";
  57. // this.formmastRef = "ds_main_forminfo_formmast"; //this.formmastRef = "/root/main/forminfo/formmast";
  58. // this.formdegnRef = "ds_main_forminfo_formdegn";
  59. // this.vallistRef = "ds_main_forminfo_vallist";
  60. // this.imgelistRef = "ds_main_forminfo_imgelist";
  61. // this.recRef = "ds_main_recinfo";
  62. // this.recRef2 = "ds_hidden_recinfo";
  63. // this.initrecRef = "ds_temp_recinfo";
  64. // this.extnrecRef = "ds_hidden_extnformrec_recinfo";
  65. // this.recMastRef = "ds_main_recinfo_formrec";
  66. // this.recItemRef = "ds_main_recinfo_recitem";
  67. // this.recItemRef2 = "ds_hidden_recinfo_recitem";
  68. // this.initrecItemRef = "ds_temp_recinfo_recitem";
  69. // this.extnrecItemRef = "ds_hidden_extnformrec_recinfo_recitem";
  70. // this.savedInfoRef = "ds_main_savedinfo_";
  71. // this.savedInfoRef2 = "ds_hidden_savedinfo";
  72. // this.savedInfoItemRef2 = "ds_hidden_savedinfo_recitem";
  73. // this.grdNodeset = "ds_main_recinfo_recitem";
  74. // this.grdCapRef = "ds_main_forminfo_GrdList";
  75. // this.imgerecItemRef = "ds_temp_imgerec_recinfo_recitem";
  76. // //가계도 처리를 위하여 추가(2008-09-25) 박종훈
  77. // this.fmyrecItemRef = "ds_temp_fmyrec_recinfo";
  78. // //추가기록 처리를 위하여 추가(2008-09-25) 박종훈
  79. // this.etcrecItemRef = "ds_temp_etcrec_recinfo";
  80. // //누적데이터 조회를 위하여 추가(2008-09-30) 박종훈
  81. // this.acmlrecItemRef = "ds_acmltmp_recinfo_recitem";
  82. // this.sortItemRef = "ds_temp_sort_recinfo_recitem";
  83. // this.popForminfoRef = "ds_temp_pop_forminfo";
  84. // this.popRecinfoRef = "ds_temp2_getrecinfo_recinfo";
  85. // this.RecinfoGridRef = "ds_main_recinfo_grid";
  86. // this.initRecinfoGridRef = "ds_temp_recinfo_grid";
  87. // this.RecinfoGridrecItemRef = "ds_main_recinfo_grid_recitem";
  88. // this.initRecinfoGridrecItemRef = "ds_temp_recinfo_grid_recitem";
  89. //
  90. // // this.xsltRecinfoRecitemRef = "/recinfo/recitem";
  91. // // this.xsltRecinfoGridRef = "/recinfo/grid";
  92. //
  93. // //20080818 박종훈 추가(특수서식 로딩관련)
  94. // this.initforminfoRef = "ds_temp_forminfo";
  95. // this.initformmastRef = "ds_temp_forminfo_formmast";
  96. //
  97. // //2010-03-31 오전 9:33:12 강지훈 추가(최종진단명)
  98. // this.lastdiagItemRef = "ds_temp_lastdiag_recinfo";
  99. this.formCd = "";
  100. this.srcFormCd = "";
  101. this.formDegnSeq = "";
  102. this.degnItemNo = "";
  103. this.degnItemCd = "";
  104. this.degnItemLevlCd = "";
  105. this.fstLevlItemCd = "";
  106. this.degnitemkind = "";
  107. this.degnitemlevlno = "";
  108. this.degnitemnm = "";
  109. this.rectermnm = "";
  110. this.comuseyn = "";
  111. this.fontFamily = "돋움, Arial";
  112. this.fontSize = 11;
  113. this.align = "";
  114. this.valign = "";
  115. }
  116. function ITEMVAL()
  117. {
  118. this.rectermcd = "";
  119. this.rectermnm = "";
  120. this.reccnts = "";
  121. this.recimge = "";
  122. }
  123. function PARAM(name, value)
  124. {
  125. this.name = name;
  126. this.value = value;
  127. }
  128. /**
  129. * @desc : 기록정보 변수 초기화
  130. * @id :
  131. * @event : xforms-ready
  132. * @return : void
  133. * @authur : 박종훈
  134. */
  135. function SAVED_INFO()
  136. {
  137. this.formrecseq = 0;
  138. this.rechistseq = 0;
  139. }
  140. /**
  141. * @desc : 환자정보 변수 초기화
  142. * @id :
  143. * @event : xforms-ready
  144. * @return : void
  145. * @authur : 박종훈
  146. */
  147. function COMN_CONT_RECCNTS()
  148. {
  149. this.pid = "";
  150. this.recfromdt = "";
  151. this.rectodt = "";
  152. this.formrecdeptcd = "";
  153. this.chosflag = "";
  154. this.formrecseq = "";
  155. this.formcd = "-";
  156. }
  157. /**
  158. * @desc : 기록항목 변수 초기화
  159. * @id :
  160. * @event : xforms-ready
  161. * @return : void
  162. * @authur : 박종훈
  163. */
  164. function RECITEM_INFO()
  165. {
  166. this.pid = "";
  167. this.degnitemkind = "";
  168. this.degnitemcd = "";
  169. this.degnitemlevlcd = "";
  170. this.rectermcd = "";
  171. this.recitemcd = "";
  172. this.reccnts = "";
  173. }
  174. /**
  175. * @group :
  176. * @ver : 2008.06.13
  177. * @by : snoweye
  178. * @---------------------------------------------------
  179. * @type : struct
  180. * @access : public
  181. * @desc : 부모 화면으로 onloadcomplete 이벤트를 dispatch
  182. * @param : formcd - 현재 로딩이 완료된 서식코드
  183. * @param : curformtype - 로딩이 완료된 서식의 종류 (COMN_FORM/UNIT_FORM/GENL_FORM)
  184. * @return :
  185. * @---------------------------------------------------
  186. */
  187. /*
  188. function FORM_LOAD_STATUS()
  189. {
  190. this.curformcd = "";
  191. this.curformtype = "";
  192. this.loadlist = new ActiveXObject("Scripting.Dictionary");
  193. }
  194. */
  195. /**
  196. * @group :
  197. * @ver : 2008.06.13
  198. * @by : snoweye
  199. * @---------------------------------------------------
  200. * @type : function
  201. * @access : private
  202. * @desc : 서식 로딩상태를 세팅
  203. * @param : obj - loadstatus를 세팅할 객체
  204. * @param : formcd - 현재 로딩이 완료된 서식코드
  205. * @param : curformtype - 로딩이 완료된 서식의 종류 (COMN_FORM/UNIT_FORM/GENL_FORM)
  206. * @return :
  207. * @---------------------------------------------------
  208. */
  209. function setLoadStatus(obj, curformcd, curformtype)
  210. {
  211. loadstatus = obj.window.javascript.gFormLoadStatus;
  212. loadstatus.curformcd = curformcd;
  213. loadstatus.curformtype = curformtype;
  214. //loadstatus.loadlist.add(curformcd, LOAD_COMPLETE);
  215. }
  216. /**
  217. * @desc : 초진, 재진기록지 여부
  218. * @id :
  219. * @event : xforms-ready
  220. * @return : void
  221. * @authur : 박종훈
  222. */
  223. function IsComnMediForm(srcformcd)
  224. {
  225. var flag = false;
  226. switch (srcformcd)
  227. {
  228. case "0000000001" :
  229. case "0000000002" :
  230. case "0000000003" :
  231. case "0000000004" :
  232. flag = true;
  233. break;
  234. }
  235. return flag;
  236. }
  237. /**
  238. * @desc : 기록값 셋팅
  239. * @id :
  240. * @event :
  241. * @return : void
  242. * @authur : 박종훈
  243. */
  244. function SetCommMediFormValue(pItemCds, reciteminfo)
  245. {
  246. var ivwObj;
  247. var flag;
  248. for (var i=0; i<pItemCds.length; i++)
  249. {
  250. ivwObj = document.controls("ivw_" + pItemCds[i]);
  251. //2010.03.09 안치원 - 기록내용에서 부분서식의 Copy가 안되는 오류 수정
  252. //if (ivwObj != null && ivwObj.attribute("ctrluseyn") == "Y")
  253. if (ivwObj != null && ivwObj.attribute("unitformcd") != "")
  254. flag = SetMediFormValue(ivwObj.model, reciteminfo);
  255. else
  256. flag = SetMediFormValue(model, reciteminfo);
  257. if (flag) break;
  258. }
  259. return flag;
  260. }
  261. var MMR_REC_INFO = "/root/main/recinfo/recitem";
  262. var MMR_FORM_INFO = "/root/main/forminfo/formdegn";
  263. /**
  264. * @desc : 기록값 셋팅
  265. * @id :
  266. * @event :
  267. * @return : void
  268. * @authur : 박종훈
  269. */
  270. function SetMediFormValue(pModel, reciteminfo)
  271. {
  272. var nodeSet = MMR_REC_INFO;
  273. //2010-05-28 오전 9:299:42 이지운 추가 : MSL -> 부분서식지로 복사할경우 발생하는 오류 수정
  274. if(reciteminfo.degnitemkind == "MSL"){
  275. nodeSet = nodeSet + "[degnitemlevlcd='" +reciteminfo.degnitemlevlcd+ "' and colno='" +reciteminfo.colno+ "']";
  276. }else{
  277. nodeSet = nodeSet + "[degnitemlevlcd='" +reciteminfo.degnitemlevlcd+ "']";
  278. }
  279. var xPathFunction = "count(" + nodeSet + ")";
  280. var cnt = pModel.getXPathValue(xPathFunction);
  281. if (cnt == 1)
  282. {
  283. //2009-10-07 오후 7:59:42 강지훈 추가 : MTX -> 부분서식지로 복사할경우 발생하는 오류 수정
  284. var nodeCnt
  285. if(reciteminfo.degnitemkind == "MTX"){
  286. var otherNodeSet = MMR_FORM_INFO + "[degnitemkind != 'MTX' and contains(degnitemlevlcd, '" + reciteminfo.degnitemlevlcd + ".')]";
  287. nodeCnt = pModel.getXPathValue("count(" + otherNodeSet + ")");
  288. }
  289. else{
  290. nodeCnt = 0;
  291. }
  292. var degnitemno = pModel.getXPathValue(nodeSet+"/degnitemno");
  293. var degncntrviewflag = pModel.getXPathValue(MMR_FORM_INFO + "[degnitemno='" +degnitemno+ "']/degncntrviewflag");
  294. if (degncntrviewflag != "L" && nodeCnt == 0)
  295. {
  296. pModel.setValue(nodeSet+"/rectermcd", reciteminfo.rectermcd);
  297. if (reciteminfo.rectermcd != "")
  298. {
  299. pModel.setValue(nodeSet+"/rectermnm", reciteminfo.rectermnm);
  300. if(reciteminfo.degnitemkind == "MSL" && reciteminfo.reccnts != ""){
  301. pModel.setValue(nodeSet+"/reccnts", reciteminfo.reccnts);
  302. }
  303. }
  304. else
  305. {
  306. pModel.setValue(nodeSet+"/reccnts", reciteminfo.reccnts);
  307. }
  308. pModel.refresh();
  309. }
  310. return true;
  311. }
  312. else
  313. {
  314. return false;
  315. }
  316. }
  317. /**
  318. * @desc : 기록값 Clear
  319. * @id :
  320. * @event :
  321. * @return : void
  322. * @authur : 박종훈
  323. */
  324. function ClearComnFormData(itemCds)
  325. {
  326. sysf_trace_emr("***** ClearComnFormData("+itemCds+") MMRCommon *****");
  327. var ctrlIvw;
  328. for (var i = 0; i < itemCds.length; i++)
  329. {
  330. ctrlIvw = this.components["ivw_" + itemCds[i]];
  331. sysf_trace_emr("@@@@@ ctrlIvw.url : " + ctrlIvw.url + " MMRCommon @@@@@");
  332. if (!utlf_isNull(ctrlIvw) && ctrlIvw.visible && !utlf_isNull(ctrlIvw.url)){
  333. ctrlIvw.lf_clearData();
  334. }
  335. }
  336. var pageInfo = new PAGEINFO();
  337. dsf_clearDsList(["ds_hidden_extnformrec_recitem"], this);
  338. dsf_clearDsList(arrDsTempEtcinfo, this);
  339. //2010-03-31 오전 10:08:49 강지훈추가 : 최종진단명 요약 추가
  340. dsf_clearDsList(arrDsHiddenRecinfo);
  341. dsf_copyDsList(arrDsRecinfo, arrDsTempRecinfo, "replace", this, this);
  342. frmf_clearAllParameter();
  343. // model.removeNodeset("/root/properties/parameters");
  344. // model.makeNode("/root/properties/parameters");
  345. }
  346. /**
  347. * @desc : 이미지 편집화면 Open
  348. * @id :
  349. * @event :
  350. * @return : void
  351. * @authur : 박종훈
  352. */
  353. function OpenUnitFormImge(obj:Button, e:ClickEventInfo)
  354. {
  355. //fstlevlitemcd, ivwid
  356. var ctrlID = obj.name;
  357. var fstlevlitemcd = ctrlID.replace("btn_imge_", "");
  358. var ivwid = "ivw_" + fstlevlitemcd;
  359. var pageInfo = new PAGEINFO();
  360. var formdegnRefDs = this.objects["ds_data_formdegn"];
  361. var fidx = formdegnRefDs.findRow("degnitemcd", fstlevlitemcd);
  362. //var node = model.instances(0).selectSingleNode(pageInfo.formdegnRef + "[degnitemcd = '"+fstlevlitemcd+"']");
  363. frmf_setParameter("openmode", "MediRec");
  364. frmf_setParameter("formcd", parent.fGetFormMast("formcd"));
  365. frmf_setParameter("formdegnseq", parent.fGetFormMast("formdegnseq"));
  366. frmf_setParameter("fstlevlitemcd", fstlevlitemcd);
  367. frmf_setParameter("degnitemlevlcd", formdegnRefDs.getColumn(fidx, "degnitemlevlcd"));
  368. frmf_setParameter("degnitemlevlno", formdegnRefDs.getColumn(fidx, "degnitemlevlno"));
  369. frmf_setParameter("ivwid", ivwid);
  370. //부분서식 로딩
  371. var ctrl = this.components["lbl_" + fstlevlitemcd];
  372. if (!utlf_isNull(ctrl))
  373. {
  374. loadClickSection(fstlevlitemcd);
  375. }
  376. //var retVal = modalUrl("../../../emr/medirecweb/xrw/SMMMR03600_이미지편집.xrw",1,100,100,"이미지편집");
  377. var retVal = frmf_modal("SMMMR03600", "SMMMR03600", null, null, 1, 100, 100, null, null, null, null, null, "M");
  378. /**
  379. * @desc : 공통서식내의 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시한다.
  380. * @history : 2009.09.09 신규 안치원 ACW_090909A
  381. */
  382. try {
  383. setButtonToggleByRecYn(null, obj.name);
  384. } catch (e) {
  385. sysf_catchTrace(e);
  386. }
  387. return retVal;
  388. }
  389. /**
  390. * @desc : 가계도 편집화면 Open
  391. * @id :
  392. * @event :
  393. * @return : void
  394. * @authur : 박종훈
  395. */
  396. function OpenUnitFormFmy(obj:Button, e:ClickEventInfo)
  397. {
  398. sysf_trace_emr("***** OpenUnitFormFmy MMRCommon *****");
  399. var ctrlID = obj.name;
  400. fstlevlitemcd = ctrlID.replace("btn_fmy_", "");
  401. //부분서식 로딩
  402. var ctrl = this.components["lbl_" + fstlevlitemcd];
  403. if (ctrl != null)
  404. {
  405. loadClickSection(fstlevlitemcd);
  406. }
  407. openFamilyDiagram(fstlevlitemcd);
  408. /**
  409. * @desc : 공통서식내의 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시한다.
  410. * @history : 2009.09.09 신규 안치원 ACW_090909A
  411. */
  412. try {
  413. setButtonToggleByRecYn(null, obj.name);
  414. } catch (e) {
  415. sysf_catchTrace(e);
  416. }
  417. }
  418. /**
  419. * @desc : 서식 기록 항목 초기화
  420. * @id :
  421. * @event :
  422. * @return : void
  423. * @authur : 박종훈
  424. */
  425. function InitUnitFormData(itemCds)
  426. {
  427. sysf_trace_emr("***** InitUnitFormData("+itemCds+") 서식기록항목초기화 MMRCommon *****");
  428. var ctrlIvw;
  429. var pageInfo = new PAGEINFO();
  430. var expr = "degnitemkind == 'FRM' && itemuseflag == 'F0'";
  431. //var frmlist = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind = 'FRM' and itemuseflag='F0']");
  432. var formdegnRefDs = this.objects["ds_data_formdegn"];
  433. var formdegnRefDsCnt = 0;
  434. if( formdegnRefDs != null ){
  435. dsf_createDs("tmp_formdegnRefDs");
  436. formdegnRefDs.filter(expr);
  437. tmp_formdegnRefDs.copyData(formdegnRefDs, true);
  438. formdegnRefDsCnt = tmp_formdegnRefDs.rowcount;
  439. formdegnRefDs.filter("");
  440. }
  441. for (var i = 0; i < formdegnRefDsCnt; i++)
  442. {
  443. var degnitemcd = tmp_formdegnRefDs.getColumn(i, "degnitemcd");
  444. var supdegnitemcd = tmp_formdegnRefDs.getColumn(i, "supdegnitemcd");
  445. var degnitemlevlcd = tmp_formdegnRefDs.getColumn(i, "degnitemlevlcd");
  446. sysf_trace_emr("degnitemcd : " + degnitemcd + " | supdegnitemcd : " + supdegnitemcd + " | degnitemlevlcd : " + degnitemlevlcd );
  447. ctrlIvw = this.components["ivw_" + supdegnitemcd];
  448. if (!utlf_isNull(ctrlIvw) && ctrlIvw.visible && !utlf_isNull(ctrlIvw.url))
  449. {
  450. ctrlIvw.lf_clearData();
  451. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  452. var fstlevlitemcd = formdegnRefDs.lookup("degnitemlevlcd", fstlevlitembasecd, "degnitemcd");
  453. var recItemRef2Ds = this.objects["ds_hidden_recitem"];
  454. sysf_trace_emr("fstlevlitemcd : " + fstlevlitemcd + " || formcd : " + degnitemcd );
  455. //sysf_trace_emr(recItemRef2Ds.saveXML());
  456. recItemRef2Ds.filter("fstlevlitemcd=='" +fstlevlitemcd+ "' && formcd == '" + degnitemcd + "'");
  457. //lf_setSrchData2(ctrlIvw);
  458. lf_setItemValueDS(ctrlIvw, "PRE");
  459. recItemRef2Ds.filter("");
  460. //setSrchData(pageInfo.recItemRef2 + "[fstlevlitemcd='" +fstlevlitemcd+ "' and formcd = '" + degnitemcd + "']", ctrlIvw);
  461. ctrlIvw.fFormReload();
  462. }
  463. }
  464. if( formdegnRefDs != null ){
  465. dsf_deleteDs("tmp_formdegnRefDs");
  466. }
  467. dsf_clearDsList(["ds_hidden_extnformrec_recitem"]);//pageInfo.extnrecItemRef
  468. var cnt = ds_data_extnformlist.rowcount;
  469. for (var i = 0; i < cnt; i++)
  470. {
  471. //가계도는 확장서식에 붙으면 안되는 문제로 수정(박종훈/2008-09-29)
  472. var fstlevlitemcd = ds_data_extnformlist.getColumn(i, "supdegnitemcd");
  473. var formcd = ds_data_extnformlist.getColumn(i, "formcd");
  474. var filterStr = "degnitemkind != 'FDG' && fstlevlitemcd=='" +fstlevlitemcd+ "' && formcd == '" + formcd + "'";
  475. ds_hidden_recitem.filter(filterStr);
  476. dsf_copyDsList(["ds_hidden_extnformrec_recitem"], ["ds_hidden_recitem"], "append", this, this);
  477. ds_hidden_recitem.applyChange();
  478. ds_hidden_recitem.deleteAll();
  479. ds_hidden_recitem.applyChange();
  480. ds_hidden_recitem.filter("");
  481. }
  482. ds_hidden_recitem.filter("degnitemkind=='IMG' && !utlf_isNull(rowno)");
  483. dsf_copyDsList(["ds_temp_imgerec_recitem"], ["ds_hidden_recitem"], "replace", this, this);
  484. ds_hidden_recitem.filter("degnitemkind=='FDG'");
  485. dsf_copyDsList(["ds_temp_fmyrec_recitem"], ["ds_hidden_recitem"], "replace", this, this);
  486. ds_hidden_recitem.filter("degnitemno=='0'");
  487. dsf_copyDsList(["ds_temp_etcrec_recitem"], ["ds_hidden_recitem"], "replace", this, this);
  488. ds_hidden_recitem.filter("formcd == '1000007943'");
  489. dsf_copyDsList(["ds_temp_lastdiag_recitem"], ["ds_hidden_recitem"], "replace", this, this); //2010-03-31 오전 10:09:29 강지훈 추가 : 최종진단명 요약지 추가
  490. ds_hidden_recitem.filter("");
  491. }
  492. /**
  493. * @desc : 서식 기록 이미지 초기화
  494. * @id :
  495. * @event :
  496. * @return : void
  497. * @authur : 박종훈
  498. */
  499. function InitUnitFormImgeData(itemCds)
  500. {
  501. var ctrlIvw;
  502. var imgelist;
  503. var node;
  504. var pageInfo = new PAGEINFO();
  505. for (var i = 0; i < itemCds.length; i++)
  506. {
  507. ctrlIvw = document.controls("ivw_" + itemCds[i]);
  508. imgelist = ctrlIvw.model.instances(0).selectNodes(pageInfo.recItemRef+"[degnitemkind='IMG']");
  509. if (imgelist.length > 0)
  510. {
  511. copyNodeset(pageInfo.imgerecItemRef, pageInfo.recItemRef + "[degnitemkind='IMG']", "replace", model, ctrlIvw.model);
  512. for (var j = 0; j < imgelist.length; j++)
  513. {
  514. node = model.instances(0).selectSingleNode(pageInfo.imgelistRef + "[imgecd='"+ imgelist.item(j).getXPathString("degnitemcd") +"']/imgedata");
  515. if (node != null)
  516. {
  517. }
  518. }
  519. }
  520. }
  521. copyNodeset(pageInfo.imgerecItemRef, pageInfo.recItemRef2 + "[degnitemkind='IMG']", "replace", model, model);
  522. }
  523. /**
  524. * @desc : 프로그램 서식 데이터 초기화
  525. * @id :
  526. * @event :
  527. * @return : void
  528. * @authur : 박종훈
  529. */
  530. function InitPgmFormData()
  531. {
  532. sysf_trace_emr("***** InitPgmFormData() 프로그램서식 데이터 초기화 MMRCommon *****");
  533. sysf_trace_emr("jw.choe lf_setSrchData -> lf_setItemValueDs 로 변경");
  534. lf_setItemValueDS(this, "PRE");
  535. //lf_setSrchData2(this);
  536. }
  537. /**
  538. * @desc : 서식항목 기본 사이즈
  539. * @id :
  540. * @event :
  541. * @return : void
  542. * @authur : 박종훈
  543. */
  544. function SetUnitFormOrgSize(pItemCds, iheig, oheig) //20100316
  545. {
  546. var grupObj;
  547. var ctrlIvw;
  548. for (var i = 0; i < pItemCds.length; i++)
  549. {
  550. grupObj = document.controls("grup_" + pItemCds[i]);
  551. ctrlIvw = document.controls("ivw_" + pItemCds[i]);
  552. if (grupObj.attribute("orgheight") == "" || grupObj.attribute("orgheight") == null)
  553. {
  554. grupObj.attribute("orgheight") = oheig;
  555. ctrlIvw.attribute("orgheight") = iheig;
  556. }
  557. else
  558. {
  559. if (iheig == null || iheig == "")
  560. {
  561. grupObj.attribute("height") = grupObj.attribute("orgheight");
  562. ctrlIvw.attribute("height") = ctrlIvw.attribute("orgheight");
  563. }
  564. else
  565. {
  566. grupObj.attribute("height") = oheig;
  567. ctrlIvw.attribute("height") = iheig;
  568. }
  569. SetMultiTextFull(ctrlIvw, 1);
  570. }
  571. var extngrupObj = document.controls("grup_extn" + pItemCds[i]);
  572. if (extngrupObj == null)
  573. continue;
  574. grupObj.attribute("visibility") = "visible";
  575. extngrupObj.attribute("visibility") = "visible";
  576. }
  577. }
  578. /**
  579. * @desc : 서식항목 기본 사이즈
  580. * @id :
  581. * @event :
  582. * @return : void
  583. * @authur : 박종훈
  584. */
  585. function SetUnitFormOrgSizeCnst(pItemCds, iheigArr, oheigArr)
  586. {
  587. var grupObj;
  588. var ctrlIvw;
  589. for (var i = 0; i < pItemCds.length; i++)
  590. {
  591. grupObj = document.controls("grup_" + pItemCds[i]);
  592. ctrlIvw = document.controls("ivw_" + pItemCds[i]);
  593. if (grupObj.attribute("orgheight") == "" || grupObj.attribute("orgheight") == null)
  594. {
  595. grupObj.attribute("orgheight") = oheigArr[i];
  596. ctrlIvw.attribute("orgheight") = iheigArr[i];
  597. }
  598. else
  599. {
  600. if (iheigArr == null || iheigArr == "")
  601. {
  602. grupObj.attribute("height") = grupObj.attribute("orgheight");
  603. ctrlIvw.attribute("height") = ctrlIvw.attribute("orgheight");
  604. }
  605. else
  606. {
  607. grupObj.attribute("height") = oheigArr[i];
  608. ctrlIvw.attribute("height") = iheigArr[i];
  609. }
  610. SetMultiTextFull(ctrlIvw, 1);
  611. }
  612. var extngrupObj = document.controls("grup_extn" + pItemCds[i]);
  613. if (extngrupObj == null)
  614. continue;
  615. grupObj.attribute("visibility") = "visible";
  616. extngrupObj.attribute("visibility") = "visible";
  617. }
  618. }
  619. /**
  620. * @desc : 서식항목 최대 사이즈
  621. * @id :
  622. * @event :
  623. * @return : void
  624. * @authur : 박종훈
  625. */
  626. function SetUnitFormFullSize(pItemCd, pIdx, pItemCds, pPageIdx, pGrupBase)
  627. {
  628. var grupObj;
  629. var toppos = 0;
  630. //for (var i = 0; i < pPageIdx.length; i++)
  631. for (var i = 0; i < pItemCds.length; i++)
  632. {
  633. grupObj = document.controls("grup_" + pItemCds[i]);
  634. extngrupObj = document.controls("grup_extn" + pItemCds[i]);
  635. if(grupObj == null)
  636. continue;
  637. grupObj.attribute("sizeFlag") = "full";
  638. if (pPageIdx[i] == pIdx)
  639. {
  640. if (pItemCds[i] == pItemCd)
  641. {
  642. grupObj.attribute("top") = 0;
  643. grupObj.attribute("orgheight") = grupObj.attribute("height");
  644. grupObj.attribute("height") = pGrupBase.attribute("height");
  645. var grupbase_hei = parseInt(pGrupBase.attribute("height"));
  646. var ctrlIvw = document.controls("ivw_" + pItemCds[i]);
  647. ctrlIvw.attribute("orgheight") = ctrlIvw.attribute("height");
  648. ctrlIvw.attribute("height") = parseInt(pGrupBase.attribute("height")) - parseInt(ctrlIvw.attribute("top"));
  649. //grupObj.attribute("visibility") = "visible";
  650. //extngrupObj.attribute("visibility") = "visible";
  651. SetMultiTextFull(ctrlIvw, 1);
  652. }
  653. else
  654. {
  655. grupObj.attribute("visibility") = "hidden";
  656. extngrupObj.attribute("visibility") = "hidden";
  657. }
  658. }
  659. else
  660. {
  661. grupObj.attribute("visibility") = "hidden";
  662. extngrupObj.attribute("visibility") = "hidden";
  663. }
  664. }
  665. }
  666. /**
  667. * @desc : 서식항목 visible hidden
  668. * @id :
  669. * @event :
  670. * @return : void
  671. * @authur : 박종훈
  672. */
  673. function InitUnitFormLayer(itemCds, pageIdx, pageCnt, grup)
  674. {
  675. SetUserTimeLog("InitUnitFormLayer", "START");
  676. var pageInfo = new PAGEINFO();
  677. var i = 0;
  678. var pagePerSecCnt = new Array(pageCnt);
  679. for (i = 0; i < pagePerSecCnt.length; i++)
  680. {
  681. pagePerSecCnt[i] = 0;
  682. }
  683. var ctrlGrup;
  684. var existCtrl;
  685. // 안보이게 하기
  686. for (i = 0; i < itemCds.length; i++)
  687. {
  688. ctrlGrup = document.controls("grup_" + itemCds[i]);
  689. existCtrl = model.getValue(pageInfo.formdegnRef + "[degnitemcd='" + itemCds[i] + "']/degnitemcd");
  690. if (existCtrl == "")
  691. {
  692. ctrlGrup.visible = false;
  693. }
  694. else
  695. {
  696. ctrlGrup.visible = true;
  697. pagePerSecCnt[pageIdx[i]]++;
  698. }
  699. }
  700. // 보이는거 분할하기 위한 높이 구하기
  701. var pagePerTopPt = new Array(0 ,0, 0);
  702. var swtHei = parseInt(grup.attribute("height")) - 1;
  703. for (i = 0; i < pagePerSecCnt.length; i++)
  704. {
  705. if (pagePerSecCnt[i] == 1)
  706. {
  707. pagePerTopPt[i] = swtHei;
  708. }
  709. else
  710. {
  711. pagePerTopPt[i] = parseInt(swtHei / pagePerSecCnt[i]);
  712. }
  713. }
  714. // 보이는거 분할하기
  715. var topPt = 0;
  716. var prePageIdx = -1;
  717. var ctrlLbl;
  718. var ctrlExtn;
  719. var ctrlIvw;
  720. var ctrlCbo;
  721. var swtWid = parseInt(grup.attribute("width"));
  722. var grupHei;
  723. var toppos = 0;
  724. var grupextnHei = 0;
  725. for (i = 0; i < itemCds.length; i++)
  726. {
  727. ctrlGrup = document.controls("grup_" + itemCds[i]);
  728. if (ctrlGrup.visible)
  729. {
  730. // 보이는거 위치잡기
  731. grupHei = pagePerTopPt[pageIdx[i]];
  732. if (prePageIdx != pageIdx[i])
  733. topPt = 0;
  734. else
  735. topPt += grupHei;
  736. prePageIdx = pageIdx[i];
  737. ctrlGrup.attribute("left") = 0;
  738. // 보이는거 크기 조정
  739. ctrlLbl = document.controls("lbl_" + itemCds[i]);
  740. ctrlExtn= document.controls("grup_extn" + itemCds[i]);
  741. ctrlIvw = document.controls("ivw_" + itemCds[i]);
  742. ctrlCbo = document.controls("cbo_" + itemCds[i]);
  743. toppos = parseInt(ctrlLbl.attribute("height"));
  744. ctrlIvw.attribute("border-style") = "none";
  745. if (ctrlGrup.attribute("degnflag") != "fix")
  746. {
  747. ctrlGrup.attribute("top") = topPt;
  748. ctrlGrup.attribute("width") = swtWid - 2;
  749. ctrlGrup.attribute("height") = grupHei - 1;
  750. }
  751. if (ctrlExtn != null)
  752. {
  753. grupextnHei = parseInt(ctrlExtn.attribute("height"));
  754. ctrlExtn.attribute("left") = 0;
  755. ctrlExtn.attribute("top") = ctrlLbl.attribute("height");
  756. ctrlExtn.attribute("width") = ctrlGrup.attribute("width");
  757. ctrlExtn.attribute("orgheight") = ctrlExtn.attribute("height");
  758. ctrlExtn.attribute("border-style") = "none";
  759. ctrlExtn.attribute("overflow") = "visible";
  760. }
  761. else
  762. {
  763. grupextnHei = 0;
  764. }
  765. ctrlGrup.attribute("orgwidth") = ctrlGrup.attribute("width");
  766. ctrlGrup.attribute("orgheight") = ctrlGrup.attribute("height");
  767. ctrlLbl.attribute("top") = 0;
  768. // ctrlIvw.attribute("top") = ctrlLbl.attribute("height");
  769. ctrlIvw.attribute("top") = toppos + grupextnHei;
  770. ctrlIvw.attribute("height") = parseInt(ctrlGrup.attribute("height")) - parseInt(ctrlIvw.attribute("top")) - 1;
  771. ctrlIvw.attribute("orgheight") = ctrlIvw.attribute("height");
  772. ctrlLbl.attribute("left") = 0;
  773. ctrlIvw.attribute("left") = 0;
  774. //ctrlCbo.attribute("left") = parseInt(ctrlGrup.attribute("width")) - parseInt(ctrlCbo.attribute("width")) - 2;
  775. ctrlGrup.attribute("orgtop") = ctrlGrup.attribute("top");
  776. ctrlGrup.attribute("orgleft") = ctrlGrup.attribute("left");
  777. ctrlLbl.attribute("width") = ctrlGrup.attribute("width");
  778. ctrlIvw.attribute("width") = ctrlGrup.attribute("width");
  779. ctrlGrup.attribute("overflow") = "visible";
  780. }
  781. }
  782. var ctrlTar;
  783. for (i = 0; i < itemCds.length; i++)
  784. {
  785. ctrlIvw = document.controls("ivw_" + itemCds[i]);
  786. ctrlTar = document.controls("tar_" + itemCds[i]);
  787. if (ctrlTar != null)
  788. {
  789. ctrlTar.attribute("top") = ctrlIvw.attribute("top");
  790. ctrlTar.attribute("left") = ctrlIvw.attribute("left");
  791. ctrlTar.attribute("width") = ctrlIvw.attribute("width");
  792. ctrlTar.attribute("height") = ctrlIvw.attribute("height");
  793. ctrlTar.attribute("orgtop") = ctrlIvw.attribute("orgtop");
  794. ctrlTar.attribute("orgheight") = ctrlIvw.attribute("orgheight");
  795. }
  796. }
  797. model.refresh();
  798. SetUserTimeLog("InitUnitFormLayer", "END");
  799. }
  800. /**
  801. * @desc : 서식항목 초기화
  802. * @id :
  803. * @event :
  804. * @return : void
  805. * @authur : 박종훈
  806. */
  807. function InitUnitForm(itemCds, pageIdx, pageCnt, grup)
  808. {
  809. InitUnitFormLayer(itemCds, pageIdx, pageCnt, grup);
  810. InitSetUnitForm(itemCds, true);
  811. }
  812. var gLoadUnitFormCnt = 0;
  813. var gLoadedUnitFormCnt = 0;
  814. /**
  815. * @desc : 자유입력 Textarea(부분서식 대체)
  816. * @id :
  817. * @event :
  818. * @return : void
  819. * @authur : 박종훈
  820. */
  821. function InitLoadSection(itemCds)
  822. {
  823. var pageInfo = new PAGEINFO();
  824. for (var i = 0; i < itemCds.length; i++)
  825. {
  826. var cnt = getNodesetCnt(model, pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemCds[i]+"']");
  827. var ivwObj = document.controls("ivw_" + itemCds[i]);
  828. var tarObj = document.controls("tar_" + itemCds[i]);
  829. //alert(itemCds[i]+", "+model.getValue(pageInfo.forminfoRef + "/unitformmast/orgsupdegnitemcd"));
  830. if (cnt == 0)
  831. {
  832. //alert(itemCds[i]+", true");
  833. ivwObj.visible = false;
  834. tarObj.visible = true;
  835. //ivwObj.attribute("ctrluseyn") = "N";
  836. //tarObj.attribute("ctrluseyn") = "Y";
  837. }
  838. else
  839. {
  840. //alert(itemCds[i]+", false");
  841. ivwObj.visible = true;
  842. tarObj.visible = false;
  843. //ivwObj.attribute("ctrluseyn") = "Y";
  844. //tarObj.attribute("ctrluseyn") = "N";
  845. }
  846. if (tarObj.visible == true)
  847. {
  848. setComnEvent(parent.window.javascript.fGetFormMast("srcformcd"), tarObj.attribute("degnitemno"), tarObj.attribute("id"));
  849. }
  850. var cboObj = document.controls("cbo_" + gItemCds[i]);
  851. if (cboObj != null)
  852. SetUnitFormList(cboObj, gItemCds[i])
  853. }
  854. InitSetUnitForm(itemCds, true);
  855. makeRefByDegnitemno();
  856. }
  857. /*
  858. * @desc : 부분서식 Load
  859. * @id :
  860. * @event :
  861. * @return : void
  862. * @authur : 박종훈
  863. */
  864. function InitSetUnitForm(itemCds, pDraw)
  865. {
  866. SetUserTimeLog("InitSetUnitForm", "START");
  867. var pageInfo = new PAGEINFO();
  868. var ctrlIvw;
  869. gLoadUnitFormCnt = itemCds.length;
  870. gLoadedUnitFormCnt = 0;
  871. for (var i = 0; i < itemCds.length; i++)
  872. {
  873. //try
  874. //{
  875. var unitformcd = model.getValue(pageInfo.formdegnRef + "[supdegnitemcd='" + itemCds[i] +
  876. "' and degnitemkind = 'FRM' and itemuseflag = 'F0']/degnitemcd");
  877. if (unitformcd != "")
  878. {
  879. ctrlIvw = document.controls("ivw_" + itemCds[i]);
  880. ctrlIvw.attribute("supdegnitemcd") = itemCds[i];
  881. ctrlIvw.attribute("unitformcd") = unitformcd;
  882. SetUnitForm(ctrlIvw, unitformcd, pDraw);
  883. }
  884. ctrlCbo = document.controls("cbo_" + itemCds[i]);
  885. SetUnitFormList(ctrlCbo, itemCds[i]);
  886. //}
  887. //catch (e)
  888. //{
  889. // alert("[ERROR] InitUnitForm : " + itemCds[i]);
  890. // throw e;
  891. //}
  892. }
  893. SetUserTimeLog("InitSetUnitForm", "END");
  894. }
  895. /**
  896. * @desc : 부분서식 Set
  897. * @id :
  898. * @event :
  899. * @return : void
  900. * @authur : 박종훈
  901. */
  902. function SetUnitForm(ivwObj, unitformcd, bDraw)
  903. {
  904. SetUserTimeLog("SetUnitForm", "START - " + unitformcd);
  905. //try
  906. //{
  907. if(bDraw == null)
  908. bDraw = true;
  909. var pageInfo = new PAGEINFO();
  910. var supdegnitemcd = ivwObj.attribute("supdegnitemcd");
  911. if (ivwObj.src == "")
  912. {
  913. ivwObj.src = "../../../emr/formmngtweb/xrw/SSMRF01200.xrw";
  914. }
  915. if (opener.model.getValue("/root/emrtemp/sysformxrwyn") == "Y" &&
  916. model.getValue(pageInfo.forminfoRef + "/unitformmast[formcd='"+unitformcd+"']/formxrwyn") == "Y")
  917. {
  918. if(bDraw)
  919. {
  920. //alert("xrwyesdraw"+ivwObj.attribute("id"));
  921. /*********************/
  922. /* XRW Loading Logic */
  923. /*********************/
  924. /*var formdegnseq = model.getValue(pageInfo.forminfoRef + "/unitformmast[formcd='"+unitformcd+"']/formdegnseq") ;
  925. if (ivwObj.attribute("loaded_formdegnseq") == formdegnseq)
  926. {
  927. ivwObj.window.javascript.clearData();
  928. SetUserTimeLog("SetUnitForm", "clearData END - " + ivwObj.attribute("id"));
  929. // EmrFormReady(ivwObj.attribute("id"));
  930. }
  931. else
  932. {
  933. ivwObj.attribute("loaded_formdegnseq") = formdegnseq;
  934. // ivwObj.window.javascript.fDrawFormByFormDegnSeq(formdegnseq, ivwObj.attribute("id"));
  935. // SetUserTimeLog("SetUnitForm", "fDrawFormByFormDegnSeq END - " + ivwObj.attribute("id"));
  936. ivwObj.src = GetFormXrwSubmitStr(formdegnseq, "", ivwObj.attribute("id"));
  937. SetUserTimeLog("SetUnitForm", "GetFormXrwSubmitStr END");
  938. var pageInfo = new PAGEINFO();
  939. ivwObj.window.javascript.fSetDegnItems(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  940. pageInfo.forminfoRef + "/unitformdegn[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  941. pageInfo.forminfoRef + "/vallist", pageInfo.forminfoRef + "/imgelist", "record", supdegnitemcd, ivwObj);
  942. SetUserTimeLog("SetUnitForm", "fSetDegnItems END");
  943. ivwObj.window.javascript.makeInstance(NewPageInfo(ivwObj, supdegnitemcd));
  944. SetUserTimeLog("SetUnitForm", "makeInstance END");
  945. SetMultiTextFull(ivwObj, 1);
  946. ivwObj.model.refresh();
  947. }*/
  948. /*ivwObj.window.javascript.fPreviewByDegnItems(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  949. "", //디자인정보를 주지 않기로 함.
  950. pageInfo.forminfoRef + "/vallist",
  951. pageInfo.forminfoRef + "/imgelist",
  952. "record",
  953. supdegnitemcd,
  954. ivwObj);
  955. SetUserTimeLog("SetUnitForm", "fPreviewByDegnItems new END");
  956. SetMultiTextFull(ivwObj, 1);
  957. ivwObj.model.refresh();*/
  958. //ivwObj.window.javascript.fDrawFormByFormDegnSeq(model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']/formdegnseq"), ivwObj.attribute("id"));
  959. ivwObj.window.javascript.fLoadFormByFormDegnSeq(model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']/formdegnseq"), ivwObj.attribute("id"));
  960. SetUserTimeLog("SetUnitForm", "fLoadFormByFormDegnSeq END");
  961. SetMultiTextFull(ivwObj, 1);
  962. }
  963. else if(!bDraw)
  964. {
  965. ivwObj.window.javascript.fSetDegnItems(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  966. pageInfo.forminfoRef + "/unitformdegn[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  967. pageInfo.forminfoRef + "/vallist", pageInfo.forminfoRef + "/imgelist", "record", supdegnitemcd, ivwObj);
  968. }
  969. }
  970. else
  971. {
  972. if(bDraw)
  973. {
  974. if (ivwObj.src != "../../../emr/formmngtweb/xrw/SSMRF01200.xrw")
  975. {
  976. ivwObj.src = "../../../emr/formmngtweb/xrw/SSMRF01200.xrw";
  977. SetUserTimeLog("SetUnitForm", "ivwObj.src END");
  978. }
  979. ivwObj.window.javascript.fPreviewByDegnItems(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  980. pageInfo.forminfoRef + "/unitformdegn[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  981. pageInfo.forminfoRef + "/vallist", pageInfo.forminfoRef + "/imgelist", "record", supdegnitemcd, ivwObj);
  982. SetUserTimeLog("SetUnitForm", "fPreviewByDegnItems END");
  983. SetMultiTextFull(ivwObj, 1);
  984. ivwObj.model.refresh();
  985. }
  986. else if(!bDraw)
  987. {
  988. ivwObj.window.javascript.fSetDegnItems(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  989. pageInfo.forminfoRef + "/unitformdegn[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  990. pageInfo.forminfoRef + "/vallist", pageInfo.forminfoRef + "/imgelist", "record", supdegnitemcd, ivwObj);
  991. }
  992. }
  993. //}
  994. //catch (e)
  995. //{
  996. // alert("[ERROR] SetUnitForm");
  997. // throw e;
  998. //}
  999. SetUserTimeLog("SetUnitForm", "END");
  1000. }
  1001. /**
  1002. * @desc : 서식항목 타입 초기화
  1003. * @id :
  1004. * @event :
  1005. * @return : void
  1006. * @authur : 박종훈
  1007. */
  1008. function InitUnitFormTypeOne(itemCds)
  1009. {
  1010. var ctrlIvw;
  1011. var ctrlCbo;
  1012. var ctrlGrup;
  1013. var unitformcd;
  1014. for (var i = 0; i < itemCds.length; i++)
  1015. {
  1016. ctrlGrup = document.controls("grup_" + itemCds[i]);
  1017. ctrlGrup.attribute("orgtop") = ctrlGrup.attribute("top");
  1018. ctrlGrup.attribute("orgheight") = ctrlGrup.attribute("height");
  1019. ctrlIvw = document.controls("ivw_" + itemCds[i]);
  1020. ctrlIvw.attribute("width") = 593;
  1021. ctrlIvw.attribute("orgheight") = ctrlIvw.attribute("height");
  1022. ctrlIvw.attribute("border-style") = "none";
  1023. unitformcd = model.getValue(pageInfo.formdegnRef + "[supdegnitemcd='" + itemCds[i] +
  1024. "' and degnitemkind = 'FRM' and itemuseflag = 'F0']/degnitemcd");
  1025. if (unitformcd != "")
  1026. {
  1027. ctrlIvw = document.controls("ivw_" + itemCds[i]);
  1028. ctrlIvw.attribute("unitformcd") = unitformcd;
  1029. SetUnitForm(ctrlIvw, itemCds[i]);
  1030. }
  1031. ctrlCbo = document.controls("cbo_" + itemCds[i]);
  1032. SetUnitFormList(ctrlCbo, itemCds[i]);
  1033. }
  1034. }
  1035. /**
  1036. * @desc : 그룹사이즈 최대화
  1037. * @id :
  1038. * @event :
  1039. * @return : void
  1040. * @authur : 박종훈
  1041. */
  1042. function maxSizeGrup(pItemCd, pIdx, pItemCds, pPageIdx, pGrupBase, flag)
  1043. {
  1044. var grupMinHei = 24;
  1045. var grupObj = document.controls("grup_" + pItemCd);
  1046. if (grupObj.attribute("sizeFlag") == "full")
  1047. {
  1048. return;
  1049. }
  1050. else if (grupObj.attribute("sizeFlag") == "max")
  1051. {
  1052. resetSizeGrup(pIdx, pItemCds, pPageIdx);
  1053. return;
  1054. }
  1055. var grupCnt = 0;
  1056. for (var i = 0; i < pPageIdx.length; i++)
  1057. {
  1058. if (pPageIdx[i] == pIdx) grupCnt++;
  1059. }
  1060. var baseHei = parseInt(pGrupBase.attribute("height"));
  1061. var grupMaxHei = baseHei - (grupMinHei * (grupCnt - 1));
  1062. var ypos = 0;
  1063. var ivwObj;
  1064. var extnObj;
  1065. for (var i = 0; i < pItemCds.length; i++)
  1066. {
  1067. grupObj = document.controls("grup_" + pItemCds[i]);
  1068. ivwObj = document.controls("ivw_" + pItemCds[i]);
  1069. extnObj = document.controls("grup_extn" + pItemCds[i]);
  1070. if (pItemCds[i] == pItemCd)
  1071. {
  1072. grupObj.attribute("height") = grupMaxHei;
  1073. grupObj.attribute("sizeFlag") = "max";
  1074. //grupObj.attribute("orgheight") = grupObj.attribute("height");
  1075. if (extnObj != null)
  1076. {
  1077. extnObj.attribute("visibility") = "visible"
  1078. extnObj.attribute("height") = extnObj.attribute("orgheight");
  1079. }
  1080. ivwObj.attribute("height") = parseInt(grupObj.attribute("height")) - parseInt(ivwObj.attribute("top")) - 1;
  1081. SetMultiTextFull(ivwObj, 1);
  1082. }
  1083. else
  1084. {
  1085. if (pPageIdx[i] == pIdx)
  1086. {
  1087. grupObj.attribute("height") = grupMinHei;
  1088. grupObj.attribute("sizeFlag") = "min";
  1089. if (extnObj != null)
  1090. {
  1091. extnObj.attribute("visibility") = "hidden"
  1092. extnObj.attribute("height") = 0;
  1093. }
  1094. ivwObj.attribute("height") = 0;
  1095. //SetMultiTextFull(ivwObj, 1);
  1096. }
  1097. }
  1098. if (pPageIdx[i] == pIdx)
  1099. {
  1100. grupObj.attribute("top") = ypos;
  1101. ypos += parseInt(grupObj.attribute("height"));
  1102. }
  1103. }
  1104. }
  1105. /**
  1106. * @desc : 그룹 사이즈 초기화
  1107. * @id :
  1108. * @event :
  1109. * @return : void
  1110. * @authur : 박종훈
  1111. */
  1112. function resetSizeGrup(pIdx, pItemCds, pPageIdx)
  1113. {
  1114. for (var i = 0; i < pItemCds.length; i++)
  1115. {
  1116. if (pPageIdx[i] == pIdx)
  1117. {
  1118. var grupObj = document.controls("grup_" + pItemCds[i]);
  1119. var ivwObj = document.controls("ivw_" + pItemCds[i]);
  1120. var extnObj = document.controls("grup_extn" + pItemCds[i]);
  1121. grupObj.attribute("top") = parseInt(grupObj.attribute("orgtop"));
  1122. grupObj.attribute("height") = parseInt(grupObj.attribute("orgheight"));
  1123. grupObj.attribute("sizeFlag") = "";
  1124. if (extnObj != null)
  1125. {
  1126. extnObj.attribute("visibility") = "visible"
  1127. extnObj.attribute("height") = extnObj.attribute("orgheight");
  1128. }
  1129. ivwObj.attribute("height") = ivwObj.attribute("orgheight");
  1130. SetMultiTextFull(ivwObj, 1);
  1131. }
  1132. }
  1133. }
  1134. /**
  1135. * @desc : 서식 정보 Set
  1136. * @id :
  1137. * @event :
  1138. * @return : void
  1139. * @authur : 박종훈
  1140. */
  1141. function SetUnitFormInfo(itemCds)
  1142. {
  1143. var ctrlIvw;
  1144. var ctrlCbo;
  1145. for (var i = 0; i < itemCds.length; i++)
  1146. {
  1147. ctrlIvw = document.controls("ivw_" + itemCds[i]);
  1148. ctrlCbo = document.controls("cbo_" + itemCds[i]);
  1149. SetUnitForm(ctrlIvw, itemCds[i]);
  1150. SetUnitFormList(ctrlCbo, itemCds[i]);
  1151. }
  1152. }
  1153. var gFstItemCds; //gItemCds가 최상위아이템이 아닐때 세팅된다.
  1154. /**
  1155. * @desc : 기록 아이템 데이터 저장
  1156. * @id :
  1157. * @event :
  1158. * @return : void
  1159. * @authur : 박종훈
  1160. */
  1161. function InitSaveComnFormRecItemData(mode)
  1162. {
  1163. var ctrlIvw;
  1164. var pageInfo = new PAGEINFO();
  1165. if (gFstItemCds == null)
  1166. {
  1167. gFstItemCds = gItemCds;
  1168. }
  1169. model.removeNodeset(pageInfo.sortItemRef);
  1170. //program서식 데이터 저장
  1171. getSaveData(pageInfo.sortItemRef, "append", model, null, mode);
  1172. for (var i = 0; i < gItemCds.length; i++)
  1173. {
  1174. ctrlIvw = document.controls("ivw_" + gItemCds[i]);
  1175. if (ctrlIvw != null && ctrlIvw.visible)
  1176. ctrlIvw.window.javascript.getSaveData(pageInfo.sortItemRef, "append", model, NewPageInfo(ctrlIvw, gFstItemCds[i]));
  1177. copyNodeset(pageInfo.sortItemRef, "/root/hidden/extnformrec/recinfo/recitem[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  1178. copyNodeset(pageInfo.sortItemRef, pageInfo.imgerecItemRef + "[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  1179. //copyNodeset(pageInfo.sortItemRef, pageInfo.etcrecItemRef + "/recitem[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  1180. }
  1181. /*var nodelist = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemlevlno = '1']/degnitemcd");
  1182. for (var i = 0; i < nodelist.length; i++)
  1183. {
  1184. var degnitemcd = nodelist.item(i).text;
  1185. copyNodeset(pageInfo.sortItemRef, "/root/hidden/extnformrec/recinfo/recitem[fstlevlitemcd = '" +degnitemcd+ "']", "append", model, model);
  1186. copyNodeset(pageInfo.sortItemRef, pageInfo.imgerecItemRef + "[fstlevlitemcd = '" +degnitemcd+ "']", "append", model, model);
  1187. }
  1188. */
  1189. SortRecItem();
  1190. copyNodeset(pageInfo.recItemRef2, pageInfo.recItemRef2, "replace", opener.model, model);
  1191. }
  1192. /**
  1193. * @desc : 기록 아이템 Sort
  1194. * @id :
  1195. * @event :
  1196. * @return : void
  1197. * @authur : 박종훈
  1198. */
  1199. function SortRecItem()
  1200. {
  1201. sysf_trace_emr("***** SortRecItem() 기록아이템 sort MMRCommon *****");
  1202. sysf_trace_emr("jw.choe deleteAll check && return " + this.name);
  1203. var pageInfo = new PAGEINFO();
  1204. dsf_clearDsList(arrDsHiddenRecinfo, this);
  1205. var formdegnRefDs = this.objects["ds_data_formdegn"];
  1206. formdegnRefDs.filter("degnitemlevlno == '1'");
  1207. var fromdegnRefCnt = formdegnRefDs.rowcount;
  1208. //var nodelist = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemlevlno = '1']/degnitemcd");
  1209. var degnitemcd = null;
  1210. for (var i = 0; i < fromdegnRefCnt; i++)
  1211. {
  1212. degnitemcd = formdegnRefDs.getColumn(i, "degnitemcd");
  1213. var recItemRef2Ds = this.objects["ds_hidden_recitem"];
  1214. var sortItemRefDs = this.objects["ds_temp_sort_recitem"];
  1215. //jw.choe sort node check
  1216. if( sortItemRefDs != null ){
  1217. sortItemRefDs.filter("fstlevlitemcd == '" +degnitemcd+ "'");
  1218. //recItemRef2Ds.appendData(sortItemRefDs);
  1219. dsf_copyDsList(["ds_hidden_recitem"], ["ds_temp_sort_recitem"], "append", this, this);
  1220. sortItemRefDs.applyChange();
  1221. sortItemRefDs.deleteAll();
  1222. sortItemRefDs.applyChange();
  1223. sortItemRefDs.filter("");
  1224. }
  1225. // copyNodeset(pageInfo.recItemRef2, pageInfo.sortItemRef + "[fstlevlitemcd = '" +degnitemcd+ "']", "append", model, model);
  1226. // model.removeNodeset(pageInfo.sortItemRef + "[fstlevlitemcd = '" +degnitemcd+ "']");
  1227. }
  1228. formdegnRefDs.filter("");
  1229. }
  1230. /**
  1231. * @desc : Page Info 재설정
  1232. * @id :
  1233. * @event :
  1234. * @return : void
  1235. * @authur : 박종훈
  1236. */
  1237. function NewPageInfo(ctrlIvw, fstlevlitemcd, refPath)
  1238. {
  1239. sysf_trace_emr("***** NewPageInfo("+ctrlIvw.name+", "+fstlevlitemcd+", "+refPath+") EMRCommon -> MMRCommon *****");
  1240. if(utlf_isNull(refPath))
  1241. refPath = "ds_data";
  1242. //var node = model.instances(0).selectSingleNode(refPath + "/formdegn[degnitemcd='"+ fstlevlitemcd +"']");
  1243. var pageInfo = new PAGEINFO(ctrlIvw);
  1244. var formmastDs = this.objects[refPath + "_formmast"];
  1245. var formdegnDs = this.objects[refPath + "_formdegn"];
  1246. pageInfo.formCd = formmastDs.getColumn(0, "formcd");
  1247. pageInfo.formDegnSeq = formmastDs.getColumn(0, "formdegnseq");
  1248. pageInfo.degnItemNo = formdegnDs.lookup("degnitemcd", fstlevlitemcd, "degnitemno");
  1249. pageInfo.degnItemCd = formdegnDs.lookup("degnitemcd", fstlevlitemcd, "degnitemcd");
  1250. pageInfo.degnItemLevlCd = formdegnDs.lookup("degnitemcd", fstlevlitemcd, "degnitemlevlcd");
  1251. pageInfo.fstLevlItemCd = fstlevlitemcd;
  1252. pageInfo.degnitemkind = formdegnDs.lookup("degnitemcd", fstlevlitemcd, "degnitemkind");
  1253. pageInfo.degnitemlevlno = formdegnDs.lookup("degnitemcd", fstlevlitemcd, "degnitemlevlno");
  1254. pageInfo.degnitemnm = formdegnDs.lookup("degnitemcd", fstlevlitemcd, "degnitemnm");
  1255. return pageInfo;
  1256. }
  1257. /**
  1258. * @desc : 부분서식 갯수 카운트하여 리턴
  1259. * @id :
  1260. * @event :
  1261. * @return : void
  1262. * @authur : 박종훈
  1263. */
  1264. function GetUnitFormCnt()
  1265. {
  1266. return opener.window.javascript.fGetUnitFormCnt();
  1267. }
  1268. /**
  1269. * @desc : 부분서식 정보 가져온다
  1270. * @id :
  1271. * @event :
  1272. * @return : void
  1273. * @authur : 박종훈
  1274. */
  1275. function GetUnitFormInfo(pIvwID)
  1276. {
  1277. try
  1278. {
  1279. var ivwObj = document.controls(pIvwID);
  1280. var supdegnitemcd = ivwObj.attribute("supdegnitemcd");
  1281. var pageInfo = new PAGEINFO();
  1282. ivwObj.window.javascript.fSetDegnItems(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  1283. pageInfo.forminfoRef + "/unitformdegn[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  1284. pageInfo.forminfoRef + "/vallist", pageInfo.forminfoRef + "/imgelist", "record", supdegnitemcd, ivwObj);
  1285. ivwObj.window.javascript.makeInstance(pageInfo);
  1286. SetMultiTextFull(ivwObj, 1);
  1287. }
  1288. catch (e)
  1289. {
  1290. alert("[ERROR] GetUnitFormInfo : " + pIvwID);
  1291. throw e;
  1292. }
  1293. }
  1294. /**
  1295. * @desc : XRW Submit
  1296. * @id :
  1297. * @event :
  1298. * @return : void
  1299. * @authur : 박종훈
  1300. */
  1301. function GetFormXrwSubmitStr(pFormDegnSeq, pFormCd, pIvwID)
  1302. {
  1303. return getActionURL("TRMRF01201") + "&formdegnseq=" +pFormDegnSeq+ "&formcd=" +pFormCd+ "&ivwid=" +pIvwID+ "&";
  1304. }
  1305. var gFrLoadTime;
  1306. /**
  1307. * @desc : 시간을 리턴헤준다
  1308. * @id :
  1309. * @event :
  1310. * @return : void
  1311. * @authur : 박종훈
  1312. */
  1313. function GetFrLoadTime()
  1314. {
  1315. return gFrLoadTime;
  1316. }
  1317. /**
  1318. * @desc : 서식로드 관련 시간계산
  1319. * @id :
  1320. * @event :
  1321. * @return : void
  1322. * @authur : 박종훈
  1323. */
  1324. function SetFrLoadTime(frtime)
  1325. {
  1326. if (frtime == null)
  1327. {
  1328. gFrLoadTime = new Date();
  1329. }
  1330. else
  1331. {
  1332. gFrLoadTime = frtime;
  1333. }
  1334. }
  1335. /**
  1336. * @desc : 서식로드 관련 시간계산
  1337. * @id :
  1338. * @event :
  1339. * @return : void
  1340. * @authur : 박종훈
  1341. */
  1342. function SetToLoadTime(flag, totime)
  1343. {
  1344. if (totime == null)
  1345. {
  1346. totime = new Date();
  1347. }
  1348. if (flag==1)
  1349. {
  1350. cap_loadtime.text = ((totime.getTime() - gFrLoadTime.getTime()) / 1000) + " sec";
  1351. }
  1352. else if (flag==2)
  1353. {
  1354. opener.window.javascript.cap_loadtime.text = ((totime.getTime() - opener.window.javascript.gFrLoadTime.getTime()) / 1000) + " sec";
  1355. }
  1356. }
  1357. /**
  1358. * @desc : 서식로드 관련 시간계산
  1359. * @id :
  1360. * @event :
  1361. * @return : void
  1362. * @authur : 박종훈
  1363. */
  1364. function EmrFormReady(ivwID)
  1365. {
  1366. if (ivwID == "")
  1367. {
  1368. SetToLoadTime(1);
  1369. }
  1370. else
  1371. {
  1372. SetToLoadTime(2);
  1373. }
  1374. // if (ivwID == "")
  1375. // {
  1376. // SetToLoadTime(1);
  1377. // }
  1378. // else
  1379. // {
  1380. // SetUnitFormModel(ivwID);
  1381. // fEndLoadForm(ivwID);
  1382. // SetUserTimeLog("EmrFormReady", "END - " + ivwID);
  1383. // }
  1384. //
  1385. // gLoadedUnitFormCnt++;
  1386. // if (gLoadUnitFormCnt == gLoadedUnitFormCnt)
  1387. // {
  1388. // try {
  1389. // fEndLoadForm();
  1390. // SetToLoadTime(2);
  1391. // SetUserTimeLog("EmrFormReady", "END - ALL");
  1392. // }
  1393. // catch (e) {
  1394. // alert("Function fEndLoadForm 가 정의되어 있지 않습니다.");
  1395. // }
  1396. //
  1397. // opener.window.javascript.fLoaderEndForm();
  1398. // }
  1399. }
  1400. /**
  1401. * @desc : 부분서식 모델 Set
  1402. * @id :
  1403. * @event :
  1404. * @return : void
  1405. * @authur : 박종훈
  1406. */
  1407. function SetUnitFormModel(ivwID)
  1408. {
  1409. SetUserTimeLog("SetUnitFormModel", "START - " + ivwID);
  1410. var ivwObj = document.controls(ivwID);
  1411. var supdegnitemcd = ivwObj.attribute("supdegnitemcd");
  1412. var pageInfo = new PAGEINFO();
  1413. ivwObj.window.javascript.fSetDegnItems(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  1414. pageInfo.forminfoRef + "/unitformdegn[orgsupdegnitemcd='"+ supdegnitemcd +"']",
  1415. pageInfo.forminfoRef + "/vallist", pageInfo.forminfoRef + "/imgelist", "record", supdegnitemcd, ivwObj);
  1416. SetUserTimeLog("SetUnitFormModel", "fSetDegnItems END - " + ivwID);
  1417. ivwObj.window.javascript.makeInstance(NewPageInfo(ivwObj, supdegnitemcd));
  1418. SetUserTimeLog("SetUnitFormModel", "makeInstance END - " + ivwID);
  1419. SetMultiTextFull(ivwObj, 1);
  1420. //ivwObj.model.refresh();
  1421. SetToLoadTime(2);
  1422. SetUserTimeLog("SetUnitFormModel", "makeInstance END - " + ivwID);
  1423. }
  1424. /**
  1425. * @desc : 부분서식리스트 Set
  1426. * @id :
  1427. * @event :
  1428. * @return : void
  1429. * @authur : 박종훈
  1430. */
  1431. function SetUnitFormList(cboObj, supdegnitemcd)
  1432. {
  1433. if (cboObj == null) return;
  1434. var pageInfo = new PAGEINFO();
  1435. cboObj.refresh();
  1436. if (cboObj.itemCount == 0)
  1437. {
  1438. cboObj.visible = false;
  1439. }
  1440. else
  1441. {
  1442. cboObj.visible = true;
  1443. var node = model.instances(0).selectSingleNode(pageInfo.forminfoRef + "/unitformdegn[orgsupdegnitemcd='"+ supdegnitemcd +"']/formdegnseq");
  1444. if (node != null)
  1445. {
  1446. model.makeValue("/root/hidden/choicbo/cbo_" + supdegnitemcd + "/baseunitformdegnseq", node.text);
  1447. model.makeValue("/root/hidden/choicbo/cbo_" + supdegnitemcd + "/extnunitformdegnseq", node.text);
  1448. }
  1449. else
  1450. {
  1451. model.makeValue("/root/hidden/choicbo/cbo_" + supdegnitemcd + "/baseunitformdegnseq", "");
  1452. model.makeValue("/root/hidden/choicbo/cbo_" + supdegnitemcd + "/extnunitformdegnseq", "");
  1453. }
  1454. //model.makeNode("/root/hidden/choicbo/cbo_" + supdegnitemcd + "/extnunitformdegnseq");
  1455. cboObj.attribute("ref") = "/root/hidden/choicbo/cbo_" + supdegnitemcd + "/extnunitformdegnseq";
  1456. cboObj.refresh();
  1457. }
  1458. }
  1459. /**
  1460. * @desc : 서식로더 셋팅
  1461. * @id :
  1462. * @event :
  1463. * @return : void
  1464. * @authur : 박종훈
  1465. */
  1466. function setFormLoader(iviewer)
  1467. {
  1468. iviewer.src = "../../medirecweb/xrw/SSMMR01100_서식로더.xrw";
  1469. iviewer.attribute("border-style") = "solid";
  1470. iviewer.attribute("border-color") = "#c0c0c0";
  1471. }
  1472. /**
  1473. * @desc : 서식그리기
  1474. * @id :
  1475. * @event :
  1476. * @return : void
  1477. * @authur : 박종훈
  1478. */
  1479. function drawForm()
  1480. {
  1481. for(var i = 0; i < document.controls.length; i++)
  1482. {
  1483. var ctrl = document.controls.item(i);
  1484. if(ctrl.elementName != "xforms:iviewer")
  1485. continue;
  1486. var formcd = ctrl.attribute("formcd");
  1487. var formdegnseqno = ctrl.attribute("formdegnseqno");
  1488. if(formcd == "" && formdegnseqno == "")
  1489. continue;
  1490. //var degndeptcd = ctrl.attribute("degndeptcd");
  1491. //var degnid = ctrl.attribute("degnid");
  1492. ctrl.window.javascript.fSetFormDegnInfo(ctrl);
  1493. }
  1494. }
  1495. /**
  1496. * @desc : 부분서식 데이터 조회
  1497. * @id :
  1498. * @event :
  1499. * @return : void
  1500. * @authur : 박종훈
  1501. */
  1502. function getSubFormData()
  1503. {
  1504. var targetRef = "/root/main/subform";
  1505. var srcRef = "/root/main/formrecinfo/items";
  1506. model.removeNodeset(targetRef);
  1507. for(var i = 0; i < document.controls.length; i++)
  1508. {
  1509. var ctrl = document.controls.item(i);
  1510. if(ctrl.elementName != "xforms:iviewer")
  1511. continue;
  1512. var formcd = ctrl.attribute("formcd");
  1513. var formdegnseqno = ctrl.attribute("formdegnseqno");
  1514. var id = "";
  1515. var type = "";
  1516. if(formcd != "")
  1517. {
  1518. id = formcd;
  1519. type = "formcd";
  1520. }
  1521. else if(formdegnseqno != "")
  1522. {
  1523. id = formdegnseqno;
  1524. type = "formdegnseqno";
  1525. }
  1526. else
  1527. continue;
  1528. var cntSubForm = getNodesetCnt(model, targetRef);
  1529. //model.makeValue(targetRef + "[" + (cntSubForm + 1) + "]/@id", id);
  1530. copyNodeset(model, ctrl.model, targetRef + "[" + (cntSubForm + 1) + "]/items", srcRef);
  1531. model.makeValue(targetRef + "[" + (cntSubForm + 1) + "]/@id", id);
  1532. model.makeValue(targetRef + "[" + (cntSubForm + 1) + "]/@type", type);
  1533. }
  1534. }
  1535. /**
  1536. * @desc : 노드셋 Count
  1537. * @id :
  1538. * @event :
  1539. * @return : void
  1540. * @authur : 박종훈
  1541. */
  1542. function fGetRecNodeCount(srcPath)
  1543. {
  1544. return getNodesetCount(srcPath);
  1545. }
  1546. /**
  1547. * @desc : 노드셋 삭제
  1548. * @id :
  1549. * @event :
  1550. * @return : void
  1551. * @authur : 박종훈
  1552. */
  1553. function fRemoveRecNodeset(srcPath)
  1554. {
  1555. model.removeNodeset(srcPath);
  1556. }
  1557. //function GetExtnUnitFormInfo(baseunitformdegnseq, extnunitformdegnseq)
  1558. //{
  1559. // return opener.window.javascript.fGetExtnUnitFormInfo(baseunitformdegnseq, extnunitformdegnseq)
  1560. //}
  1561. /**
  1562. * @desc : 가계도
  1563. * @id :
  1564. * @event :
  1565. * @return : void
  1566. * @authur : 박종훈
  1567. */
  1568. function openFamilyDiagram(supdegnitemcd)
  1569. {
  1570. sysf_trace_emr("***** openFamilyDiagram("+supdegnitemcd+") MMRCommon *****");
  1571. var fRow = ds_hidden_recitem.findRowExpr("fstlevlitemcd=='" + supdegnitemcd + "' && formcd=='0000002615'");
  1572. var fdgInfo = ds_hidden_recitem.getColumn(fRow, "reccnts");
  1573. if(!utlf_isNull(fdgInfo)) {
  1574. frmf_setParameter("SPMMR04711_shape", fdgInfo);
  1575. //model.setValue("/root/properties/parameters/SPMMR04711_shape/SPMMR04711_shapevalue", fdgInfo, true);
  1576. }
  1577. var fdgImg = ds_hidden_recitem.getColumn(fRow, "recimge");
  1578. if(!utlf_isNull(fdgImg)) {
  1579. frmf_setParameter("SPMMR04711_base64", fdgImg);
  1580. //model.setValue("/root/properties/parameters/SPMMR04711_base64/SPMMR04711_base64value", fdgImg, true);
  1581. }
  1582. frmf_modal("SPMMR04700", "SPMMR04700", null, null, 1, 0, 0, null, null, null, null, null, "M");
  1583. // 가계도 Shape 데이터 및 Base64 이미지를 CDATA로 세팅
  1584. fdgInfo = frmf_getParameter("SPMMR04711_shape");
  1585. fdgImg = frmf_getParameter("SPMMR04711_base64");
  1586. if(!utlf_isNull(fdgInfo)) {
  1587. //model.setValue("/root/properties/parameters/SPMMR04711_shape/SPMMR04711_shapevalue", fdgInfo, true);
  1588. }
  1589. if(!utlf_isNull(fdgImg)) {
  1590. //model.setValue("/root/properties/parameters/SPMMR04711_base64/SPMMR04711_base64value", fdgImg, true);
  1591. }
  1592. if(utlf_isNull(fdgInfo))
  1593. {
  1594. frmf_clearParameter("SPMMR04711_shape");
  1595. frmf_clearParameter("SPMMR04711_base64");
  1596. if( this.objects["ds_temp_fmyrec_recitem"] == null ) sysf_trace_emr("jw.choe ds_temp_fmyrec_recitem is Null MMRCommon !!!!!!! ");
  1597. if( this.objects["ds_temp_fmyrec_recitem"] != null ){
  1598. var fRow = ds_temp_fmyrec_recitem.findRowExpr("fstlevlitemcd=='" + supdegnitemcd + "' && formcd=='0000002615'");
  1599. ds_temp_fmyrec_recitem.deleteRow(fRow);
  1600. }
  1601. return;
  1602. }
  1603. else
  1604. {
  1605. //var targetNode = instance1.selectSingleNode(pageInfo.fmyrecItemRef + "/recitem[fstlevlitemcd='" + supdegnitemcd + "' and formcd='0000002615']");
  1606. var idx = 0;
  1607. if( this.objects["ds_temp_fmyrec_recitem"] == null ){
  1608. dsf_createDs("ds_temp_fmyrec_recitem");
  1609. }else if( ds_temp_fmyrec_recitem.findRowExpr("fstlevlitemcd=='" + supdegnitemcd + "' && formcd=='0000002615'") < 0 ){
  1610. idx = ds_temp_fmyrec_recitem.addRow();
  1611. }else{
  1612. //targetNode.parentNode.replaceChild(recitem, targetNode);
  1613. idx = ds_temp_fmyrec_recitem.findRowExpr("fstlevlitemcd=='" + supdegnitemcd + "' && formcd=='0000002615'");
  1614. }
  1615. dsf_makeValue(ds_temp_fmyrec_recitem, "instcd", "string", "", idx);
  1616. dsf_makeValue(ds_temp_fmyrec_recitem, "rechistseq", "BIGDECIMAL", "", idx);
  1617. dsf_makeValue(ds_temp_fmyrec_recitem, "recitemno", "INT", "", idx);
  1618. dsf_makeValue(ds_temp_fmyrec_recitem, "fstlevlitemcd", "string", supdegnitemcd, idx);
  1619. dsf_makeValue(ds_temp_fmyrec_recitem, "formcd", "string", "0000002615", idx);
  1620. dsf_makeValue(ds_temp_fmyrec_recitem, "formdegnseq", "BIGDECIMAL", "12838", idx);
  1621. dsf_makeValue(ds_temp_fmyrec_recitem, "degnitemno", "INT", "1", idx);
  1622. dsf_makeValue(ds_temp_fmyrec_recitem, "degnitemcd", "string", "0000006001", idx);
  1623. dsf_makeValue(ds_temp_fmyrec_recitem, "degnitemkind", "string", "FDG", idx);
  1624. dsf_makeValue(ds_temp_fmyrec_recitem, "degnitemlevlno", "string", "1", idx);
  1625. dsf_makeValue(ds_temp_fmyrec_recitem, "degnitemnm", "string", "가계도", idx);
  1626. dsf_makeValue(ds_temp_fmyrec_recitem, "degnitemlevlcd", "string", supdegnitemcd.substr(0, 7) + ".0000006", idx);
  1627. dsf_makeValue(ds_temp_fmyrec_recitem, "rectermcd", "string", "", idx);
  1628. dsf_makeValue(ds_temp_fmyrec_recitem, "rectermnm", "string", "", idx);
  1629. dsf_makeValue(ds_temp_fmyrec_recitem, "recrefcd", "string", "", idx);
  1630. dsf_makeValue(ds_temp_fmyrec_recitem, "recitemnm", "string", "", idx);
  1631. dsf_makeValue(ds_temp_fmyrec_recitem, "reccnts", "string", fdgInfo, idx);
  1632. dsf_makeValue(ds_temp_fmyrec_recitem, "unitnm", "string", "", idx);
  1633. var objExt = new ExtCommon;
  1634. var objBlob = objExt.decodeBase64(fdgImg, "BIN");
  1635. dsf_makeValue(ds_temp_fmyrec_recitem, "recimge", "BLOB", objBlob, idx);
  1636. dsf_makeValue(ds_temp_fmyrec_recitem, "srcimge", "BLOB", "", idx);
  1637. dsf_makeValue(ds_temp_fmyrec_recitem, "rowno", "string", "", idx);
  1638. dsf_makeValue(ds_temp_fmyrec_recitem, "colno", "string", "", idx);
  1639. sysf_trace_emr(ds_temp_fmyrec_recitem.saveXML());
  1640. }
  1641. }
  1642. /**
  1643. * @desc : 최종진단소견
  1644. * @id :
  1645. * @event :
  1646. * @return : void
  1647. * @authur : 2010-03-31 오전 10:11:05 강지훈 추가
  1648. */
  1649. function openLastDiag(supdegnitemcd){
  1650. var pageInfo = new PAGEINFO();
  1651. supdegnitemcd = "0001013001";
  1652. setParameter("lastdiag_supdegnitemcd", supdegnitemcd);
  1653. //부분서식 로딩
  1654. var ctrl = document.controls("lbl_" + supdegnitemcd);
  1655. if (ctrl != null){
  1656. loadClickSection(supdegnitemcd);
  1657. }
  1658. var bfCosignedYN = opener.window.javascript.fGetFormRec("cosign");
  1659. //팝업을띄워 내용입력.
  1660. modal("SPMMR06600");
  1661. var saveFlag = getParameter("lastdiag_saveflag_" + supdegnitemcd); //기록상태
  1662. //Flag에 따라 기록 저장, 수정, 삭제
  1663. if(saveFlag == "C"){ // 기록내용이 이전과같을때.
  1664. return;
  1665. }
  1666. else if(saveFlag == "D") //삭제
  1667. {
  1668. model.removeNodeSet(pageInfo.recItemRef2 + "[formcd='1000007943']/reccnts");
  1669. model.removeNodeSet(pageInfo.lastdiagItemRef + "/recitem[formcd='1000007943']");
  1670. opener.opener.window.javascript.setParameter("SSMMR01100_fChkPreSaveUseFlag", "N");
  1671. opener.window.javascript.setParameter("SSMMR01100_fChkLastDiag", "Y");
  1672. var savedYn = opener.window.javascript.fClickSave("Y");
  1673. if(savedYn == true){
  1674. //기록반려처리
  1675. parent.window.javascript.fSaveLastDiagRec(bfCosignedYN);
  1676. }
  1677. }
  1678. else if(saveFlag == "S")
  1679. {
  1680. opener.opener.window.javascript.setParameter("SSMMR01100_fChkPreSaveUseFlag", "N");
  1681. opener.window.javascript.setParameter("SSMMR01100_fChkLastDiag", "Y");
  1682. var savedYn = opener.window.javascript.fClickSave("Y");
  1683. if(savedYn == true){
  1684. //기록반려처리
  1685. parent.window.javascript.fSaveLastDiagRec(bfCosignedYN);
  1686. }
  1687. }
  1688. opener.window.javascript.clearParameter("cosignclclyn");
  1689. opener.window.javascript.clearParameter("SSMMR01100_fChkLastDiag");
  1690. opener.opener.window.javascript.clearParameter("SSMMR01100_fChkPreSaveUseFlag", "N");
  1691. //
  1692. //버튼 모양설정
  1693. try {
  1694. setButtonToggleByRecYn(null, event.target);
  1695. } catch (e) {
  1696. }
  1697. }
  1698. /**
  1699. * @desc : 추가기록
  1700. * @id :
  1701. * @event :
  1702. * @return : void
  1703. * @authur : 박종훈
  1704. */
  1705. function openEtcRec(obj:Button, e:ClickEventInfo)
  1706. {
  1707. sysf_trace_emr("jw.choe openEtcRec 추가기록 동작에서 opener 을 parent로 처리 확인 필요함. MMRCommon ");
  1708. var supdegnitemcd = obj.name;
  1709. supdegnitemcd = supdegnitemcd.split("_")[2];
  1710. var pageInfo = new PAGEINFO();
  1711. frmf_setParameter("etcrec_supdegnitemcd", supdegnitemcd);
  1712. //부분서식 로딩
  1713. var ctrl = this.components["lbl_" + supdegnitemcd];
  1714. if (!utlf_isNull(ctrl))
  1715. {
  1716. loadClickSection(supdegnitemcd);
  1717. }
  1718. var recItemRef2Ds = this.objects["ds_hidden_recitem"];
  1719. var etcrec = "";
  1720. if( recItemRef2Ds != null ){
  1721. var fidx = ds_hidden_recitem.findRowExpr("degnitemno=='0' && fstlevlitemcd=='" + supdegnitemcd + "' && formcd='" + parent.fGetFormMast("formcd") + "'");
  1722. etcrec = ds_hidden_recitem.getColumn(fidx, "reccnts");
  1723. }
  1724. if(!utlf_isNull(etcrec))
  1725. {
  1726. frmf_setParameter("etc_rec_" + supdegnitemcd, etcrec);
  1727. }
  1728. frmf_modal("SPMMR06100", "SPMMR06100", null, null, null, null, null, null, null, null, null, null, "M");
  1729. var recrtn = frmf_getParameter("etcrec_rtn_" + supdegnitemcd);
  1730. if(utlf_isNull(recrtn))
  1731. {
  1732. frmf_setParameter("etcrec_rtn_" + supdegnitemcd, recrtn);
  1733. frmf_setParameter("etc_rec_" + supdegnitemcd, recrtn);
  1734. var expr = "degnitemno=='0' && fstlevlitemcd=='" + supdegnitemcd + "' && formcd=='" + parent.fGetFormMast("formcd") + "'";
  1735. var recItemRef2Ds = this.objects["ds_hidden_recitem"];
  1736. if( recItemRef2Ds != null && recItemRef2Ds.findRowExpr(expr) != -1 ){
  1737. var fidx = recItemRef2Ds.findRowExpr(expr);
  1738. recItemRef2Ds.setColumn(fidx, "reccnts", "");
  1739. }
  1740. expr = "fstlevlitemcd=='" + supdegnitemcd + "' && formcd=='" + parent.fGetFormMast("formcd") + "'";
  1741. var etcrecItemRefDs = this.objects["ds_temp_etcrec_recitem"];
  1742. if( etcrecItemRefDs != null && etcrecItemRefDs.findRowExpr(expr) != -1 ){
  1743. var fidx = etcrecItemRefDs.findRowExpr(expr);
  1744. etcrecItemRefDs.deleteRow(fidx);
  1745. }
  1746. // model.removeNode(pageInfo.recItemRef2 + "[degnitemno='0' and fstlevlitemcd='" + supdegnitemcd + "' and formcd='" + opener.window.javascript.fGetFormMast("formcd") + "']/reccnts");
  1747. // model.removeNode(pageInfo.etcrecItemRef + "/recitem[fstlevlitemcd='" + supdegnitemcd + "' and formcd='" + opener.window.javascript.fGetFormMast("formcd") + "']");
  1748. }
  1749. else
  1750. {
  1751. frmf_setParameter("etc_rec_" + supdegnitemcd, recrtn);
  1752. var objColInfo = new Array();
  1753. objColInfo.push({col: "instcd", type:"string", size:256});
  1754. objColInfo.push({col: "rechistseq", type:"string", size:256});
  1755. objColInfo.push({col: "recitemno", type:"string", size:256});
  1756. objColInfo.push({col: "fstlevlitemcd", type:"string", size:256});
  1757. objColInfo.push({col: "formcd", type:"string", size:256});
  1758. objColInfo.push({col: "formdegnseq", type:"string", size:256});
  1759. objColInfo.push({col: "degnitemno", type:"string", size:256});
  1760. objColInfo.push({col: "degnitemcd", type:"string", size:256});
  1761. objColInfo.push({col: "degnitemkind", type:"string", size:256});
  1762. objColInfo.push({col: "degnitemlevlno", type:"string", size:256});
  1763. objColInfo.push({col: "degnitemnm", type:"string", size:256});
  1764. objColInfo.push({col: "degnitemlevlcd", type:"string", size:256});
  1765. objColInfo.push({col: "rectermcd", type:"string", size:256});
  1766. objColInfo.push({col: "rectermnm", type:"string", size:256});
  1767. objColInfo.push({col: "recrefcd", type:"string", size:256});
  1768. objColInfo.push({col: "recitemnm", type:"string", size:256});
  1769. objColInfo.push({col: "reccnts", type:"string", size:256});
  1770. objColInfo.push({col: "unitnm", type:"string", size:256});
  1771. objColInfo.push({col: "recimge", type:"BLOB", size:256});
  1772. objColInfo.push({col: "rowno", type:"string", size:256});
  1773. objColInfo.push({col: "colno", type:"string", size:256});
  1774. dsf_createDs("ds_etcrecItemRef_temp", objColInfo);
  1775. ds_etcrecItemRef_temp.addRow();
  1776. ds_etcrecItemRef_temp.setColumn(0, "fstlevlitemcd", supdegnitemcd);
  1777. ds_etcrecItemRef_temp.setColumn(0, "formcd", parent.fGetFormMast("formcd"));
  1778. ds_etcrecItemRef_temp.setColumn(0, "formdegnseq", parent.fGetFormMast("formdegnseq"));
  1779. ds_etcrecItemRef_temp.setColumn(0, "degnitemno", "0");
  1780. ds_etcrecItemRef_temp.setColumn(0, "degnitemcd", "0008458001");
  1781. ds_etcrecItemRef_temp.setColumn(0, "degnitemkind", "STX");
  1782. ds_etcrecItemRef_temp.setColumn(0, "degnitemlevlno", "2");
  1783. ds_etcrecItemRef_temp.setColumn(0, "degnitemnm", "§추가입력");
  1784. ds_etcrecItemRef_temp.setColumn(0, "degnitemlevlcd", supdegnitemcd.substr(0, 7) + ".0008458");
  1785. ds_etcrecItemRef_temp.setColumn(0, "reccnts", recrtn);
  1786. // // CDATA 섹션으로 묶어줌
  1787. // var node = recitem.selectSingleNode("reccnts");
  1788. // model.setValue(node, node.text, true);
  1789. //
  1790. // node = recitem.selectSingleNode("recimge");
  1791. // model.setValue(node, node.text, true);
  1792. var etcrecItemRefDs = this.objects["ds_temp_etcrec_recitem"];
  1793. var expr = "fstlevlitemcd=='" + supdegnitemcd + "' && formcd=='" + parent.fGetFormMast("formcd") + "'";
  1794. if( etcrecItemRefDs == null || etcrecItemRefDs.findRowExpr(expr) == -1){
  1795. if( etcrecItemRefDs == null ){
  1796. dsf_createDs("ds_temp_etcrec_recitem");
  1797. etcrecItemRefDs = this.objects["ds_temp_etcrec_recitem"];
  1798. dsf_copyColInfo(etcrecItemRefDs, ds_etcrecItemRef_temp, true);
  1799. }
  1800. etcrecItemRefDs.appendData(ds_etcrecItemRef_temp, true, false);
  1801. }else{
  1802. var fidx = etcrecItemRefDs.findRowExpr(expr);
  1803. etcrecItemRefDs.copyRow(fidx, ds_etcrecItemRef_temp, 0);
  1804. }
  1805. // var targetNode = instance1.selectSingleNode(pageInfo.etcrecItemRef + "/recitem[fstlevlitemcd='" + supdegnitemcd + "' and formcd='" + opener.window.javascript.fGetFormMast("formcd") + "']");
  1806. //
  1807. // if(targetNode == null)
  1808. // {
  1809. // model.makeValue(pageInfo.etcrecItemRef, "");
  1810. // var parentNode = instance1.selectSingleNode(pageInfo.etcrecItemRef);
  1811. // parentNode.appendChild(recitem);
  1812. // }
  1813. // else
  1814. // {
  1815. // targetNode.parentNode.replaceChild(recitem, targetNode);
  1816. // }
  1817. /* 동적 사용한 Dataset을 삭제 */
  1818. var oRemoveDs = this.removeChild("ds_etcrecItemRef_temp");
  1819. oRemoveDs = null;
  1820. }
  1821. /**
  1822. * @desc : 공통서식내의 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시한다.
  1823. * @history : 2009.09.09 신규 안치원 ACW_090909A
  1824. */
  1825. try {
  1826. setButtonToggleByRecYn(null, obj.name);
  1827. } catch (e) {
  1828. sysf_catchTrace(e);
  1829. }
  1830. }
  1831. /**
  1832. * @desc : 가계도
  1833. * @id :
  1834. * @event :
  1835. * @return : void
  1836. * @authur : 박종훈
  1837. */
  1838. function openFamilyDiagram_old(supdegnitemcd)
  1839. {
  1840. var pageInfo = new PAGEINFO();
  1841. //setParameter("SPMMR04700_opemode", "comnform");
  1842. //setParameter("SPMMR04700_fstlevlitemcd", supdegnitemcd);
  1843. //setParameter("SPMMR04700_path_output", pageInfo.extnrecItemRef);
  1844. //setParameter("SPMMR04700_path_output", pageInfo.extnrecItemRef + "[fstlevlitemcd='" + supdegnitemcd + "' and formcd='0000002615']");
  1845. var fdgInfo = model.getValue(pageInfo.extnrecItemRef + "[fstlevlitemcd='" + supdegnitemcd + "' and formcd='0000002615']/reccnts");
  1846. if(fdgInfo != "") {
  1847. setParameter("SPMMR04711_shape", fdgInfo);
  1848. model.setValue("/root/properties/parameters/SPMMR04711_shape/SPMMR04711_shapevalue", fdgInfo, true);
  1849. }
  1850. var fdgImg = model.getValue(pageInfo.extnrecItemRef + "[fstlevlitemcd='" + supdegnitemcd + "' and formcd='0000002615']/recimge");
  1851. if(fdgImg != "") {
  1852. setParameter("SPMMR04711_base64", fdgImg);
  1853. model.setValue("/root/properties/parameters/SPMMR04711_base64/SPMMR04711_base64value", fdgImg, true);
  1854. }
  1855. modal("SPMMR04700", 1, 0, 0, "", "", "");
  1856. // 가계도 Shape 데이터 및 Base64 이미지를 CDATA로 세팅
  1857. fdgInfo = getParameter("SPMMR04711_shape");
  1858. fdgImg = getParameter("SPMMR04711_base64");
  1859. if(fdgInfo != "") {
  1860. model.setValue("/root/properties/parameters/SPMMR04711_shape/SPMMR04711_shapevalue", fdgInfo, true);
  1861. }
  1862. if(fdgImg != "") {
  1863. model.setValue("/root/properties/parameters/SPMMR04711_base64/SPMMR04711_base64value", fdgImg, true);
  1864. }
  1865. if(fdgInfo == "")
  1866. {
  1867. model.removeNode(pageInfo.extnrecItemRef + "[fstlevlitemcd='" + supdegnitemcd + "' and formcd='0000002615']");
  1868. return;
  1869. }
  1870. else
  1871. {
  1872. var instcd = instance1.createElement("instcd" );
  1873. var rechistseq = instance1.createElement("rechistseq" );
  1874. var recitemno = instance1.createElement("recitemno" );
  1875. var fstlevlitemcd = instance1.createElement("fstlevlitemcd" );
  1876. var formcd = instance1.createElement("formcd" );
  1877. var formdegnseq = instance1.createElement("formdegnseq" );
  1878. var degnitemno = instance1.createElement("degnitemno" );
  1879. var degnitemcd = instance1.createElement("degnitemcd" );
  1880. var degnitemkind = instance1.createElement("degnitemkind" );
  1881. var degnitemlevlno = instance1.createElement("degnitemlevlno" );
  1882. var degnitemnm = instance1.createElement("degnitemnm" );
  1883. var degnitemlevlcd = instance1.createElement("degnitemlevlcd" );
  1884. var rectermcd = instance1.createElement("rectermcd" );
  1885. var rectermnm = instance1.createElement("rectermnm" );
  1886. var recrefcd = instance1.createElement("recrefcd" );
  1887. var recitemnm = instance1.createElement("recitemnm" );
  1888. var reccnts = instance1.createElement("reccnts" );
  1889. var unitnm = instance1.createElement("unitnm" );
  1890. var recimge = instance1.createElement("recimge" );
  1891. var rowno = instance1.createElement("rowno" );
  1892. var colno = instance1.createElement("colno" );
  1893. fstlevlitemcd.text = supdegnitemcd ;
  1894. formcd.text = "0000002615" ;
  1895. formdegnseq.text = "12838" ;
  1896. degnitemno .text = "1" ;
  1897. degnitemcd .text = "0000006001" ;
  1898. degnitemkind .text = "FDG" ;
  1899. degnitemlevlno.text = "1" ;
  1900. degnitemnm.text = "가계도" ;
  1901. degnitemlevlcd.text = "0000006" ;
  1902. reccnts.text = fdgInfo;
  1903. recimge.text = fdgImg;
  1904. var recitem = instance1.createElement("recitem" );
  1905. recitem.appendChild(instcd );
  1906. recitem.appendChild(rechistseq );
  1907. recitem.appendChild(recitemno );
  1908. recitem.appendChild(fstlevlitemcd );
  1909. recitem.appendChild(formcd );
  1910. recitem.appendChild(formdegnseq );
  1911. recitem.appendChild(degnitemno );
  1912. recitem.appendChild(degnitemcd );
  1913. recitem.appendChild(degnitemkind );
  1914. recitem.appendChild(degnitemlevlno );
  1915. recitem.appendChild(degnitemnm );
  1916. recitem.appendChild(degnitemlevlcd );
  1917. recitem.appendChild(rectermcd );
  1918. recitem.appendChild(rectermnm );
  1919. recitem.appendChild(recrefcd );
  1920. recitem.appendChild(recitemnm );
  1921. recitem.appendChild(reccnts );
  1922. recitem.appendChild(unitnm );
  1923. recitem.appendChild(recimge );
  1924. recitem.appendChild(rowno );
  1925. recitem.appendChild(colno );
  1926. // CDATA 섹션으로 묶어줌
  1927. var node = recitem.selectSingleNode("reccnts");
  1928. model.setValue(node, node.text, true);
  1929. node = recitem.selectSingleNode("recimge");
  1930. model.setValue(node, node.text, true);
  1931. var targetNode = instance1.selectSingleNode(pageInfo.extnrecItemRef + "[fstlevlitemcd='" + supdegnitemcd + "' and formcd='0000002615']");
  1932. if(targetNode == null)
  1933. {
  1934. model.makeValue(pageInfo.extnrecRef, "");
  1935. var parentNode = instance1.selectSingleNode(pageInfo.extnrecRef);
  1936. parentNode.appendChild(recitem);
  1937. }
  1938. else
  1939. {
  1940. targetNode.parentNode.replaceChild(recitem, targetNode);
  1941. }
  1942. }
  1943. }
  1944. /**
  1945. * @desc : 확장서식항목 오픈
  1946. * @id :
  1947. * @event :
  1948. * @return : void
  1949. * @authur : 박종훈
  1950. */
  1951. function openExtnUnitFormOfComnMediForm(supdegnitemcd)
  1952. {
  1953. sysf_trace_emr("***** openExtnUnitFormOfComnMediForm("+supdegnitemcd+") MMRCommon *****");
  1954. var pageInfo = new PAGEINFO();
  1955. var cboObj = this.components["cbo_" + supdegnitemcd];
  1956. var cboid = cboObj.name;
  1957. var baseunitformdegnseq = model.getValue("/root/hidden/choicbo/" + cboid + "/baseunitformdegnseq");
  1958. var extnunitformdegnseq = model.getValue("/root/hidden/choicbo/" + cboid + "/extnunitformdegnseq");
  1959. var node = model.instances(0).selectSingleNode(pageInfo.forminfoRef + "/extnformlist[formdegnseq='"+ extnunitformdegnseq +"']/formcd");
  1960. if (node != null && node.text == "0000002615") //가계도
  1961. {
  1962. openFamilyDiagram(supdegnitemcd);
  1963. return;
  1964. }
  1965. var baseNode = model.instances(0).selectSingleNode(pageInfo.forminfoRef + "/unitformmast[formdegnseq='"+ baseunitformdegnseq +"']/srcformcd");
  1966. var extnNode = model.instances(0).selectSingleNode(pageInfo.forminfoRef + "/extnformlist[formdegnseq='"+ extnunitformdegnseq +"']/srcformcd");
  1967. var forminfo;
  1968. var widflag;
  1969. if (baseNode != null && baseNode.text == extnNode.text)
  1970. {
  1971. forminfo = opener.window.javascript.fGetExtnUnitFormInfo(baseunitformdegnseq, extnunitformdegnseq);
  1972. widflag = "ExtnUnitForm";
  1973. }
  1974. else
  1975. {
  1976. // opener.window.javascript.fGetFormInfoByFormDegnCd(extnunitformdegnseq);
  1977. // forminfo, formcd, formdegnseq, extnunitformlistyn, sysformrecdt, formfromdt
  1978. var sysformrecdt = opener.window.javascript.fGetFormRec("sysformrecdt") ;
  1979. opener.window.javascript.fGetFormInfoByFormDegnCd("extnform", "", extnunitformdegnseq, "N", sysformrecdt);
  1980. widflag = "-";
  1981. var cnt = getNodesetCnt(opener.model, "/root/temp/settingform/forminfo/formdegnseq");
  1982. if (cnt == 0)
  1983. forminfo = "";
  1984. else
  1985. forminfo = opener.window.javascript.fGetCSVByFormInfo("/root/temp/settingform/forminfo");
  1986. }
  1987. if (forminfo == "") //기본서식에 없는 확장서식 아이템만 추출한 정보
  1988. {
  1989. messageBox("중복된 아이템을 제거하면 확장서식에 추가될 아이템이", "I004");
  1990. }
  1991. else
  1992. {
  1993. var nodelist = model.instances(0).selectNodes(pageInfo.extnrecItemRef + "[fstlevlitemcd='" +supdegnitemcd+ "' and formcd='" + node.text + "']");
  1994. var recinfo = getNodeListCSV(nodelist);
  1995. //alert(pageInfo.extnrecItemRef + "[fstlevlitemcd='" +supdegnitemcd+ "' and formcd='" + node.text + "']");
  1996. //alert("forminfo: "+forminfo);
  1997. setParameter("openmode", "extnunitform");
  1998. setParameter("fstlevlitemcd", supdegnitemcd);
  1999. setParameter("recinfo", recinfo); //확장서식에 저장한 정보
  2000. setParameter("forminfo", forminfo); //기본서식에 없는 확장서식 아이템만 추출한 정보
  2001. setParameter("widflag", widflag);
  2002. modalUrl("../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw", 1, 0, 0, "", "", "");
  2003. }
  2004. }
  2005. /**
  2006. * @desc : 부분서식의 디자인에 있는 이미지를 이미지편집창으로 복사한다.
  2007. * @id :
  2008. * @event :
  2009. * @return : void
  2010. * @authur : 박종훈
  2011. */
  2012. function getBaseUnitFormRecImge(ivwId, destModel)
  2013. {
  2014. //var pageInfo = new PAGEINFO();
  2015. var ivwObj = this.components[ivwId];
  2016. if (ivwObj == null || !ivwObj.visible)
  2017. ivwObj = this;
  2018. ivwObj.ds_data_recitem.filter("degnitemkind=='IMG'");
  2019. dsf_copyDsList(["ds_data_recitem"], ["ds_data_recitem"], "replace", destModel, ivwObj);
  2020. ivwObj.ds_data_recitem.filter("");
  2021. //copyNodeset(pageInfo.recItemRef, pageInfo.recItemRef+"[degnitemkind='IMG']", "replace" ,destModel, ivwObj.model);
  2022. //var cnt = getNodesetCnt(destModel, pageInfo.recItemRef);
  2023. var cnt = destModel.ds_data_recitem.rowcount;
  2024. var imgecd;
  2025. var imgedata;
  2026. for (var i = 0; i < cnt; i++)
  2027. {
  2028. if (utlf_isNull(destModel.ds_data_recitem.getColumn(i, "recimge")))
  2029. {
  2030. imgecd = destModel.ds_data_recitem.getColumn(i, "degnitemcd");
  2031. imgedata = ivwObj.ds_data_recitem.lookup("imgecd", imgecd, "imgedata");
  2032. destModel.ds_data_recitem.setColumn(i, "recimge", imgedata);
  2033. }
  2034. }
  2035. }
  2036. /**
  2037. * @desc : 편집된 이미지를 부분서식으로 카피한다.
  2038. * @id :
  2039. * @event :
  2040. * @return : void
  2041. * @authur : 박종훈
  2042. */
  2043. function setBaseUnitFormRecImge(ivwId, destModel)
  2044. {
  2045. //var pageInfo = new PAGEINFO();
  2046. var ivwObj = this.components[ivwId];
  2047. if (utlf_isNull(ivwObj) || !ivwObj.visible)
  2048. ivwObj = this;
  2049. var recItemRefDs = destModel.objects["ds_data_recitem"];
  2050. recItemRefDs.filter("utlf_isNull(rowno) && !utlf_isNull(reccnts)");
  2051. //var nodelist = destModel.instance1.selectNodes(pageInfo.recItemRef + "[rowno = '' and reccnts != '']");
  2052. var path;
  2053. for (var i = 0; i < recItemRefDs.rowcount; i++)
  2054. {
  2055. var fRow = (ivwObj.objects["ds_data_recitem"]).findRowExpr("degnitemno=='" + recItemRefDs.getColumn(i, "degnitemno") + "'");
  2056. ivwObj.objects["ds_data_recitem"].setColumn(fRow, "reccnts", recItemRefDs.getColumn(i, "reccnts"));
  2057. ivwObj.objects["ds_data_recitem"].setColumn(fRow, "recimge", recItemRefDs.getColumn(i, "recimge"));
  2058. }
  2059. recItemRefDs.filter("utlf_isNull(rowno)");
  2060. recItemRefDs.applyChange();
  2061. recItemRefDs.deleteAll();
  2062. recItemRefDs.applyChange();
  2063. recItemRefDs.filter("");
  2064. }
  2065. /**
  2066. * @desc : 프로그램서식여부 검사
  2067. * @id :
  2068. * @event :
  2069. * @return : void
  2070. * @authur : 박종훈
  2071. */
  2072. function isProgForm()
  2073. {
  2074. sysf_trace_emr("***** isProgForm() MMRCommon *****");
  2075. var formprogflag = fGetFormMast("formprogflag");
  2076. sysf_trace_emr("@@@@@ formprogflag('-', 'prof', 'main' -> return false) : " + formprogflag + " MMRCommon @@@@@");
  2077. if (formprogflag == "-" || formprogflag == "PROF" || formprogflag == "MAIN")
  2078. return false;
  2079. else
  2080. return true;
  2081. }
  2082. /**
  2083. * @desc : lt, gt 변환
  2084. * @id :
  2085. * @event :
  2086. * @return : void
  2087. * @authur : 박종훈
  2088. */
  2089. function doReplaceLtGt(path:Dataset)
  2090. {
  2091. // dataset filter
  2092. path.filter("degnitemkind == 'IMG'");
  2093. var dsCnt = path.rowcount;
  2094. var shape = "";
  2095. for (var i = 0; i < dsCnt; i++)
  2096. {
  2097. if( path.getColumn( i, "reccnts").indexOf("&lt;") == 0 )
  2098. {
  2099. shape = path.getColumn( i, "reccnts").replace(/&lt;/gi, "<");
  2100. path.setColumn( i, "reccnts", shape.replace(/&gt;/gi, ">"));
  2101. }
  2102. }
  2103. // dataset filter reset
  2104. path.filter("");
  2105. /*
  2106. var nodelist = model.instances(0).selectNodes(path + "[degnitemkind = 'IMG']/reccnts");
  2107. var shape = "";
  2108. for (var i = 0; i < nodelist.length; i++)
  2109. {
  2110. if (nodelist.item(i).text.indexOf("&lt;") == 0)
  2111. {
  2112. shape = nodelist.item(i).text.replace(/&lt;/gi, "<");
  2113. nodelist.item(i).text = shape.replace(/&gt;/gi, ">");
  2114. }
  2115. }
  2116. */
  2117. }
  2118. var gTermViewTopPos = 0;
  2119. var gTermViewHei = 0;
  2120. var gTermViewItems;
  2121. var gTermViewMaxCtrlID = "";
  2122. var gTermViewCtrlInitFlag = false;
  2123. /**
  2124. * @desc : 아이템 영역 최대화
  2125. * @id :
  2126. * @event :
  2127. * @return : void
  2128. * @authur : 박종훈
  2129. */
  2130. function fSetTermViewMaxSize(ivwID)
  2131. {
  2132. if (gTermViewItems == null) return;
  2133. var ctrl;
  2134. if (! gTermViewCtrlInitFlag)
  2135. {
  2136. for (var i = 0; i < gTermViewItems.length; i++)
  2137. {
  2138. ctrl = document.controls("ivw_" + gTermViewItems[i]);
  2139. ctrl.attribute("orgtop") = ctrl.attribute("top");
  2140. ctrl.attribute("orgheight") = ctrl.attribute("height");
  2141. }
  2142. gTermViewCtrlInitFlag = true;
  2143. }
  2144. ctrl = document.controls(ivwID);
  2145. var ctrlvisible = ivwID == gTermViewMaxCtrlID ? true : false;
  2146. for (var i = 0; i < gTermViewItems.length; i++)
  2147. {
  2148. ctrl = document.controls("ivw_" + gTermViewItems[i]);
  2149. ctrl.attribute("top") = ctrl.attribute("orgtop");
  2150. ctrl.attribute("height") = ctrl.attribute("orgheight");
  2151. ctrl.visible = ctrlvisible;
  2152. }
  2153. ctrl = document.controls(ivwID);
  2154. if (ivwID != gTermViewMaxCtrlID)
  2155. {
  2156. ctrl.visible = true;
  2157. ctrl.attribute("top") = gTermViewTopPos;
  2158. ctrl.attribute("height") = gTermViewHei;
  2159. gTermViewMaxCtrlID = ivwID;
  2160. }
  2161. else
  2162. {
  2163. gTermViewMaxCtrlID = "";
  2164. }
  2165. ctrl.window.javascript.fInitPage(false, parseInt(ctrl.attribute("height")), parseInt(ctrl.attribute("width")), ivwID);
  2166. }
  2167. var gMaxSectionTop;
  2168. var gMaxSectionHei;
  2169. /**
  2170. * @desc : 아이템 영역 최대화
  2171. * @id :
  2172. * @event :
  2173. * @return : void
  2174. * @authur : 박종훈
  2175. */
  2176. function setSectionSize(itemCds, topPos, heiSz)
  2177. {
  2178. sysf_trace_emr("***** MMRCommon setSectionSize("+itemCds+", "+topPos+", "+heiSz+") *****");
  2179. gMaxSectionTop = topPos;
  2180. gMaxSectionHei = heiSz;
  2181. var ivwObj;
  2182. var tarObj;
  2183. for (var i = 0; i < itemCds.length; i++)
  2184. {
  2185. ivwObj = eval("ivw_" + itemCds[i]);
  2186. tarObj = eval("tar_" + itemCds[i]);
  2187. if (utlf_isNull(tarObj))
  2188. {
  2189. ivwObj.orgtop = ivwObj.position.top;
  2190. ivwObj.orgheight = ivwObj.position.height;
  2191. ivwObj.ctrluseyn = "Y";
  2192. }
  2193. else
  2194. {
  2195. tarObj.position.top = ivwObj.position.top;
  2196. tarObj.position.left = ivwObj.position.left;
  2197. tarObj.position.width = ivwObj.position.width;
  2198. tarObj.position.height = ivwObj.position.height;
  2199. tarObj.style.borderStyle = "solid";
  2200. ivwObj.style.borderStyle = "none";
  2201. ivwObj.orgtop = ivwObj.position.top;
  2202. tarObj.orgtop = tarObj.position.top;
  2203. ivwObj.orgheight = ivwObj.position.height;
  2204. tarObj.orgheight = tarObj.position.height;
  2205. tarObj.taborder = 100 + i;
  2206. }
  2207. }
  2208. }
  2209. var gMaxSectionID = "";
  2210. /**
  2211. * @desc : 아이템의 영역 최대화
  2212. * @id :
  2213. * @event :
  2214. * @return : void
  2215. * @authur : 박종훈
  2216. */
  2217. function SetMaxSizeSection(itemCds)
  2218. {
  2219. var ctrlID = event.target;
  2220. var itemcd = ctrlID.replace("lbl_", "");
  2221. var ctrlvisible = itemcd == gMaxSectionID ? true : false;
  2222. for (var i = 0; i < itemCds.length; i++)
  2223. {
  2224. ctrl = document.controls("ivw_" + itemCds[i]);
  2225. if (ctrl.attribute("ctrluseyn") == "N")
  2226. ctrl = document.controls("tar_" + itemCds[i]);
  2227. ctrl.attribute("top") = ctrl.attribute("orgtop");
  2228. ctrl.attribute("height") = ctrl.attribute("orgheight");
  2229. ctrl.visible = ctrlvisible;
  2230. if (ctrl.elementName == "xforms:iviewer")
  2231. SetMultiTextFull(ctrl, 1);
  2232. ctrl = document.controls("lbl_" + itemCds[i]);
  2233. ctrl.attribute("background-color") = "#cce8ff";
  2234. }
  2235. ctrl = document.controls("ivw_" + itemcd);
  2236. if (ctrl.attribute("ctrluseyn") == "N")
  2237. {
  2238. ctrl = document.controls("tar_" + itemcd);
  2239. }
  2240. if (! ctrlvisible)
  2241. {
  2242. ctrl.visible = true;
  2243. ctrl.attribute("top") = gMaxSectionTop;
  2244. ctrl.attribute("height") = gMaxSectionHei;
  2245. if (ctrl.elementName == "xforms:iviewer")
  2246. SetMultiTextFull(ctrl, 1);
  2247. ctrl = document.controls("lbl_" + itemcd);
  2248. ctrl.attribute("background-color") = "#99ccff";
  2249. gMaxSectionID = itemcd;
  2250. }
  2251. else
  2252. {
  2253. if (ctrl.elementName == "xforms:iviewer")
  2254. SetMultiTextFull(ctrl, 1);
  2255. gMaxSectionID = "";
  2256. }
  2257. for (var i = 0; i < itemCds.length; i++)
  2258. {
  2259. ctrl = document.controls("tar_" + itemCds[i]);
  2260. if (ctrl == null)
  2261. {
  2262. ctrl = document.controls("ivw_" + itemCds[i]);
  2263. ctrl.window.javascript.fInitPage(false, parseInt(ctrl.attribute("height")), parseInt(ctrl.attribute("width")));
  2264. }
  2265. }
  2266. ctrl = document.controls("tar_" + itemcd);
  2267. if (ctrl != null && ctrl.attribute("ctrluseyn") == "Y")
  2268. {
  2269. model.setFocus(ctrl.attribute("id"));
  2270. ctrl.dispatch("onkeyup");
  2271. }
  2272. }
  2273. /**
  2274. * @desc : 이미지 버튼 함수 설정
  2275. * @id :
  2276. * @event :
  2277. * @return : void
  2278. * @authur : 박종훈
  2279. */
  2280. function InitBtnImge(itemCds)
  2281. {
  2282. sysf_trace_emr("***** InitBtnImge("+itemCds+") MMRCommon *****");
  2283. for (var i = 0; i < itemCds.length; i++)
  2284. {
  2285. ctrl = this.components["btn_imge_" + itemCds[i]];
  2286. //alert(itemCds[i]);
  2287. if (!utlf_isNull(ctrl)) {
  2288. //ctrl.attribute("DOMActivate") = "OpenUnitFormImge()";
  2289. ctrl.onclick.setHandler(OpenUnitFormImge);
  2290. }
  2291. else {
  2292. //alert("no set attribute");
  2293. }
  2294. }
  2295. }
  2296. /**
  2297. * @desc : 확장서식 콤보 ref 설정
  2298. * @id :
  2299. * @event :
  2300. * @return : void
  2301. * @authur : 주희경, 2010.01.19
  2302. */
  2303. function initCmbExtnList(itemCds)
  2304. {
  2305. sysf_trace_emr("***** initCmbExtnList("+itemCds+") MMRCommon *****");
  2306. for (var i = 0; i < itemCds.length; i++)
  2307. {
  2308. ctrl = this.components["cbo_" + itemCds[i]];
  2309. if (!utlf_isNull(ctrl)) {
  2310. //확장서식 콤보리스트 컨트롤들에 이벤트를 동적으로 생성한다. (1. 값셋팅, 2. 해당 서식 오픈 )
  2311. //ctrl.attribute("xforms-select") = "setExtnValueChange(cbo_" + itemCds[i]+", '"+itemCds[i]+"')";
  2312. ctrl.onitemchanged.setHandler(setExtnValueChange);
  2313. //확장서식 콤보리스트들에 동적으로 인스턴스를 매핑한다.
  2314. setExtnFormList(ctrl, itemCds[i]);
  2315. }
  2316. else {
  2317. //alert("no set attribute");
  2318. }
  2319. }
  2320. }
  2321. /**
  2322. * @desc : 확장서식 콤보 value-change 실행 함수
  2323. * @id :
  2324. * @event :
  2325. * @return : void
  2326. * @authur : 주희경, 2010.01.19
  2327. */
  2328. function setExtnValueChange(strCtrl, itemCd)
  2329. {
  2330. fSetBaseForm( itemCd ); //기본서식 로딩
  2331. setExtnFormList(eval(strCtrl), itemCd); //현재 선택한 콤보값 저장
  2332. openExtnUnitFormOfComnMediForm(itemCd); //선택한 확장서식 오픈
  2333. }
  2334. /**
  2335. * @desc : 확장서식 팝업에서 기본서식과 겹치는 아이템은 disable 처리
  2336. * ( 기본적으로 쿼리에서 중복은 처리하나 특정 아이템의 경우 부모 아이템이 딸려 조회되야 하므로 부모 아이템을 disable 처리 )
  2337. * @id :
  2338. * @event :
  2339. * @return : void
  2340. * @authur : 주희경, 2010.01.27
  2341. */
  2342. function setCtrlDisabled(gFstLevlItemCd)
  2343. {
  2344. var parentIvw = eval("opener.ivw_"+gFstLevlItemCd);
  2345. var bodyCtrls = ivw_base.body.children;
  2346. var length = bodyCtrls.length;
  2347. for (i=0; i< length; i++)
  2348. {
  2349. if ( bodyCtrls.item(i).elementName == "xforms:scrollbar" || bodyCtrls.item(i).elementName == "xforms:import" || bodyCtrls.item(i).elementName == "xforms:script"|| bodyCtrls.item(i).elementName == "xforms:tooltip" || bodyCtrls.item(i).elementName == "xforms:caption" || bodyCtrls.item(i).elementName == "xforms:group")
  2350. continue;
  2351. var degnitemno = bodyCtrls.item(i).attribute("degnitemno");
  2352. var cnt = parentIvw.model.getXPathValue("count(/root/main/recinfo/recitem[degnitemno='"+degnitemno+"'])");
  2353. if ( cnt == 1 )
  2354. bodyCtrls.item(i).disabled= true;
  2355. }
  2356. }
  2357. /**
  2358. * @desc : 가계도 버튼 함수 설정
  2359. * @id :
  2360. * @event :
  2361. * @return : void
  2362. * @authur : 박종훈
  2363. */
  2364. function InitBtnFmy(itemCds)
  2365. {
  2366. sysf_trace_emr("***** InitBtnFmy("+itemCds+") MMRCommon *****");
  2367. for (var i = 0; i < itemCds.length; i++)
  2368. {
  2369. ctrl = this.components["btn_fmy_" + itemCds[i]];
  2370. if (!utlf_isNull(ctrl))
  2371. //ctrl.attribute("DOMActivate") = "OpenUnitFormFmy()";
  2372. ctrl.onclick.setHandler(OpenUnitFormFmy);
  2373. }
  2374. }
  2375. /**
  2376. * @desc : 추가기록 버튼 함수 설정
  2377. * @id :
  2378. * @event :
  2379. * @return : void
  2380. * @authur : 박종훈
  2381. */
  2382. function InitBtnEtcRec(itemCds)
  2383. {
  2384. sysf_trace_emr("***** InitBtnEtcRec("+itemCds+") MMRCommon *****");
  2385. for (var i = 0; i < itemCds.length; i++)
  2386. {
  2387. ctrl = this.components["btn_etcrec_" + itemCds[i]];
  2388. if (!utlf_isNull(ctrl))
  2389. ctrl.onclick.setHandler(openEtcRec);
  2390. }
  2391. }
  2392. /**
  2393. * @desc : 최종진단소견 버튼 함수 설정
  2394. * @id :
  2395. * @event :
  2396. * @return : void
  2397. * @authur : 강지훈
  2398. */
  2399. function InitBtnLastDiag(itemCd)
  2400. {
  2401. ctrl = document.controls("btn_lastdiag_" + itemCd);
  2402. if (ctrl != null)
  2403. {
  2404. ctrl.attribute("DOMActivate") = "openLastDiag('" + itemCd + "')";
  2405. }
  2406. }
  2407. /**
  2408. * @desc : 상용구 관리화면 버튼 함수 설정
  2409. * @id :
  2410. * @event :
  2411. * @return : void
  2412. * @authur : 박종훈
  2413. */
  2414. function InitBtnComn(itemCds)
  2415. {
  2416. //상용구관리화면 에러로 임시 막음(2008-01-03) 박종훈
  2417. // for (var i = 0; i < itemCds.length; i++)
  2418. // {
  2419. // ctrl = document.controls("btn_comn_" + itemCds[i]);
  2420. //
  2421. // if (ctrl != null)
  2422. // ctrl.attribute("DOMActivate") = "OpenComnUseStmt()";
  2423. // }
  2424. }
  2425. /**
  2426. * @desc : 상용구 예문관리 화면 팝업
  2427. * @id :
  2428. * @event :
  2429. * @return : void
  2430. * @authur : 박종훈
  2431. */
  2432. function OpenComnUseStmt(obj)
  2433. {
  2434. sysf_trace_emr("***** OpenComnUseStmt("+obj+") MMRCommon *****");
  2435. var ctrlID = obj.name;
  2436. var degnitemcd = ctrlID.replace("btn_comn_", "");
  2437. frmf_setParameter("comn_degnitemcd", degnitemcd);
  2438. frmf_setParameter("comn_srcformcd", parent.fGetFormMast("srcformcd"));
  2439. frmf_modal("SMMRF02400", "SMMRF02400", null, null, 1, 50, 50, null, null, null, null, null, "M");
  2440. //modal("SMMRF02400",1 ,50, 50);
  2441. }
  2442. /**
  2443. * @desc :환자진단정보 가져오기 버튼 설정
  2444. * 2010.01.15 dhkim
  2445. * - 버튼위치가 부분서식의 섹션인 경우 버튼을 hidden처리함
  2446. * - isBtnSet 파라미터 추가 (Y:hidden처리적용, N:기존대로사용)
  2447. * @id :
  2448. * @event :
  2449. * @return : void
  2450. * @authur : 박종훈
  2451. */
  2452. function InitBtnDiag(itemCd, isBtnSet)
  2453. {
  2454. sysf_trace_emr("***** InitBtnDiag("+itemCd+", "+isBtnSet+") *****");
  2455. ctrl = this.components["btn_diag_" + itemCd];
  2456. if (!utlf_isNull(ctrl))
  2457. {
  2458. //ctrl.attribute("DOMActivate") = "GetPatDiagNm('" + itemCd + "')";
  2459. ctrl.onclick.setHandler(GetPatDiagNm);
  2460. }
  2461. //2010.01.15 dhkim
  2462. //isBtnSet 파라미터 추가 (Y:hidden처리적용, N:기존대로사용)
  2463. if(utlf_isNull(isBtnSet)){
  2464. isBtnSet = "N";
  2465. }
  2466. //버튼위치가 부분서식의 섹션인 경우 버튼을 hidden처리함
  2467. if(isBtnSet == "Y"){
  2468. var srcNode = this.objects["ds_data_formdegn"];
  2469. var srcNodeidx = srcNode.findRowExpr("supdegnitemcd=='" + itemCd + "' && itemuseflag=='F0'");
  2470. if(srcNodeidx == -1){
  2471. return;
  2472. }
  2473. var degnitemkindNode = srcNode.getColumn(srcNodeidx, "degnitemkind");
  2474. var degnitemcd = srcNode.getColumn(srcNodeidx, "degnitemcd");
  2475. //FRM & 00000005 (자유서식)아닌것
  2476. if(degnitemkindNode == "FRM" && degnitemcd != "0000000005"){
  2477. this.components["btn_diag_" + itemCd].visible = false;
  2478. }else{
  2479. this.components["btn_diag_" + itemCd].visible = true;
  2480. }
  2481. }
  2482. }
  2483. /**
  2484. * @desc :환자처방정보 가져오기 버튼 설정
  2485. * 2010.01.15 dhkim
  2486. * - 버튼위치가 부분서식의 섹션인 경우 버튼을 hidden처리함
  2487. * - isBtnSet 파라미터 추가 (Y:hidden처리적용, N:기존대로사용)
  2488. * @id :
  2489. * @event :
  2490. * @return : void
  2491. * @authur : 박종훈
  2492. */
  2493. function InitBtnPrcp(itemCd, isBtnSet)
  2494. {
  2495. sysf_trace_emr("***** InitBtnPrcp("+itemCd+", "+isBtnSet+") MMRCommon *****");
  2496. ctrl = this.components["btn_prcp_" + itemCd];
  2497. if (!utlf_isNull(ctrl))
  2498. {
  2499. ctrl.onclick.setHandler(GetPatPrcpList);
  2500. }
  2501. //20130329 정창혁/ 처방내역을 선택하여 추가할 수 있는 팝업창 호출
  2502. var ctrlSelBtn = this.components["btn_sel_prcp_" + itemCd];
  2503. if (!utlf_isNull(ctrlSelBtn)) {
  2504. ctrlSelBtn.onclick.setHandler(lf_btn_sel_prcp_onclick);
  2505. }
  2506. //2010.01.15 dhkim
  2507. //isBtnSet 파라미터 추가 (Y:hidden처리적용, N:기존대로사용)
  2508. if(utlf_isNull(isBtnSet)){
  2509. isBtnSet = "N";
  2510. }
  2511. //버튼위치가 부분서식의 섹션인 경우 버튼을 hidden처리함
  2512. if(isBtnSet == "Y"){
  2513. var srcNode = this.objects["ds_data_formdegn"];
  2514. var srcNodeidx = srcNode.findRowExpr("supdegnitemcd=='" + itemCd + "' && itemuseflag=='F0'");
  2515. if(srcNodeidx == -1){
  2516. return;
  2517. }
  2518. var degnitemkindNode = srcNode.getColumn(srcNodeidx, "degnitemkind");
  2519. var degnitemcd = srcNode.getColumn(srcNodeidx, "degnitemcd");
  2520. //FRM & 00000005 (자유서식)아닌것
  2521. if(degnitemkindNode == "FRM" && degnitemcd != "0000000005"){
  2522. this.components["btn_prcp_" + itemCd].visible = false;
  2523. }else{
  2524. this.components["btn_prcp_" + itemCd].visible = true;
  2525. }
  2526. }
  2527. }
  2528. function lf_btn_sel_prcp_onclick(){
  2529. frmf_modal("SPMMR09000", "SPMMR09000", null, null, null, null, null, null, null, null, null, null, "M");
  2530. }
  2531. /**
  2532. * @desc :환자퇴원처방정보 가져오기 버튼 설정
  2533. * @id :
  2534. * @event :
  2535. * @return : void
  2536. * @authur : 박종훈
  2537. */
  2538. function InitBtnOutPrcp(itemCd)
  2539. {
  2540. ctrl = document.controls("btn_outprcp_" + itemCd);
  2541. if (ctrl != null)
  2542. {
  2543. ctrl.attribute("DOMActivate") = "GetPatOutPrcpList('" + itemCd + "')";
  2544. }
  2545. }
  2546. /**
  2547. * @desc :환자예약정보 가져오기 버튼 설정
  2548. * @id :
  2549. * @event :
  2550. * @return : void
  2551. * @authur : 박종훈
  2552. */
  2553. function InitBtnResv(itemCd)
  2554. {
  2555. ctrl = document.controls("btn_resv_" + itemCd);
  2556. if (ctrl != null)
  2557. {
  2558. ctrl.attribute("DOMActivate") = "GetPatResvList('" + itemCd + "')";
  2559. }
  2560. }
  2561. /**
  2562. * @desc :환자예약정보 가져오기
  2563. * @id :
  2564. * @event : onclick
  2565. * @return : void
  2566. * @authur : 박종훈
  2567. */
  2568. function GetPatResvList(itemCd)
  2569. {
  2570. var pageInfo = new PAGEINFO();
  2571. var pid = parent.model.getValue(pageInfo.recMastRef + "/pid");
  2572. //2009-11-10 오후 11:48:12 강지훈 수정 : 첫번째 pid를 찾아가기때문에 생기는 오류
  2573. model.removeNode("/root/send/pid");
  2574. model.setValue("/root/send/reqinfstrec/pid", pid);
  2575. model.makeValue("/root/send/pid", pid );
  2576. if (submit("TRMMR00301"))
  2577. {
  2578. var nodelistResrvinfo = model.instances(0).selectNodes("/root/main/resvlist");
  2579. var resvinfo
  2580. if (nodelistResrvinfo.length > 0)
  2581. {
  2582. resvinfo = "진료예약 : ";
  2583. var orddd = "";
  2584. var ordtm = "";
  2585. var orddeptnm = "";
  2586. var orddrnm = "";
  2587. for (var i = 1; i <= nodelistResrvinfo.length; i++)
  2588. {
  2589. var subNode = nodelistResrvinfo.item(i - 1);
  2590. var orddd = subNode.selectSingleNode("orddd").text;
  2591. var ordtm = subNode.selectSingleNode("ordtm").text;
  2592. var orddeptnm = subNode.selectSingleNode("orddeptnm").text;
  2593. var orddrnm = subNode.selectSingleNode("orddrnm").text;
  2594. if (i == 1)
  2595. {
  2596. resvinfo += orddd.substr(0, 4) + "-" + orddd.substr(4, 2) + "-"
  2597. + orddd.substr(6, 2) + " " + ordtm.substr(0, 2) + ":"
  2598. + ordtm.substr(2, 2) + ", 진료과 : " + orddeptnm + ", 진료의 : " + orddrnm + "\n";
  2599. }
  2600. else
  2601. {
  2602. resvinfo += " " + orddd.substr(0, 4) + "-" + orddd.substr(4, 2) + "-"
  2603. + orddd.substr(6, 2) + " " + ordtm.substr(0, 2) + ":"
  2604. + ordtm.substr(2, 2) + ", 진료과 : " + orddeptnm + ", 진료의 : " + orddrnm + "\n";
  2605. }
  2606. }
  2607. }
  2608. else
  2609. {
  2610. messageBox("예약내역이", "I004");
  2611. return;
  2612. }
  2613. }
  2614. if (resvinfo != "")
  2615. {
  2616. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", resvinfo);
  2617. }
  2618. model.refresh();
  2619. }
  2620. /**
  2621. * @desc :환자퇴원처방정보 가져오기
  2622. * @id :
  2623. * @event : onclick
  2624. * @return : void
  2625. * @authur : 박종훈
  2626. */
  2627. function GetPatOutPrcpList(itemCd)
  2628. {
  2629. var pageInfo = new PAGEINFO();
  2630. var prcpdd = "";
  2631. var bfflag = "bfprcp";
  2632. var flag = "-";
  2633. var todd = "";
  2634. var pid = parent.model.getValue(pageInfo.recMastRef + "/pid");
  2635. var orddd = parent.model.getValue(pageInfo.recMastRef + "/orddd");
  2636. //var orddd = getCurrentDate();
  2637. var cretno = parent.model.getValue(pageInfo.recMastRef + "/cretno");
  2638. //var orddrid = parent.model.getValue(pageInfo.recMastRef + "/orddrid");
  2639. var orddrid = "";
  2640. var orddeptcd = parent.model.getValue(pageInfo.recMastRef + "/orddeptcd");
  2641. var prcpgenrflag = parent.model.getValue(pageInfo.recMastRef + "/chosflag");
  2642. // if (prcpgenrflag == "I")
  2643. // {
  2644. // prcpdd = getCurrentDate();
  2645. // }
  2646. // else
  2647. // {
  2648. prcpdd = "recbfsrch"; // 입퇴원 요약지의 퇴원처방 날짜조건 변경을 위한 구분자 20100301 이윤정
  2649. // }
  2650. //alert("onbuttonclick prcpdd" + prcpdd);
  2651. model.addLog("==GetPatOutPrcpList 입퇴원요약 처방버튼클릭시 : prcpdd ::" + prcpdd);
  2652. //처방정보 가져오기(퇴원처방 prcpkindcd = 60)
  2653. if(fBfPrcpSrchCom(pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true))
  2654. {
  2655. var nodelistPrcpinfo = model.instances(0).selectNodes("/root/prcpsrch/prcplist[prcpkindcd = 60 and prcphistcd != 'C' and prcphistcd != 'L' and prcphistcd != 'E']");
  2656. }
  2657. var prcpkind = ""; //처방종류
  2658. var orgprcpnm = ""; //처방명
  2659. var drugmthdspccdnm = ""; //용법
  2660. var prcpdelivefact = ""; //전달사항
  2661. var prcplist = "";
  2662. var prcpclscd = "";
  2663. var tmpdrugmthdspccdnm = "";
  2664. if(nodelistPrcpinfo.length >= 1){
  2665. for(var i = 1; i <= nodelistPrcpinfo.length; i++)
  2666. {
  2667. var subNode = nodelistPrcpinfo.item(i - 1);
  2668. //orgprcpnm = subNode.selectSingleNode("orgprcpnm").text;
  2669. tmpdrugmthdspccdnm = subNode.selectSingleNode("drugmthdspccdnm").text;
  2670. prcpkind = subNode.selectSingleNode("tempcol13").text;
  2671. orgprcpnm = subNode.selectSingleNode("tempcol6").text;
  2672. drugmthdspccdnm = subNode.selectSingleNode("tempcol7").text;
  2673. prcpclscd = subNode.selectSingleNode("prcpclscd").text;
  2674. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  2675. drugmthdspccdnm = drugmthdspccdnm.replace("[급]", "");
  2676. drugmthdspccdnm = drugmthdspccdnm.replace("[일]", "");
  2677. drugmthdspccdnm = drugmthdspccdnm.replace("[본]", "");
  2678. drugmthdspccdnm = drugmthdspccdnm.replace("(집)", "");
  2679. drugmthdspccdnm = drugmthdspccdnm.replace("[home]", "");
  2680. drugmthdspccdnm = drugmthdspccdnm.replace("[임상]", "");
  2681. drugmthdspccdnm = drugmthdspccdnm.replace("[prn]", "");
  2682. var prcpdelivefact = subNode.selectSingleNode("prcpdelivefact").text;
  2683. //prcplist += prcpkind + " " +orgprcpnm + " " + drugmthdspccdnm + " " + prcpdelivefact + "\n"
  2684. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  2685. {
  2686. prcplist += orgprcpnm + " " + drugmthdspccdnm + "\n"
  2687. }
  2688. else
  2689. {
  2690. prcplist += orgprcpnm + "\n"
  2691. }
  2692. }
  2693. }
  2694. else
  2695. {
  2696. messageBox("퇴원처방 내역이", "I004");
  2697. return false;
  2698. }
  2699. var prerec = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts");
  2700. if (prerec != "")
  2701. {
  2702. prerec = prerec + "\n" + prcplist + "\n";
  2703. }
  2704. else
  2705. {
  2706. prerec = prcplist + "\n"
  2707. }
  2708. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", prerec);
  2709. model.refresh();
  2710. return true;
  2711. }
  2712. /**
  2713. * @desc :환자처방정보 가져오기
  2714. * @id :
  2715. * @event : onclick
  2716. * @return : void
  2717. * @authur : 박종훈
  2718. */
  2719. function GetPatPrcpList(obj:Button, e:ClickEventInfo)
  2720. {
  2721. var itemCd = obj.name.split("_")[2];
  2722. var pageInfo = new PAGEINFO();
  2723. var prcpdd = utlf_getCurrentDate();
  2724. var bfflag = "bfprcp";
  2725. var flag = "";
  2726. var todd = "";
  2727. var parent_recMastRefDs = parent.objects[pageInfo.recMastRef];
  2728. var pid = parent_recMastRefDs.getColumn(0, "pid");
  2729. var orddd = parent_recMastRefDs.getColumn(0, "orddd");
  2730. var cretno = parent_recMastRefDs.getColumn(0, "cretno");
  2731. var orddrid = parent_recMastRefDs.getColumn(0, "orddrid");
  2732. var orddeptcd = parent_recMastRefDs.getColumn(0, "orddeptcd");
  2733. var prcpgenrflag = parent_recMastRefDs.getColumn(0, "chosflag");
  2734. if (prcpgenrflag == "I" || prcpgenrflag == "E" || prcpgenrflag == "D")
  2735. {
  2736. prcpdd = parent_recMastRefDs.getColumn(0, "formrecdd");
  2737. }
  2738. else
  2739. {
  2740. prcpdd = orddd;
  2741. }
  2742. //처방정보 가져오기(퇴원처방 prcpkindcd = 60)
  2743. //if(fBfPrcpSrchCom(pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true))
  2744. var prcplistCnt = 0;
  2745. var expr = "!utlf_isNull(prcpkindcd) && prcphistcd != 'C' && prcphistcd != 'L' && prcphistcd != 'E'";
  2746. if(lf_bfPrcpSrchCom( pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", "", "", ""))
  2747. {
  2748. prcplistCnt = ds_prcpsrch_prcplist.getCaseCount(expr);
  2749. //var nodelistPrcpinfo = model.instances(0).selectNodes("/root/prcpsrch/prcplist[prcpkindcd != '' and prcphistcd != 'C' and prcphistcd != 'L' and prcphistcd != 'E']");
  2750. }
  2751. var prcpkind = ""; //처방종류
  2752. var orgprcpnm = ""; //처방명
  2753. var drugmthdspccdnm = ""; //용법
  2754. var prcpdelivefact = ""; //전달사항
  2755. var prcplist = "";
  2756. var prcphistcd = ""; //임시,인증구분
  2757. var prcpclscd = "";
  2758. var tmpdrugmthdspccdnm = "";
  2759. if(prcplistCnt >= 1){
  2760. //filter
  2761. ds_prcpsrch_prcplist.filter(expr);
  2762. for(var i = 0; i < prcplistCnt; i++)
  2763. {
  2764. //var subNode = nodelistPrcpinfo.item(i - 1);
  2765. tmpdrugmthdspccdnm = ds_prcpsrch_prcplist.getColumn(i, "drugmthdspccdnm");
  2766. prcpkind = ds_prcpsrch_prcplist.getColumn(i, "tempcol13");
  2767. orgprcpnm = ds_prcpsrch_prcplist.getColumn(i, "tempcol6");
  2768. drugmthdspccdnm = ds_prcpsrch_prcplist.getColumn(i, "tempcol7");
  2769. prcpclscd = ds_prcpsrch_prcplist.getColumn(i, "prcpclscd");
  2770. //2012.06.08 처방 가져오기 개인 설정 조회 엄영만
  2771. //fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/getprcpcnt", "033");
  2772. //var getprcpcnt = model.getValue("/root/envinit/getprcpcnt/answcnt");
  2773. var getprcpcnt = ds_envinit.lookup("qestcd", "033", "answcnt")
  2774. switch(getprcpcnt)
  2775. {
  2776. case "001" : // 기본값 용법 삭제
  2777. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  2778. break;
  2779. case "002" : // 약품처방 용법표시
  2780. if (prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6") {
  2781. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  2782. }
  2783. break;
  2784. default:
  2785. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  2786. break;
  2787. }
  2788. drugmthdspccdnm = drugmthdspccdnm.replace("[급]", "");
  2789. drugmthdspccdnm = drugmthdspccdnm.replace("[일]", "");
  2790. drugmthdspccdnm = drugmthdspccdnm.replace("[본]", "");
  2791. drugmthdspccdnm = drugmthdspccdnm.replace("(집)", "");
  2792. drugmthdspccdnm = drugmthdspccdnm.replace("[home]", "");
  2793. drugmthdspccdnm = drugmthdspccdnm.replace("[임상]", "");
  2794. drugmthdspccdnm = drugmthdspccdnm.replace("[prn]", "");
  2795. prcpdelivefact = ds_prcpsrch_prcplist.getColumn(i, "prcpdelivefact");
  2796. prcphistcd = ds_prcpsrch_prcplist.getColumn(i, "prcphistcd");
  2797. if(prcphistcd == "T") {
  2798. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") {
  2799. prcplist += "[임] " + orgprcpnm + " " + drugmthdspccdnm + "\n"
  2800. } else {
  2801. prcplist += "[임] " + orgprcpnm + "\n"
  2802. }
  2803. } else {
  2804. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") {
  2805. prcplist += orgprcpnm + " " + drugmthdspccdnm + " " + "\n"
  2806. }
  2807. else {
  2808. prcplist += orgprcpnm + "\n"
  2809. }
  2810. }
  2811. }
  2812. ds_prcpsrch_prcplist.filter("");
  2813. }
  2814. var recItemRefDs = this.objects[pageInfo.recItemRef];
  2815. var prerec = recItemRefDs.lookup("fstlevlitemcd", itemCd, "reccnts");
  2816. if (!utlf_isNull(prerec))
  2817. {
  2818. prerec = prerec + "\n" + prcplist + "\n";
  2819. }
  2820. else
  2821. {
  2822. prerec = prcplist + "\n"
  2823. }
  2824. var objColInfo = new Array();
  2825. objColInfo.push({col: "pid", type:"string", size:256, val:pid});
  2826. dsf_createDsRow("ds_send_TRMMR00301", objColInfo);
  2827. var objColInfo = new Array();
  2828. objColInfo.push({col: "pid", type:"string", size:256});
  2829. objColInfo.push({col: "orddd", type:"string", size:256});
  2830. objColInfo.push({col: "cretno", type:"decimal", size:256});
  2831. objColInfo.push({col: "ordtm", type:"string", size:256});
  2832. objColInfo.push({col: "orddeptcd", type:"string", size:256});
  2833. objColInfo.push({col: "orddeptnm", type:"string", size:256});
  2834. objColInfo.push({col: "orddrid", type:"string", size:256});
  2835. objColInfo.push({col: "orddrnm", type:"string", size:256});
  2836. objColInfo.push({col: "dutdeptcd", type:"string", size:256});
  2837. dsf_createDs("ds_main_resvlist", objColInfo);
  2838. var oParam = {};
  2839. oParam.id = "TRMMR00301";
  2840. oParam.service = "medirecapp.ComnMediRec";
  2841. oParam.method = "reqGetResvList";
  2842. oParam.inds = "req=ds_send_TRMMR00301";
  2843. oParam.outds = "ds_main_resvlist=resvlist";
  2844. oParam.async = false;
  2845. oParam.callback = "cf_TRMMR00301";
  2846. tranf_submit(oParam);
  2847. if (arErrorCode.pop("TRMMR00301") > -1)
  2848. {
  2849. //var nodelistResrvinfo = model.instances(0).selectNodes("/root/main/resvlist");
  2850. var resvinfo
  2851. if (ds_main_resvlist.rowcount > 0)
  2852. {
  2853. resvinfo = "진료예약 : ";
  2854. var orddd = "";
  2855. var ordtm = "";
  2856. var orddeptnm = "";
  2857. var orddrnm = "";
  2858. for (var i = 0; i < ds_main_resvlist.rowcount; i++)
  2859. {
  2860. //var subNode = nodelistResrvinfo.item(i - 1);
  2861. var orddd = ds_main_resvlist.getColumn(i, "orddd");
  2862. var ordtm = ds_main_resvlist.getColumn(i, "ordtm");
  2863. var orddeptnm = ds_main_resvlist.getColumn(i, "orddeptnm");
  2864. var orddrnm = ds_main_resvlist.getColumn(i, "orddrnm");
  2865. if (i == 1)
  2866. {
  2867. resvinfo += orddd.substr(0, 4) + "-" + orddd.substr(4, 2) + "-"
  2868. + orddd.substr(6, 2) + " " + ordtm.substr(0, 2) + ":"
  2869. + ordtm.substr(2, 2) + ", 진료과 : " + orddeptnm + ", 진료의 : " + orddrnm + "\n";
  2870. }
  2871. else
  2872. {
  2873. resvinfo += " " + orddd.substr(0, 4) + "-" + orddd.substr(4, 2) + "-"
  2874. + orddd.substr(6, 2) + " " + ordtm.substr(0, 2) + ":"
  2875. + ordtm.substr(2, 2) + ", 진료과 : " + orddeptnm + ", 진료의 : " + orddrnm + "\n";
  2876. }
  2877. }
  2878. }
  2879. else
  2880. {
  2881. resvinfo = "";
  2882. }
  2883. dsf_deleteDs("ds_send_TRMMR00301");
  2884. dsf_deleteDs("ds_main_resvlist");
  2885. }
  2886. if (!utlf_isNull(resvinfo))
  2887. {
  2888. prerec += resvinfo;
  2889. }
  2890. var fidx = recItemRefDs.findRow("fstlevlitemcd", itemCd);
  2891. recItemRefDs.setColumn(fidx, "reccnts", prerec);
  2892. sysf_trace_emr("@@@@@ GetPatPrcpList reccnts : " + prerec + " *****");
  2893. //model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", prerec);
  2894. }
  2895. function cf_TRMMR00301(sSvcId, nErrorCode, sErrorMsg) {
  2896. arErrorCode.push(sSvcId, nErrorCode);
  2897. if(nErrorCode < 0) return;
  2898. }
  2899. /**
  2900. * @desc :환자진단정보 가져오기
  2901. * @id :
  2902. * @event : onclick
  2903. * @return : void
  2904. * @authur : 박종훈
  2905. */
  2906. function GetPatDiagNm(obj:Button, e:ClickEventInfo)
  2907. {
  2908. var itemCd = obj.name;
  2909. itemCd = itemCd.split("_")[2];
  2910. var pageInfo = new PAGEINFO();
  2911. var sPid = parent.objects[pageInfo.recMastRef].getColumn(0, "pid");
  2912. var sOrddd = parent.objects[pageInfo.recMastRef].getColumn(0, "orddd");
  2913. var sCretno = parent.objects[pageInfo.recMastRef].getColumn(0, "cretno");
  2914. var sOrddeptcd = parent.objects[pageInfo.recMastRef].getColumn(0, "orddeptcd");
  2915. var sIoflag = parent.objects[pageInfo.recMastRef].getColumn(0, "chosflag");
  2916. ds_main_diaginfo_diagcdlist.clearData();
  2917. ds_send.setColumn(0, "cond1", sPid);
  2918. ds_send.setColumn(0, "cond2", sOrddd);
  2919. ds_send.setColumn(0, "cond3", sCretno);
  2920. ds_send.setColumn(0, "cond4", sOrddeptcd);
  2921. ds_send.setColumn(0, "cond5", sIoflag);
  2922. var oParam = {};
  2923. oParam.id = "TRMMO00105";
  2924. oParam.service = "prcpmngtapp.PrcpMngt";
  2925. oParam.method = "reqGetPatDiagInfo";
  2926. oParam.inds = "req=ds_send";
  2927. oParam.outds = "ds_main_diaginfo_diagcdlist=diagcdlist";
  2928. oParam.async = false;
  2929. oParam.callback = "cf_TRMMO00105";
  2930. tranf_submit(oParam);
  2931. if (arErrorCode.pop("TRMMO00105") > -1)
  2932. {
  2933. //var nodelistDiaginfo = model.instances(0).selectNodes("/root/main/diaginfo/diagcdlist");
  2934. var ro = "";
  2935. var ms = "";
  2936. var diaglist = "";
  2937. if(ds_main_diaginfo_diagcdlist.rowcount > 0){
  2938. for(var i = 0; i < ds_main_diaginfo_diagcdlist.rowcount; i++)
  2939. {
  2940. sDiagkindcd = ds_main_diaginfo_diagcdlist.getColumn(i, "diagkindcd");
  2941. sDiagkindcdflag = ds_main_diaginfo_diagcdlist.getColumn(i, "diagkindcdflag");
  2942. sTmpdiagcd = ds_main_diaginfo_diagcdlist.getColumn(i, "icd10cd");
  2943. sTmpdiagengnm = ds_main_diaginfo_diagcdlist.getColumn(i, "diagengnm");
  2944. if (sDiagkindcd == "R")
  2945. ro = "R/O";
  2946. else
  2947. ro = " - ";
  2948. if (sDiagkindcdflag == "M")
  2949. ms = "주";
  2950. else
  2951. ms = "부";
  2952. //diaglist += ro + " " + ms + " " + sTmpdiagcd + " " + sTmpdiagengnm + "\n"
  2953. diaglist += ro + " " + ms + " " + sTmpdiagengnm + "\n"
  2954. }
  2955. }
  2956. }
  2957. var prerec = (this.objects[pageInfo.recItemRef]).lookup("fstlevlitemcd", itemCd, "reccnts");
  2958. if (!utlf_isNull(prerec))
  2959. {
  2960. prerec = prerec + "\n" + diaglist;
  2961. }
  2962. else
  2963. {
  2964. prerec = diaglist;
  2965. }
  2966. var sidx = (this.objects[pageInfo.recItemRef]).findRowExpr("fstlevlitemcd=='" + itemCd + "'");
  2967. (this.objects[pageInfo.recItemRef]).setColumn(sidx, "reccnts", prerec);
  2968. var degnitemno = (this.objects[pageInfo.recItemRef]).getColumn(sidx, "degnitemno");
  2969. ds_data_itemvalue.setColumn(0, "tar_"+itemCd+"_"+degnitemno, prerec);
  2970. sysf_trace_emr("@@@@@ prerec : " + prerec + " @@@@@");
  2971. }
  2972. function cf_TRMMO00105(sSvcId, nErrorCode, sErrorMsg) {
  2973. arErrorCode.push(sSvcId, nErrorCode);
  2974. if(nErrorCode < 0) return;
  2975. }
  2976. function EditableCtrl(trgElement, editableBool)
  2977. {
  2978. var editableStr = "";
  2979. if( editableBool )
  2980. editableStr = "true";
  2981. else
  2982. editableStr = "false";
  2983. var childLen = trgElement.children.length;
  2984. var tmpChildObj = null;
  2985. for( var i = 0; i < childLen; i++ ) {
  2986. tmpChildObj = trgElement.children.item(i);
  2987. if (tmpChildObj.attribute("usereditable") == "Y")
  2988. continue;
  2989. // group, switch일 경우
  2990. if( tmpChildObj.elementName == "xforms:group" ) {
  2991. EditableCtrl( tmpChildObj, editableBool);
  2992. }
  2993. // iviewer일 경우
  2994. else if( tmpChildObj.elementName == "xforms:iviewer" ) {
  2995. if( tmpChildObj.src != "" && tmpChildObj.attribute("id").indexOf("FRM_") == -1 )
  2996. EditableCtrl( tmpChildObj.window.body, editableBool);
  2997. }
  2998. // switch일 경우
  2999. else if( tmpChildObj.elementName == "xforms:switch" ) {
  3000. for( var j = 0; j < tmpChildObj.children.length; j++ ) {
  3001. EditableCtrl( tmpChildObj.children.item(j), editableBool);
  3002. }
  3003. }
  3004. else{
  3005. // inout, secret, textarea
  3006. if( tmpChildObj.elementName == "xforms:input" || tmpChildObj.elementName == "xforms:secret" || tmpChildObj.elementName == "xforms:textarea" ) {
  3007. tmpChildObj.attribute("editable") = editableStr;
  3008. }
  3009. // select, select1
  3010. else if( tmpChildObj.elementName == "xforms:select" || tmpChildObj.elementName == "xforms:select1") {
  3011. tmpChildObj.disabled = !editableBool;
  3012. }
  3013. else if( tmpChildObj.elementName == "xforms:datagrid" ) {
  3014. tmpChildObj.isReadOnly(tmpChildObj.fixedRows, tmpChildObj.fixedCols, tmpChildObj.rows - 1, tmpChildObj.cols - 1) = !editableBool;
  3015. }
  3016. else if( tmpChildObj.elementName == "xforms:button" ) {
  3017. tmpChildObj.disabled = !editableBool;
  3018. }
  3019. }
  3020. }
  3021. }
  3022. /*****************************************************************************
  3023. 튜닝
  3024. ******************************************************************************/
  3025. /**
  3026. * @group :
  3027. * @ver : 2008.06.13
  3028. * @by : snoweye
  3029. * @---------------------------------------------------
  3030. * @type : function
  3031. * @access : private
  3032. * @desc : Section 초기화(부분서식 로딩 및 확장서식 세팅) <-- InitLoadSection, InitSetUnitForm 통합
  3033. * @param :
  3034. * @return :
  3035. * @---------------------------------------------------
  3036. */
  3037. function initSection(itemCds)
  3038. {
  3039. sysf_trace_emr("***** initSection("+itemCds+") MMRCommon Section 초기화(부분서식 로딩 및 확장서식 세팅) *****");
  3040. // var pageInfo = new PAGEINFO();
  3041. //alert("itemCds.length : " + itemCds.length);
  3042. sysf_trace_emr("jw.choe parent.model -> model copynode 확인");
  3043. // 공통서식 인스턴스 생성
  3044. dsf_copyDsList(arrDsMain, arrDsMain, "replace", this, parent);
  3045. dsf_clearDsList(arrDsRecinfo, this);
  3046. //copyNodeset("/root/main", "/root/main", "replace", model, parent.model);
  3047. //model.removeNodeset("/root/main/recinfo");
  3048. //수술기록 분기(2008.10.24 박종훈)
  3049. if (parent.fGetFormMast("srcformcd") == "1000000001" || parent.fGetFormMast("srcformcd") == "0000000676" || parent.fGetFormMast("srcformcd") == "0000003169")
  3050. {
  3051. sysf_trace_emr("jw.choe makeRefByDegnitemLevlCd 임시주석.");
  3052. makeRefByDegnitemLevlCd();
  3053. }
  3054. else
  3055. {
  3056. sysf_trace_emr("jw.choe makeRefByDegnitemno 임시주석.");
  3057. makeRefByDegnitemno();
  3058. }
  3059. // trace("######################################");
  3060. // trace("Loading 시작 : " + utlf_getCurrentTime());
  3061. // trace("######################################");
  3062. var fstLoad = false;
  3063. for (var i = 0; i < itemCds.length; i++)
  3064. {
  3065. var formdegnseq = ds_data_unitformmast.lookup("orgsupdegnitemcd", itemCds[i], "formdegnseq");
  3066. var unitformcd = ds_data_unitformmast.lookup("orgsupdegnitemcd", itemCds[i], "formcd");
  3067. var ivwObj = this.components["ivw_" + itemCds[i]];
  3068. var tarObj = this.components["tar_" + itemCds[i]];
  3069. sysf_trace_emr("@@@@@ formdegnseq : " + formdegnseq + " @@@@@");
  3070. if(utlf_isNull(formdegnseq))
  3071. {
  3072. ivwObj.visible = false;
  3073. tarObj.visible = true;
  3074. fOnLoadComplete();
  3075. }
  3076. //snoweye(2008-12-16) - Section별 로딩
  3077. /*************************************************************************/
  3078. else if(!fstLoad || unitformcd == '0000000005')//첫번째 부분서식만 로딩(2008-12-04)
  3079. {
  3080. sysf_trace_emr("***** !fstLoad || unitformcd == '0000000005' *****");
  3081. ivwObj.visible = true;
  3082. tarObj.visible = false;
  3083. //var unitformcd = model.getValue(pageInfo.formdegnRef + "[supdegnitemcd='" + itemCds[i] +
  3084. // "' and degnitemkind = 'FRM' and itemuseflag = 'F0']/degnitemcd");
  3085. var unitformprogflag = ds_data_unitformmast.lookup("orgsupdegnitemcd", itemCds[i], "formprogflag");
  3086. if (!utlf_isNull(unitformcd))
  3087. {
  3088. ivwObj.supdegnitemcd = itemCds[i];
  3089. ivwObj.unitformcd = unitformcd;
  3090. trace(unitformcd + " Loading 시작 : " + utlf_getCurrentTime());
  3091. loadUnitForm(ivwObj, itemCds[i]);
  3092. trace(unitformcd + " Loading 끝 : " + utlf_getCurrentTime());
  3093. sysf_trace_emr("@@@@@ " + unitformprogflag + " : " + parent.fGetFormRec("status") + " : " + parent.fGetFormMast("formcd") + " : " + unitformcd );
  3094. if (unitformprogflag != "PROG" && parent.fGetFormRec("status") == "C" && parent.fGetFormMast("formcd") != "0800000722" && unitformcd != '0000000005') //영양검색의뢰 제외
  3095. {
  3096. var srcformcd = ds_data_formmast.getColumn(0, "srcformcd");
  3097. //입원경과,외래재진은 제외한다(20130729 이윤주)
  3098. if (srcformcd != "0000000004" && srcformcd != "0000000002") {
  3099. fstLoad = true;//첫번째 부분서식 로딩완료(2008-12-04)
  3100. dispOnLoadComplete(UNIT_FORM);
  3101. }
  3102. }
  3103. else if(unitformprogflag == "PROG" && parent.fGetFormRec("status") == "C" && parent.fGetFormMast("formcd") == "0800000722")
  3104. {
  3105. }
  3106. }
  3107. }
  3108. //snoweye(2008-12-16) - Section별 로딩 끝
  3109. /*************************************************************************/
  3110. if(!utlf_isNull(formdegnseq))
  3111. {
  3112. ivwObj.visible = true;
  3113. tarObj.visible = false;
  3114. }
  3115. if (tarObj.visible == true)
  3116. {
  3117. setComnEvent(parent.fGetFormMast("srcformcd"), tarObj.degnitemno, tarObj.name);
  3118. }
  3119. var cboObj = this.components["cbo_" + gItemCds[i]];
  3120. //var cboObj = eval("cbo_" + gItemCds[i]);
  3121. setExtnFormList(cboObj, gItemCds[i]);
  3122. }
  3123. sysf_trace_emr("jw.choe xp에 맞는 ds 구성 로직 MMRCommon !!!!!!!!!");
  3124. lf_setItemValueDS();
  3125. return fstLoad;
  3126. }
  3127. /**
  3128. * @group :
  3129. * @ver : 2008.06.13
  3130. * @by : snoweye
  3131. * @---------------------------------------------------
  3132. * @type : function
  3133. * @access : private
  3134. * @desc : 부분서식 Load
  3135. * @param :
  3136. * @return :
  3137. * @---------------------------------------------------
  3138. */
  3139. function loadUnitForm(ivwObj, fstLevlItemCd)
  3140. {
  3141. sysf_trace_emr("***** MMRCommon loadUnitForm("+ivwObj+", "+fstLevlItemCd+") 부분서식 로드 *****");
  3142. var pageInfo = new PAGEINFO();
  3143. var formdegnseq = ds_data_unitformmast.lookup("orgsupdegnitemcd", fstLevlItemCd, "formdegnseq");
  3144. var formprogflag = ds_data_unitformmast.lookup("orgsupdegnitemcd", fstLevlItemCd, "formprogflag");
  3145. var srcformcd = ds_data_formmast.getColumn(0, "srcformcd");
  3146. if(formprogflag == "PROG")
  3147. {
  3148. var formprognm = ds_data_unitformmast.lookup("orgsupdegnitemcd", fstLevlItemCd, "formprognm");
  3149. var obj = sysf_getScreenInfo(formprognm.split("_")[0]);
  3150. // sysf_trace_emr("***** MMRCommon formprognm : " + formprognm );
  3151. sysf_trace_emr("***** MMRCommon obj.scrnurlxp : " + obj.scrnurlxp );
  3152. ivwObj.url = obj.scrnurlxp;
  3153. }
  3154. else
  3155. {
  3156. sysf_trace_emr("jw.choe 특수서식 임시 제외 MMRCommon 3497 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
  3157. //ivwObj.url = getFormUrl(formdegnseq, ivwObj.name);
  3158. ivwObj.url = "emr_medirecxp::5. 통증관찰기록.xfdl";
  3159. }
  3160. setMaxSizeMtx(ivwObj, 1);
  3161. if (srcformcd == "0000000679" && !utlf_isNull(ivwObj.url))
  3162. {
  3163. if (oOpener.frmf_getScreenID() == "SSMMR01100")
  3164. {
  3165. fSetErTriageRec(ivwObj, null);
  3166. }
  3167. else
  3168. {
  3169. ivw_base.fSetErTriageRec(ivwObj, null);
  3170. }
  3171. }
  3172. }
  3173. /**
  3174. * @group :
  3175. * @ver : 2008.06.13
  3176. * @by : snoweye
  3177. * @---------------------------------------------------
  3178. * @type : function
  3179. * @access : private
  3180. * @desc : 확장서식 세팅 (<--SetUnitFormList)
  3181. * @param :
  3182. * @return :
  3183. * @---------------------------------------------------
  3184. */
  3185. function setExtnFormList(cboObj, supdegnitemcd)
  3186. {
  3187. sysf_trace_emr("***** MMRCommon setExtnFormList("+cboObj+", "+supdegnitemcd+") 확장서식 셋팅 ******");
  3188. if (utlf_isNull(cboObj)) return;
  3189. var pageInfo = new PAGEINFO();
  3190. var cboObjDs = cboObj.innerdataset;
  3191. if (cboObjDs.rowcount == 0)
  3192. {
  3193. cboObj.visible = false;
  3194. }
  3195. else
  3196. {
  3197. cboObj.visible = true;
  3198. var node = (this.objects[pageInfo.forminfoRef + "_unitformmast"]).lookup("orgsupdegnitemcd", supdegnitemcd, "formdegnseq");
  3199. var dsNm = "ds_hidden_choicbo_cbo_"+supdegnitemcd;
  3200. var objColInfo = new Array();
  3201. objColInfo.push({col: "baseunitformdegnseq", type:"string", size:256});
  3202. objColInfo.push({col: "extnunitformdegnseq", type:"string", size:256});
  3203. dsf_createDs(dsNm, objColInfo);
  3204. var cboDs = this.objects[dsNm];
  3205. if( cboDs.rowcount == 0 ) cboDs.addRow();
  3206. if (!utlf_isNull(node))
  3207. {
  3208. cboDs.setColumn(0, "baseunitformdegnseq", node);
  3209. cboDs.setColumn(0, "extnunitformdegnseq", cboObj.value);
  3210. }
  3211. else
  3212. {
  3213. cboDs.setColumn(0, "baseunitformdegnseq", "");
  3214. cboDs.setColumn(0, "extnunitformdegnseq", "");
  3215. }
  3216. var objBindItem = new BindItem();
  3217. objBindItem.init(ds_Nm, cboObj.name, "value", dsNm, "extnunitformdegnseq");
  3218. this.addChild(dsNm, objBindItem);
  3219. objBindItem.bind();
  3220. //cboObj.attribute("ref") = "/root/hidden/choicbo/cbo_" + supdegnitemcd + "/extnunitformdegnseq";
  3221. }
  3222. }
  3223. /**
  3224. * @group :
  3225. * @ver : 2008.06.23
  3226. * @by : snoweye
  3227. * @---------------------------------------------------
  3228. * @type : function
  3229. * @access : public
  3230. * @desc : 로드할 서식의 Url을 반환
  3231. * @param : formdegnseq - load할 서식의 디자인 순번
  3232. * @param : ivwid - 서식을 load할 viewer의 id
  3233. * @return : Action Url (String)
  3234. * @---------------------------------------------------
  3235. */
  3236. function getFormUrl(formdegnseq, ivwid)
  3237. {
  3238. sysf_trace_emr("***** getFormUrl("+formdegnseq+", "+ivwid+") *****");
  3239. var objColInfo = new Array();
  3240. objColInfo.push({col: "formcd", type:"string", size:256, val:""});
  3241. objColInfo.push({col: "formdegnseq", type:"int", size:256, val:formdegnseq});
  3242. objColInfo.push({col: "ivwid", type:"string", size:256, val:ivwid});
  3243. dsf_createDsRow("ds_inds_TRMRF01201", objColInfo);
  3244. objColInfo = new Array();
  3245. objColInfo.push({col: "formxrw", type:"string", size:256});
  3246. dsf_createDsRow("ds_outds_TRMRF01201", objColInfo);
  3247. var oParam = {};
  3248. oParam.id = "TRMRF01201";
  3249. oParam.service = "formmngtapp.FormDegnMngt";
  3250. oParam.method = "reqGetFormDegnXRWInfo";
  3251. oParam.inds = "req=ds_inds_TRMRF01201";
  3252. oParam.outds = "ds_outds_TRMRF01201=xrw";
  3253. oParam.async = false;
  3254. //oParam.callback = "cf_TRMRF02003";
  3255. tranf_submit(oParam);
  3256. //sysf_trace_emr("***** return ds_outds_TRMRF01201.getColumn(0, 'formxrw') : " + ds_outds_TRMRF01201.getColumn(0, "formxrw") + " *****");
  3257. //return getActionURL("TRMRF01201") + getUserSessionString() + "&formcd=&formdegnseq=" + formdegnseq + "&ivwid=" + ivwid;
  3258. return ds_outds_TRMRF01201.getColumn(0, "formxrw");
  3259. }
  3260. /**
  3261. * @group :
  3262. * @ver : 2008.06.23
  3263. * @by : snoweye
  3264. * @---------------------------------------------------
  3265. * @type : function
  3266. * @access : public
  3267. * @desc : Section영역 최대화 ( <-- SetMaxSizeSection)
  3268. * @param : itemCds - 섹션 itemcd 배열
  3269. * @return :
  3270. * @---------------------------------------------------
  3271. */
  3272. function expandSection(itemCds, obj)
  3273. {
  3274. sysf_trace_emr("***** expandSection("+itemCds+", "+obj+") MMRCommon *****");
  3275. var ctrlID = obj.name;
  3276. var itemcd = ctrlID.replace("lbl_", "");
  3277. var bFold = itemcd == gMaxSectionID ? true : false;
  3278. var ctrl = null;
  3279. var prevItemCd = gMaxSectionID;
  3280. var unitformcd = "";
  3281. for (var i = 0; i < itemCds.length; i++)
  3282. {
  3283. var secCtrl = this.components["lbl_" + itemCds[i]];
  3284. var formdegnseq = ds_data_unitformmast.lookup("orgsupdegnitemcd", itemCds[i], "formdegnseq");
  3285. unitformcd = ds_data_unitformmast.lookup("orgsupdegnitemcd", itemCds[i], "formcd");
  3286. if(utlf_isNull(formdegnseq))
  3287. ctrl = this.components["tar_" + itemCds[i]];
  3288. else
  3289. ctrl = this.components["ivw_" + itemCds[i]];
  3290. if(itemcd == itemCds[i])
  3291. {
  3292. fSetBaseForm( itemCds[i] );
  3293. if(bFold)//fold
  3294. {
  3295. ctrl.position.top = ctrl.orgtop;
  3296. ctrl.position.height = ctrl.orgheight;
  3297. secCtrl.style.backgroundColor = secCtrl.orgbackgroundColor;
  3298. gMaxSectionID = "";
  3299. }
  3300. else//expand
  3301. {
  3302. ctrl.orgtop = ctrl.position.top;
  3303. ctrl.orgheight = ctrl.position.height;
  3304. secCtrl.orgbackgroundColor = secCtrl.style.backgroundColor;
  3305. ctrl.position.top = gMaxSectionTop;
  3306. ctrl.position.height = gMaxSectionHei;
  3307. secCtrl.style.backgroundColor = "#99ccff";
  3308. gMaxSectionID = itemcd;
  3309. }
  3310. ctrl.visible = true;
  3311. }
  3312. else
  3313. {
  3314. if(bFold)//fold
  3315. {
  3316. ctrl.visible = true;
  3317. }
  3318. else//expand
  3319. {
  3320. ctrl.visible = false;
  3321. if(prevItemCd == itemCds[i])
  3322. {
  3323. ctrl.position.top = ctrl.orgtop;
  3324. ctrl.position.height = ctrl.orgheight;
  3325. secCtrl.style.backgroundColor = secCtrl.orgbackgroundColor;
  3326. }
  3327. }
  3328. }
  3329. if (ctrl.name == "ivw_" + itemCds[i])
  3330. {
  3331. SetMultiTextFull(ctrl, 1);
  3332. }
  3333. if (unitformcd == "0000000901" || unitformcd == "0000000899" || unitformcd == "0000000900")
  3334. {
  3335. ctrl.fInitPage(false, parseInt(ctrl.position.height), parseInt(ctrl.position.width));
  3336. }
  3337. }
  3338. }
  3339. function fSetBaseForm( itemCd )
  3340. {
  3341. sysf_trace_emr("***** fSetBaseForm( "+itemCd +") MMRCommon *****");
  3342. //섹션 선택시 해당 섹션의 부분서식의 로딩되어있는지 확인하여
  3343. //로딩되어 있지 않으면 부분서식로딩
  3344. var ivwObj = this.components["ivw_" + itemCd];
  3345. if(utlf_isNull(ivwObj.url))
  3346. {
  3347. var unitformcd = ds_data_unitformmast.lookup("orgsupdegnitemcd", itemCd, "formcd");
  3348. if (!utlf_isNull(unitformcd))
  3349. {
  3350. ivwObj.supdegnitemcd = itemCd;
  3351. ivwObj.unitformcd = unitformcd;
  3352. trace(unitformcd + " Loading 시작 : " + utlf_getCurrentTime());
  3353. loadUnitForm(ivwObj, itemCd);
  3354. trace(unitformcd + " Loading 끝 : " + utlf_getCurrentTime());
  3355. }
  3356. }
  3357. }
  3358. /**
  3359. * @group :
  3360. * @ver : 2008.06.23
  3361. * @by : snoweye
  3362. * @---------------------------------------------------
  3363. * @type : function
  3364. * @access : public
  3365. * @desc : TextArea 최대화 ( <-- SetMultiTextFull)
  3366. * @param : ctrl - TextArea가 포함된 iviewer object 또는 TextArea
  3367. * @return :
  3368. * @---------------------------------------------------
  3369. */
  3370. function setMaxSizeMtx(ivwObj, pDegnItemNo)
  3371. {
  3372. sysf_trace_emr("***** MMRCommon setMaxSizeMtx("+ivwObj+", "+pDegnItemNo+") *****");
  3373. //if (ivwObj.attribute("unitformcd") == "0000000005")
  3374. if (ivwObj.unitformcd == "0000000005")
  3375. {
  3376. //ivwObj.window.javascript.fSetMtxSize(pDegnItemNo, 0, 0, parseInt(ivwObj.attribute("width"))-5, parseInt(ivwObj.attribute("height")));
  3377. ivwObj.fSetMtxSize(pDegnItemNo, 0, 0, parseInt(ivwObj.position.width)-5, parseInt(ivwObj.position.height));
  3378. }
  3379. }
  3380. /**
  3381. * @group :
  3382. * @ver : 2008.06.23
  3383. * @by : snoweye
  3384. * @---------------------------------------------------
  3385. * @type : function
  3386. * @access : public
  3387. * @desc : 복합서식(부분서식을 포함, 공통서식)의 기록 데이터를 취합 ( <-- initSaveComnFormRecItemData)
  3388. * @param : mode - null / 'all' ( 기록된 데이터만 / 전체 데이터)
  3389. * @return :
  3390. * @---------------------------------------------------
  3391. */
  3392. function getSaveComnFormData_old(mode)
  3393. {
  3394. var ctrlIvw;
  3395. var pageInfo = new PAGEINFO();
  3396. if (gFstItemCds == null)
  3397. {
  3398. gFstItemCds = gItemCds;
  3399. }
  3400. model.removeNodeset(pageInfo.sortItemRef);
  3401. //program서식 데이터 저장
  3402. getSaveData(pageInfo.sortItemRef, "append", model, null, mode);
  3403. for (var i = 0; i < gItemCds.length; i++)
  3404. {
  3405. ctrlIvw = document.controls("ivw_" + gItemCds[i]);
  3406. if (ctrlIvw != null && ctrlIvw.visible)
  3407. ctrlIvw.window.javascript.getSaveData(pageInfo.sortItemRef, "append", model, NewPageInfo(ctrlIvw, gFstItemCds[i]));
  3408. copyNodeset(pageInfo.sortItemRef, "/root/hidden/extnformrec/recinfo/recitem[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  3409. copyNodeset(pageInfo.sortItemRef, pageInfo.imgerecItemRef + "[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  3410. }
  3411. SortRecItem();
  3412. copyNodeset(pageInfo.recItemRef2, pageInfo.recItemRef2, "replace", opener.model, model);
  3413. }
  3414. /**
  3415. * @group :
  3416. * @ver : 2008.06.23
  3417. * @by : snoweye
  3418. * @---------------------------------------------------
  3419. * @type : function
  3420. * @access : public
  3421. * @desc : 복합서식(부분서식을 포함, 공통서식)의 기록 데이터를 취합 ( <-- initSaveComnFormRecItemData)
  3422. * @param : mode - null / 'all' ( 기록된 데이터만 / 전체 데이터)
  3423. * @return :
  3424. * @---------------------------------------------------
  3425. */
  3426. function getSaveComnFormData(mode, tmp)
  3427. {
  3428. sysf_trace_emr("***** MMRCommon getSaveComnFormData("+mode+", "+tmp+") 복합서식(부분서식을 포함, 공통서식)의 기록 데이터를 취합 *****");
  3429. var ctrlIvw;
  3430. var ctrlTar;
  3431. var pageInfo = new PAGEINFO();
  3432. var savedInfo = new SAVED_INFO();
  3433. if (utlf_isNull(gFstItemCds))
  3434. {
  3435. gFstItemCds = gItemCds;
  3436. }
  3437. dsf_clearDsList(["ds_temp_sort_recitem"], this);//pageInfo.sortItemRef
  3438. //model.removeNodeset(pageInfo.sortItemRef);
  3439. getSaveData("ds_temp_sort_recitem", "append", this, null, mode);
  3440. for (var i = 0; i < gItemCds.length; i++)
  3441. {
  3442. ctrlIvw = this.components["ivw_" + gItemCds[i]];
  3443. //2010-03-31 오전 10:12:54 강지훈 추가 : 입퇴원요약지 최종진단명 추가
  3444. var lastDiagStrDestDs = this.objects["ds_temp_sort_recitem"];
  3445. var lastDiagStrSrcDs = this.objects["ds_temp_lastdiag_recitem"];
  3446. if(lastDiagStrSrcDs != null)
  3447. lastDiagStrSrcDs.filter("fstlevlitemcd == '" +gItemCds[i]+ "'");
  3448. var unitformmastDs = this.objects["ds_data_unitformmast"];
  3449. var formdegnseq = unitformmastDs.lookup("orgsupdegnitemcd", gItemCds[i], "formdegnseq");
  3450. //dataset check
  3451. var sortItemRefDs = this.objects["ds_temp_sort_recitem"];
  3452. var extnformrecDs = this.objects["ds_hidden_extnformrec_recitem"];
  3453. var filterStr = "fstlevlitemcd == '" +gItemCds[i]+ "'";
  3454. var imgerecItemRefDs = this.objects["ds_temp_imgerec_recitem"];
  3455. var fmyrecItemRefDs = this.objects["ds_temp_fmyrec_recitem"];
  3456. var etcrecItemRefDs = this.objects["ds_temp_etcrec_recitem"];
  3457. if(!utlf_isNull(formdegnseq) && !utlf_isNull(ctrlIvw.url))
  3458. {
  3459. var orgsupdegnitemno = unitformmastDs.lookup("orgsupdegnitemcd", gItemCds[i], "orgsupdegnitemno");
  3460. if(utlf_isNull(orgsupdegnitemno))
  3461. {
  3462. if ( extnformrecDs != null ){
  3463. extnformrecDs.filter("degnitemkind != 'FDG' && fstlevlitemcd == '" +gItemCds[i]+ "'");
  3464. sortItemRefDs.appendData(extnformrecDs, true, false);
  3465. extnformrecDs.filter("");
  3466. }
  3467. if( imgerecItemRefDs != null ){
  3468. imgerecItemRefDs.filter(filterStr);
  3469. sortItemRefDs.appendData(imgerecItemRefDs, true, false);
  3470. imgerecItemRefDs.filter("");
  3471. }
  3472. if( fmyrecItemRefDs != null ){
  3473. fmyrecItemRefDs.filter(filterStr);
  3474. sortItemRefDs.appendData(fmyrecItemRefDs, true, false);
  3475. fmyrecItemRefDs.filter("");
  3476. }
  3477. if( etcrecItemRefDs != null ){
  3478. etcrecItemRefDs.filter(filterStr);
  3479. sortItemRefDs.appendData(etcrecItemRefDs, true, false);
  3480. etcrecItemRefDs.filter("");
  3481. }
  3482. fInsertNodes(lastDiagStrDestDs, lastDiagStrSrcDs); //2010-03-30 오후 9:03:47 강지훈 추가 : 입퇴원요약지 최종진단명 추가
  3483. // copyNodeset(pageInfo.sortItemRef, "/root/hidden/extnformrec/recinfo/recitem[degnitemkind != 'FDG' and fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  3484. // copyNodeset(pageInfo.sortItemRef, pageInfo.imgerecItemRef + "[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  3485. // copyNodeset(pageInfo.sortItemRef, pageInfo.fmyrecItemRef + "/recitem[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model); //가계도
  3486. // copyNodeset(pageInfo.sortItemRef, pageInfo.etcrecItemRef + "/recitem[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model); //추가기록
  3487. // fInsertNodes(lastDiagStrDest, lastDiagStrSrc); //2010-03-30 오후 9:03:47 강지훈 추가 : 입퇴원요약지 최종진단명 추가
  3488. continue;
  3489. }
  3490. var degnitemlevlcd = this.objects["ds_data_formdegn"].lookup("degnitemno", orgsupdegnitemno, "degnitemlevlcd");
  3491. var fstLevlBaseItemCd = degnitemlevlcd.substr(0, degnitemlevlcd.indexOf(".") >= 0 ? degnitemlevlcd.indexOf(".") : degnitemlevlcd.length);
  3492. var fstLevlItemCd = this.objects["ds_data_formdegn"].lookup("degnitemlevlcd", fstLevlBaseItemCd, "degnitemcd");
  3493. if (utlf_isNull(tmp))
  3494. {
  3495. //2010-07-27 김달현
  3496. //의뢰상태의 격리병실신청 수정시 보이지 않는 회신내역 필수체크때문에 수정안되는 오류발생(요청번호:9731)
  3497. //HIT강지훈사원이 MMR04900에 ivw.src공백처리로 수정했으나(2010-04-06) 이 부분으로 인해 컨설트 회신시 입력한 내용이 공백으로 저장된 오류발생해 다시 주석처리함.
  3498. //notChkEssnYn 플래그를 추가함.(ivw.attribute)값이 Y일 경우는 필수체크 안함. N으로 설정한 경우만 필수체크함.
  3499. sysf_trace_emr("jw.choe ctrlIvw.attribute(\"notChkEssnYn\") 확인필요 "+ ctrlIvw.name +" MMRCommon");
  3500. if(ctrlIvw.notChkEssnYn != "Y" && ctrlIvw.chkEssentialitem(gItemCds[i].substr(0, 7)) == false)//필수 입력항목 체크(특수서식)
  3501. {
  3502. return savedInfo;
  3503. }
  3504. }
  3505. ctrlIvw.getSaveData("ds_temp_sort_recitem", "append", this, NewPageInfo(ctrlIvw, fstLevlItemCd));
  3506. }
  3507. if ( extnformrecDs != null ){
  3508. extnformrecDs.filter("degnitemkind != 'FDG' && fstlevlitemcd == '" +gItemCds[i]+ "'");
  3509. sortItemRefDs.appendData(extnformrecDs, true, false);
  3510. extnformrecDs.filter("");
  3511. }
  3512. if( imgerecItemRefDs != null ){
  3513. imgerecItemRefDs.filter(filterStr);
  3514. sortItemRefDs.appendData(imgerecItemRefDs, true, false);
  3515. imgerecItemRefDs.filter("");
  3516. }
  3517. if( etcrecItemRefDs != null ){
  3518. etcrecItemRefDs.filter(filterStr);
  3519. sortItemRefDs.appendData(etcrecItemRefDs, true, false);
  3520. etcrecItemRefDs.filter("");
  3521. }
  3522. if( fmyrecItemRefDs != null ){
  3523. fmyrecItemRefDs.filter(filterStr);
  3524. sortItemRefDs.appendData(fmyrecItemRefDs, true, false);
  3525. fmyrecItemRefDs.filter("");
  3526. }
  3527. fInsertNodes(lastDiagStrDestDs, lastDiagStrSrcDs);
  3528. // copyNodeset(pageInfo.sortItemRef, "/root/hidden/extnformrec/recinfo/recitem[degnitemkind != 'FDG' and fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  3529. // copyNodeset(pageInfo.sortItemRef, pageInfo.imgerecItemRef + "[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model);
  3530. // copyNodeset(pageInfo.sortItemRef, pageInfo.etcrecItemRef + "/recitem[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model); //추가기록
  3531. // copyNodeset(pageInfo.sortItemRef, pageInfo.fmyrecItemRef + "/recitem[fstlevlitemcd = '" +gItemCds[i]+ "']", "append", model, model); //가계도
  3532. // fInsertNodes(lastDiagStrDest, lastDiagStrSrc); //2010-03-30 오후 9:03:47 강지훈 추가 : 입퇴원요약지 최종진단명 추가
  3533. }
  3534. SortRecItem();
  3535. // sysf_trace_emr(ds_hidden_recitem.saveXML());
  3536. sysf_trace_emr("jw.choe opener -> parent 변경 this : ivw_base, parent : ivw_loader ");
  3537. dsf_copyDsList(arrDsHiddenRecinfo, arrDsHiddenRecinfo, "replace", parent, this);
  3538. //copyNodeset(pageInfo.recItemRef2, pageInfo.recItemRef2, "replace", opener.model, model);
  3539. //2010.01.12 안치원 - MTX의 필수입력시 기본부분서식이 있으면 부분서식을, 없으면 MTX의 입력여부를 검사한다.
  3540. if (utlf_isNull(tmp))
  3541. {
  3542. //필수 입력항목 체크(특수서식)
  3543. if(chkEssentialitem() == false)
  3544. {
  3545. return savedInfo;
  3546. }
  3547. }
  3548. }
  3549. /**
  3550. * @desc : Text Box 최대화(컨설트서식을 위해 다시 추가)
  3551. * @id :
  3552. * @event :
  3553. * @return : void
  3554. * @authur : 박종훈
  3555. */
  3556. function SetMultiTextFull(ivwObj, pDegnItemNo)
  3557. {
  3558. if (ivwObj.unitformcd == "0000000005")
  3559. {
  3560. ivwObj.fSetMtxSize(pDegnItemNo, 0, 0, parseInt(ivwObj.position.width)-5, parseInt(ivwObj.position.height));
  3561. }
  3562. }
  3563. /**
  3564. * @desc :환자처방정보 가져오기
  3565. * @id :
  3566. * @event : onclick
  3567. * @return : void
  3568. * @authur : 박종훈
  3569. */
  3570. function GetPatDrugPrcpList(itemCd, itemCd1)
  3571. {
  3572. var pageInfo = new PAGEINFO();
  3573. var prcpdd = "";
  3574. var bfflag = "bfprcp";
  3575. var flag = "";
  3576. var todd = "";
  3577. var pid = parent.model.getValue(pageInfo.recMastRef + "/pid");
  3578. var orddd = parent.model.getValue(pageInfo.recMastRef + "/orddd");
  3579. var cretno = parent.model.getValue(pageInfo.recMastRef + "/cretno");
  3580. var orddrid = parent.model.getValue(pageInfo.recMastRef + "/orddrid");
  3581. var orddeptcd = parent.model.getValue(pageInfo.recMastRef + "/orddeptcd");
  3582. var prcpgenrflag = parent.model.getValue(pageInfo.recMastRef + "/chosflag");
  3583. if (prcpgenrflag == "I" || prcpgenrflag == "E" || prcpgenrflag == "D")
  3584. {
  3585. prcpdd = parent.model.getValue(pageInfo.recMastRef + "/formrecdd");
  3586. }
  3587. else
  3588. {
  3589. prcpdd = orddd;
  3590. }
  3591. //처방정보 가져오기(퇴원처방 prcpkindcd = 60)
  3592. if(fBfPrcpSrchCom(pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true))
  3593. {
  3594. //투약
  3595. var nodelistDrugPrcpinfo = model.instances(0).selectNodes("/root/prcpsrch/prcplist[(prcpkindcd != '' and prcphistcd != 'C' and prcphistcd != 'L' and prcphistcd != 'E') and (prcpclscd = 'A2' or prcpclscd = 'A4' or prcpclscd = 'A6')]");
  3596. //처치
  3597. var nodelistPrcpinfo = model.instances(0).selectNodes("/root/prcpsrch/prcplist[(prcpkindcd != '' and prcphistcd != 'C' and prcphistcd != 'L' and prcphistcd != 'E') and (prcpclscd = 'H2' or prcpclscd = 'H4')]");
  3598. }
  3599. var prcpkind = ""; //처방종류
  3600. var orgprcpnm = ""; //처방명
  3601. var drugmthdspccdnm = ""; //용법
  3602. var prcpdelivefact = ""; //전달사항
  3603. var prcplist = "";
  3604. var prcphistcd = ""; //임시,인증구분
  3605. var prcpclscd = "";
  3606. var tmpdrugmthdspccdnm = "";
  3607. if(nodelistDrugPrcpinfo.length >= 1){
  3608. for(var i = 1; i <= nodelistDrugPrcpinfo.length; i++)
  3609. {
  3610. var subNode = nodelistDrugPrcpinfo.item(i - 1);
  3611. //orgprcpnm = subNode.selectSingleNode("orgprcpnm").text;
  3612. tmpdrugmthdspccdnm = subNode.selectSingleNode("drugmthdspccdnm").text;
  3613. prcpkind = subNode.selectSingleNode("tempcol13").text;
  3614. orgprcpnm = subNode.selectSingleNode("tempcol6").text;
  3615. drugmthdspccdnm = subNode.selectSingleNode("tempcol7").text;
  3616. prcpclscd = subNode.selectSingleNode("prcpclscd").text;
  3617. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  3618. drugmthdspccdnm = drugmthdspccdnm.replace("[급]", "");
  3619. drugmthdspccdnm = drugmthdspccdnm.replace("[일]", "");
  3620. drugmthdspccdnm = drugmthdspccdnm.replace("[본]", "");
  3621. drugmthdspccdnm = drugmthdspccdnm.replace("(집)", "");
  3622. drugmthdspccdnm = drugmthdspccdnm.replace("[home]", "");
  3623. drugmthdspccdnm = drugmthdspccdnm.replace("[임상]", "");
  3624. drugmthdspccdnm = drugmthdspccdnm.replace("[prn]", "");
  3625. prcpdelivefact = subNode.selectSingleNode("prcpdelivefact").text;
  3626. prcphistcd = subNode.selectSingleNode("prcphistcd").text;
  3627. if(prcphistcd == "T")
  3628. {
  3629. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  3630. {
  3631. prcplist += "[임] " + orgprcpnm + " " + drugmthdspccdnm + "\n"
  3632. }
  3633. else
  3634. {
  3635. prcplist += "[임] " + orgprcpnm + "\n"
  3636. }
  3637. }
  3638. else
  3639. {
  3640. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  3641. {
  3642. prcplist += orgprcpnm + " " + drugmthdspccdnm + "\n"
  3643. }
  3644. else
  3645. {
  3646. prcplist += orgprcpnm + "\n"
  3647. }
  3648. }
  3649. }
  3650. }
  3651. var prerec = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts");
  3652. if (prerec != "")
  3653. {
  3654. prerec = prerec + "\n" + prcplist + "\n";
  3655. }
  3656. else
  3657. {
  3658. prerec = prcplist + "\n"
  3659. }
  3660. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", prerec);
  3661. var prcpkind = ""; //처방종류
  3662. var orgprcpnm = ""; //처방명
  3663. var drugmthdspccdnm = ""; //용법
  3664. var prcpdelivefact = ""; //전달사항
  3665. var prcplist = "";
  3666. var prcphistcd = ""; //임시,인증구분
  3667. var prcpclscd = "";
  3668. var tmpdrugmthdspccdnm = "";
  3669. if(nodelistPrcpinfo.length >= 1){
  3670. for(var i = 1; i <= nodelistPrcpinfo.length; i++)
  3671. {
  3672. var subNode = nodelistPrcpinfo.item(i - 1);
  3673. prcpkind = subNode.selectSingleNode("tempcol13").text;
  3674. orgprcpnm = subNode.selectSingleNode("tempcol6").text;
  3675. tmpdrugmthdspccdnm = subNode.selectSingleNode("drugmthdspccdnm").text;
  3676. drugmthdspccdnm = subNode.selectSingleNode("tempcol7").text;
  3677. prcpclscd = subNode.selectSingleNode("prcpclscd").text;
  3678. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  3679. drugmthdspccdnm = drugmthdspccdnm.replace("[급]", "");
  3680. drugmthdspccdnm = drugmthdspccdnm.replace("[일]", "");
  3681. drugmthdspccdnm = drugmthdspccdnm.replace("[본]", "");
  3682. drugmthdspccdnm = drugmthdspccdnm.replace("(집)", "");
  3683. drugmthdspccdnm = drugmthdspccdnm.replace("[home]", "");
  3684. drugmthdspccdnm = drugmthdspccdnm.replace("[임상]", "");
  3685. drugmthdspccdnm = drugmthdspccdnm.replace("[prn]", "");
  3686. prcpdelivefact = subNode.selectSingleNode("prcpdelivefact").text;
  3687. prcphistcd = subNode.selectSingleNode("prcphistcd").text;
  3688. if(prcphistcd == "T")
  3689. {
  3690. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  3691. {
  3692. prcplist += "[임] " + orgprcpnm + " " + drugmthdspccdnm + "\n"
  3693. }
  3694. else
  3695. {
  3696. prcplist += "[임] " + orgprcpnm + "\n"
  3697. }
  3698. }
  3699. else
  3700. {
  3701. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  3702. {
  3703. prcplist += orgprcpnm + " " + drugmthdspccdnm + "\n"
  3704. }
  3705. else
  3706. {
  3707. prcplist += orgprcpnm + "\n"
  3708. }
  3709. }
  3710. }
  3711. }
  3712. var prerec = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd1 + "']/reccnts");
  3713. if (prerec != "")
  3714. {
  3715. prerec = prerec + "\n" + prcplist + "\n";
  3716. }
  3717. else
  3718. {
  3719. prerec = prcplist + "\n"
  3720. }
  3721. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd1 + "']/reccnts", prerec);
  3722. model.refresh();
  3723. }
  3724. /**
  3725. * @desc :공통기록 디폴트 포커스처리(MTX)
  3726. * @id :
  3727. * @event : onclick
  3728. * @return : void
  3729. * @authur : 박종훈
  3730. */
  3731. function SetDefFocusMTX(itemArr)
  3732. {
  3733. sysf_trace_emr("***** SetDefFocusMTX("+itemArr+") MMRCommon *****");
  3734. var ctrlTar;
  3735. for (var i = 0; i < itemArr.length; i++)
  3736. {
  3737. ctrlTar = this.components["tar_" + itemArr[i]];
  3738. if (ctrlTar != null && ctrlTar.visible)
  3739. {
  3740. ctrlTar.setFocus();
  3741. frmf_inputEnterKey("tar_" + itemArr[i], "onkeyup", new KeyEventInfo);
  3742. //ctrlTar.dispatch("onkeyup");
  3743. break;
  3744. }
  3745. }
  3746. }
  3747. /**
  3748. * @desc :공통기록 디폴트 포커스처리(IVW)
  3749. * @id :
  3750. * @event : onclick
  3751. * @return : void
  3752. * @authur : 박종훈
  3753. */
  3754. function SetDefFocusIVW(itemArr)
  3755. {
  3756. var ctrlIvw;
  3757. var mtxNm = "MTX_1";
  3758. var mtx
  3759. for (var i = 0; i < itemArr.length; i++)
  3760. {
  3761. ctrlIvw = document.controls("ivw_" + itemArr[i]);
  3762. if (ctrlIvw != null && ctrlIvw.visible && ctrlIvw.src != "")
  3763. {
  3764. var mtx = ctrlIvw.window.document.controls(mtxNm);
  3765. if (mtx == null)
  3766. continue;
  3767. ctrlIvw.model.setFocus(mtxNm);
  3768. mtx.dispatch("onkeyup");
  3769. break;
  3770. }
  3771. }
  3772. }
  3773. /**
  3774. * @desc : 부분서식 로딩 후 기록내용 셋팅(보완필요)
  3775. * @id :
  3776. * @event :
  3777. * @return : void
  3778. * @authur : 박종훈
  3779. */
  3780. function InitUnitFormDataBySupdegnitemcd(itemcd)
  3781. {
  3782. if (fGetFormRec("status") != "U")
  3783. return;
  3784. var ctrlIvw;
  3785. var pageInfo = new PAGEINFO();
  3786. //var degnitemcdlist = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind = 'FRM' and itemuseflag='F0']/degnitemcd");
  3787. //var supdegnitemcdlist = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind = 'FRM' and itemuseflag='F0']/supdegnitemcd");
  3788. var node = model.instances(0).selectSingleNode(pageInfo.formdegnRef + "[degnitemkind = 'FRM' and itemuseflag='F0' and supdegnitemcd = '" + itemcd + "']");
  3789. var degnitemcd = node.getXPathString("degnitemcd");
  3790. var supdegnitemcd = node.getXPathString("supdegnitemcd");
  3791. var degnitemlevlcd = node.getXPathString("degnitemlevlcd");
  3792. ctrlIvw = document.controls("ivw_" + supdegnitemcd);
  3793. if (ctrlIvw != null && ctrlIvw.visible && ctrlIvw.src != "")
  3794. {
  3795. ctrlIvw.window.javascript.clearData();
  3796. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  3797. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  3798. setSrchData(pageInfo.recItemRef2 + "[fstlevlitemcd='" +fstlevlitemcd+ "' and formcd = '" + degnitemcd + "']", ctrlIvw);
  3799. }
  3800. model.removeNodeset(pageInfo.extnrecItemRef);
  3801. var cnt = getNodesetCnt(model, pageInfo.forminfoRef + "/extnformlist");
  3802. for (var i = 1; i <= cnt; i++)
  3803. {
  3804. // stmt = pageInfo.recItemRef2 + "[degnitemkind != 'FDG' and fstlevlitemcd='" +model.getValue(pageInfo.forminfoRef + "/extnformlist[" +i+ "]/supdegnitemcd")+
  3805. // "' and formcd = '" + model.getValue(pageInfo.forminfoRef + "/extnformlist[" +i+ "]/formcd") + "']";
  3806. //가계도는 확장서식에 붙으면 안되는 문제로 수정(박종훈/2008-09-29)
  3807. stmt = pageInfo.recItemRef2 + "[degnitemkind != 'FDG' and fstlevlitemcd='" +model.getValue(pageInfo.forminfoRef + "/extnformlist[" +i+ "]/supdegnitemcd")+
  3808. "' and formcd = '" + model.getValue(pageInfo.forminfoRef + "/extnformlist[" +i+ "]/formcd") + "']";
  3809. copyNodeset(pageInfo.extnrecItemRef, stmt, "append", model, model);
  3810. model.removeNodeset(stmt);
  3811. }
  3812. copyNodeset(pageInfo.imgerecItemRef, pageInfo.recItemRef2 + "[degnitemkind='IMG' and rowno != '']", "replace", model, model);
  3813. copyNodeset(pageInfo.fmyrecItemRef + "/recitem", pageInfo.recItemRef2 + "[degnitemkind='FDG']", "replace", model, model);
  3814. copyNodeset(pageInfo.etcrecItemRef + "/recitem", pageInfo.recItemRef2 + "[degnitemno='0']", "replace", model, model);
  3815. copyNodeset(pageInfo.lastdiagItemRef + "/recitem", pageInfo.recItemRef2 + "[formcd = '1000007943']", "replace", model, model); //2010-03-31 오전 10:14:27 강지훈추가 : 최종진단명 요약지 추가
  3816. }
  3817. /**
  3818. * @group :
  3819. * @ver : 2008.06.23
  3820. * @by : snoweye
  3821. * @---------------------------------------------------
  3822. * @type : function
  3823. * @access : public
  3824. * @desc : Section영역 최대화 ( <-- SetMaxSizeSection)
  3825. * @param : itemCds - 섹션 itemcd 배열
  3826. * @return :
  3827. * @---------------------------------------------------
  3828. */
  3829. function loadClickSection(itemCd)
  3830. {
  3831. // var ctrlID = event.target;
  3832. // var itemcd = ctrlID.replace("lbl_", "");
  3833. var ctrl = null;
  3834. var prevItemCd = gMaxSectionID;
  3835. var unitformcd = "";
  3836. var secCtrl = this.components["lbl_" + itemCd];
  3837. var fidx = ds_data_unitformmast.findRowExpr("orgsupdegnitemcd=='"+itemCd+"'");
  3838. var formdegnseq = ds_data_unitformmast.getColumn(fidx, "formdegnseq");
  3839. unitformcd = ds_data_unitformmast.getColumn(fidx, "formcd");
  3840. if(utlf_isNull(formdegnseq))
  3841. ctrl = this.components["tar_" + itemCd];
  3842. else
  3843. ctrl = this.components["ivw_" + itemCd];
  3844. //섹션 선택시 해당 섹션의 부분서식의 로딩되어있는지 확인하여
  3845. //로딩되어 있지 않으면 부분서식로딩
  3846. var ivwObj = this.components["ivw_" + itemCd];
  3847. if(utlf_isNull(ivwObj.url))
  3848. {
  3849. var unitformcd = ds_data_unitformmast.getColumn(fidx, "formcd");
  3850. if (!utlf_isNull(unitformcd))
  3851. {
  3852. ivwObj.supdegnitemcd = itemCd;
  3853. ivwObj.unitformcd = unitformcd;
  3854. trace(unitformcd + " Loading 시작 : " + utlf_getCurrentTime());
  3855. loadUnitForm(ivwObj, itemCd);
  3856. trace(unitformcd + " Loading 끝 : " + utlf_getCurrentTime());
  3857. }
  3858. }
  3859. }
  3860. /**
  3861. * @desc : 공통서식내의 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시한다.
  3862. * @id :
  3863. * @event : 공통서식을 열었을때
  3864. * @param : pViewObj - button을 가지고 있는 화면이 열린 view
  3865. * pButtonIds - 확장버튼(이미지,가계도,추가기록)의 id 의 배열
  3866. * @return : void
  3867. * @authur : 안치원
  3868. * @history : 2009.09.09 신규 안치원 ACW_090909A
  3869. */
  3870. function setButtonToggleAllByRecYn(pViewObj, pButtonIds)
  3871. {
  3872. sysf_trace_emr("***** setButtonToggleAllByRecYn("+pViewObj+", "+pButtonIds+") MMRCommon *****");
  3873. if( pButtonIds == null ) return;
  3874. for (var i = 0; i < pButtonIds.length; i++) {
  3875. setButtonToggleByRecYn(pViewObj, pButtonIds[i]);
  3876. }
  3877. }
  3878. /**
  3879. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시한다.
  3880. * @id :
  3881. * @event : 확장버튼 클릭후에 열린 팝업창이 닫힐때,
  3882. * setButtonToggleAllByRecYn 에 의한 호출일때
  3883. * @param : pViewObj - button을 가지고 있는 화면이 열린 view
  3884. * pButtonIds - 확장버튼(이미지,가계도,추가기록)의 id
  3885. * @return : void
  3886. * @authur : 안치원
  3887. * @history : 2009.09.09 신규 안치원 ACW_090909A
  3888. */
  3889. function setButtonToggleByRecYn(pViewObj, pButtonId)
  3890. {
  3891. sysf_trace_emr("***** setButtonToggleByRecYn ("+pViewObj+", "+pButtonId+") MMRCommon *****");
  3892. //alert("setButtonToggleByRecYn>>pButtonId::"+pButtonId);
  3893. /**
  3894. * pButtonId Example
  3895. * btn_imge_0008224001 이미지
  3896. * btn_fmy_0008224001 가계도
  3897. * btn_etcrec_0008224001 추가기록
  3898. */
  3899. var buttonObj = null;
  3900. if (pViewObj == null) {
  3901. pViewObj = this;
  3902. }
  3903. sysf_trace_emr("@@@@@ pViewObj.name : " + pViewObj.name + " @@@@@");
  3904. buttonObj = pViewObj.components[pButtonId];
  3905. var arr = pButtonId.split("_");
  3906. var supperItemCd = arr[2];
  3907. var recPath = "";
  3908. if (arr[1] == "imge") {
  3909. recPath = "ds_temp_imgerec_recitem";//gPageInfo.imgerecItemRef;
  3910. }
  3911. else if (arr[1] == "fmy") {
  3912. recPath = "ds_temp_fmyrec_recitem";//gPageInfo.fmyrecItemRef + "_recitem";
  3913. }
  3914. else if (arr[1] == "etcrec") {
  3915. recPath = "ds_temp_etcrec_recitem";//gPageInfo.etcrecItemRef + "_recitem";
  3916. }
  3917. else if (arr[1] == "lastdiag") { //2010-02-16 오후 3:35:13 강지훈 추가
  3918. recPath = "ds_temp_lastdiag_recitem";//gPageInfo.lastdiagItemRef + "_recitem";
  3919. }
  3920. else {
  3921. return;
  3922. }
  3923. if( utlf_isNull(pViewObj.objects[recPath]) ) var nodes = 0;
  3924. //alert("setButtonToggleByRecYn>>supperItemCd::"+supperItemCd);
  3925. else var nodes = (pViewObj.objects[recPath]).getCaseCount("fstlevlitemcd == '" + supperItemCd + "'");
  3926. //alert("setButtonToggleByRecYn>>nodes.length::"+nodes.length);
  3927. //sysf_trace_emr("setButtonToggleByRecYn>>nodes.length::"+nodes);
  3928. if (arr[1] == "imge") {
  3929. if (nodes > 0) {
  3930. buttonObj.style.backgroundImage = "IMG::emr\\MR\\icon_picture_s.png";
  3931. //buttonObj.attribute("background-image") = "../../../emr/commonweb/images/icon_picture_s.jpg";
  3932. }
  3933. else {
  3934. buttonObj.style.image = "IMG::emr\\MR\\icon_picture.gif";
  3935. //buttonObj.attribute("background-image") = "../../../com/commonweb/images/icon_picture.gif";
  3936. }
  3937. } else {
  3938. if (nodes > 0) {
  3939. buttonObj.class = "btn5";
  3940. }
  3941. else {
  3942. buttonObj.class = "btn2";
  3943. }
  3944. }
  3945. }
  3946. /**
  3947. * @desc : 사용자 답변 조회
  3948. * @
  3949. * @param :
  3950. * @return :
  3951. * @author : 김영학
  3952. * @---------------------------------------------------
  3953. */
  3954. function fGetUserEnvOcsOrdAnsw(oDsTarget, qestcd){
  3955. var oDsEnvinfo = emr_getOrderBaseInfo("envinfo");
  3956. if (oDsEnvinfo != null) {
  3957. oDsTarget.copyRow(0, oDsEnvinfo, oDsEnvinfo.findRow("qestcd", sQestCd));
  3958. return oDsTarget;
  3959. // var anstcnt = oDsEnvinfo.getColumn(oDsEnvinfo.findRow("qestcd", sQestCd), "answcnt");
  3960. // return anstcnt;
  3961. }
  3962. // else {
  3963. // var sRef = dsf_createDsRow("ds_cond_reqdata", [{col:"interqestcd", type:"string", size:256, val:sQestCd}]);
  3964. // var oRef = this.objects[sRef];
  3965. //
  3966. // var sDsTemp = dsf_createDs("ds_temp");
  3967. // var oDsTemp = this.objects[sDsTemp];
  3968. //
  3969. // var answcnt = ""; // 답변번호
  3970. //
  3971. // var oParam = {};
  3972. // oParam.id = "TRMMB01104"; // transaction을 구분하기 위한 ID
  3973. // oParam.service = "prcpbaseapp.EnvInfoMngt"; // service ID
  3974. // oParam.method = "reqGetInterfaceAnsw"; // method ID
  3975. // oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  3976. // oParam.outds = sDsTemp + "=interface"; // transaction을 처리 결과를 받을 Dataset의 ID
  3977. //
  3978. // tranf_submit(oParam);
  3979. //
  3980. // answcnt = oDsTemp.getColumn(0, "answcnt");
  3981. //
  3982. // var oRemoveDs = this.removeChild(sDsTemp);
  3983. // oRemoveDs = null;
  3984. // oRemoveDs = this.removeChild(sRef);
  3985. // oRemoveDs = null;
  3986. //
  3987. // return answcnt;
  3988. // }
  3989. /*
  3990. model.removeNodeset(rsltref);
  3991. model.makeNode(rsltref);
  3992. var viewerObj = getViewer("sysMessage");
  3993. //KNUH_20110208, 주희경, 로그인 시 미리 데이터를 조회해 놓고 copy해서 쓰는 방식으로 변경
  3994. var srcNode = viewerObj.window.instance1.selectSingleNode(gvOrderBasicInfoPath +"/interface[qestcd='"+qestcd+"']");
  3995. var targetNode = instance1.selectSingleNode(rsltref);
  3996. var srcChildNodes = srcNode.childNodes;
  3997. for(i=0; i<srcChildNodes.length; i++)
  3998. {
  3999. targetNode.appendChild(srcChildNodes.item(i));
  4000. }
  4001. model.refresh();
  4002. */
  4003. }
  4004. /***************************************************************************************************
  4005. * Function : emr_getOrderBaseInfo
  4006. * Description : 아이디에 해당하는 기초정보를 리턴한다. (시스템메세지 정보 조회)
  4007. * Argument : sID [String : 데이타셋명(ds_를 제외한)]
  4008. * : objSrcDs [Dataset : 리턴 데이타를 받을 데이타셋]
  4009. * return type : [Dataset : 기초정보를 리턴]
  4010. * Creator :
  4011. ***************************************************************************************************/
  4012. function emr_getOrderBaseInfo(sID, objSrcDs)
  4013. {
  4014. var oDescDs = agv_objAppTopPath.form.dv_orderbasicinfo.lf_getOrderBaseInfo(sID);
  4015. if (utlf_isNull(objSrcDs)) {
  4016. return oDescDs
  4017. }
  4018. else {
  4019. objSrcDs.copyData(oDescDs, true);
  4020. }
  4021. }
  4022. function lf_setSrchData(viewobj){
  4023. sysf_trace_emr("***** lf_setSrchData("+viewobj+") *****");
  4024. if( utlf_isNull(viewobj) ) viewobj = this;
  4025. // MRF01200 fFormReady()
  4026. // 초기화 되는 부분 로직 필요
  4027. // if( (parent.objects["ds_temp"] != null && (parent.ds_temp.getColumn(0, "scrid") == "SMMRF01000" || parent.ds_temp.getColumn(0, "scrid") == "SMMRF00600" )) ||
  4028. // (frmf_getCurrentFormKind() != 'main' && ds_temp.getColumn(0, "formxrwyn") == "Y" && ds_temp.getColumn(0, "loadcomplete") != "true"))
  4029. // {
  4030. var loadStatus = "";
  4031. var formkind = viewobj.ds_data_formmast == null ? "" : viewobj.ds_data_formmast.getColumn(0, "formkind");
  4032. if(formkind == "C")
  4033. loadStatus = UNIT_FORM;
  4034. /*
  4035. // 그리드 Height 재설정
  4036. fResetGrd();
  4037. // 현재 달력 설정
  4038. //if(opener.model.getValue("/root/temp/scrid") != "SMMRF01000")
  4039. fSetCurrentDateCal();
  4040. // OCX 이미지 로드
  4041. fLoadOcxImage();
  4042. // 가계도 데이터 로드
  4043. fLoadFdgInfo();
  4044. // 버튼 컨트롤 속성 설정
  4045. //fSetBtnCtrlAttrval();
  4046. // Disabled 컨트롤 재설정
  4047. fResetDisableCtrls();
  4048. // RDO, CHK 컨트롤 서브아이템 텍스트 숨기기 확인
  4049. fSelCtrlHidden();
  4050. */
  4051. dsf_copyDsList(["ds_temp_recitem"], ["ds_data_recitem"], "replace", viewobj, viewobj);
  4052. lf_setItemValueDS(this);
  4053. sysf_trace_emr("jw.choe 초기화 시 ds_data_formmast 는 존재하지 않는다.. MMRCommon ");
  4054. dispOnLoadComplete(loadStatus, viewobj.ds_data_recitem.getColumn(0, "formcd"));
  4055. sysf_trace_emr("MMRCommon parent.frmf_getScreenID() : " + parent.frmf_getScreenID());
  4056. sysf_trace_emr("jw.choe opener -> parent changed! MMRCommon ");
  4057. /*
  4058. // 백업 원위치
  4059. model.copyNode( "/root/temp2/localimage", "/root/main/localimage" );
  4060. model.removenode( "/root/main/localimage" );
  4061. model.makeValue("/root/temp/loadcomplete", "true");
  4062. */
  4063. // fRecalculate() 함수 선행 작업.
  4064. g_degnitemlevlcnt = 0;
  4065. // calculation 갯수 체크하는 부분 제외
  4066. // fSetDegnitemlevlcnt();
  4067. var newflag = parent.frmf_getParameter("fLoadNewForm", "Y");
  4068. if ( newflag == "Y" ) //2010.06.15, 주희경, 제증명 수정모드에서는 디폴트값 셋팅 안하도록
  4069. {
  4070. // 기본값 설정 컨트롤 계산
  4071. fCacDefltVal();
  4072. }
  4073. //2010.06.15, 주희경, 제증명 관리의 이력탬에서 클릭하여 조회시에는 디폴트 값 셋팅 안하도록 설정 해 놓은 세션값 clear
  4074. parent.frmf_clearParameter("fLoadNewForm");
  4075. // 서식데이터를 불러오는 경우 그리드의 rowno 를 CDATA 해제함.
  4076. // fRemoveGrdCdata();
  4077. //20130808 Start
  4078. if(parent.frmf_getScreenID()=="SSMMR01100"){//opener
  4079. var formcd = model.getValue(g_pageInfo.formmastRef + "/formcd");
  4080. if(formcd=="0900005261"){
  4081. var atdoctnm=model.getValue("/root/main/recinfo/recitem[degnitemno='181']/reccnts"); // 전공의
  4082. var staffname = model.getValue("/root/main/recinfo/recitem[degnitemno='182']/rectermcd"); // Staff
  4083. if(atdoctnm==null || atdoctnm==""){
  4084. model.setValue("/root/main/recinfo/recitem[degnitemno='181']/reccnts", getUserInfo("usernm"));
  4085. }
  4086. if(staffname==null || staffname==""){ // 스태프 자동세팅되도록 수정
  4087. var usernm=parent.parent.parent.cmb_anstdrid1.label;
  4088. if(usernm!=null && usernm!="" && usernm!="-"){
  4089. model.makeNode("/root/main/valcd");
  4090. model.makeValue("/root/send/temp/valitemnm", usernm);
  4091. model.makeValue("/root/send/temp/grupcd", "0003106006"); // 서식 아이템에서 스태프에 해당되는 값을 가져온다.
  4092. if(submit("TRMRF00307")){
  4093. if(model.getValue("/root/main/itemvalcd[1]/valcd")!="" && model.getValue("/root/main/itemvalcd[1]/valcd")!=null){
  4094. model.setValue("/root/main/recinfo/recitem[degnitemno='182']/rectermcd", model.getValue("/root/main/itemvalcd[1]/valcd"));
  4095. model.setValue("/root/main/recinfo/recitem[degnitemno='182']/rectermnm", model.getValue("/root/main/itemvalcd[1]/valnm"));
  4096. }
  4097. }
  4098. }
  4099. }
  4100. //20131104 Start 마취전 평가서를 오픈시 마취 일반정보의 수술 구분이 응급이라면 마취전 평가서에 'E'로 체크 되도록 기능 추가
  4101. var opflag=parent.parent.parent.rdo_opflag.value;
  4102. if(opflag=="2"){
  4103. model.setValue("/root/main/recinfo/recitem[degnitemno='146']/rectermcd", "0031829001");
  4104. model.setValue("/root/main/recinfo/recitem[degnitemno='146']/rectermnm", "E");
  4105. }
  4106. //20131104 End
  4107. }
  4108. }
  4109. }
  4110. function lf_setSrchData2(viewobj){
  4111. sysf_trace_emr("***** lf_setSrchData2("+ viewobj +") MMRCommon ******");
  4112. sysf_trace_emr("@@@@@ viewobj : " + viewobj.name + " *****");
  4113. //trace("[DEBUG] setSrchData srcPath::"+srcPath);
  4114. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4115. var pageInfo = new PAGEINFO(viewobj);
  4116. var nodeList = this.objects["ds_hidden_recitem"];
  4117. //viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");//"/root/main/recinfo/recitem";
  4118. viewobj.ds_data_recitem.filter("orgdegnitemkind == 'DGN' || orgdegnitemkind == 'OPN' || orgdegnitemkind == 'CCN'");
  4119. var initRowno = 0;
  4120. var prevColno = 0;
  4121. var cntGSL = 0;
  4122. var prev_Grddegnitemlevlcd = "";
  4123. var prev_Grddegnitemno = "";
  4124. var prev_degnitemlevlcd = "";
  4125. var prev_degnitemno = "";
  4126. var prev_MSLdegnitemno = ""; //2010-03-16 오전 9:17:25 강지훈 : MSL타입 수정모드시 값설정이 제대로 되지않는 오류 수정
  4127. //2010-02-08 오후 1:28:25 강지훈 수정 : default 값이 설정되어있을경우 default값을 빼기위해서 destNode의 값을 일괄삭제
  4128. var filterStr = "!utlf_isNull(rectermcd) || !utlf_isNull(rectermnm) || !utlf_isNull(reccnts)";
  4129. var delNodes = viewobj.ds_data_recitem;
  4130. delNodes.filter(filterStr);
  4131. for(var a = 0; a < delNodes.rowcount; a++){
  4132. //var trgNode = delNodes.item(a);
  4133. if(delNodes.getColumnInfo("rectermcd") != null){
  4134. delNodes.setColumn(a, "rectermcd", "");
  4135. }
  4136. if(delNodes.getColumnInfo("rectermnm") != null){
  4137. delNodes.setColumn(a, "rectermnm", "");
  4138. }
  4139. if(delNodes.getColumnInfo("reccnts") != null){
  4140. delNodes.setColumn(a, "reccnts", "");
  4141. }
  4142. }
  4143. delNodes.filter("");
  4144. var nodeListCnt = nodeList == null ? 0 : nodeList.rowcount;
  4145. if( nodeListCnt == 0 ) sysf_trace_emr("@@@@@ ds_hidden_recitem rowcount == 0 " );
  4146. trace("[DEBUG] setSrchData nodeList.length::"+nodeListCnt);
  4147. for(var i = 0; i < nodeListCnt; i++)
  4148. {
  4149. var srcNode = nodeList; // 기록노드 recitem 하나씩 가져옴.
  4150. //var srcCopyNode = srcNode.cloneNode(true);
  4151. var formcdNode = srcNode.getColumn(i, "formcd");
  4152. var formdegnseqNode = srcNode.getColumn(i, "formdegnseq");
  4153. var degnitemcdNode = srcNode.getColumn(i, "degnitemcd");
  4154. var degnitemnmNode = srcNode.getColumn(i, "degnitemnm");
  4155. trace("[DEBUG] setSrchData degnitemnmNode::"+degnitemnmNode);
  4156. var degnitemnoNode = srcNode.getColumn(i, "degnitemno");
  4157. trace("[DEBUG] setSrchData degnitemnoNode::"+degnitemnoNode);
  4158. var degnitemkindNode = srcNode.getColumn(i, "degnitemkind");
  4159. var degnitemlevlcdNode = srcNode.getColumn(i, "degnitemlevlcd");
  4160. trace("[DEBUG] setSrchData degnitemkindNode::"+degnitemkindNode);
  4161. trace("[DEBUG] setSrchData reccnts::"+srcNode.getColumn(i, "reccnts"));
  4162. var rectermcdNode = srcNode.getColumn(i, "rectermcd");
  4163. var rectermnmNode = srcNode.getColumn(i, "rectermnm");
  4164. var recrefcdNode = srcNode.getColumn(i, "recrefcd");
  4165. var recitemnmNode = srcNode.getColumn(i, "recitemnm");
  4166. var reccntsNode = srcNode.getColumn(i, "reccnts");
  4167. var rownoNode = srcNode.getColumn(i, "rowno");
  4168. var colnoNode = srcNode.getColumn(i, "colno");
  4169. //"/root/main/forminfo/formdegn";
  4170. sysf_trace_emr("jw.choe gridtype??!!!!!");
  4171. /*
  4172. var supdegnitemnoNode = viewobj.ds_data_formdegn.lookup("degnitemno", degnitemnoNode, "supdegnitemno");
  4173. var itemattrvalNode = null;
  4174. if(!utlf_isNull(supdegnitemnoNode))
  4175. itemattrvalNode = viewobj.ds_data_formdegn.lookup("degnitemno", supdegnitemnoNode, "itemattrval");
  4176. var grdtype = "";
  4177. if(!utlf_isNull(itemattrvalNode))
  4178. grdtype = getStyleValue(itemattrvalNode, "gridtype");
  4179. */
  4180. sysf_trace_emr("jw.choe gridtype??!!!!!");
  4181. //"/root/main/forminfo/formmast";
  4182. var destformcdNode = viewobj.objects["ds_data_formmast"] == null ? viewobj.ds_data_recitem.getColumn(0, "formcd") : viewobj.ds_data_formmast.getColumn(0, "formcd");
  4183. sysf_trace_emr("viewobj.objects[\"ds_data_formmast\"] : " + viewobj.objects["ds_data_formmast"] );
  4184. sysf_trace_emr("formcdNode : " + formcdNode + " | destformcdNode : " + destformcdNode );
  4185. if(formcdNode != destformcdNode)
  4186. continue;
  4187. var condition = "formcd == '" + formcdNode + "' && degnitemlevlcd == '" + degnitemlevlcdNode + "'";
  4188. var destNode = null;
  4189. if(degnitemkindNode == "GSU")
  4190. {
  4191. // debugger;
  4192. // GSU의 그리드가 어떤 타입인지 확인한다.
  4193. //// 1. root/temp/recinfo 의 노드를 찾는다.
  4194. var tempRecinfoNode = findNode(viewobj.model, pageInfo.initrecRef);
  4195. //"/root/temp/recinfo/grid/recitem";
  4196. var tmpRecitemNode = viewobj.instance1.selectSingleNode(pageInfo.initRecinfoGridrecItemRef + "[degnitemlevlcd = '" + degnitemlevlcdNode.text + "']");
  4197. var tempParentNode = null;
  4198. var mainGrdType = "";
  4199. if(tmpRecitemNode != null)
  4200. {
  4201. tempParentNode = tmpRecitemNode.parentNode;
  4202. var fst_recitemNode = tempParentNode.selectSingleNode("recitem");
  4203. var top_degnitemnoNode = tempParentNode.selectSingleNode("degnitemno");
  4204. var top_degnitemlevlcdNode = tempParentNode.selectSingleNode("degnitemlevlcd");
  4205. var fst_degnitemkindNode = fst_recitemNode.selectSingleNode("degnitemkind");
  4206. var fst_orgdegnitemkindNode = fst_recitemNode.selectSingleNode("orgdegnitemkind");
  4207. var rootCond = "degnitemno = '" + top_degnitemnoNode.text + "' and degnitemlevlcd = '" + top_degnitemlevlcdNode.text + "'";
  4208. if(top_degnitemnoNode !=null && top_degnitemlevlcdNode != null)
  4209. {
  4210. if(prev_Grddegnitemno == "" && prev_Grddegnitemlevlcd == "")
  4211. {
  4212. prev_Grddegnitemno = top_degnitemnoNode.text;
  4213. prev_Grddegnitemlevlcd = top_degnitemlevlcdNode.text;
  4214. }
  4215. else
  4216. {
  4217. // Grid의 degnitemno와 degnitemlevlcd가 다르면 다른 그리드이므로 값을 초기화한다.
  4218. if(prev_Grddegnitemno != top_degnitemnoNode.text && prev_Grddegnitemlevlcd != top_degnitemlevlcdNode.text)
  4219. {
  4220. prev_Grddegnitemno = top_degnitemnoNode.text;
  4221. prev_Grddegnitemlevlcd = top_degnitemlevlcdNode.text;
  4222. initRowno = 0;
  4223. prevColno = -1;
  4224. prev_degnitemlevlcd = "";
  4225. prev_degnitemno = "";
  4226. prev_row = -1;
  4227. }
  4228. }
  4229. }
  4230. if(fst_orgdegnitemkindNode == null)
  4231. {
  4232. // X축, Y축, G축, T축
  4233. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemlevlcd = '" + top_degnitemlevlcdNode.text + "']/itemattrval");
  4234. if(itemattrvalNode != null)
  4235. mainGrdType = getStyleValue(itemattrvalNode.text, "gridtype");
  4236. //// 2. 찾을 조건을 정의한다.
  4237. if(mainGrdType == "X")
  4238. {
  4239. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  4240. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4241. // 1. root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  4242. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  4243. // grid 노드의 자식노드recitem중 condition에 해당하는 노드를 찾는다.
  4244. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  4245. if(destNode == null)
  4246. {
  4247. // X축 그리드의 빈 컬럼을 추가한다.
  4248. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemlevlcd='" + top_degnitemlevlcdNode.text + "']");
  4249. var tmpgrdList = viewobj.instance1.selectNodes("/root/temp/recinfo/grid[degnitemlevlcd='" + top_degnitemlevlcdNode.text + "']");
  4250. var len = grdList.length;
  4251. var grdNode = "";
  4252. var subRecitemNodeList = "";
  4253. var sublength = 0;
  4254. var subNode = "";
  4255. var tmpNode = "";
  4256. for(var x = 0; x < len; x++)
  4257. {
  4258. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  4259. subRecitemNodeList = grdNode.selectNodes("recitem");
  4260. sublength = subRecitemNodeList.length;
  4261. // recitem의 마지막 컬럼을 복사.
  4262. subNode = subRecitemNodeList.item(sublength-1);
  4263. tmpNode = subNode.cloneNode(true);
  4264. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  4265. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  4266. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  4267. else
  4268. tmpNode.selectSingleNode("reccnts").text = "";
  4269. tmpNode.selectSingleNode("rectermcd").text = "";
  4270. tmpNode.selectSingleNode("rectermnm").text = "";
  4271. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  4272. grdNode.appendChild(tmpNode);
  4273. }
  4274. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  4275. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  4276. var grd = viewobj.document.controls("GRD_" + top_degnitemnoNode.text);
  4277. if(grd == null)
  4278. continue;
  4279. var cols = grd.cols;
  4280. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  4281. grd.rebuild();
  4282. model.refresh();
  4283. }
  4284. else
  4285. {
  4286. // 복사할 대상 노드를 찾은 경우
  4287. // 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  4288. destNode.parentNode.replaceChild(srcCopyNode, destNode);
  4289. }
  4290. continue;
  4291. }
  4292. /*
  4293. else if(mainGrdType == "Y")
  4294. {
  4295. // 이전 Colno 보다 colnoNode가 큰 경우
  4296. if(prev_degnitemlevlcd == "")
  4297. {
  4298. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  4299. prev_degnitemno = degnitemnoNode.text;
  4300. }
  4301. else
  4302. {
  4303. if(prev_degnitemno != degnitemnoNode.text && prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) < parseInt(colnoNode.text)))
  4304. {
  4305. prevColno =colnoNode.text;
  4306. }
  4307. // 이전 Colno 와 colnoNode가 같은 경우
  4308. else if(prev_degnitemno != degnitemnoNode.text && prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) >= parseInt(colnoNode.text)))
  4309. {
  4310. initRowno++;
  4311. }
  4312. else // 이전 Colno 보다 colnoNode가 작은 경우 다음 row로 넘어간다.
  4313. {
  4314. initRowno++;
  4315. prevColno =colnoNode.text;
  4316. }
  4317. }
  4318. //condition = condition + " and rowno = '" + initRowno + "' and colno = '" + colnoNode.text + "'";
  4319. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  4320. }
  4321. */
  4322. else // Y축, G축, T축
  4323. {
  4324. // G축, T축 그리드
  4325. // 행추가/삭제, 열추가/삭제가 없으므로 DB에 저장된 rowno, colno 그대로 맵핑한다.
  4326. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  4327. }
  4328. ///////////////////////////////////////////////////////////////////
  4329. //// 3. root/main/recinfo 에서 Grid를 찾는다.
  4330. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + rootCond + "]");
  4331. var tmpdestNode = null;
  4332. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  4333. {
  4334. var subgrdNode = tmpDestNodeList.item(idx);
  4335. tmpdestNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  4336. if(tmpdestNode != null)
  4337. {
  4338. break;
  4339. }
  4340. }
  4341. //// 4. root/main/recinfo 노드에 해당 GRD기 없으면 temp/recinfo 에서 찾은 grid 노드를 main으로 복사한다.
  4342. // rowno 를 initRowno로 수정한 후 복사한다.
  4343. if(tmpdestNode == null)
  4344. {
  4345. var mainParentNode = tempParentNode.cloneNode(true);
  4346. var recitemList = mainParentNode.selectNodes("recitem");
  4347. for(var tmpidx = 0; tmpidx < recitemList.length; tmpidx++)
  4348. {
  4349. var tmpSubRecNode = recitemList.item(tmpidx);
  4350. tmpSubRecNode.selectSingleNode("rowno").text = rownoNode.text;
  4351. }
  4352. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  4353. if(recinfoNode == null)
  4354. {
  4355. viewobj.document.models(0).makeNode(pageInfo.recRef);
  4356. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  4357. }
  4358. recinfoNode.appendChild(mainParentNode);
  4359. }
  4360. }
  4361. else
  4362. {
  4363. // DGN, OPN, CCN
  4364. mainGrdType = fst_orgdegnitemkindNode.text;
  4365. //// 2. 찾을 조건을 정의한다.
  4366. // 이전 Colno 보다 colnoNode가 큰 경우
  4367. if(prev_degnitemlevlcd == "")
  4368. {
  4369. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  4370. }
  4371. else
  4372. {
  4373. // rowno는 같고 이전 Colno 보다 현재 colnoNode가 큰 경우
  4374. if(prev_degnitemlevlcd != degnitemlevlcdNode.text && (parseInt(prevColno) < parseInt(colnoNode.text)))
  4375. {
  4376. prevColno =colnoNode.text;
  4377. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  4378. }
  4379. // 이전 Colno 와 colnoNode가 같은 경우 rowno를 증가시킴
  4380. else if(prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) == parseInt(colnoNode.text)))
  4381. {
  4382. initRowno++;
  4383. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  4384. }
  4385. else // 이전 Colno 보다 colnoNode가 작은 경우 다음 row로 넘어간다.
  4386. {
  4387. initRowno++;
  4388. prevColno =colnoNode.text;
  4389. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  4390. }
  4391. }
  4392. condition = condition + " and rowno = '" + initRowno + "' and colno = '" + colnoNode.text + "'";
  4393. //// 3. root/main/recinfo 항목을 찾는다.
  4394. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + rootCond + "]");
  4395. var tmpdestNode = null;
  4396. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  4397. {
  4398. var subgrdNode = tmpDestNodeList.item(idx);
  4399. tmpdestNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  4400. if(tmpdestNode != null)
  4401. {
  4402. break;
  4403. }
  4404. }
  4405. //// 4. root/main/recinfo 노드에 해당 GRD가 없으면 temp/recinfo 에서 찾은 grid 노드를 main으로 복사한다.
  4406. //// rowno 를 initRowno로 수정한 후 복사한다.
  4407. if(tmpdestNode == null)
  4408. {
  4409. var mainParentNode = tempParentNode.cloneNode(true);
  4410. var recitemList = mainParentNode.selectNodes("recitem");
  4411. for(var tmpidx = 0; tmpidx < recitemList.length; tmpidx++)
  4412. {
  4413. var tmpSubRecNode = recitemList.item(tmpidx);
  4414. tmpSubRecNode.selectSingleNode("rowno").text = initRowno;
  4415. }
  4416. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  4417. if(recinfoNode == null)
  4418. {
  4419. viewobj.document.models(0).makeNode(pageInfo.recRef);
  4420. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  4421. }
  4422. recinfoNode.appendChild(mainParentNode);
  4423. }
  4424. srcCopyNode.selectSingleNode("rowno").text = initRowno;
  4425. }
  4426. }
  4427. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  4428. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4429. //// 5. main/recinfo 노드에서 해당 노드를 찾지 못하면 다시한번 temp 에서 찾아 main으로 복사한다.
  4430. if(destNode == null)
  4431. {
  4432. // 2. /root/main/recinfo 에서 못찾으면 /root/temp/recinfo 에서 찾아온다.
  4433. var supdegnitemlevlcd = degnitemlevlcdNode.text.substr(0, degnitemlevlcdNode.text.lastIndexOf("."));
  4434. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  4435. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  4436. if(grdNode != null)
  4437. {
  4438. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  4439. var grdCloneNode = grdNode.cloneNode(true);
  4440. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  4441. for(var idx = 0; idx < recitemNodeList.length; idx++)
  4442. {
  4443. // recitem
  4444. var recitemNode = recitemNodeList.item(idx);
  4445. recitemNode.selectSingleNode("rowno").text = initRowno; //rownoNode.text;
  4446. }
  4447. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4448. // 5. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술명/주호소 인지를 판단한다.
  4449. if(orgdegnitemkindNode != null)
  4450. {
  4451. if(orgdegnitemkindNode.text == "DGN" // 진단명
  4452. || orgdegnitemkindNode.text == "OPN" // 수술
  4453. || orgdegnitemkindNode.text == "CCN") // 주호소
  4454. {
  4455. recinfoNode.appendChild(grdCloneNode);
  4456. }
  4457. }
  4458. else
  4459. {
  4460. // 현재 grdNode는 root/temp/recinfo의 그리드노드이므로, root/main/recinfo의 그리드노드를 찾는다.
  4461. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']");
  4462. // rowno 순서를 맞추기 위해 srcNode의 rowno 이전의 GRD를 찾는다.
  4463. for(var idx = 0; idx < grdNodeList.length; idx++)
  4464. {
  4465. var subgrdNode = grdNodeList.item(idx);
  4466. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  4467. {
  4468. grdNode = subgrdNode;
  4469. break;
  4470. }
  4471. }
  4472. recinfoNode.insertAfter(grdCloneNode, grdNode);
  4473. }
  4474. grdNode = grdCloneNode;
  4475. }
  4476. //2010.06.08 김달현 수정. grdNode null 처리
  4477. if(grdNode == null){
  4478. continue;
  4479. }
  4480. //교체할 대상 gsu를 구한다.
  4481. //var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  4482. var gsucond = "degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and colno = '" + colnoNode.text + "'";
  4483. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  4484. if(destNode == null)
  4485. {
  4486. addGridCol(supdegnitemnoNode.text, viewobj);
  4487. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  4488. if(destNode == null)
  4489. continue;
  4490. }
  4491. // 기록된 grid의 recitem(srcNode)를 main/recinfo/grid의 recitem(destNode)로 교환한다.
  4492. //replaceChild(node newChild, node oldChild)
  4493. srcCopyNode.selectSingleNode("rowno").text = initRowno; // 저장된 rowno는 순서가 뒤바뀌어 있으므로 initRowno를 대입한다.
  4494. grdNode.replaceChild(srcCopyNode, destNode);
  4495. continue;
  4496. }
  4497. destNode.parentNode.replaceChild(srcCopyNode, destNode);
  4498. }
  4499. else if(degnitemkindNode == "CHK")
  4500. {
  4501. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  4502. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  4503. if(destNode == null)
  4504. continue;
  4505. /*
  4506. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  4507. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  4508. var rectermcd = "";
  4509. for(var idx = 0; idx < srcNodeList.length; idx++)
  4510. {
  4511. var node = srcNodeList.item(idx);
  4512. if(idx == 0)
  4513. rectermcd += node.selectSingleNode("rectermcd").text;
  4514. else
  4515. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  4516. }
  4517. destNode.selectSingleNode("rectermcd").text = rectermcd;
  4518. */
  4519. // CHK 아이템 정렬 문제 수정 setsrchdata, getCheckSaveData
  4520. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  4521. /* 2010.01.27 안치원 - 수정모드시 degnitemno가 같은 item에 값이 설정되는 오류수정
  4522. * 아래 srcPath + "[degnitemno = '" + srcdegnitemno + "']" 의 값이
  4523. * "/root/hidden/recinfo/recitem[fstlevlitemcd='0000098001' and formcd = '0900004557'][degnitemno = '11']"
  4524. * 으로 나옴으로 해서, 앞의 조건은 무시되고 degnitemno = '11'인 값을 가져와 설정하는 문제가 발생했음.
  4525. * 그래서 path의 값이
  4526. * "/root/hidden/recinfo/recitem[fstlevlitemcd='0000098001' and formcd = '0900004557' and degnitemno = '11']"
  4527. * 로 나오도록 수정함.
  4528. */
  4529. //srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  4530. var l_srcPath = srcPath + "[degnitemno = '" + srcdegnitemno + "']";
  4531. l_srcPath = l_srcPath.replace("][", " and ");
  4532. srcNodeList = findNodeset(model, l_srcPath);
  4533. var rectermcd = "";
  4534. var rectermnm = "";
  4535. var reccnts = "";
  4536. for(var idx = 0; idx < srcNodeList.length; idx++)
  4537. {
  4538. var node = srcNodeList.item(idx);
  4539. reccnts = node.selectSingleNode("reccnts").text;
  4540. var tmpRectermnm = node.selectSingleNode("rectermnm").text;
  4541. if(tmpRectermnm == "")
  4542. {
  4543. tmpRectermnm = model.getValue(pageInfo.vallistRef + "[valcd='" + node.selectSingleNode("rectermcd").text + "']/valitemnm");
  4544. }
  4545. if(idx == 0)
  4546. {
  4547. rectermcd += node.selectSingleNode("rectermcd").text;
  4548. rectermnm += tmpRectermnm; //node.selectSingleNode("rectermnm").text;
  4549. }
  4550. else
  4551. {
  4552. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  4553. rectermnm += "▦" + tmpRectermnm; //node.selectSingleNode("rectermnm").text;
  4554. }
  4555. }
  4556. destNode.selectSingleNode("rectermcd").text = rectermcd;
  4557. destNode.selectSingleNode("rectermnm").text = rectermnm;
  4558. destNode.selectSingleNode("reccnts").text = reccnts;
  4559. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text; //2010.04.29, 주희경, 기록 수정 시 수식 계산을 위해 기록시 저장한 rowno셋팅
  4560. }
  4561. else if(degnitemkindNode == "MSL")
  4562. {
  4563. condition = condition + " && degnitemno == '" + degnitemnoNode + "' && colno == '" + colnoNode + "'";
  4564. //destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  4565. //if(destNode == null)
  4566. var destIdx = viewobj.ds_data_recitem.findRowExpr(condition);
  4567. if(destIdx < 0)
  4568. continue;
  4569. //2010-03-16 오전 9:18:31 강지훈 : MSL 합계가 colno = 0 에 setting된다.
  4570. if(prev_MSLdegnitemno != degnitemnoNode){
  4571. //debugger;
  4572. //colno 가 0인 targetNode를 찾는다.
  4573. var zeroNodeSrchCond = "formcd == '" + formcdNode + "' && degnitemlevlcd == '" + degnitemlevlcdNode ;
  4574. zeroNodeSrchCond += "' && degnitemno == '" + degnitemnoNode + "' && colno = '0'";
  4575. //var prev_recMSLSumNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + zeroNodeSrchCond + "]");
  4576. var prev_recMSLSumNodeIdx = viewobj.ds_data_recitem.findRowExpr(zeroNodeSrchCond);
  4577. //targetNode가 존재한다면 기록된 동일degnitemno 값들을 sum하여 targetNode의 0번째 colno에 setting
  4578. //if(prev_recMSLSumNode != null){
  4579. if(prev_recMSLSumNodeIdx > -1){
  4580. var recMSLSrchCond = "formcd == '" + formcdNode + "' && degnitemlevlcd = '" + degnitemlevlcdNode + "' && degnitemno == "+ degnitemnoNode;
  4581. var recMSLSumCnt = ds_data_recitem.getCaseCount(recMSLSrchCond) ;
  4582. viewobj.ds_data_recitem.setColumn(prev_recMSLSumNodeIdx, "rowno", recMSLSumCnt);
  4583. }
  4584. }
  4585. var destNode = viewobj.ds_data_recitem;
  4586. destNode.setColumn(destIdx, "rectermcd", srcNode.getColumn(i, "rectermcd"));
  4587. destNode.setColumn(destIdx, "rectermnm", srcNode.getColumn(i, "rectermnm"));
  4588. destNode.setColumn(destIdx, "reccnts", srcNode.getColumn(i, "reccnts"));
  4589. destNode.setColumn(destIdx, "recimge", srcNode.getColumn(i, "recimge"));
  4590. destNode.setColumn(destIdx, "rowno", srcNode.getColumn(i, "rowno"));
  4591. destNode.setColumn(destIdx, "colno", srcNode.getColumn(i, "colno"));
  4592. prev_MSLdegnitemno = degnitemnoNode;
  4593. }
  4594. else
  4595. {
  4596. //20100624-kys-연령감정서의 경우 로딩시 디폴트값으로 degnitemlevlcd의 값이 같은 STX가 존재하여 저정후 값셋팅이 되지 않음.
  4597. //이러한 경우 condition에 degnitemno를 추가함.
  4598. if(degnitemkindNode == "STX"){
  4599. condition = condition + " && degnitemno == '" + degnitemnoNode + "'";
  4600. }
  4601. //destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  4602. var destIdx = viewobj.ds_data_recitem.findRowExpr(condition);
  4603. //if(destNode == null)
  4604. if( destIdx < 0 )
  4605. continue;
  4606. destNode = viewobj.ds_data_recitem;
  4607. //pointer 복사에서 값 복사로 변경
  4608. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  4609. destNode.setColumn(destIdx, "rectermcd", srcNode.getColumn(i, "rectermcd"));
  4610. destNode.setColumn(destIdx, "rectermnm", srcNode.getColumn(i, "rectermnm"));
  4611. destNode.setColumn(destIdx, "reccnts", srcNode.getColumn(i, "reccnts"));
  4612. destNode.setColumn(destIdx, "recimge", srcNode.getColumn(i, "recimge"));
  4613. destNode.setColumn(destIdx, "rowno", srcNode.getColumn(i, "rowno"));
  4614. destNode.setColumn(destIdx, "colno", srcNode.getColumn(i, "colno"));
  4615. //이미지 OCX처리
  4616. if(degnitemkindNode == "IMG")
  4617. {
  4618. var degnitemno = degnitemnoNode;
  4619. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  4620. if(imgedit == "Y")
  4621. {
  4622. var ctrlid = "IMG_" + degnitemno;
  4623. eval(ctrlid).SetShapeString(reccntsNode.text);
  4624. }
  4625. }
  4626. }
  4627. }
  4628. lf_setItemValueDS(viewobj)
  4629. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  4630. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4631. trace("setSrchData 시간: " + ((endTime-startTime)/1000) );
  4632. trace("[DEBUG] setSrchData refresh");
  4633. //viewobj.model.refresh();
  4634. trace("[DEBUG] setSrchData dispatch");
  4635. try{
  4636. viewobj.lf_onsubformdataloadcomp();
  4637. }catch(e){
  4638. sysf_catchTrace(e);
  4639. }
  4640. }
  4641. /**
  4642. * @group :
  4643. * @ver : 2008.06.13
  4644. * @by : snoweye
  4645. * @---------------------------------------------------
  4646. * @type : function
  4647. * @access : public
  4648. * @desc : 부모 화면으로 onloadcomplete 이벤트를 dispatch
  4649. * @param : curformtype - 로딩이 완료된 서식의 종류 (COMN_FORM/UNIT_FORM/GENL_FORM)
  4650. * @return :
  4651. * @---------------------------------------------------
  4652. */
  4653. function dispOnLoadComplete(curformtype, formcd)
  4654. {
  4655. sysf_trace_emr("***** dispOnLoadComplete("+curformtype+", "+formcd+") EMRCommon -> MMRCommon*****");
  4656. // TF 는 parent 체크하여 동작되나 XP일 경우 this는 서식로더가 포함되는 진료기록메인의 ivw_loder 임
  4657. if(utlf_isNull(parent))
  4658. return;
  4659. //setLoadStatus(parent, formcd, curformtype);
  4660. parent.frmf_setParameter("loadstatus", curformtype);
  4661. parent.frmf_setParameter("loadformcd", formcd);
  4662. parent.lf_onloadcomplete();
  4663. }
  4664. /////////////////////////////////////////////////////////
  4665. //////////////////// EMRCommon ///////////////////////
  4666. /////////////////////////////////////////////////////////
  4667. function ITEMVAL()
  4668. {
  4669. this.rectermcd = "";
  4670. this.rectermnm = "";
  4671. this.reccnts = "";
  4672. this.recimge = "";
  4673. }
  4674. /**
  4675. * @desc : 기록아이템 값을 가져온다
  4676. * @id :
  4677. * @event :
  4678. * @return :
  4679. * @authur : 이상현
  4680. */
  4681. function getFormItemValue(degnitemlevlcd)
  4682. {
  4683. sysf_trace_emr("***** getFormItemValue("+degnitemlevlcd+") MMRCommon *****");
  4684. // var pageInfo = new PAGEINFO();
  4685. var itemVal = new ITEMVAL();
  4686. var recItemRefDs = this.objects["ds_data_recitem"];
  4687. if( recItemRefDs != null ){
  4688. var fidx = recItemRefDs.findRow("degnitemlevlcd", degnitemlevlcd);
  4689. itemVal.rectermcd = recItemRefDs.getColumn(fidx, "rectermcd");
  4690. itemVal.rectermnm = recItemRefDs.getColumn(fidx, "rectermnm");
  4691. itemVal.reccnts = recItemRefDs.getColumn(fidx, "reccnts");
  4692. itemVal.recimge = recItemRefDs.getColumn(fidx, "recimge");
  4693. }
  4694. return itemVal;
  4695. }
  4696. /**
  4697. * @desc : 기록아이템 값을 셋팅
  4698. * @id :
  4699. * @event :
  4700. * @return :
  4701. * @authur : 이상현
  4702. */
  4703. function setFormItemValue(degnitemlevlcd, itemVal, bRefresh)
  4704. {
  4705. sysf_trace_emr("***** setFormItemValue(degnitemlevlcd, itemVal, bRefresh) EMRCommon *****");
  4706. var pageInfo = new PAGEINFO();
  4707. if(utlf_isNull(bRefresh))
  4708. bRefresh == false;
  4709. var recItemRefDs = this.objects[pageInfo.recItemRef];
  4710. if( recItemRefDs != null ){
  4711. var fidx = recItemRefDs.findRow("degnitemlevlcd", degnitemlevlcd);
  4712. var node = recItemRefDs.getColumn(fidx, "rectermcd");
  4713. if(!utlf_isNull(node))
  4714. recItemRefDs.setColumn(fidx, "rectermcd", itemVal.rectermcd);
  4715. node = recItemRefDs.getColumn(fidx, "rectermnm");
  4716. if(!utlf_isNull(node))
  4717. recItemRefDs.setColumn(fidx, "rectermnm", itemVal.rectermnm);
  4718. node = recItemRefDs.getColumn(fidx, "recimge");
  4719. if(!utlf_isNull(node))
  4720. recItemRefDs.setColumn(fidx, "recimge", itemVal.recimge);
  4721. node = recItemRefDs.getColumn(fidx, "reccnts");
  4722. if(!utlf_isNull(node))
  4723. recItemRefDs.setColumn(fidx, "reccnts", itemVal.reccnts);
  4724. }
  4725. // if(bRefresh)
  4726. // model.refresh();
  4727. }
  4728. /**
  4729. * @desc : 노드셋을 맨위에 집어넣는다.
  4730. strDest : 목적노드
  4731. strSrc : 소스노드
  4732. * @param :
  4733. * @return :
  4734. * @author : 2010.03.30 강지훈
  4735. * @---------------------------------------------------
  4736. */
  4737. function fInsertNodes(strDest, strSrc){
  4738. sysf_trace_emr("***** fInsertNodes("+strDest+", "+strSrc+") MMRCommon *****");
  4739. // var srcNodeList = instance1.selectNodes(strSrc);
  4740. if(strSrc != null && strSrc.rowcount > 0 ){
  4741. // var destNodeList = instance1.selectNodes(strDest);
  4742. if( strDest == null || strDest.rowcount == 0 ) {
  4743. return false;
  4744. }
  4745. // var pDestNode = destNodeList(0).parentNode;
  4746. // var destLastNodesetName = destNodeList(0).nodeName;
  4747. // var tmpSrcNode;
  4748. for( var a = strSrc.rowcount - 1; a >= 0; a-- ) {
  4749. strDest.insertRow(0);
  4750. strDest.copyRow(0, strSrc, a);
  4751. // pDestNode = instance1.selectSingleNode(strDest).parentNode;
  4752. // tmpSrcNode = srcNodeList.item(a).cloneNode(true);
  4753. // tmpSrcNode.nodeName = destLastNodesetName;
  4754. // model.duplicate(pDestNode, tmpSrcNode, "*[1]");
  4755. }
  4756. }
  4757. }
  4758. /**
  4759. * @group :
  4760. * @ver : 2008.07.16
  4761. * @by : 이경희
  4762. * @modify:
  4763. * @---------------------------------------------------
  4764. * @type :
  4765. * @access : public
  4766. * @desc : 진료기록에서 서식 저장시 필수입력 아이템 입력 여부를 체크한다.
  4767. * @param :
  4768. * @param :
  4769. * @return :
  4770. * @---------------------------------------------------
  4771. */
  4772. function chkEssentialitem(supdegnitemcd)
  4773. {
  4774. sysf_trace_emr("***** chkEssentialitem("+supdegnitemcd+") 필수입력 아이템 입력 여부 체트 EMRCommon -> MMRCommon *****");
  4775. sysf_trace_emr("jw.choe return ");
  4776. return;
  4777. var pageInfo = new PAGEINFO();
  4778. // formdegn 인스턴스에서 essential:true 속성 아이템리스트를 골라낸다.
  4779. var esCnt = ds_main_forminfo_formdegn.getCaseCount("essnrecyn == 'Y'");
  4780. //2010.11.26 김달현 - 서식 구분
  4781. var formprogflag = ds_main_forminfo_formmast.getColumn(0, "formprogflag");
  4782. if(esCnt > 0)
  4783. {
  4784. // degnitemlevlcd 를 찾는다.
  4785. var filterStr = "essnrecyn == 'Y'";
  4786. ds_main_forminfo_formdegn.filter(filterStr);
  4787. //var formdegnNodelist = findNodeset(model, "/root/main/forminfo/formdegn[essnrecyn =='Y']");
  4788. for(var idx = 0; idx < ds_main_forminfo_formdegn.rowcount; idx++)
  4789. {
  4790. //var formdegnNode = formdegnNodelist.item(idx);
  4791. var degnitemno = ds_main_forminfo_formdegn.getColumn(idx, "degnitemno");
  4792. var degnitemlevlcd = ds_main_forminfo_formdegn.getColumn(idx, "degnitemlevlcd");
  4793. var degnitemkind = ds_main_forminfo_formdegn.getColumn(idx, "degnitemkind");
  4794. //var itemattrvalNode = formdegnNode.selectSingleNode("itemattrval");
  4795. var degnitemnm = ds_main_forminfo_formdegn.getColumn(idx, "degnitemnm");
  4796. if ( fGetReadOnlyStat( degnitemno ) ) //현재 disable 상태이면 필수체크 안한다. 2010.04.15, 주희경
  4797. {
  4798. continue;
  4799. }
  4800. if(ds_main_forminfo_formdegn.getColumnInfo("itemattrval") != null)
  4801. {
  4802. var attr = getStyleValue(ds_main_forminfo_formdegn.getColumn(idx, "itemattrval"), "essential");
  4803. var recitemNode = null;
  4804. if(attr == "true")
  4805. {
  4806. sysf_trce_emr("jw.choe 여기부터");
  4807. if (!utlf_isNull(supdegnitemcd)) {
  4808. recitemNode = findNode(model, pageInfo.recItemRef + "[degnitemlevlcd = '" + supdegnitemcd + "." + degnitemlevlcd +"']");
  4809. //recitemNode = this.objects[pageInfo.recItemRef].filter("degnitemlevlcd == '" + supdegnitemcd + "." + degnitemlevlcd +"'");
  4810. } else {
  4811. //2010.01.17 안치원 - 진단명,수술명 필수입력체크 하지 못하는 오류 수정
  4812. if (degnitemkind == "DGN" || degnitemkind == "OPN") {
  4813. recitemNode = findNode(model, "/root/main/recinfo/grid/recitem[degnitemlevlcd = '" + degnitemlevlcd +"']");
  4814. } else {
  4815. recitemNode = findNode(model, pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd +"']");
  4816. }
  4817. }
  4818. //var rectemcdNode = findNode(model, pageInfo.grdNodeset + "[degnitemlevlcd = '" + degnitemlevlcd +"']");
  4819. //var rectemnmNode = findNode(model, pageInfo.grdNodeset + "[degnitemlevlcd = '" + degnitemlevlcd +"']");
  4820. if(recitemNode != null)
  4821. {
  4822. //2010.01.16 안치원 - MSL 필수입력체크 오류수정
  4823. if(degnitemkind == "MSL")
  4824. {
  4825. var cnt = getNodesetCnt(model, pageInfo.recItemRef + "[degnitemlevlcd = '" + supdegnitemcd + "." + degnitemlevlcd+"' and rectermcd != '']");
  4826. if(cnt > 0)
  4827. continue;
  4828. }
  4829. else if(degnitemkind == "RDO" || degnitemkind == "CMB" || degnitemkind == "CHK" || degnitemkind == "SSL")
  4830. {
  4831. var rectermcdNode = recitemNode.selectSingleNode("rectermcd");
  4832. if(rectermcdNode != null && rectermcdNode.text != "")
  4833. continue;
  4834. }
  4835. else if(degnitemkind == "FRM")
  4836. {
  4837. //2010.01.12 안치원 - MTX의 필수입력시 기본부분서식이 있으면 부분서식을, 없으면 MTX의 입력여부를 검사한다.
  4838. continue;
  4839. }
  4840. //2010.11.26 김달현 - 제증명 서식의 진단필수체크
  4841. else if(formprogflag == "PROF" && degnitemkind == "DGN"){
  4842. var degnitemcd = formdegnNode.selectSingleNode("degnitemcd").text;
  4843. var fstlevlitemcd = model.getValue("/root/main/recinfo/grid/recitem[degnitemcd = '"+degnitemcd+"']/fstlevlitemcd");
  4844. var diagrectermcd = model.getValue("/root/main/recinfo/grid/recitem[fstlevlitemcd = '"+fstlevlitemcd+"' and colno = 2]/rectermcd");//진단코드
  4845. var diagrectermnm = model.getValue("/root/main/recinfo/grid/recitem[fstlevlitemcd = '"+fstlevlitemcd+"' and colno = 2]/rectermnm");//진단명
  4846. if(diagrectermnm == null || diagrectermnm == ""){
  4847. degnitemnm = "진단명";
  4848. }
  4849. //진단코드가 입력된 경우는 진단명까지 입력여부 체크
  4850. if(diagrectermnm != ""){
  4851. continue;
  4852. }else{
  4853. if(diagrectermcd != "" && diagrectermnm != ""){
  4854. continue;
  4855. }
  4856. }
  4857. }
  4858. else if(degnitemkind == "MTX" || degnitemkind == "DGN" || degnitemkind == "OPN")//2010.01.17 안치원 - 진단명,수술명 필수입력체크 하지 못하는 오류 수정
  4859. {
  4860. //2010.01.12 안치원 - MTX의 필수입력시 기본부분서식이 있으면 부분서식을, 없으면 MTX의 입력여부를 검사한다.
  4861. var baseFormCnt = getNodesetCnt(model, "/root/main/forminfo/formdegn[supdegnitemno = '"+degnitemno+"' and itemuseflag='F0']");
  4862. if (baseFormCnt == 0) {
  4863. var recCntsNode = recitemNode.selectSingleNode("reccnts");
  4864. if(recCntsNode != null && recCntsNode.text != "")
  4865. continue;
  4866. } else {
  4867. var degnitemcd = formdegnNode.selectSingleNode("degnitemcd").text;
  4868. var recCnt = getNodesetCnt(model, pageInfo.recItemRef2+"[fstlevlitemcd = '"+degnitemcd+"']");
  4869. if (recCnt != 0)
  4870. continue;
  4871. }
  4872. }
  4873. else
  4874. {
  4875. var reccntsNode = recitemNode.selectSingleNode("reccnts");
  4876. if(reccntsNode != null && reccntsNode.text != "")
  4877. continue;
  4878. }
  4879. // 필수 입력 아이템에 포커스를 맞춰준다.
  4880. messageBox("필수 입력항목(" + degnitemnm + ")이 입력되지", "E007");
  4881. var ctrlid = degnitemkind + "_" + degnitemno;
  4882. var ctrl = document.controls(degnitemkind + "_" + degnitemno);
  4883. model.setFocus(ctrlid);
  4884. return false;
  4885. }
  4886. }
  4887. }
  4888. }
  4889. ds_main_forminfo_formdegn.filter("");
  4890. }
  4891. return true;
  4892. }
  4893. /**
  4894. * @desc : 저장할 기록정보를 가져온다
  4895. * @id :
  4896. * @event :
  4897. * @return :
  4898. * @authur : 이상현
  4899. */
  4900. function getSaveData(targetPath, appendMode, pmodel, pageInfo, mode)
  4901. {
  4902. sysf_trace_emr("***** getSaveData("+targetPath+", "+appendMode+", "+pmodel+", "+pageInfo+", "+mode+") EMRCommon *****");
  4903. if(utlf_isNull(mode))
  4904. mode = "";
  4905. if(mode == "all")
  4906. getSaveDataAll(targetPath, appendMode, pmodel, pageInfo);
  4907. else
  4908. getSaveDataVal(targetPath, appendMode, pmodel, pageInfo);
  4909. }
  4910. /**
  4911. * @desc : 저장할 기록정보를 모두 가져온다
  4912. * @id :
  4913. * @event :
  4914. * @return :
  4915. * @authur : 이상현
  4916. */
  4917. function getSaveDataAll(targetPath, appendMode, pmodel, pageInfo)
  4918. {
  4919. sysf_trace_emr("***** MMRCommon getSaveDataAll("+targetPath+", "+appendMode+", "+pmodel+", "+pageInfo+") EMRCommon*****");
  4920. if(utlf_isNull(pageInfo))
  4921. pageInfo = new PAGEINFO();
  4922. if(utlf_isNull(pmodel))
  4923. pmodel == this;
  4924. dsf_clearDsList( pageInfo.savedInfoRef2 );
  4925. sysf_trace_emr("model.makeValue(pageInfo.savedInfoRef2... 체크필요");
  4926. // model.removeNodeset(pageInfo.savedInfoRef2);
  4927. // model.makeValue(pageInfo.savedInfoRef2, "");
  4928. var recItemRefDs = this.objects[pageInfo.recItemRef];
  4929. var nodeListCnt = 0;
  4930. if( !utlf_isNull(recItemRefDs) ){
  4931. recItemRefDs.filter("degnitemkind != 'GRD' && degnitemkind != 'IMG'");
  4932. nodeListCnt = recItemRefDs.rowcount;
  4933. //temp
  4934. dsf_create("tmp_recItemRefDs");
  4935. tmp_recItemRefDs.copyDs(recItemRefDs, true);
  4936. recItemRefDs.filter("");
  4937. }
  4938. //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[degnitemkind != 'GRD' and degnitemkind != 'IMG']");
  4939. for(var i = 0; i < nodeListCnt; i++)
  4940. {
  4941. var condition = "";
  4942. //var itemsNode = nodeList.item(i);
  4943. var degnitemnoNode = tmp_recItemRefDs.getColumn(i, "degnitemno");
  4944. if(utlf_isNull(degnitemnoNode))
  4945. continue;
  4946. var rowCondition = "";
  4947. if(utlf_isNull(condition))
  4948. condition = "degnitemno == '" + degnitemnoNode + "'" + rowCondition;
  4949. else
  4950. condition += " || degnitemno == '" + degnitemnoNode + "'" + rowCondition;
  4951. var supdegnitemno = (this.objects[gPrePath_formdegnRef]).lookup("degnitemno", degnitemnoNode, "supdegnitemno");
  4952. if(!utlf_isNull(supdegnitemno))
  4953. condition = getSaveDataParent(supdegnitemno, condition);
  4954. if(!utlf_isNull(condition)){
  4955. //copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  4956. var savedInfoItemRef2Ds = this.objects[pageInfo.savedInfoItemRef2];
  4957. var recItemRefDs = this.objects[gPrePath_recItemRef];
  4958. if( utlf_isNull(savedInfoItemRef2Ds) ){
  4959. dsf_createDs( pageInfo.savedInfoItemRef2 );
  4960. dsf_copyColInfo( savedInfoItemRef2Ds, recItemRefDs );
  4961. }
  4962. recItemRefDs.filter( condition );
  4963. savedInfoItemRef2Ds.appendData( recItemRefDs );
  4964. recItemRefDs.filter("");
  4965. }
  4966. condAll += condition;
  4967. }
  4968. getCheckSaveData(pageInfo);
  4969. if(!utlf_isNull(this.objects[pageInfo.savedInfoItemRef2]) && (this.objects[pageInfo.savedInfoItemRef2]).rowcount > 0)
  4970. {
  4971. if(!utlf_isNull(pageInfo.formCd))
  4972. {
  4973. var idx = getNodesetCnt(pmodel, targetPath) + 1;
  4974. pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  4975. pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  4976. pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  4977. pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  4978. pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  4979. pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  4980. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  4981. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  4982. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  4983. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  4984. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  4985. pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  4986. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  4987. pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  4988. pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  4989. pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  4990. pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  4991. pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  4992. pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  4993. pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  4994. pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  4995. }
  4996. copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  4997. }
  4998. }
  4999. /**
  5000. * @desc : 저장할 기록정보 값을 가져온다
  5001. * @id :
  5002. * @event :
  5003. * @return :
  5004. * @authur : 이상현, 20100209, 주희경 수정
  5005. */
  5006. function getSaveDataVal(targetPath, appendMode, pmodel, pageInfo)
  5007. {
  5008. sysf_trace_emr("***** getSaveDataVal("+targetPath+", "+appendMode+", "+pmodel.name+", "+pageInfo+") EMRCommon -> MMRCommon *****");
  5009. sysf_trace_emr("***** 저장할 기록정보 값을 가져온다 ****");
  5010. if(utlf_isNull(pageInfo))
  5011. pageInfo = new PAGEINFO();
  5012. if(utlf_isNull(pmodel))
  5013. pmodel == this;
  5014. //이미지ocx에 있는 annotation 정보 grep
  5015. getImgeData();
  5016. //그리드 데이타를 변형하기 위해 일단 main에서 hidden으로 옮긴다.
  5017. sysf_trace_emr(" jw.choe 그리드 데이타셋 추가 체크 필요 MMRCommon ");
  5018. dsf_clearDsList(["ds_hidden_savedinfo_recitem"], this); //
  5019. // model.removeNodeset(pageInfo.savedInfoRef2);
  5020. // model.makeValue(pageInfo.savedInfoRef2, "");
  5021. if( pmodel.objects[targetPath] == null ){
  5022. var objDs = new Dataset(targetPath);
  5023. pmodel.addChild(targetPath, objDs);
  5024. objDs.name = targetPath;
  5025. }
  5026. getGridSaveData(pageInfo);
  5027. /////////////////////////////
  5028. // 2010.02.08, 주희경 수정
  5029. // 기본서식 기록 데이터가 없고 [추가기록, 이미지, 가계도, 확장서식]의 데이터가 있는경우 부분서식 타이틀 저장을 위해 체크 및 데이터 셋팅
  5030. var expr = "!utlf_isNull(rectermcd) || !utlf_isNull(reccnts)";
  5031. var etcrecItemRefDs = this.objects["ds_temp_etcrec_recitem"];
  5032. var etcrecItemRefCnt = etcrecItemRefDs == null ? 0 : etcrecItemRefDs.getCaseCount(expr);
  5033. //추가기록이 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  5034. if ( etcrecItemRefCnt > 0 )
  5035. {
  5036. etcrecItemRefDs.filter(expr);
  5037. fSetFormRecItemHeader(pageInfo, etcrecItemRefDs, false);
  5038. etcrecItemRefDs.filter("");
  5039. //fSetFormRecItemHeader(pageInfo, etcrecNodeList, false);
  5040. }
  5041. var imgerecItemRefDs = this.objects["ds_temp_imgerec_recitem"];
  5042. var imgerecItemRefCnt = imgerecItemRefDs == null ? 0 : imgerecItemRefDs.getCaseCount(expr);
  5043. //이미지가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  5044. if ( imgerecItemRefCnt > 0 )
  5045. {
  5046. imgerecItemRefDs.filter(expr);
  5047. fSetFormRecItemHeader(pageInfo, imgerecItemRefDs, false);
  5048. imgerecItemRefDs.filter("");
  5049. //fSetFormRecItemHeader(pageInfo, imgrecNodeList, false);
  5050. }
  5051. var fmyrecItemRefDs = this.objects["ds_temp_fmyrec_recitem"];
  5052. var fmyrecItemRefCnt = fmyrecItemRefDs == null ? 0 : fmyrecItemRefDs.getCaseCount(expr);
  5053. //가계도가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  5054. if ( fmyrecItemRefCnt > 0 )
  5055. {
  5056. fmyrecItemRefDs.filter(expr);
  5057. fSetFormRecItemHeader(pageInfo, fmyrecItemRefDs, false);
  5058. fmyrecItemRefDs.filter("");
  5059. //fSetFormRecItemHeader(pageInfo, fmyrecNodeList, false);
  5060. }
  5061. var extnrecRefDs = this.objects["ds_hidden_extnformrec_recitem"];//pageInfo.extnrecRef
  5062. var extnrecRefCnt = extnrecRefDs == null ? 0 : extnrecRefDs.getCaseCount(expr);
  5063. //확장서식 데이터가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  5064. if ( extnrecRefCnt > 0 )
  5065. {
  5066. extnrecRefDs.filter(expr);
  5067. fSetFormRecItemHeader(pageInfo, extnrecRefDs, false);
  5068. extnrecRefDs.filter("");
  5069. //fSetFormRecItemHeader(pageInfo, extnecNodeList, false);
  5070. }
  5071. //
  5072. /////////////////////////////////////////////
  5073. // 그리드 이외의 아이템 노드리스트를 가져온다.
  5074. //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  5075. ds_data_recitem.filter("(!utlf_isNull(rectermcd) || !utlf_isNull(reccnts)) && degnitemkind != 'GRD' && degnitemkind != 'GSU'");
  5076. var nodeListCnt = ds_data_recitem.rowcount;
  5077. if( nodeListCnt > 0 ){
  5078. dsf_createDs("tmp_ds_data_recitem");
  5079. tmp_ds_data_recitem.copyData(ds_data_recitem, true);
  5080. }
  5081. ds_data_recitem.filter("");
  5082. //////////////////////////
  5083. // 2010.02.08, 주희경 수정
  5084. // 기본 서식의 타이틀에 셋팅한 데이터 원복
  5085. //추가기록, 기본 서식의 타이틀에 셋팅한 데이터 원복
  5086. if ( etcrecItemRefCnt > 0 )
  5087. fSetFormRecItemHeader(pageInfo, etcrecItemRefDs, true);
  5088. //이미지, 기본 서식의 타이틀에 셋팅한 데이터 원복
  5089. if ( imgerecItemRefCnt > 0 )
  5090. fSetFormRecItemHeader(pageInfo, imgerecItemRefDs, true);
  5091. //가계도, 기본 서식의 타이틀에 셋팅한 데이터 원복
  5092. if ( fmyrecItemRefCnt > 0 )
  5093. fSetFormRecItemHeader(pageInfo, fmyrecItemRefDs, true);
  5094. //확장서식, 기본 서식의 타이틀에 셋팅한 데이터 원복
  5095. if ( extnrecRefCnt > 0 )
  5096. fSetFormRecItemHeader(pageInfo, extnrecRefDs, true);
  5097. //
  5098. //////////////////////////////
  5099. // grdClone은 <grid> 의 row 하나를 뜻함.
  5100. for(var i = 0; i < nodeListCnt; i++)
  5101. {
  5102. var condition = "";
  5103. var itemsNode = tmp_ds_data_recitem; //nodeList.item(i); // 값이 있는 단일 노드
  5104. var degnitemnoNode = itemsNode.getColumn(i, "degnitemno"); // itemsNode의 degnitemno값
  5105. var degnitemnmNode = itemsNode.getColumn(i, "degnitemnm"); // itemsNode의 degnitemnm값
  5106. var degnitemkindNode = itemsNode.getColumn(i, "degnitemkind"); // itemsNode의 degnitemkind값
  5107. var RecCntsNode = itemsNode.getColumn(i, "reccnts"); // itemsNode의 reccnts값
  5108. var recimgeNode = itemsNode.getColumn(i, "recimge"); // itemsNode의 reccnts값
  5109. var subrecrefcdNode = itemsNode.getColumn(i, "recrefcd");
  5110. var subrecitemnmNode = itemsNode.getColumn(i, "recitemnm");
  5111. var subtermcdNode = itemsNode.getColumn(i, "rectermcd");
  5112. var subfstlevlcdNode = itemsNode.getColumn(i, "fstlevlitemcd");
  5113. var sublevlcdNode = itemsNode.getColumn(i, "degnitemlevlcd");
  5114. var sublevlnoNode = itemsNode.getColumn(i, "degnitemlevlno");
  5115. sysf_trace_emr("@@@@@ reccnts : " + RecCntsNode + " MMRCommon " );
  5116. if(itemsNode.getColumnInfo("degnitemno") == null)
  5117. continue;
  5118. if(degnitemkindNode == "IMG" && degnitemnmNode == "빈이미지" && !utlf_isNull(RecCntsNode))
  5119. {
  5120. var tmpMeta = removeXvgTag(RecCntsNode);
  5121. if( utlf_isNull(tmpMeta))
  5122. continue;
  5123. }
  5124. var rowCondition = "";
  5125. var srchno = "'" + degnitemnoNode + "'";
  5126. if(!utlf_isSearchString(condition, srchno) && !utlf_isSearchString(condAll, srchno))
  5127. {
  5128. if(utlf_isNull(condition))
  5129. condition = "degnitemno == '" + degnitemnoNode + "'" + rowCondition;
  5130. else
  5131. condition += " || degnitemno == '" + degnitemnoNode + "'" + rowCondition;
  5132. }
  5133. var supdegnitemno = ds_data_formdegn.lookup("degnitemno", degnitemnoNode, "supdegnitemno");
  5134. if(!utlf_isNull(supdegnitemno) && supdegnitemno != "0")
  5135. condition = getSaveDataParent(supdegnitemno, condition);
  5136. if(!utlf_isNull(condition))
  5137. {
  5138. //copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  5139. ds_data_recitem.filter(condition);
  5140. dsf_copyDsList(["ds_hidden_savedinfo_recitem"], ["ds_data_recitem"], "append", this, this);
  5141. ds_data_recitem.filter("");
  5142. // MSL-SSU 데이터 체크
  5143. //var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind = 'MSL']");
  5144. ds_hidden_savedinfo_recitem.filter("degnitemkind == 'MSL'");
  5145. var oDs = ds_hidden_savedinfo_recitem;
  5146. for(var idx = oDs.rowcount-1; idx > -1; idx--) // jw.choe 삭제는 뒷부분부터 처리되도록 수정.
  5147. {
  5148. //var recitemNode = nodelist.item(idx);
  5149. var degnitemnm = oDs.getColumn(idx, "degnitemnm");
  5150. var degnitemno = oDs.getColumn(idx, "degnitemno");
  5151. var degnitemkind = oDs.getColumn(idx, "degnitemkind");
  5152. var degnitemlevlcd = oDs.getColumn(idx, "degnitemlevlcd");
  5153. var rectermcd = oDs.getColumn(idx, "rectermcd");
  5154. var rectermnm = oDs.getColumn(idx, "rectermnm");
  5155. var reccnts = oDs.getColumn(idx, "reccnts");
  5156. var rowno = oDs.getColumn(idx, "rowno");
  5157. var colno = oDs.getColumn(idx, "colno");
  5158. if( !utlf_isNull(rectermcd))
  5159. continue;
  5160. else if(!utlf_isNull(reccnts))
  5161. continue;
  5162. oDs.deleteRow(idx);
  5163. }
  5164. ds_hidden_savedinfo_recitem.filter("");
  5165. }
  5166. if(utlf_isNull(condAll))
  5167. condAll = condition;
  5168. else
  5169. {
  5170. if(!utlf_isNull(condition))
  5171. condAll += " || " + condition;
  5172. }
  5173. }
  5174. if( nodeListCnt > 0 ){
  5175. dsf_deleteDs("tmp_ds_data_recitem");
  5176. }
  5177. condAll = "";
  5178. getCheckSaveData(pageInfo);
  5179. var savedInfoItemRef2Ds = this.objects["ds_hidden_savedinfo_recitem"];
  5180. var savedInfoItemRef2Cnt = savedInfoItemRef2Ds == null ? 0 : savedInfoItemRef2Ds.rowcount;
  5181. if(savedInfoItemRef2Cnt > 0)
  5182. {
  5183. if(!utlf_isNull(pageInfo.formCd))
  5184. {
  5185. // pmodel : this, targetPath : ds_temp_sort_recitem
  5186. var targetPathDs = pmodel.objects[targetPath];
  5187. var idx = targetPathDs.rowcount;//getNodesetCnt(pmodel, targetPath) + 1;
  5188. dsf_makeValue(targetPathDs, "instcd", "string", "", idx);
  5189. dsf_makeValue(targetPathDs, "rechistseq", "BIGDECIMAL", "", idx);
  5190. dsf_makeValue(targetPathDs, "recitemno", "INT", "", idx);
  5191. dsf_makeValue(targetPathDs, "fstlevlitemcd", "string", pageInfo.fstLevlItemCd, idx);
  5192. dsf_makeValue(targetPathDs, "formcd", "string", pageInfo.formCd, idx);
  5193. dsf_makeValue(targetPathDs, "formdegnseq", "BIGDECIMAL", pageInfo.formDegnSeq, idx);
  5194. dsf_makeValue(targetPathDs, "degnitemno", "INT", pageInfo.degnItemNo, idx);
  5195. dsf_makeValue(targetPathDs, "degnitemcd", "string", pageInfo.degnItemCd, idx);
  5196. dsf_makeValue(targetPathDs, "degnitemkind", "string", pageInfo.degnitemkind, idx);
  5197. dsf_makeValue(targetPathDs, "degnitemlevlno", "string", pageInfo.degnitemlevlno, idx);
  5198. dsf_makeValue(targetPathDs, "degnitemnm", "string", pageInfo.degnitemnm, idx);
  5199. dsf_makeValue(targetPathDs, "rectermnm", "string", pageInfo.rectermnm, idx);
  5200. dsf_makeValue(targetPathDs, "degnitemlevlcd", "string", pageInfo.degnItemLevlCd, idx);
  5201. dsf_makeValue(targetPathDs, "rectermcd", "string", "", idx);
  5202. dsf_makeValue(targetPathDs, "recrefcd", "string", "", idx);
  5203. dsf_makeValue(targetPathDs, "recitemnm", "string", "", idx);
  5204. dsf_makeValue(targetPathDs, "reccnts", "string", "", idx);
  5205. dsf_makeValue(targetPathDs, "recimge", "BLOB", "", idx);
  5206. dsf_makeValue(targetPathDs, "srcimge", "BLOB", "", idx);
  5207. dsf_makeValue(targetPathDs, "rowno", "string", "", idx);
  5208. dsf_makeValue(targetPathDs, "colno", "string", "", idx);
  5209. dsf_makeValue(targetPathDs, "degnunitcd", "string", "", idx);
  5210. }
  5211. // savedInfoItemRef2(/root/hidden/savedinfo/recitem) => /root/temp/sort/recinfo/recitem 으로 복사
  5212. //copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  5213. dsf_copyDsList([targetPath], ["ds_hidden_savedinfo_recitem"], appendMode, pmodel, this);
  5214. }
  5215. }
  5216. /**
  5217. * @desc : Data Clear
  5218. * @id :
  5219. * @event :
  5220. * @return :
  5221. * @authur : 이상현
  5222. */
  5223. function lf_clearData()
  5224. {
  5225. sysf_trace_emr("***** lf_clearData() EMRCommon -> MMRCommon *****");
  5226. // 특수서식은 temp recitem 이 없다.
  5227. dsf_copyDsList(arrDsRecinfo, arrDsTempRecinfo, "replace", this, this);
  5228. lf_setItemValueDS();
  5229. // ds_data_itemvalue.clearData();
  5230. // ds_data_itemvalue.addRow();
  5231. dsf_clearDsList(arrDsExtnRecinfo, this);
  5232. dsf_clearDsList(["ds_hidden_recitem"], this);
  5233. clearImgeData();
  5234. }
  5235. /**
  5236. * @desc : 이미지데이터를 clear한다
  5237. * @id :
  5238. * @event :
  5239. * @return :
  5240. * @authur : 박종훈
  5241. * @history:
  5242. 2008-12-02 : 신규생성
  5243. */
  5244. function clearImgeData()
  5245. {
  5246. sysf_trace_emr("***** clearImgeData() EMRCommon -> MMRCommon *****");
  5247. var pageInfo = new PAGEINFO();
  5248. var nodeListDs = this.objects["ds_data_recitem"];//instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  5249. var nodeListDsCnt = nodeListDs == null ? 0 : nodeListDs.getCaseCount("degnitemkind == 'IMG'");
  5250. // 공통서식인지 과별서식인지 구분
  5251. var FormInfoNodeDs = this.objects["ds_data_formmast"];//instance1.selectNodes(pageInfo.formmastRef);
  5252. var FormInfoNodeDsCnt = FormInfoNodeDs == null ? 0 : FormInfoNodeDs.rowcount;
  5253. var isFormMain = "";
  5254. if(FormInfoNodeDsCnt > 0)
  5255. {
  5256. //var formmastInfoNode = FormInfoNode.item(0);
  5257. var formprogflag = FormInfoNodeDs.getColumn(i, "formprogflag");
  5258. var formprognm = FormInfoNodeDs.getColumn(i, "formprognm");
  5259. var formkind = FormInfoNodeDs.getColumn(i, "formkind");
  5260. if(formprognm != "-" && formkind == "C" && formprogflag != "-")
  5261. {
  5262. isFormMain = true;
  5263. }
  5264. else
  5265. {
  5266. isFormMain = false;
  5267. }
  5268. }
  5269. if( nodeListDsCnt > 0 )
  5270. nodeListDs.filter("degnitemkind == 'IMG'");
  5271. for(var i = 0; i < nodeListDsCnt; i++)
  5272. {
  5273. //var itemNode = nodeList.item(i);
  5274. var degnitemno = nodeListDs.getColumn(i, "degnitemno");
  5275. var degnitemcd = nodeListDs.getColumn(i, "degnitemcd");
  5276. var degnitemlevlcd = nodeListDs.getColumn(i, "degnitemlevlcd");
  5277. var formdegnRefDs = this.objects["ds_data_formdegn"];
  5278. sysf_trace_emr(" @@@@@ formdegnRefDs : " + formdegnRefDs + " MMRCommon clearImageData @@@@@");
  5279. var itemattrval = formdegnRefDs == null ? "" : formdegnRefDs.lookup("degnitemno", degnitemno, "itemattrval");
  5280. var imgedit = getStyleValue(itemattrval, "imgedit");
  5281. if(imgedit != "Y")
  5282. continue;
  5283. var degnattrval = formdegnRefDs.lookup("degnitemno", degnitemno, "degnattrval");
  5284. var ctrlwidth = getStyleValue(degnattrval, "ctrl.width");
  5285. var ctrlheight = getStyleValue(degnattrval, "ctrl.height");
  5286. var ctrlid = "IMG_" + degnitemno;
  5287. var ctrlObj = this.components["IMG_" + degnitemno];
  5288. sysf_trace_emr(" jw.choe ctrlObj activex 동작 처리 확인 필요함. MMRCommon ");
  5289. var strShape = ctrlObj.DeleteAllShape();
  5290. var Viewmode = ctrlObj.GetViewMode();
  5291. if(Viewmode != "1")
  5292. {
  5293. ctrlObj.SetViewMode(1);
  5294. }
  5295. if (!utlf_isNull(ctrlwidth)) // 2011-01-17 경북대 최원돈 예외사항 오류수정
  5296. {
  5297. ctrlObj.width = ctrlwidth;
  5298. }
  5299. if (!urlf_isNull(ctrlheight)) // 2011-01-17 경북대 최원돈 예외사항 오류수정
  5300. {
  5301. ctrlObj.height = ctrlheight;
  5302. }
  5303. var domain = sysf_getURLprefix();
  5304. var imgurl = GetImgUrl(degnitemcd);
  5305. var imgsrc = domain + imgurl;
  5306. ctrlObj.LoadImage(imgsrc);
  5307. }
  5308. if( nodeListDsCnt > 0 )
  5309. nodeListDs.filter("");
  5310. }
  5311. // control -> ds_data_recitem
  5312. function lf_setItemRecDS(obj:Dataset, e:DSColChangeEventInfo)
  5313. {
  5314. sysf_trace_emr("@@@@@ lf_setItemRecDS : " + e.newvalue + " " + e.columnid + " " + e.fromobject.name + " " + e.fromreferenceobject.name +"*****");
  5315. var columnid = e.columnid;
  5316. var sColid = columnid.split("_");
  5317. // component object
  5318. var objNm = lf_getCompNm(columnid, this, e.newvalue);
  5319. var comObj = this.components[objNm];
  5320. var refitem = obj.refitem;
  5321. // user properties
  5322. var supdegnitemno = "";
  5323. var colno = "";
  5324. var rowno = "";
  5325. var ctrltype = "";
  5326. var ParentsNo = "";
  5327. var type = "";
  5328. var degnitemkind = "";
  5329. var degnitemno = "";
  5330. var extn = "";
  5331. var expr = "";
  5332. var getColumnid = "reccnts";
  5333. type = sColid[0];
  5334. degnitemno = sColid[1];
  5335. extn = sColid.length > 2 ? sColid[2] : "";
  5336. // set degnitemkind
  5337. if( type == "SSU" ){
  5338. degnitemkind = "MSL";
  5339. degnitemno = obj.supdegnitemno;
  5340. }else{
  5341. degnitemkind = type;
  5342. }
  5343. if( degnitemkind == "STX" || degnitemkind == "MTX" || degnitemkind == "CAL" || degnitemkind == "LBL" || !utlf_isNull(extn)){
  5344. // getColumnid = "reccnts";
  5345. if( !utlf_isNull(refitem) )
  5346. getColumnid = "rectermnm";
  5347. }else{
  5348. if( !utlf_isNull(refitem) )
  5349. getColumnid = "rectermcd";
  5350. else
  5351. getColumnid = "rectermcd";
  5352. }
  5353. sysf_trace_emr(" - " + type + " + " + degnitemkind);
  5354. sysf_trace_emr(" filterstr : " + ds_data_recitem.filterstr);
  5355. sysf_trace_emr(" ds_data_recitem rowcount cnt : " + ds_data_recitem.rowcount);
  5356. if( (degnitemkind == "BOL" || degnitemkind == "SSL" || degnitemkind == "IMG" || degnitemkind == "MSL" ||
  5357. degnitemkind == "CHK" || degnitemkind == "RDO" || degnitemkind == "CMB") && utlf_isNull(extn) ){
  5358. lf_fSelectValList(comObj, objNm.split("_")[1], degnitemkind);
  5359. }
  5360. if( degnitemkind == "MTX" ){
  5361. var oDs = this.objects["ds_hidden_selectiontext"];
  5362. if( oDs == null ) dsf_createDs("ds_hidden_selectiontext");
  5363. if( ctrl == null ) var selidx = ["",""]
  5364. else var selidx = ctrl.getSelect();
  5365. dsf_makeValue(ds_hidden_selectiontext, "begin", "string", selidx[0])
  5366. dsf_makeValue(ds_hidden_selectiontext, "end", "string", selidx[1])
  5367. var fRow = ds_data_recitem.findRowExpr("degnitemkind == '" + degnitemkind + "' && degnitemno == '" + degnitemno + "'");
  5368. sysf_trace_emr("!!!!! fRow : " + fRow + " | e.newvalue : " + e.newvalue + " | getColumnid : " + getColumnid + " degnitemkind == '" + degnitemkind + "' && degnitemno == '" + degnitemno + "'");
  5369. ds_data_recitem.setColumn(fRow, getColumnid, e.newvalue);
  5370. }
  5371. if( degnitemkind == "STX" || !utlf_isNull(extn) ){
  5372. var fRow = this.ds_data_recitem.findRowExpr("degnitemkind == '" + degnitemkind + "' && degnitemno == '" + degnitemno + "'");
  5373. this.ds_data_recitem.setColumn(fRow, getColumnid, e.newvalue);
  5374. sysf_trace_emr("!!!!! fRow : " + fRow + " | e.newvalue : " + e.newvalue + " | getColumnid : " + getColumnid + " degnitemkind == '" + degnitemkind + "' && degnitemno == '" + degnitemno + "'");
  5375. sysf_trace_emr(this.name);
  5376. sysf_trace_emr(this.objects["ds_data_recitem"].findRow("degnitemno", degnitemno));
  5377. //sysf_trace_emr(ds_data_recitem.saveXML());
  5378. }
  5379. }
  5380. function lf_setItemRecDS_old(obj:Dataset, e:DSColChangeEventInfo)
  5381. {
  5382. sysf_trace_emr("@@@@@ lf_setItemRecDS : " + e.newvalue + " *****");
  5383. var columnid = e.columnid
  5384. var objNm = lf_getCompNm(columnid);
  5385. var comObj = this.components[objNm];
  5386. var refitem = comObj.refitem;
  5387. var colno = "";
  5388. var degnitemkind = "";
  5389. var degnitemno = "";
  5390. var expr = "";
  5391. if( viewObj.objects["ds_bind"] != null ){
  5392. for(var j=0; j<ds_bind.rowcount; j++){
  5393. var componentsid = ds_bind.getColumn(j, "componentid");
  5394. var supitem = ds_bind.getColumn(j, "supitem");
  5395. // itemvalue Columnid와 동일한 ds_bind 정보가 존재할때
  5396. if( supitem.indexOf(colid) > -1 ){
  5397. var supitemSplit = supitem.split(",");
  5398. for(var k in supitemSplit){
  5399. if(supitemSplit[k] == colid)
  5400. colno = k;
  5401. }
  5402. degnitemkind = componentsid.split("_")[0];
  5403. degnitemno = componentsid.split("_")[1];
  5404. }
  5405. }
  5406. }
  5407. // ds_bind에 degnitemkind 정보가 없으면 itemvalue 정보를 그대로 사용
  5408. if( utlf_isNull(degnitemkind) ) degnitemkind = colid.split("_")[0];
  5409. if( utlf_isNull(degnitemno) ) degnitemno = colid.split("_")[1];
  5410. if( !utlf_isNull(colno) ){
  5411. expr = "degnitemkind == '"+degnitemkind+"' && degnitemno == '"+degnitemno+"' && colno == '"+ colno +"'";
  5412. }else{
  5413. expr = "degnitemkind == '"+degnitemkind+"' && degnitemno == '"+degnitemno+"'";
  5414. }
  5415. var nidx = ds_data_recitem.findRowExpr(expr);
  5416. var setColumnid = "";
  5417. if( utlf_isNull(refitem) ){
  5418. if(comObj instanceof Edit || comObj instanceof MaskEdit || comObj instanceof TextArea)
  5419. setColumnid = "reccnts";
  5420. else// if(comObj instanceof Combo || comObj instanceof Calendar || comObj instanceof Spin)
  5421. setColumnid = "rectermcd";
  5422. }else{
  5423. if(comObj instanceof Edit || comObj instanceof MaskEdit || comObj instanceof TextArea)
  5424. setColumnid = "rectermnm";
  5425. //else if(comObj instanceof Combo || comObj instanceof Calendar || comObj instanceof Spin)
  5426. else
  5427. setColumnid = "rectermcd";
  5428. }
  5429. ds_data_recitem.setColumn(nidx, setColumnid, e.newvalue);
  5430. }
  5431. // ds_data_recitem -> ds_data_itemvalue
  5432. function lf_setItemValueDS(viewObj, mode){
  5433. sysf_trace_emr("***** lf_setItemValueDS("+viewObj+", "+mode+") *****" );
  5434. if( utlf_isNull(viewObj) ) viewObj = this;
  5435. if( utlf_isNull(mode) ) mode = "INIT";
  5436. var itemvalueDs = viewObj.ds_data_itemvalue;
  5437. var recitemDs = null;
  5438. sysf_trace_emr(" this.name (MMRCommon) : " + this.name + " | viewObj.name : " + viewObj.name);
  5439. if( mode == "INIT") recitemDs = viewObj.ds_data_recitem;
  5440. else recitemDs = ds_hidden_recitem;
  5441. // 임시
  5442. //itemvalueDs.enableevent = false;
  5443. for( var i=0; i<itemvalueDs.getColCount(); i++){
  5444. var colid = itemvalueDs.getColID(i);
  5445. var sColid = colid.split("_");
  5446. // component object
  5447. var objNm = lf_getCompNm(colid, viewObj);
  5448. var obj = viewObj.components[objNm];
  5449. var refitem = obj.refitem;
  5450. // user properties
  5451. var supdegnitemno = "";
  5452. var colno = "";
  5453. var rowno = "";
  5454. var ctrltype = "";
  5455. var ParentsNo = "";
  5456. var type = "";
  5457. var degnitemkind = "";
  5458. var degnitemno = "";
  5459. var extn = "";
  5460. var expr = "";
  5461. var getColumnid = "reccnts";
  5462. type = sColid[0];
  5463. degnitemno = sColid[1];
  5464. extn = sColid.length > 2 ? sColid[2] : "";
  5465. // set degnitemkind
  5466. if( type == "SSU" ){
  5467. degnitemkind = "MSL";
  5468. degnitemno = obj.supdegnitemno;
  5469. colno = obj.colno;
  5470. rowno = obj.rowno;
  5471. }else{
  5472. degnitemkind = type;
  5473. }
  5474. // set getColumnid
  5475. //var obj_degnitemkind = objNm.split("_")[0];
  5476. if( type == "STX" || type == "MTX" || type == "CAL" || type == "LBL" || !utlf_isNull(extn)){
  5477. // getColumnid = "reccnts";
  5478. if( !utlf_isNull(obj.refitem) )
  5479. getColumnid = "rectermnm";
  5480. }else{
  5481. if( !utlf_isNull(obj.refitem) )
  5482. getColumnid = "rectermcd";
  5483. else
  5484. getColumnid = "rectermcd";
  5485. }
  5486. // set expr
  5487. expr = "degnitemkind == '" + degnitemkind + "' && degnitemno == '" + degnitemno + "'";
  5488. if( !utlf_isNull(colno) ){
  5489. expr = expr + " && colno == '" + colno + "'";
  5490. }
  5491. if( !utlf_isNull(rowno) ){
  5492. expr = expr + " && rowno == '" + rowno + "'";
  5493. }
  5494. // findrow
  5495. var fidx = recitemDs.findRowExpr(expr);
  5496. // get Data
  5497. var data = recitemDs.getColumn(fidx, getColumnid);
  5498. // ds_data_itemvalue value set
  5499. itemvalueDs.setColumn(0, colid, utlf_transNullToEmpty(data));
  5500. }
  5501. // 임시
  5502. //itemvalueDs.enableevent = true;
  5503. }
  5504. function lf_getCompNm(columnid, tarObj, tarValue){
  5505. //<BindItem id="CMB_22" compid="CMB_22" propid="value" datasetid="ds_data_itemvalue" columnid="CMB_22"/>
  5506. if( utlf_isNull(tarObj) ) tarObj = this;
  5507. var compNm = null;
  5508. for(var i in tarObj.binds){
  5509. var bindObj = tarObj.binds[i];
  5510. if( bindObj.columnid == columnid ){
  5511. compNm = bindObj.compid;
  5512. if( !utlf_isNull(tarValue) ){
  5513. var objComp = tarObj.components[compNm];
  5514. if( objComp != null && !utlf_isNull(objComp.innerdataset) ){
  5515. if(!((objComp.innerdataset).toString() == "[object Dataset]")){
  5516. var objDs = eval(objComp.innerdataset);
  5517. }else{
  5518. var objDs = objComp.innerdataset;
  5519. }
  5520. var fRow = objDs.findRow(objComp.codecolumn, tarValue);
  5521. if( fRow < 0 )
  5522. continue;
  5523. }
  5524. }
  5525. return compNm;
  5526. }
  5527. }
  5528. return compNm;
  5529. }
  5530. /**
  5531. * @ver : 2007-09-21
  5532. * @desc : 점수계산이 포함된 체크박스나 라디오버튼을 체크할 때 실행되는 이벤트
  5533. * @
  5534. * @by : 이상현
  5535. * @param:
  5536. * @return:
  5537. * @---------------------------------------------------
  5538. */
  5539. var valGrupArr = new Array();
  5540. function lf_fSelectValList(comObj, degnitemno, type)
  5541. {
  5542. sysf_trace_emr( "lf_fSelectValList("+comObj.name+", "+degnitemno+", "+type+")");
  5543. /*
  5544. 기존 TF fSelectValList 에서의 degnitemno 는 Comonent에 적용되어있는 degnitemno 임.
  5545. XP 에서는 Component이름을 degnitemno 로 생성하였으므로 Component 의 이름으로 확인
  5546. */
  5547. try
  5548. {
  5549. if(type == null)
  5550. type = "RDO";
  5551. var sCd = ds_data_recitem.lookup("degnitemno", degnitemno, "rectermcd");
  5552. if( !utlf_isNull(sCd) && !utlf_isNull(comObj.innerdataset) ){
  5553. if(!((comObj.innerdataset).toString() == "[object Dataset]")){
  5554. var comObjDs = eval(objComp.innerdataset);
  5555. }else{
  5556. var comObjDs = objComp.innerdataset;
  5557. }
  5558. var fRow = comObjDs.findRow("termbasecd", sCd);
  5559. var sNm = comObjDs.getColumn(fRow, "valitemnm");
  5560. var sPnt = comObjDs.getColumn(fRow, "valitempnt");
  5561. }
  5562. if(type == "RDO" || type == "CMB")
  5563. {
  5564. var fRow = ds_data_recitem.findRow("degnitemno", degnitemno);
  5565. sysf_trace_emr(" CMB fRow : " + fRow);
  5566. ds_data_recitem.setColumn(fRow, "rectermnm", sNm);
  5567. ds_data_recitem.setColumn(fRow, "rowno", sPnt);
  5568. }
  5569. else if(type == "CHK")
  5570. {
  5571. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  5572. // CHK 아이템을 배열로 저장해둠.(체크한 순서에 상관없이 순서대로 저장하기 위함.)
  5573. //
  5574. // formdegn노드의 valgrupcd 를 구한다.
  5575. var valgrupcd = model.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/valgrupcd");
  5576. var Grupcdlist= "";
  5577. if(valGrupArr[degnitemno] == null)
  5578. {
  5579. valGrupArr[degnitemno] = new Array();
  5580. // 수정모드시 기존에 저장되었던 vallist 코드를 미리 대입해둠.
  5581. if(model.getValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermnm") != '')
  5582. {
  5583. sCdlist = model.getValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermcd").split(" ");
  5584. Grupcdlist= findNodeset(model, pageInfo.vallistRef + "[grupcd='" + valgrupcd + "']");
  5585. for(var cdidx = 0; cdidx < sCdlist.length; cdidx++)
  5586. {
  5587. for(var setidx = 0; setidx < Grupcdlist.length; setidx++)
  5588. {
  5589. var valitemNode = Grupcdlist.item(setidx);
  5590. if(sCdlist[cdidx] == valitemNode.selectSingleNode("valcd").text)
  5591. {
  5592. sNm = model.getValue(pageInfo.vallistRef + "[grupcd='" + valgrupcd + "' and valcd='" + valitemNode.selectSingleNode("valcd").text + "']/valitemnm");
  5593. sPnt = model.getValue(pageInfo.vallistRef + "[grupcd='" + valgrupcd + "' and valcd='" + valitemNode.selectSingleNode("valcd").text + "']/valitempnt");
  5594. valGrupArr[degnitemno][setidx] = valitemNode.selectSingleNode("valcd").text + "|" + sNm + "|" + sPnt;
  5595. break;
  5596. }
  5597. }
  5598. }
  5599. }
  5600. }
  5601. // 가장 마지막에 체크된 value 코드를 얻어온다.
  5602. sCdlist = model.getValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermcd").split(" ");
  5603. sCd = sCdlist[sCdlist.length-1];
  5604. sNm = model.getValue(pageInfo.vallistRef + "[grupcd='" + valgrupcd + "' and valcd='" + sCd + "']/valitemnm");
  5605. sPnt = model.getValue(pageInfo.vallistRef + "[grupcd='" + valgrupcd + "' and valcd='" + sCd + "']/valitempnt");
  5606. Grupcdlist= findNodeset(model, pageInfo.vallistRef + "[grupcd='" + valgrupcd + "']");
  5607. for(var grpidx = 0; grpidx < Grupcdlist.length; grpidx++)
  5608. {
  5609. var valitemNode = Grupcdlist.item(grpidx);
  5610. if(valitemNode.selectSingleNode("valcd").text == sCd)
  5611. {
  5612. if(valGrupArr[degnitemno][grpidx] == null)
  5613. {
  5614. valGrupArr[degnitemno][grpidx] = sCd + "|" + sNm + "|" + sPnt;
  5615. break;
  5616. }
  5617. }
  5618. }
  5619. var nms = "";
  5620. var cds = "";
  5621. var pnts = 0;
  5622. for(var i = 0 ; i < valGrupArr[degnitemno].length; i++)
  5623. {
  5624. var sValue = valGrupArr[degnitemno][i];
  5625. if(sValue != null)
  5626. {
  5627. var cd = sValue.split("|")[0];
  5628. var nm = sValue.split("|")[1];
  5629. var pnt = sValue.split("|")[2];
  5630. if(pnt == "")
  5631. pnt = "0";
  5632. if(nms == "")
  5633. {
  5634. nms += nm;
  5635. cds += cd;
  5636. }
  5637. else
  5638. {
  5639. nms += "▦" + nm;
  5640. cds += " " + cd;
  5641. }
  5642. //pnts += parseInt(pnt);
  5643. if(pnt.isNumber() == true || pnt.isFloat() == true)
  5644. pnts += eval(pnt);
  5645. }
  5646. }
  5647. // CHK 아이템 체크시 순서대로 정렬(백업)
  5648. /*
  5649. var arrCd = sCd.split(" ");
  5650. for(var i = 0 ; i < arrCd.length; i++)
  5651. {
  5652. var cd = arrCd[i];
  5653. var nm = model.getValue(pageInfo.vallistRef + "[valcd='" + cd + "']/valitemnm");
  5654. var pnt = model.getValue(pageInfo.vallistRef + "[valcd='" + cd + "']/valitempnt");
  5655. if(pnt == "")
  5656. pnt = 0;
  5657. if(i == 0)
  5658. nms += nm;
  5659. else
  5660. nms += " " + nm;
  5661. pnts += parseInt(pnt);
  5662. }
  5663. */
  5664. model.setValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermcd", cds);
  5665. model.setValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermnm", nms);
  5666. model.setValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rowno", pnts);
  5667. }
  5668. else if (type == "MSL")
  5669. {
  5670. var sItemNm = comObj.text
  5671. var supdegnitemno =comObj.supdegnitemno;
  5672. //var extn = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/itemattrval"), "extn");
  5673. var pnts = 0;
  5674. // start for
  5675. //ds_data_recitem.filter("degnitemno == '" + supdegnitemno + "' && degnitemkind == '" type + "'");
  5676. //for( var i = 0; i < ds_data_recitem.rowcount; i++){
  5677. var subdegnitemno = comObj.name.split("_")[1];
  5678. var rectermcd = comObj.value;
  5679. var extnCtrl = this.components["STX_" + subdegnitemno];
  5680. sysf_trace_emr(" rectermcd : " + rectermcd );
  5681. if( extnCtrl != null ){
  5682. if(!utlf_isNull(rectermcd) && rectermcd != "nonevalue")
  5683. {
  5684. extnCtrl.enable = true;
  5685. }
  5686. else
  5687. {
  5688. extnCtrl.enable = false;
  5689. }
  5690. }
  5691. var sDefltScr = comObj.degnitempnts
  5692. if(utlf_isNull(sDefltScr))
  5693. sDefltScr = "0";
  5694. if(!utlf_isNull(rectermcd))
  5695. {
  5696. if(sDefltScr.isNumber() == true || sDefltScr.isFloat() == true)
  5697. pnts += eval(sDefltScr);
  5698. }
  5699. sysf_trace_emr("jw.choe pnts 체크 필요...기존 for문 사라짐... 6681 MMRCommon ");
  5700. if(subdegnitemno == degnitemno)
  5701. {
  5702. var oDs = this.objects["ds_data_recitem"];
  5703. var fRow = oDs.findRowExpr("degnitemno == '" + supdegnitemno + "' && colno == '" + comObj.colno + "'");
  5704. sysf_trace_emr(" fRow : " + fRow);
  5705. ds_data_recitem.setColumn(fRow, "rectermnm", sItemNm);
  5706. ds_data_recitem.setColumn(fRow, "rowno", sDefltScr);
  5707. }
  5708. // }
  5709. // ds_data_recitem.filter("");
  5710. // end for
  5711. var fRow = ds_data_recitem.findRowExpr("degnitemno == '" + supdegnitemno +"' && and colno == '0'");
  5712. ds_data_recitem.setColumn(fRow, "rowno", pnts);
  5713. }
  5714. else if (type == "IMG")
  5715. {
  5716. var sItemNm = model.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/degnitemnm");
  5717. var supdegnitemno = model.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/supdegnitemno");
  5718. var degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/degnitemlevlcd");
  5719. var extn = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/itemattrval"), "extn");
  5720. var pnts = 0;
  5721. var nodeList = instance1.selectNodes(pageInfo.formdegnRef + "[supdegnitemno = '" + supdegnitemno + "' and degnitemkind = 'ISU']/degnitemno");
  5722. for(var i = 0; i < nodeList.length; i++)
  5723. {
  5724. var subdegnitemno = nodeList.item(i).text;
  5725. var rectermcd = model.getValue(pageInfo.recItemRef + "[degnitemno='" + subdegnitemno + "']/rectermcd");
  5726. if(extn == "visible")
  5727. {
  5728. var extnCtrl = document.controls("STX_" + subdegnitemno);
  5729. if(extnCtrl == null)
  5730. continue;
  5731. if(rectermcd != "")
  5732. {
  5733. extnCtrl.disabled = false;
  5734. }
  5735. else
  5736. {
  5737. extnCtrl.disabled = true;
  5738. }
  5739. }
  5740. // 아이템기본값 항목을 아이템기본값과 아이템점수로 분리
  5741. // 2008.04.16
  5742. // 수정자: 이경희
  5743. /*
  5744. var sDefltVal = model.getValue(pageInfo.formdegnRef + "[degnitemno='" + subdegnitemno + "']/degnitemdefltval");
  5745. if(sDefltVal == "")
  5746. sDefltVal = 0;
  5747. */
  5748. var sDefltScr = model.getValue(pageInfo.formdegnRef + "[degnitemno='" + subdegnitemno + "']/degnitempnts");
  5749. if(sDefltScr == "")
  5750. sDefltScr = "0";
  5751. if(rectermcd != "")
  5752. {
  5753. //pnts += parseInt(sDefltScr);
  5754. if(sDefltScr.isNumber() == true || sDefltScr.isFloat() == true)
  5755. pnts += eval(sDefltScr);
  5756. }
  5757. }
  5758. model.setValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermnm", sItemNm);
  5759. model.setValue(pageInfo.recItemRef + "[degnitemno='" + supdegnitemno + "']/rowno", pnts);
  5760. }
  5761. else if (type == "SSL")
  5762. {
  5763. // 아이템기본값 항목을 아이템기본값과 아이템점수로 분리
  5764. var sDefltScr = comObj.degnitempnts;
  5765. var comObjDs = this.objects["ds_" + comObj.name];
  5766. var sItemNm = comObjDs.getColumn(0, "valitemnm");
  5767. var supdegnitemno = comObj.supdegnitemno;
  5768. for( var i in components ){
  5769. if( components[i].supdegnitemno == supdegnitemno ){
  5770. var subdegnitemno = components[i].name.split("_")[1];
  5771. sysf_trace_emr(" subdegnitemno : " + subdegnitemno ) ;
  5772. var extnCtrl = this.components["STX_" + subdegnitemno];
  5773. var unitCtrl = this.components["UNIT_" + subdegnitemno];
  5774. if(extnCtrl == null)
  5775. continue;
  5776. if(degnitemno == subdegnitemno)
  5777. {
  5778. extnCtrl.enable = true;
  5779. extnCtrl.visible = true;
  5780. if(unitCtrl != null)
  5781. unitCtrl.visible = true;
  5782. }
  5783. else
  5784. {
  5785. extnCtrl.visible = false;
  5786. extnCtrl.enable = false;
  5787. //extnCtrl.value = "";
  5788. if(unitCtrl != null)
  5789. unitCtrl.visible = false;
  5790. }
  5791. }
  5792. }
  5793. var nIdx = ds_data_recitem.findRow("degnitemno", supdegnitemno);
  5794. sysf_trace_emr(" nIdx : " + nIdx );
  5795. ds_data_recitem.setColumn(nIdx, "rectermnm", sItemNm);
  5796. ds_data_recitem.setColumn(nIdx, "rowno", sDefltScr);
  5797. }
  5798. else if (type == "BOL")
  5799. {
  5800. sCd = model.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/rectermcd");
  5801. var nm = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemnm");
  5802. // 아이템기본값 항목을 아이템기본값과 아이템점수로 분리
  5803. // 2008.04.16
  5804. // 수정자: 이경희
  5805. //var pnt = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemdefltval");
  5806. var pnt = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitempnts");
  5807. if(pnt == "")
  5808. pnt = "0";
  5809. model.setValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermnm", nm);
  5810. model.setValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rowno", pnt);
  5811. var extnCtrl = document.controls("STX_" + degnitemno);
  5812. if(extnCtrl != null)
  5813. {
  5814. extnCtrl.disabled = false;
  5815. extnCtrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/reccnts";
  5816. }
  5817. }
  5818. fReCalculate();
  5819. }
  5820. catch(e)
  5821. {
  5822. sysf_catchTrace(e);
  5823. return;
  5824. }
  5825. }
  5826. /**
  5827. * @group :
  5828. * @ver : 2009.12.22
  5829. * @by : acwon
  5830. * @modify : 2009.12.22 (acwon)
  5831. * @---------------------------------------------------
  5832. * @type : function
  5833. * @access : public
  5834. * @desc : 부분서식의 아이템에 부분서식 상위코드를 세팅
  5835. * 동일한 부분서식이 두개이상일때 문제점이 발견되어 보완함.
  5836. * @param : ivwObj - 최상위 아이템 코드를 세팅할 iviewer 객체
  5837. * orgSupDegnItemNo
  5838. * @return :
  5839. * @---------------------------------------------------
  5840. */
  5841. function setFstLevlItemCdOnUnitForm(ivwObj, orgSupDegnItemNo)
  5842. {
  5843. sysf_trace_emr("***** setFstLevlItemCdOnUnitForm("+ivwObj+", "+orgSupDegnItemNo+") EMRCommon -> MMRCommon 부분서식의 아이템에 부분서식 상위코드를 세팅*****");
  5844. //var EMR_formdegnRefDs = this.objects[gPageInfo_EMR.formdegnRef];
  5845. var degnitemlevlcd = ds_data_formdegn.lookup("degnitemno", orgSupDegnItemNo, "degnitemlevlcd");
  5846. var fstLevlBaseItemCd = degnitemlevlcd.substr(0, degnitemlevlcd.indexOf(".") >= 0 ? degnitemlevlcd.indexOf(".") : degnitemlevlcd.length);
  5847. var fstLevlItemCd = ds_data_formdegn.lookup("degnitemlevlcd", fstLevlBaseItemCd, "degnitemcd");
  5848. var nodeList = ivwObj.objects["ds_data_recitem"];
  5849. var nodeListCnt = 0;
  5850. if( nodeList != null ) nodeListCnt = nodeList.rowcount;
  5851. for(var i = 0; i < nodeListCnt; i++)
  5852. {
  5853. var recitemNode = nodeList;
  5854. if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  5855. continue;
  5856. if(recitemNode.getColumnInfo("degnunitcd") == null)
  5857. {
  5858. recitemNode.addColumn("degnunitcd", "string");
  5859. }
  5860. recitemNode.setColumn(i, "fstlevlitemcd", fstLevlItemCd);
  5861. recitemNode.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(i, "degnitemlevlcd"));
  5862. recitemNode.setColumn(i, "degnitemlevlno", parseInt(recitemNode.getColumn(i, "degnitemlevlno")) + 1)
  5863. }
  5864. //if( nodeList != null ) sysf_trace_emr(nodeList.saveXML());
  5865. sysf_trace_emr("jw.choe grid dataset check EMRCommon !!!!!!!!!!!!!!!!!!!!!!!!");
  5866. var grdNodeList = ivwObj.objects["ds_main_recinfo_grid"];//ivwObj.objects[gPageInfo_EMR.RecinfoGridRef];
  5867. var grdNodeListCnt = 0;
  5868. if( grdNodeList != null ) grdNodeListCnt = grdNodeList.rowcount;
  5869. for(var i = 0; i < grdNodeListCnt; i++)
  5870. {
  5871. grdNodeList.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + grdNodeList.getColumn(i, "degnitemlevlcd"));
  5872. //var itemNodeList = grdNodeList.item(i).selectNodes("recitem");
  5873. var itemNodeList = ivwObj.objects["ds_main_recinfo_grid_recitem"];
  5874. var itemNodeListCnt = 0;
  5875. if( itemNodeList != null ) itemNodeListCnt = itemNodeList.rowcount;
  5876. for(var j = 0; j < itemNodeListCnt; j++)
  5877. {
  5878. var recitemNode = itemNodeList;
  5879. //var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  5880. if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  5881. continue;
  5882. if(recitemNode.getColumnInfo("degnunitcd") == null)
  5883. {
  5884. recitemNode.addColumn("degnunitcd", "string");
  5885. }
  5886. recitemNode.setColumn(j, "fstlevlitemcd", fstLevlItemCd);
  5887. recitemNode.setColumn(j, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(j, "degnitemlevlcd"));
  5888. recitemNode.setColumn(j, "degnitemlevlno", parseInt(recitemNode.getColumn(j, "degnitemlevlno")) + 1);
  5889. }
  5890. }
  5891. var tempnodeList = ivwObj.objects["ds_temp_recitem"];//ivwObj.objects[gPageInfo_EMR.initrecItemRef];
  5892. var tempnodeListCnt = 0;
  5893. if( tempnodeList != null ) tempnodeListCnt = tempnodeList.rowcount;
  5894. for(var i = 0; i < tempnodeListCnt; i++)
  5895. {
  5896. var recitemNode = tempnodeList;
  5897. //var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  5898. if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  5899. continue;
  5900. if(recitemNode.getColumnInfo("degnunitcd") == null)
  5901. {
  5902. recitemNode.addColumn("degnunitcd", "string");
  5903. }
  5904. recitemNode.setColumn(i, "fstlevlitemcd", fstLevlItemCd);
  5905. recitemNode.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(i, "degnitemlevlcd"));
  5906. recitemNode.setColumn(i, "degnitemlevlno", parseInt(recitemNode.getColumn(i, "degnitemlevlno")) + 1);
  5907. }
  5908. var tempgrdNodeList = ivwObj.objects["ds_temp_recinfo_grid"];//ivwObj.objects[gPageInfo_EMR.initRecinfoGridRef];
  5909. var tempgrdNodeListCnt = 0;
  5910. if( tempgrdNodeList != null ) tempgrdNodeListCnt = tempgrdNodeList.rowcount;
  5911. for(var i = 0; i < tempgrdNodeListCnt; i++)
  5912. {
  5913. tempgrdNodeList.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + tempgrdNodeList.getColumn(i, "degnitemlevlcd"))
  5914. //var itemNodeList = tempgrdNodeList.item(i).selectNodes("recitem");
  5915. var itemNodeList = ivwObj.objects["ds_temp_recinfo_grid_recitem"];
  5916. var itemNodeListCnt = 0;
  5917. if( itemNodeList != null ) itemNodeListCnt = itemNodeList.rowcount;
  5918. for(var j = 0; j < itemNodeListCnt; j++)
  5919. {
  5920. var recitemNode = itemNodeList;
  5921. //var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  5922. if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  5923. continue;
  5924. recitemNode.setColumn(j, "fstlevlitemcd", fstLevlItemCd);
  5925. recitemNode.setColumn(j, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(j, "degnitemlevlcd"));
  5926. recitemNode.setColumn(j, "degnitemlevlno", parseInt(recitemNode.getColumn(j, "degnitemlevlno")) + 1);
  5927. }
  5928. }
  5929. }
  5930. //MRF01200
  5931. function fFormReload()
  5932. {
  5933. // 그리드 Height 재설정
  5934. //fResetGrd();
  5935. // OCX 이미지 로드
  5936. // fLoadOcxImage();
  5937. // 가계도 데이터 로드
  5938. // fLoadFdgInfo();
  5939. // Disabled 컨트롤 재설정
  5940. // fResetDisableCtrls();
  5941. // 백업 원위치
  5942. // model.copyNode( "/root/temp2/localimage", "/root/main/localimage" );
  5943. // model.removenode( "/root/main/localimage" );
  5944. // fRecalculate() 함수 선행 작업.
  5945. g_degnitemlevlcnt = 0;
  5946. // fSetDegnitemlevlcnt();
  5947. }
  5948. /**
  5949. * @desc : 컨트롤의 스타일 값 가져오기
  5950. * @id :
  5951. * @event :
  5952. * @return :
  5953. * @authur : 이상현
  5954. */
  5955. function getStyleValue(attrs, attrNm, ctrltype)
  5956. {
  5957. sysf_trace_emr("***** getStyleValue("+attrs+", "+attrNm+", "+ctrltype+") EMRCommon -> MMRCommon *****");
  5958. if(!urlf_isNull(ctrltype))
  5959. attrNm = ctrltype + "." + attrNm;
  5960. var arrAttrs = attrs.split(";");
  5961. for(var i = 0; i < arrAttrs.length; i++)
  5962. {
  5963. var arrAttr = arrAttrs[i].split(":");
  5964. if(arrAttr.length == 0)
  5965. continue;
  5966. if(arrAttr[0] == attrNm)
  5967. {
  5968. return arrAttr[1];
  5969. }
  5970. }
  5971. return "";
  5972. }
  5973. function GetImgUrl(imgecd)
  5974. {
  5975. sysf_trace_emr("***** GetImgUrl("+imgecd+") EMRCommon -> MMRCommon *****");
  5976. return getActionURI("TRMRF01212") + getUserSessionString() + "&imgecd=" + imgecd;
  5977. }
  5978. /**
  5979. * @desc : 이미지데이터를 가져온다
  5980. * @id :
  5981. * @event :
  5982. * @return :
  5983. * @authur : 이상현
  5984. * @history:
  5985. 2008-11-24
  5986. - 로컬이미지는 공통서식, 과별서식 구분 없이 무조건 저장.
  5987. - 편집가능 DB이미지는 공통서식의 경우 편집을 하지 않으면 Pass
  5988. 과별서식의 경우 편집을 하지 않아도 저장하도록 수정
  5989. */
  5990. var BASE_SHAPE = "<Xvg viewMode='1' zoom='0' width='300' height='300'></Xvg>";
  5991. function getImgeData()
  5992. {
  5993. sysf_trace_emr("***** getImgeData() 이미지데이터를 가져온다. EMRCommon -> MMRCommon *****");
  5994. var pageInfo = new PAGEINFO();
  5995. var expr = "degnitemkind == 'IMG'";
  5996. //var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  5997. var recItemRefDs = this.objects["ds_data_recitem"];
  5998. var recItemRefDsCnt = 0;
  5999. if( recItemRefDs != null ){
  6000. recItemRefDs.filter(expr);
  6001. recItemRefDsCnt = recItemRefDs.rowcount;
  6002. }
  6003. // 공통서식인지 과별서식인지 구분
  6004. //var FormInfoNode = instance1.selectNodes(pageInfo.formmastRef);
  6005. var formmastRefDs = this.objects["ds_data_formmast"];
  6006. var formmastRefDsCnt = formmastRefDs == null ? 0 : formmastRefDs.rowcount;
  6007. var isFormMain = "";
  6008. var formkind = "";
  6009. var formprognm = "";
  6010. var formprogflag = "";
  6011. sysf_trace_emr("jw.choe 특수서식은 formmast 정보가 없기때문에 차후 확인필요함 MMRCommon");
  6012. if(formmastRefDsCnt > 0)
  6013. {
  6014. //var formmastInfoNode = FormInfoNode.item(0);
  6015. formprogflag = formmastRefDs.getColumn(0, "formprogflag");
  6016. formprognm = formmastRefDs.getColumn(0, "formprognm");
  6017. formkind = formmastRefDs.getColumn(0, "formkind");
  6018. if(formprognm != "-" && formkind == "C" && formprogflag != "-")
  6019. {
  6020. isFormMain = true;
  6021. }
  6022. else if(formkind == "U")
  6023. {
  6024. isFormMain = true; // 공통서식내의 부분 서식.
  6025. }
  6026. else
  6027. {
  6028. isFormMain = false;
  6029. }
  6030. }
  6031. for(var i = 0; i < recItemRefDsCnt; i++)
  6032. {
  6033. //var itemNode = nodeList.item(i);
  6034. var degnitemno = recItemRefDs.getColumn(i, "degnitemno");
  6035. var degnitemcd = recItemRefDs.getColumn(i, "degnitemcd");
  6036. var degnitemlevlcd = recItemRefDs.getColumn(i, "degnitemlevlcd");
  6037. var degnitemnm = recItemRefDs.getColumn(i, "degnitemnm");
  6038. var fstlevlitemcd = recItemRefDs.getColumn(i, "fstlevlitemcd");
  6039. var reccnts = recItemRefDs.getColumn(i, "reccnts");
  6040. var imgedit = "";
  6041. if(formkind == "U")
  6042. {
  6043. var Tmpdegnitemlevlcd = degnitemlevlcd;
  6044. var Tmpfstlevlitemcd = "";
  6045. if(!utlf_isNull(fstlevlitemcd))
  6046. {
  6047. Tmpfstlevlitemcd = fstlevlitemcd.substr(0, 7) + ".";
  6048. Tmpdegnitemlevlcd = Tmpdegnitemlevlcd.setReplaceWord(Tmpfstlevlitemcd, "");
  6049. }
  6050. imgedit = getStyleValue(ds_data_formdegn.lookup("degnitemlevlcd", Tmpdegnitemlevlcd, "itemattrval"), "imgedit");
  6051. }
  6052. else
  6053. imgedit = getStyleValue(ds_data_formdegn.lookup("degnitemlevlcd", degnitemlevlcd, "itemattrval"), "imgedit");
  6054. if(imgedit != "Y")
  6055. continue;
  6056. var ctrlid = "IMG_" + degnitemno;
  6057. var strShape = eval("IMG_" + degnitemno).GetShapeString();
  6058. var strRecImge = eval("IMG_" + degnitemno).SaveImageBase64();
  6059. var strImgSize = eval("IMG_" + degnitemno).GetImageSizeEx(false); // 이미지의 크기
  6060. sysf_trace_emr("jw.choe Local Image path check! /roo/temp2/localimage/ ctrlid / srcimage, LocalYN, degnitemlevlcd MMRCommon ");
  6061. // var LocalImgNode = "/root/temp2/localimage/" + ctrlid + "/srcimge";
  6062. // var LocalYNNode = "/root/temp2/localimage/" + ctrlid + "/LocalYN";
  6063. // var LocalDegnitemlevlCDNode = "/root/temp2/localimage/" + ctrlid + "/degnitemlevlcd";
  6064. var LocalImgDs = this.objects["ds_temp2_localimage_"+ctrlid];
  6065. var strSrcImge = LocalImgDs.getColumn(0, "srcimge");
  6066. var strLocalYN = LocalImgDs.getColumn(0, "LocalYn");
  6067. var strLocalImgDegnitemlevlcd = LocalImgDs.getColumn(0, "degnitemlevlcd");
  6068. if(strLocalYN == "Y") // 로컬이미지 저장 루틴
  6069. {
  6070. if(degnitemlevlcd == strLocalImgDegnitemlevlcd)
  6071. {
  6072. // Image Size
  6073. var fRow = ds_data_recitem.findRowExpr("degnitemlevlcd == '" + degnitemlevlcd + "' && degnitemno == '" + degnitemno + "'");
  6074. ds_data_recitem.setColumn(fRow, "unitnm", strImgSize);
  6075. // MetaData
  6076. ds_data_recitem.setColumn(fRow, "reccnts", strShape);//cdata 처리
  6077. // recimage
  6078. fRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  6079. ds_data_recitem.setColumn(fRow, "recimge", strRecImge);//cdata 처리
  6080. // srcimage
  6081. var newNode = LocalImgDs.getColumn(0, "srcimge");
  6082. var srcimgNode = recItemRefDs.getColumn(i,"srcimge");
  6083. if(!utlf_isNull(newNode) && !utlf_isNull(srcimgNode))
  6084. {
  6085. //itemNode.replaceChild(newNode, srcimgNode);
  6086. recItemRefDs.setColumn(i, "srcimge", newNode);
  6087. }
  6088. // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  6089. ds_data_recitem.setColumn(fRow, "colno", "FILE");
  6090. // 미리보기시 로컬이미지와 DB이미지를 구분하기 위해 설정
  6091. ds_data_recitem.setColumn(fRow, "degnitemnm", "LOCALIMG");
  6092. }
  6093. }
  6094. else // DB 이미지 저장 루틴
  6095. {
  6096. if(isFormMain == true) // 공통서식은 수정하지 않은 편집가능 이미지인 경우 저장하지 않음.
  6097. {
  6098. var tmpShape = removeXvgTag(strShape);
  6099. sysf_trace_emr("@@@@@ tmpShape : " + tmpShape + " @@@@@");
  6100. if(!utlf_isNull(tmpShape))
  6101. {
  6102. var fRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  6103. sysf_trace_emr("@@@@@ fRow : " + fRow + " | i : " + i + " @@@@@");
  6104. ds_data_recitem.setColumn(fRow, "reccnts", strShape);//cdata set
  6105. // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  6106. ds_data_recitem.setColumn(fRow, "colno", "MAST"); //cdata set
  6107. ds_data_recitem.setColumn(fRow, "recimge", strRecImge); //cdata set
  6108. }
  6109. }
  6110. else // 과별서식
  6111. {
  6112. if(degnitemnm == "빈이미지" && utlf_isNull(strShape))
  6113. {
  6114. }
  6115. else
  6116. {
  6117. var fRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  6118. ds_data_recitem.setColumn(fRow, "reccnts", strShape); //cdata set
  6119. // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  6120. ds_data_recitem.setColumn(fRow, "colno", "MAST"); //cdata set
  6121. dfs_data_recitem.setColumn(fRow, "recimge", strRecImge); //cdata set
  6122. }
  6123. }
  6124. }
  6125. }
  6126. if( recItemRefDs != null ){
  6127. recItemRefDs.filter("");
  6128. }
  6129. }
  6130. /**
  6131. * @desc : 그리드의 저장할 기록정보를 가져온다
  6132. * @id :
  6133. * @event :
  6134. * @return :
  6135. * @authur : 이상현
  6136. * @history:
  6137. 2008-11-28 이경희
  6138. -그리드 저장시 셀에 입력된 값이 있으면 그리드 구조 통채로 저장하며, 입력된 값이 없으면 저장하지 않는다.
  6139. - Y, G축 DGN, OPN, CCN 저장시 그리드 제목은 처음 하나만 저장되는 기존 구조를 따르면서 내용은 모두 저장하도록 수정
  6140. 2010-03-24 주희경
  6141. - 그리드 저장 시 값을 select 할 때 그리드 기록 데이터의 순서가 꼬인 구조로 되어 있어 그룹별로 기록 데이터를 copy하도록 수정
  6142. 2010-04-14 김달현
  6143. - 그리드의 degnitemno별로 모으는 작업 할 때에 indexOf제외조건 오류 수정
  6144. */
  6145. function getGridSaveData(pageInfo)
  6146. {
  6147. sysf_trace_emr("***** getGridSaveData("+pageInfo+") 그리드의 저장할 기록정보를 가져온다 EMRCommon -> MMRCommon *****");
  6148. sysf_trace_emr("jw.choe grid 데이타셋 구조 변경으로 해당 루틴 필요없음 return" );
  6149. return;
  6150. var tmpGrdList = this.objects[pageInfo.RecinfoGridRef];
  6151. var tmpGrdListCnt = tmpGrdList == null ? 0 : tmpGrdList.rowcount;
  6152. //var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // "/root/main/recinfo/grid";
  6153. var groupKeys = "";
  6154. for(var grdIdx = 0; grdIdx < tmpGrdListCnt; grdIdx++)
  6155. {
  6156. //var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  6157. var degnitemno = tmpGrdList.getColumn(grdIdx, "degnitemno");
  6158. groupKeys = groupKeys + degnitemno + ",";
  6159. }
  6160. var arrGroupKey = groupKeys.split(",");
  6161. //2010.04.22 dhkim 배열을 순서대로 정렬한다.(순서대로 정렬되어있지 않은 경우는 skip시키지 않아 정렬 로직 추가)
  6162. if(arrGroupKey.length > 0){
  6163. var tmp;
  6164. for(var i = arrGroupKey.length; i >= 0; i--){
  6165. for(var j = 0; j < i; j++){
  6166. if(Number(arrGroupKey[j]) > Number(arrGroupKey[j+1])){
  6167. tmp = arrGroupKey[j];
  6168. arrGroupKey[j] = arrGroupKey[j+1];
  6169. arrGroupKey[j+1] = tmp;
  6170. }
  6171. }
  6172. }
  6173. groupKeys = "";
  6174. for(var i = 0; i < arrGroupKey.length; i++){
  6175. if(arrGroupKey.length -1 == i){
  6176. groupKeys += arrGroupKey[i];
  6177. }else{
  6178. groupKeys += arrGroupKey[i] + ",";
  6179. }
  6180. }
  6181. }
  6182. //2010.04.14 dhkim
  6183. //(기존의 indexOf로 string을 검색했을 때 degnitemno가 중복된 경우의 처리가 불가능함)
  6184. //ex) degnitemno가 7, 17, 27 등으로 들어가 있는 경우 indexOf에서 제외되어 7값만 가져가게됨.
  6185. //루프를 돌면서 key값이 같은게 있으면 skip시키면서 새로운 array를 만들어준다.
  6186. var tmpKey = ""; var _tmpKey;
  6187. groupKeys = "";
  6188. for(var x = 0; x < arrGroupKey.length ; x++){
  6189. _tmpKey = arrGroupKey[x];
  6190. if(tmpKey != _tmpKey){
  6191. groupKeys = groupKeys + _tmpKey + ",";
  6192. }
  6193. tmpKey = _tmpKey;
  6194. }
  6195. arrGroupKey = groupKeys.split(",");
  6196. sysf_trace_emr("jw.choe grd data 노드 체크후 처리 ");
  6197. for (i=0; i<arrGroupKey.length-1; i++)
  6198. {
  6199. tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef+"[degnitemno='"+arrGroupKey[i]+"']"); // "/root/main/recinfo/grid";
  6200. getGridData(pageInfo, tmpGrdList);
  6201. }
  6202. }
  6203. /**
  6204. * @desc : 기본서식 기록 데이터가 없고 [추가기록, 이미지, 가계도, 확장서식]의 데이터가 있는경우 부분서식 타이틀 저장을 위해 체크 및 데이터 셋팅
  6205. * @id :
  6206. * @event :
  6207. * @return :
  6208. * @authur : 주희경
  6209. */
  6210. function fSetFormRecItemHeader(pageInfo, etcNodeList, resetDataFlag)
  6211. {
  6212. sysf_trace_emr("***** fSetFormRecItemHeader("+pageInfo+", "+etcNodeList+", "+resetDataFlag+") EMRCommon -> MMRCommon*****");
  6213. var tmpivwObj = "";
  6214. for(var i = 0; i < etcNodeList.rowcount; i++)
  6215. {
  6216. //var etcitemsNode = etcNodeList.item(i); // 값이 있는 단일 노드
  6217. var etcfstlevlitemcd = etcNodeList.getColumn(i, "fstlevlitemcd");
  6218. var etcreccnts = etcNodeList.getColumn(i, "reccnts").text;
  6219. var fRow = ds_data_recitem.findRow("fstlevlitemcd", etcfstlevlitemcd);
  6220. var orgreccnts = ds_data_recitem.getColumn(fRow, "reccnts");
  6221. if (utlf_isNull(etcreccnts))
  6222. etcreccnts = etcNodeList.getColumn(i, "rectermcd");
  6223. tmpivwObj = this.components["ivw_" + etcfstlevlitemcd];
  6224. sysf_trace_emr("tmpivwObj : " + tmpivwObj.name);
  6225. if (!resetDataFlag)
  6226. {
  6227. if(!utlf_isNull(tmpivwObj) && !utlf_isNull(tmpivwObj.url))
  6228. {
  6229. var cnt = tmpivwObj.getFormRecItemExist();
  6230. if (cnt < 1 && utlf_isNull(orgreccnts) && !utlf_isNull(etcreccnts))
  6231. {
  6232. ds_data_recitem.setColumn(fRow, "reccnts", etcreccnts);
  6233. }
  6234. }
  6235. else
  6236. {
  6237. if (utlf_isNull(orgreccnts))
  6238. {
  6239. ds_data_recitem.setColumn(fRow, "reccnts", etcreccnts);
  6240. }
  6241. }
  6242. }
  6243. else
  6244. {
  6245. if(!utlf_isNull(tmpivwObj) && !utlf_isNull(tmpivwObj.url))
  6246. {
  6247. var cnt = tmpivwObj.getFormRecItemExist();
  6248. if (cnt < 1 && orgreccnts == etcreccnts && !utlf_isNull(etcreccnts))
  6249. {
  6250. ds_data_recitem.setColumn(fRow, "reccnts", "");
  6251. }
  6252. }
  6253. else
  6254. {
  6255. if (orgreccnts == etcreccnts)
  6256. {
  6257. ds_data_recitem.setColumn(fRow, "reccnts", "");
  6258. }
  6259. }
  6260. }
  6261. }
  6262. }
  6263. /**
  6264. * @desc : 기록아이템 값을 가져온다
  6265. * @id :
  6266. * @event :
  6267. * @return :
  6268. * @authur : 이상현
  6269. */
  6270. function getFormRecItemExist()
  6271. {
  6272. sysf_trace_emr("***** getFormRecItemExist() 기록아이템값 조회 EMRCommon -> MMRCommon *****")
  6273. var iNodeCnt = 0;
  6274. var iNodeCnt = ds_data_recitem.getCaseCount("!utlf_isNull(reccnts) || !utlf_isNull(rectermcd) || !utlf_isNull(rectermnm)");
  6275. return iNodeCnt;
  6276. }
  6277. ]]></Script>