SMMNR08000.js 240 KB

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