SMMNR08000.xjs 265 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 투약시간일괄관리(SMMNR08001_투약기록.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. var xCondPath = "/root/main/cond";
  8. var xWardPatListPath = "ds_main_wardpatinfo_wardpatlist";
  9. var xWardActListPath = "ds_main_wardactinfo_wardactlist";
  10. var xTempWardActListPath = "/root/temp/wardactinfo/wardactlist";
  11. var xWardDrugListPath = "ds_main_warddruginfo_warddruglist";
  12. var xHiddenWardDrugPath = "/root/hidden/warddruginfo/warddruglist";
  13. var xPatInfoPath = "/root/main/paminfo/pamlist";
  14. var xMediCard8 = "/root/send/medicard8/warddruglist";
  15. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  16. //var grd_colcnt = 17+1;
  17. //-----------------(20081118)
  18. //var grd_colcnt = 18;
  19. //var grd_title1 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^ ^";
  20. //var grd_title2 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^ ^";
  21. //var grd_colcnt = 19;
  22. //var grd_title1 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^수액No\n적용^ ^";
  23. //var grd_title2 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^수액No\n적용^ ^";
  24. var grd_colcnt = 22;
  25. //var grd_title1 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  26. //var grd_title2 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  27. var grd_title1 = "선택^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^AST^1회\n용량^단위^1회\n수량^단위^횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  28. var grd_title2 = "^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^AST^1회\n용량^단위^1회\n수량^단위^횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  29. //-----------------(20081118)
  30. var addCol_Array = new Array;
  31. var baseCol_Array = new Array;
  32. var mixno_Array = new Array;
  33. var colIndex_Array = new Array;
  34. var addCol_Cnt = 0;
  35. var screen_mode = "pat";
  36. var gray = "#c0c0c0";
  37. var yellow = "#ffff00";
  38. var yellowishgreen = "#80ff00";
  39. var red = "#ff0000";
  40. var sky = "#00ffff";
  41. var blue = "#0000ff";
  42. var white = "#ffffff";
  43. //var yellowishgreen = "#80ff00"
  44. //-----------------(20081201)
  45. var orange = "#ffcc00";
  46. //-----------------(20081201)
  47. var top_pid = "";
  48. var sign_row = "";
  49. var sign_saverow = ""; //20081112
  50. var sign_savecol = ""; //20081112
  51. //-------------(20080831)
  52. var sSignRow = "";
  53. var gTimer = "";
  54. //-------------(20081121)
  55. var toprow = 0;
  56. var toprowflag = "N";
  57. //-------------(20081121)
  58. var nfixedcols = 0;
  59. var flagDsWarddruglist = false;
  60. var ninst_cnt = -1;
  61. /**
  62. * @group :
  63. * @ver : 2007.06.23
  64. * @by : 최경용
  65. * @---------------------------------------------------
  66. * @type : function
  67. * @access : public
  68. * @desc : 투약기록 초기값 셋팅 및 초기조회
  69. * @param :
  70. * @param :
  71. * @return :
  72. * @---------------------------------------------------
  73. */
  74. function fInitialize(){
  75. //-------------------(20080727)
  76. var instcd = sysf_getUserInfo("dutplceinstcd");
  77. if ( sysf_getSystemCd() == "HIS012") {
  78. group3.btn_drugcard.visible = false;
  79. } else {
  80. group3.btn_drugcard.visible = true;
  81. }
  82. if ( frmf_checkOpener() && opener.frmf_getParameter("SMMNR00600_OPENFLAG") == "Y"){//투약기록에서 open시 투약기록 버튼 비활성화
  83. group3.btn_medirec.visible = false;
  84. } else {
  85. group3.btn_medirec.visible = true;
  86. }
  87. //-------------------
  88. //-------------------(20080910)
  89. //로그인 간호사의 정보추출
  90. ds_main_cond.setColumn(0, "loguserid", sysf_getUserId());
  91. ds_main_cond.setColumn(0, "logdeptcd", sysf_getUserInfo("dutplcecd"));
  92. //model.resetInstanceNode("/root/send/reqdata");
  93. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  94. var oParam = {};
  95. oParam.id = "TRMNR00606";
  96. oParam.service = "caremedirecapp.CareMediRec";
  97. oParam.method = "reqGetLogUserInfo";
  98. oParam.inds = "reqcond=ds_send_reqdata";
  99. oParam.outds = "ds_main_loguserinfo_loguserlist=loguserlist";
  100. oParam.async = false;
  101. //oParam.callback = "cf_TRMNR00606";
  102. tranf_submit(oParam);
  103. if( ds_main_loguserinfo_loguserlist.rowcount > 0 ){
  104. ds_main_cond.setColumn(0, "opprcpcond", "2");
  105. }
  106. //-------------------
  107. //-------------(20080910)
  108. group3.bolall.value = 0;
  109. //-------------(20080910)
  110. ds_main_cond.setColumn(0, "orddd", utlf_getCurrentDate());
  111. //model.setValue("/root/main/cond/orddd", "20080124");
  112. ds_main_cond.setColumn(0, "yorddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),-1));
  113. ds_main_cond.setColumn(0, "torddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),+1));
  114. group3.swtpatList.tabindex = 0;
  115. radio_ColorChange();
  116. ds_main_warddruginfo_warddruglist.clearData();
  117. //--------------------------------------
  118. // 바코드OCX 생성(출력시로 이동)(20080720)
  119. // 20080917 다시 open함
  120. if( utlf_isNull(this.objects["CommAX"]) ){
  121. //lzzfMakeBrcdPrntObj("CommAX"); //(20080721이전버젼)
  122. //0929
  123. var scrnid = "SMMNR08000";
  124. fGetBarCodeInfo(frmf_getScreenID()); // CareCom.js
  125. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  126. //XML string 값을 파라미터로 넘김
  127. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  128. var sParamObj = new Object();
  129. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  130. var pXmlStr = ds_barcdprntsetup.getColumn(0, "prntsetupinfo");
  131. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  132. sysf_trace(succYn);
  133. // => retrun DS
  134. // : ds_data_setupinfo(prntkind, commkind)
  135. // : ds_data_comm01(setupval)
  136. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  137. // : ds_data_comm03(setupval)
  138. // : ds_data_blank(left, top)
  139. // ------------------------------------------------------------------------------------------------------------
  140. lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721이후버젼) //0921임시로막음
  141. }
  142. //--------------------------------------
  143. fGetWardList();
  144. var arrParam = [{dsNm: "ds_init_M0381list_M0381", cdGrpId: "M0381"}];
  145. appf_getCodeList(arrParam);
  146. // 환자정보 조회
  147. var sPamInfo = sysf_getGlobalVariable("paminfo");
  148. dsf_setCSVToDs("ds_main_paminfo_pamlist", sPamInfo); //환자정보내리기
  149. var sPID = ds_main_paminfo_pamlist.getColumn(0, "pid");
  150. var sWardCd = ds_main_paminfo_pamlist.getColumn(0, "wardcd");
  151. var sRoomCd = ds_main_paminfo_pamlist.getColumn(0, "roomcd"); //병실정보(20080912)
  152. var roomcd = "";
  153. var patnm = "";
  154. var sexage = "";
  155. if( utlf_isNull(sWardCd) ){
  156. ds_main_cond.setColumn(0, "wardcd", sysf_getUserInfo("dutplcecd"));
  157. }else{
  158. ds_main_cond.setColumn(0, "wardcd", sWardCd);
  159. }
  160. fGetRoomList();
  161. //-----------------------------(20080912)
  162. if( !utlf_isNull(sRoomCd) ){
  163. ds_main_cond.setColumn(0, "roomcd", sRoomCd);
  164. }
  165. //-----------------------------(20080912)
  166. fGetPatList();
  167. //-----------------------------(20080906)
  168. fSetsettingrnid();
  169. //-----------------------------(20080906)
  170. if( !utlf_isNull(sPID) ){
  171. for( var i=0 ; i<ds_main_wardpatinfo_wardpatlist.rowcount ; i++ ){
  172. if( ds_main_wardpatinfo_wardpatlist.getColumn(i, "pid") == sPID ){
  173. roomcd = ds_main_wardpatinfo_wardpatlist.getColumn(i, "roomcd");
  174. patnm = ds_main_wardpatinfo_wardpatlist.getColumn(i, "patnm");
  175. sexage = ds_main_wardpatinfo_wardpatlist.getColumn(i, "sexage");
  176. ds_main_patinfo.setColumn(0, "roomcd", roomcd);
  177. ds_main_patinfo.setColumn(0, "pid", sPID);
  178. ds_main_patinfo.setColumn(0, "patnm", patnm);
  179. ds_main_patinfo.setColumn(0, "sexage", sexage);
  180. ds_main_wardpatinfo_wardpatlist.rowposition = i;
  181. group3.swtpatList.pat.grd_patlist.setCellPos(0);
  182. group3.swtpatList.pat.grd_patlist.setFocus();
  183. //----------(20090104)
  184. //콤보자료 구성
  185. var pGrd = group3.swtpatList.pat.grd_patlist;
  186. var sParam = "drg";
  187. var row = pGrd.currentrow;
  188. fgetwarddrugtimecomboList(sParam,row);
  189. //----------(20090104)
  190. fClickDrugListBefore(); //------------(20081031)
  191. fClickDrugList("drg", i);
  192. fClickDrugListAfter(); //------------(20081031)
  193. return;
  194. }
  195. }
  196. }
  197. // //-------------------(20080727)
  198. // var instcd = getUserInfo("dutplceinstcd");
  199. // if (instcd == '012') {
  200. // btn_drugcard.visible = false;
  201. // } else {
  202. // btn_drugcard.visible = true;
  203. // }
  204. // //-------------------
  205. }
  206. /**
  207. * @group :
  208. * @ver : 2008.09.06
  209. * @by :
  210. * @---------------------------------------------------
  211. * @type : function
  212. * @access : public
  213. * @desc : 내환자가 설정되어 있으면 자동으로 내환자설정시키기(성공)
  214. * @param :
  215. * @param :
  216. * @return :
  217. * @---------------------------------------------------
  218. */
  219. function fSetsettingrnid(){
  220. var sUserId = sysf_getUserId();
  221. var sUserIdFind = ""
  222. for( var i=0 ; i<ds_main_wardpatinfo_settingrn.rowcount ; i++ ){
  223. sUserIdFind = ds_main_wardpatinfo_settingrn.getColumn(i, "settingrnid");
  224. if (sUserId == sUserIdFind) {
  225. ds_main_cond.setColumn(0, "settingrnid", sUserIdFind);
  226. fGetPatList();
  227. return;
  228. }
  229. }
  230. }
  231. /**
  232. * @group :
  233. * @ver : 2007.06.23
  234. * @by : 최경용
  235. * @---------------------------------------------------
  236. * @type : function
  237. * @access : public
  238. * @desc : 병동 리스트 조회
  239. * @param :
  240. * @param :
  241. * @return :
  242. * @---------------------------------------------------
  243. */
  244. function fGetWardList(){
  245. var oParam = {};
  246. oParam.id = "TRMNR00601";
  247. oParam.service = "caremedirecapp.CareMediRec";
  248. oParam.method = "reqGetWMInitData";
  249. oParam.inds = "reqcond=ds_send_reqdata";
  250. oParam.outds = "ds_init_ward=ward ds_init_settingrn=settingrn ds_init_orddd=orddd";
  251. oParam.async = false;
  252. //oParam.callback = "cf_TRMNR00601";
  253. tranf_submit(oParam);
  254. }
  255. /**
  256. * @group :
  257. * @ver : 2007.06.23
  258. * @by : 최경용
  259. * @---------------------------------------------------
  260. * @type : function
  261. * @access : public
  262. * @desc : 투약기록 투약 상태 라디오 버튼 배경색 변경
  263. * @param :
  264. * @param :
  265. * @return :
  266. * @---------------------------------------------------
  267. */
  268. function radio_ColorChange(){
  269. //-------------(20081201)
  270. group3.rdo_drugstat.rdo_multi_0.style.background = gray;
  271. group3.rdo_drugstat.rdo_multi_1.style.background = yellow;
  272. group3.rdo_drugstat.rdo_multi_2.style.background = yellowishgreen;
  273. group3.rdo_drugstat.rdo_multi_3.style.background = red;
  274. group3.rdo_drugstat.rdo_multi_4.style.background = sky;
  275. //rdo_drugstat.item(0).attribute("background-color") = gray;
  276. //rdo_drugstat.item(1).attribute("background-color") = orange;
  277. //rdo_drugstat.item(2).attribute("background-color") = yellow;
  278. //rdo_drugstat.item(3).attribute("background-color") = yellowishgreen;
  279. //rdo_drugstat.item(4).attribute("background-color") = red;
  280. //rdo_drugstat.item(5).attribute("background-color") = sky;
  281. //-------------(20081201)
  282. }
  283. /**
  284. * @group :
  285. * @ver : 2007.06.23
  286. * @by : 최경용
  287. * @---------------------------------------------------
  288. * @type : function
  289. * @access : public
  290. * @desc : 투약기록 환자 리스트 조회
  291. * @param :
  292. * @param :
  293. * @return :
  294. * @---------------------------------------------------
  295. */
  296. function fGetPatList(){
  297. //model.resetInstanceNode("/root/send/reqdata");
  298. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  299. var oParam = {};
  300. oParam.id = "TRMNR00603";
  301. oParam.service = "caremedirecapp.CareMediRec";
  302. oParam.method = "reqGetWardPatList";
  303. oParam.inds = "reqcond=ds_send_reqdata";
  304. oParam.outds = "ds_main_wardpatinfo_wardpatlist=wardpatlist ds_main_wardpatinfo_settingrn=settingrn";
  305. oParam.async = false;
  306. //oParam.callback = "cf_TRMNR00603";
  307. tranf_submit(oParam);
  308. ds_main_wardpatinfo_wardpatlist.rowposition = -1;
  309. var sPID = ds_main_patinfo.getColumn(0, "pid");
  310. if( !utlf_isNull(sPID) ){
  311. for( var i=0 ; i<ds_main_wardpatinfo_wardpatlist.rowcount ; i++ ){
  312. if( ds_main_wardpatinfo_wardpatlist.getColumn(i, "pid") == sPID ){
  313. ds_main_wardpatinfo_wardpatlist.rowposition = i;
  314. group3.swtpatList.pat.grd_patlist.setCellPos(0);
  315. group3.swtpatList.pat.grd_patlist.setFocus();
  316. fClickDrugListBefore(); //------------(20081031)
  317. fClickDrugList("drg", i);
  318. fClickDrugListAfter(); //------------(20081031)
  319. return;
  320. }
  321. }
  322. }
  323. if( ds_main_wardpatinfo_settingrn.rowcount > 0 && ds_main_wardpatinfo_settingrn.getColumn(0, "settingrnnm") == "-" && utlf_isNull(ds_main_cond.getColumn(0, "settingrnid")) ){
  324. ds_main_wardpatinfo_settingrn.setColumn(0, "settingrnid", "");
  325. group3.group5.cmb_settingrn.value = "";
  326. }
  327. //group3.group5.cmb_settingrn.index = 0;
  328. }
  329. /**
  330. * @group :
  331. * @ver : 2007.06.23
  332. * @by : 최경용
  333. * @---------------------------------------------------
  334. * @type : function
  335. * @access : public
  336. * @desc : 투약기록 병동별 병실 리스트 조회
  337. * @param :
  338. * @param :
  339. * @return :
  340. * @---------------------------------------------------
  341. */
  342. function fGetRoomList(){
  343. ds_main_cond.setColumn(0, "roomcd", "");
  344. //model.resetInstanceNode("/root/send/reqdata");
  345. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  346. var oParam = {};
  347. oParam.id = "TRMNR00602";
  348. oParam.service = "caremedirecapp.CareMediRec";
  349. oParam.method = "reqGetRoomInitData";
  350. oParam.inds = "reqcond=ds_send_reqdata";
  351. oParam.outds = "ds_init_room_room=room";
  352. oParam.async = false;
  353. //oParam.callback = "cf_TRMNR00602";
  354. tranf_submit(oParam);
  355. if( ds_init_room_room.rowcount > 0 && ds_init_room_room.getColumn(0, "roomnm") == "-" ){
  356. ds_init_room_room.setColumn(0, "roomcd", "");
  357. }
  358. group3.group5.cmb_room.index = 0;
  359. }
  360. /**
  361. * @group :
  362. * @ver : 2007.06.23
  363. * @by : 최경용
  364. * @---------------------------------------------------
  365. * @type : function
  366. * @access : public
  367. * @desc : 투약기록 환자별 투약 기록 리스트 조회
  368. * @param :
  369. * @param :
  370. * @return :
  371. * @---------------------------------------------------
  372. */
  373. function fClickDrugList(sParam, row){
  374. group3.btn_drugcard.enable = false;
  375. group3.btn_hydprint.enable = false;
  376. ds_send_medicard_warddruglist.clearData();
  377. ds_send_medicard8_warddruglist.clearData();
  378. var pid = "";
  379. if(sParam == "drg"){
  380. ds_main_cond.setColumn(0, "pid", ds_main_wardpatinfo_wardpatlist.getColumn(row, "pid"));
  381. ds_main_cond.setColumn(0, "indd", ds_main_wardpatinfo_wardpatlist.getColumn(row, "indd"));
  382. ds_main_cond.setColumn(0, "cretno", ds_main_wardpatinfo_wardpatlist.getColumn(row, "cretno"));
  383. }else if(sParam == "act"){
  384. ds_main_cond.setColumn(0, "pid", ds_main_wardactinfo_wardactlist.getColumn(row, "pid"));
  385. ds_main_cond.setColumn(0, "indd", ds_main_wardactinfo_wardactlist.getColumn(row, "indd"));
  386. ds_main_cond.setColumn(0, "cretno", ds_main_wardactinfo_wardactlist.getColumn(row, "cretno"));
  387. ds_main_cond.setColumn(0, "orddd", ds_main_wardactinfo_wardactlist.getColumn(row, "prcpdd"));
  388. }else{}
  389. //model.resetInstanceNode("/root/send/reqdata");
  390. ds_main_cond.setColumn(0, "yorddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),-1));
  391. ds_main_cond.setColumn(0, "torddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),+1));
  392. //---------------------(20080721)
  393. //ER 환자에 대한 선처치기능을 처리하기 위해서 ORDTYPE을 넘긴다.
  394. var ordtype = ds_main_wardpatinfo_wardpatlist.getColumn(row, "ordtype");
  395. ds_main_cond.setColumn(0, "ordtype", ordtype);
  396. //----------------------
  397. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  398. var oParam = {};
  399. oParam.id = "TRMNR08002";
  400. oParam.service = "caremedirecapp.CareMediRec";
  401. oParam.method = "reqGetwarddrugtimeList";
  402. oParam.inds = "reqcond=ds_send_reqdata";
  403. oParam.outds = "ds_hidden_warddruginfo_warddruglist=warddruglist";
  404. oParam.async = false;
  405. //oParam.callback = "cf_TRMNR08002";
  406. tranf_submit(oParam);
  407. ds_hidden_warddruginfo_warddruglist.updatecontrol = false;
  408. ds_hidden_warddruginfo_warddruglist.enableevent = false;
  409. ds_hidden_warddruginfo_warddruglist.addColumn("carertnyn", "string");
  410. ds_hidden_warddruginfo_warddruglist.deleteColumn("prcpvol");
  411. ds_hidden_warddruginfo_warddruglist.deleteColumn("prcpqty");
  412. ds_hidden_warddruginfo_warddruglist.enableevent = true;
  413. ds_hidden_warddruginfo_warddruglist.updatecontrol = true;
  414. ds_hidden_warddruginfo_warddruglist.updateColID("drprcpetc7", "prcpvol");
  415. ds_hidden_warddruginfo_warddruglist.updateColID("drprcpetc8", "prcpqty");
  416. dsf_setDefaultVal(ds_hidden_warddruginfo_warddruglist, "soding:-,last:-");
  417. //----------(20081031)
  418. ////////////alert("db통과_ok");성능좋음
  419. //----------(20080808)
  420. //아래의 정보를 기준으로 화면을 구성한다.
  421. //그러나 아래의 정보가 정확하지 않을수 있으므로 fndrugcalcBefore() 에서 정확한 정보를 만들고 fndrugcalc()를 호출한다.
  422. //1. fndrugcalcbefore : model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")에 값설정(예정)
  423. //2. fndrugcalc : model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")를 기준으로 화면구성
  424. //----------
  425. //------------------------------------
  426. //투약시간계산(20080808)
  427. //------------------------------------
  428. fndrugcalcbefore();
  429. //----------(20080808)
  430. //------------------------------------
  431. //투약시간계산(20080530)
  432. //------------------------------------
  433. fndrugcalc(); //조회여부구분
  434. //------------------------------------
  435. //-----------------------------------(20081014)
  436. // hidden의 instance에 있는 drugtmspec 의 항목의 split 수와 calctims수를 확인한다.
  437. fndrugcalcCheck();
  438. //-----------------------------------(20081014)
  439. var array_drugtmspec = "";
  440. var drugtmspec = "";
  441. var drugtmspeccal = "";
  442. var temp_drugtmspec = 0;
  443. /* --(20080530)
  444. //--------------------------------------------------------------------
  445. //drugtmspec에서 시간 추출해서 drugtmspeccal에 화면 표시 시간으로 변경
  446. // fndrugcalc에서 drugtmspeccal를 생성함
  447. //--------------------------------------------------------------------
  448. for(var i = 1; i<= getNodesetCount(xHiddenWardDrugPath); i++){
  449. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec"); //투여기준시간(1000 2200)
  450. if(drugtmspec != ""){
  451. array_drugtmspec = drugtmspec.split(" ");
  452. for(var j = 0; j < array_drugtmspec.length; j++){
  453. temp_drugtmspec = Number(array_drugtmspec[j]) % 2400;
  454. temp_drugtmspec = Math.abs(Number(temp_drugtmspec)).toString();
  455. drugtmspeccal += fCarec_GetFillZeno(temp_drugtmspec,4,0) + " ";
  456. }
  457. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", drugtmspeccal);
  458. drugtmspeccal = "";
  459. }else{
  460. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", "");
  461. }
  462. }
  463. */
  464. ds_main_warddruginfo_warddruglist.clearData();
  465. var nodecnt = ds_hidden_warddruginfo_warddruglist.rowcount;
  466. ////alert("1:" + nodecnt);
  467. if(nodecnt > 0){
  468. //수정(20080602)
  469. //dispflag 조건에 추가
  470. flagDsWarddruglist = true;
  471. fSetDrugReBuild(nodecnt); //Hidden에 있는 인스턴스를 main으로 copy(처방별로 묶음)(임시row별 -> main컴럼설정)
  472. //막음(20080602)
  473. //Acting한 경우 Acting시간으로 컬럼 셋팅(OLD)(20080601이전)
  474. //fndrugcalc에서 ACTING 정보 반영(NEW)(20080601이후)작업중
  475. //fSetDrugExecDT(nodecnt);
  476. //그리드 시간 컬럼 삭제(시간 컬럼을 제외한 나머지 컬럼갯수 빼기(12))
  477. var sColCnt = group3.grd_druglist.getCellCount("Body") - nfixedcols - grd_colcnt;//grd_druglist.fixedcols - grd_colcnt;
  478. var nColCount = group3.grd_druglist.getCellCount("Body")-1;
  479. //grd_druglist.refresh();
  480. for( sColCnt ; sColCnt > 0 ; sColCnt-- ){
  481. group3.grd_druglist.deleteContentsCol("body", nColCount--, false); //refresh 하지 않음(false)
  482. }
  483. //////////////////alert("test");
  484. //return;
  485. //----------(20081031)
  486. ////////////alert("튜닝요구되는 모듈시작");
  487. //----(20080603) new버젼
  488. fAddBaseDrugTime(); //투약기록 처방 내역 기준시간 Setting작업
  489. //----------(20081031)
  490. ////////////alert("튜닝요구되는 모듈종료");
  491. }
  492. //careSetTree(grd_druglist,17,2,false);
  493. //그리드 타이틀 부분 머지
  494. for(var k = 1; k < grd_colcnt; k++){
  495. group3.grd_druglist.mergeContentsCell("Head", 0, k, 1, k, k, false);
  496. }
  497. //DC는 CHECK불가
  498. for( var l=0 ; l<ds_main_warddruginfo_warddruglist.rowcount ; l++ ){
  499. if( ds_main_warddruginfo_warddruglist.getColumn(l, "dccomcountyn") == "Y" ){
  500. ds_main_warddruginfo_warddruglist.setColumn(l, "check", "0");
  501. }
  502. }
  503. //---------------------------(20080930)
  504. //기준시간setting를 sort한다.
  505. //시간대가-1이 되어 2200 1300 1800 -> 1300 1800 2200으로 변경
  506. //var pGrd = grd_druglist;
  507. var settingtime = "";
  508. for( var l=0 ; l<ds_main_warddruginfo_warddruglist.rowcount ; l++ ){
  509. settingtime = ds_main_warddruginfo_warddruglist.getColumn(l, "drugtmspec_recalc1");
  510. settingtime = sortHashKeysString(settingtime); //sort
  511. ds_main_warddruginfo_warddruglist.setColumn(l, "drugtmspec_recalc1", settingtime); //반영
  512. }
  513. flagDsWarddruglist = false;
  514. //---------------------------(20080930)
  515. group3.btn_drugcard.enable = true;
  516. group3.btn_hydprint.enable = true;
  517. //model.refresh();
  518. }
  519. /**
  520. * @group :
  521. * @ver : 2007.06.23
  522. * @by : 최경용
  523. * @---------------------------------------------------
  524. * @type : function
  525. * @access : public
  526. * @desc : Hidden에 있는 인스턴스를 main으로 copy(처방별로 묶음)(조회data -> 화면data로 이동)
  527. * @param :
  528. * @param :
  529. * @return :
  530. * @---------------------------------------------------
  531. */
  532. function fSetDrugReBuild(nodecnt){
  533. var inst_cnt = 0;
  534. var prev_prcpno = "";
  535. var execcarestatcd = ""; //시간컬럼에 추가 하는 instanceList
  536. var tims = "";
  537. var execdd = "";
  538. //---------------------------------------------------------------
  539. //조회대상이 되는 자료row만 화면으로 넘긴다.
  540. //nodecnt : xHiddenWardDrugPath 이다.
  541. //---------------------------------------------------------------
  542. for( var cnt=0 ; cnt<nodecnt ; cnt++ ){
  543. var prcpno1 = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpno"));
  544. var prcpcd1 = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpcd"));
  545. var copyflag = "N";
  546. //-------------------(20081014)
  547. var validateYN = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "validateyn1");
  548. if (validateYN == "N") continue;
  549. //-------------------(20081015)
  550. //-------------------(시간대정보가 없음을 알림)(20080620)
  551. var timeinfo = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "drugtmspec");
  552. var prcpinfo = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpcd");
  553. var drugmthdspccdinfo = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "drugmthdspccd");
  554. ////alert("2:" +timeinfo);
  555. if( utlf_isNull(timeinfo) ){
  556. //--------------(20081014)fAddBaseDrugTime에서 메세지를 보낸다.
  557. //messageBox("처방(" + prcpinfo + ")에 대한 용법(" + drugmthdspccdinfo + ")의 " +
  558. // "투약기준시간정보가 존재하지 않습니다. " +
  559. // "투약기준시간정보를 확인하십시오.","E999");
  560. //--------------(20081014)
  561. continue;
  562. }
  563. //-----------------------------------------------------------------------
  564. //조회대상이 되는 자료를 찾는다.(의미없음)
  565. ////alert("3:"+ model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/dispflag"));
  566. if( ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "dispflag") == "Y" ){
  567. var prcpno2 = "";
  568. var prcpcd2 = "";
  569. //이미 복사했는지 찾는다.(처방일자,처방번호 : pk의 성격과 유사하다)
  570. for( var i=0 ; i<=inst_cnt ; i++ ){
  571. prcpno2 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno"));
  572. prcpcd2 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd"));
  573. if (prcpno1 == prcpno2 && prcpcd1 == prcpcd2) {
  574. copyflag = "Y";
  575. break;
  576. }
  577. }
  578. if (copyflag != "Y") {
  579. ds_main_warddruginfo_warddruglist.addRow();
  580. ds_main_warddruginfo_warddruglist.copyRow(inst_cnt, ds_hidden_warddruginfo_warddruglist, cnt);
  581. prev_prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpno");
  582. inst_cnt++;
  583. }
  584. }
  585. }
  586. //-----------(20080702)
  587. //막으면 오류발생함
  588. }
  589. /**
  590. * @group :
  591. * @ver : 2007.06.23
  592. * @by : 최경용
  593. * @---------------------------------------------------
  594. * @type : function
  595. * @access : public
  596. * @desc : Acting한 경우 Acting시간으로 컬럼 셋팅
  597. * 투약한경우:투약일과 ACTING일(원무시행일)은 다를수 있다
  598. * 투약일은 용법에 의해서 변경되고 ACTING일은 투약일(5/2)이라도 오늘(5/1)ACTING하면 서로 다를수 있다.
  599. * @param :
  600. * @param :
  601. * @return :
  602. * @---------------------------------------------------
  603. */
  604. function fSetDrugExecDT(nodecnt){
  605. var inst_cnt = 1;
  606. //시간컬럼에 추가 하는 instanceList
  607. var tims = "";
  608. var drugtms = "";
  609. var execdd = "";
  610. var exectm = "";
  611. var prcpdd = "";
  612. var intervaldd = "";
  613. var temp_drugtmspec = "";
  614. var inst_cnt = 1;
  615. var temp_cnt = 1;
  616. var tmcalculate = "";
  617. var drugdd = model.getValue("/root/main/cond/orddd"); //조회일
  618. for(var i = 1; i <= nodecnt; i){
  619. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec").split(" ");
  620. tims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/tims");
  621. //-------------(20080912)
  622. var calctims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/calctims");
  623. //-------------(20080912)
  624. prcpdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpdd");
  625. temp_drugtmspec = "";
  626. temp_cnt = i;
  627. if(drugtmspec != ""){
  628. //-------------(20080912)
  629. //for(var j = 1; j <= tims; j++){
  630. for(var j = 1; j <= calctims; j++){
  631. //-------------(20080912)
  632. execdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/medrexecdd"); //투약일
  633. exectm = model.getValue(xHiddenWardDrugPath + "[" + i + "]/medrexectm"); //투약시간
  634. ////////////alert("fSetDrugExecDT:" + execdd + "/" + exectm);
  635. exectm = exectm.substr(0,4);
  636. if(j != 1){
  637. temp_drugtmspec += " ";
  638. }
  639. if(execdd != "00000000"){ //acting이면
  640. intervaldd = getDateInterval(drugdd, execdd); //조회일과 acting일자의 차이 일수
  641. if(intervaldd < 0){
  642. tmcalculate = (-Number(exectm) + (Number(intervaldd) * 2400)); //-0900 + -2400 = -3300
  643. }else{
  644. tmcalculate = (Number(exectm) + (Number(intervaldd) * 2400)); // 0900 + 2400 = 3300
  645. }
  646. }else{
  647. tmcalculate = drugtmspec[j-1];
  648. }
  649. temp_drugtmspec += fCarec_GetFillZeno(tmcalculate,4,0);
  650. i++;
  651. }
  652. model.setValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec", temp_drugtmspec);
  653. inst_cnt++;
  654. //-----------(20080912)
  655. //for(var j = 1; j <= tims; j++){
  656. for(var j = 1; j <= calctims; j++){
  657. //-----------(20080912)
  658. model.setValue(xHiddenWardDrugPath + "[" + (temp_cnt + j - 1) + "]/drugtmspec", temp_drugtmspec);
  659. }
  660. }else{
  661. //----------(20080912)
  662. //i = i + parseInt(tims);
  663. i = i + parseInt(calctims);
  664. //----------(20080912)
  665. inst_cnt++;
  666. }
  667. }
  668. model.refresh();
  669. }
  670. /**
  671. * @group :
  672. * @ver : 2007.06.23
  673. * @by : 최경용
  674. * @---------------------------------------------------
  675. * @type : function
  676. * @access : public
  677. * @desc : 투약기록 처방 내역 기준시간 Setting작업(화면에 표시)
  678. * @param :
  679. * @param :
  680. * @return :
  681. * @---------------------------------------------------
  682. */
  683. function fAddBaseDrugTime(){
  684. var rows = group3.grd_druglist.rowcount;
  685. var tims = 0;
  686. var drugtmspec = "";
  687. var drugtms = "";
  688. var sColCnt = group3.grd_druglist.getCellCount("Body") - nfixedcols - grd_colcnt;//시간 컬럼을 제외한 나머지 컬럼갯수 빼기(17)
  689. var sGrdCap = "";
  690. var prcpdd = ds_main_cond.getColumn(0, "orddd"); //처방일자(조회일)
  691. var meddays = "";
  692. var medtims = "";
  693. var cnt = 0;
  694. var sGrdCapDay = "";
  695. var sGrdCapTims = "";
  696. var execdd = "";
  697. var temp_drugtms = "";
  698. var temp_meddays = "";
  699. var timsYN = false;
  700. var daysYN = false;
  701. //---------------------------------------------
  702. //헤더구성하기
  703. //---------------------------------------------
  704. var maxcalctims = 0;
  705. //--------------(20110122) 경북대
  706. var scalctims = 0;
  707. for( var i=0 ; i<rows ; i++ ){
  708. scalctims = ds_main_warddruginfo_warddruglist.getColumn(i, "calctims");
  709. if ( parseInt(maxcalctims) < parseInt(scalctims) ) {
  710. maxcalctims = ds_main_warddruginfo_warddruglist.getColumn(i, "calctims");
  711. }
  712. }
  713. //--------------(20110122) 경북대
  714. cnt = 0; //증가되야 하는 컬럼수
  715. for( var i=1 ; i<=maxcalctims ; i++ ){
  716. for( var j=1 ; j<3 ; j++ ){
  717. meddays += i + "회" + "^"; //전체횟수컬럼(헤더1)
  718. if (j == 1) {
  719. medtims += "Time" + "^"; //횟수상세컬럼(헤더2)시간
  720. } else if (j == 2) {
  721. medtims += "Day" + "^"; //횟수상세컬럼(헤더2)날짜
  722. }
  723. // else if (j == 3) {
  724. // medtims += "상태" + "^"; //횟수상세컬럼(헤더2)구분
  725. // }
  726. cnt++;
  727. }
  728. }
  729. //---------------------------------------------
  730. //총컬럼 갯수를 정렬한다.
  731. //---------------------------------------------
  732. addCol_Cnt = cnt;
  733. var sMeddays = meddays;
  734. var sMedtims = medtims;
  735. //--------------------------------------------
  736. //컬럼 숨김 계속 지정하기 위해...
  737. //그리드 기본/펼치기 모드 이벤트(뒤의 마지막필드's)
  738. //--------------------------------------------
  739. fSelectOpenMoe();
  740. //--------------------------------------------
  741. //컬럼추가
  742. //--------------------------------------------
  743. for( var i=1 ; i<=maxcalctims ; i++ ){
  744. for( var j=1 ; j<3 ; j++ ){
  745. //grd_druglist.addColumn("ref:carecfactnm" + grd_druglist.cols + "; type:output; ", false);
  746. if( j == 1 ){
  747. var nCol = group3.grd_druglist.appendContentsCol();
  748. group3.grd_druglist.setCellProperty("Body", nCol, "edittype", "mask");
  749. group3.grd_druglist.setCellProperty("Body", nCol, "text", "bind:times"+nCol);
  750. group3.grd_druglist.setCellProperty("Body", nCol, "editautoselect", "true");
  751. group3.grd_druglist.setCellProperty("Body", nCol, "align", "center");
  752. group3.grd_druglist.setCellProperty("Body", nCol, "mask", "expr:utlf_isNull(times"+nCol+") == true ? '' : '##:##'");
  753. group3.grd_druglist.setCellProperty("Body", nCol, "editautoskip", "true");
  754. group3.grd_druglist.setCellProperty("Body", nCol, "tooltiptext", "bind:times"+nCol);
  755. group3.grd_druglist.setCellProperty("Body", nCol, "edittrimtype", "both");
  756. group3.grd_druglist.setFormatColProperty(group3.grd_druglist.getCellCount("Body")-1, "size", 60);
  757. group3.grd_druglist.setCellProperty("Head", nCol, "text", i+"회");
  758. group3.grd_druglist.setCellProperty("Head", group3.grd_druglist.getCellCount("Head")-1, "text", "Time");
  759. } else if( j == 2 ){
  760. var nCol = group3.grd_druglist.appendContentsCol();
  761. group3.grd_druglist.setCellProperty("Body", nCol, "edittype", "text");
  762. group3.grd_druglist.setCellProperty("Body", nCol, "text", "bind:times"+nCol);
  763. group3.grd_druglist.setCellProperty("Body", nCol, "editautoselect", "true");
  764. group3.grd_druglist.setCellProperty("Body", nCol, "align", "center");
  765. group3.grd_druglist.setCellProperty("Body", nCol, "tooltiptext", "bind:times"+nCol);
  766. group3.grd_druglist.setFormatColProperty(group3.grd_druglist.getCellCount("Body")-1, "size", 40);
  767. group3.grd_druglist.setCellProperty("Head", nCol, "text", i+"회");
  768. group3.grd_druglist.setCellProperty("Head", group3.grd_druglist.getCellCount("Head")-1, "text", "Day");
  769. }
  770. // else if (j == 3) {
  771. // grd_druglist.addColumn("ref:times" + grd_druglist.cols + "; type:output;text-align:center ", false);
  772. // grd_druglist.colWidth(grd_druglist.cols - 1) = 30;
  773. // }
  774. }
  775. }
  776. for( var i=(group3.grd_druglist.getCellCount("Body")-1) ; i>=grd_colcnt ; i-- ){
  777. if( i%2 == 1 ){
  778. group3.grd_druglist.mergeContentsCell("Head", 0, i-1, 0, i, i-1, false);
  779. }
  780. }
  781. //컬럼 타이틀 변경
  782. //위 헤더 구성 까지 코딩 중.............................(일단 위까지 성공)
  783. //return;
  784. var inst_cnt = 0;
  785. var tims = "";
  786. var drugtmspec = "";
  787. var prcphistno = "";
  788. var execprcpno = "";
  789. var execcarestatcd = "";
  790. var iudflag = "";
  791. var carecfact = "";
  792. var carecfactcd = "";
  793. var carecfactnm = "";
  794. var medrexistyn = "";
  795. var execprcpuniqno = "";
  796. var execdd = "";
  797. var prcpdd = ""
  798. var exectm = "";
  799. var signno = "";
  800. var signflag = "";
  801. var col_index = 0;
  802. var forarr = "";
  803. var prcphistno_array = "";
  804. var prcpuniqno_array = "";
  805. var prcp_array = "";
  806. var drugtmspeccal = "";
  807. var timesch = "";
  808. var drugdd = ds_main_cond.getColumn(0, "orddd");
  809. var tdrugdd = getDateAddc(drugdd, 1);
  810. var duty = ds_main_cond.getColumn(0, "duty");
  811. var calcdd = "";
  812. var medrexecdd = "";
  813. var medrexectm = "";
  814. var hiddenYN = new Array;
  815. //------------------------------
  816. //forarr : 자료존재 번호XML 태그
  817. //추가 컬럼만큼 /forarr을 만든다.(컴럼의 상세정보를 반영하기 위해서)
  818. //------------------------------
  819. for( var x=0 ; x<ds_main_warddruginfo_warddruglist.rowcount ; x++ ){
  820. for( var y=0 ; y<addCol_Cnt ; y++ ){
  821. dsf_makeValue(ds_main_warddruginfo_warddruglist, "forarr"+(grd_colcnt+y), "string", "", x);
  822. }
  823. }
  824. for( var x=0 ; x<ds_main_warddruginfo_warddruglist.rowcount ; x++ ){
  825. for( var y=0 ; y<addCol_Cnt ; y++ ){
  826. dsf_makeValue(ds_main_warddruginfo_warddruglist, "times"+(grd_colcnt+y), "string", "", x);
  827. }
  828. }
  829. for( var x=0 ; x<ds_main_warddruginfo_warddruglist.rowcount ; x++ ){
  830. for( var y=0 ; y<addCol_Cnt ; y++ ){
  831. dsf_makeValue(ds_main_warddruginfo_warddruglist, "forarrcol"+(grd_colcnt+y), "string", "", x);
  832. }
  833. }
  834. for( var x=0 ; x<ds_main_warddruginfo_warddruglist.rowcount ; x++ ){
  835. for( var y=0 ; y<addCol_Cnt ; y++ ){
  836. dsf_makeValue(ds_main_warddruginfo_warddruglist, "forarrno"+(grd_colcnt+y), "string", "", x);
  837. }
  838. //---------(20081223)
  839. dsf_makeValue(ds_main_warddruginfo_warddruglist, "forarrnocnt", "string", addCol_Cnt, x);
  840. //---------(20081223)
  841. }
  842. //------------------------------
  843. //모든 필드숨김기
  844. //테스트로 임시로 막는다.
  845. //------------------------------
  846. //test
  847. for( var z=0 ; z<=grd_colcnt+addCol_Cnt ; z++ ){
  848. hiddenYN[z] = "true"; //0923
  849. }
  850. //------------------------------
  851. //for : 자료존재 번호에 대한 상세 정보 XML 태그
  852. //------------------------------
  853. //조회data(xHiddenWardDrugPath) -> 화면data(xWardDrugListPath) -> xHiddenWardDrugPath 컬럼에 대한 상세정보를 반영(for)함
  854. //인스턴스 맵핑
  855. //------------------------------
  856. var prcpnohidden = "";
  857. var prcpnobefore = "";
  858. var prcpnonow = "";
  859. var prcpnosavecnt = 1; //컬럼위치를 잡기위해서
  860. var execprcpqty =""; //(2008112)
  861. var execprcpvol =""; //(2008112)
  862. var preantiyn = ""; //(20081211) 예방적항생제여부
  863. //return; //이곳
  864. if( ninst_cnt != -1 ){
  865. for( var i=0 ; i<=ninst_cnt ; i++ ){
  866. if( !utlf_isNull(this.objects[xWardDrugListPath+i+"for"]) ){
  867. eval(xWardDrugListPath+i+"for").clearData();
  868. }
  869. }
  870. }
  871. //-------------------20080604
  872. for( var m=0 ; m<ds_hidden_warddruginfo_warddruglist.rowcount ; m ){
  873. //------------------------(20081014)
  874. if( ds_hidden_warddruginfo_warddruglist.getColumn(m, "validateyn1") != "Y" ){
  875. m++;
  876. continue;
  877. }
  878. //------------------------(20081014)
  879. //DISPLAY 대상이 되는 자료만 화면을 만든다.(의미없음)
  880. //전부보임
  881. if( ds_hidden_warddruginfo_warddruglist.getColumn(m, "dispflaggroup") != "Y" ){
  882. m++;
  883. continue;
  884. }
  885. tims = ds_hidden_warddruginfo_warddruglist.getColumn(m, "tims");
  886. //----------(20080912)
  887. calctims = ds_hidden_warddruginfo_warddruglist.getColumn(m, "calctims");
  888. //----------(20080912)
  889. drugtmspec = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugtmspec")).split(" ");
  890. drugtmspeccal = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugbasetmspec")).split(" ");
  891. var drugtmspec_recalc1 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugtmspec_recalc1")).split(" "); //처방적용일기준으로
  892. var drugtmspec_recalc2 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugtmspec_recalc2")).split(" "); //조회일자기준으로
  893. var dispddarray = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "dispddarray")).split(" "); //실질투약일
  894. var disptmarray = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "disptmarray")).split(" "); //실질투약시간대
  895. var dispflagarray = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "dispflagarray")).split("/"); //조회일자에 따른 투약여부(실패)
  896. var todaydrugtimes = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "todaydrugtimes")).split("/"); //---(20080920)당일투약대상자만 보이기 위해서
  897. var carebasedd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "carebasedd")).split("/"); //--(20081226)
  898. var carebasetm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "carebasetm")).split("/"); //--(20081226)
  899. //////////alert("calctims:" + calctims);
  900. //---------------(20080912)
  901. //for(var n = 0; n < tims; n++){
  902. col_index = grd_colcnt-1;
  903. //hidden 3row
  904. for( var n=0 ; n<calctims ; n++ ){ //exip단위 갯수임...(warddruglist 1row로)내부에서 증가시킴
  905. //////////alert("n:"+n);
  906. //---------------(20080912)
  907. if(n == 0){
  908. prcp_array = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpno");
  909. prcphistno_array = ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcphistno");
  910. prcpuniqno_array = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpuniqno");
  911. }else{
  912. prcp_array += " " + ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpno");
  913. prcphistno_array += " " + ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcphistno");
  914. prcpuniqno_array += " " + ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpuniqno");
  915. }
  916. execprcpno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpno");
  917. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcpdd");
  918. execcarestatcd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execcarestatcd");
  919. carecfact = ds_hidden_warddruginfo_warddruglist.getColumn(m, "carecfact");
  920. carecfactcd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "carecfactcd");
  921. execprcpuniqno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpuniqno");
  922. medrexistyn = ds_hidden_warddruginfo_warddruglist.getColumn(m, "medrexistyn");
  923. prcphistno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcphistno");
  924. execdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execdd");
  925. exectm = ds_hidden_warddruginfo_warddruglist.getColumn(m, "exectm");
  926. signno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "signno");
  927. signflag = ds_hidden_warddruginfo_warddruglist.getColumn(m, "signflag");
  928. medrexecdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "medrexecdd");
  929. medrexectm = ds_hidden_warddruginfo_warddruglist.getColumn(m, "medrexectm");
  930. execprcpvol = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpvol"); //---(20081112)
  931. execprcpqty = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpqty"); //---(20081112)
  932. preantiyn = ds_hidden_warddruginfo_warddruglist.getColumn(m, "preantiyn"); //---(20081211)
  933. if(medrexistyn == "Y"){
  934. iudflag = "-";
  935. }else if(medrexistyn == "N"){
  936. iudflag = "";
  937. }
  938. if(iudflag == "-" && signflag == "N"){
  939. carecfactnm = ds_init_M0381list_M0381.getColumn(ds_init_M0381list_M0381.findRow("cdid", carecfactcd), "cdnm") + " " + carecfact;
  940. }else{
  941. carecfactnm = ds_init_M0381list_M0381.getColumn(ds_init_M0381list_M0381.findRow("cdid", carecfactcd), "cdnm") + " " + carecfact;
  942. }
  943. //인스턴스 정보 set(상세내역)
  944. //////////alert(drugtmspec[n] + "/" +drugtmspec);
  945. //시간대
  946. if( !utlf_isNull(drugtmspec[n]) && !utlf_isNull(drugtmspec) ){
  947. if( utlf_isNull(this.objects[xWardDrugListPath+inst_cnt+"for"]) ){
  948. dsf_createDs(xWardDrugListPath+inst_cnt+"for", [{col:"execprcpno"},
  949. {col:"execcarestatcd"},
  950. {col:"pastexeccarestatcd"},
  951. {col:"iudflag"},
  952. {col:"carecfactnm"},
  953. {col:"carecfactcd"},
  954. {col:"carecfact"},
  955. {col:"execprcpuniqno"},
  956. {col:"prcphistno"},
  957. {col:"execdd"},
  958. {col:"medrexecdd"},
  959. {col:"medrexectm"},
  960. {col:"medrexistyn"},
  961. {col:"signno"},
  962. {col:"signflag"},
  963. {col:"drugtmspec"},
  964. {col:"drugtmspeccal"},
  965. {col:"drugtmspec_recalc1"},
  966. {col:"drugtmspec_recalc2"},
  967. {col:"dispdd"},
  968. {col:"disptm"},
  969. {col:"currentflag"},
  970. {col:"currentdd"},
  971. {col:"currenttm"},
  972. {col:"execprcpvol"},
  973. {col:"execprcpqty"},
  974. {col:"preantiyn"},
  975. {col:"dispflag"},
  976. {col:"todaydrug"},
  977. {col:"carebasedd"},
  978. {col:"carebasetm"}]);
  979. }
  980. var objDsxWardDrugListPath = eval(xWardDrugListPath+inst_cnt+"for");
  981. for( var i=0 ; i<=n ; i++ ){
  982. if( objDsxWardDrugListPath.rowcount <= i ){
  983. objDsxWardDrugListPath.addRow();
  984. }
  985. }
  986. dsf_makeValue(objDsxWardDrugListPath, "execprcpno", "string", execprcpno, n);
  987. dsf_makeValue(objDsxWardDrugListPath, "execcarestatcd", "string", execcarestatcd, n);
  988. dsf_makeValue(objDsxWardDrugListPath, "pastexeccarestatcd", "string", execcarestatcd, n);
  989. dsf_makeValue(objDsxWardDrugListPath, "iudflag", "string", iudflag, n);
  990. dsf_makeValue(objDsxWardDrugListPath, "carecfactnm", "string", carecfactnm, n);
  991. dsf_makeValue(objDsxWardDrugListPath, "carecfactcd", "string", carecfactcd, n);
  992. dsf_makeValue(objDsxWardDrugListPath, "carecfact", "string", carecfact, n);
  993. dsf_makeValue(objDsxWardDrugListPath, "execprcpuniqno", "string", execprcpuniqno, n);
  994. dsf_makeValue(objDsxWardDrugListPath, "prcphistno", "string", prcphistno, n);
  995. dsf_makeValue(objDsxWardDrugListPath, "execdd", "string", execdd, n);
  996. dsf_makeValue(objDsxWardDrugListPath, "medrexecdd", "string", medrexecdd, n);
  997. dsf_makeValue(objDsxWardDrugListPath, "medrexectm", "string", medrexectm, n);
  998. dsf_makeValue(objDsxWardDrugListPath, "medrexistyn", "string", medrexistyn, n);
  999. dsf_makeValue(objDsxWardDrugListPath, "signno", "string", signno, n);
  1000. dsf_makeValue(objDsxWardDrugListPath, "signflag", "string", signflag, n);
  1001. dsf_makeValue(objDsxWardDrugListPath, "drugtmspec", "string", drugtmspec[n], n);
  1002. dsf_makeValue(objDsxWardDrugListPath, "drugtmspeccal", "string", drugtmspeccal[n], n);
  1003. //-----------------------------------(20080605추가)
  1004. dsf_makeValue(objDsxWardDrugListPath, "drugtmspec_recalc1", "string", drugtmspec_recalc1[n], n);
  1005. dsf_makeValue(objDsxWardDrugListPath, "drugtmspec_recalc2", "string", drugtmspec_recalc2[n], n);
  1006. dsf_makeValue(objDsxWardDrugListPath, "dispdd", "string", dispddarray[n], n);
  1007. dsf_makeValue(objDsxWardDrugListPath, "disptm", "string", disptmarray[n], n);
  1008. //-----------------------------------(20080802추가)
  1009. dsf_makeValue(objDsxWardDrugListPath, "currentflag", "string", "", n); //현재시간반영여부
  1010. dsf_makeValue(objDsxWardDrugListPath, "currentdd", "string", "", n); //현재시간체크후 설정된일자
  1011. dsf_makeValue(objDsxWardDrugListPath, "currenttm", "string", "", n); //현재시간체크후 설정된시간
  1012. //-----------------------------------
  1013. //-----------------------------------(20081112추가)
  1014. dsf_makeValue(objDsxWardDrugListPath, "execprcpvol", "string", execprcpvol, n); //exip의 용량
  1015. dsf_makeValue(objDsxWardDrugListPath, "execprcpqty", "string", execprcpqty, n); //exip의 수량
  1016. //-----------------------------------
  1017. //-----------------------------------(20081211추가)
  1018. dsf_makeValue(objDsxWardDrugListPath, "preantiyn", "string", preantiyn, n); //medr의 예방적항생제
  1019. //-----------------------------------
  1020. var querydd = ds_main_cond.getColumn(0, "orddd");
  1021. if (dispddarray[n] == querydd || dispddarray[n] == getDateAddc(querydd, 1) ) {
  1022. //////////////////////alert(dispddarray[n] + "/" + querydd + "/" + getDateAddc(querydd, 1));
  1023. dispflagarray[n] = "Y";
  1024. } else {
  1025. dispflagarray[n] = "N";
  1026. }
  1027. dsf_makeValue(objDsxWardDrugListPath, "dispflag", "string", dispflagarray[n], n);
  1028. //-----------------------------------(20080920)
  1029. dsf_makeValue(objDsxWardDrugListPath, "todaydrug", "string", todaydrugtimes[n], n); //현재시간체크후 설정된시간
  1030. //-----------------------------------
  1031. dsf_makeValue(objDsxWardDrugListPath, "carebasedd", "string", carebasedd[n], n); //--(20081226)
  1032. dsf_makeValue(objDsxWardDrugListPath, "carebasetm", "string", carebasetm[n], n); //--(20081226)
  1033. //-----------------------------------
  1034. //hidden자료->화면자료로 상세정보이동시 컬럼위치를 찾는 방법
  1035. //
  1036. //일자를 찾고, 시간대를 찾는다.
  1037. //-----------------------------------
  1038. //col_index = (grd_colcnt + isSearchArrayIndex(addCol_Array, drugtmspec[n]));
  1039. //row별로 반영되는 컬럼위치 찾기
  1040. var sGrdCap0 = utlf_transNullToEmpty(grd_title1 + sMeddays + "|" + grd_title2 + sMedtims).split("|");
  1041. var sGrdCap1 = sGrdCap0[0].split("^"); //첫줄: 일자
  1042. var sGrdCap2 = sGrdCap0[1].split("^"); //두번째줄: 시간대
  1043. var tdispdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "dispdd"); //절대일자
  1044. var tdisptm = ds_hidden_warddruginfo_warddruglist.getColumn(m, "disptm"); //절대시간대
  1045. var tdispddyy = tdispdd.substr(0,4);
  1046. var tdispddmm = tdispdd.substr(4,2);
  1047. var tdispdddd = tdispdd.substr(6,2);
  1048. tdispdd = tdispddmm + "/" + tdispdddd;
  1049. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr"+col_index)) ){
  1050. ds_main_warddruginfo_warddruglist.addColumn("forarr"+col_index, "string");
  1051. }
  1052. forarr = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "forarr"+col_index));
  1053. timesch = fSetTimsSetting(utlf_transNullToEmpty(forarr).split(" ").length);
  1054. //model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/carecfactnm" + col_index, timesch + carecfactnm);
  1055. for( var j=0 ; j<2 ; j++ ){
  1056. col_index ++;
  1057. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("times"+col_index)) ){
  1058. ds_main_warddruginfo_warddruglist.addColumn("times"+col_index, "string");
  1059. }
  1060. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarrcol"+col_index)) ){
  1061. ds_main_warddruginfo_warddruglist.addColumn("forarrcol"+col_index, "string");
  1062. }
  1063. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarrno"+col_index)) ){
  1064. ds_main_warddruginfo_warddruglist.addColumn("forarrno"+col_index, "string");
  1065. }
  1066. if (j==0) {
  1067. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "times"+col_index, tdisptm);
  1068. } else if(j ==1) {
  1069. var daycnt = parseInt( drugtmspec_recalc2[n] / 2400);
  1070. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "times"+col_index, daycnt);
  1071. }
  1072. // else if(j==2) {
  1073. // //model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/times" + col_index, execcarestatcd); //20090525 김홍점 상태는 보이지 않게.
  1074. // }
  1075. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "forarr"+col_index, forarr+(n+1)+" ");
  1076. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "forarrcol"+col_index, (n+1)+" ");
  1077. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "forarrno"+col_index, j+" ");
  1078. }
  1079. //if (model.getValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/dispflag") == "Y") {
  1080. // hiddenYN[col_index] = "false";
  1081. //}
  1082. }
  1083. m++; //hidden의 row
  1084. }
  1085. dsf_makeValue(ds_main_warddruginfo_warddruglist, "execprcpnoarr", "string", prcp_array, inst_cnt);
  1086. dsf_makeValue(ds_main_warddruginfo_warddruglist, "prcphistnoarr", "string", prcphistno_array, inst_cnt);
  1087. dsf_makeValue(ds_main_warddruginfo_warddruglist, "execuniqnoarr", "string", prcpuniqno_array, inst_cnt);
  1088. inst_cnt++; //화면상의 row
  1089. }
  1090. ninst_cnt = inst_cnt;
  1091. //---------------------------------------
  1092. //조회조건의 (근무구분)에 대해서 자료 컬럼 중 근무시간에 해당하는 자료만 보이고 , 나머지는 숨김
  1093. //---------------------------------------
  1094. /*
  1095. for(var a = grd_colcnt; a <= grd_colcnt + addCol_Cnt; a++){
  1096. if(duty != "All"){//근무조건
  1097. //dyty조건
  1098. if(fCarec_JobTimeYN(sMedtims[a-grd_colcnt], duty) == "Y"){ //기준시간에서 Interval 시간계산(근무시간(D/E/N)
  1099. grd_druglist.colhidden(a) = false;
  1100. }else{
  1101. grd_druglist.colhidden(a) = true;
  1102. }
  1103. }
  1104. if(hiddenYN[a] == "true"){//투약일 조건
  1105. grd_druglist.colhidden(a) = true;
  1106. }
  1107. }
  1108. */
  1109. //--------------------(20081031)확인 결과 위에서 속도를 차지함
  1110. //컬럼 타이틀 변경
  1111. //grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  1112. //투약 시간 셀 color 변경
  1113. fDrugCellColorChg();
  1114. //당일투약기준으로 화면의 자료 display를 재설정한다.(20080920)
  1115. //fDrugCellDispChg();
  1116. }
  1117. //
  1118. //function fAddBaseDrugTime_OLD(){
  1119. //
  1120. // var rows = grd_druglist.rows;
  1121. // var tims = 0;
  1122. // var drugtmspec = "";
  1123. // var drugtms = "";
  1124. // var sColCnt = grd_druglist.cols - grd_druglist.fixedcols - grd_colcnt;//시간 컬럼을 제외한 나머지 컬럼갯수 빼기(17)
  1125. // var sGrdCap = "";
  1126. // var prcpdd = model.getValue("/root/main/cond/orddd"); //처방일자(조회일)
  1127. // var meddays = "";
  1128. // var medtims = "";
  1129. // var cnt = 0;
  1130. // var sGrdCapDay = "";
  1131. // var sGrdCapTims = "";
  1132. // var execdd = "";
  1133. // var temp_drugtms = "";
  1134. // var temp_meddays = "";
  1135. // var timsYN = false;
  1136. // var daysYN = false;
  1137. //
  1138. // //그리드에 추가 할 컬럼 조사 및 정렬
  1139. // for(var i = 1; i <= rows - 2; i++){
  1140. // drugtmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec");
  1141. // tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  1142. // if(drugtmspec != ""){
  1143. // for(var j = 1; j <= tims; j++){
  1144. // drugtms = drugtmspec.split(" ");
  1145. // temp_drugtms = drugtms[j-1]; //0900
  1146. // temp_meddays = getDateAddc(prcpdd, parseInt(drugtms[j-1] / 2400)); //20080425
  1147. //
  1148. // timsYN = careIsSearchString(medtims, temp_drugtms); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  1149. // daysYN = careIsSearchString(meddays, temp_meddays); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  1150. //
  1151. // //총컬럼갯수를 알기 위해서 전체 시간대를 찾는다.
  1152. // if(timsYN == false || daysYN == false){
  1153. // medtims += temp_drugtms + "^"; //전체 시간대
  1154. // meddays += temp_meddays + "^"; //전체 일자
  1155. // cnt++;
  1156. // }
  1157. // }
  1158. // }
  1159. // }
  1160. //
  1161. // addCol_Cnt = cnt;
  1162. // var sMedtims = sortHashKeys(medtims, cnt); //시간대 문자열 정렬(오름차순)
  1163. // var sMeddays = sortHashKeys(meddays, cnt); //일자 문자열 정렬(오름차순)
  1164. //
  1165. // var tempString = "";
  1166. // sGrdCap = grd_druglist.caption.split("|");
  1167. // //컬럼 숨김 계속 지정하기 위해...
  1168. // fSelectOpenMoe(); //투약기록 그리드 기본/펼치기 모드 이벤트(뒤의 마지막필드5개 숨기기)
  1169. //
  1170. // var temp_tims = 0;
  1171. // //컬럼추가
  1172. // for(var k = 1; k <= cnt; k++){
  1173. // grd_druglist.addColumn("ref:carecfactnm" + grd_druglist.cols + "; type:output; ", false);
  1174. // grd_druglist.colWidth(grd_druglist.cols - 1) = 50;
  1175. // tempString = sMeddays[k-1].toString();
  1176. // addCol_Array[k-1] = sMedtims[k-1];
  1177. // sGrdCapDay += tempString.substr(4,2) + "/" + tempString.substr(6,2) + "^";
  1178. // temp_tims = sMedtims[k-1] % 2400;
  1179. // temp_tims = Math.abs(Number(temp_tims)).toString();
  1180. // temp_tims = fCarec_GetFillZeno(temp_tims, 4,0);
  1181. // sGrdCapTims += temp_tims + "^";
  1182. // }
  1183. //
  1184. // var inst_cnt = 1;
  1185. // var tims = "";
  1186. // var drugtmspec = "";
  1187. // var prcphistno = "";
  1188. // var execprcpno = "";
  1189. // var execcarestatcd = "";
  1190. // var iudflag = "";
  1191. // var carecfact = "";
  1192. // var carecfactcd = "";
  1193. // var carecfactnm = "";
  1194. // var medrexistyn = "";
  1195. // var execprcpuniqno = "";
  1196. // var execdd = "";
  1197. // var prcpdd = ""
  1198. // var exectm = "";
  1199. // var signno = "";
  1200. // var signflag = "";
  1201. // var col_index = 0;
  1202. // var forarr = "";
  1203. // var prcphistno_array = "";
  1204. // var prcpuniqno_array = "";
  1205. // var prcp_array = "";
  1206. // var drugtmspeccal = "";
  1207. // var timesch = "";
  1208. // var drugdd = model.getValue("/root/main/cond/orddd");
  1209. // var tdrugdd = getDateAddc(drugdd, 1);
  1210. // var duty = model.getValue("/root/main/cond/duty");
  1211. // var calcdd = "";
  1212. // var medrexecdd = "";
  1213. // var medrexectm = "";
  1214. // var hiddenYN = new Array;
  1215. //
  1216. // //------------------------------
  1217. // //forarr : 자료존재 번호XML 태그
  1218. // //------------------------------
  1219. //
  1220. // //////////////////////alert ("getNodesetCount(xWardDrugListPath):" + getNodesetCount(xWardDrugListPath) )
  1221. // for(var x = 1; x <= getNodesetCount(xWardDrugListPath); x++){
  1222. // //////////////////////alert("addCol_Array.length:" + addCol_Array.length);
  1223. // for(var y = 0; y < addCol_Array.length; y++){
  1224. // //////////////////////alert("y:" + xWardDrugListPath + "[" + x + "]/forarr" + (grd_colcnt + y));
  1225. // model.makeValue(xWardDrugListPath + "[" + x + "]/forarr" + (grd_colcnt + y), "");
  1226. // }
  1227. // }
  1228. //
  1229. // //필드숨김기
  1230. // for(var z = 0; z <= grd_colcnt + addCol_Cnt; z++){
  1231. // hiddenYN[z] = "true";
  1232. // }
  1233. //
  1234. // //------------------------------
  1235. // //for : 자료존재 번호에 대한 상세 정보 XML 태그
  1236. // //------------------------------
  1237. // //인스턴스 맵핑
  1238. // for(var m = 1; m <= getNodesetCount(xHiddenWardDrugPath); m){
  1239. // tims = model.getValue(xHiddenWardDrugPath + "[" + m + "]/tims");
  1240. // drugtmspec = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec").split(" ");
  1241. // drugtmspeccal = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugbasetmspec").split(" ");
  1242. // for(var n = 0; n < tims; n++){
  1243. // if(n == 0){
  1244. // prcp_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1245. // prcphistno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1246. // prcpuniqno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1247. // }else{
  1248. // prcp_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1249. // prcphistno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1250. // prcpuniqno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1251. // }
  1252. // execprcpno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1253. // prcpdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcpdd");
  1254. // execcarestatcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execcarestatcd");
  1255. // carecfact = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfact");
  1256. // carecfactcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfactcd");
  1257. // execprcpuniqno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1258. // medrexistyn = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexistyn");
  1259. // prcphistno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1260. // execdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execdd");
  1261. // exectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/exectm");
  1262. // signno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signno");
  1263. // signflag = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signflag");
  1264. // medrexecdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexecdd");
  1265. // medrexectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexectm");
  1266. // if(medrexistyn == "Y"){
  1267. // iudflag = "-";
  1268. // }else if(medrexistyn == "N"){
  1269. // iudflag = "";
  1270. // }
  1271. // if(iudflag == "-" && signflag == "N"){
  1272. // carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1273. // }else{
  1274. // carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1275. // }
  1276. // //인스턴스 정보 set
  1277. // if(drugtmspec[n] != "" && drugtmspec!= ""){
  1278. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]", "");
  1279. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpno", execprcpno);
  1280. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execcarestatcd", execcarestatcd);
  1281. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/pastexeccarestatcd", execcarestatcd);
  1282. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/iudflag", iudflag);
  1283. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactnm", carecfactnm);
  1284. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactcd", carecfactcd);
  1285. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfact", carecfact);
  1286. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpuniqno", execprcpuniqno);
  1287. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/prcphistno", prcphistno);
  1288. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execdd", execdd);
  1289. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexecdd", medrexecdd);
  1290. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexectm", medrexectm);
  1291. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexistyn", medrexistyn);
  1292. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signno", signno);
  1293. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signflag", signflag);
  1294. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspec", drugtmspec[n]);
  1295. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspeccal", drugtmspeccal[n]);
  1296. //
  1297. // col_index = (grd_colcnt + isSearchArrayIndex(addCol_Array, drugtmspec[n]));
  1298. // forarr = model.getValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index);
  1299. //
  1300. // timesch = fSetTimsSetting(forarr.split(" ").length);
  1301. //
  1302. // model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/carecfactnm" + col_index, timesch + carecfactnm);
  1303. // model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index, forarr + (n+1) + " ");
  1304. //
  1305. // calcdd = getDateAddc(drugdd, parseInt(drugtmspec[n] / 2400));
  1306. // if(calcdd == drugdd ||
  1307. // prcpdd == drugdd && calcdd == tdrugdd){
  1308. // hiddenYN[col_index] = "false";
  1309. // }
  1310. // }
  1311. // m++;
  1312. // }
  1313. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execprcpnoarr", prcp_array);
  1314. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/prcphistnoarr", prcphistno_array);
  1315. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execuniqnoarr", prcpuniqno_array);
  1316. // inst_cnt++;
  1317. // }
  1318. //
  1319. // //조회조건의 (근무구분)에 대해서 자료 컬럼 중 근무시간에 해당하는 자료만 보이고 , 나머지는 숨김
  1320. // for(var a = grd_colcnt; a <= grd_colcnt + addCol_Cnt; a++){
  1321. // if(duty != "All"){//근무조건
  1322. // //dyty조건
  1323. // if(fCarec_JobTimeYN(sMedtims[a-grd_colcnt], duty) == "Y"){ //기준시간에서 Interval 시간계산(근무시간(D/E/N)
  1324. // grd_druglist.colhidden(a) = false;
  1325. // }else{
  1326. // grd_druglist.colhidden(a) = true;
  1327. // }
  1328. // }
  1329. // if(hiddenYN[a] == "true"){//투약일 조건
  1330. // grd_druglist.colhidden(a) = true;
  1331. // }
  1332. // }
  1333. //
  1334. //// //컬럼 타이틀 변경
  1335. //// grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  1336. //
  1337. // //투약 시간 셀 color 변경
  1338. // fDrugCellColorChg();
  1339. //}
  1340. function fSetTimsSetting(len){
  1341. if(len == 1){
  1342. //return ①;
  1343. return '';
  1344. }else if(len == 2){
  1345. return '②';
  1346. }else if(len == 3){
  1347. return '③';
  1348. }else if(len == 4){
  1349. return '④';
  1350. }else if(len == 5){
  1351. return '⑤';
  1352. }else if(len == 6){
  1353. return '⑥';
  1354. }else if(len == 7){
  1355. return '⑦';
  1356. }else if(len == 8){
  1357. return '⑧';
  1358. }else{}
  1359. return '';
  1360. }
  1361. /**
  1362. * @group :
  1363. * @ver : 2007.06.25
  1364. * @by : 최경용
  1365. * @---------------------------------------------------
  1366. * @type : function
  1367. * @access : public
  1368. * @desc : Mix선택 이벤트
  1369. * @param :
  1370. * @return :
  1371. * @---------------------------------------------------
  1372. */
  1373. function fSettingMix(){
  1374. var row = group3.grd_druglist.currentrow;
  1375. var col = "";
  1376. var tims = ds_main_warddruginfo_warddruglist.getColumn(row, "tims");
  1377. var orgprcpclscd = ds_main_warddruginfo_warddruglist.getColumn(row, "orgprcpclscd");
  1378. var drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(row, "drugtmspec");
  1379. var prcpmixno = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpmixno");
  1380. var mixflag = true;
  1381. //-----------(20080924)
  1382. //mixno cancel은 fSettingMixCancle에서 처리한다.
  1383. if( utlf_isNull(prcpmixno) ) return;
  1384. //-----------(20080924)
  1385. if( utlf_isNull(drugtmspec) ){
  1386. sysf_messageBox("기준시간을 ","C001");
  1387. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1388. group3.grd_druglist.setCellPos(4);
  1389. return;
  1390. }
  1391. if(orgprcpclscd != "A6"){
  1392. sysf_messageBox("주사/수액만 Mix 할 수 있습니다.","C999");
  1393. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1394. group3.grd_druglist.setCellPos(4);
  1395. return;
  1396. }
  1397. for( var i=0 ; i<row ; i++ ){
  1398. if( ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno") == prcpmixno &&
  1399. ds_main_warddruginfo_warddruglist.getColumn(i, "tims") != tims ){
  1400. mixflag = false;
  1401. }
  1402. }
  1403. if(mixflag == true){
  1404. for( var j=0 ; j<eval(xWardDrugListPath+row+"for").rowcount ; j++ ){
  1405. //#n개가 있어도 처음exip에만 mixno를 넣고 있군.0925 --> 이상하군..이때는 그렇던것 같던데...음.~~~
  1406. //#n개가 있으면 전부 반영하네.....(20081223)
  1407. fChangeValueStatus(row, j);
  1408. ds_main_warddruginfo_warddruglist.rowposition = row+1;
  1409. }
  1410. }else if(mixflag == false){
  1411. sysf_messageBox("횟수가 동일한 처방만 Mix 할 수 있습니다.","C999");
  1412. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1413. group3.grd_druglist.setCellPos(4);
  1414. }else{}
  1415. ////////////////alert("mixno기록");
  1416. }
  1417. /**
  1418. * @group :
  1419. * @ver : 2007.06.25
  1420. * @by : 최경용
  1421. * @---------------------------------------------------
  1422. * @type : function
  1423. * @access : public
  1424. * @desc : Mix취소 이벤트
  1425. * @param :
  1426. * @return :
  1427. * @---------------------------------------------------
  1428. */
  1429. function fSettingMixCancle(){
  1430. ////////////////alert("mixno삭제1");
  1431. var row = group3.grd_druglist.currentrow;
  1432. var drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(row, "drugtmspec").split(" ");
  1433. var tims = ds_main_warddruginfo_warddruglist.getColumn(row, "tims");
  1434. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1435. group3.grd_druglist.setCellPos(4);
  1436. for( var i=0 ; i<eval(xWardDrugListPath+row+"for").rowcount ; i++ ){
  1437. fChangeValueStatus(row, i);
  1438. }
  1439. ////////////////alert("mixno삭제2");
  1440. }
  1441. /**
  1442. * @group :
  1443. * @ver : 2007.06.25
  1444. * @by : 최경용
  1445. * @---------------------------------------------------
  1446. * @type : function
  1447. * @access : public
  1448. * @desc : Remark등록
  1449. * @param :
  1450. * @return :
  1451. * @---------------------------------------------------
  1452. */
  1453. //변경없음
  1454. function fSetRemarkReg(){
  1455. var rows = grd_druglist.rows;
  1456. var drugtmspec = "";
  1457. var tims = "";
  1458. var col = "";
  1459. var row = "";
  1460. var cnt = 0;
  1461. var execcarestatcd = "";
  1462. var forarr = "";
  1463. var timesch = "";
  1464. for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1465. col = grd_druglist.selectedCells.item(i).col;
  1466. row = grd_druglist.selectedCells.item(i).row -1;
  1467. drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1468. tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1469. forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1470. if(forarr != ""){
  1471. for(var j = 0; j < forarr.length-1; j++){
  1472. execcarestatcd = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd");
  1473. if(execcarestatcd == "" || execcarestatcd == "N"){
  1474. messageBox("미확인 상태에서는 Remark등록을 ","E001");
  1475. return;
  1476. }else{
  1477. cnt++;
  1478. }
  1479. }
  1480. }
  1481. }
  1482. if(cnt == 0){
  1483. messageBox("Remark등록할 범위를 정확히","C002");
  1484. return;
  1485. }
  1486. var inst_row = grd_druglist.row - 1;
  1487. var grd_row = grd_druglist.row;
  1488. var grd_col = grd_druglist.col;
  1489. var setRemarkInfo = "";
  1490. if(cnt == 1){
  1491. sRemarkIndex = model.getValue(xWardDrugListPath +"[" + inst_row + "]/forarr" + grd_col);
  1492. setRemarkInfo = model.instances(0).selectNodes(xWardDrugListPath + "[" + inst_row + "]/for[" + sRemarkIndex + "]");
  1493. setParameter("SPMNR03400_param", getNodeListCSV(setRemarkInfo));
  1494. }else{
  1495. setParameter("SPMNR03400_param1", "");
  1496. setParameter("SPMNR03400_param2", "");
  1497. }
  1498. modal("SPMNR03400");
  1499. var carecfactcd = getParameter("SPMNR03400_RtnParam1"); //간호사REMARK(상용REMARK코드)
  1500. var carecfact = getParameter("SPMNR03400_RtnParam2"); //간호전달사항(REMARK직접입력)
  1501. var carecfactnm = getParameter("SPMNR03400_RtnParam3"); //상용REMARK코드의 명칭+REMARK직접입력사항
  1502. var paramYN = getParameter("SPMNR03400_RtnParamYN"); //리턴 여부
  1503. setParameter("SPMNR03400_RtnParam1", "");
  1504. setParameter("SPMNR03400_RtnParam2", "");
  1505. setParameter("SPMNR03400_RtnParam3", "");
  1506. setParameter("SPMNR03400_RtnParamYN", "");
  1507. if(paramYN == "Y"){
  1508. //------------(20081205)
  1509. toprow = grd_druglist.toprow;
  1510. toprowflag = "Y";
  1511. //------------(20081205)
  1512. for(var k = 0; k < grd_druglist.selectedCells.length; k++){
  1513. col = grd_druglist.selectedCells.item(k).col;
  1514. row = grd_druglist.selectedCells.item(k).row -1;
  1515. drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1516. tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1517. forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1518. timesch = fSetTimsSetting(forarr.length-1); //????
  1519. if(forarr != ""){
  1520. for(var l = 0; l < forarr.length-1; l++){
  1521. //---------------(20081211)
  1522. //예방적항생제
  1523. var preantiyn = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/preantiyn");
  1524. var preantimsg = "예방적항생제";
  1525. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactcd", carecfactcd);
  1526. if (preantiyn == "Y") { //예방적항생제인경우
  1527. carecfactnm = fnReplace(carecfactnm,preantimsg,'');
  1528. carecfact = fnReplace(carecfact,preantimsg,'');
  1529. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactnm", carecfactnm + " " + preantimsg);
  1530. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfact", carecfact + " " + preantimsg);
  1531. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, timesch + carecfactnm + " " + preantimsg);
  1532. } else {
  1533. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactnm", carecfactnm);
  1534. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfact", carecfact);
  1535. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, timesch + carecfactnm);
  1536. }
  1537. //---------------(20081211)
  1538. //입력/수정 상태값 변경
  1539. fChangeValueStatus(row, forarr[l]);
  1540. }
  1541. }
  1542. }
  1543. }
  1544. grd_druglist.row = 1;
  1545. //------------------(20081205)
  1546. if (toprowflag == "Y") {
  1547. if (grd_druglist.rows > toprow) {
  1548. grd_druglist.toprow = toprow;
  1549. }
  1550. toprowflag = "N";
  1551. }
  1552. //------------------(20081205)
  1553. model.refresh();
  1554. }
  1555. //function fSetRemarkReg_OLD(){
  1556. // var rows = grd_druglist.rows;
  1557. // var drugtmspec = "";
  1558. // var tims = "";
  1559. // var col = "";
  1560. // var row = "";
  1561. // var cnt = 0;
  1562. // var execcarestatcd = "";
  1563. // var forarr = "";
  1564. // var timesch = "";
  1565. // for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1566. // col = grd_druglist.selectedCells.item(i).col;
  1567. // row = grd_druglist.selectedCells.item(i).row -1;
  1568. // drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1569. // tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1570. // forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1571. // if(forarr != ""){
  1572. // for(var j = 0; j < forarr.length-1; j++){
  1573. // execcarestatcd = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd");
  1574. // if(execcarestatcd == "" || execcarestatcd == "N"){
  1575. // messageBox("미확인 상태에서는 Remark등록을 ","E001");
  1576. // return;
  1577. // }else{
  1578. // cnt++;
  1579. // }
  1580. // }
  1581. // }
  1582. // }
  1583. // if(cnt == 0){
  1584. // messageBox("Remark등록할 범위를 정확히","C002");
  1585. // return;
  1586. // }
  1587. // var inst_row = grd_druglist.row - 1;
  1588. // var grd_row = grd_druglist.row;
  1589. // var grd_col = grd_druglist.col;
  1590. // var setRemarkInfo = "";
  1591. // if(cnt == 1){
  1592. // sRemarkIndex = model.getValue(xWardDrugListPath +"[" + inst_row + "]/forarr" + grd_col);
  1593. // setRemarkInfo = model.instances(0).selectNodes(xWardDrugListPath + "[" + inst_row + "]/for[" + sRemarkIndex + "]");
  1594. // setParameter("SPMNR03400_param", getNodeListCSV(setRemarkInfo));
  1595. // }else{
  1596. // setParameter("SPMNR03400_param1", "");
  1597. // setParameter("SPMNR03400_param2", "");
  1598. // }
  1599. // modal("SPMNR03400");
  1600. // var carecfactcd = getParameter("SPMNR03400_RtnParam1");
  1601. // var carecfact = getParameter("SPMNR03400_RtnParam2");
  1602. // var carecfactnm = getParameter("SPMNR03400_RtnParam3");
  1603. // var paramYN = getParameter("SPMNR03400_RtnParamYN");
  1604. // setParameter("SPMNR03400_RtnParam1", "");
  1605. // setParameter("SPMNR03400_RtnParam2", "");
  1606. // setParameter("SPMNR03400_RtnParam3", "");
  1607. // setParameter("SPMNR03400_RtnParamYN", "");
  1608. //
  1609. // if(paramYN == "Y"){
  1610. // for(var k = 0; k < grd_druglist.selectedCells.length; k++){
  1611. // col = grd_druglist.selectedCells.item(k).col;
  1612. // row = grd_druglist.selectedCells.item(k).row -1;
  1613. // drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1614. // tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1615. // forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1616. // timesch = fSetTimsSetting(forarr.length-1);
  1617. // if(forarr != ""){
  1618. // for(var l = 0; l < forarr.length-1; l++){
  1619. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactcd", carecfactcd);
  1620. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactnm", carecfactnm);
  1621. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfact", carecfact);
  1622. // model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, timesch + carecfactnm);
  1623. //
  1624. // //입력/수정 상태값 변경
  1625. // fChangeValueStatus(row, forarr[l]);
  1626. // }
  1627. // }
  1628. // }
  1629. // }
  1630. // grd_druglist.row = 1;
  1631. // model.refresh();
  1632. //}
  1633. /**
  1634. * @group :
  1635. * @ver : 2007.06.25
  1636. * @by : 최경용
  1637. * @---------------------------------------------------
  1638. * @type : function
  1639. * @access : public
  1640. * @desc : 기준시간 변경
  1641. * @param :
  1642. * @return :
  1643. * @---------------------------------------------------
  1644. */
  1645. //warddruginfo에는 정보가 부분만 있음(마스타정보와,상세중1첫번째 자료만 넘긴다)
  1646. function fSetDrugBaseTime(){
  1647. var inst_row= grd_druglist.row - 1;
  1648. var rows = grd_druglist.rows;
  1649. var cols = grd_druglist.cols;
  1650. var tims = 0;
  1651. var count = 0;
  1652. //---------------(20080912)
  1653. var calctims = 0;
  1654. //---------------(20080912)
  1655. //임시INSTANCE제거
  1656. model.removeNodeSet("/root/temp/warddruginfo/warddruglist");
  1657. baseCol_Array = new Array;
  1658. if(grd_druglist.selectedCells.length > 0){
  1659. tims = model.getValue(xWardDrugListPath + "[" + (grd_druglist.selectedCells.item(0).row -1) + "]/tims");
  1660. //---------------(20080912)
  1661. calctims = model.getValue(xWardDrugListPath + "[" + (grd_druglist.selectedCells.item(0).row -1) + "]/calctims");
  1662. //---------------(20080912)
  1663. //횟수가 동일한 처방만 추출
  1664. for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1665. row = grd_druglist.selectedCells.item(i).row -1;
  1666. if(tims == model.getValue(xWardDrugListPath +"[" + row + "]/tims")){
  1667. //-----------------(20080912)
  1668. if(calctims == model.getValue(xWardDrugListPath +"[" + row + "]/calctims")){
  1669. if(!isSearchArrayString(baseCol_Array, row)){
  1670. baseCol_Array[baseCol_Array.length] = row;
  1671. //xWardDrugListPath +"[" + row + "]" ==> "/root/temp/warddruginfo"
  1672. model.duplicate("/root/temp/warddruginfo", xWardDrugListPath +"[" + row + "]");
  1673. }
  1674. } else {
  1675. messageBox("외용제끼리 별도로 처리하십시오","I9999");
  1676. return;
  1677. }
  1678. //-----------------(20080912)
  1679. }else{
  1680. messageBox("횟수가 동일한 처방만 동시에 기준시간을 변경할 수 있습니다.","I9999");
  1681. return;
  1682. }
  1683. for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + row + "]/for"); j++){
  1684. //---------(20081211)
  1685. //예방적항생제인 경우를 생각해봐야 할것 같음(미확인이나 저장을 해야하는 경우가 있는것임)
  1686. if(model.getValue(xWardDrugListPath + "[" + row + "]/for[" + j + "]/medrexecdd") != "00000000"){
  1687. count++;
  1688. }
  1689. //---------(20081211)
  1690. }
  1691. }
  1692. }
  1693. if(getNodesetCount("/root/temp/warddruginfo/warddruglist") == 1){
  1694. //-----------------(20080912)
  1695. if(count == model.getValue("/root/temp/warddruginfo/warddruglist/tims")){
  1696. messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1697. return;
  1698. } else if(count == model.getValue("/root/temp/warddruginfo/warddruglist/calctims")){
  1699. //외용제는 caletims가 무조건 1이고 , tims은 1회이상일수 있다.
  1700. messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1701. return;
  1702. }
  1703. //-----------------(20080912)
  1704. }else if(getNodesetCount("/root/temp/warddruginfo/warddruglist") > 1){
  1705. if(count > 0){
  1706. messageBox("선택한 처방 중 이미 기록된 내용이 있어 함께 변경할 수","I004");
  1707. return;
  1708. }
  1709. }
  1710. //기준시간 변경하기 전 변경된 내용을 저장
  1711. if(fChangeDrugInfo() == "true"){
  1712. messageBox("변경된 내용을 저장 후 진행하세요.","I9999");
  1713. return;
  1714. }
  1715. //변경된 시간은 넘어가지 않음(문제점)
  1716. //warddruginfo에는 화면에 보여줄 자료만 있으므
  1717. var setDrugBaseTimeList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist");
  1718. var setDrugBaseTimeDetlList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist/for");
  1719. setParameter("SPMNR03300_param1", getNodeListCSV(setDrugBaseTimeList));
  1720. setParameter("SPMNR03300_param2", getNodeListCSV(setDrugBaseTimeDetlList));
  1721. //------------(20081205)
  1722. toprow = grd_druglist.toprow;
  1723. toprowflag = "Y";
  1724. //------------(20081205)
  1725. modal("SPMNR03300");
  1726. var RtnParamYN = getParameter("SPMNR03300_RtnParamYN");
  1727. fClickDrugListBefore(); //------------(20081031)
  1728. if(RtnParamYN == "Y"){
  1729. if(screen_mode == "pat"){
  1730. fClickDrugList(screen_mode, grd_patlist.row);
  1731. }else if(screen_mode == "act"){
  1732. fClickDrugList(screen_mode, grd_actlist.row);
  1733. }
  1734. }
  1735. fClickDrugListAfter(); //------------(20081031)
  1736. //------------------(20081205)test중
  1737. //fClickDrugListAfter 모듈안에 아래의 기능이 있음
  1738. //if (toprowflag == "Y") {
  1739. // if (grd_druglist.rows > toprow) {
  1740. // grd_druglist.toprow = toprow;
  1741. // }
  1742. // toprowflag = "N";
  1743. //}
  1744. //model.refresh();
  1745. //------------------(20081205)
  1746. setParameter("SPMNR03300_param", "");
  1747. setParameter("SPMNR03300_RtnParamYN", "");
  1748. }
  1749. //function fSetDrugBaseTime_OLD(){
  1750. //
  1751. // var inst_row = grd_druglist.row - 1;
  1752. // var rows = grd_druglist.rows;
  1753. // var cols = grd_druglist.cols;
  1754. // var tims = 0;
  1755. // var count = 0;
  1756. //
  1757. // model.removeNodeSet("/root/temp/warddruginfo/warddruglist");
  1758. // baseCol_Array = new Array;
  1759. //
  1760. // if(grd_druglist.selectedCells.length > 0){
  1761. // tims = model.getValue(xWardDrugListPath + "[" + (grd_druglist.selectedCells.item(0).row -1) + "]/tims");
  1762. // for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1763. // row = grd_druglist.selectedCells.item(i).row -1;
  1764. // if(tims == model.getValue(xWardDrugListPath +"[" + row + "]/tims")){
  1765. // if(!isSearchArrayString(baseCol_Array, row)){
  1766. // baseCol_Array[baseCol_Array.length] = row;
  1767. // model.duplicate("/root/temp/warddruginfo", xWardDrugListPath +"[" + row + "]");
  1768. // }
  1769. // }else{
  1770. // messageBox("횟수가 동일한 처방만 동시에 기준시간을 변경할 수 있습니다.","I9999");
  1771. // return;
  1772. // }
  1773. // for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + row + "]/for"); j++){
  1774. // if(model.getValue(xWardDrugListPath + "[" + row + "]/for[" + j + "]/medrexecdd") != "00000000"){
  1775. // count++;
  1776. // }
  1777. // }
  1778. // }
  1779. // }
  1780. // if(getNodesetCount("/root/temp/warddruginfo/warddruglist") == 1){
  1781. // if(count == model.getValue("/root/temp/warddruginfo/warddruglist/tims")){
  1782. // messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1783. // return;
  1784. // }
  1785. // }else if(getNodesetCount("/root/temp/warddruginfo/warddruglist") > 1){
  1786. // if(count > 0){
  1787. // messageBox("선택한 처방 중 이미 기록된 내용이 있어 함께 변경할 수","I004");
  1788. // return;
  1789. // }
  1790. // }
  1791. // //기준시간 변경하기 전 변경된 내용을 저장
  1792. // if(fChangeDrugInfo() == "true"){
  1793. // messageBox("변경된 내용을 저장 후 진행하세요.","I9999");
  1794. // return;
  1795. // }
  1796. // var setDrugBaseTimeList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist");
  1797. // var setDrugBaseTimeDetlList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist/for");
  1798. // setParameter("SPMNR03300_param1", getNodeListCSV(setDrugBaseTimeList));
  1799. // setParameter("SPMNR03300_param2", getNodeListCSV(setDrugBaseTimeDetlList));
  1800. // modal("SPMNR03300");
  1801. // var RtnParamYN = getParameter("SPMNR03300_RtnParamYN");
  1802. // if(RtnParamYN == "Y"){
  1803. // if(screen_mode == "pat"){
  1804. // fClickDrugList(screen_mode, grd_patlist.row);
  1805. // }else if(screen_mode == "act"){
  1806. // fClickDrugList(screen_mode, grd_actlist.row);
  1807. // }
  1808. // }
  1809. // setParameter("SPMNR03300_param", "");
  1810. // setParameter("SPMNR03300_RtnParamYN", "");
  1811. //}
  1812. /**
  1813. * @group :
  1814. * @ver : 2007.06.25
  1815. * @by : 최경용
  1816. * @---------------------------------------------------
  1817. * @type : function
  1818. * @access : public
  1819. * @desc : 미확인(Acting 취소)
  1820. * @param :
  1821. * @return :
  1822. * @---------------------------------------------------
  1823. */
  1824. function fSetNurseConfrim(){
  1825. fSetDrug("N");
  1826. grd_druglist.refresh();
  1827. }
  1828. /**
  1829. * @group :
  1830. * @ver : 2008.12.01
  1831. * @by : 김보성
  1832. * @---------------------------------------------------
  1833. * @type : function
  1834. * @access : public
  1835. * @desc : 미확인(예방적항생제)(Acting 취소)
  1836. * @param :
  1837. * @return :
  1838. * @---------------------------------------------------
  1839. */
  1840. //20081201
  1841. function fSetNurseConfrimPreAnti(){
  1842. fSetDrug("M");
  1843. grd_druglist.refresh();
  1844. }
  1845. /**
  1846. * @group :
  1847. * @ver : 2007.06.25
  1848. * @by : 최경용
  1849. * @---------------------------------------------------
  1850. * @type : function
  1851. * @access : public
  1852. * @desc : 투약 이벤트
  1853. * @param :
  1854. * @return :
  1855. * @---------------------------------------------------
  1856. */
  1857. function fSetDrugActing(){
  1858. fSetDrug("R");
  1859. grd_druglist.refresh();
  1860. }
  1861. /**
  1862. * @group :
  1863. * @ver : 2007.06.25
  1864. * @by : 최경용
  1865. * @---------------------------------------------------
  1866. * @type : function
  1867. * @access : public
  1868. * @desc : 투약X 반환가능
  1869. * @param :
  1870. * @return :
  1871. * @---------------------------------------------------
  1872. */
  1873. function fSetRtnPosActing(){
  1874. fSetDrug("P");
  1875. grd_druglist.refresh();
  1876. }
  1877. /**
  1878. * @group :
  1879. * @ver : 2007.06.25
  1880. * @by : 최경용
  1881. * @---------------------------------------------------
  1882. * @type : function
  1883. * @access : public
  1884. * @desc : 투약X 반환불가
  1885. * @param :
  1886. * @return :
  1887. * @---------------------------------------------------
  1888. */
  1889. function fSetRtnImposActing(){
  1890. fSetDrug("I");
  1891. grd_druglist.refresh();
  1892. }
  1893. /**
  1894. * @group :
  1895. * @ver : 2007.06.25
  1896. * @by : 최경용
  1897. * @---------------------------------------------------
  1898. * @type : function
  1899. * @access : public
  1900. * @desc : 퇴원당일 남은약
  1901. * @param :
  1902. * @return :
  1903. * @---------------------------------------------------
  1904. */
  1905. function fSetLeaveRemain(){
  1906. fSetDrug("L");
  1907. grd_druglist.refresh();
  1908. }
  1909. /**
  1910. * @group :
  1911. * @ver : 2007.06.25
  1912. * @by : 최경용
  1913. * @---------------------------------------------------
  1914. * @type : function
  1915. * @access : public
  1916. * @desc : Acting이벤트시 공통 함수
  1917. * @param :
  1918. * @return :
  1919. * @---------------------------------------------------
  1920. */
  1921. function fSetDrug(actingflag){
  1922. var rows = grd_druglist.rows;
  1923. var tims = "";
  1924. var drugtmspec = "";
  1925. var col = "";
  1926. var row = "";
  1927. var dccomcountyn = "";
  1928. var messageyn = "N";
  1929. var messageactyn = "N";
  1930. var prnmessageyn = "N";
  1931. var medrexecdd = "";
  1932. var medrexectm = "";
  1933. var prcpdd = "";
  1934. var for_arr = "";
  1935. var cell_color = "";
  1936. var careprnexecflag = "";
  1937. //그리드에서 선택상태인 셀들의 collection 객체를 반환하는 속성이다
  1938. for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1939. col = grd_druglist.selectedCells.item(i).col;
  1940. row = grd_druglist.selectedCells.item(i).row -1;
  1941. cell_color = grd_druglist.cellstyle("background-color",row+1,col);
  1942. forarr = model.getValue(xWardDrugListPath + "[" + row+ "]/forarr" + col).split(" ");
  1943. tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1944. dccomcountyn = model.getValue(xWardDrugListPath + "[" + row + "]/dccomcountyn");
  1945. prcpdd = model.getValue(xWardDrugListPath + "[" + row + "]/prcpdd");
  1946. //-----------(20081011)
  1947. //prcpdd = model.getValue(xWardDrugListPath + "[" + row + "]/prcpdd");
  1948. var prcphopedd = model.getValue(xWardDrugListPath + "[" + row + "]/prcphopedd");
  1949. //-----------(20081011)
  1950. careprnexecflag = model.getValue(xWardDrugListPath + "[" + row + "]/careprnexecflag");
  1951. //--------------------------------------------------------------------------(20080913)
  1952. var sdrughang = model.getValue(xWardDrugListPath + "[" + row + "]/prcpkindnm")
  1953. var prcphistcd = model.getValue(xWardDrugListPath + "[" + row + "]/prcphistcd")
  1954. var sdrughangflag = "";
  1955. if ( sdrughang.indexOf('항암') != -1 ) {
  1956. sdrughangflag = "Y"; //항암
  1957. } else {
  1958. sdrughangflag = "N";
  1959. }
  1960. //////////////////////alert(actingflag + ":" + sdrughang + ":" + sdrughangflag + ":" +prcphistcd);
  1961. //항암프로토콜로 발생된 것은 검정색 D/C인 경우만 반환가능을 지정할수 있다.
  1962. if(sdrughangflag == "Y" && actingflag == "P" && prcphistcd != "D" && prcphistcd != "E" ){
  1963. if(messageyn == "N"){
  1964. messageBox("항암 처방은 의사D/C이전에는 투약X 반환가능을 지정 할 수","I004");
  1965. messageyn = "Y";
  1966. }
  1967. } else if(careprnexecflag == "P" && (actingflag == "P" || actingflag == "L")){ //prn처방에 대한 action시
  1968. //if(careprnexecflag == "P" && (actingflag == "P" || actingflag == "L")){ //prn처방에 대한 action시
  1969. //--------------------------------------------------------------------------(20080913)
  1970. if(prnmessageyn == "N"){
  1971. messageBox("PRN 처방은 투약X 반환가능, 퇴원당일 남은약을 지정 할 수","I004");
  1972. prnmessageyn = "Y";
  1973. }
  1974. }else if(dccomcountyn == "Y" && cell_color != "white"){
  1975. if(messageyn == "N"){
  1976. messageBox("D/C확정된 처방은 변경 할 수","I004");
  1977. messageyn = "Y";
  1978. }
  1979. }else if(dccomcountyn == "N" && cell_color != "white"){
  1980. for(var j = 0; j < forarr.length-1; j++){
  1981. if(forarr[j] != ""){
  1982. if(actingflag == model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd")){
  1983. if(messageactyn == "N"){
  1984. messageBox("동일한 투약기록을 할 수","I004");
  1985. messageactyn = "Y";
  1986. }
  1987. }else{
  1988. if(actingflag == "R"){
  1989. grd_druglist.cellstyle("background-color",row+1,col) = yellow;
  1990. }else if(actingflag == "P"){
  1991. grd_druglist.cellstyle("background-color",row+1,col) = yellowishgreen;
  1992. }else if(actingflag == "I"){
  1993. grd_druglist.cellstyle("background-color",row+1,col) = red;
  1994. }else if(actingflag == "L"){
  1995. grd_druglist.cellstyle("background-color",row+1,col) = sky;
  1996. //-------------(20081211)
  1997. }else if(actingflag == "N"){
  1998. //색상
  1999. grd_druglist.cellstyle("background-color",row+1,col) = gray;
  2000. //주석
  2001. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactnm", "");
  2002. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactcd", "");
  2003. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfact", "");
  2004. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, "");
  2005. //flag
  2006. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/preantiyn", "N");
  2007. }else if(actingflag == "M"){
  2008. var preantimsg = "예방적항생제";
  2009. //색상
  2010. grd_druglist.cellstyle("background-color",row+1,col) = orange;
  2011. //주석
  2012. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactnm", preantimsg);
  2013. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactcd", "");
  2014. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfact", preantimsg);
  2015. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, preantimsg);
  2016. //flag
  2017. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/preantiyn", "Y");
  2018. //-------------(20081211)
  2019. }else{}
  2020. //입력/수정 상태값 변경
  2021. fChangeValueStatus(row, forarr[j]);
  2022. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd", actingflag);
  2023. //----------(20081211)확인중
  2024. //미확인 또는 예방적항생제(미확인) : 둘다 미확인임으로 투약기록일자/시간정보 clear
  2025. if(actingflag == "N" || actingflag == "M" ){
  2026. //----------(20081211)
  2027. medrexecdd = "00000000";
  2028. medrexectm = "0000";
  2029. }else{
  2030. if(model.getValue("/root/main/cond/acttimeflag") == "true"){
  2031. medrexecdd = model.getValue("/root/main/cond/currentday");
  2032. medrexectm = model.getValue("/root/main/cond/currenttime");
  2033. //-------------------------------(20080802)
  2034. //////////////////////alert(medrexectm);
  2035. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currentflag", "Y");
  2036. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currentdd", medrexecdd);
  2037. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currenttm", medrexectm);
  2038. //model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, medrexectm); //현재시간설정여부알림(화면상만)
  2039. //-------------------------------
  2040. }else{
  2041. drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/drugtmspeccal");
  2042. ////////////alert("drugtmspec:" + drugtmspec);
  2043. //-------------(20081011)
  2044. //medrexecdd = getDateAddc(prcpdd, parseInt(drugtmspec / 2400)); //처방발생일
  2045. medrexecdd = getDateAddc(prcphopedd, parseInt(drugtmspec / 2400)); //처방희망일
  2046. //-------------(20081011)
  2047. medrexectm = Number(drugtmspec) % 2400;
  2048. medrexectm = fCarec_GetFillZeno(Math.abs(Number(medrexectm)), 4,0);
  2049. ////////////alert("medrexecdd:" + medrexecdd + "/" + medrexectm);
  2050. }
  2051. }
  2052. //-------------(20080731)test:정상
  2053. //////////////////////alert("일자----------:" + medrexecdd + "/ 시간:" + medrexectm);
  2054. //-------------(20080731)
  2055. //--------------------------(20080731)TEST중
  2056. //미투약리스트에서 과거를 선택하고 현재시각으로 하면 어떻게 되야 하는건가요?
  2057. //시간대를 읽어서 다시 생성하는 로직
  2058. //--------------------------
  2059. /*
  2060. var tempTimet = "";
  2061. var tempTimej = "";
  2062. if(actingflag == "N"){
  2063. }else{
  2064. if(model.getValue("/root/main/cond/acttimeflag") == "true"){
  2065. //-----------
  2066. var tempforarr = getNodesetCount(xWardDrugListPath + "[" + row + "]/for");
  2067. ////////////////////alert("1:"+ tempforarr+ "/" + forarr[j]);
  2068. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/drugtmspeccal",medrexectm);
  2069. for(var t = 1; t <= tempforarr; t++){
  2070. ////////////////////alert("2:"+t);
  2071. tempTimej = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + t + "]/drugtmspeccal");
  2072. if (t == tempforarr) {
  2073. tempTimet += tempTimej
  2074. } else {
  2075. tempTimet += tempTimej + " ";
  2076. }
  2077. ////////////////////alert("3:"+tempTimet);
  2078. }
  2079. ////////////////////alert ("시간대:" + tempTimet);
  2080. //-----------
  2081. }else{
  2082. }
  2083. }
  2084. */
  2085. //--------------------------
  2086. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/medrexecdd", medrexecdd);
  2087. if(medrexectm != ""){
  2088. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/medrexectm", medrexectm + "00");
  2089. }
  2090. }
  2091. }
  2092. }
  2093. }else{}
  2094. }
  2095. //-----------(20081121:test) grd_druglist.row = 1;가 있는데, 막고 테스트 진행함)
  2096. //grd_druglist.row = 1;
  2097. //숨겨진필드로 이동한다.
  2098. grd_druglist.select(grd_druglist.row,grd_druglist.colref("engnm")) = true;
  2099. grd_druglist.col = grd_druglist.colref("engnm");
  2100. //-----------(20081121)
  2101. }
  2102. /**
  2103. * @group :
  2104. * @ver : 2007.06.25
  2105. * @by : 최경용
  2106. * @---------------------------------------------------
  2107. * @type : function
  2108. * @access : public
  2109. * @desc : 시간별 일괄 투약(기존Acting이 없을 경우만...)
  2110. * @param :
  2111. * @return :
  2112. * @---------------------------------------------------
  2113. */
  2114. function fSetDrugAllActing(drugstat){
  2115. return; //-----------(20081226)
  2116. var rows = grd_druglist.rows;
  2117. var col = grd_druglist.mouseCol;
  2118. //for(var i = 2; i <= rows-1; i++ ){
  2119. grd_druglist.select(2, col, rows-1, col) = true;
  2120. //}
  2121. fSetDrug(drugstat);
  2122. }
  2123. /**
  2124. * @group :
  2125. * @ver : 2007.06.25
  2126. * @by : 최경용
  2127. * @---------------------------------------------------
  2128. * @type : function
  2129. * @access : public
  2130. * @desc : 투약기록 내용 저장
  2131. * @param :
  2132. * @return :
  2133. * @---------------------------------------------------
  2134. */
  2135. function fClickSave(signflagyn){
  2136. //-------------(20081121)
  2137. toprow = group3.grd_druglist.vscrollbar.pos;
  2138. toprowflag = "Y";
  2139. //-------------(20081121)
  2140. //--------------------------(20080627)
  2141. //상단에 정보가 없이 투약기록을 연다.
  2142. //그러면 투약기록에서 환자선택시 상단으로 올리고
  2143. //저장전에 다시 한번 내린다.
  2144. //-------------------------------------
  2145. //상단정보가 없을경우 인증저장시 오류
  2146. //var signgenrflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2147. //java.sql.SQLException: ORA-01400: NULL을 ("EMR"."MRIMESPI"."SIGNGENRFLAG") 안에 삽입할 수 없습니다
  2148. //himed.his.emr.emrreclib.elctcert.dao.ElctCertMngtDAOImpl.insElctCertInfo() at line 128 in ElctCertMngtDAOImpl.java
  2149. /*
  2150. var tempioflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2151. if ( tempioflag == "" ) {
  2152. // 환자정보 조회
  2153. var tempPamInfo = getGlobalVariable("paminfo");
  2154. setCSVToNode("/root/main/paminfo",tempPamInfo,"pamlist"); //환자정보내리기
  2155. //messageBox("상단정보가 존재하지 않습니다.저장할 수 없습니다.","E999");
  2156. //return;
  2157. }
  2158. tempioflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2159. */
  2160. //------------------(20080917)
  2161. //상단정보를 이용하지 않고, 환자리스트에서 ordtype를 이용한다.(20080721)
  2162. /*
  2163. if ( grd_patlist.row <= 0 ) {
  2164. messageBox("환자를 선택하십시오 ","E999");
  2165. return;
  2166. }
  2167. var tempioflag = model.getValue(xWardPatListPath + "[" + grd_patlist.row + "]/ordtype");
  2168. if ( tempioflag == "" ) {
  2169. messageBox("원무정보를 확인하십시오 ","E999");
  2170. return;
  2171. }
  2172. */
  2173. var pGrdTemp = "";
  2174. var temppatlistPath = ""; //0929
  2175. //var xWardPatListPath = "/root/main/wardpatinfo/wardpatlist";
  2176. //var xWardActListPath = "/root/main/wardactinfo/wardactlist";
  2177. if(screen_mode == "pat"){
  2178. pGrdTemp = group3.swtpatList.pat.grd_patlist;
  2179. temppatlistPath = eval(xWardPatListPath); //0929
  2180. }else if(screen_mode == "act"){
  2181. pGrdTemp = group3.swtpatList.act.grd_actlist;
  2182. temppatlistPath = eval(xWardActListPath); //0929
  2183. }
  2184. if ( pGrdTemp.currentrow < 0 ) {
  2185. sysf_messageBox("환자를 선택하십시오 ","E999");
  2186. return;
  2187. }
  2188. var tempioflag = temppatlistPath.getColumn(pGrdTemp.currentrow, "ordtype"); //0929
  2189. ////////////////alert( pGrdTemp.caption +"/"+ pGrdTemp.row +"/"+tempioflag ) ; //0924
  2190. if( utlf_isNull(tempioflag) ){
  2191. sysf_messageBox("원무정보를 확인하십시오 ","E999");
  2192. return;
  2193. }
  2194. //------------------(20080917)
  2195. var rows = group3.grd_druglist.rowcount;
  2196. var drugtmspec = "";
  2197. var carebasetmspec = "";
  2198. var tims = "";
  2199. var iudflag = "";
  2200. var inst_cnt = 0;
  2201. var prcpdd = "";
  2202. var prcpno = "";
  2203. var prcphistno = "";
  2204. var execprcpno = "";
  2205. var carertnyn = "";
  2206. var execprcptims = "";
  2207. var pid = "";
  2208. var indd = "";
  2209. var cretno = "";
  2210. var prcpvol = "";
  2211. var fluidflag = "";
  2212. var mixno = "";
  2213. var mixyn = "";
  2214. var carecfact = "";
  2215. var carecfactcd = "";
  2216. var carecfactnm = "";
  2217. var carebasedd = "";
  2218. var carebasetm = "";
  2219. var execcarestatcd = "";
  2220. var pastexeccarestatcd = "";
  2221. var prcpcd = "";
  2222. var carebasetmspec = "";
  2223. var execprcpuniqno = "";
  2224. var acttimeflag = ds_main_cond.getColumn(0, "acttimeflag");
  2225. var currentday = ds_main_cond.getColumn(0, "currentday");
  2226. var currenttime = ds_main_cond.getColumn(0, "currenttime");
  2227. var execdd = "";
  2228. var exectm = "";
  2229. var prcpclscd = "";
  2230. var drugrateqty = "";
  2231. var spcldrug = "";
  2232. var signno = "";
  2233. var recdd = utlf_getCurrentDate();
  2234. var rectm = utlf_getCurrentTime();
  2235. var recsaveflag = "N";
  2236. var signflag = "02";
  2237. //---------------------------(20080721)
  2238. //상단정보를 이용하지 않고 환자리스트정보를 이용한다.
  2239. //var signgenrflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2240. var signgenrflag = tempioflag;
  2241. //---------------------------
  2242. var formcd = "0000002476";
  2243. var orddeptcd = "";
  2244. var orddrid = "";
  2245. var patnm = "";
  2246. var medrexecdd = "";
  2247. var medrexectm = "";
  2248. var prcpkindnm = "";
  2249. var orddrnm = "";
  2250. var prcpnm = "";
  2251. //-----------------(20080802)
  2252. var currentflag = "";
  2253. var currentdd = "";
  2254. var currenttm = "";
  2255. //-----------------(20080802)
  2256. //-----------------(20081211)
  2257. var preantiyn = "";
  2258. //-----------------(20081211)
  2259. //-----------------(20081226)
  2260. var carebasedd = "";
  2261. var carebasetm = "";
  2262. //-----------------(20081226)
  2263. //-------------------(20080820)
  2264. //저장전 사전 체크기능
  2265. ds_send_savedata_drugreportinfo.clearData();
  2266. //---------(20081203)
  2267. //for(var i = 1; i < rows; i++){
  2268. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  2269. //---------
  2270. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  2271. for( var j=0 ; j<objDsxWardDrugListPath.rowcount ; j++ ){
  2272. iudflag = objDsxWardDrugListPath.getColumn(j, "iudflag");
  2273. signflag = objDsxWardDrugListPath.getColumn(j, "signflag");
  2274. if((iudflag == "I") ||
  2275. (iudflag == "U") ||
  2276. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  2277. //--------------------
  2278. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  2279. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  2280. //노드 하나만 남기고 다른 노드들을 삭제하지만,
  2281. //남겨진 하나의 노드에 설정되었던 값들도 삭제되므로 주의해서 사용해야 한다.
  2282. //변수로
  2283. carebasetmspec = ds_main_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec");
  2284. drugtmspec = carebasetmspec.split(" ");
  2285. prcpdd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  2286. prcpcd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  2287. prcpno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno");
  2288. carertnyn = ds_main_warddruginfo_warddruglist.getColumn(i, "carertnyn");
  2289. execprcptims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  2290. pid = ds_main_warddruginfo_warddruglist.getColumn(i, "pid");
  2291. indd = ds_main_warddruginfo_warddruglist.getColumn(i, "indd");
  2292. cretno = ds_main_warddruginfo_warddruglist.getColumn(i, "cretno");
  2293. prcpvol = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpvol");
  2294. mixno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  2295. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "orgprcpclscd");
  2296. drugrateqty = ds_main_warddruginfo_warddruglist.getColumn(i, "drugrateqty");
  2297. spcldrug = ds_main_warddruginfo_warddruglist.getColumn(i, "spcldrug");
  2298. orddeptcd = ds_main_warddruginfo_warddruglist.getColumn(i, "orddeptcd");
  2299. orddrid = ds_main_warddruginfo_warddruglist.getColumn(i, "orddrid");
  2300. patnm = ds_main_warddruginfo_warddruglist.getColumn(i, "patnm");
  2301. prcpkindnm = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpkindnm");
  2302. orddrnm = ds_main_warddruginfo_warddruglist.getColumn(i, "orddrnm");
  2303. prcpnm = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpnm");
  2304. prcpcd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  2305. if( utlf_isNull(mixno) ){
  2306. mixyn = "N";
  2307. }else{
  2308. mixyn = "Y";
  2309. }
  2310. prcphistno = objDsxWardDrugListPath.getColumn(j, "prcphistno");
  2311. execprcpno = objDsxWardDrugListPath.getColumn(j, "execprcpno");
  2312. carecfact = objDsxWardDrugListPath.getColumn(j, "carecfact");
  2313. carecfactcd = objDsxWardDrugListPath.getColumn(j, "carecfactcd");
  2314. carecfactnm = objDsxWardDrugListPath.getColumn(j, "carecfactnm");
  2315. //---------------------------(20081226)
  2316. //carebasedd = getDateAddc(prcpdd, drugtmspec[j] / 2400);
  2317. //carebasetm = fCarec_GetFillZeno(Math.abs(Number(drugtmspec[j]) % 2400), 4,0) + "00";
  2318. //---------------------------(20081226)
  2319. execcarestatcd = objDsxWardDrugListPath.getColumn(j, "execcarestatcd");
  2320. pastexeccarestatcd = objDsxWardDrugListPath.getColumn(j, "pastexeccarestatcd");
  2321. execprcpuniqno = objDsxWardDrugListPath.getColumn(j, "execprcpuniqno");
  2322. signno = objDsxWardDrugListPath.getColumn(j, "signno");
  2323. execdd = objDsxWardDrugListPath.getColumn(j, "execdd"); //과거실행일자(exip.execdd)
  2324. medrexecdd = objDsxWardDrugListPath.getColumn(j, "medrexecdd"); //투약일자
  2325. medrexectm = objDsxWardDrugListPath.getColumn(j, "medrexectm");
  2326. ////////////alert(medrexecdd + "/" + medrexectm);
  2327. //---------------------------(20080802)
  2328. // 현재시간설정정보
  2329. currentflag = objDsxWardDrugListPath.getColumn(j, "currentflag"); //현재시간설정flag
  2330. currentdd = objDsxWardDrugListPath.getColumn(j, "currentdd"); //현재시간설정시일자
  2331. currenttm = objDsxWardDrugListPath.getColumn(j, "currenttm"); //현재시간설정시시간
  2332. //---------------------------(20080802)
  2333. //---------------------------(20081226)
  2334. // 투약시간변경
  2335. carebasedd = objDsxWardDrugListPath.getColumn(j, "carebasedd"); //투약시간변경
  2336. carebasetm = objDsxWardDrugListPath.getColumn(j, "carebasetm"); //투약시간변경
  2337. var sddmax = getDateAddc(ds_main_warddruginfo_warddruglist.getColumn(i, "prcphopedd"), 3); //계산일
  2338. var sddmin = getDateAddc(ds_main_warddruginfo_warddruglist.getColumn(i, "prcphopedd"), -3); //계산일
  2339. ////alert(model.getValue(xWardDrugListPath + "[" + i + "]/prcphopedd"));
  2340. ////alert(carebasedd + "/" + sddmax + "/" + sddmin);
  2341. if (carebasedd != '00000000') {
  2342. if (carebasedd > sddmax || carebasedd < sddmin) {
  2343. sysf_messageBox("처방코드(" + prcpcd + ")의 day가 -3일 ~ 3일 구간 범위를 벗어났습니다.","I999");
  2344. return;
  2345. }
  2346. }
  2347. //---------------------------(20081226)
  2348. //---------------------------(20081211)
  2349. preantiyn = objDsxWardDrugListPath.getColumn(j, "preantiyn"); //예방적항생제
  2350. //---------------------------(20081211)
  2351. //값 반영
  2352. ds_hidden_drugreportinfo.setColumn(0, "prcpdd", prcpdd);
  2353. ds_hidden_drugreportinfo.setColumn(0, "prcpno", prcpno);
  2354. ds_hidden_drugreportinfo.setColumn(0, "prcphistno", prcphistno);
  2355. ds_hidden_drugreportinfo.setColumn(0, "execprcpno", execprcpno);
  2356. if( utlf_isNull(carertnyn) ){
  2357. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", "N");
  2358. }else{
  2359. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", carertnyn);
  2360. }
  2361. ds_hidden_drugreportinfo.setColumn(0, "execprcptims", execprcptims);
  2362. ds_hidden_drugreportinfo.setColumn(0, "pid", pid);
  2363. ds_hidden_drugreportinfo.setColumn(0, "indd", indd);
  2364. ds_hidden_drugreportinfo.setColumn(0, "orddd", indd);
  2365. ds_hidden_drugreportinfo.setColumn(0, "signno", signno);
  2366. ds_hidden_drugreportinfo.setColumn(0, "recdd", recdd);
  2367. ds_hidden_drugreportinfo.setColumn(0, "rectm", rectm);
  2368. ds_hidden_drugreportinfo.setColumn(0, "recsaveflag", recsaveflag);
  2369. ds_hidden_drugreportinfo.setColumn(0, "signflag", "02");
  2370. ds_hidden_drugreportinfo.setColumn(0, "signgenrflag", signgenrflag);
  2371. ds_hidden_drugreportinfo.setColumn(0, "formcd", formcd);
  2372. ds_hidden_drugreportinfo.setColumn(0, "orddeptcd", orddeptcd);
  2373. ds_hidden_drugreportinfo.setColumn(0, "orddrid", orddrid);
  2374. ds_hidden_drugreportinfo.setColumn(0, "cretno", cretno);
  2375. ds_hidden_drugreportinfo.setColumn(0, "prcpvol", prcpvol);
  2376. ds_hidden_drugreportinfo.setColumn(0, "patnm", patnm);
  2377. ds_hidden_drugreportinfo.setColumn(0, "fluidflag", fluidflag);
  2378. ds_hidden_drugreportinfo.setColumn(0, "mixno", mixno);
  2379. ds_hidden_drugreportinfo.setColumn(0, "mixyn", mixyn);
  2380. ds_hidden_drugreportinfo.setColumn(0, "carecfact", carecfact);
  2381. ds_hidden_drugreportinfo.setColumn(0, "carecfactcd", carecfactcd);
  2382. ds_hidden_drugreportinfo.setColumn(0, "carecfactnm", carecfactnm);
  2383. ds_hidden_drugreportinfo.setColumn(0, "carebasedd", carebasedd);
  2384. ds_hidden_drugreportinfo.setColumn(0, "carebasetm", carebasetm);
  2385. if(execcarestatcd == "N" && pastexeccarestatcd == "N"){
  2386. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", "-");
  2387. }else{
  2388. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", execcarestatcd);
  2389. }
  2390. ds_hidden_drugreportinfo.setColumn(0, "prcpcd", prcpcd);
  2391. ds_hidden_drugreportinfo.setColumn(0, "carebasetmspec", carebasetmspec);
  2392. ds_hidden_drugreportinfo.setColumn(0, "acttimeflag", acttimeflag);
  2393. ds_hidden_drugreportinfo.setColumn(0, "execprcpuniqno", execprcpuniqno);
  2394. //-------------------------------------------
  2395. //현재일자(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  2396. ds_hidden_drugreportinfo.setColumn(0, "currentday", currentday);
  2397. //현재시간(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  2398. ds_hidden_drugreportinfo.setColumn(0, "currenttime", currenttime);
  2399. //-------------------------------------------
  2400. ds_hidden_drugreportinfo.setColumn(0, "iudflag", iudflag);
  2401. ds_hidden_drugreportinfo.setColumn(0, "pastexecdd", execdd);
  2402. ds_hidden_drugreportinfo.setColumn(0, "medrexecdd", medrexecdd);
  2403. ds_hidden_drugreportinfo.setColumn(0, "medrexectm", medrexectm);
  2404. ds_hidden_drugreportinfo.setColumn(0, "prcpclscd", prcpclscd);
  2405. ds_hidden_drugreportinfo.setColumn(0, "drugrateqty", drugrateqty);
  2406. ds_hidden_drugreportinfo.setColumn(0, "spcldrug", spcldrug);
  2407. ds_hidden_drugreportinfo.setColumn(0, "prcpkindnm", prcpkindnm);
  2408. ds_hidden_drugreportinfo.setColumn(0, "orddrnm", orddrnm);
  2409. ds_hidden_drugreportinfo.setColumn(0, "prcpnm", prcpnm);
  2410. ds_hidden_drugreportinfo.setColumn(0, "signflagyn", signflagyn);
  2411. if(iudflag == "-" && signflagyn == "Y" && signflag == "N"){
  2412. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "1");//임시저장 후 인증저장
  2413. }else if(signflagyn == "N"){
  2414. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "0");//임시저장
  2415. }else if(signflagyn == "Y"){
  2416. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "2");//인증저장
  2417. }else{}
  2418. //--------------------------(20081203)
  2419. //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  2420. //건별인증은 dispyn ='N'
  2421. //하단의 일자별인 경우만 보임
  2422. //20081204 APP에서 인증저장시에도 다시 한번 더 반영함
  2423. ds_hidden_drugreportinfo.setColumn(0, "dispyn", "N");
  2424. //--------------------------(20081203)
  2425. ds_hidden_drugreportinfo.setColumn(0, "signbfcnts", ""); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  2426. ds_hidden_drugreportinfo.setColumn(0, "signaftcnts", ""); // 공인인증 처리후 데이터
  2427. //---------------------------(20080802)
  2428. // 현재시간설정정보
  2429. ds_hidden_drugreportinfo.setColumn(0, "currentflag", currentflag); //현재시간설정flag
  2430. ds_hidden_drugreportinfo.setColumn(0, "currentdd", currentdd); //현재시간설정시일자
  2431. ds_hidden_drugreportinfo.setColumn(0, "currenttm", currenttm); //현재시간설정시시간
  2432. //---------------------------(20080802)
  2433. //---------------------------(20081211)
  2434. ds_hidden_drugreportinfo.setColumn(0, "preantiyn", preantiyn); //예방적항생제추가
  2435. //---------------------------(20081211)
  2436. ds_send_savedata_drugreportinfo.addRow();
  2437. ds_send_savedata_drugreportinfo.copyRow(inst_cnt, ds_hidden_drugreportinfo, 0);
  2438. inst_cnt++;
  2439. }
  2440. }
  2441. }
  2442. if(inst_cnt > 0){
  2443. //------------------------------------
  2444. //반환사유확인 후 진행여부 결과 받음
  2445. var endflag = fnEndddSave();
  2446. if ( endflag == false) return;
  2447. //------------------------------------
  2448. }else{
  2449. sysf_messageBox("저장 할 내용이","I004");
  2450. return;
  2451. }
  2452. //------------------------(20080820)
  2453. //------------------------(20080820)
  2454. //다시 초기화
  2455. currentflag = "";
  2456. currentdd = "";
  2457. currenttm = "";
  2458. inst_cnt = 0;
  2459. //------------------------(20080820)
  2460. //---------------------------(20081226)
  2461. // 투약시간변경
  2462. carebasedd = "";
  2463. carebasetm = "";
  2464. //---------------------------(20081226)
  2465. //------------------------(20081211)
  2466. preantiyn = "N";
  2467. //------------------------(20081211)
  2468. //------------------------(20080902)
  2469. var signDates = new Array;
  2470. var signDateCnt = 0;
  2471. var signdispdd = "";
  2472. //------------------------(20080902)
  2473. //--------------------------(20080917)
  2474. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  2475. //--------------------------(20080917)
  2476. ds_send_savedata_drugreportinfo.clearData();
  2477. //--------------------------(20081203)테스트해야함
  2478. //for(var i = 1; i < rows; i++){
  2479. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  2480. //--------------------------
  2481. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  2482. for( var j=0 ; j<objDsxWardDrugListPath.rowcount ; j++ ){
  2483. iudflag = objDsxWardDrugListPath.getColumn(j, "iudflag");
  2484. signflag = objDsxWardDrugListPath.getColumn(j, "signflag");
  2485. if((iudflag == "I") ||
  2486. (iudflag == "U") ||
  2487. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  2488. //--------------------
  2489. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  2490. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  2491. //노드 하나만 남기고 다른 노드들을 삭제하지만,
  2492. //남겨진 하나의 노드에 설정되었던 값들도 삭제되므로 주의해서 사용해야 한다.
  2493. //변수로
  2494. carebasetmspec = ds_main_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec");
  2495. drugtmspec = carebasetmspec.split(" ");
  2496. prcpdd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  2497. prcpcd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  2498. prcpno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno");
  2499. carertnyn = ds_main_warddruginfo_warddruglist.getColumn(i, "carertnyn");
  2500. execprcptims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  2501. pid = ds_main_warddruginfo_warddruglist.getColumn(i, "pid");
  2502. indd = ds_main_warddruginfo_warddruglist.getColumn(i, "indd");
  2503. cretno = ds_main_warddruginfo_warddruglist.getColumn(i, "cretno");
  2504. prcpvol = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpvol");
  2505. mixno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  2506. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "orgprcpclscd");
  2507. drugrateqty = ds_main_warddruginfo_warddruglist.getColumn(i, "drugrateqty");
  2508. spcldrug = ds_main_warddruginfo_warddruglist.getColumn(i, "spcldrug");
  2509. orddeptcd = ds_main_warddruginfo_warddruglist.getColumn(i, "orddeptcd");
  2510. orddrid = ds_main_warddruginfo_warddruglist.getColumn(i, "orddrid");
  2511. patnm = ds_main_warddruginfo_warddruglist.getColumn(i, "patnm");
  2512. prcpkindnm = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpkindnm");
  2513. orddrnm = ds_main_warddruginfo_warddruglist.getColumn(i, "orddrnm");
  2514. prcpnm = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpnm");
  2515. prcpcd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  2516. if( utlf_isNull(mixno) ){
  2517. mixyn = "N";
  2518. }else{
  2519. mixyn = "Y";
  2520. }
  2521. prcphistno = objDsxWardDrugListPath.getColumn(j, "prcphistno");
  2522. execprcpno = objDsxWardDrugListPath.getColumn(j, "execprcpno");
  2523. carecfact = objDsxWardDrugListPath.getColumn(j, "carecfact");
  2524. carecfactcd = objDsxWardDrugListPath.getColumn(j, "carecfactcd");
  2525. carecfactnm = objDsxWardDrugListPath.getColumn(j, "carecfactnm");
  2526. //---------------------------(20081226)
  2527. //carebasedd = getDateAddc(prcpdd, drugtmspec[j] / 2400);
  2528. //carebasetm = fCarec_GetFillZeno(Math.abs(Number(drugtmspec[j]) % 2400), 4,0) + "00";
  2529. //---------------------------(20081226)
  2530. execcarestatcd = objDsxWardDrugListPath.getColumn(j, "execcarestatcd");
  2531. pastexeccarestatcd = objDsxWardDrugListPath.getColumn(j, "pastexeccarestatcd");
  2532. execprcpuniqno = objDsxWardDrugListPath.getColumn(j, "execprcpuniqno");
  2533. signno = objDsxWardDrugListPath.getColumn(j, "signno");
  2534. execdd = objDsxWardDrugListPath.getColumn(j, "execdd"); //과거실행일자(exip.execdd)
  2535. medrexecdd = objDsxWardDrugListPath.getColumn(j, "medrexecdd"); //투약일자
  2536. medrexectm = objDsxWardDrugListPath.getColumn(j, "medrexectm");
  2537. ////////////alert(medrexecdd + "/" + medrexectm); //-----1011
  2538. //---------------------------(20080802)
  2539. // 현재시간설정정보
  2540. currentflag = objDsxWardDrugListPath.getColumn(j, "currentflag"); //현재시간설정flag
  2541. currentdd = objDsxWardDrugListPath.getColumn(j, "currentdd"); //현재시간설정시일자
  2542. currenttm = objDsxWardDrugListPath.getColumn(j, "currenttm"); //현재시간설정시시간
  2543. //---------------------------(20080802)
  2544. //---------------------------(20081226)
  2545. // 투약시간변경
  2546. carebasedd = objDsxWardDrugListPath.getColumn(j, "carebasedd"); //투약시간변경
  2547. carebasetm = objDsxWardDrugListPath.getColumn(j, "carebasetm"); //투약시간변경
  2548. //위에서 체크함
  2549. //var sddmax = getDateAddc(model.getValue(xWardDrugListPath + "[" + i + "]/prcphopedd"), 3); //계산일
  2550. //var sddmin = getDateAddc(model.getValue(xWardDrugListPath + "[" + i + "]/prcphopedd"), -3); //계산일
  2551. ////alert(carebasedd + "/" + sddmax + "/" + sddmin);
  2552. //if (carebasedd > sddmax || carebasedd < sddmin) {
  2553. // messageBox("처방코드(" + prcpcd + ")의 day가 -3일 ~ 3일 구간 범위를 벗어났습니다.","I999");
  2554. // return;
  2555. //}
  2556. //---------------------------(20081226)
  2557. //---------------------------(20081211)
  2558. preantiyn = objDsxWardDrugListPath.getColumn(j, "preantiyn"); //예방적항생제
  2559. //---------------------------(20081211)
  2560. //--------------------------(20080902)
  2561. signdispdd = objDsxWardDrugListPath.getColumn(j, "dispdd"); //화면상의 일자
  2562. //////////////////////alert( "전체loop:" + signdispdd + "/"+ medrexecdd + "/" + currentdd);
  2563. if ( signDates.length == 0) {
  2564. signDateCnt =0;
  2565. signDates[signDateCnt] = "";
  2566. }
  2567. // if (signdayFind(signDates,medrexecdd) == true ) { //------(투약일자)
  2568. // signDateCnt ++;
  2569. // signDates[signDateCnt] = medrexecdd;
  2570. // ////////////////////alert("b:" + signDates[signDateCnt] +"/" + medrexecdd);
  2571. // }
  2572. if (signdayFind(signDates,signdispdd) == true ) { //------(투약일자)
  2573. signDateCnt ++;
  2574. signDates[signDateCnt] = signdispdd;
  2575. //////////////////////alert("b:" + signDates[signDateCnt] +"/" + signdispdd);
  2576. }
  2577. if (signdayFind(signDates,currentdd) == true ) { //------(현재일자)
  2578. signDateCnt ++;
  2579. signDates[signDateCnt] = currentdd;
  2580. //////////////////////alert("c:" + signDates[signDateCnt] +"/" + currentdd);
  2581. }
  2582. //--------------------------(20080902)
  2583. //값 반영
  2584. ds_hidden_drugreportinfo.setColumn(0, "prcpdd", prcpdd);
  2585. ds_hidden_drugreportinfo.setColumn(0, "prcpno", prcpno);
  2586. ds_hidden_drugreportinfo.setColumn(0, "prcphistno", prcphistno);
  2587. ds_hidden_drugreportinfo.setColumn(0, "execprcpno", execprcpno);
  2588. if( utlf_isNull(carertnyn) ){
  2589. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", "N");
  2590. }else{
  2591. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", carertnyn);
  2592. }
  2593. ds_hidden_drugreportinfo.setColumn(0, "execprcptims", execprcptims);
  2594. ds_hidden_drugreportinfo.setColumn(0, "pid", pid);
  2595. ds_hidden_drugreportinfo.setColumn(0, "indd", indd);
  2596. ds_hidden_drugreportinfo.setColumn(0, "orddd", indd);
  2597. ds_hidden_drugreportinfo.setColumn(0, "signno", signno);
  2598. ds_hidden_drugreportinfo.setColumn(0, "recdd", recdd);
  2599. ds_hidden_drugreportinfo.setColumn(0, "rectm", rectm);
  2600. ds_hidden_drugreportinfo.setColumn(0, "recsaveflag", recsaveflag);
  2601. ds_hidden_drugreportinfo.setColumn(0, "signflag", "02");
  2602. ds_hidden_drugreportinfo.setColumn(0, "signgenrflag", signgenrflag);
  2603. ds_hidden_drugreportinfo.setColumn(0, "formcd", formcd);
  2604. ds_hidden_drugreportinfo.setColumn(0, "orddeptcd", orddeptcd);
  2605. ds_hidden_drugreportinfo.setColumn(0, "orddrid", orddrid);
  2606. ds_hidden_drugreportinfo.setColumn(0, "cretno", cretno);
  2607. ds_hidden_drugreportinfo.setColumn(0, "prcpvol", prcpvol);
  2608. ds_hidden_drugreportinfo.setColumn(0, "patnm", patnm);
  2609. ds_hidden_drugreportinfo.setColumn(0, "fluidflag", fluidflag);
  2610. ds_hidden_drugreportinfo.setColumn(0, "mixno", mixno);
  2611. ds_hidden_drugreportinfo.setColumn(0, "mixyn", mixyn);
  2612. ds_hidden_drugreportinfo.setColumn(0, "carecfact", carecfact);
  2613. ds_hidden_drugreportinfo.setColumn(0, "carecfactcd", carecfactcd);
  2614. ds_hidden_drugreportinfo.setColumn(0, "carecfactnm", carecfactnm);
  2615. ds_hidden_drugreportinfo.setColumn(0, "carebasedd", carebasedd);
  2616. ds_hidden_drugreportinfo.setColumn(0, "carebasetm", carebasetm);
  2617. if(execcarestatcd == "N" && pastexeccarestatcd == "N"){
  2618. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", "-");
  2619. }else{
  2620. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", execcarestatcd);
  2621. }
  2622. ds_hidden_drugreportinfo.setColumn(0, "prcpcd", prcpcd);
  2623. ds_hidden_drugreportinfo.setColumn(0, "carebasetmspec", carebasetmspec);
  2624. ds_hidden_drugreportinfo.setColumn(0, "acttimeflag", acttimeflag);
  2625. ds_hidden_drugreportinfo.setColumn(0, "execprcpuniqno", execprcpuniqno);
  2626. //-------------------------------------------
  2627. //현재일자(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  2628. ds_hidden_drugreportinfo.setColumn(0, "currentday", currentday);
  2629. //현재시간(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  2630. ds_hidden_drugreportinfo.setColumn(0, "currenttime", currenttime);
  2631. //-------------------------------------------
  2632. ds_hidden_drugreportinfo.setColumn(0, "iudflag", iudflag);
  2633. ds_hidden_drugreportinfo.setColumn(0, "pastexecdd", execdd);
  2634. ds_hidden_drugreportinfo.setColumn(0, "medrexecdd", medrexecdd);
  2635. ds_hidden_drugreportinfo.setColumn(0, "medrexectm", medrexectm);
  2636. ds_hidden_drugreportinfo.setColumn(0, "prcpclscd", prcpclscd);
  2637. ds_hidden_drugreportinfo.setColumn(0, "drugrateqty", drugrateqty);
  2638. ds_hidden_drugreportinfo.setColumn(0, "spcldrug", spcldrug);
  2639. ds_hidden_drugreportinfo.setColumn(0, "prcpkindnm", prcpkindnm);
  2640. ds_hidden_drugreportinfo.setColumn(0, "orddrnm", orddrnm);
  2641. ds_hidden_drugreportinfo.setColumn(0, "prcpnm", prcpnm);
  2642. ds_hidden_drugreportinfo.setColumn(0, "signflagyn", signflagyn);
  2643. if(iudflag == "-" && signflagyn == "Y" && signflag == "N"){
  2644. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "1");//임시저장 후 인증저장
  2645. }else if(signflagyn == "N"){
  2646. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "0");//임시저장
  2647. }else if(signflagyn == "Y"){
  2648. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "2");//인증저장
  2649. }else{}
  2650. //--------------------------(20080921)
  2651. //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  2652. //건별인증은 dispyn ='N'
  2653. //하단의 일자별인 경우만 보임
  2654. //20081204 APP에서 인증저장시에도 다시 한번 더 반영함
  2655. ds_hidden_drugreportinfo.setColumn(0, "dispyn", "N");
  2656. //--------------------------(20080921)
  2657. if(signflagyn == "Y"){
  2658. //----------------(20081112)
  2659. //sign_row = inst_cnt; //저장대상으므로 inst_cnt를 사용하면 안됨
  2660. sign_row = i; //row
  2661. sign_saverow = i;
  2662. sign_savecol = j;
  2663. //signdispdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/dispdd"); //화면상의 일자
  2664. //----------------(20081112)
  2665. //-------------(20080924)
  2666. if(Sign.signprocess() == false){//인증저장 데이터 생성
  2667. //Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리(20080921)
  2668. return;
  2669. }
  2670. //------------(20080924)
  2671. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리(20080921)
  2672. ds_hidden_drugreportinfo.setColumn(0, "signbfcnts", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  2673. ds_hidden_drugreportinfo.setColumn(0, "signaftcnts", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  2674. }else{
  2675. ds_hidden_drugreportinfo.setColumn(0, "signbfcnts", ""); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  2676. ds_hidden_drugreportinfo.setColumn(0, "signaftcnts", ""); // 공인인증 처리후 데이터
  2677. }
  2678. //---------------------------(20080802)
  2679. // 현재시간설정정보
  2680. ds_hidden_drugreportinfo.setColumn(0, "currentflag", currentflag); //현재시간설정flag
  2681. ds_hidden_drugreportinfo.setColumn(0, "currentdd", currentdd); //현재시간설정시일자
  2682. ds_hidden_drugreportinfo.setColumn(0, "currenttm", currenttm); //현재시간설정시시간
  2683. //---------------------------(20080802)
  2684. //---------------------------(20081226)
  2685. // 투약시간변경
  2686. ds_hidden_drugreportinfo.setColumn(0, "carebasedd", carebasedd); //투약시간변경
  2687. ds_hidden_drugreportinfo.setColumn(0, "carebasetm", carebasetm); //투약시간변경
  2688. //---------------------------(20081226)
  2689. //---------------------------(20081211)
  2690. ds_hidden_drugreportinfo.setColumn(0, "preantiyn", preantiyn); //예방적항생제
  2691. //---------------------------(20081211)
  2692. ds_send_savedata_drugreportinfo.addRow();
  2693. ds_send_savedata_drugreportinfo.copyRow(inst_cnt, ds_hidden_drugreportinfo, 0);
  2694. inst_cnt++;
  2695. }
  2696. }
  2697. }
  2698. // ////////////alert("중지"); //-----1011
  2699. // return;
  2700. //-----------------------(20080820)
  2701. //return;
  2702. //-----------------------(20080820)
  2703. ////alert("저장전"+inst_cnt);
  2704. if(inst_cnt > 0){
  2705. /*-----------------------------------
  2706. 3#에서 1개만 수정해도 전부(3개) 시간대가 들어감(기존프로그램)
  2707. UPDATE emr.mnrhmedr
  2708. SET carebasedd = '20081216' :절대일자
  2709. ,carebasetm = '100000' :절대시간
  2710. ,carebaseid = 'DEV503'
  2711. ,carebasetmspec = '1000 1200 4200' :계산시간
  2712. ,lastupdtrid = 'DEV503'
  2713. ,lastupdtdt = SYSTIMESTAMP
  2714. WHERE execprcpuniqno = 300369816
  2715. AND instcd = '012'
  2716. mixno
  2717. 3#에서 mixno 지정시 3row에 반영
  2718. */
  2719. dsf_setDefaultVal(ds_send_savedata_drugreportinfo, "all");
  2720. dsf_createDsRow("ds_tempuserInfo", [{col: "uiUserId", val:sysf_getUserId() }]);
  2721. var oParam = {};
  2722. oParam.id = "TXMNR08001";
  2723. oParam.service = "caremedirecapp.CareMediRec";
  2724. oParam.method = "reqExeChangeTimeInfo";
  2725. oParam.inds = "reqcond=ds_send_savedata_drugreportinfo tempUserInfo=ds_tempuserInfo";
  2726. oParam.outds = "";
  2727. oParam.async = false;
  2728. oParam.callback = "cf_TXMNR08001";
  2729. tranf_submit(oParam);
  2730. if( arErrorCode.pop("TXMNR08001") > -1 ){
  2731. sysf_messageBox("성공적으로","I001");
  2732. //-----------------------------------------------(20080901)
  2733. // 투약기록을 일자별로 XLST를 만들기 위해서
  2734. //java.sql.SQLException: ORA-01400: NULL을 ("EMR"."MRIMESPI"."SIGNGENRFLAG") 안에 삽입할 수 없습니다
  2735. //himed.his.emr.emrreclib.elctcert.dao.ElctCertMngtDAOImpl.insElctCertInfo() at line 128 in ElctCertMngtDAOImpl.java
  2736. //오류로 임시로막음
  2737. //-----------------------------------------------
  2738. //////////////////alert("test");
  2739. //--------------------------(20080917)
  2740. //Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  2741. //--------------------------(20080917)
  2742. fnWorkddSign(signDates);
  2743. //-----------------------------------------------(20080901)
  2744. }
  2745. fClickDrugListBefore(); //------------(20081031)
  2746. if(screen_mode == "pat"){
  2747. fClickDrugList(screen_mode, group3.swtpatList.pat.grd_patlist.currentrow);
  2748. }else if(screen_mode == "act"){
  2749. fClickDrugList(screen_mode, group3.swtpatList.act.grd_actlist.currentrow);
  2750. fGetActList();
  2751. }else{}
  2752. fClickDrugListAfter(); //------------(20081031)
  2753. }else{
  2754. sysf_messageBox("저장 할 내용이","I004");
  2755. return;
  2756. }
  2757. //-----------------------(20080819)
  2758. //저장한후 현재시각을 초기화 한다.
  2759. ds_main_cond.setColumn(0, "acttimeflag", "");
  2760. ds_main_cond.setColumn(0, "currentday", "");
  2761. ds_main_cond.setColumn(0, "currenttime", "");
  2762. //-----------------------(20080819)
  2763. }
  2764. function cf_TXMNR08001(sSvcId, nErrorCode, sErrorMsg) {
  2765. arErrorCode.push(sSvcId, nErrorCode);
  2766. }
  2767. //------------------------------------------(20080902)
  2768. function fnWorkddSign(signDates) {
  2769. //-----------------------------------------------(20080901)
  2770. // 투약기록을 일자별로 XLST를 만들기 위해서
  2771. //-----------------------------------------------
  2772. var sPathSign = "/root/signinfo";
  2773. //----------------------(20081012)
  2774. var pGrd = group3.swtpatList.pat.grd_patlist;
  2775. if(screen_mode == "act") pGrd = group3.swtpatList.act.grd_actlist;
  2776. //----------------------(20081012)
  2777. var signDate = "";
  2778. for( var i=0 ; i<signDates.length ; i++ ){
  2779. signDate = "" + signDates[i];
  2780. if( !utlf_isNull(signDate) ){
  2781. signDate = signDate.replace("-","");
  2782. var spid = ds_main_wardpatinfo_wardpatlist.getColumn(pGrd.currentrow, "pid"); //등록번호 (필수)
  2783. var sinstcd = "";//model.getValue("/root/main/wardpatinfo/wardpatlist/instcd"); //기관코드 (사용X)
  2784. var sindd = ds_main_wardpatinfo_wardpatlist.getColumn(pGrd.currentrow, "indd"); //입원일자 (필수)
  2785. var scretno = ds_main_wardpatinfo_wardpatlist.getColumn(pGrd.currentrow, "cretno");//생성번호 (사용X)
  2786. var sprcpdd = ""; //처방일자 (PRN시 필수)
  2787. var sprcpno = ""; //처방번호 (확인사항)
  2788. var sworkdd = signDate; //model.getValue("/root/main/cond/orddd"); //투약일(일자그룹일때만 (필수)
  2789. var slistflag = "90"; //작업구분 (필수)
  2790. var snursnm = sysf_getUserName(); //간호사명추가 (필수)
  2791. var shngnm = ds_main_wardpatinfo_wardpatlist.getColumn(pGrd.currentrow, "patnm"); //환자명추가 (필수)
  2792. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  2793. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  2794. ds_signinfo_reqsigncond.setColumn(0, "pid", spid); //desc="등록번호"
  2795. ds_signinfo_reqsigncond.setColumn(0, "instcd", sinstcd); //desc="기관코드"
  2796. ds_signinfo_reqsigncond.setColumn(0, "indd", sindd); //desc="입원일자"
  2797. ds_signinfo_reqsigncond.setColumn(0, "cretno", scretno); //desc="생성번호"
  2798. ds_signinfo_reqsigncond.setColumn(0, "prcpdd", sprcpdd); //desc="처방일자"
  2799. ds_signinfo_reqsigncond.setColumn(0, "prcpno", sprcpno); //desc="처방번호"
  2800. ds_signinfo_reqsigncond.setColumn(0, "workdd", sworkdd); //desc="투약일"
  2801. ds_signinfo_reqsigncond.setColumn(0, "listflag", slistflag); //desc="작업구분"
  2802. ds_signinfo_reqsigncond.setColumn(0, "nursnm", snursnm); //desc="간호사명추가"
  2803. ds_signinfo_reqsigncond.setColumn(0, "hngnm", shngnm); //desc="환자명추가"
  2804. ds_signinfo_reqsigncond.setColumn(0, "medrexecdd", smedrexecdd); //desc="화면에서저장할투약일자"
  2805. ds_signinfo_reqsigncond.setColumn(0, "medrexectm", smedrexectm); //desc="화면에서저장할투약시간"
  2806. var pFlag = "Drug"; //저장구분 (Drug : 투약기록)
  2807. var pNode1 = "ds_signinfo_reqsigncond"; //조회할 조건 PATH(의미없음)
  2808. var pNode2 = "ds_signinfo_signdruginfo_signdruglist"; //Return 리스트 PATH
  2809. var pIoflag = ds_main_wardpatinfo_wardpatlist.getColumn(pGrd.currentrow, "ordtype"); //---(20080917)
  2810. fCare_SignNode(pFlag, pNode1, pNode2,spid,sindd,scretno,pIoflag);
  2811. //fCare_SignNode(pFlag, pNode1, pNode2, pPid, pIndd, pCretno, pIoflag){
  2812. }
  2813. }
  2814. }
  2815. //------------------------------------------(20080902)
  2816. /**
  2817. * @group :
  2818. * @ver : 2007.12.15
  2819. * @by : 최경용
  2820. * @---------------------------------------------------
  2821. * @type : function
  2822. * @access : public
  2823. * @desc : 투약기록 인증데이터 생성 함수
  2824. * @param :
  2825. * @param :
  2826. * @return :
  2827. * @---------------------------------------------------
  2828. */
  2829. //------투약기록용
  2830. function fMake_SignData(){
  2831. /*
  2832. <signinfo>
  2833. <signdata>
  2834. <pid>29953</pid>
  2835. <hngnm>T입0820</hngnm>
  2836. <prcpdd>20080821</prcpdd>
  2837. <execdd>20080821</execdd>
  2838. <prcpkindnm/>
  2839. <prcpmixno/>
  2840. <prcpcd>DSSL500</prcpcd>
  2841. <prcpnm>Disal tab. 500mg (Salsalate)</prcpnm>
  2842. <prcpvolnm>1500mg</prcpvolnm>
  2843. <prcpqtynm>3T</prcpqtynm>
  2844. <abbrnm>PO</abbrnm>
  2845. <exectm>130000</exectm>
  2846. <nursnm>김보성</nursnm>
  2847. <execcarestatnm>정상투약</execcarestatnm>
  2848. <carecfactnm> </carecfactnm>
  2849. <orddrnm>김만수</orddrnm>
  2850. </signdata>
  2851. </signinfo>
  2852. */
  2853. var execcarestatcd = ds_hidden_drugreportinfo.getColumn(0, "execcarestatcd");
  2854. var medrexecdd = ds_hidden_drugreportinfo.getColumn(0, "medrexecdd");
  2855. var medrexectm = ds_hidden_drugreportinfo.getColumn(0, "medrexectm");
  2856. //----------------------(20081112)
  2857. //var prcpvol = grd_druglist.labelMatrix((sign_row+1), 5);
  2858. //var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), 6);
  2859. //var prcpqty = grd_druglist.labelMatrix((sign_row+1), 7);
  2860. //var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), 8);
  2861. //var prcpvol = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpvol"));
  2862. //var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpvolunitflag"));
  2863. //var prcpqty = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpqty"));
  2864. //var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpqtyunitflag"));
  2865. //var prcptims = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcptims"));
  2866. //소숫점3자리에서 반올림
  2867. //prcptims = prcptims.replace("#","");
  2868. //prcpvol = fnRound(prcpvol/prcptims,3);
  2869. //prcpqty = fnRound(prcpqty/prcptims,3);
  2870. var objDsxWardDrugListPath = eval(xWardDrugListPath+sign_saverow+"for");
  2871. var prcpvol = objDsxWardDrugListPath.getColumn(sign_savecol, "execprcpvol");
  2872. var prcpvolunitflag = group3.grd_druglist.getCellText(sign_row, group3.grd_druglist.getBindCellIndex("body", "prcpvolunitflag"));
  2873. var prcpqty = objDsxWardDrugListPath.getColumn(sign_savecol, "execprcpqty");
  2874. var prcpqtyunitflag = group3.grd_druglist.getCellText(sign_row, group3.grd_druglist.getBindCellIndex("body", "prcpqtyunitflag"));
  2875. ////////////alert( prcpvol + "/" + prcpvolunitflag + "/" + prcpqty + "/" +prcpqtyunitflag);
  2876. //----------------------(20081112)
  2877. ds_send_signinfo_signdata.setColumn(0, "pid", ds_hidden_drugreportinfo.getColumn(0, "pid"));
  2878. ds_send_signinfo_signdata.setColumn(0, "hngnm", ds_hidden_drugreportinfo.getColumn(0, "patnm"));
  2879. ds_send_signinfo_signdata.setColumn(0, "prcpdd", ds_hidden_drugreportinfo.getColumn(0, "prcpdd")); //처방일자
  2880. if(medrexecdd == "00000000"){ //투약일자
  2881. ds_send_signinfo_signdata.setColumn(0, "execdd", "");
  2882. }else{
  2883. ds_send_signinfo_signdata.setColumn(0, "execdd", medrexecdd);
  2884. }
  2885. /*
  2886. ,CASE WHEN a.careprnexecflag = 'P' THEN 'PRN' ELSE '' END || ' ' ||
  2887. CASE WHEN a.anticncrprtlno <> 0 THEN '항암' ELSE '' END || ' ' ||
  2888. CASE WHEN a.dccountyn = 'Y' AND a.selfdrugflag = 'Y' THEN 'self D/C'
  2889. WHEN a.dccountyn = 'Y' then 'D/C'
  2890. WHEN a.selfdrugflag = 'Y' then 'self'
  2891. END prcpkindnm
  2892. //처방종류명 (다른업무에서 투약기록관련인증정보를 생성시 어려운 항목
  2893. */
  2894. ds_send_signinfo_signdata.setColumn(0, "prcpkindnm", ds_hidden_drugreportinfo.getColumn(0, "prcpkindnm"));
  2895. ds_send_signinfo_signdata.setColumn(0, "prcpmixno", ds_hidden_drugreportinfo.getColumn(0, "mixno")); //MIXNO
  2896. ds_send_signinfo_signdata.setColumn(0, "prcpcd", ds_hidden_drugreportinfo.getColumn(0, "prcpcd")); //처방코드
  2897. ds_send_signinfo_signdata.setColumn(0, "prcpnm", ds_hidden_drugreportinfo.getColumn(0, "prcpnm")); //처방명
  2898. ds_send_signinfo_signdata.setColumn(0, "prcpvolnm", prcpvol + prcpvolunitflag); //용량단위명칭(용량+용량단위명칭)
  2899. ds_send_signinfo_signdata.setColumn(0, "prcpqtynm", prcpqty + prcpqtyunitflag); //수량단위명칭(수량+수량단위명칭)
  2900. //투여방법약어명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  2901. //-----------------(20081112)
  2902. //model.makeValue("/root/send/signinfo/signdata/abbrnm", grd_druglist.labelMatrix((sign_row+1), 10));
  2903. ds_send_signinfo_signdata.setColumn(0, "abbrnm", group3.grd_druglist.getCellText(sign_row, group3.grd_druglist.getBindCellIndex("body", "abbrnm")));
  2904. //-----------------
  2905. if(medrexectm == "000000"){ //투약시간
  2906. ds_send_signinfo_signdata.setColumn(0, "exectm", "");
  2907. }else{
  2908. ds_send_signinfo_signdata.setColumn(0, "exectm", medrexectm);
  2909. }
  2910. ds_send_signinfo_signdata.setColumn(0, "nursnm", sysf_getUserName()); //간호사명칭
  2911. if( utlf_isNull(execcarestatcd) ){
  2912. execcarestatcd = "N";
  2913. }
  2914. //미확인,정상투약,투약X-반환가능,투약X-반환불가,퇴원당일남은약
  2915. //(다른업무에서 투약기록관련인증정보를 생성시 정상투약,)
  2916. ds_send_signinfo_signdata.setColumn(0, "execcarestatnm", ds_hidden_actmenu_menu.getColumn(ds_hidden_actmenu_menu.findRow("cd", execcarestatcd), "nm"));
  2917. //간호사REMARK CODE에 대한 REMARK 명칭((다른업무에서 투약기록관련인증정보를 생성시 공백)
  2918. ds_send_signinfo_signdata.setColumn(0, "carecfactnm", ds_hidden_drugreportinfo.getColumn(0, "carecfactnm"));
  2919. //진료의명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  2920. ds_send_signinfo_signdata.setColumn(0, "orddrnm", ds_hidden_drugreportinfo.getColumn(0, "orddrnm"));
  2921. Sign.addnode("/signdata", ds_send_signinfo_signdata.saveXML());
  2922. //Sign.signedInfos[1] 는 없음
  2923. //////////////////////alert("fmake_signdata"+ Sign.signedInfos[1] );
  2924. }
  2925. //----------투약기록-INTERFACE용 (test완료)
  2926. //TEST용
  2927. //function fMake_SignData_interface(){
  2928. //
  2929. // ////////////////////alert("fMake_SignData---------시작");
  2930. // /*
  2931. // <signinfo>
  2932. // <signdata>
  2933. // <pid>29953</pid>
  2934. // <hngnm>T입0820</hngnm>
  2935. // <prcpdd>20080821</prcpdd>
  2936. // <execdd>20080821</execdd>
  2937. // <prcpkindnm/>
  2938. // <prcpmixno/>
  2939. // <prcpcd>DSSL500</prcpcd>
  2940. // <prcpnm>Disal tab. 500mg (Salsalate)</prcpnm>
  2941. // <prcpvolnm>1500mg</prcpvolnm>
  2942. // <prcpqtynm>3T</prcpqtynm>
  2943. // <abbrnm>PO</abbrnm>
  2944. // <exectm>130000</exectm>
  2945. // <nursnm>김보성</nursnm>
  2946. // <execcarestatnm>정상투약</execcarestatnm>
  2947. // <carecfactnm> </carecfactnm>
  2948. // <orddrnm>김만수</orddrnm>
  2949. // </signdata>
  2950. // </signinfo>
  2951. // */
  2952. //
  2953. // var ssigndruglist = "/root/signinfo/signdruginfo/signdruglist";
  2954. //
  2955. // var spid = model.getValue(ssigndruglist + "[" + sSignRow + "]/pid");
  2956. // var shngnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/hngnm");
  2957. // var sprcpdd = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpdd");
  2958. // var sexecdd = model.getValue(ssigndruglist + "[" + sSignRow + "]/execdd");
  2959. // /*
  2960. // ,CASE WHEN a.careprnexecflag = 'P' THEN 'PRN' ELSE '' END || ' ' ||
  2961. // CASE WHEN a.anticncrprtlno <> 0 THEN '항암' ELSE '' END || ' ' ||
  2962. // CASE WHEN a.dccountyn = 'Y' AND a.selfdrugflag = 'Y' THEN 'self D/C'
  2963. // WHEN a.dccountyn = 'Y' then 'D/C'
  2964. // WHEN a.selfdrugflag = 'Y' then 'self'
  2965. // END prcpkindnm
  2966. // //처방종류명 (다른업무에서 투약기록관련인증정보를 생성시 어려운 항목
  2967. // */
  2968. // var sprcpkindnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpkindnm");
  2969. // var sprcpmixno = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpmixno");
  2970. // var sprcpcd = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpcd");
  2971. // var sprcpnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpnm");
  2972. // var sprcpvolnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpvolnm");
  2973. // var sprcpqtynm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpqtynm");
  2974. // var sabbrnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/abbrnm");
  2975. // var sexectm = model.getValue(ssigndruglist + "[" + sSignRow + "]/exectm");
  2976. // var snursnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/nursnm");
  2977. // var sexeccarestatnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/execcarestatnm");
  2978. // var scarecfactnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/carecfactnm");
  2979. // var sorddrnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/orddrnm");
  2980. //
  2981. // model.resetInstanceNode("/root/send/signinfo/signdata");
  2982. // model.makeValue("/root/send/signinfo/signdata/pid", spid );
  2983. // model.makeValue("/root/send/signinfo/signdata/hngnm", shngnm );
  2984. // model.makeValue("/root/send/signinfo/signdata/prcpdd", sprcpdd ); //처방일자
  2985. //
  2986. // if(sexecdd == "00000000"){ //투약일자
  2987. // model.makeValue("/root/send/signinfo/signdata/execdd", "");
  2988. // }else{
  2989. // model.makeValue("/root/send/signinfo/signdata/execdd", sexecdd);
  2990. // }
  2991. //
  2992. // model.makeValue("/root/send/signinfo/signdata/prcpkindnm", sprcpkindnm );
  2993. // model.makeValue("/root/send/signinfo/signdata/prcpmixno", sprcpmixno ); //MIXNO
  2994. //
  2995. // model.makeValue("/root/send/signinfo/signdata/prcpcd", sprcpcd ); //처방코드
  2996. // model.makeValue("/root/send/signinfo/signdata/prcpnm", sprcpnm ); //처방명
  2997. // model.makeValue("/root/send/signinfo/signdata/prcpvolnm", sprcpvolnm ); //용량단위명칭(용량+용량단위명칭)
  2998. // model.makeValue("/root/send/signinfo/signdata/prcpqtynm", sprcpqtynm ); //수량단위명칭(수량+수량단위명칭)
  2999. // //투여방법약어명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3000. // model.makeValue("/root/send/signinfo/signdata/abbrnm", sabbrnm );
  3001. //
  3002. // if(sexectm == "000000"){ //투약시간
  3003. // model.makeValue("/root/send/signinfo/signdata/exectm", "");
  3004. // }else{
  3005. // model.makeValue("/root/send/signinfo/signdata/exectm", sexectm);
  3006. // }
  3007. // model.makeValue("/root/send/signinfo/signdata/nursnm", snursnm); //간호사명칭
  3008. // if(sexeccarestatnm == "") sexeccarestatnm = "N";
  3009. //
  3010. // //미확인,정상투약,투약X-반환가능,투약X-반환불가,퇴원당일남은약
  3011. // //(다른업무에서 투약기록관련인증정보를 생성시 정상투약,)
  3012. // model.makeValue("/root/send/signinfo/signdata/execcarestatnm", sexeccarestatnm);
  3013. // //간호사REMARK CODE에 대한 REMARK 명칭((다른업무에서 투약기록관련인증정보를 생성시 공백)
  3014. // model.makeValue("/root/send/signinfo/signdata/carecfactnm", scarecfactnm);
  3015. // //진료의명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3016. // model.makeValue("/root/send/signinfo/signdata/orddrnm", sorddrnm);
  3017. // //--------------------------(20080902)
  3018. // //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  3019. // //건별인증은 dispyn ='N'
  3020. // model.makeValue("/root/send/signinfo/signdata/dispyn", "N");
  3021. // //--------------------------(20080902)
  3022. //
  3023. // Sign.addnode("/root/send/signinfo/signdata");
  3024. // ////////////////////alert("fMake_SignData---------종료");
  3025. // //Sign.signedInfos[1] 는 없음
  3026. // //////////////////////alert("fmake_signdata"+ Sign.signedInfos[1] );
  3027. //}
  3028. //원본(20080825)
  3029. //function fMake_SignData_OLD(){
  3030. //
  3031. // var execcarestatcd = model.getValue("/root/hidden/drugreportinfo/execcarestatcd");
  3032. // var medrexecdd = model.getValue("/root/hidden/drugreportinfo/medrexecdd");
  3033. // var medrexectm = model.getValue("/root/hidden/drugreportinfo/medrexectm");
  3034. // var prcpvol = grd_druglist.labelMatrix((sign_row+1), 5);
  3035. // var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), 6);
  3036. // var prcpqty = grd_druglist.labelMatrix((sign_row+1), 7);
  3037. // var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), 8);
  3038. // model.resetInstanceNode("/root/send/signinfo/signdata");
  3039. // model.makeValue("/root/send/signinfo/signdata/pid", model.getValue("/root/hidden/drugreportinfo/pid"));
  3040. // model.makeValue("/root/send/signinfo/signdata/hngnm", model.getValue("/root/hidden/drugreportinfo/patnm"));
  3041. // model.makeValue("/root/send/signinfo/signdata/prcpdd", model.getValue("/root/hidden/drugreportinfo/prcpdd"));
  3042. // if(medrexecdd == "00000000"){
  3043. // model.makeValue("/root/send/signinfo/signdata/execdd", "");
  3044. // }else{
  3045. // model.makeValue("/root/send/signinfo/signdata/execdd", medrexecdd);
  3046. // }
  3047. // model.makeValue("/root/send/signinfo/signdata/prcpkindnm", model.getValue("/root/hidden/drugreportinfo/prcpkindnm"));
  3048. // model.makeValue("/root/send/signinfo/signdata/prcpmixno", model.getValue("/root/hidden/drugreportinfo/mixno"));
  3049. // model.makeValue("/root/send/signinfo/signdata/prcpcd", model.getValue("/root/hidden/drugreportinfo/prcpcd"));
  3050. // model.makeValue("/root/send/signinfo/signdata/prcpnm", model.getValue("/root/hidden/drugreportinfo/prcpnm"));
  3051. // model.makeValue("/root/send/signinfo/signdata/prcpvolnm", prcpvol + prcpvolunitflag);
  3052. // model.makeValue("/root/send/signinfo/signdata/prcpqtynm", prcpqty + prcpqtyunitflag);
  3053. // model.makeValue("/root/send/signinfo/signdata/abbrnm", grd_druglist.labelMatrix((sign_row+1), 10));
  3054. // if(medrexectm == "000000"){
  3055. // model.makeValue("/root/send/signinfo/signdata/exectm", "");
  3056. // }else{
  3057. // model.makeValue("/root/send/signinfo/signdata/exectm", medrexectm);
  3058. // }
  3059. // model.makeValue("/root/send/signinfo/signdata/nursnm", getUserName());
  3060. // if(execcarestatcd == ""){
  3061. // execcarestatcd = "N";
  3062. // }
  3063. // model.makeValue("/root/send/signinfo/signdata/execcarestatnm", model.getValue("/root/hidden/actmenu/menu[cd ='" + execcarestatcd + "']/nm"));
  3064. // model.makeValue("/root/send/signinfo/signdata/carecfactnm", model.getValue("/root/hidden/drugreportinfo/carecfactnm"));
  3065. // model.makeValue("/root/send/signinfo/signdata/orddrnm", model.getValue("/root/hidden/drugreportinfo/orddrnm"));
  3066. // Sign.addnode("/root/send/signinfo/signdata");
  3067. //}
  3068. /**
  3069. * @group :
  3070. * @ver : 2007.06.25
  3071. * @by : 최경용
  3072. * @---------------------------------------------------
  3073. * @type : function
  3074. * @access : public
  3075. * @desc : 미투약 환자 리스트 조회
  3076. * @param :
  3077. * @return :
  3078. * @---------------------------------------------------
  3079. */
  3080. function fGetActList(){
  3081. var pid = "";
  3082. var indd = "";
  3083. var cretno = "";
  3084. var comppid = "";
  3085. var compprcpdd = "";
  3086. var prcptims = "";
  3087. var prcpdd = "";
  3088. var row = -1;
  3089. var drugtmspec = "";
  3090. var calcdate = "";
  3091. var prcpdd_Array = new Array;
  3092. var pid_Array = new Array;
  3093. var cnt = 1;
  3094. if( ds_main_wardactinfo_wardactlist.rowcount > 0 ){
  3095. pid = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "pid");
  3096. indd = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "indd");
  3097. cretno = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "cretno");
  3098. prcpdd = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "prcpdd");
  3099. }
  3100. //model.resetInstanceNode("/root/send/reqdata");
  3101. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  3102. var oParam = {};
  3103. oParam.id = "TRMNR00605";
  3104. oParam.service = "caremedirecapp.CareMediRec";
  3105. oParam.method = "reqGetWardActList";
  3106. oParam.inds = "reqcond=ds_send_reqdata";
  3107. oParam.outds = "ds_main_wardactinfo_wardactlist=wardactlist";
  3108. oParam.async = false;
  3109. //oParam.callback = "cf_TRMNR00605";
  3110. tranf_submit(oParam);
  3111. ds_main_wardactinfo_wardactlist.rowposition = -1;
  3112. for( var i=0 ; i<ds_main_wardactinfo_wardactlist.rowcount ; i++ ){
  3113. if( pid == ds_main_wardactinfo_wardactlist.getColumn(i, "pid") &&
  3114. indd == ds_main_wardactinfo_wardactlist.getColumn(i, "indd") &&
  3115. cretno == ds_main_wardactinfo_wardactlist.getColumn(i, "cretno") &&
  3116. prcpdd == ds_main_wardactinfo_wardactlist.getColumn(i, "prcpdd") ){
  3117. row = i;
  3118. }
  3119. }
  3120. ds_main_wardactinfo_wardactlist.rowposition = row;
  3121. }
  3122. /**
  3123. * @group :
  3124. * @ver : 2007.06.25
  3125. * @by : 최경용
  3126. * @---------------------------------------------------
  3127. * @type : function
  3128. * @access : public
  3129. * @desc : 투약카드 출력(A2:경구, A4:외용, A61:주사, A60:수액)
  3130. * @param :
  3131. * @return :
  3132. * @---------------------------------------------------
  3133. */
  3134. function fClickDrugPrint(){
  3135. ds_send_medicard_warddruglist.clearData();
  3136. var prt_row = ds_temp.getColumn(0, "row");
  3137. var prt_col = ds_temp.getColumn(0, "col");
  3138. if( utlf_isNull(prt_row) || prt_row > 4 ){
  3139. sysf_messageBox("1 ~ 4줄만 입력할수 있습니다.","I999");
  3140. return;
  3141. }
  3142. if( utlf_isNull(prt_col) || prt_col > 4 ){
  3143. sysf_messageBox("1 ~ 4 칸만 입력할수 있습니다.","I999");
  3144. return;
  3145. }
  3146. var rows = group3.grd_druglist.rowcount;
  3147. var prcpclscd = "";
  3148. var prcptims = "";
  3149. var mthdcd = "";
  3150. var prcpmixno = "";
  3151. var drugbasetmspec = "";
  3152. var medicardcnt = 1;//경구
  3153. //var medicardcnt5 = 1;//주사
  3154. //var medicardcnt7 = 1;//외용
  3155. var prtTims_Array = new Array;
  3156. var prtMthd_Array = new Array;
  3157. var prtBaseTims_Array = new Array;
  3158. var prtMix_Array = new Array;
  3159. var viewroomcd = "";
  3160. flagDsWarddruglist = true;
  3161. for( var i=0 ; i<rows ; i++ ){
  3162. if( ds_main_warddruginfo_warddruglist.getColumn(i, "check") == "1" ){
  3163. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  3164. tims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  3165. mthdcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "mthdcd"));
  3166. prcpmixno = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno"));
  3167. drugbasetmspec = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec"));
  3168. viewroomcd = group3.caption57.text; //20090629
  3169. if(prcpclscd == "A2"){//경구
  3170. if( isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd) == -1 ){
  3171. prtBaseTims_Array[medicardcnt] = drugbasetmspec;
  3172. prtMthd_Array[medicardcnt] = mthdcd;
  3173. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", medicardcnt);
  3174. medicardcnt++;
  3175. }else{
  3176. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd));
  3177. }
  3178. }
  3179. //if(prcpclscd == "A60" || prcpclscd == "A61"){//주사
  3180. if(prcpclscd == "A60"){//주사_의정부간호사 이언희선생님 요청으로 수액제외함_20090529(ByJA)
  3181. if( utlf_isNull(prcpmixno) || isSearchArrayIndex(prtMix_Array, prcpmixno) == -1){
  3182. prtMix_Array[medicardcnt] = prcpmixno;
  3183. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", medicardcnt);
  3184. medicardcnt++;
  3185. }else{
  3186. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", isSearchArrayIndex(prtMix_Array, prcpmixno));
  3187. }
  3188. }
  3189. if(prcpclscd == "A4"){//외용
  3190. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", medicardcnt);
  3191. medicardcnt++;
  3192. }
  3193. // 투약카드 출력 시 사용
  3194. var drugtmspect = "";
  3195. var drugtmspectime = "";
  3196. var tmpdrugtmspect = "";
  3197. var drugtmspectlist = "";
  3198. var tims = "";
  3199. var space;
  3200. drugtmspect = ds_main_warddruginfo_warddruglist.getColumn(i, "drugtmspec_recalc1"); // drugbasetmspec
  3201. drugtmspect = drugtmspect.split(" ");
  3202. tims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  3203. // 횟수별 시간공백지정
  3204. if(tims < 4){
  3205. space = " ";
  3206. }else{
  3207. space = " ";
  3208. }
  3209. // Sort기능
  3210. var tempmin=0, tempmax=0;
  3211. for(var j=1; j<drugtmspect.length; j++){
  3212. if(Number(drugtmspect[j-1]) > Number(drugtmspect[j])){
  3213. tempmin = drugtmspect[j];
  3214. drugtmspect[j] = drugtmspect[j-1];
  3215. drugtmspect[j-1] = tempmin;
  3216. }
  3217. }
  3218. for(var j=0; j<drugtmspect.length; j++){
  3219. if(Number(drugtmspect[j]) > Number(drugtmspect[j+1])){
  3220. tempmax = drugtmspect[j];
  3221. drugtmspect[j] = drugtmspect[j+1];
  3222. drugtmspect[j+1] = tempmax;
  3223. }
  3224. }
  3225. for(var j=0; j<drugtmspect.length; j++){
  3226. if( !utlf_isNull(drugtmspect[j]) ){
  3227. tmpdrugtmspect = Number(drugtmspect[j]);
  3228. if(tmpdrugtmspect > 1200){
  3229. if(tmpdrugtmspect >= 1300){
  3230. tmpdrugtmspect = tmpdrugtmspect - 1200;
  3231. }
  3232. if(tmpdrugtmspect < 1000){
  3233. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  3234. }
  3235. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  3236. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "P" + space;
  3237. }else{
  3238. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "P" + space;
  3239. }
  3240. }else if(tmpdrugtmspect <= 1200){
  3241. if(tmpdrugtmspect < 1000){
  3242. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  3243. }
  3244. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  3245. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "A" + space;
  3246. }else{
  3247. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "A" + space;
  3248. }
  3249. }
  3250. }
  3251. dsf_makeValue(ds_main_warddruginfo_warddruglist, "tempdrugtmspeccal", "string", drugtmspectime, i);
  3252. } // end for 투약카드
  3253. } // end if check
  3254. } // end for
  3255. for( var j=0 ; j<rows ; j++ ){
  3256. dsf_makeValue(ds_main_warddruginfo_warddruglist, "last", "string", medicardcnt-1, j);
  3257. dsf_makeValue(ds_main_warddruginfo_warddruglist, "row", "string", ds_temp.getColumn(0, "row"), j);
  3258. dsf_makeValue(ds_main_warddruginfo_warddruglist, "col", "string", ds_temp.getColumn(0, "col"), j);
  3259. dsf_makeValue(ds_main_warddruginfo_warddruglist, "viewroomcd", "string", viewroomcd, j);
  3260. var nRow = ds_send_medicard_warddruglist.addRow();
  3261. ds_send_medicard_warddruglist.copyRow(nRow, ds_main_warddruginfo_warddruglist, j);
  3262. }
  3263. flagDsWarddruglist = false;
  3264. if(medicardcnt > 1){
  3265. var objDOM = rptf_createDOM(); // DOM 객체 설정
  3266. rptf_setNodeListToDOM(objDOM, "root/send/medicard/warddruglist", ds_send_medicard_warddruglist); // 데이터셋
  3267. rptf_setNodeListToDOM(objDOM, "root/send/medicard5/warddruglist", ds_send_medicard_warddruglist); // 데이터셋
  3268. var objParam = new Object();
  3269. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  3270. objParam.xml_data_XML2 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  3271. objParam.xml_data_XML3 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  3272. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  3273. rptf_exeReportPreview30(["RPMNR00600"],[objParam], option);
  3274. }else{
  3275. sysf_messageBox("투약카드 출력항목이 아닙니다","I");
  3276. }
  3277. }
  3278. /**
  3279. * @group :
  3280. * @ver : 2007.06.25
  3281. * @by : 최경용
  3282. * @---------------------------------------------------
  3283. * @type : function
  3284. * @access : public
  3285. * @desc : 문자열 검색(배열)
  3286. * @param :
  3287. * @return :
  3288. * @---------------------------------------------------
  3289. */
  3290. function isSearchArrayIndex2(baseCol_Array1, sData1, baseCol_Array2, sData2){
  3291. for( var i=0 ; i<=baseCol_Array1.length ; i++ ){
  3292. if( baseCol_Array1[i] == sData1 && baseCol_Array2[i] == sData2 ){
  3293. return i;
  3294. }
  3295. }
  3296. return -1;
  3297. }
  3298. /**
  3299. * @group :
  3300. * @ver : 2007.06.25
  3301. * @by : 최경용
  3302. * @---------------------------------------------------
  3303. * @type : function
  3304. * @access : public
  3305. * @desc : 수액라벨 출력
  3306. * @param :
  3307. * @return :
  3308. * @---------------------------------------------------
  3309. */
  3310. //------------(20080929로직변경됨)
  3311. function fClickHydPrint(){
  3312. ds_send_medicard8_warddruglist.clearData();
  3313. var rows = ds_main_warddruginfo_warddruglist.rowcount;
  3314. var prcpclscd = "";
  3315. var prcpmixno = "";
  3316. var prcptims = "";
  3317. var medicardcnt8 = 0;//라벨 출력 총 건수
  3318. var prtMix_Array = new Array;
  3319. var acctims = 0;
  3320. //-----------------(20080927)
  3321. var totcnt = "";
  3322. //-----------------(20080927)
  3323. //----------------------
  3324. //1-1. 자동체크하기1: 동일MIXNO가 체크되어 있으면 자동 체크하기
  3325. //----------------------
  3326. var chkMixnoi = "";
  3327. var chkMixnoj = "";
  3328. var chkflag = "";
  3329. var chkcnt = 0;
  3330. for( var i=0 ; i<rows ; i++ ){
  3331. chkflag = ds_main_warddruginfo_warddruglist.getColumn(i, "check");
  3332. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  3333. if( prcpclscd != "A61" ) continue;
  3334. if( chkflag != "1" ){ //체크가 안되어있는것 중에서
  3335. chkMixnoi = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  3336. if( !utlf_isNull(chkMixnoi) ){ //mixno가 있는경우
  3337. for( var j=0 ; j<rows ; j++ ){ //동일mix가 체크되어 있으면
  3338. chkMixnoj = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  3339. chkflag = ds_main_warddruginfo_warddruglist.getColumn(i, "check");
  3340. if( i != j && chkMixnoi == chkMixnoj && chkflag == "1" ){
  3341. ds_main_warddruginfo_warddruglist.setColumn(i, "check", "1"); //체크자신의 체크로 변경함
  3342. j=rows;
  3343. chkcnt ++;
  3344. }
  3345. }
  3346. }
  3347. }
  3348. }
  3349. if (chkcnt >0) {
  3350. sysf_messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n동일mixno의 다른 항목도 자동출력 선택 되었습니다. ","E999");
  3351. }
  3352. //----------------------
  3353. //1-2. 자동체크하기1: 출력대상아닌것은 체크풀기
  3354. //----------------------
  3355. chkMixnoi = "";
  3356. chkMixnoj = "";
  3357. chkflag = "";
  3358. chkcnt = 0;
  3359. var sapnoyndept = "";
  3360. var sapnoynall = "";
  3361. var sapnoyn = "";
  3362. var sapnoprtyn = "true";
  3363. for( var i=0 ; i<rows ; i++ ){
  3364. chkflag = ds_main_warddruginfo_warddruglist.getColumn(i, "check");
  3365. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  3366. if( prcpclscd != "A61" ) continue;
  3367. sapnoprtyn = "true"; //수액라벨출력 가능
  3368. if( chkflag == "1" ){ //체크되어있는것 중에서
  3369. sapnoyn = ds_main_warddruginfo_warddruglist.getColumn(i, "sapnoyn");
  3370. sapnoyndept = sapnoyn.substr(1,1); //수액기준정보자료에 수액 & 부서로 자료가 있는지 여부(0이면 없는경우)
  3371. sapnoynall = sapnoyn.substr(2,1); //수액기준정보자료에 수액 & 공통로 자료가 있는지 여부(0이면 없는경우)
  3372. if (sapnoyndept == "N") { //부서에 자료가 있는데 수액라벨출력 불가로 들어가 있는경우
  3373. sapnoprtyn = "false";
  3374. } else if (sapnoyndept == "0" && sapnoynall == "N") {//부서에 자료가 없고, 공통에 수액라벨출력 불가로 들어가 있는경우
  3375. sapnoprtyn = "false"; //수액라벨출력 불가
  3376. }
  3377. if (sapnoprtyn == "false") {
  3378. chkMixnoi = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  3379. if( !utlf_isNull(chkMixnoi) ){ //mixno가 있으면서
  3380. for( var j=0 ; j<rows ; j++ ){
  3381. chkMixnoj = ds_main_warddruginfo_warddruglist.getColumn(j, "prcpmixno");
  3382. if ( chkMixnoi == chkMixnoj ) { //같은 mixno이면 출력을 해제한다.
  3383. //model.setValue(xWardDrugListPath + "[" + j + "]/check","true");
  3384. ds_main_warddruginfo_warddruglist.setColumn(j, "check", "0") //1001
  3385. chkcnt++;
  3386. }
  3387. }
  3388. }
  3389. }
  3390. }
  3391. }
  3392. if (chkcnt >0) {
  3393. sysf_messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n수액기준정보에 수액no적용정보가 'N'로 설정된 자료가 있습니다. \n수액라벨출력을 해제합니다.","E999");
  3394. }
  3395. //----------------------
  3396. //3. 출력내역정리하기
  3397. //---------------------- 작업중...........
  3398. var subcnt = 0; //해당번호
  3399. var prcptimscalc ="";
  3400. var mainpre_prcpmixno = "999999999"; //main이전mixno
  3401. var subnow_prcpmixno = ""; //sub현재mixno
  3402. var startrow = "";
  3403. //전체
  3404. for( var i=0 ; i<rows ; i++ ){
  3405. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  3406. if(prcpclscd == "A61"){//수액
  3407. if( ds_main_warddruginfo_warddruglist.getColumn(i, "check") == "1" ){
  3408. prcpmixno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno"); //현재mixno
  3409. prcptims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  3410. prcptimscalc = ds_main_warddruginfo_warddruglist.getColumn(i, "calctims"); //------------(20080912)
  3411. startrow = i;
  3412. if (mainpre_prcpmixno != prcpmixno) { //main 이전mixno가 다른경우
  3413. //횟수만큼
  3414. for( var j=0 ; j<prcptimscalc ; j++ ){ //for(var j = 0; j < prcptims; j++){ //--------(20080912)
  3415. subcnt ++;
  3416. //startrow부터 같은 mixno를 찾는다.
  3417. for( var k=startrow ; k<rows ; k++ ){
  3418. subnow_prcpmixno = ds_main_warddruginfo_warddruglist.getColumn(k, "prcpmixno"); //현재mixno
  3419. if (prcpmixno != subnow_prcpmixno) {
  3420. // i = k; //main첨자를 sub에서 증가한 것 만큼 더한다.
  3421. // i--; //i가 전체 main loop로 돌아가면 자동 증가되므로 -1를 해준다.
  3422. k = rows; //k loop를 벗어남
  3423. } else {
  3424. //mixno가 연속해서 없는 경우에는 다른것으로 인식하기 위해서 구분한다.
  3425. if ( k > startrow && utlf_isNull(prcpmixno) && utlf_isNull(subnow_prcpmixno) ){
  3426. k=rows;
  3427. } else {
  3428. flagDsWarddruglist = true;
  3429. ds_main_warddruginfo_warddruglist.setColumn(k, "soding", subcnt);
  3430. flagDsWarddruglist = false;
  3431. var nRow = ds_send_medicard8_warddruglist.addRow();
  3432. ds_send_medicard8_warddruglist.copyRow(nRow, ds_main_warddruginfo_warddruglist, k);
  3433. }
  3434. }
  3435. }
  3436. }
  3437. mainpre_prcpmixno = prcpmixno;
  3438. if( utlf_isNull(prcpmixno) ) mainpre_prcpmixno = "999999999"; //mix no가 지정되지 않은것이 연속으로 되어 있는경우, 구분하기 위해서
  3439. }
  3440. }
  3441. }
  3442. }
  3443. //수액
  3444. if (subcnt > 0) {
  3445. //if(medicardcnt8 >0){
  3446. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  3447. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  3448. // 바코드OCX 생성(20080720)
  3449. // if(document.all("CommAX") == null){
  3450. // //lzzfMakeBrcdPrntObj("CommAX");
  3451. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  3452. // }
  3453. //------------------(20081024)
  3454. if( ds_data_setupinfo.rowcount <=0 ){
  3455. //messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  3456. //return;
  3457. //fGetBarCodeInfo(getScreenID());
  3458. ds_barcdprntsetup.clearData();
  3459. ds_send.setColumn(0, "scrnid", getScreenID());
  3460. var oParam = {};
  3461. oParam.id = "TRLLC90101";
  3462. oParam.service = "diagtestapplib.LisCommon";
  3463. oParam.method = "reqGetSetUpInfo";
  3464. oParam.inds = "scrnid=ds_send";
  3465. oParam.outds = "ds_barcdprntsetup=getSetUpInfo";
  3466. oParam.async = false;
  3467. //oParam.callback = "cf_TRLLC90101";
  3468. tranf_submit(oParam);
  3469. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  3470. //XML string 값을 파라미터로 넘김
  3471. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  3472. var sParamObj = new Object();
  3473. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  3474. var pXmlStr = ds_barcdprntsetup.getColumn(0, "prntsetupinfo");
  3475. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  3476. sysf_trace(succYn);
  3477. // => retrun DS
  3478. // : ds_data_setupinfo(prntkind, commkind)
  3479. // : ds_data_comm01(setupval)
  3480. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  3481. // : ds_data_comm03(setupval)
  3482. // : ds_data_blank(left, top)
  3483. // ------------------------------------------------------------------------------------------------------------
  3484. }
  3485. //------------------(20081024)
  3486. // LLZ001.JS참고
  3487. // messageBox("아래 사항을 확인후 재출력해주십시오."
  3488. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3489. // + " \n 2.케이블 확인"
  3490. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3491. //--------------------------------
  3492. fSetNursBarcdInfo("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //CommAX.PortOpen(true)이 있음(20081024)
  3493. //CommAX.CommPort = "7"; // 출력 Port
  3494. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  3495. var nodecnt = ds_send_medicard8_warddruglist.rowcount;
  3496. var prev_soding = "";
  3497. var prcpvol = "";
  3498. var prcpvolunitflag = "";
  3499. var prcpqty = "";
  3500. var prcpqtyunitflag = "";
  3501. var drugspdunitflag = "";
  3502. var labelcnt = 0;
  3503. var labelindex = 0;
  3504. var sDate = ds_main_cond.getColumn(0, "orddd").substr(4,2) + "/" + ds_main_cond.getColumn(0, "orddd").substr(6,2);
  3505. var soding = "";
  3506. var last = "";
  3507. var overcnt = 1;
  3508. var iHeight = 0;
  3509. var sTempData = "";
  3510. var sLabelData_Array = new Array;
  3511. var iLeft = Number(ds_data_blank.getColumn(0, "left"));
  3512. var iTop = Number(ds_data_blank.getColumn(0, "top"));
  3513. if( utlf_isNull(iLeft) || iLeft == "-" ){
  3514. iLeft = 0;
  3515. }
  3516. if( utlf_isNull(iTop) || iTop == "-" ){
  3517. iTop = 0;
  3518. }
  3519. /*수액 라벨 출력*/
  3520. var sLabelSndMsg = BP_StartFormat;
  3521. for( var j=0 ; j<nodecnt ; j++ ){
  3522. if( j == 1 || prev_soding != ds_send_medicard8_warddruglist.getColumn(j, "soding") ){
  3523. /*환자정보 라벨 출력*/
  3524. prev_soding = ds_send_medicard8_warddruglist.getColumn(j, "soding");
  3525. //-----------------------------(20080917)
  3526. //이름과 등록번호 크게 출력하기
  3527. //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  3528. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  3529. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  3530. sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + ds_main_patinfo.getColumn(0, "pid") + ")","");
  3531. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", ds_main_patinfo.getColumn(0, "roomcd"),"");
  3532. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", ds_main_patinfo.getColumn(0, "patnm"),"");
  3533. sLabelSndMsg += fCareBP_EndFormat(1);
  3534. //-----------------------------(20080917)
  3535. sLabelData_Array[labelindex] = sLabelSndMsg;
  3536. CommAX.SendMessage(sLabelSndMsg);
  3537. ////////////////alert(sLabelSndMsg);
  3538. labelindex = labelindex + 1;
  3539. sLabelSndMsg = BP_StartFormat;
  3540. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", ds_main_patinfo.getColumn(0, "roomcd"),"");
  3541. sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", ds_main_patinfo.getColumn(0, "patnm"),"");
  3542. sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", ds_main_patinfo.getColumn(0, "sexage"),"");
  3543. sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  3544. }
  3545. prcpvol = ds_send_medicard8_warddruglist.getColumn(j, "prcpvol");
  3546. prcpvolunitflag = ds_send_medicard8_warddruglist.getColumn(j, "prcpvolunitflag");
  3547. prcpqty = ds_send_medicard8_warddruglist.getColumn(j, "prcpqty");
  3548. prcpqtyunitflag = ds_send_medicard8_warddruglist.getColumn(j, "prcpqtyunitflag");
  3549. drugspdunitflag = ds_send_medicard8_warddruglist.getColumn(j, "drugspdunitflag");
  3550. //---------------(20080927)
  3551. //1일횟수로 나눈다.
  3552. var tims = ds_send_medicard8_warddruglist.getColumn(j, "tims");
  3553. if (tims > 0 ) {
  3554. prcpvol = prcpvol / tims;
  3555. prcpqty = prcpqty / tims;
  3556. }
  3557. //---------------(20080927)
  3558. sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag+ "/" + drugspdunitflag;
  3559. iHeight = ((labelcnt + overcnt) * 30) + 30;
  3560. //--------------------(20081118):원래대로
  3561. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 3, "N", ds_send_medicard8_warddruglist.getColumn(j, "prcpcdprt"), ""); //원본
  3562. ////처방 영문명, 폰트 축소(안됨)
  3563. //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 0, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  3564. //--------------------(20081118)
  3565. sLabelSndMsg += fCarePrintOutA(iLeft + 220, iTop + iHeight, 3, "N", sTempData, "");
  3566. labelcnt++;
  3567. soding = Number(ds_send_medicard8_warddruglist.getColumn(j, "soding"));
  3568. last = ds_send_medicard8_warddruglist.getColumn(j, "last");
  3569. /*수액정보 라벨 출력*/
  3570. if( j == nodecnt || prev_soding != ds_send_medicard8_warddruglist.getColumn(j+1, "soding") ){
  3571. // 총수 - 현위치
  3572. //----------(20080927)
  3573. //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  3574. sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", subcnt + " - " + soding, "");
  3575. //----------(20080927)
  3576. sLabelSndMsg += fCareBP_EndFormat(1);
  3577. sLabelData_Array[labelindex] = sLabelSndMsg;
  3578. CommAX.SendMessage(sLabelSndMsg);
  3579. ////////////////alert(sLabelSndMsg);
  3580. labelindex = labelindex + 1;
  3581. overcnt = 1;
  3582. labelcnt = 0;
  3583. sLabelSndMsg = BP_StartFormat;
  3584. }else if((labelcnt + overcnt) == 5){
  3585. sLabelSndMsg += fCareBP_EndFormat(1);
  3586. sLabelData_Array[labelindex] = sLabelSndMsg;
  3587. CommAX.SendMessage(sLabelSndMsg);
  3588. ////////////////alert(sLabelSndMsg);
  3589. labelindex = labelindex + 1;
  3590. overcnt = 0;
  3591. labelcnt = 0;
  3592. sLabelSndMsg = BP_StartFormat;
  3593. }else{}
  3594. }
  3595. /*순서 뒤집기*/
  3596. /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  3597. CommAX.SendMessage(sLabelData_Array[k]);
  3598. }*/
  3599. //-----------(20081031)
  3600. CommAX.PortOpen(false);
  3601. //CommAX.PortClose();
  3602. //-----------(20081031)
  3603. }else{
  3604. sysf_messageBox("수액이 존재하지","E007");
  3605. }
  3606. }
  3607. ///-----------------(20081210)
  3608. //약그리드 확대/축소 기능
  3609. function fDruglist_Extend(workflag){
  3610. switch (workflag) {
  3611. case "pat":
  3612. if ( group3.btnExtend.text == "축소") {
  3613. group3.btnExtend.text = "확대"; //축소되었으므로 확대시켜야한다.
  3614. //group3.swtpatList.visible = true ;
  3615. group3.grd_druglist.position.left = 220;
  3616. group3.grd_druglist.position.width = 970;
  3617. group3.bolall.position.left = 227;
  3618. }
  3619. break;
  3620. case "drug":
  3621. if ( group3.btnExtend.text == "축소") {
  3622. group3.btnExtend.text = "확대"; //축소되었으므로 확대시켜야한다.
  3623. //group3.swtpatList.visible = true ;
  3624. group3.grd_druglist.position.left = 220;
  3625. group3.grd_druglist.position.width = 970;
  3626. group3.bolall.position.left = 227;
  3627. } else {
  3628. group3.btnExtend.text = "축소"; //확대되었으므로 축소시켜야한다.
  3629. //group3.swtpatList.visible = false ;
  3630. group3.grd_druglist.position.left = 1;
  3631. group3.grd_druglist.position.width = 1185;
  3632. group3.bolall.position.left = 7;
  3633. }
  3634. break;
  3635. default :
  3636. break;
  3637. }
  3638. }
  3639. ///-----------------(20081210)
  3640. ///-----------------(20081208 임시작업분)
  3641. function fClickHydPrint_TEMP(){
  3642. return;
  3643. //수액라벨 간호itc에서 임시테스트용으로 작성한 소스임(20081209)
  3644. model.removeNodeSet("/root/send/medicard8/warddruglist");
  3645. var rows = grd_druglist.rows-1;
  3646. var prcpclscd = "";
  3647. var prcpmixno = "";
  3648. var prcptims = "";
  3649. var medicardcnt8 = 0;//라벨 출력 총 건수
  3650. var prtMix_Array = new Array;
  3651. var acctims = 0;
  3652. //-----------------(20080927)
  3653. var totcnt = "";
  3654. //-----------------(20080927)
  3655. //----------------------
  3656. //1-1. 자동체크하기1: 동일MIXNO가 체크되어 있으면 자동 체크하기
  3657. //----------------------
  3658. var chkMixnoi = "";
  3659. var chkMixnoj = "";
  3660. var chkflag = "";
  3661. var chkcnt = 0;
  3662. for(var i = 1; i < rows; i++){
  3663. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  3664. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  3665. if(prcpclscd != "A61") continue;
  3666. if (chkflag != "true" ) { //체크가 안되어있는것 중에서
  3667. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  3668. if ( chkMixnoi != "") { //mixno가 있는경우
  3669. for (var j=1;j<rows;j++) { //동일mix가 체크되어 있으면
  3670. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  3671. chkflag = model.getValue(xWardDrugListPath + "[" + j + "]/check");
  3672. if ( i != j && chkMixnoi == chkMixnoj && chkflag == "true") {
  3673. model.setValue(xWardDrugListPath + "[" + i + "]/check","true"); //체크자신의 체크로 변경함
  3674. j=rows;
  3675. chkcnt ++;
  3676. }
  3677. }
  3678. }
  3679. }
  3680. }
  3681. if (chkcnt >0) {
  3682. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n동일mixno의 다른 항목도 자동출력 선택 되었습니다. ","E999");
  3683. }
  3684. //----------------------
  3685. //1-2. 자동체크하기1: 출력대상아닌것은 체크풀기
  3686. //----------------------
  3687. chkMixnoi = "";
  3688. chkMixnoj = "";
  3689. chkflag = "";
  3690. chkcnt = 0;
  3691. var sapnoyndept = "";
  3692. var sapnoynall = "";
  3693. var sapnoyn = "";
  3694. var sapnoprtyn = "true";
  3695. for(var i = 1; i < rows; i++){
  3696. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  3697. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  3698. if(prcpclscd != "A61") continue;
  3699. sapnoprtyn = "true"; //수액라벨출력 가능
  3700. if (chkflag == "true" ) { //체크되어있는것 중에서
  3701. sapnoyn = model.getValue(xWardDrugListPath + "[" + i + "]/sapnoyn");
  3702. sapnoyndept = sapnoyn.substr(1,1); //수액기준정보자료에 수액 & 부서로 자료가 있는지 여부(0이면 없는경우)
  3703. sapnoynall = sapnoyn.substr(2,1); //수액기준정보자료에 수액 & 공통로 자료가 있는지 여부(0이면 없는경우)
  3704. if (sapnoyndept == "N") { //부서에 자료가 있는데 수액라벨출력 불가로 들어가 있는경우
  3705. sapnoprtyn = "false";
  3706. } else if (sapnoyndept == "0" && sapnoynall == "N") {//부서에 자료가 없고, 공통에 수액라벨출력 불가로 들어가 있는경우
  3707. sapnoprtyn = "false"; //수액라벨출력 불가
  3708. }
  3709. if (sapnoprtyn == "false") {
  3710. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  3711. if ( chkMixnoi != "") { //mixno가 있으면서
  3712. for (var j=1;j<rows;j++) {
  3713. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  3714. if ( chkMixnoi == chkMixnoj ) { //같은 mixno이면 출력을 해제한다.
  3715. //model.setValue(xWardDrugListPath + "[" + j + "]/check","true");
  3716. model.setValue(xWardDrugListPath + "[" + j + "]/check","false"); //1001
  3717. chkcnt++;
  3718. }
  3719. }
  3720. }
  3721. }
  3722. }
  3723. }
  3724. if (chkcnt >0) {
  3725. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n수액기준정보에 수액no적용정보가 'N'로 설정된 자료가 있습니다. \n수액라벨출력을 해제합니다.","E999");
  3726. }
  3727. //----------------------
  3728. //3. 출력내역정리하기
  3729. //---------------------- 작업중...........
  3730. var subcnt = 0; //해당번호
  3731. var prcptimscalc ="";
  3732. var mainpre_prcpmixno = "999999999"; //main이전mixno
  3733. var subnow_prcpmixno = ""; //sub현재mixno
  3734. var startrow = "";
  3735. //전체
  3736. for(var i = 1; i < rows; i++){
  3737. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  3738. if(prcpclscd == "A61"){//수액
  3739. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  3740. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno"); //현재mixno
  3741. prcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  3742. prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims"); //------------(20080912)
  3743. startrow = i;
  3744. if (mainpre_prcpmixno != prcpmixno) { //main 이전mixno가 다른경우
  3745. //횟수만큼
  3746. for(var j = 0; j < prcptimscalc; j++){ //for(var j = 0; j < prcptims; j++){ //--------(20080912)
  3747. subcnt ++;
  3748. //startrow부터 같은 mixno를 찾는다.
  3749. for(var k = startrow; k < rows; k++){
  3750. subnow_prcpmixno = model.getValue(xWardDrugListPath + "[" + k + "]/prcpmixno"); //현재mixno
  3751. if (prcpmixno != subnow_prcpmixno) {
  3752. // i = k; //main첨자를 sub에서 증가한 것 만큼 더한다.
  3753. // i--; //i가 전체 main loop로 돌아가면 자동 증가되므로 -1를 해준다.
  3754. k = rows; //k loop를 벗어남
  3755. } else {
  3756. //mixno가 연속해서 없는 경우에는 다른것으로 인식하기 위해서 구분한다.
  3757. if ( k > startrow && prcpmixno =="" && subnow_prcpmixno == "") {
  3758. k=rows;
  3759. } else {
  3760. model.setValue("/root/main/warddruginfo/warddruglist[" + k + "]/soding", subcnt);
  3761. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + k + "]");
  3762. }
  3763. }
  3764. }
  3765. }
  3766. mainpre_prcpmixno = prcpmixno;
  3767. if (prcpmixno == "") mainpre_prcpmixno = "999999999"; //mix no가 지정되지 않은것이 연속으로 되어 있는경우, 구분하기 위해서
  3768. }
  3769. }
  3770. }
  3771. }
  3772. //수액
  3773. if (subcnt > 0) {
  3774. //if(medicardcnt8 >0){
  3775. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  3776. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  3777. // 바코드OCX 생성(20080720)
  3778. // if(document.all("CommAX") == null){
  3779. // //lzzfMakeBrcdPrntObj("CommAX");
  3780. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  3781. // }
  3782. //------------------(20081024)
  3783. if ( getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo") <=0 ) {
  3784. //messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  3785. //return;
  3786. fGetBarCodeInfo(getScreenID());
  3787. }
  3788. //------------------(20081024)
  3789. // LLZ001.JS참고
  3790. // messageBox("아래 사항을 확인후 재출력해주십시오."
  3791. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3792. // + " \n 2.케이블 확인"
  3793. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3794. //--------------------------------
  3795. fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //CommAX.PortOpen(true)이 있음(20081024)
  3796. //CommAX.CommPort = "7"; // 출력 Port
  3797. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  3798. var nodecnt = getNodesetCount(xMediCard8);
  3799. var prev_soding = "";
  3800. var prcpvol = "";
  3801. var prcpvolunitflag = "";
  3802. var prcpqty = "";
  3803. var prcpqtyunitflag = "";
  3804. var labelcnt = 0;
  3805. var labelindex = 0;
  3806. var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  3807. var soding = "";
  3808. var last = "";
  3809. var overcnt = 1;
  3810. var iHeight = 0;
  3811. var sTempData = "";
  3812. var sLabelData_Array = new Array;
  3813. var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  3814. var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  3815. if(iLeft == "" || iLeft == "-"){
  3816. iLeft = 0;
  3817. }
  3818. if(iTop == "" || iTop == "-"){
  3819. iTop = 0;
  3820. }
  3821. /*수액 라벨 출력*/
  3822. var sLabelSndMsg = BP_StartFormat;
  3823. for(var j = 1; j <= nodecnt; j++){
  3824. //하단
  3825. if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  3826. /*환자정보 라벨 출력*/
  3827. prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  3828. //-----------------------------(20080917)
  3829. //이름과 등록번호 크게 출력하기
  3830. //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  3831. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  3832. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  3833. sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  3834. //-----------하단의 성별/나이(20081208)
  3835. sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  3836. //-----------
  3837. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  3838. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  3839. sLabelSndMsg += fCareBP_EndFormat(1);
  3840. //-----------------------------(20080917)
  3841. sLabelData_Array[labelindex] = sLabelSndMsg;
  3842. CommAX.SendMessage(sLabelSndMsg);
  3843. ////////////////alert(sLabelSndMsg);
  3844. labelindex = labelindex + 1;
  3845. sLabelSndMsg = BP_StartFormat;
  3846. //-----------상단의 등록번호(20081208)
  3847. //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  3848. //sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  3849. //sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  3850. //sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  3851. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  3852. sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  3853. sLabelSndMsg += fCarePrintOutH(iLeft + 180, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/pid"),"");
  3854. sLabelSndMsg += fCarePrintOutA(iLeft + 280, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  3855. sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  3856. //-----------
  3857. }
  3858. prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  3859. prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  3860. prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  3861. prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  3862. //---------------(20080927)
  3863. //1일횟수로 나눈다.
  3864. var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  3865. if (tims > 0 ) {
  3866. prcpvol = prcpvol / tims;
  3867. prcpqty = prcpqty / tims;
  3868. }
  3869. //---------------(20080927)
  3870. sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag;
  3871. iHeight = ((labelcnt + overcnt) * 30) + 30;
  3872. //--------------------(20081208)
  3873. //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcd"), ""); //원본
  3874. //sLabelSndMsg += fCarePrintOutA(iLeft + 220, iTop + iHeight, 3, "N", sTempData, "");
  3875. ////처방 영문명, 폰트 축소(안됨)
  3876. //1. 한글,특수문자(이미지)과 영문(텍스트)을 분리해서 보냄 ===> //이미지로 보내서 속도가 아주 떨어짐
  3877. //2. 한번에 보내는 버퍼용량이 제한이 있음
  3878. //대한5%포도당가생리식염액 1000ml (Dextrose, Electrolytes)
  3879. //sLabelSndMsg += fCarePrintOutH(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  3880. CommAX.SendMessage(sLabelSndMsg);
  3881. sLabelSndMsg = "";
  3882. sLabelSndMsg += fCarePrintOutH(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  3883. CommAX.SendMessage(sLabelSndMsg);
  3884. sLabelSndMsg = "";
  3885. sLabelSndMsg += fCarePrintOutA(iLeft + 230, iTop + iHeight, 3, "N", sTempData, "");
  3886. //--------------------(20081208)
  3887. labelcnt++;
  3888. soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  3889. last = model.getValue(xMediCard8 + "[" + j + "]/last");
  3890. /*수액정보 라벨 출력*/
  3891. if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  3892. // 총수 - 현위치
  3893. //----------(20080927)
  3894. //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  3895. //------------------(20081208)
  3896. var Mixno = "mixno";
  3897. var DrugTime = "10:00";
  3898. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 180, 1, "N", Mixno, "");
  3899. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 210, 1, "N", DrugTime, "");
  3900. //------------------(20081208)
  3901. sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", subcnt + " - " + soding, "");
  3902. //----------(20080927)
  3903. sLabelSndMsg += fCareBP_EndFormat(1);
  3904. sLabelData_Array[labelindex] = sLabelSndMsg;
  3905. CommAX.SendMessage(sLabelSndMsg);
  3906. ////////////////alert(sLabelSndMsg);
  3907. labelindex = labelindex + 1;
  3908. overcnt = 1;
  3909. labelcnt = 0;
  3910. sLabelSndMsg = BP_StartFormat;
  3911. }else if((labelcnt + overcnt) == 5){
  3912. sLabelSndMsg += fCareBP_EndFormat(1);
  3913. sLabelData_Array[labelindex] = sLabelSndMsg;
  3914. CommAX.SendMessage(sLabelSndMsg);
  3915. ////////////////alert(sLabelSndMsg);
  3916. labelindex = labelindex + 1;
  3917. overcnt = 0;
  3918. labelcnt = 0;
  3919. sLabelSndMsg = BP_StartFormat;
  3920. }else{}
  3921. }
  3922. /*순서 뒤집기*/
  3923. /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  3924. CommAX.SendMessage(sLabelData_Array[k]);
  3925. }*/
  3926. //-----------(20081031)
  3927. CommAX.PortOpen(false);
  3928. //CommAX.PortClose();
  3929. //-----------(20081031)
  3930. }else{
  3931. messageBox("수액이 존재하지","E007");
  3932. }
  3933. }
  3934. //----------(20080929이전버젼)
  3935. function fClickHydPrint_OLD(){
  3936. model.removeNodeSet("/root/send/medicard8/warddruglist");
  3937. var rows = grd_druglist.rows-1;
  3938. var prcpclscd = "";
  3939. var prcpmixno = "";
  3940. var prcptims = "";
  3941. var medicardcnt8 = 0;//라벨 출력 총 건수
  3942. var prtMix_Array = new Array;
  3943. var acctims = 0;
  3944. //-----------------(20080927)
  3945. var totcnt = "";
  3946. //-----------------(20080927)
  3947. for(var i = 1; i < rows; i++){
  3948. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  3949. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  3950. prcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  3951. //------------(20080912)
  3952. var prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims");
  3953. //------------(20080912)
  3954. if(prcpclscd == "A61"){//수액
  3955. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  3956. //--------(20080912)
  3957. //for(var j = 0; j < prcptims; j++){
  3958. for(var j = 0; j < prcptimscalc; j++){
  3959. //--------(20080912)
  3960. if((prcpmixno == "" || isSearchArrayIndex(prtMix_Array, prcpmixno) == -1) && j == 0){
  3961. medicardcnt8++;
  3962. prtMix_Array[medicardcnt8] = prcpmixno;
  3963. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", medicardcnt8 + acctims);
  3964. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  3965. //-----------------(20080927)
  3966. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  3967. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  3968. }
  3969. //-----------------(20080927)
  3970. }else if(j > 0){
  3971. acctims++;
  3972. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", Number(isSearchArrayIndex(prtMix_Array, prcpmixno)) + Number(acctims));
  3973. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  3974. //-----------------(20080927)
  3975. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  3976. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  3977. }
  3978. //-----------------(20080927)
  3979. }else{
  3980. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", Number(isSearchArrayIndex(prtMix_Array, prcpmixno)) + Number(acctims));
  3981. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  3982. //-----------------(20080927)
  3983. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  3984. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  3985. }
  3986. //-----------------(20080927)
  3987. }
  3988. }
  3989. }
  3990. }
  3991. }
  3992. //수액
  3993. if(medicardcnt8 >0){
  3994. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  3995. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  3996. // 바코드OCX 생성(20080720)
  3997. // if(document.all("CommAX") == null){
  3998. // //lzzfMakeBrcdPrntObj("CommAX");
  3999. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  4000. // }
  4001. if ( getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo") <=0 ) {
  4002. messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  4003. return;
  4004. }
  4005. // LLZ001.JS참고
  4006. // messageBox("아래 사항을 확인후 재출력해주십시오."
  4007. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4008. // + " \n 2.케이블 확인"
  4009. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4010. //--------------------------------
  4011. fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  4012. //CommAX.CommPort = "7"; // 출력 Port
  4013. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  4014. var nodecnt = getNodesetCount(xMediCard8);
  4015. var prev_soding = "";
  4016. var prcpvol = "";
  4017. var prcpvolunitflag = "";
  4018. var prcpqty = "";
  4019. var prcpqtyunitflag = "";
  4020. var labelcnt = 0;
  4021. var labelindex = 0;
  4022. var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  4023. var soding = "";
  4024. var last = "";
  4025. var overcnt = 1;
  4026. var iHeight = 0;
  4027. var sTempData = "";
  4028. var sLabelData_Array = new Array;
  4029. var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  4030. var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  4031. if(iLeft == "" || iLeft == "-"){
  4032. iLeft = 0;
  4033. }
  4034. if(iTop == "" || iTop == "-"){
  4035. iTop = 0;
  4036. }
  4037. /*수액 라벨 출력*/
  4038. var sLabelSndMsg = BP_StartFormat;
  4039. for(var j = 1; j <= nodecnt; j++){
  4040. if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  4041. /*환자정보 라벨 출력*/
  4042. prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  4043. //-----------------------------(20080917)
  4044. //이름과 등록번호 크게 출력하기
  4045. //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4046. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4047. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4048. sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4049. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4050. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4051. sLabelSndMsg += fCareBP_EndFormat(1);
  4052. //-----------------------------(20080917)
  4053. sLabelData_Array[labelindex] = sLabelSndMsg;
  4054. CommAX.SendMessage(sLabelSndMsg);
  4055. ////////////////alert(sLabelSndMsg);
  4056. labelindex = labelindex + 1;
  4057. sLabelSndMsg = BP_StartFormat;
  4058. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  4059. sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4060. sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  4061. sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  4062. }
  4063. prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  4064. prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  4065. prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  4066. prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  4067. //---------------(20080927)
  4068. //1일횟수로 나눈다.
  4069. var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  4070. if (tims > 0 ) {
  4071. prcpvol = prcpvol / tims;
  4072. prcpqty = prcpqty / tims;
  4073. }
  4074. //---------------(20080927)
  4075. sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag;
  4076. iHeight = ((labelcnt + overcnt) * 30) + 30;
  4077. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcd"), "");
  4078. sLabelSndMsg += fCarePrintOutA(iLeft + 220, iTop + iHeight, 3, "N", sTempData, "");
  4079. labelcnt++;
  4080. soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  4081. last = model.getValue(xMediCard8 + "[" + j + "]/last");
  4082. /*수액정보 라벨 출력*/
  4083. if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  4084. // 총수 - 현위치
  4085. //----------(20080927)
  4086. //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  4087. sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", totcnt + " - " + soding, "");
  4088. //----------(20080927)
  4089. sLabelSndMsg += fCareBP_EndFormat(1);
  4090. sLabelData_Array[labelindex] = sLabelSndMsg;
  4091. CommAX.SendMessage(sLabelSndMsg);
  4092. ////////////////alert(sLabelSndMsg);
  4093. labelindex = labelindex + 1;
  4094. overcnt = 1;
  4095. labelcnt = 0;
  4096. sLabelSndMsg = BP_StartFormat;
  4097. }else if((labelcnt + overcnt) == 5){
  4098. sLabelSndMsg += fCareBP_EndFormat(1);
  4099. sLabelData_Array[labelindex] = sLabelSndMsg;
  4100. CommAX.SendMessage(sLabelSndMsg);
  4101. ////////////////alert(sLabelSndMsg);
  4102. labelindex = labelindex + 1;
  4103. overcnt = 0;
  4104. labelcnt = 0;
  4105. sLabelSndMsg = BP_StartFormat;
  4106. }else{}
  4107. }
  4108. /*순서 뒤집기*/
  4109. /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  4110. CommAX.SendMessage(sLabelData_Array[k]);
  4111. }*/
  4112. }else{
  4113. messageBox("수액이 존재하지","E007");
  4114. }
  4115. }
  4116. /**
  4117. * @group :
  4118. * @ver : 2007.06.25
  4119. * @by : 최경용
  4120. * @---------------------------------------------------
  4121. * @type : function
  4122. * @access : public
  4123. * @desc : 환자정보 라벨 출력
  4124. * @param :
  4125. * @return :
  4126. * @---------------------------------------------------
  4127. */
  4128. function fPatLabelPrint(sSndMsg){
  4129. //출력매수
  4130. //sSndMsg = sSndMsg + "^PQ1";
  4131. //끝
  4132. sSndMsg = sSndMsg + "^XZ";
  4133. CommAX.SendMessage(sSndMsg);
  4134. }
  4135. /**
  4136. * @group :
  4137. * @ver : 2007.06.25
  4138. * @by : 최경용
  4139. * @---------------------------------------------------
  4140. * @type : function
  4141. * @access : public
  4142. * @desc : 상단정보 셋팅
  4143. * @param :
  4144. * @return :
  4145. * @---------------------------------------------------
  4146. */
  4147. function fSetPatInfo(pid, indd, cretno, instcd, orddd, ordtype){
  4148. var condparam = "";
  4149. if(top_pid != pid){
  4150. if(ordtype == "I" || ordtype == "D"){
  4151. // 상단 세팅을 위한 파라미터
  4152. condparam = "I" + "▦" + pid
  4153. + "▦" + indd
  4154. + "▦" + cretno
  4155. + "▦" + instcd
  4156. + "▦" + orddd;
  4157. }else if(ordtype == "E"){
  4158. // 상단 세팅을 위한 파라미터
  4159. condparam = "E" + "▦" + pid
  4160. + "▦" + indd
  4161. + "▦" + cretno
  4162. + "▦" + instcd
  4163. + "▦";
  4164. }else{}
  4165. if(ordtype == "I" || ordtype == "E" || ordtype == "D"){
  4166. //frmf_setParameter("condparam", condparam);
  4167. //상단 세팅 화면 사이즈 작게 띄움
  4168. //----------------------(20080618이전버젼)
  4169. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  4170. //top_pid = pid;
  4171. //----------------------(20080618이후버젼)
  4172. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  4173. var useyn = appf_initPatientInfo(condparam); //상단정보 셋팅 // 입원,외래 원무환자정보 존재 "true" / 존재하지 않을 경우 "false"
  4174. if(useyn == true) { // 원무환자정보 있을 경우만 다음 단계 진행
  4175. top_pid = pid;
  4176. group3.btn_save.enable = true;
  4177. group3.btn_tempsave.enable = true;
  4178. } else {
  4179. sysf_messageBox("원무정보가 없습니다. 투약기록일 할 수 업습니다.","E999");
  4180. group3.btn_save.enable = false;
  4181. group3.btn_tempsave.enable = false;
  4182. }
  4183. //---------------------
  4184. }
  4185. }
  4186. }
  4187. /**
  4188. * @group :
  4189. * @ver : 2007.06.25
  4190. * @by : 최경용
  4191. * @---------------------------------------------------
  4192. * @type : function
  4193. * @access : public
  4194. * @desc : 투약기록 리스트 클릭시
  4195. * @param :
  4196. * @return :
  4197. * @---------------------------------------------------
  4198. */
  4199. function fDrugListClick(){
  4200. return;
  4201. var row = grd_druglist.mouseRow;
  4202. var col = grd_druglist.mouseCol;
  4203. var drugstat = model.getValue("/root/main/cond/drugstat"); //ACTING구분
  4204. //데이터 컬럼을 클릭시
  4205. if(isDataCell() && col >= grd_colcnt){ //해당 셀을 누를 경우 해당하는 자료만
  4206. if(event.button == 1){
  4207. fSetDrug(drugstat); //Acting이벤트시 공통 함수(ACTING구분 파라미터)상단으로 올라감
  4208. grd_druglist.refresh();
  4209. }
  4210. if(grd_colcnt <= col){
  4211. //-----------(20081121:test) grd_druglist.row = 1;가 있는데, 막고 테스트 진행함)
  4212. //grd_druglist.row = 1;
  4213. //숨겨진필드로 이동한다.
  4214. grd_druglist.select(grd_druglist.row,grd_druglist.colref("engnm")) = true;
  4215. grd_druglist.col = grd_druglist.colref("engnm");
  4216. //-----------(20081121)
  4217. }
  4218. }else if(row == 0 || row == 1){ //헤더를 누를 경우 해당하는 모든 ROW의 컬럼
  4219. if(col >= grd_colcnt){
  4220. fSetDrugAllActing(drugstat);
  4221. grd_druglist.refresh();
  4222. }
  4223. }else{}
  4224. }
  4225. /**
  4226. * @group :
  4227. * @ver : 2007.06.25
  4228. * @by : 최경용
  4229. * @---------------------------------------------------
  4230. * @type : function
  4231. * @access : public
  4232. * @desc : 환자정보 디스플레이(환자리스트)
  4233. * @param :
  4234. * @return :
  4235. * @---------------------------------------------------
  4236. */
  4237. function fSetPatTopInfo(){
  4238. var patcnt = ds_main_wardpatinfo_wardpatlist.rowcount;
  4239. var row = ds_main_wardpatinfo_wardpatlist.rowposition;
  4240. var pid = ds_main_wardpatinfo_wardpatlist.getColumn(row, "pid");
  4241. var indd = ds_main_wardpatinfo_wardpatlist.getColumn(row, "indd");
  4242. var cretno = ds_main_wardpatinfo_wardpatlist.getColumn(row, "cretno");
  4243. var instcd = ds_main_wardpatinfo_wardpatlist.getColumn(row, "instcd");
  4244. var ordtype = ds_main_wardpatinfo_wardpatlist.getColumn(row, "ordtype");
  4245. var orddd = ds_main_cond.getColumn(0, "orddd");
  4246. var roomcd = ds_main_wardpatinfo_wardpatlist.getColumn(row, "roomcd");
  4247. var patnm = ds_main_wardpatinfo_wardpatlist.getColumn(row, "patnm");
  4248. var sexage = ds_main_wardpatinfo_wardpatlist.getColumn(row, "sexage");
  4249. ds_main_patinfo.setColumn(0, "roomcd", roomcd);
  4250. ds_main_patinfo.setColumn(0, "pid", pid);
  4251. ds_main_patinfo.setColumn(0, "patnm", patnm);
  4252. ds_main_patinfo.setColumn(0, "sexage", sexage);
  4253. //-----------------(20080912)
  4254. ds_main_cond.setColumn(0, "roomcd", roomcd);
  4255. //-----------------(20080912)
  4256. if( row > -1 && row < patcnt){
  4257. fSetPatInfo(pid,indd,cretno,instcd,orddd,ordtype);
  4258. }
  4259. //----------(20081226)
  4260. //if(mouserow > 0 && mouserow <= patcnt){
  4261. // fClickDrugListBefore(); //------------(20081031)
  4262. // fClickDrugList("drg", row);
  4263. // fClickDrugListAfter(); //------------(20081031)
  4264. //}
  4265. //----------(20081226)
  4266. }
  4267. /**
  4268. * @group :
  4269. * @ver : 2007.06.25
  4270. * @by : 최경용
  4271. * @---------------------------------------------------
  4272. * @type : function
  4273. * @access : public
  4274. * @desc : 환자정보 디스플레이(미투약리스트)
  4275. * @param :
  4276. * @return :
  4277. * @---------------------------------------------------
  4278. */
  4279. function fSetActTopInfo(){
  4280. var mouserow = grd_actlist.mouseRow;
  4281. var patcnt = getNodesetCount(xWardActListPath);
  4282. var row = grd_actlist.mouserow;
  4283. var pid = model.getValue(xWardActListPath + "[" + row + "]/pid");
  4284. var indd = model.getValue(xWardActListPath + "[" + row + "]/indd");
  4285. var cretno = model.getValue(xWardActListPath + "[" + row + "]/cretno");
  4286. var instcd = model.getValue(xWardActListPath + "[" + row + "]/instcd");
  4287. var ordtype = model.getValue(xWardActListPath + "[" + row + "]/ordtype");
  4288. var orddd = model.getValue(xWardActListPath + "[" + row + "prcpdd");
  4289. var roomcd = model.getValue(xWardActListPath + "[" + row + "]/roomcd");
  4290. var patnm = model.getValue(xWardActListPath + "[" + row + "]/patnm");
  4291. var sexage = model.getValue(xWardActListPath + "[" + row + "]/sexage");
  4292. model.setValue("/root/main/patinfo/roomcd", roomcd);
  4293. model.setValue("/root/main/patinfo/pid", pid);
  4294. model.setValue("/root/main/patinfo/patnm", patnm);
  4295. model.setValue("/root/main/patinfo/sexage", sexage);
  4296. if(mouserow > 0 && mouserow <= patcnt){
  4297. fSetPatInfo(pid,indd,cretno,instcd,orddd,ordtype);
  4298. }
  4299. if(mouserow > 0 && mouserow <= patcnt){
  4300. fClickDrugListBefore(); //------------(20081031)
  4301. fClickDrugList("act", row);
  4302. fClickDrugListAfter(); //------------(20081031)
  4303. }
  4304. }
  4305. /**
  4306. * @group :
  4307. * @ver : 2007.06.25
  4308. * @by : 최경용
  4309. * @---------------------------------------------------
  4310. * @type : function
  4311. * @access : public
  4312. * @desc : 상태값 변경 체크
  4313. * @param :
  4314. * @return :
  4315. * @---------------------------------------------------
  4316. */
  4317. function fChangeValueStatus(row, forarr){
  4318. // var iudflag = model.getValue(xWardDrugListPath + "[" + row+ "]/for[" + forarr + "]/iudflag");
  4319. // if(iudflag == "-"){
  4320. // model.setValue(xWardDrugListPath + "[" + row+ "]/for[" + forarr + "]/iudflag", "U");
  4321. // }else if(iudflag == ""){
  4322. // model.setValue(xWardDrugListPath + "[" + row+ "]/for[" + forarr + "]/iudflag", "I");
  4323. // }else{}
  4324. //exip전부 수정한다.
  4325. var objDsxWardDrugListPath = eval(xWardDrugListPath+row+"for");
  4326. for( var j=0 ; j<objDsxWardDrugListPath.rowcount ; j++ ){
  4327. var iudflag = objDsxWardDrugListPath.getColumn(j, "iudflag");
  4328. if(iudflag == "-"){
  4329. objDsxWardDrugListPath.setColumn(j, "iudflag", "U");
  4330. }else if( utlf_isNull(iudflag) ){
  4331. objDsxWardDrugListPath.setColumn(j, "iudflag", "I");
  4332. }else{}
  4333. }
  4334. }
  4335. /**
  4336. * @group :
  4337. * @ver : 2007.06.23
  4338. * @by : 최경용
  4339. * @---------------------------------------------------
  4340. * @type : function
  4341. * @access : public
  4342. * @desc : 투약 시간 셀 color 변경
  4343. * @param :
  4344. * @param :
  4345. * @return :
  4346. * @---------------------------------------------------
  4347. */
  4348. function fDrugCellColorChg(){
  4349. var rows = group3.grd_druglist.rowcount;
  4350. var execcarestatcd = "";
  4351. var spcldrug = "";
  4352. var dccomcountyn = "";
  4353. var forarr = "";
  4354. var todaydrugflag = ""; //---(20080920)
  4355. var execprcpnoarr = "";
  4356. var cols = 0;
  4357. var cole = 0;
  4358. var sExprBack = "EXPR(";
  4359. for( var i=0 ; i<group3.grd_druglist.getCellCount("Body") ; i++ ){
  4360. group3.grd_druglist.setCellProperty("Body", i, "background", "");
  4361. group3.grd_druglist.setCellProperty("Body", i, "background2", "");
  4362. }
  4363. for( var i=0 ; i<rows ; i++ ){
  4364. //AST.ADBMDRUG(약품기본정보)spcldrug(특별약품구분(코드군 A0006 참조))
  4365. spcldrug = ds_main_warddruginfo_warddruglist.getColumn(i, "spcldrug");
  4366. //D/C확정여부
  4367. dccomcountyn = ds_main_warddruginfo_warddruglist.getColumn(i, "dccomcountyn");
  4368. execprcpnoarr = ds_main_warddruginfo_warddruglist.getColumn(i, "execprcpnoarr");
  4369. for( var j=0 ; j<execprcpnoarr.length ; j++ ){
  4370. var colposi = (j*2)+parseInt(grd_colcnt);
  4371. if( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr"+colposi)) ){
  4372. forarr = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "forarr"+colposi)).split(" ");
  4373. }else{
  4374. forarr = "";
  4375. }
  4376. if( !utlf_isNull(forarr) ){
  4377. for( var k=(forarr.length-2) ; k>=0 ; k-- ){
  4378. //간호Acting진행상태(N(미확인)/R(정상투약)/P(투약X-반환가능)/I(투약X-반환불가)/L(퇴원당일 남은약)
  4379. execcarestatcd = eval(xWardDrugListPath+i+"for").getColumn(forarr[k]-1, "execcarestatcd");
  4380. //--------------------------------------
  4381. //원본:조건체크없이 설정했음
  4382. //수정:조회일 기준으로 투약대상이 아니면 색상을 표시하지 않는다.
  4383. //todaydrugflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + forarr[k] + "]/todaydrug"); //--(0920)
  4384. //if (todaydrugflag == "Y") { //--(0920)
  4385. //cols = (j*3)+parseInt(grd_colcnt);
  4386. cols = (j*2)+parseInt(grd_colcnt); //----(20081226)
  4387. cole = (j*2)+parseInt(grd_colcnt)+1;
  4388. if(execcarestatcd == "N" ||execcarestatcd == "-"){
  4389. sExprBack += "currow == "+i+" && self.col == "+cols+" ? '"+gray+"' : ";
  4390. sExprBack += "currow == "+i+" && self.col == "+cole+" ? '"+gray+"' : ";
  4391. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+cols)) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+cols)) ){
  4392. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cols, "string", gray, i);
  4393. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cole, "string", gray, i);
  4394. }
  4395. }else if(execcarestatcd == "R"){
  4396. ////////alert(cols + "/" +cole);
  4397. sExprBack += "currow == "+i+" && self.col == "+cols+" ? '"+yellow+"' : ";
  4398. sExprBack += "currow == "+i+" && self.col == "+cole+" ? '"+yellow+"' : ";
  4399. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+cols)) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+cols)) ){
  4400. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cols, "string", yellow, i);
  4401. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cole, "string", yellow, i);
  4402. }
  4403. }else if(execcarestatcd == "P"){
  4404. sExprBack += "currow == "+i+" && self.col == "+cols+" ? '"+yellowishgreen+"' : ";
  4405. sExprBack += "currow == "+i+" && self.col == "+cole+" ? '"+yellowishgreen+"' : ";
  4406. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+cols)) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+cols)) ){
  4407. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cols, "string", yellowishgreen, i);
  4408. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cole, "string", yellowishgreen, i);
  4409. }
  4410. }else if(execcarestatcd == "I"){
  4411. sExprBack += "currow == "+i+" && self.col == "+cols+" ? '"+red+"' : ";
  4412. sExprBack += "currow == "+i+" && self.col == "+cole+" ? '"+red+"' : ";
  4413. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+cols)) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+cols)) ){
  4414. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cols, "string", red, i);
  4415. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cole, "string", red, i);
  4416. }
  4417. }else if(execcarestatcd == "L"){
  4418. sExprBack += "currow == "+i+" && self.col == "+cols+" ? '"+sky+"' : ";
  4419. sExprBack += "currow == "+i+" && self.col == "+cole+" ? '"+sky+"' : ";
  4420. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+cols)) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+cols)) ){
  4421. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cols, "string", sky, i);
  4422. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cole, "string", sky, i);
  4423. }
  4424. //-------------(20081201)
  4425. }else if(execcarestatcd == "M"){
  4426. sExprBack += "currow == "+i+" && self.col == "+cols+" ? '"+orange+"' : ";
  4427. sExprBack += "currow == "+i+" && self.col == "+cole+" ? '"+orange+"' : ";
  4428. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+cols)) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+cols)) ){
  4429. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cols, "string", orange, i);
  4430. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+cole, "string", orange, i);
  4431. }
  4432. //-------------(20081201)
  4433. }else{}
  4434. //}
  4435. //--------------------------------------
  4436. }
  4437. }
  4438. }
  4439. //-----------------------------(20080731)
  4440. //마약,향정신성인 경우
  4441. //if(spcldrug == "M"){
  4442. // if( spcldrug == "M" || spcldrug == "H" ){
  4443. // //grd_druglist.cellstyle("font-weight",i+1,1,i+1,grd_colcnt-3) = "bold";
  4444. // //grd_druglist.cellstyle("font-weight",i+1,grd_colcnt-1,i+1,grd_colcnt-1) = "bold";
  4445. // grd_druglist.cellstyle("font-weight",i+1,1,i+1,grd_druglist.cols-1) = "bold";
  4446. // }
  4447. //-----------------------------
  4448. //D/C확정여부
  4449. // if(dccomcountyn == "Y"){
  4450. // //grd_druglist.cellstyle("color",i+1,1,i+1,grd_colcnt-3) = red;
  4451. // //grd_druglist.cellstyle("color",i+1,grd_colcnt-1,i+1,grd_colcnt-1) = red;
  4452. // grd_druglist.cellstyle("color",i+1,1,i+1,grd_druglist.cols-1) = red;
  4453. // }
  4454. //bfprcpequalyn : 전일처방 비교 getbfprcpequalyninfo 추가 김홍점 'N'일때 색깔표현
  4455. // if ( model.getValue(xWardDrugListPath + "[" + i + "]/bfprcpequalyn") == "N"){
  4456. // grd_druglist.cellstyle("background-color",i+1,grd_druglist.colRef("prcpmixno"),i+1,grd_druglist.colRef("drugmthdspccd")) = "#cceeee";
  4457. // }
  4458. }
  4459. sExprBack += "'')";
  4460. for( var i=grd_colcnt ; i<group3.grd_druglist.getCellCount("Body") ; i++ ){
  4461. group3.grd_druglist.setCellProperty("Body", i, "background", sExprBack);
  4462. group3.grd_druglist.setCellProperty("Body", i, "background2", sExprBack);
  4463. }
  4464. for( var i=3 ; i<14 ; i++ ){
  4465. group3.grd_druglist.setCellProperty("Body", i, "background", "EXPR(bfprcpequalyn == 'N' ? '#cceeee' : '')");
  4466. group3.grd_druglist.setCellProperty("Body", i, "background2", "EXPR(bfprcpequalyn == 'N' ? '#cceeee' : '')");
  4467. }
  4468. for( var i=1 ; i<group3.grd_druglist.getCellCount("Body") ; i++ ){
  4469. group3.grd_druglist.setCellProperty("Body", i, "font", "EXPR(spcldrug == 'M' || spcldrug == 'H' ? 'Dotum,9,bold' : 'Dotum,9')");
  4470. group3.grd_druglist.setCellProperty("Body", i, "selectfont", "EXPR(spcldrug == 'M' || spcldrug == 'H' ? 'Dotum,9,bold' : 'Dotum,9')");
  4471. group3.grd_druglist.setCellProperty("Body", i, "color", "EXPR(dccomcountyn == 'Y' ? 'red' : '')");
  4472. group3.grd_druglist.setCellProperty("Body", i, "color2", "EXPR(dccomcountyn == 'Y' ? 'red' : '')");
  4473. group3.grd_druglist.setCellProperty("Body", i, "selectcolor", "EXPR(dccomcountyn == 'Y' ? 'red' : '')");
  4474. }
  4475. }
  4476. //-------------------------------------(20080920)
  4477. // todaydrug 을 기준으로 화면에 보이는 것을 재 설정한다.
  4478. function fDrugCellDispChg(){
  4479. var pGrd = grd_druglist;
  4480. var rows = pGrd.rows;
  4481. var cols = pGrd.cols;
  4482. var execcarestatcd = "";
  4483. var spcldrug = "";
  4484. var dccomcountyn = "";
  4485. var forarr = "";
  4486. var todaydrugflag = "";
  4487. //-----------------------------
  4488. //column 설정
  4489. //화면에 보이는 자료에 대해서 색상이 없는경우는 colwidth = 0으로 설정한다.
  4490. //-----------------------------
  4491. for(var col = grd_colcnt; col < cols; col++){
  4492. var dispyn = false; //보이지 않아야 하는 컬럼
  4493. for(var row = 2; row < rows; row++){
  4494. //if (pGrd.rowheight(row) != 0) { //----(20080923)
  4495. if ( pGrd.cellstyle("background-color",row,col) == gray ||
  4496. pGrd.cellstyle("background-color",row,col) == yellow ||
  4497. pGrd.cellstyle("background-color",row,col) == yellowishgreen ||
  4498. pGrd.cellstyle("background-color",row,col) == red ||
  4499. //-------------(20081201)
  4500. pGrd.cellstyle("background-color",row,col) == orange ||
  4501. //-------------(20081201)
  4502. pGrd.cellstyle("background-color",row,col) == sky ) {
  4503. dispyn = true;
  4504. }
  4505. //}
  4506. }
  4507. if (dispyn == false) {
  4508. pGrd.colWidth(col) = 0;
  4509. }
  4510. }
  4511. //-----------------------------
  4512. //row 설정
  4513. //화면에 보이는 자료에 대해서 색상이 없는경우는 rowheight = 0으로 설정한다.
  4514. //-----------------------------
  4515. for(var row = 2; row < rows; row++){
  4516. var dispyn = false; //보이지 않아야 하는 컬럼
  4517. for(var col = grd_colcnt; col < cols; col++){
  4518. if (pGrd.colwidth(col) != 0) { //----(20080925)
  4519. if ( pGrd.cellstyle("background-color",row,col) == gray ||
  4520. pGrd.cellstyle("background-color",row,col) == yellow ||
  4521. pGrd.cellstyle("background-color",row,col) == yellowishgreen ||
  4522. pGrd.cellstyle("background-color",row,col) == red ||
  4523. //-----------(20081201)
  4524. pGrd.cellstyle("background-color",row,col) == orange ||
  4525. //-----------(20081201)
  4526. pGrd.cellstyle("background-color",row,col) == sky ) {
  4527. dispyn = true;
  4528. }
  4529. }
  4530. }
  4531. if (dispyn == false) {
  4532. pGrd.rowheight(row) = 0;
  4533. }
  4534. }
  4535. }
  4536. //-------------------------------------(20080920)
  4537. /**
  4538. * @group :
  4539. * @ver : 2007.06.25
  4540. * @by : 최경용
  4541. * @---------------------------------------------------
  4542. * @type : function
  4543. * @access : public
  4544. * @desc : Tree 셋팅
  4545. * @param : Object gridObj - 그리드 오브텍트
  4546. Integer levelcol - Depth 컬럼 위치
  4547. Integer targetcol - 아웃라인 생성 컬럼 위치
  4548. Boolean collapsed - Expand 설정
  4549. * @return :
  4550. * @---------------------------------------------------
  4551. */
  4552. function careSetTree( gridObj, levelcol, targetcol, collapsed ) {
  4553. // 그리드 아웃라이바 초기화
  4554. gridObj.outlinebar=0;
  4555. var prcpmixno = "0";
  4556. var prcpclscd = "";
  4557. //tree 및 레벨설정
  4558. for(var j = gridObj.fixedRows; j < gridObj.rows; j++)
  4559. {
  4560. gridObj.IsSubtotal(j) = false;
  4561. }
  4562. gridObj.refresh();
  4563. mixno_Array = new Array;
  4564. //tree 및 레벨설정
  4565. for(var i = gridObj.fixedRows; i < gridObj.rows; i++)
  4566. {
  4567. prcpmixno = model.getValue(xWardDrugListPath + "[" + (i-1) + "]/prcpmixno");
  4568. prcpclscd = model.getValue(xWardDrugListPath + "[" + (i-1) + "]/prcpclscd");
  4569. if(prcpmixno != ""){
  4570. try {
  4571. if(mixno_Array[parseInt(prcpmixno)] == null){
  4572. gridObj.IsSubtotal(i) = true;
  4573. gridObj.outlinelevel(i) = 1; //인스턴스 levl 값임
  4574. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "1");
  4575. mixno_Array[parseInt(prcpmixno)] = "Y";
  4576. }else if(mixno_Array[parseInt(prcpmixno)] == "Y"){
  4577. gridObj.IsSubtotal(i) = true;
  4578. gridObj.outlinelevel(i) = 2; //인스턴스 levl 값임
  4579. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "2");
  4580. }else{}
  4581. } catch(e) {
  4582. //////////////////////alert("i:"+i+",levelcol:"+levelcol);
  4583. }
  4584. }else{
  4585. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "0");
  4586. }
  4587. }
  4588. // tree 대상 컬럼 및 형태 설정
  4589. gridObj.outlinecol=targetcol; //연결선이 표현되는 컬럼
  4590. gridObj.outlinebar=2; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  4591. gridObj.treecolor="#948777"
  4592. // 자식 트리 접기
  4593. if(collapsed != null) {
  4594. setCollapsed(gridObj, collapsed);
  4595. }
  4596. }
  4597. /**
  4598. * @group :
  4599. * @ver : 2007.06.25
  4600. * @by : 최경용
  4601. * @---------------------------------------------------
  4602. * @type : function
  4603. * @access : public
  4604. * @desc : 문자열 검색(배열)
  4605. * @param :
  4606. * @return :
  4607. * @---------------------------------------------------
  4608. */
  4609. function isSearchArrayString(baseCol_Array, row){
  4610. for(var i = 0; i <= baseCol_Array.length; i++){
  4611. if((baseCol_Array[i]) == row){
  4612. return true;
  4613. }
  4614. }
  4615. return false;
  4616. }
  4617. /**
  4618. * @group :
  4619. * @ver : 2007.06.25
  4620. * @by : 최경용
  4621. * @---------------------------------------------------
  4622. * @type : function
  4623. * @access : public
  4624. * @desc : 문자열 검색(배열)
  4625. * @param :
  4626. * @return :
  4627. * @---------------------------------------------------
  4628. */
  4629. function isSearchArrayIndex(baseCol_Array, sData){
  4630. for( var i=0 ; i<=baseCol_Array.length ; i++ ){
  4631. if( baseCol_Array[i] == sData ){
  4632. return i;
  4633. }
  4634. }
  4635. return -1;
  4636. }
  4637. /**
  4638. * @group :
  4639. * @ver : 2007.06.25
  4640. * @by : 최경용
  4641. * @---------------------------------------------------
  4642. * @type : function
  4643. * @access : public
  4644. * @desc : 기준시간 변경전 변경된 내용이 있는지 체크
  4645. * @param :
  4646. * @return :
  4647. * @---------------------------------------------------
  4648. */
  4649. function fChangeDrugInfo(){
  4650. var rows = grd_druglist.rows - 1;
  4651. var drugtmspec = "";
  4652. var tims = "";
  4653. var stat = "false";
  4654. var iudflag = "";
  4655. for(var i = 1; i < rows; i++){
  4656. drugtmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec").split(" ");
  4657. tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  4658. for(var j = 0; j < rows; j++){
  4659. iudflag = model.getValue(xWardDrugListPath + "[" + i + "]/iudflag" + drugtmspec[j]);
  4660. if(iudflag != "-" && iudflag != ""){
  4661. return "true";
  4662. }
  4663. }
  4664. }
  4665. return "false";
  4666. }
  4667. /**
  4668. * @group :
  4669. * @ver : 2007.06.25
  4670. * @by : 최경용
  4671. * @---------------------------------------------------
  4672. * @type : function
  4673. * @access : public
  4674. * @desc : 투약기록 그리드 기본/펼치기 모드 이벤트
  4675. * @param :
  4676. * @return :
  4677. * @---------------------------------------------------
  4678. */
  4679. function fSelectOpenMoe(){
  4680. if( group3.rdo_openmode.value == "O" ){ //펼치기
  4681. group3.grd_druglist.setFormatColProperty(grd_colcnt-8, "size", 90); //기준시간setting(drugtmspeccal)
  4682. group3.grd_druglist.setFormatColProperty(grd_colcnt-7, "size", 80); //처방remark(prcpdelivefact)
  4683. group3.grd_druglist.setFormatColProperty(grd_colcnt-6, "size", 55); //처방의(orddrnm)
  4684. group3.grd_druglist.setFormatColProperty(grd_colcnt-5, "size", 101); //처방시간(fstrgstdt)
  4685. group3.grd_druglist.setFormatColProperty(grd_colcnt-4, "size", 70); //처방적용일(prcphopedd)
  4686. //grd_druglist.colHidden(grd_colcnt - 2) = false; //수액라벨출력여부(sapnoyn)(20080929)
  4687. group3.grd_druglist.setFormatColProperty(grd_colcnt-3, "size", 0); //수액라벨출력여부(sapnoyn)(20081114)
  4688. group3.grd_druglist.setFormatColProperty(grd_colcnt-2, "size", 70); //처방명문명(20081118)
  4689. group3.grd_druglist.setFormatColProperty(grd_colcnt-1, "size", 0); //depth(depth)
  4690. }else if( group3.rdo_openmode.value == "B" ){ //기본
  4691. group3.grd_druglist.setFormatColProperty(grd_colcnt-8, "size", 0);
  4692. group3.grd_druglist.setFormatColProperty(grd_colcnt-7, "size", 0);
  4693. group3.grd_druglist.setFormatColProperty(grd_colcnt-6, "size", 0);
  4694. group3.grd_druglist.setFormatColProperty(grd_colcnt-5, "size", 0);
  4695. group3.grd_druglist.setFormatColProperty(grd_colcnt-4, "size", 0);
  4696. group3.grd_druglist.setFormatColProperty(grd_colcnt-3, "size", 0); //수액라벨출력여부(sapnoyn)(20080929)
  4697. group3.grd_druglist.setFormatColProperty(grd_colcnt-2, "size", 0); //처방명문명(20081118)
  4698. group3.grd_druglist.setFormatColProperty(grd_colcnt-1, "size", 0);
  4699. }else {}
  4700. }
  4701. /**
  4702. * @group :
  4703. * @ver : 2007.06.23
  4704. * @by : 최경용
  4705. * @---------------------------------------------------
  4706. * @type : function
  4707. * @access : public
  4708. * @desc : 투약기록 문자열 정렬
  4709. * @param :
  4710. * @param :
  4711. * @return :
  4712. * @---------------------------------------------------
  4713. */
  4714. //일자별정렬
  4715. function sortHashKeys(col, cnt){
  4716. var sColArray = new Array; //파라미터를 배열 구조로 변경 저장
  4717. var sCol = utlf_transNullToEmpty(col).split("^");
  4718. var temp = "";
  4719. for(var i = 0; i < cnt; i++){
  4720. sColArray[i] = Number(sCol[i]);
  4721. }
  4722. //sColArray.sort();
  4723. for(i = 0; i < sColArray.length; i++){
  4724. for(j = 0; j < sColArray.length; j++){
  4725. if(sort2(sColArray[i],sColArray[j]) == false){
  4726. temp = sColArray[i];
  4727. sColArray[i] = sColArray[j];
  4728. sColArray[j] = temp;
  4729. }
  4730. }
  4731. }
  4732. return sColArray;
  4733. }
  4734. //시간대정렬(20080918)
  4735. function sortHashKeys2(col, cnt){
  4736. var sColArray = new Array; //파라미터를 배열 구조로 변경 저장
  4737. var sCol = utlf_transNullToEmpty(col).split("^");
  4738. var temp = "";
  4739. for(var i = 0; i < cnt; i++){
  4740. sColArray[i] = Number(sCol[i]);
  4741. }
  4742. //sColArray.sort();
  4743. for(i = 0; i < sColArray.length; i++){
  4744. for(j = 0; j < sColArray.length; j++){
  4745. if(sort2(sColArray[i],sColArray[j]) == false){
  4746. temp = sColArray[i];
  4747. sColArray[i] = sColArray[j];
  4748. sColArray[j] = temp;
  4749. }
  4750. }
  4751. }
  4752. //////////////////alert("1");
  4753. //가공
  4754. var sColArraytemp0 = new Array;
  4755. var sColArraytemp1 = new Array;
  4756. var sColArraytemp2 = new Array;
  4757. var sColArraytemp3 = new Array;
  4758. var sColArraytemp4 = new Array;
  4759. var cnt0 = -1;
  4760. var cnt1 = -1;
  4761. var cnt2 = -1;
  4762. var cnt3 = -1;
  4763. var cnt4 = -1;
  4764. //////////////////alert("2");
  4765. for(i = 0; i < sColArray.length; i++){
  4766. var tempv = parseInt(sColArray[i]);
  4767. ////////////////////alert(tempv);
  4768. if (tempv < 0) {
  4769. //////////////////alert("나누기전:" +tempv);
  4770. tempv = tempv / 2400 ;
  4771. //////////////////alert("나누기후:" +tempv.toString().getTruncate());
  4772. if (tempv.toString().getTruncate() == 0) {
  4773. cnt0++;
  4774. sColArraytemp0[cnt0] = sColArray[i];
  4775. //////////////////alert(sColArraytemp0[cnt0]);
  4776. }else if(tempv.toString().getTruncate() == -1) {
  4777. cnt1++;
  4778. sColArraytemp1[cnt1] = sColArray[i];
  4779. }else if(tempv.toString().getTruncate() == -2) {
  4780. cnt2++;
  4781. sColArraytemp2[cnt2] = sColArray[i];
  4782. }else if (tempv.toString().getTruncate() == -3) {
  4783. cnt3++;
  4784. sColArraytemp3[cnt3] = sColArray[i];
  4785. }else if (tempv.toString().getTruncate() == -4) {
  4786. cnt4++;
  4787. sColArraytemp4[cnt4] = sColArray[i];
  4788. }
  4789. }
  4790. }
  4791. //////////////////alert("3");
  4792. var totcnt = -1;
  4793. for (i=0;i<sColArraytemp4.length;i++) {
  4794. totcnt ++;
  4795. sColArray[totcnt]=sColArraytemp4[i];
  4796. //////////////////alert(sColArray[totcnt]);
  4797. }
  4798. for (i=0;i<sColArraytemp3.length;i++) {
  4799. totcnt ++;
  4800. sColArray[totcnt]=sColArraytemp3[i];
  4801. //////////////////alert(sColArray[totcnt]);
  4802. }
  4803. for (i=0;i<sColArraytemp2.length;i++) {
  4804. totcnt ++;
  4805. sColArray[totcnt]=sColArraytemp2[i];
  4806. //////////////////alert(sColArray[totcnt]);
  4807. }
  4808. for (i=0;i<sColArraytemp1.length;i++) {
  4809. totcnt ++;
  4810. sColArray[totcnt]=sColArraytemp1[i];
  4811. //////////////////alert(sColArray[totcnt]);
  4812. }
  4813. for (i=0;i<sColArraytemp0.length;i++) {
  4814. totcnt ++;
  4815. sColArray[totcnt]=sColArraytemp0[i];
  4816. //////////////////alert(sColArray[totcnt]);
  4817. }
  4818. //////////////////alert("4");
  4819. return sColArray;
  4820. }
  4821. //기준시간setting정렬(0930)
  4822. function sortHashKeysString(sColString){
  4823. var sColArray = new Array;
  4824. //string -> 배열로
  4825. var sCol = utlf_transNullToEmpty(sColString).split(" ");
  4826. var temp = "";
  4827. for(var i = 0; i < sCol.length; i++){
  4828. //sColArray[i] = Number(sCol[i]);
  4829. sColArray[i] = fCarec_GetFillZeno(sCol[i],4,0);
  4830. sColArray[i] = sColArray[i].toString().replace(":",""); //-----(20080919)
  4831. }
  4832. //배열 정렬
  4833. for(var i = 0; i < sColArray.length; i++){
  4834. for(var j = 0; j < sColArray.length; j++){
  4835. if(sort2(sColArray[i],sColArray[j]) == false){
  4836. temp = fCarec_GetFillZeno(sColArray[i],4,0);
  4837. sColArray[i] = fCarec_GetFillZeno(sColArray[j],4,0);
  4838. sColArray[j] = fCarec_GetFillZeno(temp,4,0);
  4839. }
  4840. }
  4841. }
  4842. //중복제거
  4843. // sColString = "";
  4844. // for(var i = 0; i < sColArray.length; i++){
  4845. // if ( sColArray[i] == "") continue;
  4846. //
  4847. // for(var j = i+1; j < sColArray.length; j++){
  4848. // if ( sColArray[i] == sColArray[j]) sColArray[j] = "";
  4849. // }
  4850. // }
  4851. //배열 -> string
  4852. sColString = "";
  4853. for(var i = 0; i < sColArray.length; i++){
  4854. //if (sColArray[i] == "0000") continue; //---0919
  4855. sColString += sColArray[i] + " ";
  4856. }
  4857. //마지막 " " 제거
  4858. sColString = sColString.substr(0,sColString.length-1);
  4859. //string 리턴
  4860. return sColString;
  4861. }
  4862. //--------------------(20080605)
  4863. // 음수끼리의 정렬은 반대임(기능추가)
  4864. // -1800 < -2000 임 시간이므로(오류가 있음) -1800 -2000 이 되어야함
  4865. // -1800 < -4000 인 경우는 날짜가 달라짐(0918) -4000 -1800 이 되어야함
  4866. // return false를 리터하면 change하라
  4867. //--------------------
  4868. function sort2(a,b){
  4869. var temp1,temp2;
  4870. var temp1mok,temp2mok;
  4871. // 두변수가 전부 음수인 경우(음수,음수) -1800 < -2000
  4872. // a을 비교한다.
  4873. ////////////////////alert("비교:" + parseInt(a) + "/" + parseInt(b))
  4874. if ( parseInt(a) < 0 && parseInt(b) < 0 ) { //: 작은순정렬(큰순<작은순)
  4875. if(parseInt(a) < parseInt(b)){
  4876. return true; //no change
  4877. }else if(parseInt(a) > parseInt(b)){
  4878. return false; //change
  4879. }else{
  4880. var sort = new Array(a,b);
  4881. sort.sort();
  4882. return (sort[0] == a)? false:true;
  4883. }
  4884. } else {
  4885. //그외경우 (음수,양수/양수,음수/양수,양수) //: 큰순정렬(작은순->큰순)
  4886. if(parseInt(a) > parseInt(b)){
  4887. return true; //no change
  4888. }else if(parseInt(a) < parseInt(b)){
  4889. return false; //change
  4890. }else{
  4891. var sort = new Array(a,b);
  4892. sort.sort();
  4893. return (sort[0] == a)? false:true;
  4894. }
  4895. }
  4896. }
  4897. //function sort2_OLD(a,b){
  4898. // if(parseInt(a) > parseInt(b)){
  4899. // return true;
  4900. // }else if(parseInt(a) < parseInt(b)){
  4901. // return false;
  4902. // }else{
  4903. // var sort = new Array(a,b);
  4904. // sort.sort();
  4905. // return (sort[0] == a)? false:true;
  4906. // }
  4907. //}
  4908. /**
  4909. * @group :
  4910. * @ver : 2007.06.25
  4911. * @by : 최경용
  4912. * @---------------------------------------------------
  4913. * @type : function
  4914. * @access : public
  4915. * @desc : grid mouse down
  4916. * @param :
  4917. * @return :
  4918. * @---------------------------------------------------
  4919. */
  4920. function fMouseDownGridRow(){
  4921. var rows = grd_druglist.rows;
  4922. var row = grd_druglist.mouseRow-1;
  4923. var col = grd_druglist.mouseCol;
  4924. if(row + 1 <= rows && rows > 2 && row > 0){
  4925. if(event.button == 3){
  4926. if(col >= grd_colcnt){
  4927. window.setPopupMenu(true, "/root/hidden/drg_popmenu1/menu", "name", "func", false);
  4928. }else{
  4929. window.setPopupMenu(true, "/root/hidden/drg_popmenu2/menu", "name", "func", false);
  4930. }
  4931. }
  4932. }else{
  4933. window.setPopupMenu(false);
  4934. }
  4935. }
  4936. /**
  4937. * @---------------------------------------------------
  4938. * @desc : 전체 문장에서 특정 문장이 있는지를 검사하는 함수
  4939. * @param : strSrc - 전체 문장
  4940. * @param : strFind - 찾을 문장
  4941. * @return : boolean
  4942. * @---------------------------------------------------
  4943. */
  4944. function careIsSearchString(strSrc, strFind){
  4945. strSrc = utlf_transNullToEmpty(strSrc).split("^");
  4946. for(var i = 0; i < strSrc.length; i++){
  4947. if(strFind == strSrc[i]){
  4948. return true;
  4949. }
  4950. }
  4951. return false;
  4952. }
  4953. /*
  4954. 20080809
  4955. prcpno별로 drugbasetmspec_TM를 기준으로
  4956. model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")에 값설정 한다.
  4957. */
  4958. function fndrugcalcbefore() {
  4959. var querydrugddfr = ds_main_cond.getColumn(0, "orddd"); //조회일(투약(예정)일 (화면에 나와야하는 일자)
  4960. var querydrugddto = getDateAddc(querydrugddfr, 1); //조회일(투약(예정)일+1 (화면에 나와야하는 일자)
  4961. var prcpdd = "";
  4962. var prcpno = "";
  4963. var prcphistno = "";
  4964. var drugbasetmspec_tm = "";
  4965. var fridx = 0;
  4966. var toidx = 0;
  4967. var rows = ds_hidden_warddruginfo_warddruglist.rowcount;
  4968. for( var i=0 ; i<rows ; i++ ){
  4969. //////////////////////alert( "읽기:" +prcpdd + "/" + prcpno + "/" + prcphistno );
  4970. if (i == 0) {
  4971. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  4972. prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno");
  4973. //prcphistno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno");
  4974. fridx = 0;
  4975. toidx = 0;
  4976. //////////////////////alert("시작:"+ i + "/" + drugbasetmspec_tm+ "/");
  4977. }
  4978. if (
  4979. prcpdd == ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd") &&
  4980. prcpno == ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno") //&&
  4981. //prcphistno == model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno")
  4982. ) {
  4983. drugbasetmspec_tm += ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec_tm") + " ";
  4984. //////////////////////alert("같음:"+ i + "/" + drugbasetmspec_tm+ "/");
  4985. } else {
  4986. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  4987. prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno");
  4988. //prcphistno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno");
  4989. //반영을 위한 값설정
  4990. toidx = i-1;
  4991. drugbasetmspec_tm = drugbasetmspec_tm.substring(0,drugbasetmspec_tm.length-1);
  4992. //////////////////////alert("다름1:" + i + "/" + drugbasetmspec_tm+ "/");
  4993. //반영
  4994. for( var j=fridx ; j<=toidx ; j++ ){
  4995. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugtmspec", drugbasetmspec_tm);
  4996. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugbasetmspec", drugbasetmspec_tm);
  4997. }
  4998. //////////////////////alert("다름2:" + i + "/" + drugbasetmspec_tm+ "/");
  4999. //초기화
  5000. fridx = i;
  5001. drugbasetmspec_tm = "";
  5002. drugbasetmspec_tm += ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec_tm") + " ";
  5003. //////////////////////alert("다름3:" + i + "/" + drugbasetmspec_tm+ "/");
  5004. }
  5005. if (i == (rows-1)) {
  5006. //반영을 위한 값설정
  5007. toidx = i;
  5008. drugbasetmspec_tm = drugbasetmspec_tm.substring(0,drugbasetmspec_tm.length-1);
  5009. //////////////////////alert("종료1:" + i + "/" + drugbasetmspec_tm+ "/");
  5010. //반영
  5011. for( var j=fridx ; j<=toidx ; j++ ){
  5012. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugtmspec", drugbasetmspec_tm);
  5013. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugbasetmspec", drugbasetmspec_tm);
  5014. }
  5015. //////////////////////alert("종료2:" + i + "/" + drugbasetmspec_tm+ "/");
  5016. }
  5017. }
  5018. }
  5019. /*
  5020. 20080529
  5021. 조회자료에서 기준시간setting을 편집한다.
  5022. 시간대를 row별로 반영한다.
  5023. */
  5024. function fndrugcalc() {
  5025. //----(2008222)
  5026. //var querydrugddfr = model.getValue("/root/main/cond/orddd"); //조회일(투약(예정)일 (화면에 나와야하는 일자)
  5027. //var querydrugddto = getDateAddc(querydrugddfr, 1); //조회일(투약(예정)일+1 (화면에 나와야하는 일자)
  5028. for( var i=0 ; i<ds_hidden_warddruginfo_warddruglist.rowcount ; i++ ){
  5029. //-------(20081222)
  5030. var querydrugddfr = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcphopedd"); //조회일(투약(예정)일 (화면에 나와야하는 일자)
  5031. var querydrugddto = getDateAddc(querydrugddfr, 1); //조회일(투약(예정)일+1 (화면에 나와야하는 일자)
  5032. //------------------------------------------------------------------------------------------
  5033. //drugtmspec : 조회해온 표준시간대(표준시간대+변경된시간대, 단 투약시간대는 반영되지 않았음)
  5034. // 변경하지 않는다.
  5035. //------------------------------------------------------------------------------------------
  5036. var drugtmspec = ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugtmspec"); //1 부터임(질의문에서 받아온 시간 그대로)
  5037. var prcphopedd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcphopedd");
  5038. var prcpcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  5039. var drugdd = "";
  5040. var drugtm = "";
  5041. var i_init = i
  5042. var drugtmspeccal1 = ""; //조회자료에 대한 DRUGDD,DRUGTM
  5043. var drugtmspeccal2 = ""; //조회기간에 대한(조회일~조회일+1) 을 연산한것으로 변경한 것
  5044. var dispddarray = ""; //투약(예정)일
  5045. var disptmarray = ""; //투약(예정)시간
  5046. var dispflagarray = ""; //조회기간안의 투약(예정)일 여부 flag(화면상계산의미없음)전부보임
  5047. var todaydrugtimes = ""; //질의문을 기준으로 화면에 보일자료 (20080920)
  5048. var carebasedd = ""; //-------(20081226)
  5049. var carebasetm = ""; //-------(20081226)
  5050. if( !utlf_isNull(drugtmspec) ){
  5051. array_drugtmspec = drugtmspec.split(" ");
  5052. for( var j=0 ; j<array_drugtmspec.length ; j++ ){
  5053. //------------------------------------------------------------
  5054. //처방적용일기준으로 표준 시간대를 계산한다.[절대시간대]
  5055. //------------------------------------------------------------
  5056. //처방적용희망일+설정된시간(표준시간대또는 변경된시간대):실질적인 투약일/투약시간을 찾는다.
  5057. //------------------------------------------------------------
  5058. drugdd = getDateAddc(prcphopedd, parseInt(array_drugtmspec[j] / 2400));
  5059. drugtm = Number(array_drugtmspec[j]) % 2400;
  5060. drugtm = Math.abs(Number(drugtm)).toString();
  5061. //------------------------------------------------------------
  5062. //투약된일자가 있으면
  5063. //투약된일자와 투약된시간대를 반영한다.
  5064. //
  5065. //변경시간은 반영된 상태이고,
  5066. //투약일(medr.execdd)이 있으면 투약일로 설정한다.
  5067. //------------------------------------------------------------
  5068. var execdrugdd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "execdd");
  5069. var execdrugtm = ds_hidden_warddruginfo_warddruglist.getColumn(i, "exectm");
  5070. //------------(20080710) 투약기록과 시행일자가 분리되었음
  5071. // if (execdrugdd != "" && execdrugdd != "00000000") drugdd = execdrugdd;
  5072. // if (execdrugtm != "" && execdrugtm != "000000") drugtm = execdrugtm.substring(0,4);
  5073. //////////////////////alert("drugtmspeccal1:" + drugtmspeccal1);
  5074. drugtmspeccal1 += fCarec_GetFillZeno(drugtm,4,0) + " ";
  5075. drugtm = fCarec_GetFillZeno(drugtm,4,0);
  5076. //투약(예정)일을 찾는다.
  5077. ds_hidden_warddruginfo_warddruglist.setColumn(i, "dispdd", drugdd);
  5078. ds_hidden_warddruginfo_warddruglist.setColumn(i, "disptm", drugtm);
  5079. //투약(예정)일을 string형태로 생성한다.
  5080. dispddarray += drugdd + " ";
  5081. disptmarray += drugtm + " ";
  5082. //------------------------------------------------------------
  5083. //화면에 표시하기 위하여 조회일자를 기준으로 시간대를 다시 계산한다.[24시간 기준대로]//[상대시간대]
  5084. //------------------------------------------------------------
  5085. //실질적인 투약일을 구한것을 기준으로
  5086. //조회일과의 일수차를 계산하여
  5087. //투약시간대와 일수를 감안하여 재계산한다.
  5088. //------------------------------------------------------------
  5089. var dispdd2 = ds_hidden_warddruginfo_warddruglist.getColumn(i, "dispdd"); //의미없음(dispdd와 동일)
  5090. var disptm2 = ds_hidden_warddruginfo_warddruglist.getColumn(i, "disptm");
  5091. //test(20081222)
  5092. ////alert(querydrugddfr + "/" + dispdd2);
  5093. var intervaldd = utlf_getDateInterval(querydrugddfr,dispdd2); //투약(예정)일-희암일
  5094. if (intervaldd >= 0 ) {
  5095. disptm2 = Number(disptm2) + (Number(intervaldd) * 2400); //일수 반영한 시간대
  5096. } else {
  5097. disptm2 = (-Number(disptm2) + (Number(intervaldd) * 2400))
  5098. }
  5099. drugtmspeccal2 += fCarec_GetFillZeno(disptm2,4,0) + " "; //drugtmspeccal 만든다.
  5100. //////alert("drugtmspeccal2:" + drugtmspeccal2);
  5101. //------------------------------------------------------------
  5102. //자료들 중 화면에 표시해야 하는 것들을 표시한다.:
  5103. //
  5104. //조회일<= 투약(예정)일 and 투약(예정)일 <= 조회일+1
  5105. //------------------------------------------------------------
  5106. //test
  5107. //---------------(20081222)
  5108. //if (querydrugddfr <= dispdd2 && dispdd2 <= querydrugddto) {
  5109. //////////////////////alert(querydrugddfr + "/" +drugdd +"/" + dispdd2 + "/" + querydrugddto);
  5110. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispflag", "string", "Y", i); //화면에 표시대상FLAG
  5111. dispflagarray += "Y" + "/";
  5112. //} else {
  5113. // dispflagarray += "" + "/";
  5114. //}
  5115. todaydrugtimes += ds_hidden_warddruginfo_warddruglist.getColumn(i, "todaydrug") + "/"; //-----(20080920)
  5116. //////////////////alert(todaydrugtimes);
  5117. carebasedd += ds_hidden_warddruginfo_warddruglist.getColumn(i, "carebasedd") + "/"; //-----(20081226)
  5118. carebasetm += ds_hidden_warddruginfo_warddruglist.getColumn(i, "carebasetm") + "/"; //-----(20081226)
  5119. i++;
  5120. }
  5121. //------------------------------------------------------------
  5122. //위에서 계산대 정보를 각 row에 반영한다.
  5123. //------------------------------------------------------------
  5124. drugtmspeccal1 = drugtmspeccal1.substring(0,drugtmspeccal1.length-1);
  5125. drugtmspeccal2 = drugtmspeccal2.substring(0,drugtmspeccal2.length-1);
  5126. dispddarray = dispddarray.substring(0,dispddarray.length-1);
  5127. disptmarray = disptmarray.substring(0,disptmarray.length-1);
  5128. dispflagarray = dispflagarray.substring(0,dispflagarray.length-1);
  5129. todaydrugtimes = todaydrugtimes.substring(0,todaydrugtimes.length-1); //(20080920)
  5130. i=i_init; //시작첨자
  5131. for( var j=0 ; j<array_drugtmspec.length ; j++ ){
  5132. //if ( model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpcd") == "DTMD100J") {
  5133. ////////////////////alert("DTMD100J:" +drugtmspeccal2);
  5134. //}
  5135. //처방적용일기준으로 표준 시간대를 계산한다.
  5136. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "drugtmspec_recalc1", "string", drugtmspeccal1, i);
  5137. //조회일자를 기준으로 시간대를 다시 계산한다(화면표시용)
  5138. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "drugtmspec_recalc2", "string", drugtmspeccal2, i);
  5139. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "drugtmspeccal", "string", drugtmspeccal2, i);
  5140. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispddarray", "string", dispddarray, i);
  5141. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "disptmarray", "string", disptmarray, i);
  5142. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispflagarray", "string", dispflagarray, i);
  5143. dispflagarray = dispflagarray.replace("/","");
  5144. if ( dispflagarray.length > 0) {
  5145. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispflaggroup", "string", "Y", i);
  5146. }
  5147. //실질적인 당일투약대상또는 투약한 대상
  5148. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "todaydrugtimes", "string", todaydrugtimes, i); //--(20080920)
  5149. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "carebasedd", "string", carebasedd, i); //--(20081226)
  5150. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "carebasetm", "string", carebasetm, i); //--(20081226)
  5151. i++;
  5152. }
  5153. i--;
  5154. drugtmspeccal1 = "";
  5155. drugtmspeccal2 = "";
  5156. dispddarray = "";
  5157. disptmarray = "";
  5158. dispflagarray = "";
  5159. } else {
  5160. ds_hidden_warddruginfo_warddruglist.setColumn(i, "drugtmspec_recalc1", "");
  5161. ds_hidden_warddruginfo_warddruglist.setColumn(i, "drugtmspec_recalc2", "");
  5162. ds_hidden_warddruginfo_warddruglist.setColumn(i, "drugtmspeccal", "");
  5163. ds_hidden_warddruginfo_warddruglist.setColumn(i, "dispddarray", "");
  5164. ds_hidden_warddruginfo_warddruglist.setColumn(i, "disptmarray", "");
  5165. ds_hidden_warddruginfo_warddruglist.setColumn(i, "dispflagarray", "");
  5166. ds_hidden_warddruginfo_warddruglist.setColumn(i, "todaydrugtimes", ""); //--(20080920)
  5167. ds_hidden_warddruginfo_warddruglist.setColumn(i, "carebasedd", ""); //--(20081226)
  5168. ds_hidden_warddruginfo_warddruglist.setColumn(i, "carebasetm", ""); //--(20081226)
  5169. }
  5170. }
  5171. }
  5172. /**
  5173. * @group :
  5174. * @ver : 2008.06.19
  5175. * @by : 김보성
  5176. * @---------------------------------------------------
  5177. * @type : function
  5178. * @access : public
  5179. * @desc : 반환사유내역등록기능
  5180. * @param :
  5181. * @param :
  5182. * @return :
  5183. * @---------------------------------------------------
  5184. */
  5185. function fnEndddSave() {
  5186. var sPathSave = "/root/send/savedata/drugreportinfo"; //저장원본
  5187. var sPathEndCond = "/root/endsave/endcond"; //enddd 확인 결과(조회)
  5188. var sPathEndResult = "/root/endsave/endresult"; //enddd 확인 결과(결과)
  5189. var sPathEndSave = "/root/endsave/endinfo"; //반환사유정보생성path
  5190. var sRows = ds_send_savedata_drugreportinfo.rowcount; //저장원본총갯수
  5191. var sRowsEnd = 0;
  5192. var sTempExecdd = "";
  5193. var sinstcd = sysf_getUserInfo("dutplceinstcd");
  5194. var sEndFlag = false;
  5195. var sprcpdd = "";
  5196. var sprcpno = "";
  5197. var sprcphistno = "";
  5198. var sexecprcpno = "";
  5199. var sinstcd = "";
  5200. var sioflag = "";
  5201. var enddd = ""; //(20080731)
  5202. var endddflag = true; //(20080820) 처음만 물어본다.
  5203. for( var row=0 ; row<sRows ; row++ ){
  5204. //////////////////////alert (sRows + "/" + row);
  5205. sTempExecdd = ds_send_savedata_drugreportinfo.getColumn(row, "execcarestatcd");
  5206. sEndFlag = false;
  5207. //간호Acting진행상태(N(미확인)/R(정상투약)/P(투약X-반환가능)/I(투약X-반환불가)/L(퇴원당일 남은약)
  5208. //Execcarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + forarr[k] + "]/execcarestatcd");
  5209. //-------------------------------------------------------------------------
  5210. //ACTING된후 미확인으로 전환되거나, 투약X-반환가능인경우 ACTING이 취소된다
  5211. //마감이 되어 있으면 사유팝업을 이용한다.
  5212. //-------------------------------------------------------------------------
  5213. //////////////////////alert(sTempExecdd);
  5214. if ( sTempExecdd == "N" || sTempExecdd == "P") {
  5215. // <pastexecdd>20080618</pastexecdd> //exip의 실시일자
  5216. // <medrexecdd>20080617</medrexecdd> //medr의 투약일자(현재시점:20080619에서는 투약일자=실시일자이다.
  5217. sprcpdd = ds_send_savedata_drugreportinfo.getColumn(row, "prcpdd");
  5218. sprcpno = ds_send_savedata_drugreportinfo.getColumn(row, "prcpno");
  5219. sprcphistno = ds_send_savedata_drugreportinfo.getColumn(row, "prcphistno");
  5220. sexecprcpno = ds_send_savedata_drugreportinfo.getColumn(row, "execprcpno");
  5221. sinstcd = sysf_getUserInfo("dutplceinstcd");
  5222. sioflag = "I";
  5223. sTempExecdd = ds_send_savedata_drugreportinfo.getColumn(row, "pastexecdd"); //---------(20080820)
  5224. //////////////////////alert(sTempExecdd);
  5225. //acting된것
  5226. if (sTempExecdd != "00000000" ) {
  5227. //현재시점의 마감을 확인한다.
  5228. //model.removeNodeset(sPathEndResult+"/enddd");
  5229. //model.makeNode(sPathEndResult+"/enddd");
  5230. ds_endsave_endcond.setColumn(0, "prcpdd", sprcpdd);
  5231. ds_endsave_endcond.setColumn(0, "prcpno", sprcpno);
  5232. ds_endsave_endcond.setColumn(0, "prcphistno", sprcphistno);
  5233. ds_endsave_endcond.setColumn(0, "execprcpno", sexecprcpno);
  5234. ds_endsave_endcond.setColumn(0, "instcd", sinstcd);
  5235. ds_endsave_endcond.setColumn(0, "ioflag", sioflag);
  5236. var oParam = {};
  5237. oParam.id = "TRMNR00610";
  5238. oParam.service = "caremedirecapp.CareMediRec";
  5239. oParam.method = "reqGetEndddList";
  5240. oParam.inds = "endcond=ds_endsave_endcond";
  5241. oParam.outds = "ds_endsave_endresult=endresult ds_endsave_narcresult=narcresult";
  5242. oParam.async = false;
  5243. //oParam.callback = "cf_TRMNR00610";
  5244. tranf_submit(oParam);
  5245. //////////////////////alert(model.getValue(sPathEndResult + "/enddd"));
  5246. /*
  5247. if ((model.getValue(sPathEndResult + "/enddd") == "00000000") ||
  5248. (model.getValue(sPathEndResult + "/enddd") == "") ||
  5249. (model.getValue(sPathEndResult + "/enddd") == "-")) {
  5250. */
  5251. //--------test(20080731)
  5252. enddd = ds_endsave_endresult.getColumn(0, "enddd");
  5253. enddd = enddd.substr(0,8);
  5254. //////////////////////alert("마감일자:" + enddd);
  5255. //return
  5256. //----------------------
  5257. if ( enddd == "99991231") {
  5258. sEndFlag = false;
  5259. } else {
  5260. sEndFlag = true;
  5261. }
  5262. }
  5263. if ( sEndFlag ) {
  5264. //check: acting된것인데, enddd가 있는경우에 미확인으로 처리할경우인지를 확인해야함
  5265. sRowsEnd++;
  5266. ds_endsave_endinfo_list.setColumn(0, "prcpdd", sprcpdd);
  5267. ds_endsave_endinfo_list.setColumn(0, "prcpno", sprcpno);
  5268. ds_endsave_endinfo_list.setColumn(0, "prcphistno", sprcphistno);
  5269. ds_endsave_endinfo_list.setColumn(0, "execprcpno", sexecprcpno);
  5270. ds_endsave_endinfo_list.setColumn(0, "instcd", sinstcd);
  5271. ds_endsave_endinfo_list.setColumn(0, "ioflag", sioflag);
  5272. //////////////////////alert("반환사유 테스트");
  5273. if( ds_endsave_endinfo_list.rowcount > 0 ){
  5274. //-------------------------
  5275. //처음만 물어본다.
  5276. if ( endddflag == true) {
  5277. //if (messageBox("이미 마감된 투약처방입니다. 정말 취소 ","Q003","") != 6) {
  5278. if (sysf_messageBox("저장대상 자료중 이미 마감된 투약처방이 존재합니다. 정말 취소작업을 ","Q003","") != 6) {
  5279. return false;
  5280. } else {
  5281. endddflag == false;
  5282. }
  5283. }
  5284. //-------------------------
  5285. var objArg = new Object();
  5286. objArg.arg_ds_endinfo_result_list = ds_endsave_endinfo_list;
  5287. frmf_modal("SPPAS03000","SPPAS03000",objArg,"",2,100,100,"","","","","","M");
  5288. }
  5289. }
  5290. }
  5291. }
  5292. return true;
  5293. }
  5294. /**
  5295. * @group :
  5296. * @ver : 2008.08.01
  5297. * @by : 김보성
  5298. * @---------------------------------------------------
  5299. * @type : function
  5300. * @access : public
  5301. * @desc : worklist 호출
  5302. * @param :
  5303. * @param :
  5304. * @return :
  5305. * @---------------------------------------------------
  5306. */
  5307. //------------------(20080801)
  5308. function fnWorkListCall() {
  5309. var sWardCd = ds_main_cond.getColumn(0, "wardcd");
  5310. var sRoomCd = ds_main_patinfo.getColumn(0, "roomcd");
  5311. var sPid = ds_main_patinfo.getColumn(0, "pid");
  5312. var sPatNm = ds_main_patinfo.getColumn(0, "patnm");
  5313. //-----------(20081226)
  5314. //var sDd = model.getValue("/root/main/cond/orddd");
  5315. var sDd = utlf_transNullToEmpty(ds_main_cond.getColumn(0, "rgstddtm"));
  5316. sDd = sDd.substring(0,8);
  5317. //-----------(20081226)
  5318. if( utlf_isNull(sPid) ){
  5319. sysf_messageBox("환자가 선택되지 않았습니다.","E999");
  5320. return;
  5321. }
  5322. frmf_setParameter("SMMNR06300_Param", sWardCd);
  5323. frmf_setParameter("SMMNR06300_Param1", sRoomCd);
  5324. frmf_setParameter("SMMNR06300_Param2", sPid);
  5325. frmf_setParameter("SMMNR06300_Param3", sPatNm);
  5326. frmf_setParameter("SMMNR06300_Param4", sDd);
  5327. //////////////////////alert(sPid);
  5328. //------------------------(20080910)
  5329. //그리드를 선택한 자료를 worklist에 전달한다.
  5330. var sCnt = 5;
  5331. var sParamNm = "";
  5332. var sParamValue = "";
  5333. //var sPath = "/root/main/warddruginfo/warddruglist";
  5334. frmf_setParameter("SMMNR06300_Param5", "N0");
  5335. for( var row=0 ; row<ds_main_warddruginfo_warddruglist.rowcount ; row++ ){
  5336. sParamValue = "";
  5337. if( ds_main_warddruginfo_warddruglist.getColumn(row, "check") == "1" ){
  5338. sParamValue = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpdd");
  5339. sParamValue += "/" + ds_main_warddruginfo_warddruglist.getColumn(row, "prcpno");
  5340. sCnt ++;
  5341. frmf_setParameter("SMMNR06300_Param5", "Y"+sCnt);
  5342. sParamNm = "SMMNR06300_Param" + sCnt;
  5343. frmf_setParameter(sParamNm, sParamValue);
  5344. }
  5345. }
  5346. //------------------------(20080910)
  5347. //modal("SMMNR06300");
  5348. frmf_modal("SMMNR06300","SMMNR06300",null,null,1,"","","","","","","","M"); //yjh
  5349. }
  5350. //------------------(20080801)
  5351. //------------------(20080829)
  5352. //TEST
  5353. // 투약기록 통합기록을 위한 자료 추출질의문 -- 작업 중(LOOP만큼 호출할것)
  5354. function fnSignSaveCall(workflag) {
  5355. var spid = "13573600"; //desc="등록번호"(필수)
  5356. var sinstcd = "012"; //desc="기관코드"(사용X)
  5357. var sindd = "20081003"; //desc="입원일자"(필수)
  5358. var scretno = "1"; //desc="생성번호"(사용X)
  5359. var sprcpdd = ""; //desc="처방일자"(PRN시 필수아닌것 같음)
  5360. var sprcpno = ""; //desc="처방번호"(확인사항)
  5361. var sworkdd = "20081215"; //desc="투약일" (일자그룹일때만 (필수))
  5362. var slistflag = "90"; //desc="작업구분"(필수)
  5363. var snursnm = "간호사명"; //desc="간호사명추가"(필수)
  5364. var shngnm = "환자명"; //desc="환자명추가" (필수)
  5365. var smedrexecdd = ""; //desc="화면에서저장할투약일자"(사용X)
  5366. var smedrexectm = ""; //desc="화면에서저장할투약시간"(사용X)
  5367. ds_signinfo_reqsigncond.setColumn(0, "pid", spid); //desc="등록번호"
  5368. ds_signinfo_reqsigncond.setColumn(0, "instcd", sinstcd); //desc="기관코드"
  5369. ds_signinfo_reqsigncond.setColumn(0, "indd", sindd); //desc="입원일자"
  5370. ds_signinfo_reqsigncond.setColumn(0, "cretno", scretno); //desc="생성번호"
  5371. ds_signinfo_reqsigncond.setColumn(0, "prcpdd", sprcpdd); //desc="처방일자"
  5372. ds_signinfo_reqsigncond.setColumn(0, "prcpno", sprcpno); //desc="처방번호"
  5373. ds_signinfo_reqsigncond.setColumn(0, "workdd", sworkdd); //desc="투약일"
  5374. ds_signinfo_reqsigncond.setColumn(0, "listflag", slistflag); //desc="작업구분"
  5375. ds_signinfo_reqsigncond.setColumn(0, "nursnm", snursnm); //desc="간호사명추가"
  5376. ds_signinfo_reqsigncond.setColumn(0, "hngnm", shngnm); //desc="환자명추가"
  5377. ds_signinfo_reqsigncond.setColumn(0, "medrexecdd", smedrexecdd); //desc="화면에서저장할투약일자"
  5378. ds_signinfo_reqsigncond.setColumn(0, "medrexectm", smedrexectm); //desc="화면에서저장할투약시간"
  5379. ds_signinfo_signdruginfo_signdruglist.clearData();
  5380. var oParam = {};
  5381. oParam.id = "TRMNR00609";
  5382. oParam.service = "caremedirecapp.CareMediRec";
  5383. oParam.method = "reqGetSignDrugList";
  5384. oParam.inds = "reqsigncond=ds_signinfo_reqsigncond";
  5385. oParam.outds = "ds_signinfo_signdruginfo_signdruglist=signdruglist";
  5386. oParam.async = false;
  5387. //oParam.callback = "cf_TRMNR00609";
  5388. tranf_submit(oParam);
  5389. }
  5390. //------------------(20080829)
  5391. /**
  5392. * @group :
  5393. * @ver : 2008.08.31
  5394. * @by : 김보성
  5395. * @---------------------------------------------------
  5396. * @type : function
  5397. * @access : public
  5398. * @desc : 투약기록 관련 인증저장(interface제공한 web에서 사용)(iprc단위 1개 처리용)
  5399. * : 따라서 여러개의 iprc이면 n번 호출해야한다.
  5400. * @param :
  5401. * @return :
  5402. * @---------------------------------------------------
  5403. */
  5404. /* // TEST용
  5405. function fnSignSaveWork() {
  5406. var sSignPath = "/root/signinfo/signdruginfo/signdruglist";
  5407. var sSignPathCount = getNodesetCount(sSignPath);
  5408. var sPathSignSave = "/root/signinfo/signsave/signdata";
  5409. if ( sSignPathCount <= 0 ) {
  5410. messageBox("자료가 존재하지 않습니다. ","E999");
  5411. return;
  5412. }
  5413. model.removenode("/root/send/savedata");
  5414. for(var j = 1; j <= getNodesetCount(sSignPath); j++){
  5415. sSignRow= j; //전역변수(프로그램내)
  5416. if(Sign.signprocess() == false){//인증저장 데이터 생성fMake_SignData 호출
  5417. return;
  5418. }
  5419. //////////////////////alert("j=" + j);
  5420. var temppid = model.getValue(sSignPath + "[j]/pid"); //pid
  5421. var temporddd = model.getValue(sSignPath + "[j]/orddd"); //입원일자
  5422. var tempsignno = ""; //서명번호
  5423. var tempcretno = model.getValue(sSignPath + "[j]/cretno"); //생성번호
  5424. var temporddeptcd = model.getValue(sSignPath + "[j]/orddeptcd"); //진료부서코드
  5425. var temporddrid = model.getValue(sSignPath + "[j]/orddrid"); //진료의사id
  5426. model.makeValue(sPathSignSave + "[j-1]/pid", temppid); //pid
  5427. model.makeValue(sPathSignSave + "[j-1]/orddd", temporddd); //입원일자
  5428. model.makeValue(sPathSignSave + "[j-1]/signno", tempsignno); //서명번호
  5429. model.makeValue(sPathSignSave + "[j-1]/cretno", tempcretno); //생성번호
  5430. model.makeValue(sPathSignSave + "[j-1]/recdd", getCurrentDate()); //실제기록이 이루어진 기록일자
  5431. model.makeValue(sPathSignSave + "[j-1]/rectm", getCurrentTime()); //실제기록이 이루어진 기록시간
  5432. model.makeValue(sPathSignSave + "[j-1]/recsaveflag", "Y"); //전자서명인적정보변경여부
  5433. model.makeValue(sPathSignSave + "[j-1]/signflag", "02"); //서명자료구분(02:간호)
  5434. model.makeValue(sPathSignSave + "[j-1]/signgenrflag", "I"); //외래/입원구분
  5435. model.makeValue(sPathSignSave + "[j-1]/formcd", "0000002476"); //투약기록 서식번호
  5436. model.makeValue(sPathSignSave + "[j-1]/orddeptcd", temporddeptcd); //진료부서코드
  5437. model.makeValue(sPathSignSave + "[j-1]/orddrid", temporddrid); //진료부서ID
  5438. model.makeValue(sPathSignSave + "[j-1]/signbfcnts", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  5439. model.makeValue(sPathSignSave + "[j-1]/signaftcnts", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  5440. }
  5441. }
  5442. */
  5443. //-----------------------------
  5444. //TEST 일자별 인증정보 생성하기
  5445. //-----------------------------
  5446. function fnSignSaveWork() {
  5447. var signDate = "20081212"
  5448. var sPathSign = "/root/signinfo";
  5449. var spid = "13573600"; //등록번호 (필수)
  5450. var sinstcd = "";//model.getValue("/root/main/wardpatinfo/wardpatlist/instcd"); //기관코드
  5451. var sindd = "20081003"; //입원일자 (필수)
  5452. var scretno = "2"; //생성번호
  5453. var sprcpdd = ""; //처방일자 (PRN시 필수)
  5454. var sprcpno = ""; //처방번호 (확인사항)
  5455. var sworkdd = "20081215"; //model.getValue("/root/main/cond/orddd"); //투약일(일자그룹일때만 (필수)
  5456. var slistflag = "90"; //고정 //작업구분 (필수)
  5457. var snursnm = "간호사명"; //간호사명추가 (필수)
  5458. var shngnm = "이정희" //환자명추가 (필수)
  5459. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  5460. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  5461. ds_signinfo_reqsigncond.setColumn(0, "pid", spid); //desc="등록번호"
  5462. ds_signinfo_reqsigncond.setColumn(0, "instcd", sinstcd); //desc="기관코드"
  5463. ds_signinfo_reqsigncond.setColumn(0, "indd", sindd); //desc="입원일자"
  5464. ds_signinfo_reqsigncond.setColumn(0, "cretno", scretno); //desc="생성번호"
  5465. ds_signinfo_reqsigncond.setColumn(0, "prcpdd", sprcpdd); //desc="처방일자"
  5466. ds_signinfo_reqsigncond.setColumn(0, "prcpno", sprcpno); //desc="처방번호"
  5467. ds_signinfo_reqsigncond.setColumn(0, "workdd", sworkdd); //desc="투약일"
  5468. ds_signinfo_reqsigncond.setColumn(0, "listflag", slistflag); //desc="작업구분"
  5469. ds_signinfo_reqsigncond.setColumn(0, "nursnm", snursnm); //desc="간호사명추가"
  5470. ds_signinfo_reqsigncond.setColumn(0, "hngnm", shngnm); //desc="환자명추가"
  5471. ds_signinfo_reqsigncond.setColumn(0, "medrexecdd", smedrexecdd); //desc="화면에서저장할투약일자"
  5472. ds_signinfo_reqsigncond.setColumn(0, "medrexectm", smedrexectm); //desc="화면에서저장할투약시간"
  5473. var pFlag = "Drug"; //저장구분 (Drug : 투약기록)
  5474. var pNode1 = "ds_signinfo_reqsigncond"; //조회할 조건 PATH(의미없음)
  5475. var pNode2 = "ds_signinfo_signdruginfo_signdruglist"; //Return 리스트 PATH
  5476. var pIoflag = "I"; //---(20080917)
  5477. fCare_SignNode(pFlag, pNode1, pNode2,spid,sindd,scretno,pIoflag);
  5478. }
  5479. //------------------------(20080902)
  5480. //일자별 인증정보를 묶을 일자를 찾는다
  5481. //넣어야 할지는 판단한다.
  5482. function signdayFind(signDates,findDate) {
  5483. var sreturn = false;
  5484. if( findDate == "00000000" || utlf_isNull(findDate) ){
  5485. } else {
  5486. //////////////////////alert("signDates.length:"+ signDates.length);
  5487. for( var i=0 ; i<signDates.length ; i++ ){
  5488. //////////////////////alert("비교:" + signDates[i] + "/" + findDate);
  5489. sreturn = true;
  5490. if ( signDates[i] == findDate) {
  5491. sreturn = false;
  5492. break;
  5493. }
  5494. }
  5495. }
  5496. return sreturn;
  5497. }
  5498. //------------------------(20080902)
  5499. /**
  5500. * @group :
  5501. * @ver : 2008.10.10
  5502. * @by : 김보성
  5503. * @---------------------------------------------------
  5504. * @type : function
  5505. * @access : public
  5506. * @desc : 투약내역 리스트 정리
  5507. * @param :
  5508. * @param :
  5509. * @return :
  5510. * @---------------------------------------------------
  5511. */
  5512. //---------------(20081015)
  5513. function fnClearGrid() {
  5514. ds_main_patinfo.setColumn(0, "roomcd", "");
  5515. ds_main_patinfo.setColumn(0, "pid", "");
  5516. ds_main_patinfo.setColumn(0, "patnm", "");
  5517. ds_main_patinfo.setColumn(0, "sexage", "");
  5518. //----------(20081226)
  5519. ds_init2_rgstddtminfo_rgstddtmlist.deleteRow(0);
  5520. ds_main_cond.setColumn(0, "rgstddtm", "");
  5521. //----------(20081226)
  5522. if(screen_mode == "pat"){
  5523. fClickDrugList("drg", 0);
  5524. }else if(screen_mode == "act"){
  5525. fClickDrugList("act", 0);
  5526. }else{}
  5527. }
  5528. //---------------(20081010)
  5529. //---------------(20081014)
  5530. /*
  5531. 20081014
  5532. validate
  5533. hidden의 instance에 있는 drugtmspec 의 항목의 split 수와 calctims수를 확인한다.
  5534. */
  5535. function fndrugcalcCheck() {
  5536. var drugtmspec = "";
  5537. var calctims = "";
  5538. var validateYN = "";
  5539. var prcpdd = "";
  5540. var prcpno = "";
  5541. var prcphistno = "";
  5542. var execprcpno = "";
  5543. var spid = "";
  5544. var prcpcd = "";
  5545. var mthdcd = "";
  5546. var execprcpuniqno = "";
  5547. var timscnt = 0;
  5548. var prcptimscalc= "";
  5549. var drugerrmsg = "";
  5550. var drugerrPath = ds_drugerrinfo_drugerrlist;
  5551. drugerrPath.clearData();
  5552. var drugerrcnt = -1;
  5553. for( var i=0 ; i<ds_hidden_warddruginfo_warddruglist.rowcount ; i++ ){
  5554. drugtmspec = ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugtmspec");
  5555. calctims = ds_hidden_warddruginfo_warddruglist.getColumn(i, "calctims");
  5556. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  5557. prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno");
  5558. prcphistno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcphistno");
  5559. execprcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "execprcpno");
  5560. execprcpuniqno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "execprcpuniqno");
  5561. spid = ds_hidden_warddruginfo_warddruglist.getColumn(i, "pid");
  5562. prcpcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  5563. mthdcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "mthdcd");
  5564. prcptims = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcptims");
  5565. var execcarestatcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "execcarestatcd");
  5566. var prcphistcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcphistcd");
  5567. var fstrgstdt = ds_hidden_warddruginfo_warddruglist.getColumn(i, "fstrgstdt");
  5568. var orddrnm = ds_hidden_warddruginfo_warddruglist.getColumn(i, "orddrnm");
  5569. var indd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "indd");
  5570. var cretno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "cretno");
  5571. var prcpclscd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpclscd");
  5572. var wardcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "wardcd");
  5573. validateYN = "Y"; //정상자료
  5574. timscnt = utlf_transNullToEmpty(drugtmspec).split(" ").length;
  5575. //-------------------(20081105)
  5576. drugtmspec = fntrim(drugtmspec);
  5577. if ( utlf_isNull(drugtmspec) ){
  5578. //-------------------(20081105)
  5579. validateYN = "N"; //이상자료
  5580. timscnt = 0;
  5581. }
  5582. if (timscnt != calctims) validateYN = "N"; //이상자료
  5583. ////////////alert( timscnt + "/" + calctims + "/" +validateYN + "/" + drugtmspec + "/");
  5584. if (validateYN == "N") {
  5585. if( utlf_isNull(drugtmspec) ){
  5586. drugerrmsg += "용법(" + mthdcd + ")의 횟수에 대한 시간대정보(" + drugtmspec + "없음)가 존재하지 않습니다("+ prcpcd +") \n"
  5587. } else {
  5588. drugerrmsg += "용법(" + mthdcd + ")의 횟수에 대한 시간대정보갯수(" + timscnt + ")와 " +
  5589. " 처방("+ prcpcd + ")에 대한 횟수(" + prcptims + ")가 다릅니다. \n"
  5590. }
  5591. drugerrcnt ++;
  5592. drugerrPath.addRow();
  5593. drugerrPath.setColumn(drugerrcnt, "prcpdd", prcpdd);
  5594. drugerrPath.setColumn(drugerrcnt, "prcpno", prcpno);
  5595. drugerrPath.setColumn(drugerrcnt, "prcphistno", prcphistno);
  5596. drugerrPath.setColumn(drugerrcnt, "execprcpno", execprcpno);
  5597. drugerrPath.setColumn(drugerrcnt, "execprcpuniqno", execprcpuniqno);
  5598. drugerrPath.setColumn(drugerrcnt, "prcpcd", prcpcd);
  5599. drugerrPath.setColumn(drugerrcnt, "drugtmspec", drugtmspec);
  5600. drugerrPath.setColumn(drugerrcnt, "execcarestatcd", execcarestatcd);
  5601. drugerrPath.setColumn(drugerrcnt, "prcphistcd", prcphistcd);
  5602. drugerrPath.setColumn(drugerrcnt, "exipfstrgstdt", fstrgstdt);
  5603. drugerrPath.setColumn(drugerrcnt, "orrdnm", orddrnm);
  5604. drugerrPath.setColumn(drugerrcnt, "prcpclscd", prcpclscd);
  5605. drugerrPath.setColumn(drugerrcnt, "pid", spid);
  5606. drugerrPath.setColumn(drugerrcnt, "indd", indd);
  5607. drugerrPath.setColumn(drugerrcnt, "cretno", cretno);
  5608. drugerrPath.setColumn(drugerrcnt, "wardcd", wardcd);
  5609. }
  5610. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "validateyn1", "string", validateYN, i);
  5611. }
  5612. if( !utlf_isNull(drugerrmsg) ){
  5613. drugerrmsg += "" +
  5614. " \n" +
  5615. " 투약기준시간관리에서 용법에 대한 자료를 확인하십시오( " + (drugerrcnt+1) +" 건 )";
  5616. sysf_messageBox( "투약기준시간관리에 등록된 \n\n" + drugerrmsg ,"E999");
  5617. }
  5618. }
  5619. //---------------(20081014)
  5620. //fClickDrugListBefore(); //------------(20081031)
  5621. //fClickDrugListAfter(); //------------(20081031)
  5622. //-------------------(20081031)
  5623. function fClickDrugListBefore() {
  5624. group3.grd_druglist.visible = false;
  5625. group3.bolall.visible = false;
  5626. //grp//////////alert.visible = true;
  5627. callLoadingWindow("");
  5628. }
  5629. function fClickDrugListAfter() {
  5630. group3.grd_druglist.visible = true;
  5631. group3.bolall.visible = true;
  5632. removeLoadingWindow();
  5633. group3.grd_druglist.vscrollbar.pos = 0;
  5634. //--------------(20081121)
  5635. //숨겨진 상태에서는 포커스가 설정되지 않는다.
  5636. //저장전 위치로 저장이후 재조회시 위치이동시킴
  5637. if (toprowflag == "Y") {
  5638. if( group3.grd_druglist.vscrollbar.max > toprow) {
  5639. group3.grd_druglist.vscrollbar.pos = toprow;
  5640. }
  5641. toprowflag = "N";
  5642. }
  5643. //--------------(20081121)
  5644. }
  5645. //--------원무팀의 입원등록에서 사용하는 것 이용함
  5646. function callLoadingWindow(msg){
  5647. //20080703 이동식 추가
  5648. //환자정보 조회 중 상태 표시
  5649. // body.createChild("xforms:iviewer", "id:ivr_progress; src:../../../com/commonweb/xrw/SPZZZ00400_로딩중화면.xrw; left:435px; top:339px; width:330px; height:120px;");
  5650. // var ivrObjt = document.all("ivr_progress");
  5651. // if( msg == '' || msg == '-' ){
  5652. // msg = "투약기록 조회 중 입니다...";
  5653. // }
  5654. // ivrObjt.model.setValue("/root/main/msg", msg);
  5655. setWaitCursor(true);
  5656. }
  5657. function removeLoadingWindow(){
  5658. //20080703 이동식 추가
  5659. //환자정보 조회 중 상태 표시 지우기
  5660. //body.removeChild("ivr_progress");
  5661. setWaitCursor(false);
  5662. }
  5663. function WaitLoadingWindow(idx) {
  5664. // var msg = "투약기록 조회 중 입니다...";
  5665. // //var msg = "투약기록 조회(" + idx + ") 중 입니다...";
  5666. // var ivrObjt = document.all("ivr_progress");
  5667. // model.setFocus("ivr_progress");
  5668. // ivrObjt.model.setFocus("caption75");
  5669. //
  5670. // ivrObjt.model.setValue("/root/main/msg", msg);
  5671. // ivrObjt.model.refresh();
  5672. // //model.setFocus("output33");
  5673. // model.refresh();
  5674. setWaitCursor(true);
  5675. }
  5676. //-------------------(20081031)
  5677. //-------------------(20081105)
  5678. function fntrim(tmpValue) {
  5679. for(;tmpValue.indexOf(" ")!= -1;) {
  5680. tmpValue = tmpValue.replace(" ","");
  5681. }
  5682. return tmpValue;
  5683. }
  5684. //-------------------(20081105)
  5685. //-------------------(20081211)
  5686. // tmpvalue : 원본 문자열
  5687. // str1 : 찾고자 하는 문자열
  5688. // str2 : 바꾸고자 문자열
  5689. function fnReplace(tmpValue,str1,str2) {
  5690. for(;tmpValue.indexOf(str1)!= -1;) {
  5691. tmpValue = tmpValue.replace(str1,str2);
  5692. }
  5693. return tmpValue;
  5694. }
  5695. //-------------------(20081211)
  5696. //--------------------(20081112)
  5697. //sDigit 에서 반올림
  5698. function fnRound(sValue,sDigit) {
  5699. var rtnValue ;
  5700. var stemp = Math.pow(10,sDigit);
  5701. rtnValue = sValue;
  5702. rtnValue = rtnValue * stemp;
  5703. rtnValue = rtnValue / stemp;
  5704. rtnValue = Math.round(rtnValue);
  5705. return rtnValue;
  5706. }
  5707. //--------------------(20081112)
  5708. //시간대정보 변경시
  5709. function fSetDrugCheck(row,col) {
  5710. var grdRow = row;
  5711. var xmlRow = row;
  5712. var dccomcountyn = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "dccomcountyn");
  5713. var messageyn = "N";
  5714. var cell_color = "";
  5715. var forarrcol = "";
  5716. var chkflag = "";
  5717. var chkarrno = "";
  5718. if( col >= grd_colcnt ){
  5719. if( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+col)) ){
  5720. cell_color = ds_main_warddruginfo_warddruglist.getColumn(grdRow, "color"+col);
  5721. }else{
  5722. cell_color = "";
  5723. }
  5724. if( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarrcol"+col)) ){
  5725. forarrcol = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "forarrcol"+col);
  5726. }else{
  5727. forarrcol = "";
  5728. }
  5729. if( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr"+col)) ){
  5730. chkflag = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "forarr"+col);
  5731. }else{
  5732. chkflag = "";
  5733. }
  5734. if( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarrno"+col)) ){
  5735. chkarrno = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "forarrno"+col);
  5736. }else{
  5737. chkarrno = "";
  5738. }
  5739. }
  5740. //////alert(chkflag + "/" + xmlRow + "/" + col);
  5741. if( utlf_isNull(chkflag) ){
  5742. sysf_messageBox("입력항목이 아닌것은 입력 할 수","I004");
  5743. ds_main_warddruginfo_warddruglist.rowposition = -1;
  5744. return false;
  5745. }
  5746. if( col >= grd_colcnt ){
  5747. if ( chkarrno == "2" ) {
  5748. sysf_messageBox("상태값은 변경 할 수","I004");
  5749. ds_main_warddruginfo_warddruglist.rowposition = -1;
  5750. return false;
  5751. } else {
  5752. //////alert(cell_color + "/" + gray + "/" + orange);
  5753. //-------------(20081226)
  5754. if (chkarrno == 0) {
  5755. cell_color = ds_main_warddruginfo_warddruglist.getColumn(grdRow, "color"+col);
  5756. } else if (chkarrno ==1) {
  5757. cell_color = ds_main_warddruginfo_warddruglist.getColumn(grdRow, "color"+col);
  5758. }
  5759. /*
  5760. //입력사항 체크
  5761. var tempInValue = grd_druglist.valueMatrix(row,col);
  5762. //저장시도 체크해야 할것 같음
  5763. if (chkarrno ==1) {
  5764. if(tempInValue != "-3" && tempInValue != "-2" && tempInValue != "-1" && tempInValue != "0" &&
  5765. tempInValue != "3" && tempInValue != "2" && tempInValue != "1"){
  5766. messageBox("Day는 -3일 ~ 3일만 입력할수 있습니다.","I999");
  5767. return;
  5768. }
  5769. } else if (chkarrno ==0) {
  5770. if(tempInValue.length != 4){
  5771. messageBox("기준시간은 4자리를 입력해야 합니다.","I999");
  5772. return;
  5773. }
  5774. }
  5775. */
  5776. //-------------(20081226)
  5777. if(cell_color == gray || cell_color == orange ){
  5778. } else {
  5779. sysf_messageBox("투약기록한 처방은 투약시간을 변경 할 수","I004");
  5780. ds_main_warddruginfo_warddruglist.rowposition = -1;
  5781. return false;
  5782. }
  5783. //---------------(20081226)
  5784. ////alert(dccomcountyn + "/" + cell_color + "/" + white);
  5785. //---------------(20081226)
  5786. if(dccomcountyn == "Y" && !utlf_isNull(cell_color) && cell_color != white ){
  5787. sysf_messageBox("D/C확정된 처방은 변경 할 수","I004");
  5788. ds_main_warddruginfo_warddruglist.rowposition = -1;
  5789. return false;
  5790. }
  5791. }
  5792. //입력/수정 상태값 변경
  5793. //////alert(xmlRow + "/" + forarrcol);
  5794. //////alert( model.getValue(xWardDrugListPath + "[" + xmlRow+ "]/for[" + forarrcol + "]/iudflag") );
  5795. fChangeValueStatus(xmlRow, forarrcol);
  5796. //-------------------------------------(20081223)
  5797. //값반영(이곳까지 성공)
  5798. //currentdd를 바꿀것
  5799. var prcphopedd = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "prcphopedd");
  5800. var saveday = "";
  5801. var savetm = "";
  5802. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("times" + parseInt(col+1))) ){
  5803. ds_main_warddruginfo_warddruglist.addColumn("times" + parseInt(col+1), "string");
  5804. }
  5805. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("times" + col)) ){
  5806. ds_main_warddruginfo_warddruglist.addColumn("times" + col, "string");
  5807. }
  5808. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("times" + parseInt(col-1))) ){
  5809. ds_main_warddruginfo_warddruglist.addColumn("times" + parseInt(col-1), "string");
  5810. }
  5811. if ( chkarrno == 0) {
  5812. saveday = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "times" + parseInt(col+1));
  5813. savetm = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "times" + col);
  5814. } else if (chkarrno == 1) {
  5815. saveday = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "times" + col);
  5816. savetm = ds_main_warddruginfo_warddruglist.getColumn(xmlRow, "times" + parseInt(col-1));
  5817. }
  5818. var savedt = getDateAddc(prcphopedd, saveday);
  5819. eval(xWardDrugListPath+xmlRow+"for").setColumn(forarrcol-1, "carebasedd", savedt);
  5820. eval(xWardDrugListPath+xmlRow+"for").setColumn(forarrcol-1, "carebasetm", savetm);
  5821. fncarebasetmspec(xmlRow);
  5822. //-------------------------------------(20081223)
  5823. }
  5824. ////alert("fSetDrugCheck");
  5825. return true;
  5826. }
  5827. //-------------------------------(20081223
  5828. //시간대정보 변경시 전체 시간정보를 구한다.
  5829. //-------------------------------
  5830. function fncarebasetmspec(row) {
  5831. var carebasetmspecarr ="";
  5832. var sdaycnt = 0;
  5833. var stime = 0;
  5834. var stimecalctemp = 0;
  5835. var stimecalc = "";
  5836. var sdaycalc = "";
  5837. var timescol = "";
  5838. var tempvalue = "";
  5839. var prcphopedd = "";
  5840. var forarrnocnt = "";
  5841. if (row >-1) {
  5842. //증가된 컬럼수
  5843. forarrnocnt = ds_main_warddruginfo_warddruglist.getColumn(row, "forarrnocnt");
  5844. prcphopedd = ds_main_warddruginfo_warddruglist.getColumn(row, "prcphopedd");
  5845. for( var j=0 ; j<=forarrnocnt ; j++ ){
  5846. timescol = j + grd_colcnt
  5847. if( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarrno"+timescol)) ){
  5848. tempvalue = ds_main_warddruginfo_warddruglist.getColumn(row, "forarrno"+ timescol);
  5849. }else{
  5850. tempvalue = "";
  5851. }
  5852. ////alert("01:" + tempvalue);
  5853. if( !utlf_isNull(tempvalue) ){
  5854. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("times"+ timescol)) ){
  5855. ds_main_warddruginfo_warddruglist.addColumn("times"+ timescol, "string");
  5856. }
  5857. if ( tempvalue == 0) {
  5858. stime = ds_main_warddruginfo_warddruglist.getColumn(row, "times"+ timescol); //절대시간
  5859. } else if ( tempvalue == 1) {
  5860. sday = ds_main_warddruginfo_warddruglist.getColumn(row, "times"+ timescol); //일수
  5861. } else {
  5862. ////alert("02:" + stime + "/" + sday);
  5863. sdaycalc = getDateAddc(prcphopedd,sday); //절대일자
  5864. sday = parseInt(sday * 2400,10) ; //상대시간
  5865. if ( sday >= 0) {
  5866. ////alert("03:" + stime + "/" + sday);
  5867. stimecalctemp = parseInt(sday,10) + parseInt(stime,10); //상대시간들을 계산한다.
  5868. } else {
  5869. ////alert("03:" + stime + "/" + sday);
  5870. stimecalctemp = parseInt(sday,10) + ( (-1) * parseInt(stime,10)); //상대시간들을 계산한다.
  5871. }
  5872. ////alert("04:" + stimecalctemp);
  5873. stimecalc += fCarec_GetFillZeno(stimecalctemp,4,0)+ " " ;
  5874. }
  5875. }
  5876. }
  5877. ////alert("10:"+ stimecalc);
  5878. stimecalc = stimecalc.substring(0,stimecalc.length-1);
  5879. stimecalc = sortHashKeysString(stimecalc); //1226(반드시 정렬을 해야한다)
  5880. flagDsWarddruglist = true;
  5881. ds_main_warddruginfo_warddruglist.setColumn(row, "drugbasetmspec", stimecalc);
  5882. flagDsWarddruglist = false;
  5883. }
  5884. }
  5885. //-------------------------------(20081223
  5886. function fgetwarddrugtimecomboList(sParam, row){
  5887. group3.btn_drugcard.enable = false;
  5888. group3.btn_hydprint.enable = false;
  5889. ds_send_medicard_warddruglist.clearData();
  5890. ds_send_medicard8_warddruglist.clearData();
  5891. var pid = "";
  5892. if(sParam == "drg"){
  5893. ds_main_cond.setColumn(0, "pid", ds_main_wardpatinfo_wardpatlist.getColumn(row, "pid"));
  5894. ds_main_cond.setColumn(0, "indd", ds_main_wardpatinfo_wardpatlist.getColumn(row, "indd"));
  5895. ds_main_cond.setColumn(0, "cretno", ds_main_wardpatinfo_wardpatlist.getColumn(row, "cretno"));
  5896. }else if(sParam == "act"){
  5897. ds_main_cond.setColumn(0, "pid", ds_main_wardactinfo_wardactlist.getColumn(row, "pid"));
  5898. ds_main_cond.setColumn(0, "indd", ds_main_wardactinfo_wardactlist.getColumn(row, "indd"));
  5899. ds_main_cond.setColumn(0, "cretno", ds_main_wardactinfo_wardactlist.getColumn(row, "cretno"));
  5900. ds_main_cond.setColumn(0, "orddd", ds_main_wardactinfo_wardactlist.getColumn(row, "prcpdd"));
  5901. }else{}
  5902. //model.resetInstanceNode("/root/send/reqdata");
  5903. ds_main_cond.setColumn(0, "yorddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),-1));
  5904. ds_main_cond.setColumn(0, "torddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),+1));
  5905. //---------------------(20080721)
  5906. //ER 환자에 대한 선처치기능을 처리하기 위해서 ORDTYPE을 넘긴다.
  5907. var ordtype = ds_main_wardpatinfo_wardpatlist.getColumn(row, "ordtype");
  5908. ds_main_cond.setColumn(0, "ordtype", ordtype);
  5909. //----------------------
  5910. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  5911. var oParam = {};
  5912. oParam.id = "TRMNR08001";
  5913. oParam.service = "caremedirecapp.CareMediRec";
  5914. oParam.method = "reqGetwarddrugtimecomboList";
  5915. oParam.inds = "reqcond=ds_send_reqdata";
  5916. oParam.outds = "ds_init2_rgstddtminfo_rgstddtmlist=rgstddtmlist";
  5917. oParam.async = false;
  5918. //oParam.callback = "cf_TRMNR08001";
  5919. tranf_submit(oParam); //처방일자 콤보
  5920. //----------(20081226)
  5921. if( ds_init2_rgstddtminfo_rgstddtmlist.rowcount > 0 ){ //자료가 존재하면 처음 index를 자동선택시킨다.
  5922. group3.group5.cmbprcpddtm.index = 0;
  5923. ds_main_cond.setColumn(0, "rgstddtm", group3.group5.cmbprcpddtm.value);
  5924. group3_group5_cmbprcpddtm_onitemchanged();
  5925. group3.group5.cmbprcpddtm.setFocus();
  5926. } else {
  5927. //화면정리를 위해서 호출한다.
  5928. if(screen_mode == "pat"){
  5929. fClickDrugList("drg", 0);
  5930. }else if(screen_mode == "act"){
  5931. fClickDrugList("act", 0);
  5932. }else{}
  5933. }
  5934. //----------(20081226)
  5935. }
  5936. ]]></Script>