SMMNR00600.js 306 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822
  1. /*
  2. 투약기록(SMMNR006_투약기록.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 xHiddenRtnMsgPath = "/root/hidden/rtnmsg";
  13. var xPatInfoPath = "/root/main/paminfo/pamlist";
  14. var xMediCard8 = "/root/send/medicard8/warddruglist";//수액라벨, 주사라벨용 데이타
  15. var xHiddenMediCard8 = "/root/hidden/medicard8/warddruglist";//수액라벨, 주사라벨용 데이타
  16. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  17. var sPathNarcResult = "/root/endsave/narcresult"; //마약잔량신청상태조회 확인 결과(결과)
  18. var sPathEndCond = "/root/endsave/endcond"; //enddd 확인 결과(조회)
  19. var xBarCordPath = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo/pcl/pcllist";
  20. var xDrMode = "N";
  21. var xDrRec = "N";
  22. var xOpfromdt = "";
  23. var signtime = "";
  24. var vsettime = "";
  25. var signgbn = "A";
  26. //var grd_colcnt = 17+1;
  27. //-----------------(20081118)
  28. //var grd_colcnt = 18;
  29. //var grd_title1 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^ ^";
  30. //var grd_title2 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^ ^";
  31. //var grd_colcnt = 19;
  32. //var grd_title1 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^수액No\n적용^ ^";
  33. //var grd_title2 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^수액No\n적용^ ^";
  34. //var grd_colcnt = 21;
  35. //var grd_title1 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  36. //var grd_title2 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  37. //var grd_colcnt = 21;
  38. //var grd_title1 = "선택^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  39. //var grd_title2 = "^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  40. /** <addon>
  41. *개발일시: 2010.07.06
  42. *개발자: 양천덕
  43. *요청병원: 세종병원
  44. *요청파트: 병동간호
  45. *개발내용: 투약기록에 투약번호 필드 추가
  46. </addon>
  47. */
  48. // 2010-03-15 라벨출력여부 컬럼추가
  49. var grd_colcnt = 24;
  50. //20110107_KNUH_Start 컬럼 2개 변경.
  51. var grd_title1 = "선택^라벨^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^1회\n용량^단위^1일\n수량^1회\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  52. var grd_title2 = "^라벨^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^^1회\n용량단위^1일\n수량^1회\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  53. //var grd_title1 = "선택^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^투약No^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  54. //var grd_title2 = "^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^투약No^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  55. //-----------------(20081118)
  56. var addCol_Array = new Array;
  57. var baseCol_Array = new Array;
  58. var mixno_Array = new Array;
  59. var colIndex_Array = new Array;
  60. var addCol_Cnt = 0;
  61. var screen_mode = "pat";
  62. var gray = "#c0c0c0";
  63. var yellow = "#ffff00";
  64. var yellowishgreen = "#80ff00";
  65. var red = "#ff0000";
  66. var sky = "#00ffff";
  67. var blue = "#0000ff";
  68. var white = "#ffffff";
  69. //var yellowishgreen = "#80ff00"
  70. //-----------------(20081201)
  71. var orange = "#ff00ff";
  72. //-----------------(20081201)
  73. var top_pid = "";
  74. var sign_row = "";
  75. var sign_saverow = ""; //20081112
  76. var sign_savecol = ""; //20081112
  77. //-------------(20080831)
  78. var sSignRow = "";
  79. var gTimer = "";
  80. //-------------(20081121)
  81. var toprow = 0;
  82. var toprowflag = "N";
  83. var spcldept="";
  84. //-------------(20081121)
  85. /**
  86. * @group :
  87. * @ver : 2007.06.23
  88. * @by : 최경용
  89. * @---------------------------------------------------
  90. * @type : function
  91. * @access : public
  92. * @desc : 투약기록 초기값 셋팅 및 초기조회
  93. * @param :
  94. * @param :
  95. * @return :
  96. * @---------------------------------------------------
  97. */
  98. function fInitialize(){
  99. xDrMode = "N";
  100. xDrRec = "N";
  101. //------------------------------
  102. // 수술기록지 제어를 위해 연동 2014.01.22 KJS
  103. var paraGbn = opener.javascript.getParameter("SMMNR00600_gbn");
  104. var paraPid = opener.javascript.getParameter("SMMNR00600_pid");
  105. var paraOpdate = opener.javascript.getParameter("SMMNR00600_opdate");
  106. var paraOprsrvno = opener.javascript.getParameter("SMMNR00600_oprsrvno");
  107. //------------------------------
  108. // 수술예방적 항생제 기준시간 및 액티시간 연동 '15.09.16 - AYS
  109. var paraCarebasedd = opener.javascript.getParameter("SMMNR00600_carebasedd");
  110. var paraCarebasetm = opener.javascript.getParameter("SMMNR00600_carebasetm");
  111. var paraCaregbn = opener.javascript.getParameter("SMMNR00600_caregbn");
  112. // 수술예방적 항생제 기준시간 및 액티시간 연동 '15.09.16 - AYS
  113. //alert("paraCarebasedd : " + paraCarebasedd + " paraCarebasetm : " + paraCarebasetm + " paraCaregbn : " + paraCaregbn);
  114. var instcd = getUserInfo("dutplceinstcd");
  115. var systemcd = getSystemCd();
  116. btn_drugcard.visible = true;
  117. //-------------------(20080910)
  118. //로그인 간호사의 정보추출
  119. model.setValue("/root/main/cond/loguserid", getUserId());
  120. model.setValue("/root/main/cond/logdeptcd", getUserInfo("dutplcecd"));
  121. //model.resetInstanceNode("/root/send/reqdata");
  122. model.removeNodeset("/root/send/reqdata");
  123. model.makeNode("/root/send/reqdata");
  124. model.copynode("/root/send/reqdata", xCondPath);
  125. submit("TRMNR00606");
  126. if (getNodesetCount("/root/main/loguserinfo/loguserlist") > 0 ) {
  127. model.setValue("/root/main/cond/opprcpcond","2");
  128. }
  129. //-------------------
  130. //-------------(20080910)
  131. model.setValue("/root/main/cond/multicheck", "false");
  132. //-------------(20080910)
  133. model.setValue("/root/main/cond/orddd", getCurrentDate());
  134. model.setValue("/root/main/cond/opcnfmdd", getCurrentDate());
  135. //model.setValue("/root/main/cond/orddd", "20080124");
  136. model.setValue("/root/main/cond/yorddd", getDateAddc(model.getValue("/root/main/cond/orddd"),-1));
  137. model.setValue("/root/main/cond/torddd", getDateAddc(model.getValue("/root/main/cond/orddd"),+1));
  138. screen_mode = "pat";
  139. model.toggle("pat");
  140. grp_btnpat.selected = true;
  141. radio_ColorChange();
  142. grd_druglist.removeRow(true);
  143. grd_actlist.mergecells = "bycol";
  144. grd_actlist.mergecol(2) = false;
  145. grd_actlist.refresh();
  146. var sTemp = "";
  147. if (bool1.value == "true") {
  148. if ( getDateInterval( getCurrentDate() , model.getValue("/root/main/cond/orddd") ) < 3
  149. && getDateInterval( getCurrentDate() , model.getValue("/root/main/cond/orddd") ) > -3 ) {
  150. model.setValue("/root/main/cond/currentday", getCurrentDate());
  151. model.setValue("/root/main/cond/currenttime", getCurrentTime().substr(0,4));
  152. ipt_currentdd.disabled = true; //(20080731)
  153. }else {
  154. bool1.value = "false";
  155. }
  156. } else if (bool1.value == "false"){
  157. model.setValue("/root/main/cond/currentday", "");
  158. model.setValue("/root/main/cond/currenttime", "");
  159. ipt_currentdd.disabled = false; //(20080731)
  160. } else {}
  161. //-----------------------------------
  162. //--------------------------------------
  163. // 바코드OCX 생성(출력시로 이동)(20080720)
  164. // 20080917 다시 open함
  165. if(document.all("CommAX") == null){
  166. //lzzfMakeBrcdPrntObj("CommAX"); //(20080721이전버젼)
  167. //0929
  168. var scrnid = "SMMNR00600";
  169. fGetBarCodeInfo(scrnid); // CareCom.js
  170. // fGetBarCodeInfo(getScreenID());
  171. lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721이후버젼) //0921임시로막음
  172. }
  173. //--------------------------------------
  174. ////////alert(getUserInfo("macaddr") + "/" + app.macaddress); app.macaddress성공
  175. //--------------------------(20080919)다시 살림
  176. //fGetBarCodeInfo(getScreenID());//바코드 라벨 초기 설정값 조회 //1024
  177. //fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //1024
  178. //--------------------------(20080919)
  179. fGetWardList();
  180. model.makeNode("/root/init/M0381list/M0381/cdid");
  181. model.makeNode("/root/init/M0381list/M0381/cdnm");
  182. zbcfGetCodeList(new Array("M0381"), new Array("/root/init/M0381list"));
  183. // 환자정보 조회
  184. model.removeNodeSet(xPatInfoPath);
  185. var sPamInfo = getGlobalVariable("paminfo");
  186. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist"); //환자정보내리기
  187. var sPID = model.getValue(xPatInfoPath+"/pid");
  188. var sWardCd = model.getValue(xPatInfoPath+"/wardcd");
  189. var sRoomCd = model.getValue(xPatInfoPath+"/roomcd"); //병실정보(20080912)
  190. //var top_pid = sPID;
  191. var roomcd = "";
  192. var patnm = "";
  193. var sexage = "";
  194. if(sWardCd == ""){
  195. model.setValue("/root/main/cond/wardcd", getUserInfo("dutplcecd"));
  196. }else{
  197. model.setValue("/root/main/cond/wardcd", sWardCd);
  198. }
  199. fGetRoomList();
  200. //-----------------------------(20080912)
  201. if(sRoomCd != ""){
  202. model.setValue("/root/main/cond/roomcd", sRoomCd);
  203. }
  204. //-----------------------------(20080912)
  205. //20140103 KJS 의사(수술예방적항생제)일 경우 default로 현재시간으로 기록하도록 설정
  206. if(getScreenMenuParameter() == "dr" || paraGbn == "dr" || paraCaregbn == "dr") {
  207. bool1.value = "true";
  208. model.setValue("/root/main/cond/currentday", getCurrentDate());
  209. model.setValue("/root/main/cond/currenttime", getCurrentTime().substr(0,4));
  210. model.setValue("/root/main/cond/chemoflag", "preanti");
  211. model.setValue("/root/main/cond/wardcd", "0000000000");
  212. if (paraGbn == "dr") {
  213. //alert("paraGbn == dr");
  214. model.setValue("/root/main/cond/opcnfmdd", paraOpdate);
  215. model.setValue("/root/main/cond/orddd", paraOpdate);
  216. }
  217. if(paraCaregbn == "dr") {
  218. if(paraCarebasedd != "" && paraCarebasedd != null && paraCarebasetm != "" && paraCarebasetm != null){
  219. //alert("paraCaregbn == dr");
  220. //model.setValue("/root/main/cond/chemoflag", "ALL");
  221. //model.setValue("/root/main/cond/currentday", paraCarebasedd);
  222. model.setValue("/root/main/cond/orddd", paraCarebasedd);
  223. model.setValue("/root/main/cond/opcnfmdd", paraCarebasedd);
  224. //model.setValue("/root/main/cond/currenttime", paraCarebasetm);
  225. }
  226. }
  227. xDrMode = "Y";
  228. chk_oppatyn.value = "Y";
  229. chk_oppatyn.visible = true;
  230. fnClearGrid();
  231. if (screen_mode == "pat") {
  232. if (paraGbn == "dr") {
  233. //model.property("noactflag") = "";
  234. fGetPatList(paraPid);
  235. messageBox("분홍색 칸(예방적항생제)을 클릭한 후 인증저장 버튼을 누르세요", "I999");
  236. xDrRec = "Y";
  237. } else {
  238. fGetPatList();
  239. }
  240. } else if (screen_mode == "act") {
  241. fGetActList();
  242. } else {
  243. }
  244. } else {
  245. bool1.value = "false";
  246. }
  247. if ( isNull( model.getValue( "/root/init/ward[wardcd='"+ model.getValue("/root/main/cond/wardcd") + "']/wardnm" )) ){
  248. return;
  249. }
  250. //fGetPatList(sPID);
  251. //-----------------------------(20080906)
  252. //fSetsettingrnid();
  253. //-----------------------------(20080906)
  254. // if(sPID != ""){
  255. // for(var i = 1; i <= getNodesetCount(xWardPatListPath); i++){
  256. // if(model.getValue(xWardPatListPath + "[" + i + "]/pid") == sPID){
  257. // roomcd = model.getValue(xWardPatListPath + "[" + i + "]/roomcd");
  258. // patnm = model.getValue(xWardPatListPath + "[" + i + "]/patnm");
  259. // sexage = model.getValue(xWardPatListPath + "[" + i + "]/sexage");
  260. //
  261. // model.setValue("/root/main/patinfo/roomcd", roomcd);
  262. // model.setValue("/root/main/patinfo/pid", sPID);
  263. // model.setValue("/root/main/patinfo/patnm", patnm);
  264. // model.setValue("/root/main/patinfo/sexage", sexage);
  265. //
  266. // model.setFocus("grd_patlist");
  267. // grd_patlist.row = i;
  268. // grd_patlist.dispatch("onentercell");
  269. //
  270. // fClickDrugListBefore(); //------------(20081031)
  271. // fClickDrugList("drg", i);
  272. // fClickDrugListAfter(); //------------(20081031)
  273. // return;
  274. // }
  275. // }
  276. // }
  277. model.refresh();
  278. }
  279. /**
  280. * @group :
  281. * @ver : 2008.09.06
  282. * @by :
  283. * @---------------------------------------------------
  284. * @type : function
  285. * @access : public
  286. * @desc : 내환자가 설정되어 있으면 자동으로 내환자설정시키기(성공)
  287. * @param :
  288. * @param :
  289. * @return :
  290. * @---------------------------------------------------
  291. */
  292. function fSetsettingrnid(){
  293. var sUserId = getUserId();
  294. var sUserIdFind = ""
  295. for(i = 1; i <= getNodesetCount("/root/main/wardpatinfo/settingrn"); i++ ) {
  296. sUserIdFind = model.getValue("/root/main/wardpatinfo/settingrn["+ i +"]/settingrnid");
  297. if (sUserId == sUserIdFind) {
  298. model.setValue("/root/main/cond/settingrnid", sUserIdFind);
  299. model.refresh();
  300. fGetPatList();
  301. return;
  302. }
  303. }
  304. }
  305. /**
  306. * @group :
  307. * @ver : 2007.06.23
  308. * @by : 최경용
  309. * @---------------------------------------------------
  310. * @type : function
  311. * @access : public
  312. * @desc : 병동 리스트 조회
  313. * @param :
  314. * @param :
  315. * @return :
  316. * @---------------------------------------------------
  317. */
  318. function fGetWardList(){
  319. submit("TRMNR00601");
  320. }
  321. /**
  322. * @group :
  323. * @ver : 2007.06.23
  324. * @by : 최경용
  325. * @---------------------------------------------------
  326. * @type : function
  327. * @access : public
  328. * @desc : 투약기록 투약 상태 라디오 버튼 배경색 변경
  329. * @param :
  330. * @param :
  331. * @return :
  332. * @---------------------------------------------------
  333. */
  334. function radio_ColorChange(){
  335. //-------------(20081201)
  336. rdo_drugstat.item(0).attribute("background-color") = gray;
  337. rdo_drugstat.item(1).attribute("background-color") = yellow;
  338. rdo_drugstat.item(2).attribute("background-color") = yellowishgreen;
  339. rdo_drugstat.item(3).attribute("background-color") = red;
  340. rdo_drugstat.item(4).attribute("background-color") = sky;
  341. //rdo_drugstat.item(0).attribute("background-color") = gray;
  342. //rdo_drugstat.item(1).attribute("background-color") = orange;
  343. //rdo_drugstat.item(2).attribute("background-color") = yellow;
  344. //rdo_drugstat.item(3).attribute("background-color") = yellowishgreen;
  345. //rdo_drugstat.item(4).attribute("background-color") = red;
  346. //rdo_drugstat.item(5).attribute("background-color") = sky;
  347. //-------------(20081201)
  348. }
  349. /**
  350. * @group :
  351. * @ver : 2007.06.23
  352. * @by : 최경용
  353. * @---------------------------------------------------
  354. * @type : function
  355. * @access : public
  356. * @desc : 투약기록 환자 리스트 조회
  357. * @param :
  358. * @param :
  359. * @return :
  360. * @---------------------------------------------------
  361. */
  362. function fGetPatList(pPid){
  363. var sPID = "";
  364. // model.resetInstanceNode("/root/send/reqdata");
  365. model.removeNodeset("/root/send/reqdata");
  366. model.makeNode("/root/send/reqdata");
  367. model.copynode("/root/send/reqdata", xCondPath);
  368. submit("TRMNR00603");
  369. //var sPID = model.getValue("/root/main/patinfo/pid");
  370. if ( isNull(pPid) ){
  371. sPID = top_pid;
  372. } else {
  373. top_pid = pPid
  374. sPID = top_pid;
  375. }
  376. if(sPID != ""){
  377. for(var i = 1; i <= getNodesetCount(xWardPatListPath); i++){
  378. if(model.getValue(xWardPatListPath + "[" + i + "]/pid") == sPID){
  379. model.setFocus("grd_patlist");
  380. grd_patlist.row = i;
  381. grd_patlist.dispatch("onentercell");
  382. fClickDrugListBefore(); //------------(20081031)
  383. fClickDrugList("drg", i);
  384. fClickDrugListAfter(); //------------(20081031)
  385. return;
  386. }
  387. }
  388. }
  389. }
  390. /**
  391. * @group :
  392. * @ver : 2007.06.23
  393. * @by : 최경용
  394. * @---------------------------------------------------
  395. * @type : function
  396. * @access : public
  397. * @desc : 조회조건 변경시 환자정보및 투약정보 조회
  398. * @param :
  399. * @param :
  400. * @return :
  401. * @---------------------------------------------------
  402. */
  403. function fSearch(){
  404. fClickDrugListBefore(); //------------(20081031)
  405. var objGrid = null;
  406. var xPatPath = "";
  407. var pid = top_pid;
  408. var i =0;
  409. if(screen_mode == "pat"){
  410. objGrid = grd_patlist;
  411. xPatPath = "/root/main/wardpatinfo/wardpatlist";
  412. i = objGrid.findRow( pid ,1,objGrid.colRef("pid") ,true,true);
  413. model.setFocus("objGrid");
  414. objGrid.row = i;
  415. objGrid.dispatch("onentercell");
  416. fClickDrugList("drg", objGrid.row);
  417. }else if(screen_mode == "act"){
  418. objGrid = grd_actlist;
  419. xPatPath = "/root/main/wardactinfo/wardactlist";
  420. i = objGrid.findRow( pid ,1,objGrid.colRef("pid") ,true,true);
  421. model.setFocus("objGrid");
  422. objGrid.row = i;
  423. objGrid.dispatch("onentercell");
  424. fClickDrugList("act", objGrid.row);
  425. }else{}
  426. fClickDrugListAfter(); //------------(20081031)
  427. }
  428. /**
  429. * @group :
  430. * @ver : 2007.06.23
  431. * @by : 최경용
  432. * @---------------------------------------------------
  433. * @type : function
  434. * @access : public
  435. * @desc : 투약기록 병동별 병실 리스트 조회
  436. * @param :
  437. * @param :
  438. * @return :
  439. * @---------------------------------------------------
  440. */
  441. function fGetRoomList(){
  442. model.setValue("/root/main/cond/roomcd", "");
  443. model.removeNodeset("/root/send/reqdata");
  444. model.makeNode("/root/send/reqdata");
  445. model.copynode("/root/send/reqdata", xCondPath);
  446. submit("TRMNR00602");
  447. }
  448. /**
  449. * @group :
  450. * @ver : 2007.06.23
  451. * @by : 최경용
  452. * @---------------------------------------------------
  453. * @type : function
  454. * @access : public
  455. * @desc : 투약기록 환자별 투약 기록 리스트 조회
  456. * @param :
  457. * @param :
  458. * @return :
  459. * @---------------------------------------------------
  460. */
  461. function fClickDrugList(sParam, row){
  462. btn_drugcard.disabled = true;
  463. btn_hydprint.disabled = true;
  464. btn_injprint.disabled = true;
  465. model.removenode("/root/send/medicard/warddruglist");
  466. model.removenode("/root/send/medicard8/warddruglist");
  467. var pid = "";
  468. if(sParam == "drg"){
  469. model.setValue(xCondPath + "/pid", model.getValue(xWardPatListPath + "[" + row + "]/pid"));
  470. model.setValue(xCondPath + "/indd", model.getValue(xWardPatListPath + "[" + row + "]/indd"));
  471. model.setValue(xCondPath + "/cretno", model.getValue(xWardPatListPath + "[" + row + "]/cretno"));
  472. model.setValue("/root/main/patinfo/roomcd", model.getValue(xWardPatListPath + "[" + row + "]/roomcd"));
  473. model.setValue("/root/main/patinfo/pid", model.getValue(xWardPatListPath + "[" + row + "]/pid"));
  474. model.setValue("/root/main/patinfo/patnm", model.getValue(xWardPatListPath + "[" + row + "]/patnm"));
  475. model.setValue("/root/main/patinfo/sexage", model.getValue(xWardPatListPath + "[" + row + "]/sexage"));
  476. }else if(sParam == "act"){
  477. model.setValue(xCondPath + "/pid", model.getValue(xWardActListPath + "[" + row + "]/pid"));
  478. model.setValue(xCondPath + "/indd", model.getValue(xWardActListPath + "[" + row + "]/indd"));
  479. model.setValue(xCondPath + "/cretno", model.getValue(xWardActListPath + "[" + row + "]/cretno"));
  480. if(row > 0) {
  481. model.setValue(xCondPath + "/orddd", model.getValue(xWardActListPath + "[" + row + "]/prcpdd"));
  482. }
  483. model.setValue("/root/main/patinfo/roomcd", model.getValue(xWardActListPath + "[" + row + "]/roomcd"));
  484. model.setValue("/root/main/patinfo/pid", model.getValue(xWardActListPath + "[" + row + "]/pid"));
  485. model.setValue("/root/main/patinfo/patnm", model.getValue(xWardActListPath + "[" + row + "]/patnm"));
  486. model.setValue("/root/main/patinfo/sexage", model.getValue(xWardActListPath + "[" + row + "]/sexage"));
  487. } else {
  488. }
  489. if (model.getValue("/root/main/cond/wardcd") == "0000000000") {
  490. xOpfromdt = model.getValue(xWardPatListPath + "[" + row + "]/opfromdt");
  491. var preantidt = model.getValue(xWardPatListPath + "[" + row + "]/preantidt");
  492. if (xDrMode = "dr") {
  493. if (preantidt != "" && preantidt != "-") {
  494. model.setValue("/root/main/cond/currentday", preantidt.substr(0, 8));
  495. model.setValue("/root/main/cond/currenttime", preantidt.substr(8,4));
  496. }else {
  497. model.setValue("/root/main/cond/currentday", getCurrentDate());
  498. model.setValue("/root/main/cond/currenttime", getCurrentTime().substr(0,4));
  499. }
  500. }
  501. }
  502. if (xOpfromdt != "" && xOpfromdt != "-") {
  503. model.makeValue("/root/main/patinfo/opfromdt", xOpfromdt);
  504. }
  505. //model.resetInstanceNode("/root/send/reqdata");
  506. model.removeNodeset("/root/send/reqdata");
  507. model.makeNode("/root/send/reqdata");
  508. model.setValue("/root/main/cond/yorddd", getDateAddc(model.getValue("/root/main/cond/orddd"),-1));
  509. model.setValue("/root/main/cond/torddd", getDateAddc(model.getValue("/root/main/cond/orddd"),+1));
  510. //---------------------(20080721)
  511. //ER 환자에 대한 선처치기능을 처리하기 위해서 ORDTYPE을 넘긴다.
  512. var ordtype = model.getValue(xWardPatListPath + "[" + row + "]/ordtype");
  513. model.setValue("/root/main/cond/ordtype", ordtype);
  514. //----------------------
  515. model.copynode("/root/send/reqdata", xCondPath);
  516. model.refresh();
  517. submit("TRMNR00604");
  518. //----------(20081031)
  519. //alert("db통과_ok");성능좋음
  520. //----------(20080808)
  521. //아래의 정보를 기준으로 화면을 구성한다.
  522. //그러나 아래의 정보가 정확하지 않을수 있으므로 fndrugcalcBefore() 에서 정확한 정보를 만들고 fndrugcalc()를 호출한다.
  523. //1. fndrugcalcbefore : model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")에 값설정(예정)
  524. //2. fndrugcalc : model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")를 기준으로 화면구성
  525. //----------
  526. //------------------------------------
  527. //투약시간계산(20080808)
  528. //------------------------------------
  529. fndrugcalcbefore();
  530. //----------(20080808)
  531. //------------------------------------
  532. //투약시간계산(20080530)
  533. //------------------------------------
  534. fndrugcalc(); //조회여부구분
  535. //------------------------------------
  536. //-----------------------------------(20081014)
  537. // hidden의 instance에 있는 drugtmspec 의 항목의 split 수와 calctims수를 확인한다.
  538. fndrugcalcCheck();
  539. //-----------------------------------(20081014)
  540. var array_drugtmspec = "";
  541. var drugtmspec = "";
  542. var drugtmspeccal = "";
  543. var temp_drugtmspec = 0;
  544. /* --(20080530)
  545. //--------------------------------------------------------------------
  546. //drugtmspec에서 시간 추출해서 drugtmspeccal에 화면 표시 시간으로 변경
  547. // fndrugcalc에서 drugtmspeccal를 생성함
  548. //--------------------------------------------------------------------
  549. for(var i = 1; i<= getNodesetCount(xHiddenWardDrugPath); i++){
  550. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec"); //투여기준시간(1000 2200)
  551. if(drugtmspec != ""){
  552. array_drugtmspec = drugtmspec.split(" ");
  553. for(var j = 0; j < array_drugtmspec.length; j++){
  554. temp_drugtmspec = Number(array_drugtmspec[j]) % 2400;
  555. temp_drugtmspec = Math.abs(Number(temp_drugtmspec)).toString();
  556. drugtmspeccal += fCarec_GetFillZeno(temp_drugtmspec,4,0) + " ";
  557. }
  558. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", drugtmspeccal);
  559. drugtmspeccal = "";
  560. } else {
  561. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", "");
  562. }
  563. }
  564. */
  565. model.removenode("/root/main/warddruginfo");
  566. grd_druglist.refresh();
  567. var nodecnt = getNodesetCount(xHiddenWardDrugPath);
  568. if(nodecnt > 0){
  569. //수정(20080602)
  570. //dispflag 조건에 추가
  571. fSetDrugReBuild(nodecnt); //Hidden에 있는 인스턴스를 main으로 copy(처방별로 묶음)(임시row별 -> main컴럼설정)
  572. //막음(20080602)
  573. //Acting한 경우 Acting시간으로 컬럼 셋팅(OLD)(20080601이전)
  574. //fndrugcalc에서 ACTING 정보 반영(NEW)(20080601이후)작업중
  575. //fSetDrugExecDT(nodecnt);
  576. //그리드 시간 컬럼 삭제(시간 컬럼을 제외한 나머지 컬럼갯수 빼기(12))
  577. var sColCnt = grd_druglist.cols - grd_druglist.fixedcols - grd_colcnt;
  578. //grd_druglist.refresh();
  579. for(sColCnt; sColCnt > 0; sColCnt--){
  580. grd_druglist.removeColumn("false"); //refresh 하지 않음(false)
  581. }
  582. ////////alert("test");
  583. //return;
  584. //----------(20081031)
  585. //alert("튜닝요구되는 모듈시작");
  586. //----(20080603) new버젼
  587. fAddBaseDrugTime(); //투약기록 처방 내역 기준시간 Setting작업
  588. //----------(20081031)
  589. //alert("튜닝요구되는 모듈종료");
  590. }
  591. //careSetTree(grd_druglist,17,2,false);
  592. //그리드 타이틀 부분 머지
  593. grd_druglist.mergeCellsFixedRows = "byrestricrow";
  594. for(var k = 1; k < grd_colcnt; k++){
  595. grd_druglist.mergeByFree(0,k,1,k);
  596. }
  597. //DC는 CHECK불가
  598. for(var l = 1; l < grd_druglist.rows-1; l++){
  599. if(model.getValue(xWardDrugListPath + "[" + l + "]/dccomcountyn") == "Y"){
  600. model.setValue(xWardDrugListPath + "[" + l + "]/check", "false");
  601. }
  602. }
  603. //---------------------------(20080930)
  604. //기준시간setting를 sort한다.
  605. //시간대가-1이 되어 2200 1300 1800 -> 1300 1800 2200으로 변경
  606. var pGrd = grd_druglist;
  607. var settingtime = "";
  608. for(var l = 1; l < grd_druglist.rows-1; l++){
  609. settingtime = model.getValue(xWardDrugListPath + "[" + l + "]/drugtmspec_recalc1");
  610. settingtime = sortHashKeysString(settingtime); //sort
  611. model.setValue(xWardDrugListPath + "[" + l + "]/drugtmspec_recalc1", settingtime); //반영
  612. }
  613. //---------------------------(20080930)
  614. btn_drugcard.disabled = false;
  615. btn_hydprint.disabled = false;
  616. btn_injprint.disabled = false;
  617. //model.refresh();
  618. var fstrgstdt = "";
  619. var fstrgstdt2 = "";
  620. var reqflag ="";
  621. for(var i = grd_druglist.fixedRows; i < grd_druglist.rows; i++) {
  622. fstrgstdt2 = grd_druglist.valueMatrix(i, grd_druglist.colRef("fstrgstdt"));
  623. reqflag = model.getValue(grd_druglist.nodeset + "[" + (i-1) + "]/reqflag");
  624. if(reqflag != "") {
  625. grd_druglist.cellStyle("background-color", i, grd_druglist.colRef("prcpkindnm"), i, grd_druglist.colRef("prcpkindnm")) = "#11eeee";
  626. } else {
  627. grd_druglist.cellStyle("background-color", i, grd_druglist.colRef("prcpkindnm"), i, grd_druglist.colRef("prcpkindnm")) = "#ffffff";
  628. }
  629. if (fstrgstdt != fstrgstdt2) {
  630. fstrgstdt = fstrgstdt2;
  631. //20120413_KNUH_Start 처방시간별 구분선 추가(빨간색)
  632. if(i != grd_druglist.fixedRows){
  633. grd_druglist.rowStyle(i-1, "all", "border-bottom-color") = "#009999";
  634. grd_druglist.rowStyle(i-1, "all", "border-top-width") = "3";
  635. }
  636. }
  637. }
  638. }
  639. /**
  640. * @group :
  641. * @ver : 2007.06.23
  642. * @by : 최경용
  643. * @---------------------------------------------------
  644. * @type : function
  645. * @access : public
  646. * @desc : Hidden에 있는 인스턴스를 main으로 copy(처방별로 묶음)(조회data -> 화면data로 이동)
  647. * @param :
  648. * @param :
  649. * @return :
  650. * @---------------------------------------------------
  651. */
  652. function fSetDrugReBuild(nodecnt){
  653. var inst_cnt = 1;
  654. var prev_prcpno = "";
  655. var execcarestatcd = ""; //시간컬럼에 추가 하는 instanceList
  656. var tims = "";
  657. var execdd = "";
  658. //---------------------------------------------------------------
  659. //조회대상이 되는 자료row만 화면으로 넘긴다.
  660. //nodecnt : xHiddenWardDrugPath 이다.
  661. //---------------------------------------------------------------
  662. for(var cnt = 1; cnt <= nodecnt; cnt++){
  663. var prcpno1 = model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/prcpno")
  664. var prcpcd1 = model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/prcpcd")
  665. var copyflag = "N";
  666. //-------------------(20081014)
  667. var validateYN = model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/validateyn1");
  668. if (validateYN == "N") continue;
  669. //-------------------(20081015)
  670. //-------------------(시간대정보가 없음을 알림)(20080620)
  671. var timeinfo = model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/drugtmspec");
  672. var prcpinfo = model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/prcpcd");
  673. var drugmthdspccdinfo = model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/drugmthdspccd");
  674. if (timeinfo == "") {
  675. //--------------(20081014)fAddBaseDrugTime에서 메세지를 보낸다.
  676. //messageBox("처방(" + prcpinfo + ")에 대한 용법(" + drugmthdspccdinfo + ")의 " +
  677. // "투약기준시간정보가 존재하지 않습니다. " +
  678. // "투약기준시간정보를 확인하십시오.","E999");
  679. //--------------(20081014)
  680. continue;
  681. }
  682. //-----------------------------------------------------------------------
  683. //조회대상이 되는 자료를 찾는다.(의미없음)
  684. if( model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/dispflag") == "Y" ){
  685. var prcpno2 = "";
  686. var prcpcd2 = "";
  687. //이미 복사했는지 찾는다.(처방일자,처방번호 : pk의 성격과 유사하다)
  688. for (var i=1;i<= inst_cnt;i++) {
  689. prcpno2 = model.getValue(xWardDrugListPath + "[" + i + "]/prcpno");
  690. prcpcd2 = model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd");
  691. if (prcpno1 == prcpno2 && prcpcd1 == prcpcd2) {
  692. copyflag = "Y";
  693. break;
  694. }
  695. }
  696. if (copyflag != "Y") {
  697. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]", "");
  698. model.copynode(xWardDrugListPath + "[" + inst_cnt + "]", xHiddenWardDrugPath + "[" + cnt + "]");
  699. prev_prcpno = model.getValue(xHiddenWardDrugPath + "[" + cnt + "]/prcpno");
  700. inst_cnt++;
  701. }
  702. }
  703. }
  704. //-----------(20080702)
  705. //막으면 오류발생함
  706. model.refresh();
  707. }
  708. /**
  709. * @group :
  710. * @ver : 2007.06.23
  711. * @by : 최경용
  712. * @---------------------------------------------------
  713. * @type : function
  714. * @access : public
  715. * @desc : Acting한 경우 Acting시간으로 컬럼 셋팅
  716. * 투약한경우:투약일과 ACTING일(원무시행일)은 다를수 있다
  717. * 투약일은 용법에 의해서 변경되고 ACTING일은 투약일(5/2)이라도 오늘(5/1)ACTING하면 서로 다를수 있다.
  718. * @param :
  719. * @param :
  720. * @return :
  721. * @---------------------------------------------------
  722. */
  723. function fSetDrugExecDT(nodecnt){
  724. var inst_cnt = 1;
  725. //시간컬럼에 추가 하는 instanceList
  726. var tims = "";
  727. var drugtms = "";
  728. var execdd = "";
  729. var exectm = "";
  730. var prcpdd = "";
  731. var intervaldd = "";
  732. var temp_drugtmspec = "";
  733. var inst_cnt = 1;
  734. var temp_cnt = 1;
  735. var tmcalculate = "";
  736. var drugdd = model.getValue("/root/main/cond/orddd"); //조회일
  737. for(var i = 1; i <= nodecnt; i){
  738. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec").split(" ");
  739. tims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/tims");
  740. //-------------(20080912)
  741. var calctims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/calctims");
  742. //-------------(20080912)
  743. prcpdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpdd");
  744. temp_drugtmspec = "";
  745. temp_cnt = i;
  746. if(drugtmspec != ""){
  747. //-------------(20080912)
  748. //for(var j = 1; j <= tims; j++){
  749. for(var j = 1; j <= calctims; j++){
  750. //-------------(20080912)
  751. execdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/medrexecdd"); //투약일
  752. exectm = model.getValue(xHiddenWardDrugPath + "[" + i + "]/medrexectm"); //투약시간
  753. //alert("fSetDrugExecDT:" + execdd + "/" + exectm);
  754. exectm = exectm.substr(0,4);
  755. if(j != 1){
  756. temp_drugtmspec += " ";
  757. }
  758. if(execdd != "00000000"){ //acting이면
  759. intervaldd = getDateInterval(drugdd, execdd); //조회일과 acting일자의 차이 일수
  760. if(intervaldd < 0){
  761. tmcalculate = (-Number(exectm) + (Number(intervaldd) * 2400)); //-0900 + -2400 = -3300
  762. }else{
  763. tmcalculate = (Number(exectm) + (Number(intervaldd) * 2400)); // 0900 + 2400 = 3300
  764. }
  765. }else{
  766. tmcalculate = drugtmspec[j-1];
  767. }
  768. temp_drugtmspec += fCarec_GetFillZeno(tmcalculate,4,0);
  769. i++;
  770. }
  771. model.setValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec", temp_drugtmspec);
  772. inst_cnt++;
  773. //-----------(20080912)
  774. //for(var j = 1; j <= tims; j++){
  775. for(var j = 1; j <= calctims; j++){
  776. //-----------(20080912)
  777. model.setValue(xHiddenWardDrugPath + "[" + (temp_cnt + j - 1) + "]/drugtmspec", temp_drugtmspec);
  778. }
  779. }else{
  780. //----------(20080912)
  781. //i = i + parseInt(tims);
  782. i = i + parseInt(calctims);
  783. //----------(20080912)
  784. inst_cnt++;
  785. }
  786. }
  787. model.refresh();
  788. }
  789. /**
  790. * @group :
  791. * @ver : 2007.06.23
  792. * @by : 최경용
  793. * @---------------------------------------------------
  794. * @type : function
  795. * @access : public
  796. * @desc : 투약기록 처방 내역 기준시간 Setting작업(화면에 표시)
  797. * @param :
  798. * @param :
  799. * @return :
  800. * @---------------------------------------------------
  801. */
  802. function fAddBaseDrugTime(){
  803. var rows = grd_druglist.rows;
  804. var tims = 0;
  805. var drugtmspec = "";
  806. var drugtms = "";
  807. var sColCnt = grd_druglist.cols - grd_druglist.fixedcols - grd_colcnt;//시간 컬럼을 제외한 나머지 컬럼갯수 빼기(17)
  808. var sGrdCap = "";
  809. var prcpdd = model.getValue("/root/main/cond/orddd"); //처방일자(조회일)
  810. var meddays = "";
  811. var medtims = "";
  812. var cnt = 0;
  813. var sGrdCapDay = "";
  814. var sGrdCapTims = "";
  815. var execdd = "";
  816. var temp_drugtms = "";
  817. var temp_meddays = "";
  818. var timsYN = false;
  819. var daysYN = false;
  820. //그리드에 추가 할 컬럼 조사 및 정렬(화면구성)
  821. //그리드(grd_druglist)ROW만큼
  822. // for(var i = 1; i <= rows - 2; i++){
  823. //
  824. // drugtmspec= model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec");
  825. // tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims"); //처방횟수
  826. // if(drugtmspec != ""){
  827. // for(var j = 1; j <= tims; j++){
  828. //
  829. // drugtms = drugtmspec.split(" ");
  830. // temp_drugtms = drugtms[j-1]; //0900
  831. // temp_meddays = getDateAddc(prcpdd, parseInt(drugtms[j-1] / 2400)); //20080425
  832. //
  833. // timsYN = careIsSearchString(medtims, temp_drugtms); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  834. // daysYN = careIsSearchString(meddays, temp_meddays); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  835. //
  836. // //총컬럼갯수를 알기 위해서 전체 시간대를 찾는다.
  837. // if(timsYN == false || daysYN == false){
  838. // medtims += temp_drugtms + "^"; //전체 시간대
  839. // meddays += temp_meddays + "^"; //전체 일자
  840. // cnt++;
  841. // }
  842. // }
  843. // }
  844. // }
  845. ////alert("2");
  846. //---------------------------------------------
  847. //xWardDrugListPath에 있는 모든정보를 반영한다.
  848. //화면에 보일계산된 시간으로 컬럼을 구성한다.
  849. //---------------------------------------------
  850. for(var i = 1; i <= rows - 2; i++){
  851. //--------------------------------------------------------------------------
  852. //fndrugcalc 함수에서 화면에 보일시간 계산되었음
  853. //drugtmspec= model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec");
  854. //--------------------------------------------------------------------------
  855. drugtmspeccal = model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspeccal"); //상대시간대
  856. tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims"); //처방횟수
  857. //-----------------------(20080912)
  858. var calctims = model.getValue(xWardDrugListPath + "[" + i + "]/calctims");
  859. var tempprcpcd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd");
  860. //-----------------------(20080912)
  861. if(drugtmspeccal != ""){
  862. //-----------------------(20080912)
  863. //for(var j = 1; j <= tims; j++){
  864. for(var j = 1; j <= calctims; j++){
  865. //-----------------------(20080912)
  866. drugtms = drugtmspeccal.split(" ");
  867. temp_drugtms = drugtms[j-1]; //0900
  868. temp_meddays = getDateAddc(prcpdd, parseInt(drugtms[j-1] / 2400)); //20080425
  869. //0919: temp_drugtms가 없는 경우 오류이므로 원인을 찾아야 한다.
  870. //drugtmspeccal가 공백이 없이 들어온다. 0900공백2000 : 정상이나, 0900까지만 들어온다. 그래서 배열에서 오류발생
  871. //정렬이 잘못된경우임
  872. //timsYN = careIsSearchString(medtims, fCarec_GetFillZeno(temp_drugtms,4,0)); //중복시간대 찾기
  873. timsYN = careIsSearchString(medtims, temp_drugtms); //중복시간대 찾기
  874. daysYN = careIsSearchString(meddays, temp_meddays); //중복일자 찾기
  875. //-----------------------------------------------
  876. //총컬럼갯수를 알기 위해서 전체 시간대를 찾는다.
  877. //-----------------------------------------------
  878. if(timsYN == false || daysYN == false){
  879. ////alert("2-0:"+tempprcpcd + "/" + drugtmspeccal + "/" + temp_drugtms);
  880. medtims += fCarec_GetFillZeno(temp_drugtms,4,0) + "^"; //전체 시간대
  881. meddays += temp_meddays + "^"; //전체 일자
  882. cnt++;
  883. }
  884. }
  885. }
  886. }
  887. //---------------------------------------------(20081031)
  888. //alert("chk1_성능좋음");
  889. //---------------------------------------------
  890. //시간대 총컬럼 갯수를 정렬한다.
  891. //---------------------------------------------
  892. addCol_Cnt = cnt;
  893. ////////alert("변경전 sMeddays="+meddays+"/sMedtims="+medtims);
  894. var sMedtims = sortHashKeys2(medtims, cnt); //시간대 문자열 정렬(오름차순)
  895. var sMeddays = sortHashKeys(meddays, cnt); //일자 문자열 정렬(오름차순) //0918
  896. ////////alert("변경후 sMeddays="+sMeddays+"/sMedtims="+sMedtims);
  897. //--------------------------------------------
  898. //컬럼 숨김 계속 지정하기 위해...
  899. //투약기록 그리드 기본/펼치기 모드 이벤트(뒤의 마지막필드5개 숨기기)
  900. //--------------------------------------------
  901. fSelectOpenMoe();
  902. //--------------------------------------------
  903. //헤더시간대의 갯수만큼 컬럼추가
  904. //cnt : 추가해야할 총 컬럼수
  905. //--------------------------------------------
  906. var tempString = "";
  907. sGrdCap = grd_druglist.caption.split("|");
  908. var temp_tims = 0;
  909. for(var k = 1; k <= cnt; k++){
  910. grd_druglist.addColumn("ref:carecfactnm" + grd_druglist.cols + "; type:output; ", false);
  911. grd_druglist.colWidth(grd_druglist.cols - 1) = 45;
  912. //일자
  913. tempString = sMeddays[k-1].toString();
  914. addCol_Array[k-1] = sMedtims[k-1];
  915. sGrdCapDay += tempString.substr(4,2) + "/" + tempString.substr(6,2) + "^";
  916. //시각(0918)
  917. temp_tims = sMedtims[k-1] % 2400;
  918. temp_tims = Math.abs(Number(temp_tims)).toString();
  919. temp_tims = fCarec_GetFillZeno(temp_tims, 4,0);
  920. sGrdCapTims += temp_tims + "^";
  921. }
  922. //컬럼 타이틀 변경
  923. //grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  924. grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  925. var inst_cnt = 1;
  926. var tims = "";
  927. var drugtmspec = "";
  928. var prcphistno = "";
  929. var execprcpno = "";
  930. var execcarestatcd = "";
  931. var iudflag = "";
  932. var carecfact = "";
  933. var carecfactcd = "";
  934. var carecfactnm = "";
  935. var medrexistyn = "";
  936. var execprcpuniqno = "";
  937. var execdd = "";
  938. var prcpdd = ""
  939. var exectm = "";
  940. var signno = "";
  941. var signflag = "";
  942. var col_index = 0;
  943. var forarr = "";
  944. var prcphistno_array = "";
  945. var prcpuniqno_array = "";
  946. var prcp_array = "";
  947. var drugtmspeccal = "";
  948. var timesch = "";
  949. var drugdd = model.getValue("/root/main/cond/orddd");
  950. var tdrugdd = getDateAddc(drugdd, 1);
  951. var duty = model.getValue("/root/main/cond/duty");
  952. var calcdd = "";
  953. var medrexecdd = "";
  954. var medrexectm = "";
  955. var hiddenYN = new Array;
  956. //------------------------------
  957. //forarr : 자료존재 번호XML 태그
  958. //
  959. //추가 컬럼만큼 /forarr을 만든다.(컴럼의 상세정보를 반영하기 위해서)
  960. //------------------------------
  961. for(var x = 1; x <= getNodesetCount(xWardDrugListPath); x++){
  962. for(var y = 0; y < addCol_Array.length; y++){
  963. model.makeValue(xWardDrugListPath + "[" + x + "]/forarr" + (grd_colcnt + y), "");
  964. }
  965. }
  966. //------------------------------
  967. //모든 필드숨김기
  968. //------------------------------
  969. //test
  970. for(var z = 0; z <= grd_colcnt + addCol_Cnt; z++){
  971. hiddenYN[z] = "true"; //0923
  972. }
  973. //------------------------------
  974. //for : 자료존재 번호에 대한 상세 정보 XML 태그
  975. //------------------------------
  976. //조회data(xHiddenWardDrugPath) -> 화면data(xWardDrugListPath) -> xHiddenWardDrugPath 컬럼에 대한 상세정보를 반영(for)함
  977. //인스턴스 맵핑
  978. //------------------------------
  979. var prcpnohidden = "";
  980. var prcpnobefore = "";
  981. var prcpnonow = "";
  982. var prcpnosavecnt = 1; //컬럼위치를 잡기위해서
  983. var execprcpqty =""; //(2008112)
  984. var execprcpvol =""; //(2008112)
  985. var preantiyn = ""; //(20081211) 예방적항생제여부
  986. //alert("chk2_성능좋음");
  987. //-------------------20080604
  988. ////////////alert("전체row:" + getNodesetCount(xHiddenWardDrugPath));
  989. for(var m = 1; m <= getNodesetCount(xHiddenWardDrugPath); m){
  990. //------------------------(20081014)
  991. if (model.getValue(xHiddenWardDrugPath + "[" + m + "]/validateyn1") != "Y") {
  992. m++;
  993. continue;
  994. }
  995. //------------------------(20081014)
  996. //DISPLAY 대상이 되는 자료만 화면을 만든다.(의미없음)
  997. //전부보임
  998. if (model.getValue(xHiddenWardDrugPath + "[" + m + "]/dispflaggroup") != "Y") {
  999. m++;
  1000. continue;
  1001. }
  1002. tims = model.getValue(xHiddenWardDrugPath + "[" + m + "]/tims");
  1003. //----------(20080912)
  1004. calctims = model.getValue(xHiddenWardDrugPath + "[" + m + "]/calctims");
  1005. //----------(20080912)
  1006. drugtmspec = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec").split(" ");
  1007. drugtmspeccal = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugbasetmspec").split(" ");
  1008. var drugtmspec_recalc1 = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec_recalc1").split(" "); //처방적용일기준으로
  1009. var drugtmspec_recalc2 = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec_recalc2").split(" "); //조회일자기준으로
  1010. var dispddarray = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/dispddarray").split(" "); //실질투약일
  1011. var disptmarray = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/disptmarray").split(" "); //실질투약시간대
  1012. var dispflagarray = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/dispflagarray").split("/"); //조회일자에 따른 투약여부(실패)
  1013. var todaydrugtimes = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/todaydrugtimes").split("/"); //---(20080920)당일투약대상자만 보이기 위해서
  1014. var antiastrids = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/antiastrids").split("/");
  1015. var antiastrnms = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/antiastrnms").split("/");
  1016. //---------------(20080912)
  1017. //for(var n = 0; n < tims; n++){
  1018. for(var n = 0; n < calctims; n++){
  1019. //---------------(20080912)
  1020. if(n == 0){
  1021. prcp_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1022. prcphistno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1023. prcpuniqno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1024. }else{
  1025. prcp_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1026. prcphistno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1027. prcpuniqno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1028. }
  1029. execprcpno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1030. prcpdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcpdd");
  1031. execcarestatcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execcarestatcd");
  1032. carecfact = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfact");
  1033. carecfactcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfactcd");
  1034. execprcpuniqno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1035. medrexistyn = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexistyn");
  1036. prcphistno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1037. execdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execdd");
  1038. exectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/exectm");
  1039. signno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signno");
  1040. signflag = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signflag");
  1041. medrexecdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexecdd");
  1042. medrexectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexectm");
  1043. execprcpvol = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpvol"); //---(20081112)
  1044. execprcpqty = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpqty"); //---(20081112)
  1045. preantiyn = model.getValue(xHiddenWardDrugPath + "[" + m + "]/preantiyn"); //---(20081211)
  1046. if(medrexistyn == "Y"){
  1047. iudflag = "-";
  1048. }else if(medrexistyn == "N"){
  1049. iudflag = "";
  1050. }
  1051. if(iudflag == "-" && signflag == "N"){
  1052. carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1053. }else{
  1054. carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1055. }
  1056. //인스턴스 정보 set
  1057. if(drugtmspec[n] != "" && drugtmspec!= ""){
  1058. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]", "");
  1059. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpno", execprcpno);
  1060. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execcarestatcd", execcarestatcd);
  1061. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/pastexeccarestatcd", execcarestatcd);
  1062. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/iudflag", iudflag);
  1063. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactnm", carecfactnm);
  1064. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactcd", carecfactcd);
  1065. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfact", carecfact);
  1066. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpuniqno", execprcpuniqno);
  1067. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/prcphistno", prcphistno);
  1068. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execdd", execdd);
  1069. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexecdd", medrexecdd);
  1070. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexectm", medrexectm);
  1071. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexistyn", medrexistyn);
  1072. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signno", signno);
  1073. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signflag", signflag);
  1074. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspec", drugtmspec[n]);
  1075. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspeccal", drugtmspeccal[n]);
  1076. //-----------------------------------(20080605추가)
  1077. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspec_recalc1", drugtmspec_recalc1[n]);
  1078. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspec_recalc2", drugtmspec_recalc2[n]);
  1079. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/dispdd", dispddarray[n]);
  1080. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/disptm", disptmarray[n]);
  1081. //-----------------------------------(20080802추가)
  1082. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/currentflag", ""); //현재시간반영여부
  1083. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/currentdd", ""); //현재시간체크후 설정된일자
  1084. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/currenttm", ""); //현재시간체크후 설정된시간
  1085. //-----------------------------------
  1086. //-----------------------------------(20081112추가)
  1087. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpvol", execprcpvol); //exip의 용량
  1088. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpqty", execprcpqty); //exip의 수량
  1089. //-----------------------------------
  1090. //-----------------------------------(20081211추가)
  1091. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/preantiyn", preantiyn); //medr의 예방적항생제
  1092. //-----------------------------------
  1093. var querydd = model.getValue("/root/main/cond/orddd");
  1094. if (dispddarray[n] == querydd || dispddarray[n] == getDateAddc(querydd, 1) ) {
  1095. ////////////alert(dispddarray[n] + "/" + querydd + "/" + getDateAddc(querydd, 1));
  1096. dispflagarray[n] = "Y";
  1097. } else {
  1098. dispflagarray[n] = "N";
  1099. }
  1100. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/dispflag", dispflagarray[n]);
  1101. //-----------------------------------(20080920)
  1102. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/todaydrug", todaydrugtimes[n]); //현재시간체크후 설정된시간
  1103. //-----------------------------------
  1104. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/antiastrid", antiastrids[n]);
  1105. model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/antiastrnm", antiastrnms[n]);
  1106. //-----------------------------------
  1107. //hidden자료->화면자료로 상세정보이동시 컬럼위치를 찾는 방법
  1108. //
  1109. //일자를 찾고, 시간대를 찾는다.
  1110. //-----------------------------------
  1111. //col_index = (grd_colcnt + isSearchArrayIndex(addCol_Array, drugtmspec[n]));
  1112. //row별로 반영되는 컬럼위치 찾기
  1113. var sGrdCap0 = grd_druglist.caption.split("|");
  1114. var sGrdCap1 = sGrdCap0[0].split("^"); //첫줄: 일자
  1115. var sGrdCap2 = sGrdCap0[1].split("^"); //두번째줄: 시간대
  1116. var tdispdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/dispdd"); //절대일자
  1117. var tdisptm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/disptm"); //절대시간대
  1118. // var tdispddyy = tdispdd.substring(0,4).toString();
  1119. //
  1120. // tdispdd = tdispdd.replace(tdispddyy,"").toString();
  1121. //
  1122. // var tdispddmm = tdispdd.substring(0,2).toString();
  1123. // var tdispdddd = tdispdd.replace(tdispddmm,"").toString();
  1124. var tdispddyy = tdispdd.substr(0,4);
  1125. var tdispddmm = tdispdd.substr(4,2);
  1126. var tdispdddd = tdispdd.substr(6,2);
  1127. tdispdd = tdispddmm + "/" + tdispdddd;
  1128. for (var col1=0;col1<sGrdCap1.length;col1++) {
  1129. if (sGrdCap1[col1] == tdispdd) {
  1130. for (var col2=col1;col2<sGrdCap2.length;col2++) {
  1131. if (sGrdCap2[col2] == tdisptm) {
  1132. break;
  1133. }
  1134. }
  1135. break;
  1136. }
  1137. }
  1138. col_index = col2;
  1139. //-----------------------------------
  1140. forarr = model.getValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index);
  1141. timesch = fSetTimsSetting(forarr.split(" ").length);
  1142. model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/carecfactnm" + col_index, timesch + carecfactnm); //이곳에서 발생
  1143. model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index, forarr + (n+1) + " ");
  1144. //test
  1145. // calcdd = getDateAddc(drugdd, parseInt(drugtmspec[n] / 2400));
  1146. // if(calcdd == drugdd ||
  1147. // prcpdd == drugdd && calcdd == tdrugdd){
  1148. if (model.getValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/dispflag") == "Y") {
  1149. hiddenYN[col_index] = "false";
  1150. }
  1151. // }
  1152. }
  1153. m++;
  1154. }
  1155. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execprcpnoarr", prcp_array);
  1156. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/prcphistnoarr", prcphistno_array);
  1157. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execuniqnoarr", prcpuniqno_array);
  1158. ////////////alert("inst_cnt:" + inst_cnt);
  1159. inst_cnt++;
  1160. }
  1161. //---------------------------------------
  1162. //조회조건의 (근무구분)에 대해서 자료 컬럼 중 근무시간에 해당하는 자료만 보이고 , 나머지는 숨김
  1163. //---------------------------------------
  1164. for(var a = grd_colcnt; a <= grd_colcnt + addCol_Cnt; a++){
  1165. if(duty != "All"){//근무조건
  1166. //dyty조건
  1167. if(fCarec_JobTimeYN(sMedtims[a-grd_colcnt], duty) == "Y"){ //기준시간에서 Interval 시간계산(근무시간(D/E/N)
  1168. grd_druglist.colhidden(a) = false;
  1169. }else{
  1170. grd_druglist.colhidden(a) = true;
  1171. }
  1172. }
  1173. if(hiddenYN[a] == "true"){//투약일 조건
  1174. grd_druglist.colhidden(a) = true;
  1175. }
  1176. }
  1177. //--------------------(20081031)확인 결과 위에서 속도를 차지함
  1178. //컬럼 타이틀 변경
  1179. //grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  1180. //투약 시간 셀 color 변경
  1181. fDrugCellColorChg();
  1182. //당일투약기준으로 화면의 자료 display를 재설정한다.(20080920)
  1183. fDrugCellDispChg();
  1184. }
  1185. //
  1186. //function fAddBaseDrugTime_OLD(){
  1187. //
  1188. // var rows = grd_druglist.rows;
  1189. // var tims = 0;
  1190. // var drugtmspec = "";
  1191. // var drugtms = "";
  1192. // var sColCnt = grd_druglist.cols - grd_druglist.fixedcols - grd_colcnt;//시간 컬럼을 제외한 나머지 컬럼갯수 빼기(17)
  1193. // var sGrdCap = "";
  1194. // var prcpdd = model.getValue("/root/main/cond/orddd"); //처방일자(조회일)
  1195. // var meddays = "";
  1196. // var medtims = "";
  1197. // var cnt = 0;
  1198. // var sGrdCapDay = "";
  1199. // var sGrdCapTims = "";
  1200. // var execdd = "";
  1201. // var temp_drugtms = "";
  1202. // var temp_meddays = "";
  1203. // var timsYN = false;
  1204. // var daysYN = false;
  1205. //
  1206. // //그리드에 추가 할 컬럼 조사 및 정렬
  1207. // for(var i = 1; i <= rows - 2; i++){
  1208. // drugtmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec");
  1209. // tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  1210. // if(drugtmspec != ""){
  1211. // for(var j = 1; j <= tims; j++){
  1212. // drugtms = drugtmspec.split(" ");
  1213. // temp_drugtms = drugtms[j-1]; //0900
  1214. // temp_meddays = getDateAddc(prcpdd, parseInt(drugtms[j-1] / 2400)); //20080425
  1215. //
  1216. // timsYN = careIsSearchString(medtims, temp_drugtms); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  1217. // daysYN = careIsSearchString(meddays, temp_meddays); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  1218. //
  1219. // //총컬럼갯수를 알기 위해서 전체 시간대를 찾는다.
  1220. // if(timsYN == false || daysYN == false){
  1221. // medtims += temp_drugtms + "^"; //전체 시간대
  1222. // meddays += temp_meddays + "^"; //전체 일자
  1223. // cnt++;
  1224. // }
  1225. // }
  1226. // }
  1227. // }
  1228. //
  1229. // addCol_Cnt = cnt;
  1230. // var sMedtims = sortHashKeys(medtims, cnt); //시간대 문자열 정렬(오름차순)
  1231. // var sMeddays = sortHashKeys(meddays, cnt); //일자 문자열 정렬(오름차순)
  1232. //
  1233. // var tempString = "";
  1234. // sGrdCap = grd_druglist.caption.split("|");
  1235. // //컬럼 숨김 계속 지정하기 위해...
  1236. // fSelectOpenMoe(); //투약기록 그리드 기본/펼치기 모드 이벤트(뒤의 마지막필드5개 숨기기)
  1237. //
  1238. // var temp_tims = 0;
  1239. // //컬럼추가
  1240. // for(var k = 1; k <= cnt; k++){
  1241. // grd_druglist.addColumn("ref:carecfactnm" + grd_druglist.cols + "; type:output; ", false);
  1242. // grd_druglist.colWidth(grd_druglist.cols - 1) = 50;
  1243. // tempString = sMeddays[k-1].toString();
  1244. // addCol_Array[k-1] = sMedtims[k-1];
  1245. // sGrdCapDay += tempString.substr(4,2) + "/" + tempString.substr(6,2) + "^";
  1246. // temp_tims = sMedtims[k-1] % 2400;
  1247. // temp_tims = Math.abs(Number(temp_tims)).toString();
  1248. // temp_tims = fCarec_GetFillZeno(temp_tims, 4,0);
  1249. // sGrdCapTims += temp_tims + "^";
  1250. // }
  1251. //
  1252. // var inst_cnt = 1;
  1253. // var tims = "";
  1254. // var drugtmspec = "";
  1255. // var prcphistno = "";
  1256. // var execprcpno = "";
  1257. // var execcarestatcd = "";
  1258. // var iudflag = "";
  1259. // var carecfact = "";
  1260. // var carecfactcd = "";
  1261. // var carecfactnm = "";
  1262. // var medrexistyn = "";
  1263. // var execprcpuniqno = "";
  1264. // var execdd = "";
  1265. // var prcpdd = ""
  1266. // var exectm = "";
  1267. // var signno = "";
  1268. // var signflag = "";
  1269. // var col_index = 0;
  1270. // var forarr = "";
  1271. // var prcphistno_array = "";
  1272. // var prcpuniqno_array = "";
  1273. // var prcp_array = "";
  1274. // var drugtmspeccal = "";
  1275. // var timesch = "";
  1276. // var drugdd = model.getValue("/root/main/cond/orddd");
  1277. // var tdrugdd = getDateAddc(drugdd, 1);
  1278. // var duty = model.getValue("/root/main/cond/duty");
  1279. // var calcdd = "";
  1280. // var medrexecdd = "";
  1281. // var medrexectm = "";
  1282. // var hiddenYN = new Array;
  1283. //
  1284. // //------------------------------
  1285. // //forarr : 자료존재 번호XML 태그
  1286. // //------------------------------
  1287. //
  1288. // ////////////alert ("getNodesetCount(xWardDrugListPath):" + getNodesetCount(xWardDrugListPath) )
  1289. // for(var x = 1; x <= getNodesetCount(xWardDrugListPath); x++){
  1290. // ////////////alert("addCol_Array.length:" + addCol_Array.length);
  1291. // for(var y = 0; y < addCol_Array.length; y++){
  1292. // ////////////alert("y:" + xWardDrugListPath + "[" + x + "]/forarr" + (grd_colcnt + y));
  1293. // model.makeValue(xWardDrugListPath + "[" + x + "]/forarr" + (grd_colcnt + y), "");
  1294. // }
  1295. // }
  1296. //
  1297. // //필드숨김기
  1298. // for(var z = 0; z <= grd_colcnt + addCol_Cnt; z++){
  1299. // hiddenYN[z] = "true";
  1300. // }
  1301. //
  1302. // //------------------------------
  1303. // //for : 자료존재 번호에 대한 상세 정보 XML 태그
  1304. // //------------------------------
  1305. // //인스턴스 맵핑
  1306. // for(var m = 1; m <= getNodesetCount(xHiddenWardDrugPath); m){
  1307. // tims = model.getValue(xHiddenWardDrugPath + "[" + m + "]/tims");
  1308. // drugtmspec = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec").split(" ");
  1309. // drugtmspeccal = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugbasetmspec").split(" ");
  1310. // for(var n = 0; n < tims; n++){
  1311. // if(n == 0){
  1312. // prcp_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1313. // prcphistno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1314. // prcpuniqno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1315. // }else{
  1316. // prcp_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1317. // prcphistno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1318. // prcpuniqno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1319. // }
  1320. // execprcpno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1321. // prcpdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcpdd");
  1322. // execcarestatcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execcarestatcd");
  1323. // carecfact = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfact");
  1324. // carecfactcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfactcd");
  1325. // execprcpuniqno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1326. // medrexistyn = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexistyn");
  1327. // prcphistno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1328. // execdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execdd");
  1329. // exectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/exectm");
  1330. // signno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signno");
  1331. // signflag = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signflag");
  1332. // medrexecdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexecdd");
  1333. // medrexectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexectm");
  1334. // if(medrexistyn == "Y"){
  1335. // iudflag = "-";
  1336. // }else if(medrexistyn == "N"){
  1337. // iudflag = "";
  1338. // }
  1339. // if(iudflag == "-" && signflag == "N"){
  1340. // carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1341. // }else{
  1342. // carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1343. // }
  1344. // //인스턴스 정보 set
  1345. // if(drugtmspec[n] != "" && drugtmspec!= ""){
  1346. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]", "");
  1347. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpno", execprcpno);
  1348. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execcarestatcd", execcarestatcd);
  1349. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/pastexeccarestatcd", execcarestatcd);
  1350. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/iudflag", iudflag);
  1351. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactnm", carecfactnm);
  1352. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactcd", carecfactcd);
  1353. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfact", carecfact);
  1354. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpuniqno", execprcpuniqno);
  1355. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/prcphistno", prcphistno);
  1356. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execdd", execdd);
  1357. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexecdd", medrexecdd);
  1358. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexectm", medrexectm);
  1359. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexistyn", medrexistyn);
  1360. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signno", signno);
  1361. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signflag", signflag);
  1362. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspec", drugtmspec[n]);
  1363. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspeccal", drugtmspeccal[n]);
  1364. //
  1365. // col_index = (grd_colcnt + isSearchArrayIndex(addCol_Array, drugtmspec[n]));
  1366. // forarr = model.getValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index);
  1367. //
  1368. // timesch = fSetTimsSetting(forarr.split(" ").length);
  1369. //
  1370. // model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/carecfactnm" + col_index, timesch + carecfactnm);
  1371. // model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index, forarr + (n+1) + " ");
  1372. //
  1373. // calcdd = getDateAddc(drugdd, parseInt(drugtmspec[n] / 2400));
  1374. // if(calcdd == drugdd ||
  1375. // prcpdd == drugdd && calcdd == tdrugdd){
  1376. // hiddenYN[col_index] = "false";
  1377. // }
  1378. // }
  1379. // m++;
  1380. // }
  1381. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execprcpnoarr", prcp_array);
  1382. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/prcphistnoarr", prcphistno_array);
  1383. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execuniqnoarr", prcpuniqno_array);
  1384. // inst_cnt++;
  1385. // }
  1386. //
  1387. // //조회조건의 (근무구분)에 대해서 자료 컬럼 중 근무시간에 해당하는 자료만 보이고 , 나머지는 숨김
  1388. // for(var a = grd_colcnt; a <= grd_colcnt + addCol_Cnt; a++){
  1389. // if(duty != "All"){//근무조건
  1390. // //dyty조건
  1391. // if(fCarec_JobTimeYN(sMedtims[a-grd_colcnt], duty) == "Y"){ //기준시간에서 Interval 시간계산(근무시간(D/E/N)
  1392. // grd_druglist.colhidden(a) = false;
  1393. // }else{
  1394. // grd_druglist.colhidden(a) = true;
  1395. // }
  1396. // }
  1397. // if(hiddenYN[a] == "true"){//투약일 조건
  1398. // grd_druglist.colhidden(a) = true;
  1399. // }
  1400. // }
  1401. //
  1402. //// //컬럼 타이틀 변경
  1403. //// grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  1404. //
  1405. // //투약 시간 셀 color 변경
  1406. // fDrugCellColorChg();
  1407. //}
  1408. function fSetTimsSetting(len){
  1409. if(len == 1){
  1410. //return ①;
  1411. return '';
  1412. }else if(len == 2){
  1413. return '②';
  1414. }else if(len == 3){
  1415. return '③';
  1416. }else if(len == 4){
  1417. return '④';
  1418. }else if(len == 5){
  1419. return '⑤';
  1420. }else if(len == 6){
  1421. return '⑥';
  1422. }else if(len == 7){
  1423. return '⑦';
  1424. }else if(len == 8){
  1425. return '⑧';
  1426. }else{}
  1427. return '';
  1428. }
  1429. /**
  1430. * @group :
  1431. * @ver : 2007.06.25
  1432. * @by : 최경용
  1433. * @---------------------------------------------------
  1434. * @type : function
  1435. * @access : public
  1436. * @desc : Mix선택 이벤트
  1437. * @param :
  1438. * @return :
  1439. * @---------------------------------------------------
  1440. */
  1441. function fSettingMix(){
  1442. var row = grd_druglist.row - 1;
  1443. var col = "";
  1444. var tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1445. var orgprcpclscd = model.getValue(xWardDrugListPath + "[" + row + "]/orgprcpclscd");
  1446. var drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec");
  1447. var prcpmixno = model.getValue(xWardDrugListPath + "[" + row + "]/prcpmixno");
  1448. var mixflag = true;
  1449. //-----------(20080924)
  1450. //mixno cancel은 fSettingMixCancle에서 처리한다.
  1451. if (prcpmixno == "") return;
  1452. //-----------(20080924)
  1453. if(drugtmspec == ""){
  1454. messageBox("기준시간을 ","C001");
  1455. model.setValue(xWardDrugListPath + "[" + row + "]/prcpmixno", "");
  1456. return;
  1457. }
  1458. if(orgprcpclscd != "A6"){
  1459. messageBox("주사/수액만 Mix 할 수 있습니다.","C999");
  1460. model.setValue(xWardDrugListPath + "[" + row + "]/prcpmixno", "");
  1461. return;
  1462. }
  1463. for(var i = 1; i < row; i++){
  1464. if(model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno") == prcpmixno &&
  1465. model.getValue(xWardDrugListPath + "[" + i + "]/tims") != tims){
  1466. mixflag = false;
  1467. }
  1468. }
  1469. if(mixflag == true){
  1470. for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + row + "]/for"); j++){
  1471. //#n개가 있어도 처음exip에만 mixno를 넣고 있군.0925
  1472. fChangeValueStatus(row, j);
  1473. grd_druglist.row = grd_druglist.row + 1;
  1474. grd_druglist.dispatch("onentercell");
  1475. }
  1476. }else if(mixflag == false){
  1477. messageBox("횟수가 동일한 처방만 Mix 할 수 있습니다.","C999");
  1478. model.setValue(xWardDrugListPath + "[" + row + "]/prcpmixno", "");
  1479. }else{}
  1480. grd_druglist.refresh();
  1481. //////alert("mixno기록");
  1482. }
  1483. /**
  1484. * @group :
  1485. * @ver : 2007.06.25
  1486. * @by : 최경용
  1487. * @---------------------------------------------------
  1488. * @type : function
  1489. * @access : public
  1490. * @desc : Mix취소 이벤트
  1491. * @param :
  1492. * @return :
  1493. * @---------------------------------------------------
  1494. */
  1495. function fSettingMixCancle(){
  1496. //////alert("mixno삭제1");
  1497. var row = grd_druglist.row - 1;
  1498. var drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1499. var tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1500. model.setValue(xWardDrugListPath + "[" + row + "]/prcpmixno", "");
  1501. for(var i = 1; i <= getNodesetCount(xWardDrugListPath + "[" + row + "]/for"); i++){
  1502. fChangeValueStatus(row, i);
  1503. }
  1504. grd_druglist.refresh();
  1505. //////alert("mixno삭제2");
  1506. }
  1507. /**
  1508. * @group :
  1509. * @ver : 2007.06.25
  1510. * @by : 최경용
  1511. * @---------------------------------------------------
  1512. * @type : function
  1513. * @access : public
  1514. * @desc : Remark등록
  1515. * @param :
  1516. * @return :
  1517. * @---------------------------------------------------
  1518. */
  1519. //변경없음
  1520. function fSetRemarkReg(){
  1521. var rows = grd_druglist.rows;
  1522. var drugtmspec = "";
  1523. var tims = "";
  1524. var col = "";
  1525. var row = "";
  1526. var cnt = 0;
  1527. var execcarestatcd = "";
  1528. var forarr = "";
  1529. var timesch = "";
  1530. for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1531. col = grd_druglist.selectedCells.item(i).col;
  1532. row = grd_druglist.selectedCells.item(i).row -1;
  1533. drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1534. tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1535. forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1536. if(forarr != ""){
  1537. for(var j = 0; j < forarr.length-1; j++){
  1538. execcarestatcd = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd");
  1539. if(execcarestatcd == "" || execcarestatcd == "N"){
  1540. messageBox("미확인 상태에서는 Remark등록을 ","E001");
  1541. return;
  1542. }else{
  1543. cnt++;
  1544. }
  1545. }
  1546. }
  1547. }
  1548. if(cnt == 0){
  1549. messageBox("Remark등록할 범위를 정확히","C002");
  1550. return;
  1551. }
  1552. var inst_row = grd_druglist.row - 1;
  1553. var grd_row = grd_druglist.row;
  1554. var grd_col = grd_druglist.col;
  1555. var setRemarkInfo = "";
  1556. if(cnt == 1){
  1557. sRemarkIndex = model.getValue(xWardDrugListPath +"[" + inst_row + "]/forarr" + grd_col);
  1558. setRemarkInfo = model.instances(0).selectNodes(xWardDrugListPath + "[" + inst_row + "]/for[" + sRemarkIndex + "]");
  1559. setParameter("SPMNR03400_param", getNodeListCSV(setRemarkInfo));
  1560. }else{
  1561. setParameter("SPMNR03400_param1", "");
  1562. setParameter("SPMNR03400_param2", "");
  1563. setParameter("SPMNR03400_param4", "");
  1564. setParameter("SPMNR03400_param5", "");
  1565. }
  1566. modal("SPMNR03400");
  1567. var carecfactcd = getParameter("SPMNR03400_RtnParam1"); //간호사REMARK(상용REMARK코드)
  1568. var carecfact = getParameter("SPMNR03400_RtnParam2"); //간호전달사항(REMARK직접입력)
  1569. var carecfactnm = getParameter("SPMNR03400_RtnParam3"); //상용REMARK코드의 명칭+REMARK직접입력사항
  1570. var antiastrid = getParameter("SPMNR03400_RtnParam4");
  1571. var antiastrnm = getParameter("SPMNR03400_RtnParam5");
  1572. var paramYN = getParameter("SPMNR03400_RtnParamYN"); //리턴 여부
  1573. //alert(antiastrid);
  1574. setParameter("SPMNR03400_RtnParam1", "");
  1575. setParameter("SPMNR03400_RtnParam2", "");
  1576. setParameter("SPMNR03400_RtnParam3", "");
  1577. setParameter("SPMNR03400_RtnParam4", "");
  1578. setParameter("SPMNR03400_RtnParam5", "");
  1579. setParameter("SPMNR03400_RtnParamYN", "");
  1580. if(paramYN == "Y"){
  1581. //------------(20081205)
  1582. toprow = grd_druglist.toprow;
  1583. toprowflag = "Y";
  1584. //------------(20081205)
  1585. for(var k = 0; k < grd_druglist.selectedCells.length; k++){
  1586. col = grd_druglist.selectedCells.item(k).col;
  1587. row = grd_druglist.selectedCells.item(k).row -1;
  1588. drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1589. tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1590. forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1591. timesch = fSetTimsSetting(forarr.length-1); //????
  1592. if(forarr != ""){
  1593. for(var l = 0; l < forarr.length-1; l++){
  1594. //---------------(20081211)
  1595. //예방적항생제
  1596. var preantiyn = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/preantiyn");
  1597. var preantimsg = "예방적항생제";
  1598. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactcd", carecfactcd);
  1599. if (preantiyn == "Y") { //예방적항생제인경우
  1600. carecfactnm = fnReplace(carecfactnm,preantimsg,'');
  1601. carecfact = fnReplace(carecfact,preantimsg,'');
  1602. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactnm", carecfactnm + " " + preantimsg);
  1603. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfact", carecfact + " " + preantimsg);
  1604. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, timesch + carecfactnm + " " + preantimsg);
  1605. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/antiastrid", antiastrid);
  1606. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/antiastrnm", antiastrnm);
  1607. } else {
  1608. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactnm", carecfactnm);
  1609. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfact", carecfact);
  1610. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, timesch + carecfactnm);
  1611. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/antiastrid", antiastrid);
  1612. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/antiastrnm", antiastrnm);
  1613. }
  1614. //---------------(20081211)
  1615. //입력/수정 상태값 변경
  1616. fChangeValueStatus(row, forarr[l]);
  1617. }
  1618. }
  1619. }
  1620. }
  1621. grd_druglist.row = 1;
  1622. //------------------(20081205)
  1623. if (toprowflag == "Y") {
  1624. if (grd_druglist.rows > toprow) {
  1625. grd_druglist.toprow = toprow;
  1626. }
  1627. toprowflag = "N";
  1628. }
  1629. //------------------(20081205)
  1630. model.refresh();
  1631. }
  1632. //function fSetRemarkReg_OLD(){
  1633. // var rows = grd_druglist.rows;
  1634. // var drugtmspec = "";
  1635. // var tims = "";
  1636. // var col = "";
  1637. // var row = "";
  1638. // var cnt = 0;
  1639. // var execcarestatcd = "";
  1640. // var forarr = "";
  1641. // var timesch = "";
  1642. // for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1643. // col = grd_druglist.selectedCells.item(i).col;
  1644. // row = grd_druglist.selectedCells.item(i).row -1;
  1645. // drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1646. // tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1647. // forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1648. // if(forarr != ""){
  1649. // for(var j = 0; j < forarr.length-1; j++){
  1650. // execcarestatcd = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd");
  1651. // if(execcarestatcd == "" || execcarestatcd == "N"){
  1652. // messageBox("미확인 상태에서는 Remark등록을 ","E001");
  1653. // return;
  1654. // }else{
  1655. // cnt++;
  1656. // }
  1657. // }
  1658. // }
  1659. // }
  1660. // if(cnt == 0){
  1661. // messageBox("Remark등록할 범위를 정확히","C002");
  1662. // return;
  1663. // }
  1664. // var inst_row = grd_druglist.row - 1;
  1665. // var grd_row = grd_druglist.row;
  1666. // var grd_col = grd_druglist.col;
  1667. // var setRemarkInfo = "";
  1668. // if(cnt == 1){
  1669. // sRemarkIndex = model.getValue(xWardDrugListPath +"[" + inst_row + "]/forarr" + grd_col);
  1670. // setRemarkInfo = model.instances(0).selectNodes(xWardDrugListPath + "[" + inst_row + "]/for[" + sRemarkIndex + "]");
  1671. // setParameter("SPMNR03400_param", getNodeListCSV(setRemarkInfo));
  1672. // }else{
  1673. // setParameter("SPMNR03400_param1", "");
  1674. // setParameter("SPMNR03400_param2", "");
  1675. // }
  1676. // modal("SPMNR03400");
  1677. // var carecfactcd = getParameter("SPMNR03400_RtnParam1");
  1678. // var carecfact = getParameter("SPMNR03400_RtnParam2");
  1679. // var carecfactnm = getParameter("SPMNR03400_RtnParam3");
  1680. // var paramYN = getParameter("SPMNR03400_RtnParamYN");
  1681. // setParameter("SPMNR03400_RtnParam1", "");
  1682. // setParameter("SPMNR03400_RtnParam2", "");
  1683. // setParameter("SPMNR03400_RtnParam3", "");
  1684. // setParameter("SPMNR03400_RtnParamYN", "");
  1685. //
  1686. // if(paramYN == "Y"){
  1687. // for(var k = 0; k < grd_druglist.selectedCells.length; k++){
  1688. // col = grd_druglist.selectedCells.item(k).col;
  1689. // row = grd_druglist.selectedCells.item(k).row -1;
  1690. // drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1691. // tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1692. // forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1693. // timesch = fSetTimsSetting(forarr.length-1);
  1694. // if(forarr != ""){
  1695. // for(var l = 0; l < forarr.length-1; l++){
  1696. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactcd", carecfactcd);
  1697. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactnm", carecfactnm);
  1698. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfact", carecfact);
  1699. // model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, timesch + carecfactnm);
  1700. //
  1701. // //입력/수정 상태값 변경
  1702. // fChangeValueStatus(row, forarr[l]);
  1703. // }
  1704. // }
  1705. // }
  1706. // }
  1707. // grd_druglist.row = 1;
  1708. // model.refresh();
  1709. //}
  1710. /**
  1711. * @group :
  1712. * @ver : 2007.06.25
  1713. * @by : 최경용
  1714. * @---------------------------------------------------
  1715. * @type : function
  1716. * @access : public
  1717. * @desc : 기준시간 변경
  1718. * @param :
  1719. * @return :
  1720. * @---------------------------------------------------
  1721. */
  1722. //warddruginfo에는 정보가 부분만 있음(마스타정보와,상세중1첫번째 자료만 넘긴다)
  1723. function fSetDrugBaseTime(){
  1724. var inst_row= grd_druglist.row - 1;
  1725. var rows = grd_druglist.rows;
  1726. var cols = grd_druglist.cols;
  1727. var tims = 0;
  1728. var count = 0;
  1729. //---------------(20080912)
  1730. var calctims = 0;
  1731. //---------------(20080912)
  1732. //임시INSTANCE제거
  1733. model.removeNodeSet("/root/temp/warddruginfo/warddruglist");
  1734. baseCol_Array = new Array;
  1735. if(grd_druglist.selectedCells.length > 0){
  1736. tims = model.getValue(xWardDrugListPath + "[" + (grd_druglist.selectedCells.item(0).row -1) + "]/tims");
  1737. //---------------(20080912)
  1738. calctims = model.getValue(xWardDrugListPath + "[" + (grd_druglist.selectedCells.item(0).row -1) + "]/calctims");
  1739. //---------------(20080912)
  1740. //횟수가 동일한 처방만 추출
  1741. for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1742. row = grd_druglist.selectedCells.item(i).row -1;
  1743. if(tims == model.getValue(xWardDrugListPath +"[" + row + "]/tims")){
  1744. //-----------------(20080912)
  1745. if(calctims == model.getValue(xWardDrugListPath +"[" + row + "]/calctims")){
  1746. if(!isSearchArrayString(baseCol_Array, row)){
  1747. baseCol_Array[baseCol_Array.length] = row;
  1748. //xWardDrugListPath +"[" + row + "]" ==> "/root/temp/warddruginfo"
  1749. model.duplicate("/root/temp/warddruginfo", xWardDrugListPath +"[" + row + "]");
  1750. }
  1751. } else {
  1752. messageBox("외용제끼리 별도로 처리하십시오","I9999");
  1753. return;
  1754. }
  1755. //-----------------(20080912)
  1756. }else{
  1757. messageBox("횟수가 동일한 처방만 동시에 기준시간을 변경할 수 있습니다.","I9999");
  1758. return;
  1759. }
  1760. for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + row + "]/for"); j++){
  1761. //---------(20081211)
  1762. //예방적항생제인 경우를 생각해봐야 할것 같음(미확인이나 저장을 해야하는 경우가 있는것임)
  1763. if(model.getValue(xWardDrugListPath + "[" + row + "]/for[" + j + "]/medrexecdd") != "00000000"){
  1764. count++;
  1765. }
  1766. //---------(20081211)
  1767. }
  1768. }
  1769. }
  1770. if(getNodesetCount("/root/temp/warddruginfo/warddruglist") == 1){
  1771. //-----------------(20080912)
  1772. if(count == model.getValue("/root/temp/warddruginfo/warddruglist/tims")){
  1773. messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1774. return;
  1775. } else if(count == model.getValue("/root/temp/warddruginfo/warddruglist/calctims")){
  1776. //외용제는 caletims가 무조건 1이고 , tims은 1회이상일수 있다.
  1777. messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1778. return;
  1779. }
  1780. //-----------------(20080912)
  1781. }else if(getNodesetCount("/root/temp/warddruginfo/warddruglist") > 1){
  1782. if(count > 0){
  1783. messageBox("선택한 처방 중 이미 기록된 내용이 있어 함께 변경할 수","I004");
  1784. return;
  1785. }
  1786. }
  1787. //기준시간 변경하기 전 변경된 내용을 저장
  1788. if(fChangeDrugInfo() == "true"){
  1789. messageBox("변경된 내용을 저장 후 진행하세요.","I9999");
  1790. return;
  1791. }
  1792. //변경된 시간은 넘어가지 않음(문제점)
  1793. //warddruginfo에는 화면에 보여줄 자료만 있으므
  1794. var setDrugBaseTimeList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist");
  1795. var setDrugBaseTimeDetlList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist/for");
  1796. setParameter("SPMNR03300_param1", getNodeListCSV(setDrugBaseTimeList));
  1797. setParameter("SPMNR03300_param2", getNodeListCSV(setDrugBaseTimeDetlList));
  1798. //------------(20081205)
  1799. toprow = grd_druglist.toprow;
  1800. toprowflag = "Y";
  1801. //------------(20081205)
  1802. modal("SPMNR03300");
  1803. var RtnParamYN = getParameter("SPMNR03300_RtnParamYN");
  1804. fClickDrugListBefore(); //------------(20081031)
  1805. if(RtnParamYN == "Y"){
  1806. if(screen_mode == "pat"){
  1807. fClickDrugList(screen_mode, grd_patlist.row);
  1808. }else if(screen_mode == "act"){
  1809. fClickDrugList(screen_mode, grd_actlist.row);
  1810. }
  1811. }
  1812. fClickDrugListAfter(); //------------(20081031)
  1813. //------------------(20081205)test중
  1814. //fClickDrugListAfter 모듈안에 아래의 기능이 있음
  1815. //if (toprowflag == "Y") {
  1816. // if (grd_druglist.rows > toprow) {
  1817. // grd_druglist.toprow = toprow;
  1818. // }
  1819. // toprowflag = "N";
  1820. //}
  1821. //model.refresh();
  1822. //------------------(20081205)
  1823. setParameter("SPMNR03300_param", "");
  1824. setParameter("SPMNR03300_RtnParamYN", "");
  1825. }
  1826. //function fSetDrugBaseTime_OLD(){
  1827. //
  1828. // var inst_row = grd_druglist.row - 1;
  1829. // var rows = grd_druglist.rows;
  1830. // var cols = grd_druglist.cols;
  1831. // var tims = 0;
  1832. // var count = 0;
  1833. //
  1834. // model.removeNodeSet("/root/temp/warddruginfo/warddruglist");
  1835. // baseCol_Array = new Array;
  1836. //
  1837. // if(grd_druglist.selectedCells.length > 0){
  1838. // tims = model.getValue(xWardDrugListPath + "[" + (grd_druglist.selectedCells.item(0).row -1) + "]/tims");
  1839. // for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1840. // row = grd_druglist.selectedCells.item(i).row -1;
  1841. // if(tims == model.getValue(xWardDrugListPath +"[" + row + "]/tims")){
  1842. // if(!isSearchArrayString(baseCol_Array, row)){
  1843. // baseCol_Array[baseCol_Array.length] = row;
  1844. // model.duplicate("/root/temp/warddruginfo", xWardDrugListPath +"[" + row + "]");
  1845. // }
  1846. // }else{
  1847. // messageBox("횟수가 동일한 처방만 동시에 기준시간을 변경할 수 있습니다.","I9999");
  1848. // return;
  1849. // }
  1850. // for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + row + "]/for"); j++){
  1851. // if(model.getValue(xWardDrugListPath + "[" + row + "]/for[" + j + "]/medrexecdd") != "00000000"){
  1852. // count++;
  1853. // }
  1854. // }
  1855. // }
  1856. // }
  1857. // if(getNodesetCount("/root/temp/warddruginfo/warddruglist") == 1){
  1858. // if(count == model.getValue("/root/temp/warddruginfo/warddruglist/tims")){
  1859. // messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1860. // return;
  1861. // }
  1862. // }else if(getNodesetCount("/root/temp/warddruginfo/warddruglist") > 1){
  1863. // if(count > 0){
  1864. // messageBox("선택한 처방 중 이미 기록된 내용이 있어 함께 변경할 수","I004");
  1865. // return;
  1866. // }
  1867. // }
  1868. // //기준시간 변경하기 전 변경된 내용을 저장
  1869. // if(fChangeDrugInfo() == "true"){
  1870. // messageBox("변경된 내용을 저장 후 진행하세요.","I9999");
  1871. // return;
  1872. // }
  1873. // var setDrugBaseTimeList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist");
  1874. // var setDrugBaseTimeDetlList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist/for");
  1875. // setParameter("SPMNR03300_param1", getNodeListCSV(setDrugBaseTimeList));
  1876. // setParameter("SPMNR03300_param2", getNodeListCSV(setDrugBaseTimeDetlList));
  1877. // modal("SPMNR03300");
  1878. // var RtnParamYN = getParameter("SPMNR03300_RtnParamYN");
  1879. // if(RtnParamYN == "Y"){
  1880. // if(screen_mode == "pat"){
  1881. // fClickDrugList(screen_mode, grd_patlist.row);
  1882. // }else if(screen_mode == "act"){
  1883. // fClickDrugList(screen_mode, grd_actlist.row);
  1884. // }
  1885. // }
  1886. // setParameter("SPMNR03300_param", "");
  1887. // setParameter("SPMNR03300_RtnParamYN", "");
  1888. //}
  1889. /**
  1890. * @group :
  1891. * @ver : 2007.06.25
  1892. * @by : 최경용
  1893. * @---------------------------------------------------
  1894. * @type : function
  1895. * @access : public
  1896. * @desc : 미확인(Acting 취소)
  1897. * @param :
  1898. * @return :
  1899. * @---------------------------------------------------
  1900. */
  1901. function fSetNurseConfrim(){
  1902. fSetDrug("N");
  1903. grd_druglist.refresh();
  1904. }
  1905. /**
  1906. * @group :
  1907. * @ver : 2008.12.01
  1908. * @by : 김보성
  1909. * @---------------------------------------------------
  1910. * @type : function
  1911. * @access : public
  1912. * @desc : 미확인(예방적항생제)(Acting 취소)
  1913. * @param :
  1914. * @return :
  1915. * @---------------------------------------------------
  1916. */
  1917. //20081201
  1918. function fSetNurseConfrimPreAnti(){
  1919. fSetDrug("M");
  1920. grd_druglist.refresh();
  1921. }
  1922. /**
  1923. * @group :
  1924. * @ver : 2007.06.25
  1925. * @by : 최경용
  1926. * @---------------------------------------------------
  1927. * @type : function
  1928. * @access : public
  1929. * @desc : 투약 이벤트
  1930. * @param :
  1931. * @return :
  1932. * @---------------------------------------------------
  1933. */
  1934. function fSetDrugActing(){
  1935. fSetDrug("R");
  1936. grd_druglist.refresh();
  1937. }
  1938. /**
  1939. * @group :
  1940. * @ver : 2007.06.25
  1941. * @by : 최경용
  1942. * @---------------------------------------------------
  1943. * @type : function
  1944. * @access : public
  1945. * @desc : 투약X 반환가능
  1946. * @param :
  1947. * @return :
  1948. * @---------------------------------------------------
  1949. */
  1950. function fSetRtnPosActing(){
  1951. fSetDrug("P");
  1952. grd_druglist.refresh();
  1953. }
  1954. /**
  1955. * @group :
  1956. * @ver : 2007.06.25
  1957. * @by : 최경용
  1958. * @---------------------------------------------------
  1959. * @type : function
  1960. * @access : public
  1961. * @desc : 투약X 반환불가
  1962. * @param :
  1963. * @return :
  1964. * @---------------------------------------------------
  1965. */
  1966. function fSetRtnImposActing(){
  1967. fSetDrug("I");
  1968. grd_druglist.refresh();
  1969. }
  1970. /**
  1971. * @group :
  1972. * @ver : 2007.06.25
  1973. * @by : 최경용
  1974. * @---------------------------------------------------
  1975. * @type : function
  1976. * @access : public
  1977. * @desc : 퇴원당일 남은약
  1978. * @param :
  1979. * @return :
  1980. * @---------------------------------------------------
  1981. */
  1982. function fSetLeaveRemain(){
  1983. fSetDrug("L");
  1984. grd_druglist.refresh();
  1985. }
  1986. /**
  1987. * @group :
  1988. * @ver : 2007.06.25
  1989. * @by : 최경용
  1990. * @---------------------------------------------------
  1991. * @type : function
  1992. * @access : public
  1993. * @desc : Acting이벤트시 공통 함수
  1994. * @param :
  1995. * @return :
  1996. * @---------------------------------------------------
  1997. */
  1998. function fSetDrug(actingflag){
  1999. var rows = grd_druglist.rows;
  2000. var tims = "";
  2001. var drugtmspec = "";
  2002. var col = "";
  2003. var row = "";
  2004. var dccomcountyn = "";
  2005. var messageyn = "N";
  2006. var messageactyn = "N";
  2007. var messagenarcyn = "N";
  2008. var messagenarccnfmyn = "N";
  2009. var messagenarcstat1yn = "N";
  2010. var messagenarcstat5yn = "N";
  2011. var prnmessageyn = "N";
  2012. var medrexecdd = "";
  2013. var medrexectm = "";
  2014. var prcpdd = "";
  2015. var prcpno = "";
  2016. var issdeptcd = ""; //2011.10.20 KJS 추가
  2017. var psydept = ""; //2011.10.20 KJS 추가
  2018. var for_arr = "";
  2019. var cell_color = "";
  2020. var careprnexecflag = "";
  2021. var spcldrug = "";
  2022. var sprcphistno = "";
  2023. var sexecprcpno = "";
  2024. var sexecprcpuniqno = "";
  2025. var sinstcd = getUserInfo("dutplceinstcd");
  2026. var rtnmsg = "";
  2027. var rtnstat = "";
  2028. var rtnprcpcd = "";
  2029. var prcpkindnm = "";
  2030. var careinrmdd = model.getValue("/root/main/paminfo/pamlist/careinrmdd");
  2031. var careinrmtm = model.getValue("/root/main/paminfo/pamlist/careinrmtm");
  2032. var careinrmdd2 = "";
  2033. var careinrmtm2 = "";
  2034. var acttimeflag = model.getValue("/root/main/cond/acttimeflag");
  2035. var medrexecdd = model.getValue("/root/main/cond/currentday");
  2036. var medrexectm = model.getValue("/root/main/cond/currenttime");
  2037. var calcdd = model.getValue("/root/main/paminfo/pamlist/calcdd");
  2038. var calctm = model.getValue("/root/main/paminfo/pamlist/calctm");
  2039. var calcdd2 = "";
  2040. var calctm2 = "";
  2041. var anticheck = "";
  2042. if(careinrmdd != null || careinrmdd != ""){
  2043. careinrmdd2 = careinrmdd.substr(4,2)+"/"+careinrmdd.substr(6,2);
  2044. }
  2045. if(careinrmtm != null || careinrmtm != ""){
  2046. careinrmtm2 = careinrmtm.substr(0,2)+":"+careinrmtm.substr(2,2);
  2047. }
  2048. if(calcdd2 != null || calcdd2 != ""){
  2049. calcdd2 = calcdd.substr(4,2)+"/"+calcdd.substr(6,2);
  2050. }
  2051. if(calctm2 != null || calctm2 != ""){
  2052. calctm2 = calctm.substr(0,2)+":"+calctm.substr(2,2);
  2053. }
  2054. //그리드에서 선택상태인 셀들의 collection 객체를 반환하는 속성이다
  2055. for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  2056. col = grd_druglist.selectedCells.item(i).col;
  2057. row = grd_druglist.selectedCells.item(i).row -1;
  2058. cell_color = grd_druglist.cellstyle("background-color",row+1,col);
  2059. forarr = model.getValue(xWardDrugListPath + "[" + row+ "]/forarr" + col).split(" ");
  2060. tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  2061. dccomcountyn = model.getValue(xWardDrugListPath + "[" + row + "]/dccomcountyn");
  2062. prcpdd = model.getValue(xWardDrugListPath + "[" + row + "]/prcpdd");
  2063. prcpno = model.getValue(xWardDrugListPath + "[" + row + "]/prcpno");
  2064. issdeptcd = model.getValue(xWardDrugListPath + "[" + row + "]/issdeptcd");
  2065. psydept = model.getValue(xWardDrugListPath + "[" + row + "]/psydept");
  2066. prcpkindnm = model.getValue(xWardDrugListPath + "[" + row + "]/prcpkindnm");
  2067. prcpgenrflag = model.getValue(xWardDrugListPath + "[" + row + "]/prcpgenrflag");
  2068. anticheck = model.getValue(xWardDrugListPath + "[" + row + "]/anticheck");
  2069. var pid = model.getValue(xWardDrugListPath + "[" + row + "]/pid");
  2070. var indd = model.getValue(xWardDrugListPath + "[" + row + "]/indd");
  2071. var cretno = model.getValue(xWardDrugListPath + "[" + row + "]/cretno");
  2072. var prcpcd = model.getValue(xWardDrugListPath + "[" + row + "]/prcpcd");
  2073. var dispdd = model.getValue(xWardDrugListPath + "[" + row + "]/dispddarray");
  2074. var disptm = model.getValue(xWardDrugListPath + "[" + row + "]/disptmarray");
  2075. var idx = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + grd_druglist.col).replace(/^\s*/,'').replace(/\s*$/, '');
  2076. var arr = dispdd.split(' ');
  2077. var selectdd = arr[idx-1];
  2078. var arr2 = disptm.split(' ');
  2079. var selecttm = arr2[idx-1];
  2080. //----------------------------------------------- 투약기록일시 제어
  2081. // 병동 투약기록은 입실시간 이후
  2082. if(prcpgenrflag == 'I'){
  2083. if (acttimeflag == "true") {
  2084. if(careinrmdd > medrexecdd) {
  2085. messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2086. break;
  2087. } else if (careinrmdd == medrexecdd) {
  2088. if(careinrmtm > medrexectm){
  2089. messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2090. break;
  2091. }
  2092. }
  2093. } else {
  2094. if(careinrmdd > selectdd) {
  2095. messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2096. break;
  2097. } else if(careinrmdd == selectdd){
  2098. if (careinrmtm > selecttm) {
  2099. messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2100. break;
  2101. }
  2102. }
  2103. }
  2104. } else {
  2105. // 병동 외 투약기록은 내원시간 이후
  2106. if(acttimeflag == "true") {
  2107. if(calcdd > medrexecdd) {
  2108. messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2109. break;
  2110. } else if(calcdd == medrexecdd) {
  2111. if(calctm > medrexectm) {
  2112. messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2113. break;
  2114. }
  2115. }
  2116. } else {
  2117. if(calcdd > selectdd) {
  2118. messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2119. break;
  2120. } else if (calcdd == selectdd) {
  2121. if (calctm > selecttm) {
  2122. messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2123. break;
  2124. }
  2125. }
  2126. }
  2127. }
  2128. //----------------------------------------------- 투약기록일시 제어
  2129. //-----------(20081011)
  2130. //prcpdd = model.getValue(xWardDrugListPath + "[" + row + "]/prcpdd");
  2131. var prcphopedd = model.getValue(xWardDrugListPath + "[" + row + "]/prcphopedd");
  2132. //-----------(20081011)
  2133. careprnexecflag = model.getValue(xWardDrugListPath + "[" + row + "]/careprnexecflag");
  2134. spcldrug = model.getValue(xWardDrugListPath + "[" + row + "]/spcldrug");
  2135. //--------------------------------------------------------------------------(20080913)
  2136. var sdrughang = model.getValue(xWardDrugListPath + "[" + row + "]/prcpkindnm")
  2137. var prcphistcd = model.getValue(xWardDrugListPath + "[" + row + "]/prcphistcd")
  2138. var sdrughangflag = "";
  2139. if ( sdrughang.indexOf('항암') != -1 ) {
  2140. sdrughangflag = "Y"; //항암
  2141. } else {
  2142. sdrughangflag = "N";
  2143. }
  2144. ////////////alert(actingflag + ":" + sdrughang + ":" + sdrughangflag + ":" +prcphistcd);
  2145. //항암프로토콜로 발생된 것은 검정색 D/C인 경우만 반환가능을 지정할수 있다.
  2146. if(sdrughangflag == "Y" && actingflag == "P" && prcphistcd != "D" && prcphistcd != "E" ){
  2147. if(messageyn == "N"){
  2148. messageBox("항암 처방은 의사D/C이전에는 투약X 반환가능을 지정 할 수","I004");
  2149. messageyn = "Y";
  2150. }
  2151. } else if( actingflag == "P" && (prcpkindnm == "PW" || prcpkindnm == " PW" || prcpkindnm == "P+S" || prcpkindnm ==" P+S") ) {
  2152. //20120413_KNUH_Start 파우더일경우 반환가능 입력하지 못하도록 수정.
  2153. if(messageyn == "N") {
  2154. messageBox("Powder 처방은 투약X 반환가능을 지정 할 수", "I004");
  2155. messageyn = "Y";
  2156. }
  2157. } else if(careprnexecflag == "P" && (actingflag == "P" || actingflag == "L")) { //prn처방에 대한 action시
  2158. //if(careprnexecflag == "P" && (actingflag == "P" || actingflag == "L")){ //prn처방에 대한 action시
  2159. //--------------------------------------------------------------------------(20080913)
  2160. if(prnmessageyn == "N"){
  2161. messageBox("PRN 처방은 투약X 반환가능, 퇴원당일 남은약을 지정 할 수","I004");
  2162. prnmessageyn = "Y";
  2163. }
  2164. } else if(dccomcountyn == "Y" && cell_color != "white") {
  2165. if(messageyn == "N"){
  2166. messageBox("D/C확정된 처방은 변경 할 수","I004");
  2167. messageyn = "Y";
  2168. }
  2169. // } else if( narcrtnstat == "2" && (actingflag == "N" || actingflag == "P")){ //마약반납확인 후 액팅수정(미확인/투약X-반환가능)불가 정상투약/투약X-반환불가는 잔량이 수정되지 않으므로 기록수정가능
  2170. // //--------------------------------------------------------------------------(20090507)
  2171. // if(messageyn == "N"){
  2172. // messageBox("마약 잔량반납이 이루어진 처방은 미확인, 투약X 반환가능으로 수정 할 수","I004");
  2173. // messageyn = "Y";
  2174. // }
  2175. } else if (anticheck == "N") {
  2176. // 승인 상태가 아닌 제한항생제 투약기록 제어 2012.12.10 KJS
  2177. /* [anticheck] Y: 승인, N: 미승인, Normal: 제한항생제 아님 */
  2178. messageBox("승인이나 차용불출 상태가 아닌 제한항생제는 투약기록 할 수","I004");
  2179. messageyn = "Y";
  2180. } else if(dccomcountyn == "N" && cell_color != "white") {
  2181. for(var j = 0; j < forarr.length-1; j++){
  2182. rtnstat = "";
  2183. var execprcpno = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execprcpno");
  2184. var execdd = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execdd");
  2185. var execcarestatcd = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd");
  2186. if( !isNull(forarr[j]) ){
  2187. if( actingflag == model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd") ){
  2188. if(messageactyn == "N"){
  2189. messageBox("동일한 투약기록을 할 수","I004");
  2190. messageactyn = "Y";
  2191. }
  2192. }
  2193. /*
  2194. else if((execcarestatcd=="N")&&(execdd!="00000000"&&execdd!=""&&execdd!="-")){
  2195. // 간호사가 발행한 시행부서 처방의 prcpauthflag가 '0'으로 발행되어 임시로 메세지처리로 사용자오류 막기위함(김숙인ITC와 이야기함)_20090630(ByJA)
  2196. messageBox("이미 투약이 된 시행부서처방입니다.\n정보지원팀으로 연락하여 처방내역을 삭제하시기바랍니다.","I");
  2197. }
  2198. */
  2199. else {
  2200. fJudgCheck(pid, indd, cretno, prcpcd, prcpno, execprcpno, execdd, actingflag);
  2201. if (spcldrug == "M" ) {
  2202. model.removeNodeset(sPathEndCond);
  2203. model.makeNode(sPathEndCond);
  2204. sprcphistno = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/prcphistno");
  2205. sexecprcpno = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execprcpno");
  2206. sexecprcpuniqno = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execprcpuniqno");
  2207. model.makeValue(sPathEndCond + "/prcpdd", prcpdd);
  2208. model.makeValue(sPathEndCond + "/prcpno", prcpno);
  2209. model.makeValue(sPathEndCond + "/prcphistno", sprcphistno);
  2210. model.makeValue(sPathEndCond + "/execprcpno", sexecprcpno);
  2211. model.makeValue(sPathEndCond + "/execprcpuniqno", sexecprcpuniqno);
  2212. model.makeValue(sPathEndCond + "/instcd", sinstcd);
  2213. model.makeValue(sPathEndCond + "/srchflag", "narc");
  2214. //--------(20101105) 경북대 s1
  2215. var sPathEndCond2 = "/root/endsave2/endcond2"; //enddd 확인 결과(조회)
  2216. model.removeNodeset(sPathEndCond2);
  2217. model.makeNode(sPathEndCond2);
  2218. model.makeValue(sPathEndCond2 + "/prcpdd", model.getValue(sPathEndCond + "/prcpdd"));
  2219. model.makeValue(sPathEndCond2 + "/prcpno", model.getValue(sPathEndCond + "/prcpno"));
  2220. model.makeValue(sPathEndCond2 + "/prcphistno", model.getValue(sPathEndCond + "/prcphistno"));
  2221. model.makeValue(sPathEndCond2 + "/execprcpno", model.getValue(sPathEndCond + "/execprcpno"));
  2222. model.makeValue(sPathEndCond2 + "/execprcpuniqno", model.getValue(sPathEndCond + "/execprcpuniqno"));
  2223. model.makeValue(sPathEndCond2 + "/instcd", model.getValue(sPathEndCond + "/instcd"));
  2224. model.makeValue(sPathEndCond2 + "/srchflag", model.getValue(sPathEndCond + "/srchflag"));
  2225. //--------(20101105) 경북대 e1
  2226. submit("TRMNR00610");
  2227. //--------(20101105) 경북대 s2
  2228. submit("TRMNR00611");
  2229. var snarcstat = model.getValue("root/endsave2/narcresult2/narcstat");
  2230. //--------(20101105) 경북대 e2
  2231. if ( getNodesetCount(sPathNarcResult) > 0 ){
  2232. rtnstat = model.getValue(sPathNarcResult + "/rtnstat");
  2233. rtnprcpcd = model.getValue(sPathNarcResult + "/prcpcd");
  2234. }
  2235. }
  2236. if ( !isNull(rtnstat)
  2237. && ( rtnstat == "1" && (actingflag == "N" || actingflag == "P" || actingflag == "I" || model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd") == "I")
  2238. || rtnstat == "2" && (actingflag == "N" || actingflag == "P" || actingflag == "I" || model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd") == "I"))
  2239. ) {////마약반납확인 후 액팅수정(미확인/투약X-반환가능/투약X-반환불가)불가 정상투약/퇴원당일남은약는 잔량이 수정되지 않으므로 기록수정가능
  2240. // if ( spcldrug == "M" && (actingflag == "N" || actingflag == "P") ){////마약반납확인 후 액팅수정(미확인/투약X-반환가능)불가 정상투약/투약X-반환불가는 잔량이 수정되지 않으므로 기록수정가능
  2241. if ( rtnstat == "1" || isNull(rtnstat)){
  2242. if (rtnstat == "1" && messagenarcyn == "N"){
  2243. rtnmsg = messageBox("잔량이 신청된 마약처방이 존재합니다. \n 투약기록 수정시 잔량신청이 취소됩니다. \n 투약기록 ","Q003");
  2244. messagenarcyn = "Y";
  2245. }
  2246. if ( (messagenarcyn == "Y" && rtnmsg == "6") ){
  2247. if(actingflag == "P"){
  2248. grd_druglist.cellstyle("background-color",row+1,col) = yellowishgreen;
  2249. } else if(actingflag == "I"){
  2250. grd_druglist.cellstyle("background-color",row+1,col) = red;
  2251. } else if(actingflag == "R"){
  2252. grd_druglist.cellstyle("background-color",row+1,col) = yellow;
  2253. } else if(actingflag == "L"){
  2254. grd_druglist.cellstyle("background-color",row+1,col) = sky;
  2255. }else if(actingflag == "N"){
  2256. //색상
  2257. grd_druglist.cellstyle("background-color",row+1,col) = gray;
  2258. //주석
  2259. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactnm", "");
  2260. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactcd", "");
  2261. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfact", "");
  2262. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, "");
  2263. //flag
  2264. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/preantiyn", "N");
  2265. }
  2266. //입력/수정 상태값 변경
  2267. fChangeValueStatus(row, forarr[j]);
  2268. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd", actingflag);
  2269. //----------(20081211)확인중
  2270. //미확인 또는 예방적항생제(미확인) : 둘다 미확인임으로 투약기록일자/시간정보 clear
  2271. if(actingflag == "N" || actingflag == "M" ){
  2272. //----------(20081211)
  2273. medrexecdd = "00000000";
  2274. medrexectm = "0000";
  2275. } else {
  2276. if(model.getValue("/root/main/cond/acttimeflag") == "true"){
  2277. medrexecdd = model.getValue("/root/main/cond/currentday");
  2278. medrexectm = model.getValue("/root/main/cond/currenttime");
  2279. //-------------------------------(20080802)
  2280. ////////////alert(medrexectm);
  2281. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currentflag", "Y");
  2282. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currentdd", medrexecdd);
  2283. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currenttm", medrexectm);
  2284. //model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, medrexectm); //현재시간설정여부알림(화면상만)
  2285. //-------------------------------
  2286. } else {
  2287. drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/drugtmspeccal");
  2288. //alert("drugtmspec:" + drugtmspec);
  2289. //-------------(20081011)
  2290. //medrexecdd = getDateAddc(prcpdd, parseInt(drugtmspec / 2400)); //처방발생일
  2291. medrexecdd = getDateAddc(prcphopedd, parseInt(drugtmspec / 2400)); //처방희망일
  2292. //-------------(20081011)
  2293. medrexectm = Number(drugtmspec) % 2400;
  2294. medrexectm = fCarec_GetFillZeno(Math.abs(Number(medrexectm)), 4,0);
  2295. //alert("medrexecdd:" + medrexecdd + "/" + medrexectm);
  2296. }
  2297. }
  2298. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/medrexecdd", medrexecdd);
  2299. if (medrexectm != "") {
  2300. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/medrexectm", medrexectm + "00");
  2301. }
  2302. }
  2303. } else if (rtnstat == "2") {
  2304. if(messagenarccnfmyn == "N"){
  2305. messageBox("마약잔량반납이 완료된 처방이 존재합니다. 약제팀 연락하여 반납확인 취소 후 투약기록 수정","I008");//하십시오
  2306. messagenarccnfmyn = "Y";
  2307. }
  2308. }
  2309. //---------------(20101105) 경북대
  2310. // 원본
  2311. // rtnstat = 3 : 미신청
  2312. // rtnstat = 4 : 불출
  2313. // } else if ( (rtnstat == "3" && actingflag != "P") || rtnstat == "4" ){
  2314. // if((rtnstat == "3" && actingflag != "P") && messagenarcstat1yn == "N" ){
  2315. // messageBox(rtnprcpcd + " 마약은 불출신청 후 투약기록을 ","C003");//진행하십시오
  2316. // messagenarcstat1yn = "Y";
  2317. //
  2318. // model.setAttribute("Narc_Menu_Param", "");
  2319. // var sParam = sParam = "I,op";
  2320. // model.setAttribute("Narc_Menu_Param", sParam);
  2321. // model.setAttribute("SMADT30400_Fromdd", model.getValue(sPathNarcResult+"/rtnmsgprcpdd"));
  2322. // modal("SMADT30400","1","15","128");
  2323. // model.setAttribute("SMADT30400_Fromdd", "");
  2324. // }
  2325. // if(rtnstat == "4" && messagenarcstat5yn == "N" ){
  2326. // messageBox(rtnprcpcd + " 마약은 부서확인 후 투약기록을 ","C003");//진행하십시오
  2327. // messagenarcstat5yn = "Y";
  2328. //
  2329. // model.setAttribute("Narc_Menu_Param", "");
  2330. // var sParam = sParam = "I,op";
  2331. // model.setAttribute("Narc_Menu_Param", sParam);
  2332. // model.setAttribute("SMADT30400_Fromdd", model.getValue(sPathNarcResult+"/rtnmsgprcpdd"));
  2333. // modal("SMADT30400","1","15","128");
  2334. // model.setAttribute("SMADT30400_Fromdd", "");
  2335. // }
  2336. //20110108_KNUH_Start 셀프마약은 제외하도록한다. + 셀프마약과 파우더 처방인 'P+S' 처방일때도 부서확인 없이 .._ 손성훈.
  2337. } else if ( psydept == "N" && spcldrug == "M" /*&& actingflag == "R"*/ && actingflag != "P" && snarcstat != "6" && sdrughang.indexOf('self') == -1 && sdrughang.indexOf('P+S') == -1 ) {
  2338. // 투약기록은 부서확인이후에 가능하도록 한다.
  2339. // 마약 보유하는 특수부서(수술실, 일일수술실, 마취회복실)은 부서확인 없이 투약기록 가능하도록
  2340. // [투약X 반환가능]일 경우 부서확인 없이 투약기록 가능하도록 수정 2012.12.06 KJS
  2341. if ( messageBox(" "
  2342. + rtnprcpcd
  2343. + "\n\n 마약은 부서확인 이후 투약기록이 가능합니다."
  2344. + "\n 부서확인을 시행하시겠습니까?"
  2345. + "\n\n※ [정상투약], [투약X-반환불가], [퇴원당일 남은약] : 부서확인 이후 투약 기록 가능 "
  2346. + "\n※ [투약X-반환가능] : 불출되기 전이거나 부서확인 이후 투약 기록 가능", "Q999") == 6 ) {
  2347. messagenarcstat5yn = "Y";
  2348. model.setAttribute("Narc_Menu_Param", "");
  2349. var sParam = sParam = "I,op";
  2350. model.setAttribute("Narc_Menu_Param", sParam);
  2351. model.setAttribute("SMADT30400_Fromdd", model.getValue(sPathNarcResult+"/rtnmsgprcpdd"));
  2352. modal("SMADT30400","1","15","128");
  2353. model.setAttribute("SMADT30400_Fromdd", "");
  2354. }
  2355. //---------------(20101105) 경북대
  2356. } else if ( psydept == "N" && actingflag == "P" && snarcstat != "1" && snarcstat != "2" && snarcstat != "6" && !isNull(snarcstat) && sdrughang.indexOf('self') == -1 && sdrughang.indexOf('P+S') == -1 ) {
  2357. if ( messageBox(" "
  2358. + rtnprcpcd
  2359. + "\n\n 마약이 불출된 이후에는 부서확인을 해야 기록이 가능합니다. "
  2360. + "\n 부서확인을 시행하시겠습니까?"
  2361. + "\n\n※ [정상투약], [투약X-반환불가], [퇴원당일 남은약] : 부서확인 이후 투약 기록 가능 "
  2362. + "\n※ [투약X-반환가능] : 불출되기 전이거나 부서확인 이후 투약 기록 가능", "Q999") == 6 ) {
  2363. messagenarcstat5yn = "Y";
  2364. model.setAttribute("Narc_Menu_Param", "");
  2365. var sParam = sParam = "I,op";
  2366. model.setAttribute("Narc_Menu_Param", sParam);
  2367. model.setAttribute("SMADT30400_Fromdd", model.getValue(sPathNarcResult+"/rtnmsgprcpdd"));
  2368. modal("SMADT30400","1","15","128");
  2369. model.setAttribute("SMADT30400_Fromdd", "");
  2370. }
  2371. } else {
  2372. if(actingflag == "R"){
  2373. grd_druglist.cellstyle("background-color",row+1,col) = yellow;
  2374. } else if(actingflag == "P") {
  2375. grd_druglist.cellstyle("background-color",row+1,col) = yellowishgreen;
  2376. } else if(actingflag == "I") {
  2377. grd_druglist.cellstyle("background-color",row+1,col) = red;
  2378. } else if(actingflag == "L") {
  2379. grd_druglist.cellstyle("background-color",row+1,col) = sky;
  2380. //-------------(20081211)
  2381. } else if(actingflag == "N") {
  2382. //색상
  2383. grd_druglist.cellstyle("background-color",row+1,col) = gray;
  2384. //주석
  2385. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactnm", "");
  2386. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactcd", "");
  2387. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfact", "");
  2388. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, "");
  2389. //flag
  2390. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/preantiyn", "N");
  2391. } else if(actingflag == "M") {
  2392. var preantimsg = "예방적항생제";
  2393. //색상
  2394. grd_druglist.cellstyle("background-color",row+1,col) = orange;
  2395. //주석
  2396. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactnm", preantimsg);
  2397. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfactcd", "");
  2398. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/carecfact", preantimsg);
  2399. model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, preantimsg);
  2400. //flag
  2401. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/preantiyn", "Y");
  2402. //-------------(20081211)
  2403. } else {
  2404. }
  2405. //입력/수정 상태값 변경
  2406. fChangeValueStatus(row, forarr[j]);
  2407. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd", actingflag);
  2408. //----------(20081211)확인중
  2409. //미확인 또는 예방적항생제(미확인) : 둘다 미확인임으로 투약기록일자/시간정보 clear
  2410. if(actingflag == "N" || actingflag == "M" ){
  2411. //----------(20081211)
  2412. medrexecdd = "00000000";
  2413. medrexectm = "0000";
  2414. } else {
  2415. if(model.getValue("/root/main/cond/acttimeflag") == "true"){
  2416. medrexecdd = model.getValue("/root/main/cond/currentday");
  2417. medrexectm = model.getValue("/root/main/cond/currenttime");
  2418. //-------------------------------(20080802)
  2419. ////////////alert(medrexectm);
  2420. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currentflag", "Y");
  2421. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currentdd", medrexecdd);
  2422. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/currenttm", medrexectm);
  2423. //model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, medrexectm); //현재시간설정여부알림(화면상만)
  2424. //-------------------------------
  2425. } else {
  2426. drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/drugtmspeccal");
  2427. //alert("drugtmspec:" + drugtmspec);
  2428. //-------------(20081011)
  2429. //medrexecdd = getDateAddc(prcpdd, parseInt(drugtmspec / 2400)); //처방발생일
  2430. medrexecdd = getDateAddc(prcphopedd, parseInt(drugtmspec / 2400)); //처방희망일
  2431. //-------------(20081011)
  2432. medrexectm = Number(drugtmspec) % 2400;
  2433. medrexectm = fCarec_GetFillZeno(Math.abs(Number(medrexectm)), 4,0);
  2434. //alert("medrexecdd:" + medrexecdd + "/" + medrexectm);
  2435. }
  2436. }
  2437. //-------------(20080731)test:정상
  2438. ////////////alert("일자----------:" + medrexecdd + "/ 시간:" + medrexectm);
  2439. //-------------(20080731)
  2440. //--------------------------(20080731)TEST중
  2441. //미투약리스트에서 과거를 선택하고 현재시각으로 하면 어떻게 되야 하는건가요?
  2442. //시간대를 읽어서 다시 생성하는 로직
  2443. //--------------------------
  2444. /*
  2445. var tempTimet = "";
  2446. var tempTimej = "";
  2447. if (actingflag == "N") {
  2448. } else {
  2449. if(model.getValue("/root/main/cond/acttimeflag") == "true"){
  2450. //-----------
  2451. var tempforarr = getNodesetCount(xWardDrugListPath + "[" + row + "]/for");
  2452. //////////alert("1:"+ tempforarr+ "/" + forarr[j]);
  2453. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/drugtmspeccal",medrexectm);
  2454. for(var t = 1; t <= tempforarr; t++){
  2455. //////////alert("2:"+t);
  2456. tempTimej = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + t + "]/drugtmspeccal");
  2457. if (t == tempforarr) {
  2458. tempTimet += tempTimej
  2459. } else {
  2460. tempTimet += tempTimej + " ";
  2461. }
  2462. //////////alert("3:"+tempTimet);
  2463. }
  2464. //////////alert ("시간대:" + tempTimet);
  2465. //-----------
  2466. } else {
  2467. }
  2468. }
  2469. }
  2470. */
  2471. //--------------------------
  2472. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/medrexecdd", medrexecdd);
  2473. if(medrexectm != ""){
  2474. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/medrexectm", medrexectm + "00");
  2475. }
  2476. }//if ( spcldrug == "M" && (actingflag == "N" || actingflag == "P") )
  2477. }//end if( actingflag == model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd") )
  2478. }//if(forarr[j] != "")
  2479. }//for(var j = 0; j < forarr.length-1; j++)
  2480. } else {
  2481. }//else if(dccomcountyn == "N" && cell_color != "white")
  2482. } //for(var i = 0; i < grd_druglist.selectedCells.length; i++)
  2483. //-----------(20081121:test) grd_druglist.row = 1;가 있는데, 막고 테스트 진행함)
  2484. //grd_druglist.row = 1;
  2485. //숨겨진필드로 이동한다.
  2486. //grd_druglist.select(grd_druglist.row,grd_druglist.colref("engnm")) = true;
  2487. //grd_druglist.col = grd_druglist.colref("engnm");
  2488. grd_druglist.select(1,col) = true;
  2489. //-----------(20081121)
  2490. }
  2491. /**
  2492. * @group :
  2493. * @ver : 2007.06.25
  2494. * @by : 최경용
  2495. * @---------------------------------------------------
  2496. * @type : function
  2497. * @access : public
  2498. * @desc : 시간별 일괄 투약(기존Acting이 없을 경우만...)
  2499. * @param :
  2500. * @return :
  2501. * @---------------------------------------------------
  2502. */
  2503. function fSetDrugAllActing(drugstat){
  2504. var rows = grd_druglist.rows;
  2505. var col = grd_druglist.col;
  2506. //for(var i = 2; i <= rows-1; i++ ){
  2507. grd_druglist.select(2, col, rows-1, col) = true;
  2508. //}
  2509. fSetDrug(drugstat);
  2510. }
  2511. /**
  2512. * @group :
  2513. * @ver : 2007.06.25
  2514. * @by : 최경용
  2515. * @---------------------------------------------------
  2516. * @type : function
  2517. * @access : public
  2518. * @desc : 투약기록 내용 저장
  2519. * @param :
  2520. * @return :
  2521. * @---------------------------------------------------
  2522. */
  2523. function fClickSave(signflagyn){
  2524. //-------------(20081121)
  2525. toprow = grd_druglist.topRow;
  2526. toprowflag = "Y";
  2527. //-------------(20081121)
  2528. //--------------------------(20080627)
  2529. //상단에 정보가 없이 투약기록을 연다.
  2530. //그러면 투약기록에서 환자선택시 상단으로 올리고
  2531. //저장전에 다시 한번 내린다.
  2532. //-------------------------------------
  2533. //상단정보가 없을경우 인증저장시 오류
  2534. //var signgenrflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2535. //java.sql.SQLException: ORA-01400: NULL을 ("EMR"."MRIMESPI"."SIGNGENRFLAG") 안에 삽입할 수 없습니다
  2536. //himed.his.emr.emrreclib.elctcert.dao.ElctCertMngtDAOImpl.insElctCertInfo() at line 128 in ElctCertMngtDAOImpl.java
  2537. /*
  2538. var tempioflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2539. if ( tempioflag == "" ) {
  2540. // 환자정보 조회
  2541. var tempPamInfo = getGlobalVariable("paminfo");
  2542. setCSVToNode("/root/main/paminfo",tempPamInfo,"pamlist"); //환자정보내리기
  2543. //messageBox("상단정보가 존재하지 않습니다.저장할 수 없습니다.","E999");
  2544. //return;
  2545. }
  2546. tempioflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2547. */
  2548. //------------------(20080917)
  2549. //상단정보를 이용하지 않고, 환자리스트에서 ordtype를 이용한다.(20080721)
  2550. /*
  2551. if ( grd_patlist.row <= 0 ) {
  2552. messageBox("환자를 선택하십시오 ","E999");
  2553. return;
  2554. }
  2555. var tempioflag = model.getValue(xWardPatListPath + "[" + grd_patlist.row + "]/ordtype");
  2556. if ( tempioflag == "" ) {
  2557. messageBox("원무정보를 확인하십시오 ","E999");
  2558. return;
  2559. }
  2560. */
  2561. var pGrdTemp = "";
  2562. var temppatlistPath = ""; //0929
  2563. //var xWardPatListPath = "/root/main/wardpatinfo/wardpatlist";
  2564. //var xWardActListPath = "/root/main/wardactinfo/wardactlist";
  2565. if(screen_mode == "pat"){
  2566. pGrdTemp = grd_patlist;
  2567. temppatlistPath = xWardPatListPath; //0929
  2568. }else if(screen_mode == "act"){
  2569. pGrdTemp = grd_actlist;
  2570. temppatlistPath = xWardActListPath; //0929
  2571. }
  2572. if ( pGrdTemp.row <= 0 ) {
  2573. messageBox("환자를 선택하십시오 ","E999");
  2574. return;
  2575. }
  2576. var tempioflag = model.getValue(temppatlistPath + "[" + pGrdTemp.row + "]/ordtype"); //0929
  2577. if (model.getValue("/root/main/cond/wardcd") == "0000000000") {
  2578. xOpfromdt = model.getValue(temppatlistPath + "[" + pGrdTemp.row + "]/opfromdt");
  2579. }
  2580. //////alert( pGrdTemp.caption +"/"+ pGrdTemp.row +"/"+tempioflag ) ; //0924
  2581. if ( tempioflag == "" ) {
  2582. messageBox("원무정보를 확인하십시오 ","E999");
  2583. return;
  2584. }
  2585. //------------------(20080917)
  2586. var rows = grd_druglist.rows - 1;
  2587. var drugtmspec = "";
  2588. var carebasetmspec = "";
  2589. var tims = "";
  2590. var iudflag = "";
  2591. var inst_cnt = 1;
  2592. var prcpdd = "";
  2593. var prcpno = "";
  2594. var issdeptcd = "";
  2595. var psydept = "";
  2596. var prcphistno = "";
  2597. var execprcpno = "";
  2598. var carertnyn = "";
  2599. var execprcptims = "";
  2600. var pid = "";
  2601. var indd = "";
  2602. var cretno = "";
  2603. var prcpvol = "";
  2604. //20110107_KNUH_Start 김병국
  2605. var drprcpetc7 = "";
  2606. var drprcpetc8 = "";
  2607. //20110107_KNUH_End
  2608. var fluidflag = "";
  2609. var mixno = "";
  2610. var mixyn = "";
  2611. var carecfact = "";
  2612. var carecfactcd = "";
  2613. var carecfactnm = "";
  2614. var carebasedd = "";
  2615. var carebasetm = "";
  2616. var execcarestatcd = "";
  2617. var pastexeccarestatcd = "";
  2618. var prcpcd = "";
  2619. var carebasetmspec = "";
  2620. var execprcpuniqno = "";
  2621. var acttimeflag = model.getValue("root/main/cond/acttimeflag");
  2622. var currentday = model.getValue("root/main/cond/currentday");
  2623. var currenttime = model.getValue("root/main/cond/currenttime");
  2624. var execdd = "";
  2625. var exectm = "";
  2626. var prcpclscd = "";
  2627. var drugrateqty = "";
  2628. var spcldrug = "";
  2629. var signno = "";
  2630. var recdd = getCurrentDate();
  2631. var rectm = getCurrentTime();
  2632. var recsaveflag = "N";
  2633. var signflag = "02";
  2634. //---------------------------(20080721)
  2635. //상단정보를 이용하지 않고 환자리스트정보를 이용한다.
  2636. //var signgenrflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2637. var signgenrflag = tempioflag;
  2638. //---------------------------
  2639. var formcd = "0000002476";
  2640. var orddeptcd = "";
  2641. var orddrid = "";
  2642. var patnm = "";
  2643. var medrexecdd = "";
  2644. var medrexectm = "";
  2645. var prcpkindnm = "";
  2646. var orddrnm = "";
  2647. var prcpnm = "";
  2648. var narcrtnstat = "";
  2649. var narcrtnyn = "N";
  2650. var narcprcpnm = "";
  2651. //-----------------(20080802)
  2652. var currentflag = "";
  2653. var currentdd = "";
  2654. var currenttm = "";
  2655. //-----------------(20080802)
  2656. //-----------------(20081211)
  2657. var preantiyn = "";
  2658. //-----------------(20081211)
  2659. var antiastrid = "";
  2660. //-------------------(20080820)
  2661. //저장전 사전 체크기능
  2662. model.removenode("/root/send/savedata");
  2663. //xOpfromdt = "201401061700";
  2664. if (xOpfromdt != "") {
  2665. for(var i = 1; i < (grd_druglist.rows - 1); i++){
  2666. preantiyn = model.getValue(xWardDrugListPath + "[" + i + "]/preantiyn");
  2667. //if (xDrMode == "Y" && preantiyn == "Y") {
  2668. if (preantiyn == "Y") {
  2669. for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + i + "]/for"); j++){
  2670. iudflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/iudflag");
  2671. signflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/signflag");
  2672. medrexecdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/medrexecdd");
  2673. medrexectm = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/medrexectm").substr(0, 4);
  2674. if((iudflag == "I") ||
  2675. (iudflag == "U") ||
  2676. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  2677. // 수술예방적항생제 투여시간 확인 2014.01.06 KJS
  2678. var opfromdd = xOpfromdt.substr(0, 8);
  2679. var opfromtm = xOpfromdt.substr(8, 4);
  2680. var strOpfromdt = opfromdd.substr(0, 4) + "-" + opfromdd.substr(4, 2) + "-" + opfromdd.substr(6, 2) + " "+
  2681. opfromtm.substr(0, 2) + ":" + opfromtm.substr(2, 2);
  2682. var strMedrexecdt = medrexecdd.substr(0, 4) + "-" + medrexecdd.substr(4, 2) + "-" + medrexecdd.substr(6, 2) + " "+
  2683. medrexectm.substr(0, 2) + ":" + medrexectm.substr(2, 2);
  2684. if (opfromdd == medrexecdd) {
  2685. var timedif = eval(getTimeInterval(medrexectm, opfromtm)) / 60;
  2686. if (timedif > 60 || timedif < 0) {
  2687. rtnmsg = messageBox( "수술예방적 항생제 투여시간은 수술시작(절개)시간 전 1시간 이내 투약이 요구됩니다.\r\n\r\n" +
  2688. "수술시작(절개)시간: " + strOpfromdt + "\r\n" +
  2689. "투약기록시간 : " + strMedrexecdt + "\r\n\r\n" +
  2690. "이 시간으로 투약기록을 진행하시겠습니까?", "Q999");
  2691. if (rtnmsg != "6") {
  2692. return;
  2693. }
  2694. }
  2695. } else {
  2696. rtnmsg = messageBox( "수술예방적 항생제 투여일자가 수술일과 상이합니다.\r\n" +
  2697. "수술예방적 항생제 투여시간은 수술시작(절개)시간 전 1시간 이내 투약이 요구됩니다.\r\n\r\n" +
  2698. "수술시작(절개)시간: " + strOpfromdt + "\r\n" +
  2699. "투약기록시간 : " + strMedrexecdt + "\r\n\r\n" +
  2700. "이 시간으로 투약기록을 진행하시겠습니까?", "Q999");
  2701. if (rtnmsg != "6") {
  2702. return;
  2703. }
  2704. }
  2705. }
  2706. }
  2707. }
  2708. }
  2709. }
  2710. //return;
  2711. //---------(20081203)
  2712. //for(var i = 1; i < rows; i++){
  2713. for(var i = 1; i < (grd_druglist.rows - 1); i++){
  2714. //---------
  2715. narcrtnstat = "";
  2716. for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + i + "]/for"); j++){
  2717. iudflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/iudflag");
  2718. signflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/signflag");
  2719. if((iudflag == "I") ||
  2720. (iudflag == "U") ||
  2721. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  2722. //--------------------
  2723. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  2724. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  2725. //노드 하나만 남기고 다른 노드들을 삭제하지만,
  2726. //남겨진 하나의 노드에 설정되었던 값들도 삭제되므로 주의해서 사용해야 한다.
  2727. model.resetInstanceNode("/root/hidden/drugreportinfo");
  2728. //변수로
  2729. carebasetmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugbasetmspec");
  2730. drugtmspec = carebasetmspec.split(" ");
  2731. prcpdd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpdd");
  2732. prcpcd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd");
  2733. prcpno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpno");
  2734. issdept = model.getValue(xWardDrugListPath + "[" + i + "]/issdept");
  2735. psydept = model.getValue(xWardDrugListPath + "[" + i + "]/psydept");
  2736. carertnyn = model.getValue(xWardDrugListPath + "[" + i + "]/carertnyn");
  2737. execprcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  2738. pid = model.getValue(xWardDrugListPath + "[" + i + "]/pid");
  2739. indd = model.getValue(xWardDrugListPath + "[" + i + "]/indd");
  2740. cretno = model.getValue(xWardDrugListPath + "[" + i + "]/cretno");
  2741. prcpvol = model.getValue(xWardDrugListPath + "[" + i + "]/prcpvol");
  2742. drprcpetc7 = model.getValue(xWardDrugListPath + "[" + i + "]/drprcpetc7");
  2743. drprcpetc8 = model.getValue(xWardDrugListPath + "[" + i + "]/drprcpetc8");
  2744. mixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  2745. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/orgprcpclscd");
  2746. drugrateqty = model.getValue(xWardDrugListPath + "[" + i + "]/drugrateqty");
  2747. spcldrug = model.getValue(xWardDrugListPath + "[" + i + "]/spcldrug");
  2748. orddeptcd = model.getValue(xWardDrugListPath + "[" + i + "]/orddeptcd");
  2749. orddrid = model.getValue(xWardDrugListPath + "[" + i + "]/orddrid");
  2750. patnm = model.getValue(xWardDrugListPath + "[" + i + "]/patnm");
  2751. prcpkindnm = model.getValue(xWardDrugListPath + "[" + i + "]/prcpkindnm");
  2752. orddrnm = model.getValue(xWardDrugListPath + "[" + i + "]/orddrnm");
  2753. prcpnm = model.getValue(xWardDrugListPath + "[" + i + "]/prcpnm");
  2754. prcpcd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd");
  2755. narcrtnstat = model.getValue(xWardDrugListPath + "[" + i + "]/rtnstat");//마약잔량신청상태
  2756. if ( narcrtnstat == "1" ){
  2757. if ( narcrtnyn == "N" ) {
  2758. narcrtnyn = "Y"
  2759. }
  2760. }
  2761. if(mixno == ""){
  2762. mixyn = "N";
  2763. }else{
  2764. mixyn = "Y";
  2765. }
  2766. prcphistno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/prcphistno");
  2767. execprcpno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execprcpno");
  2768. carecfact = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/carecfact");
  2769. carecfactcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/carecfactcd");
  2770. carecfactnm = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/carecfactnm");
  2771. carebasedd = getDateAddc(prcpdd, drugtmspec[j] / 2400);
  2772. carebasetm = fCarec_GetFillZeno(Math.abs(Number(drugtmspec[j]) % 2400), 4,0) + "00";
  2773. execcarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execcarestatcd");
  2774. pastexeccarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/pastexeccarestatcd");
  2775. execprcpuniqno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execprcpuniqno");
  2776. signno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/signno");
  2777. execdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execdd"); //과거실행일자(exip.execdd)
  2778. medrexecdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/medrexecdd"); //투약일자
  2779. medrexectm = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/medrexectm");
  2780. //alert(medrexecdd + "/" + medrexectm);
  2781. //---------------------------(20080802)
  2782. // 현재시간설정정보
  2783. currentflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/currentflag"); //현재시간설정flag
  2784. currentdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/currentdd"); //현재시간설정시일자
  2785. currenttm = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/currenttm"); //현재시간설정시시간
  2786. //---------------------------(20080802)
  2787. //---------------------------(20081211)
  2788. preantiyn = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/preantiyn"); //예방적항생제
  2789. //---------------------------(20081211)
  2790. antiastrid = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/antiastrid"); //예방적항생제 AST 확인자
  2791. // 심사기준 점검 2013.09.04 KJS
  2792. //fJudgCheck(pid, indd, cretno, prcpcd, prcpno, execprcpno, execdd, execcarestatcd);
  2793. //값 반영
  2794. model.makeValue("/root/hidden/drugreportinfo/wardcd", model.getValue("/root/main/cond/wardcd"));
  2795. model.makeValue("/root/hidden/drugreportinfo/prcpdd", prcpdd);
  2796. model.makeValue("/root/hidden/drugreportinfo/prcpno", prcpno);
  2797. model.makeValue("/root/hidden/drugreportinfo/issdeptcd", issdeptcd);
  2798. model.makeValue("/root/hidden/drugreportinfo/psydept", psydept);
  2799. model.makeValue("/root/hidden/drugreportinfo/prcphistno", prcphistno);
  2800. model.makeValue("/root/hidden/drugreportinfo/execprcpno", execprcpno);
  2801. //20110107_KNUH_Start 일회용량, 일회수량 추가.
  2802. model.makeValue("/root/hidden/drugreportinfo/drprcpetc7", drprcpetc7);
  2803. model.makeValue("/root/hidden/drugreportinfo/drprcpetc8", drprcpetc8);
  2804. //20110107_KNUH_End
  2805. if(carertnyn == ""){
  2806. model.makeValue("/root/hidden/drugreportinfo/carertnyn", "N");
  2807. }else{
  2808. model.makeValue("/root/hidden/drugreportinfo/carertnyn",carertnyn);
  2809. }
  2810. model.makeValue("/root/hidden/drugreportinfo/execprcptims", execprcptims);
  2811. model.makeValue("/root/hidden/drugreportinfo/pid", pid);
  2812. model.makeValue("/root/hidden/drugreportinfo/indd", indd);
  2813. model.makeValue("/root/hidden/drugreportinfo/orddd", indd);
  2814. model.makeValue("/root/hidden/drugreportinfo/signno", signno);
  2815. model.makeValue("/root/hidden/drugreportinfo/recdd", recdd);
  2816. model.makeValue("/root/hidden/drugreportinfo/rectm", rectm);
  2817. model.makeValue("/root/hidden/drugreportinfo/recsaveflag", recsaveflag);
  2818. model.makeValue("/root/hidden/drugreportinfo/signflag", "02");
  2819. model.makeValue("/root/hidden/drugreportinfo/signgenrflag", signgenrflag);
  2820. model.makeValue("/root/hidden/drugreportinfo/formcd", formcd);
  2821. model.makeValue("/root/hidden/drugreportinfo/orddeptcd", orddeptcd);
  2822. model.makeValue("/root/hidden/drugreportinfo/orddrid", orddrid);
  2823. model.makeValue("/root/hidden/drugreportinfo/cretno", cretno);
  2824. model.makeValue("/root/hidden/drugreportinfo/prcpvol", prcpvol);
  2825. model.makeValue("/root/hidden/drugreportinfo/patnm", patnm);
  2826. model.makeValue("/root/hidden/drugreportinfo/fluidflag", fluidflag);
  2827. model.makeValue("/root/hidden/drugreportinfo/mixno", mixno);
  2828. model.makeValue("/root/hidden/drugreportinfo/mixyn", mixyn);
  2829. model.makeValue("/root/hidden/drugreportinfo/carecfact", carecfact);
  2830. model.makeValue("/root/hidden/drugreportinfo/carecfactcd", carecfactcd);
  2831. model.makeValue("/root/hidden/drugreportinfo/carecfactnm", carecfactnm);
  2832. model.makeValue("/root/hidden/drugreportinfo/carebasedd", carebasedd);
  2833. model.makeValue("/root/hidden/drugreportinfo/carebasetm", carebasetm);
  2834. if(execcarestatcd == "N" && pastexeccarestatcd == "N"){
  2835. model.makeValue("/root/hidden/drugreportinfo/execcarestatcd", "-");
  2836. }else{
  2837. model.makeValue("/root/hidden/drugreportinfo/execcarestatcd", execcarestatcd);
  2838. }
  2839. model.makeValue("/root/hidden/drugreportinfo/prcpcd", prcpcd);
  2840. model.makeValue("/root/hidden/drugreportinfo/carebasetmspec", carebasetmspec);
  2841. model.makeValue("/root/hidden/drugreportinfo/acttimeflag", acttimeflag);
  2842. model.makeValue("/root/hidden/drugreportinfo/execprcpuniqno", execprcpuniqno);
  2843. //-------------------------------------------
  2844. //현재일자(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  2845. model.makeValue("/root/hidden/drugreportinfo/currentday", currentday);
  2846. //현재시간(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  2847. model.makeValue("/root/hidden/drugreportinfo/currenttime", currenttime);
  2848. //-------------------------------------------
  2849. model.makeValue("/root/hidden/drugreportinfo/iudflag", iudflag);
  2850. model.makeValue("/root/hidden/drugreportinfo/pastexecdd", execdd);
  2851. model.makeValue("/root/hidden/drugreportinfo/medrexecdd", medrexecdd);
  2852. model.makeValue("/root/hidden/drugreportinfo/medrexectm", medrexectm);
  2853. model.makeValue("/root/hidden/drugreportinfo/prcpclscd", prcpclscd);
  2854. model.makeValue("/root/hidden/drugreportinfo/drugrateqty", drugrateqty);
  2855. model.makeValue("/root/hidden/drugreportinfo/spcldrug", spcldrug);
  2856. model.makeValue("/root/hidden/drugreportinfo/prcpkindnm", prcpkindnm);
  2857. model.makeValue("/root/hidden/drugreportinfo/orddrnm", orddrnm);
  2858. model.makeValue("/root/hidden/drugreportinfo/prcpnm", prcpnm);
  2859. model.makeValue("/root/hidden/drugreportinfo/signflagyn", signflagyn);
  2860. model.makeValue("/root/hidden/drugreportinfo/rtnstat", narcrtnstat);
  2861. if(iudflag == "-" && signflagyn == "Y" && signflag == "N"){
  2862. model.makeValue("/root/hidden/drugreportinfo/saveflag", "1");//임시저장 후 인증저장
  2863. }else if(signflagyn == "N"){
  2864. model.makeValue("/root/hidden/drugreportinfo/saveflag", "0");//임시저장
  2865. }else if(signflagyn == "Y"){
  2866. model.makeValue("/root/hidden/drugreportinfo/saveflag", "2");//인증저장
  2867. }else{}
  2868. //--------------------------(20081203)
  2869. //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  2870. //건별인증은 dispyn ='N'
  2871. //하단의 일자별인 경우만 보임
  2872. //20081204 APP에서 인증저장시에도 다시 한번 더 반영함
  2873. model.makeValue("/root/hidden/drugreportinfo/dispyn", "N");
  2874. //--------------------------(20081203)
  2875. model.makeValue("/root/hidden/drugreportinfo/signbfcnts", ""); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  2876. model.makeValue("/root/hidden/drugreportinfo/signaftcnts", ""); // 공인인증 처리후 데이터
  2877. //---------------------------(20080802)
  2878. // 현재시간설정정보
  2879. model.makeValue("/root/hidden/drugreportinfo/currentflag", currentflag); //현재시간설정flag
  2880. model.makeValue("/root/hidden/drugreportinfo/currentdd", currentdd); //현재시간설정시일자
  2881. model.makeValue("/root/hidden/drugreportinfo/currenttm", currenttm); //현재시간설정시시간
  2882. //---------------------------(20080802)
  2883. //---------------------------(20081211)
  2884. model.makeValue("/root/hidden/drugreportinfo/preantiyn", preantiyn); //예방적항생제추가
  2885. //---------------------------(20081211)
  2886. model.makeValue("/root/hidden/drugreportinfo/antiastrid", antiastrid);
  2887. model.makeValue("/root/send/savedata/drugreportinfo[" + inst_cnt + "]", "");
  2888. model.copynode("/root/send/savedata/drugreportinfo[" + inst_cnt + "]", "/root/hidden/drugreportinfo");
  2889. inst_cnt++;
  2890. }
  2891. }
  2892. // if ( narcrtnstat == "1" ){
  2893. // narcprcpnm += "["+ prcpcd +"]"
  2894. // }
  2895. }
  2896. if(inst_cnt > 1){
  2897. //------------------------------------
  2898. //반환사유확인 후 진행여부 결과 받음
  2899. var endflag = fnEndddSave();
  2900. if ( endflag == false) return;
  2901. //------------------------------------
  2902. }else{
  2903. messageBox("저장 할 내용이","I004");
  2904. return;
  2905. }
  2906. //------------------------(20080820)
  2907. //------------------------(20080820)
  2908. //다시 초기화
  2909. currentflag = "";
  2910. currentdd = "";
  2911. currenttm = "";
  2912. inst_cnt = 1;
  2913. //------------------------(20080820)
  2914. //------------------------(20081211)
  2915. preantiyn = "N";
  2916. //------------------------(20081211)
  2917. //------------------------(20080902)
  2918. var signDates = new Array;
  2919. var signDateCnt = 0;
  2920. var signdispdd = "";
  2921. //------------------------(20080902)
  2922. //--------------------------(20080917)
  2923. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  2924. //--------------------------(20080917)
  2925. model.removenode("/root/send/savedata");
  2926. //--------------------------(20081203)테스트해야함
  2927. model.removenode("/root/hidden/drugreportinfo");
  2928. model.makenode("/root/hidden/drugreportinfo");
  2929. //for(var i = 1; i < rows; i++){
  2930. for(var i = 1; i < (grd_druglist.rows - 1); i++){
  2931. //--------------------------
  2932. for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + i + "]/for"); j++){
  2933. iudflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/iudflag");
  2934. signflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/signflag");
  2935. if((iudflag == "I") ||
  2936. (iudflag == "U") ||
  2937. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  2938. //--------------------
  2939. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  2940. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  2941. //노드 하나만 남기고 다른 노드들을 삭제하지만,
  2942. //남겨진 하나의 노드에 설정되었던 값들도 삭제되므로 주의해서 사용해야 한다.
  2943. model.resetInstanceNode("/root/hidden/drugreportinfo");
  2944. //변수로
  2945. carebasetmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugbasetmspec");
  2946. drugtmspec = carebasetmspec.split(" ");
  2947. prcpdd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpdd");
  2948. prcpcd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd");
  2949. prcpno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpno");
  2950. issdeptcd = model.getValue(xWardDrugListPath + "[" + i + "]/issdeptcd");
  2951. psydept = model.getValue(xWardDrugListPath + "[" + i + "]/psydept");
  2952. carertnyn = model.getValue(xWardDrugListPath + "[" + i + "]/carertnyn");
  2953. execprcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  2954. pid = model.getValue(xWardDrugListPath + "[" + i + "]/pid");
  2955. indd = model.getValue(xWardDrugListPath + "[" + i + "]/indd");
  2956. cretno = model.getValue(xWardDrugListPath + "[" + i + "]/cretno");
  2957. prcpvol = model.getValue(xWardDrugListPath + "[" + i + "]/prcpvol");
  2958. //20110107_KNUH_Start 일회용량, 일회수량추가.
  2959. drprcpetc7 = model.getValue(xWardDrugListPath + "[" + i + "]/drprcpetc7");
  2960. drprcpetc8 = model.getValue(xWardDrugListPath + "[" + i + "]/drprcpetc8");
  2961. //20110107_KNUH_End
  2962. mixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  2963. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/orgprcpclscd");
  2964. drugrateqty = model.getValue(xWardDrugListPath + "[" + i + "]/drugrateqty");
  2965. spcldrug = model.getValue(xWardDrugListPath + "[" + i + "]/spcldrug");
  2966. orddeptcd = model.getValue(xWardDrugListPath + "[" + i + "]/orddeptcd");
  2967. orddrid = model.getValue(xWardDrugListPath + "[" + i + "]/orddrid");
  2968. patnm = model.getValue(xWardDrugListPath + "[" + i + "]/patnm");
  2969. prcpkindnm = model.getValue(xWardDrugListPath + "[" + i + "]/prcpkindnm");
  2970. orddrnm = model.getValue(xWardDrugListPath + "[" + i + "]/orddrnm");
  2971. prcpnm = model.getValue(xWardDrugListPath + "[" + i + "]/prcpnm");
  2972. prcpcd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd");
  2973. narcrtnstat = model.getValue(xWardDrugListPath + "[" + i + "]/rtnstat");//마약잔량신청상태
  2974. if(mixno == ""){
  2975. mixyn = "N";
  2976. }else{
  2977. mixyn = "Y";
  2978. }
  2979. prcphistno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/prcphistno");
  2980. execprcpno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execprcpno");
  2981. carecfact = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/carecfact");
  2982. carecfactcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/carecfactcd");
  2983. carecfactnm = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/carecfactnm");
  2984. carebasedd = getDateAddc(prcpdd, drugtmspec[j] / 2400);
  2985. carebasetm = fCarec_GetFillZeno(Math.abs(Number(drugtmspec[j]) % 2400), 4,0) + "00";
  2986. execcarestatcd= model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execcarestatcd");
  2987. pastexeccarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/pastexeccarestatcd");
  2988. execprcpuniqno= model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execprcpuniqno");
  2989. signno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/signno");
  2990. execdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execdd"); //과거실행일자(exip.execdd)
  2991. medrexecdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/medrexecdd"); //투약일자
  2992. medrexectm = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/medrexectm");
  2993. //alert(medrexecdd + "/" + medrexectm); //-----1011
  2994. //---------------------------(20080802)
  2995. // 현재시간설정정보
  2996. currentflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/currentflag"); //현재시간설정flag
  2997. currentdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/currentdd"); //현재시간설정시일자
  2998. currenttm = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/currenttm"); //현재시간설정시시간
  2999. //---------------------------(20080802)
  3000. //---------------------------(20081211)
  3001. preantiyn = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/preantiyn"); //예방적항생제
  3002. //---------------------------(20081211)
  3003. antiastrid = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/antiastrid"); //예방적항생제 AST 확인자
  3004. //--------------------------(20080902)
  3005. signdispdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/dispdd"); //화면상의 일자
  3006. ////////////alert( "전체loop:" + signdispdd + "/"+ medrexecdd + "/" + currentdd);
  3007. if ( signDates.length == 0) {
  3008. signDateCnt =0;
  3009. signDates[signDateCnt] = "";
  3010. }
  3011. // if (signdayFind(signDates,medrexecdd) == true ) { //------(투약일자)
  3012. // signDateCnt ++;
  3013. // signDates[signDateCnt] = medrexecdd;
  3014. // //////////alert("b:" + signDates[signDateCnt] +"/" + medrexecdd);
  3015. // }
  3016. if (signdayFind(signDates,signdispdd) == true ) { //------(투약일자)
  3017. signDateCnt ++;
  3018. signDates[signDateCnt] = signdispdd;
  3019. ////////////alert("b:" + signDates[signDateCnt] +"/" + signdispdd);
  3020. }
  3021. if (signdayFind(signDates,currentdd) == true ) { //------(현재일자)
  3022. signDateCnt ++;
  3023. signDates[signDateCnt] = currentdd;
  3024. ////////////alert("c:" + signDates[signDateCnt] +"/" + currentdd);
  3025. }
  3026. //--------------------------(20080902)
  3027. //값 반영
  3028. model.makeValue("/root/hidden/drugreportinfo/wardcd", model.getValue("/root/main/cond/wardcd"));
  3029. model.makeValue("/root/hidden/drugreportinfo/rtnstat", narcrtnstat);
  3030. model.makeValue("/root/hidden/drugreportinfo/prcpdd", prcpdd);
  3031. model.makeValue("/root/hidden/drugreportinfo/prcpno", prcpno);
  3032. model.makeValue("/root/hidden/drugreportinfo/issdeptcd", issdeptcd);
  3033. model.makeValue("/root/hidden/drugreportinfo/psydept", psydept);
  3034. model.makeValue("/root/hidden/drugreportinfo/prcphistno", prcphistno);
  3035. model.makeValue("/root/hidden/drugreportinfo/execprcpno", execprcpno);
  3036. if(carertnyn == ""){
  3037. model.makeValue("/root/hidden/drugreportinfo/carertnyn", "N");
  3038. }else{
  3039. model.makeValue("/root/hidden/drugreportinfo/carertnyn",carertnyn);
  3040. }
  3041. model.makeValue("/root/hidden/drugreportinfo/execprcptims", execprcptims);
  3042. model.makeValue("/root/hidden/drugreportinfo/pid", pid);
  3043. model.makeValue("/root/hidden/drugreportinfo/indd", indd);
  3044. model.makeValue("/root/hidden/drugreportinfo/orddd", indd);
  3045. model.makeValue("/root/hidden/drugreportinfo/signno", signno);
  3046. model.makeValue("/root/hidden/drugreportinfo/recdd", recdd);
  3047. model.makeValue("/root/hidden/drugreportinfo/rectm", rectm);
  3048. model.makeValue("/root/hidden/drugreportinfo/recsaveflag", recsaveflag);
  3049. model.makeValue("/root/hidden/drugreportinfo/signflag", "02");
  3050. model.makeValue("/root/hidden/drugreportinfo/signgenrflag", signgenrflag);
  3051. model.makeValue("/root/hidden/drugreportinfo/formcd", formcd);
  3052. model.makeValue("/root/hidden/drugreportinfo/orddeptcd", orddeptcd);
  3053. model.makeValue("/root/hidden/drugreportinfo/orddrid", orddrid);
  3054. model.makeValue("/root/hidden/drugreportinfo/cretno", cretno);
  3055. model.makeValue("/root/hidden/drugreportinfo/prcpvol", prcpvol);
  3056. model.makeValue("/root/hidden/drugreportinfo/patnm", patnm);
  3057. model.makeValue("/root/hidden/drugreportinfo/fluidflag", fluidflag);
  3058. model.makeValue("/root/hidden/drugreportinfo/mixno", mixno);
  3059. model.makeValue("/root/hidden/drugreportinfo/mixyn", mixyn);
  3060. model.makeValue("/root/hidden/drugreportinfo/carecfact", carecfact);
  3061. model.makeValue("/root/hidden/drugreportinfo/carecfactcd", carecfactcd);
  3062. model.makeValue("/root/hidden/drugreportinfo/carecfactnm", carecfactnm);
  3063. model.makeValue("/root/hidden/drugreportinfo/carebasedd", carebasedd);
  3064. model.makeValue("/root/hidden/drugreportinfo/carebasetm", carebasetm);
  3065. //20110107_KNUH_Start 일회용량, 일회수량추가.
  3066. model.makeValue("/root/hidden/drugreportinfo/drprcpetc7", drprcpetc7);
  3067. model.makeValue("/root/hidden/drugreportinfo/drprcpetc8", drprcpetc8);
  3068. //20110107_KNUH_End 일회용량, 일회수량추가.
  3069. if(execcarestatcd == "N" && pastexeccarestatcd == "N"){
  3070. model.makeValue("/root/hidden/drugreportinfo/execcarestatcd", "-");
  3071. }else{
  3072. model.makeValue("/root/hidden/drugreportinfo/execcarestatcd", execcarestatcd);
  3073. }
  3074. model.makeValue("/root/hidden/drugreportinfo/prcpcd", prcpcd);
  3075. model.makeValue("/root/hidden/drugreportinfo/carebasetmspec", carebasetmspec);
  3076. model.makeValue("/root/hidden/drugreportinfo/acttimeflag", acttimeflag);
  3077. model.makeValue("/root/hidden/drugreportinfo/execprcpuniqno", execprcpuniqno);
  3078. //-------------------------------------------
  3079. //현재일자(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  3080. model.makeValue("/root/hidden/drugreportinfo/currentday", currentday);
  3081. //현재시간(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  3082. model.makeValue("/root/hidden/drugreportinfo/currenttime", currenttime);
  3083. //-------------------------------------------
  3084. model.makeValue("/root/hidden/drugreportinfo/iudflag", iudflag);
  3085. model.makeValue("/root/hidden/drugreportinfo/pastexecdd", execdd);
  3086. model.makeValue("/root/hidden/drugreportinfo/medrexecdd", medrexecdd);
  3087. model.makeValue("/root/hidden/drugreportinfo/medrexectm", medrexectm);
  3088. model.makeValue("/root/hidden/drugreportinfo/prcpclscd", prcpclscd);
  3089. model.makeValue("/root/hidden/drugreportinfo/drugrateqty", drugrateqty);
  3090. model.makeValue("/root/hidden/drugreportinfo/spcldrug", spcldrug);
  3091. model.makeValue("/root/hidden/drugreportinfo/prcpkindnm", prcpkindnm);
  3092. model.makeValue("/root/hidden/drugreportinfo/orddrnm", orddrnm);
  3093. model.makeValue("/root/hidden/drugreportinfo/prcpnm", prcpnm);
  3094. model.makeValue("/root/hidden/drugreportinfo/signflagyn", signflagyn);
  3095. if(iudflag == "-" && signflagyn == "Y" && signflag == "N"){
  3096. model.makeValue("/root/hidden/drugreportinfo/saveflag", "1");//임시저장 후 인증저장
  3097. }else if(signflagyn == "N"){
  3098. model.makeValue("/root/hidden/drugreportinfo/saveflag", "0");//임시저장
  3099. }else if(signflagyn == "Y"){
  3100. model.makeValue("/root/hidden/drugreportinfo/saveflag", "2");//인증저장
  3101. }else{}
  3102. //--------------------------(20080921)
  3103. //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  3104. //건별인증은 dispyn ='N'
  3105. //하단의 일자별인 경우만 보임
  3106. //20081204 APP에서 인증저장시에도 다시 한번 더 반영함
  3107. model.makeValue("/root/hidden/drugreportinfo/dispyn", "N");
  3108. //--------------------------(20080921)
  3109. if(signflagyn == "Y"){
  3110. //----------------(20081112)
  3111. //sign_row = inst_cnt; //저장대상으므로 inst_cnt를 사용하면 안됨
  3112. sign_row = i; //row
  3113. sign_saverow = i;
  3114. sign_savecol = j;
  3115. //signdispdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/dispdd"); //화면상의 일자
  3116. //----------------(20081112)
  3117. if( vsettime == "") {
  3118. Sign.certchkflag = "Y";
  3119. } else {
  3120. var res2 = getTimeInterval(vsettime, getCurrentTime(), 'hhmmss');
  3121. if(res2 > signtime* 60 || res2 < 0) {
  3122. Sign.certchkflag = "Y";
  3123. } else {
  3124. Sign.certchkflag = "N";
  3125. }
  3126. }
  3127. //-------------(20080924)
  3128. if(Sign.signprocess() == false){//인증저장 데이터 생성
  3129. return;
  3130. }
  3131. //------------(20080924)
  3132. Sign.certreload = false;
  3133. model.makeValue("/root/hidden/drugreportinfo/signbfcnts", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  3134. model.makeValue("/root/hidden/drugreportinfo/signaftcnts", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  3135. }else{
  3136. model.makeValue("/root/hidden/drugreportinfo/signbfcnts", ""); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  3137. model.makeValue("/root/hidden/drugreportinfo/signaftcnts", ""); // 공인인증 처리후 데이터
  3138. }
  3139. //---------------------------(20080802)
  3140. // 현재시간설정정보
  3141. model.makeValue("/root/hidden/drugreportinfo/currentflag", currentflag); //현재시간설정flag
  3142. model.makeValue("/root/hidden/drugreportinfo/currentdd", currentdd); //현재시간설정시일자
  3143. model.makeValue("/root/hidden/drugreportinfo/currenttm", currenttm); //현재시간설정시시간
  3144. //---------------------------(20080802)
  3145. //---------------------------(20081211)
  3146. model.makeValue("/root/hidden/drugreportinfo/preantiyn", preantiyn); //예방적항생제
  3147. //---------------------------(20081211)
  3148. model.makeValue("/root/hidden/drugreportinfo/antiastrid", antiastrid); //예방적항생제 AST확인자
  3149. model.makeValue("/root/send/savedata/drugreportinfo[" + inst_cnt + "]", "");
  3150. model.copynode("/root/send/savedata/drugreportinfo[" + inst_cnt + "]", "/root/hidden/drugreportinfo");
  3151. inst_cnt++;
  3152. }
  3153. }
  3154. }
  3155. // //alert("중지"); //-----1011
  3156. // return;
  3157. //-----------------------(20080820)
  3158. //return;
  3159. //-----------------------(20080820)
  3160. if(inst_cnt > 1){
  3161. model.removeNodeset(xHiddenRtnMsgPath);
  3162. activateMyWindow();
  3163. vsettime = getCurrentTime();
  3164. if(submit("TXMNR00601")){
  3165. var sRtnMsgStat = model.getValue(xHiddenRtnMsgPath+"/rtnmsgstat");
  3166. if ( sRtnMsgStat == "0"
  3167. || sRtnMsgStat == "5" ){
  3168. messageBox(model.getValue(xHiddenRtnMsgPath+"/rtnmsg"),"C003");//마약 및 향정약은 불출신청 후 투약기록을 , 마약 및 향정약은 부서확인 후 투약기록을
  3169. model.setAttribute("Narc_Menu_Param", "");
  3170. var sParam = sParam = "I,op";
  3171. model.setAttribute("Narc_Menu_Param", sParam);
  3172. model.setAttribute("SMADT30400_Fromdd", model.getValue(xHiddenRtnMsgPath+"/rtnmsgprcpdd"));
  3173. modal("SMADT30400","1","15","128");
  3174. model.setAttribute("SMADT30400_Fromdd", "");
  3175. }else if ( sRtnMsgStat.substring(0,3) == "emc" ){
  3176. messageBox(model.getValue(xHiddenRtnMsgPath+"/rtnmsg"),"C003");//경구,외용은 투약신청이나 선처치지정후 투약기록을
  3177. var sPatInfo = model.getValue(xPatInfoPath+"/pid")+"▦"
  3178. + model.getValue(xPatInfoPath+"/indd")+"▦"
  3179. + model.getValue(xPatInfoPath+"/cretno")+"▦"
  3180. + "om▦"
  3181. + sRtnMsgStat.substring(3)+"▩";
  3182. setParameter("SMMNE001_Param",sPatInfo);
  3183. modal("SMMNE00100");
  3184. }else {
  3185. //-----------------------------------------------(20080901)
  3186. // 투약기록을 일자별로 XLST를 만들기 위해서
  3187. //java.sql.SQLException: ORA-01400: NULL을 ("EMR"."MRIMESPI"."SIGNGENRFLAG") 안에 삽입할 수 없습니다
  3188. //himed.his.emr.emrreclib.elctcert.dao.ElctCertMngtDAOImpl.insElctCertInfo() at line 128 in ElctCertMngtDAOImpl.java
  3189. //오류로 임시로막음
  3190. //-----------------------------------------------
  3191. ////////alert("test");
  3192. //--------------------------(20080917)
  3193. //Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  3194. //--------------------------(20080917)
  3195. fnWorkddSign(signDates);
  3196. //-----------------------------------------------(20080901)
  3197. // messageBox("성공적으로","I001"); // [TASK번호:37895, 요청번호:8895] 투약기록후 저장완료 메시지 삭제_20091027(ByJA)
  3198. }
  3199. }
  3200. fClickDrugListBefore(); //------------(20081031)
  3201. if(screen_mode == "pat"){
  3202. fClickDrugList(screen_mode, grd_patlist.row);
  3203. }else if(screen_mode == "act"){
  3204. fClickDrugList(screen_mode, grd_actlist.row);
  3205. fGetActList();
  3206. }else{}
  3207. fClickDrugListAfter(); //------------(20081031)
  3208. }else{
  3209. messageBox("저장 할 내용이","I004");
  3210. return;
  3211. }
  3212. //-----------------------(20080819)
  3213. //저장한후 현재시각을 초기화 한다.
  3214. model.setValue("/root/main/cond/acttimeflag","");
  3215. model.setValue("/root/main/cond/currentday","");
  3216. model.setValue("/root/main/cond/currenttime","");
  3217. model.refresh();
  3218. //-----------------------(20080819)
  3219. }
  3220. //------------------------------------------(20080902)
  3221. function fnWorkddSign(signDates) {
  3222. //-----------------------------------------------(20080901)
  3223. // 투약기록을 일자별로 XLST를 만들기 위해서
  3224. //-----------------------------------------------
  3225. var sPathSign = "/root/signinfo";
  3226. //----------------------(20081012)
  3227. var pGrd = grd_patlist;
  3228. var pPath = "/root/main/wardpatinfo/wardpatlist";
  3229. if(screen_mode == "act"){
  3230. pGrd = grd_actlist;
  3231. pPath = "/root/main/wardactinfo/wardactlist";
  3232. }
  3233. //----------------------(20081012)
  3234. var signDate = "";
  3235. for (var i=0;i<signDates.length;i++) {
  3236. signDate = "" + signDates[i];
  3237. if ( signDate != "") {
  3238. model.resetInstanceNode(sPathSign + "/reqsigncond");
  3239. signDate = signDate.replace("-","");
  3240. var spid = model.getValue(pPath +"[" + pGrd.row + "]/pid"); //등록번호 (필수)
  3241. var sinstcd = "";//model.getValue("/root/main/wardpatinfo/wardpatlist/instcd"); //기관코드 (사용X)
  3242. var sindd = model.getValue(pPath +"[" + pGrd.row + "]/indd"); //입원일자 (필수)
  3243. var scretno = model.getValue(pPath +"[" + pGrd.row + "]/cretno");//생성번호 (사용X)
  3244. var sprcpdd = ""; //처방일자 (PRN시 필수)
  3245. var sprcpno = ""; //처방번호 (확인사항)
  3246. var sworkdd = signDate; //model.getValue("/root/main/cond/orddd"); //투약일(일자그룹일때만 (필수)
  3247. var slistflag = "90"; //작업구분 (필수)
  3248. var snursnm = getUserName(); //간호사명추가 (필수)
  3249. var shngnm = model.getValue(pPath +"[" + pGrd.row + "]/patnm") //환자명추가 (필수)
  3250. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  3251. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  3252. model.setValue(sPathSign + "/reqsigncond/pid" ,spid ); //desc="등록번호"
  3253. model.setValue(sPathSign + "/reqsigncond/instcd" ,sinstcd ); //desc="기관코드"
  3254. model.setValue(sPathSign + "/reqsigncond/indd" ,sindd ); //desc="입원일자"
  3255. model.setValue(sPathSign + "/reqsigncond/cretno" ,scretno ); //desc="생성번호"
  3256. model.setValue(sPathSign + "/reqsigncond/prcpdd" ,sprcpdd ); //desc="처방일자"
  3257. model.setValue(sPathSign + "/reqsigncond/prcpno" ,sprcpno ); //desc="처방번호"
  3258. model.setValue(sPathSign + "/reqsigncond/workdd" ,sworkdd ); //desc="투약일"
  3259. model.setValue(sPathSign + "/reqsigncond/listflag" ,slistflag ); //desc="작업구분"
  3260. model.setValue(sPathSign + "/reqsigncond/nursnm" ,snursnm ); //desc="간호사명추가"
  3261. model.setValue(sPathSign + "/reqsigncond/hngnm" ,shngnm ); //desc="환자명추가"
  3262. model.setValue(sPathSign + "/reqsigncond/medrexecdd" ,smedrexecdd); //desc="화면에서저장할투약일자"
  3263. model.setValue(sPathSign + "/reqsigncond/medrexectm" ,smedrexectm); //desc="화면에서저장할투약시간"
  3264. var pFlag = "Drug"; //저장구분 (Drug : 투약기록)
  3265. var pNode1 = ""; //조회할 조건 PATH(의미없음)
  3266. var pNode2 = "/root/signinfo/signdruginfo/signdruglist"; //Return 리스트 PATH
  3267. var pIoflag = model.getValue(pPath +"[" + pGrd.row + "]/ordtype"); //---(20080917)
  3268. fCare_SignNode(pFlag, pNode1, pNode2,spid,sindd,scretno,pIoflag);
  3269. //fCare_SignNode(pFlag, pNode1, pNode2, pPid, pIndd, pCretno, pIoflag){
  3270. }
  3271. }
  3272. }
  3273. //------------------------------------------(20080902)
  3274. /**
  3275. * @group :
  3276. * @ver : 2007.12.15
  3277. * @by : 최경용
  3278. * @---------------------------------------------------
  3279. * @type : function
  3280. * @access : public
  3281. * @desc : 투약기록 인증데이터 생성 함수
  3282. * @param :
  3283. * @param :
  3284. * @return :
  3285. * @---------------------------------------------------
  3286. */
  3287. //------투약기록용
  3288. function fMake_SignData(){
  3289. /*
  3290. <signinfo>
  3291. <signdata>
  3292. <pid>29953</pid>
  3293. <hngnm>T입0820</hngnm>
  3294. <prcpdd>20080821</prcpdd>
  3295. <execdd>20080821</execdd>
  3296. <prcpkindnm/>
  3297. <prcpmixno/>
  3298. <prcpcd>DSSL500</prcpcd>
  3299. <prcpnm>Disal tab. 500mg (Salsalate)</prcpnm>
  3300. <prcpvolnm>1500mg</prcpvolnm>
  3301. <prcpqtynm>3T</prcpqtynm>
  3302. <abbrnm>PO</abbrnm>
  3303. <exectm>130000</exectm>
  3304. <nursnm>김보성</nursnm>
  3305. <execcarestatnm>정상투약</execcarestatnm>
  3306. <carecfactnm> </carecfactnm>
  3307. <orddrnm>김만수</orddrnm>
  3308. </signdata>
  3309. </signinfo>
  3310. */
  3311. var execcarestatcd = model.getValue("/root/hidden/drugreportinfo/execcarestatcd");
  3312. var medrexecdd = model.getValue("/root/hidden/drugreportinfo/medrexecdd");
  3313. var medrexectm = model.getValue("/root/hidden/drugreportinfo/medrexectm");
  3314. //이윤주 수정
  3315. if (signgbn == "Z") {
  3316. //테스트
  3317. }
  3318. else {
  3319. //----------------------(20081112)
  3320. //var prcpvol = grd_druglist.labelMatrix((sign_row+1), 5);
  3321. //var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), 6);
  3322. //var prcpqty = grd_druglist.labelMatrix((sign_row+1), 7);
  3323. //var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), 8);
  3324. //var prcpvol = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpvol"));
  3325. //var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpvolunitflag"));
  3326. //var prcpqty = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpqty"));
  3327. //var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpqtyunitflag"));
  3328. //var prcptims = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcptims"));
  3329. //소숫점3자리에서 반올림
  3330. //prcptims = prcptims.replace("#","");
  3331. //prcpvol = fnRound(prcpvol/prcptims,3);
  3332. //prcpqty = fnRound(prcpqty/prcptims,3);
  3333. var prcpvol = model.getValue(xWardDrugListPath + "[" + sign_saverow + "]/for[" + sign_savecol + "]/execprcpvol");
  3334. //var drprcpetc7 = model.getValue(xWardDrugListPath + "[" + sign_saverow + "]/for[" + sign_savecol + "]/drprcpetc7");
  3335. var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpvolunitflag"));
  3336. var prcpqty = model.getValue(xWardDrugListPath + "[" + sign_saverow + "]/for[" + sign_savecol + "]/execprcpqty");
  3337. //var drprcpetc8 = model.getValue(xWardDrugListPath + "[" + sign_saverow + "]/for[" + sign_savecol + "]/drprcpetc8");
  3338. var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpqtyunitflag"));
  3339. //alert( prcpvol + "/" + prcpvolunitflag + "/" + prcpqty + "/" +prcpqtyunitflag);
  3340. //----------------------(20081112)
  3341. model.resetInstanceNode("/root/send/signinfo/signdata");
  3342. model.makeValue("/root/send/signinfo/signdata/pid", model.getValue("/root/hidden/drugreportinfo/pid"));
  3343. model.makeValue("/root/send/signinfo/signdata/hngnm", model.getValue("/root/hidden/drugreportinfo/patnm"));
  3344. model.makeValue("/root/send/signinfo/signdata/prcpdd", model.getValue("/root/hidden/drugreportinfo/prcpdd")); //처방일자
  3345. if(medrexecdd == "00000000"){ //투약일자
  3346. model.makeValue("/root/send/signinfo/signdata/execdd", "");
  3347. }else{
  3348. model.makeValue("/root/send/signinfo/signdata/execdd", medrexecdd);
  3349. }
  3350. /*
  3351. ,CASE WHEN a.careprnexecflag = 'P' THEN 'PRN' ELSE '' END || ' ' ||
  3352. CASE WHEN a.anticncrprtlno <> 0 THEN '항암' ELSE '' END || ' ' ||
  3353. CASE WHEN a.dccountyn = 'Y' AND a.selfdrugflag = 'Y' THEN 'self D/C'
  3354. WHEN a.dccountyn = 'Y' then 'D/C'
  3355. WHEN a.selfdrugflag = 'Y' then 'self'
  3356. END prcpkindnm
  3357. //처방종류명 (다른업무에서 투약기록관련인증정보를 생성시 어려운 항목
  3358. */
  3359. model.makeValue("/root/send/signinfo/signdata/prcpkindnm", model.getValue("/root/hidden/drugreportinfo/prcpkindnm"));
  3360. model.makeValue("/root/send/signinfo/signdata/prcpmixno", model.getValue("/root/hidden/drugreportinfo/mixno")); //MIXNO
  3361. model.makeValue("/root/send/signinfo/signdata/prcpcd", model.getValue("/root/hidden/drugreportinfo/prcpcd")); //처방코드
  3362. model.makeValue("/root/send/signinfo/signdata/prcpnm", model.getValue("/root/hidden/drugreportinfo/prcpnm")); //처방명
  3363. //20110107_KNUH_Start김병국
  3364. //model.makeValue("/root/send/signinfo/signdata/prcpvolnm", drprcpetc7 + prcpvolunitflag); //용량단위명칭(용량+용량단위명칭)
  3365. //model.makeValue("/root/send/signinfo/signdata/prcpqtynm", drprcpetc8 + prcpvolunitflag); //용량단위명칭(용량+용량단위명칭)
  3366. //20110107_KNUH_End김병국
  3367. model.makeValue("/root/send/signinfo/signdata/prcpvolnm", prcpvol + prcpvolunitflag); //용량단위명칭(용량+용량단위명칭)
  3368. model.makeValue("/root/send/signinfo/signdata/prcpqtynm", prcpqty + prcpqtyunitflag); //수량단위명칭(수량+수량단위명칭)
  3369. //투여방법약어명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3370. //-----------------(20081112)
  3371. //model.makeValue("/root/send/signinfo/signdata/abbrnm", grd_druglist.labelMatrix((sign_row+1), 10));
  3372. model.makeValue("/root/send/signinfo/signdata/abbrnm", grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("abbrnm")));
  3373. //-----------------
  3374. if(medrexectm == "000000"){ //투약시간
  3375. model.makeValue("/root/send/signinfo/signdata/exectm", "");
  3376. }else{
  3377. model.makeValue("/root/send/signinfo/signdata/exectm", medrexectm);
  3378. }
  3379. model.makeValue("/root/send/signinfo/signdata/nursnm", getUserName()); //간호사명칭
  3380. if(execcarestatcd == ""){
  3381. execcarestatcd = "N";
  3382. }
  3383. //미확인,정상투약,투약X-반환가능,투약X-반환불가,퇴원당일남은약
  3384. //(다른업무에서 투약기록관련인증정보를 생성시 정상투약,)
  3385. model.makeValue("/root/send/signinfo/signdata/execcarestatnm", model.getValue("/root/hidden/actmenu/menu[cd ='" + execcarestatcd + "']/nm"));
  3386. //간호사REMARK CODE에 대한 REMARK 명칭((다른업무에서 투약기록관련인증정보를 생성시 공백)
  3387. model.makeValue("/root/send/signinfo/signdata/carecfactnm", model.getValue("/root/hidden/drugreportinfo/carecfactnm"));
  3388. //진료의명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3389. model.makeValue("/root/send/signinfo/signdata/orddrnm", model.getValue("/root/hidden/drugreportinfo/orddrnm"));
  3390. Sign.addnode("/root/send/signinfo/signdata");
  3391. //Sign.signedInfos[1] 는 없음
  3392. ////////////alert("fmake_signdata"+ Sign.signedInfos[1] );
  3393. }
  3394. }
  3395. //----------투약기록-INTERFACE용 (test완료)
  3396. //TEST용
  3397. //function fMake_SignData_interface(){
  3398. //
  3399. // //////////alert("fMake_SignData---------시작");
  3400. // /*
  3401. // <signinfo>
  3402. // <signdata>
  3403. // <pid>29953</pid>
  3404. // <hngnm>T입0820</hngnm>
  3405. // <prcpdd>20080821</prcpdd>
  3406. // <execdd>20080821</execdd>
  3407. // <prcpkindnm/>
  3408. // <prcpmixno/>
  3409. // <prcpcd>DSSL500</prcpcd>
  3410. // <prcpnm>Disal tab. 500mg (Salsalate)</prcpnm>
  3411. // <prcpvolnm>1500mg</prcpvolnm>
  3412. // <prcpqtynm>3T</prcpqtynm>
  3413. // <abbrnm>PO</abbrnm>
  3414. // <exectm>130000</exectm>
  3415. // <nursnm>김보성</nursnm>
  3416. // <execcarestatnm>정상투약</execcarestatnm>
  3417. // <carecfactnm> </carecfactnm>
  3418. // <orddrnm>김만수</orddrnm>
  3419. // </signdata>
  3420. // </signinfo>
  3421. // */
  3422. //
  3423. // var ssigndruglist = "/root/signinfo/signdruginfo/signdruglist";
  3424. //
  3425. // var spid = model.getValue(ssigndruglist + "[" + sSignRow + "]/pid");
  3426. // var shngnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/hngnm");
  3427. // var sprcpdd = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpdd");
  3428. // var sexecdd = model.getValue(ssigndruglist + "[" + sSignRow + "]/execdd");
  3429. // /*
  3430. // ,CASE WHEN a.careprnexecflag = 'P' THEN 'PRN' ELSE '' END || ' ' ||
  3431. // CASE WHEN a.anticncrprtlno <> 0 THEN '항암' ELSE '' END || ' ' ||
  3432. // CASE WHEN a.dccountyn = 'Y' AND a.selfdrugflag = 'Y' THEN 'self D/C'
  3433. // WHEN a.dccountyn = 'Y' then 'D/C'
  3434. // WHEN a.selfdrugflag = 'Y' then 'self'
  3435. // END prcpkindnm
  3436. // //처방종류명 (다른업무에서 투약기록관련인증정보를 생성시 어려운 항목
  3437. // */
  3438. // var sprcpkindnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpkindnm");
  3439. // var sprcpmixno = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpmixno");
  3440. // var sprcpcd = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpcd");
  3441. // var sprcpnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpnm");
  3442. // var sprcpvolnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpvolnm");
  3443. // var sprcpqtynm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpqtynm");
  3444. // var sabbrnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/abbrnm");
  3445. // var sexectm = model.getValue(ssigndruglist + "[" + sSignRow + "]/exectm");
  3446. // var snursnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/nursnm");
  3447. // var sexeccarestatnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/execcarestatnm");
  3448. // var scarecfactnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/carecfactnm");
  3449. // var sorddrnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/orddrnm");
  3450. //
  3451. // model.resetInstanceNode("/root/send/signinfo/signdata");
  3452. // model.makeValue("/root/send/signinfo/signdata/pid", spid );
  3453. // model.makeValue("/root/send/signinfo/signdata/hngnm", shngnm );
  3454. // model.makeValue("/root/send/signinfo/signdata/prcpdd", sprcpdd ); //처방일자
  3455. //
  3456. // if(sexecdd == "00000000"){ //투약일자
  3457. // model.makeValue("/root/send/signinfo/signdata/execdd", "");
  3458. // }else{
  3459. // model.makeValue("/root/send/signinfo/signdata/execdd", sexecdd);
  3460. // }
  3461. //
  3462. // model.makeValue("/root/send/signinfo/signdata/prcpkindnm", sprcpkindnm );
  3463. // model.makeValue("/root/send/signinfo/signdata/prcpmixno", sprcpmixno ); //MIXNO
  3464. //
  3465. // model.makeValue("/root/send/signinfo/signdata/prcpcd", sprcpcd ); //처방코드
  3466. // model.makeValue("/root/send/signinfo/signdata/prcpnm", sprcpnm ); //처방명
  3467. // model.makeValue("/root/send/signinfo/signdata/prcpvolnm", sprcpvolnm ); //용량단위명칭(용량+용량단위명칭)
  3468. // model.makeValue("/root/send/signinfo/signdata/prcpqtynm", sprcpqtynm ); //수량단위명칭(수량+수량단위명칭)
  3469. // //투여방법약어명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3470. // model.makeValue("/root/send/signinfo/signdata/abbrnm", sabbrnm );
  3471. //
  3472. // if(sexectm == "000000"){ //투약시간
  3473. // model.makeValue("/root/send/signinfo/signdata/exectm", "");
  3474. // }else{
  3475. // model.makeValue("/root/send/signinfo/signdata/exectm", sexectm);
  3476. // }
  3477. // model.makeValue("/root/send/signinfo/signdata/nursnm", snursnm); //간호사명칭
  3478. // if(sexeccarestatnm == "") sexeccarestatnm = "N";
  3479. //
  3480. // //미확인,정상투약,투약X-반환가능,투약X-반환불가,퇴원당일남은약
  3481. // //(다른업무에서 투약기록관련인증정보를 생성시 정상투약,)
  3482. // model.makeValue("/root/send/signinfo/signdata/execcarestatnm", sexeccarestatnm);
  3483. // //간호사REMARK CODE에 대한 REMARK 명칭((다른업무에서 투약기록관련인증정보를 생성시 공백)
  3484. // model.makeValue("/root/send/signinfo/signdata/carecfactnm", scarecfactnm);
  3485. // //진료의명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3486. // model.makeValue("/root/send/signinfo/signdata/orddrnm", sorddrnm);
  3487. // //--------------------------(20080902)
  3488. // //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  3489. // //건별인증은 dispyn ='N'
  3490. // model.makeValue("/root/send/signinfo/signdata/dispyn", "N");
  3491. // //--------------------------(20080902)
  3492. //
  3493. // Sign.addnode("/root/send/signinfo/signdata");
  3494. // //////////alert("fMake_SignData---------종료");
  3495. // //Sign.signedInfos[1] 는 없음
  3496. // ////////////alert("fmake_signdata"+ Sign.signedInfos[1] );
  3497. //}
  3498. //원본(20080825)
  3499. //function fMake_SignData_OLD(){
  3500. //
  3501. // var execcarestatcd = model.getValue("/root/hidden/drugreportinfo/execcarestatcd");
  3502. // var medrexecdd = model.getValue("/root/hidden/drugreportinfo/medrexecdd");
  3503. // var medrexectm = model.getValue("/root/hidden/drugreportinfo/medrexectm");
  3504. // var prcpvol = grd_druglist.labelMatrix((sign_row+1), 5);
  3505. // var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), 6);
  3506. // var prcpqty = grd_druglist.labelMatrix((sign_row+1), 7);
  3507. // var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), 8);
  3508. // model.resetInstanceNode("/root/send/signinfo/signdata");
  3509. // model.makeValue("/root/send/signinfo/signdata/pid", model.getValue("/root/hidden/drugreportinfo/pid"));
  3510. // model.makeValue("/root/send/signinfo/signdata/hngnm", model.getValue("/root/hidden/drugreportinfo/patnm"));
  3511. // model.makeValue("/root/send/signinfo/signdata/prcpdd", model.getValue("/root/hidden/drugreportinfo/prcpdd"));
  3512. // if(medrexecdd == "00000000"){
  3513. // model.makeValue("/root/send/signinfo/signdata/execdd", "");
  3514. // }else{
  3515. // model.makeValue("/root/send/signinfo/signdata/execdd", medrexecdd);
  3516. // }
  3517. // model.makeValue("/root/send/signinfo/signdata/prcpkindnm", model.getValue("/root/hidden/drugreportinfo/prcpkindnm"));
  3518. // model.makeValue("/root/send/signinfo/signdata/prcpmixno", model.getValue("/root/hidden/drugreportinfo/mixno"));
  3519. // model.makeValue("/root/send/signinfo/signdata/prcpcd", model.getValue("/root/hidden/drugreportinfo/prcpcd"));
  3520. // model.makeValue("/root/send/signinfo/signdata/prcpnm", model.getValue("/root/hidden/drugreportinfo/prcpnm"));
  3521. // model.makeValue("/root/send/signinfo/signdata/prcpvolnm", prcpvol + prcpvolunitflag);
  3522. // model.makeValue("/root/send/signinfo/signdata/prcpqtynm", prcpqty + prcpqtyunitflag);
  3523. // model.makeValue("/root/send/signinfo/signdata/abbrnm", grd_druglist.labelMatrix((sign_row+1), 10));
  3524. // if(medrexectm == "000000"){
  3525. // model.makeValue("/root/send/signinfo/signdata/exectm", "");
  3526. // }else{
  3527. // model.makeValue("/root/send/signinfo/signdata/exectm", medrexectm);
  3528. // }
  3529. // model.makeValue("/root/send/signinfo/signdata/nursnm", getUserName());
  3530. // if(execcarestatcd == ""){
  3531. // execcarestatcd = "N";
  3532. // }
  3533. // model.makeValue("/root/send/signinfo/signdata/execcarestatnm", model.getValue("/root/hidden/actmenu/menu[cd ='" + execcarestatcd + "']/nm"));
  3534. // model.makeValue("/root/send/signinfo/signdata/carecfactnm", model.getValue("/root/hidden/drugreportinfo/carecfactnm"));
  3535. // model.makeValue("/root/send/signinfo/signdata/orddrnm", model.getValue("/root/hidden/drugreportinfo/orddrnm"));
  3536. // Sign.addnode("/root/send/signinfo/signdata");
  3537. //}
  3538. /**
  3539. * @group :
  3540. * @ver : 2007.06.25
  3541. * @by : 최경용
  3542. * @---------------------------------------------------
  3543. * @type : function
  3544. * @access : public
  3545. * @desc : 미투약 환자 리스트 조회
  3546. * @param :
  3547. * @return :
  3548. * @---------------------------------------------------
  3549. */
  3550. function fGetActList(){
  3551. var pid = "";
  3552. var indd = "";
  3553. var cretno = "";
  3554. var comppid = "";
  3555. var compprcpdd = "";
  3556. var prcptims = "";
  3557. var prcpdd = "";
  3558. var row = 0;
  3559. var drugtmspec = "";
  3560. var calcdate = "";
  3561. var prcpdd_Array = new Array;
  3562. var pid_Array = new Array;
  3563. var cnt = 1;
  3564. if(grd_actlist.row > 0){
  3565. pid = model.getValue(xWardActListPath + "[" + grd_actlist.row + "]/pid");
  3566. indd = model.getValue(xWardActListPath + "[" + grd_actlist.row + "]/indd");
  3567. cretno = model.getValue(xWardActListPath + "[" + grd_actlist.row + "]/cretno");
  3568. prcpdd = model.getValue(xWardActListPath + "[" + grd_actlist.row + "]/prcpdd");
  3569. }
  3570. // model.resetInstanceNode("/root/send/reqdata");
  3571. model.removeNodeset("/root/send/reqdata");
  3572. model.makeNode("/root/send/reqdata");
  3573. model.copynode("/root/send/reqdata", xCondPath);
  3574. if(model.getValue("/root/main/cond/wardcd") == spcldept){
  3575. model.makeValue("/root/send/reqdata/spclyn", "Y");
  3576. grd_actlist.colHidden(grd_actlist.colRef("existyn")) = false;
  3577. } else {
  3578. grd_actlist.colHidden(grd_actlist.colRef("existyn")) = true;
  3579. }
  3580. submit("TRMNR00605");
  3581. for(var i = 1; i <= getNodesetCount(xWardActListPath); i++){
  3582. if(pid == model.getValue(xWardActListPath + "[" + i + "]/pid") &&
  3583. indd == model.getValue(xWardActListPath + "[" + i + "]/indd") &&
  3584. cretno == model.getValue(xWardActListPath + "[" + i + "]/cretno") &&
  3585. prcpdd == model.getValue(xWardActListPath + "[" + i + "]/prcpdd")){
  3586. row = i;
  3587. }
  3588. }
  3589. grd_actlist.row = row;
  3590. model.refresh();
  3591. }
  3592. /**
  3593. * @group :
  3594. * @ver : 2007.06.25
  3595. * @by : 최경용
  3596. * @---------------------------------------------------
  3597. * @type : function
  3598. * @access : public
  3599. * @desc : 투약카드 출력(A2:경구, A4:외용, A61:주사, A60:수액)
  3600. * @param : sLineFlag : "Y" - 투약worklist에서 호출 시 투약카드에 점선기능 추가
  3601. * @return :
  3602. * @---------------------------------------------------
  3603. */
  3604. function fClickDrugPrint(sLineFlag){
  3605. model.removeNodeSet("/root/send/medicard/warddruglist");
  3606. //model.makeNode("/root/send/medicard");
  3607. var prt_row = model.getValue("/root/temp/row");
  3608. var prt_col = model.getValue("/root/temp/col");
  3609. if(prt_row == "" || prt_row > 4){
  3610. messageBox("1 ~ 4줄만 입력할수 있습니다.","I999");
  3611. return;
  3612. }
  3613. if(prt_col == "" || prt_col > 4){
  3614. messageBox("1 ~ 4 칸만 입력할수 있습니다.","I999");
  3615. return;
  3616. }
  3617. var rows = grd_druglist.rows-1;
  3618. var prcpclscd = "";
  3619. var prcptims = "";
  3620. var mthdcd = "";
  3621. var prcpmixno = "";
  3622. var drugbasetmspec = "";
  3623. var viewroomcd = ""; //20090629
  3624. var todaydrug = ""; //20090629
  3625. var medicardcnt = 1;//경구
  3626. //var medicardcnt5 = 1;//주사
  3627. //var medicardcnt7 = 1;//외용
  3628. var prtTims_Array = new Array;
  3629. var prtMthd_Array = new Array;
  3630. var prtBaseTims_Array = new Array;
  3631. var prtMix_Array = new Array;
  3632. var k=1;
  3633. //model.removeNodeSet("/root/send/medicard");
  3634. //model.makeNode("/root/send/medicard/warddruglist");
  3635. for(var i = 1; i < rows; i++){
  3636. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  3637. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  3638. tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  3639. mthdcd = model.getValue(xWardDrugListPath + "[" + i + "]/mthdcd");
  3640. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  3641. drugbasetmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugbasetmspec");
  3642. viewroomcd = caption57.value; //20090629
  3643. todaydrug = model.getValue(xWardDrugListPath + "[" + i + "]/todaydrug"); //20090629
  3644. if(todaydrug == "Y"){ // 조회당일 화면에 표시된것만_20090629
  3645. if(prcpclscd == "A2"){//경구
  3646. if(isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd) == -1){
  3647. prtBaseTims_Array[medicardcnt] = drugbasetmspec;
  3648. prtMthd_Array[medicardcnt] = mthdcd;
  3649. model.setValue(xWardDrugListPath + "[" + i + "]/soding", medicardcnt);
  3650. medicardcnt++;
  3651. }else{
  3652. model.setValue(xWardDrugListPath + "[" + i + "]/soding", isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd));
  3653. }
  3654. }
  3655. //if(prcpclscd == "A60" || prcpclscd == "A61"){//주사
  3656. if(prcpclscd == "A60"){//주사_의정부간호사 이언희선생님 요청으로 수액제외함_20090529(ByJA)
  3657. if(prcpmixno == "" || isSearchArrayIndex(prtMix_Array, prcpmixno) == -1){
  3658. prtMix_Array[medicardcnt] = prcpmixno;
  3659. model.setValue(xWardDrugListPath + "[" + i + "]/soding", medicardcnt);
  3660. medicardcnt++;
  3661. }else{
  3662. model.setValue(xWardDrugListPath + "[" + i + "]/soding", isSearchArrayIndex(prtMix_Array, prcpmixno));
  3663. }
  3664. }
  3665. if(prcpclscd == "A4"){//외용
  3666. model.setValue(xWardDrugListPath + "[" + i + "]/soding", medicardcnt);
  3667. medicardcnt++;
  3668. }
  3669. }
  3670. // 투약카드 출력 시 사용
  3671. var drugtmspect = "";
  3672. var drugtmspectime = "";
  3673. var tmpdrugtmspect = "";
  3674. var drugtmspectlist = "";
  3675. var tims = "";
  3676. var space;
  3677. drugtmspect = model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec_recalc1"); // drugbasetmspec
  3678. drugtmspect = drugtmspect.split(" ");
  3679. tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  3680. // 횟수별 시간공백지정
  3681. if(tims < 4){
  3682. space = " ";
  3683. }else{
  3684. space = " ";
  3685. }
  3686. // Sort기능
  3687. var tempmin=0, tempmax=0;
  3688. for(var j=1; j<drugtmspect.length; j++){
  3689. if(Number(drugtmspect[j-1]) > Number(drugtmspect[j])){
  3690. tempmin = drugtmspect[j];
  3691. drugtmspect[j] = drugtmspect[j-1];
  3692. drugtmspect[j-1] = tempmin;
  3693. }
  3694. }
  3695. for(var j=0; j<drugtmspect.length; j++){
  3696. if(Number(drugtmspect[j]) > Number(drugtmspect[j+1])){
  3697. tempmax = drugtmspect[j];
  3698. drugtmspect[j] = drugtmspect[j+1];
  3699. drugtmspect[j+1] = tempmax;
  3700. }
  3701. }
  3702. for(var j=0; j<drugtmspect.length; j++){
  3703. if(drugtmspect[j] != ""){
  3704. tmpdrugtmspect = Number(drugtmspect[j]);
  3705. if(tmpdrugtmspect > 1200){
  3706. if(tmpdrugtmspect >= 1300){
  3707. tmpdrugtmspect = tmpdrugtmspect - 1200;
  3708. }
  3709. if(tmpdrugtmspect < 1000){
  3710. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  3711. }
  3712. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  3713. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "P" + space;
  3714. }else{
  3715. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "P" + space;
  3716. }
  3717. }else if(tmpdrugtmspect <= 1200){
  3718. if(tmpdrugtmspect < 1000){
  3719. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  3720. }
  3721. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  3722. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "A" + space;
  3723. }else{
  3724. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "A" + space;
  3725. }
  3726. }
  3727. }
  3728. model.makeValue(xWardDrugListPath + "[" + i + "]/tempdrugtmspeccal", drugtmspectime);
  3729. } // end for 투약카드
  3730. /*
  3731. grd_drugprt.addRow();
  3732. model.makeValue("/root/send/medicard/warddruglist["+k+"]/last" , medicardcnt-1);
  3733. model.makeValue("/root/send/medicard/warddruglist["+k+"]/row" , model.getValue("/root/temp/row"));
  3734. model.makeValue("/root/send/medicard/warddruglist["+k+"]/col" , model.getValue("/root/temp/col"));
  3735. model.makeValue("/root/send/medicard/warddruglist["+k+"]/roomcd" , model.getValue(xWardDrugListPath+"["+i+"]/roomcd"));
  3736. model.makeValue("/root/send/medicard/warddruglist["+k+"]/pid" , model.getValue(xWardDrugListPath+"["+i+"]/pid"));
  3737. model.makeValue("/root/send/medicard/warddruglist["+k+"]/patnm" , model.getValue(xWardDrugListPath+"["+i+"]/patnm"));
  3738. model.makeValue("/root/send/medicard/warddruglist["+k+"]/sexage" , model.getValue(xWardDrugListPath+"["+i+"]/sexage"));
  3739. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpcd" , model.getValue(xWardDrugListPath+"["+i+"]/prcpcd"));
  3740. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpvol" , model.getValue(xWardDrugListPath+"["+i+"]/prcpvol"));
  3741. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpvolunitflag" , model.getValue(xWardDrugListPath+"["+i+"]/prcpvolunitflag"));
  3742. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpqty" , model.getValue(xWardDrugListPath+"["+i+"]/prcpqty"));
  3743. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpqtyunitflag" , model.getValue(xWardDrugListPath+"["+i+"]/prcpqtyunitflag"));
  3744. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcptims" , model.getValue(xWardDrugListPath+"["+i+"]/prcptims"));
  3745. model.makeValue("/root/send/medicard/warddruglist["+k+"]/tempdrugtmspeccal", model.getValue(xWardDrugListPath+"["+i+"]/tempdrugtmspeccal"));
  3746. model.makeValue("/root/send/medicard/warddruglist["+k+"]/abbrnm" , model.getValue(xWardDrugListPath+"["+i+"]/abbrnm"));
  3747. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prtabbrnm" , model.getValue(xWardDrugListPath+"["+i+"]/prtabbrnm"));
  3748. model.makeValue("/root/send/medicard/warddruglist["+k+"]/soding" , model.getValue(xWardDrugListPath+"["+i+"]/soding"));
  3749. model.makeValue("/root/send/medicard/warddruglist["+k+"]/astyn" , model.getValue(xWardDrugListPath+"["+i+"]/astyn"));
  3750. k++;
  3751. */
  3752. } // end if check
  3753. } // end for
  3754. // 원본
  3755. /*
  3756. for(var j = 1; j < rows; j++){
  3757. model.makeValue(xWardDrugListPath + "[" + j + "]/last" , medicardcnt-1);
  3758. model.makeValue(xWardDrugListPath + "[" + j + "]/row" , model.getValue("/root/temp/row"));
  3759. model.makeValue(xWardDrugListPath + "[" + j + "]/col" , model.getValue("/root/temp/col"));
  3760. model.makeValue(xWardDrugListPath + "[" + j + "]/sLineFlag" , sLineFlag); // 20090629
  3761. //model.makeValue(xWardDrugListPath + "[" + j + "]/viewroomcd" , model.getValue("/root/main/cond/roomcd")); // 원본_20090629
  3762. model.makeValue(xWardDrugListPath + "[" + j + "]/viewroomcd" , viewroomcd); // 20090629
  3763. model.makeNode("/root/send/medicard");
  3764. if(model.getValue("/root/main/warddruginfo/warddruglist[" + j + "]/check") =="true") {
  3765. model.duplicate("/root/send/medicard", "/root/main/warddruginfo/warddruglist[" + j + "]");
  3766. }
  3767. }
  3768. */
  3769. /** <addon>
  3770. *개발일시: 2010.05.28
  3771. *개발자: 양천덕
  3772. *요청병원: 세종병원
  3773. *요청파트: 간호
  3774. *개발내용: 투약라벨 출력형식 변경 및 오류 수정 처리
  3775. </addon>
  3776. */
  3777. for(var InsSoding = 0 ; InsSoding <= medicardcnt ; InsSoding++){
  3778. for(var j = 1; j < rows; j++){
  3779. if(InsSoding == model.getValue(xWardDrugListPath + "[" + j + "]/soding") ){
  3780. model.makeValue(xWardDrugListPath + "[" + j + "]/last" , medicardcnt-1);
  3781. model.makeValue(xWardDrugListPath + "[" + j + "]/row" , model.getValue("/root/temp/row"));
  3782. model.makeValue(xWardDrugListPath + "[" + j + "]/col" , model.getValue("/root/temp/col"));
  3783. model.makeValue(xWardDrugListPath + "[" + j + "]/sLineFlag" , sLineFlag); // 20090629
  3784. //model.makeValue(xWardDrugListPath + "[" + j + "]/viewroomcd" , model.getValue("/root/main/cond/roomcd")); // 원본_20090629
  3785. model.makeValue(xWardDrugListPath + "[" + j + "]/viewroomcd" , viewroomcd); // 20090629
  3786. model.makeNode("/root/send/medicard");
  3787. if(model.getValue("/root/main/warddruginfo/warddruglist[" + j + "]/check") =="true") {
  3788. model.duplicate("/root/send/medicard", "/root/main/warddruginfo/warddruglist[" + j + "]");
  3789. //alert(instance1.selectNodesXml("/root/send/medicard"));
  3790. }
  3791. }
  3792. }
  3793. }
  3794. if(medicardcnt > 1){
  3795. // exeReportPreview("RPMNR00600", "XMLSTR" , "" , "" , "true" , "", "", "", "", "true"); // 미리보기 기능 없음
  3796. exeReportPreview("RPMNR00600", "XMLSTR", ""); // 미리보기 기능 있음 TEST용
  3797. } else{
  3798. if(prcpclscd == "A61"){
  3799. messageBox("수액은 출력되지 않습니다.","I");
  3800. }else{
  3801. //2010.11.16_KNUH_수정
  3802. //messageBox("투약카드 출력항목이 아닙니다","I");
  3803. messageBox("출력할 내용이","I004");
  3804. }
  3805. }
  3806. }
  3807. /**
  3808. * @group :
  3809. * @ver : 2007.06.25
  3810. * @by : 최경용
  3811. * @---------------------------------------------------
  3812. * @type : function
  3813. * @access : public
  3814. * @desc : 문자열 검색(배열)
  3815. * @param :
  3816. * @return :
  3817. * @---------------------------------------------------
  3818. */
  3819. function isSearchArrayIndex2(baseCol_Array1, sData1, baseCol_Array2, sData2){
  3820. for(var i = 0; i <= baseCol_Array1.length; i++){
  3821. if(baseCol_Array1[i] == sData1 && baseCol_Array2[i] == sData2){
  3822. return i;
  3823. }
  3824. }
  3825. return -1;
  3826. }
  3827. /**
  3828. * @group :
  3829. * @ver : 2007.06.25
  3830. * @by : 최경용
  3831. * @---------------------------------------------------
  3832. * @type : function
  3833. * @access : public
  3834. * @desc : 주사라벨 출력
  3835. * @param :
  3836. * @return :
  3837. * @---------------------------------------------------
  3838. */
  3839. //------------(20080929로직변경됨)
  3840. function fClickInjPrint(){
  3841. model.removeNodeset(xHiddenMediCard8);
  3842. model.makeNode(xHiddenMediCard8);
  3843. //2. 바코드 라벨 환경설정
  3844. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3845. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js
  3846. var pid = model.getValue("/root/main/patinfo/pid");
  3847. var patnm = model.getValue("/root/main/patinfo/patnm");
  3848. var sexage = model.getValue("/root/main/patinfo/sexage");
  3849. var roomcd = model.getValue("/root/main/patinfo/roomcd");
  3850. var prcpcd = "";
  3851. var prcptims = "";
  3852. var prcpvol = "";
  3853. var prcpqty = "";
  3854. var execprcpvol = "";
  3855. var execprcpqty = "";
  3856. var prcpvolunitflag = "";
  3857. var prcpqtyunitflag = "";
  3858. var abbrnm = "";
  3859. var ast = "";
  3860. var prcpdelivefact = "";
  3861. var prcpdd = "";
  3862. var medirectm = "";
  3863. var totalmedirectm = "";
  3864. var prcpclscd = "";
  3865. var drugtmspec;
  3866. var disp1 = ""; //주사기(체액주의)
  3867. var disp2 = ""; //손모양(접촉주의)
  3868. var disp3 = ""; //마스크(공기주의)
  3869. var infcinfo = "";
  3870. var preanti = ""; //수술예방적항생제 ast 결과 표시 위해
  3871. var preantiast = ""; //수술예방적항생제 ast 결과 라벨 출력 parameter
  3872. //var labelyn = "FALSE"; //20101116_주석처리
  3873. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+cmb_ward.value+"']/cdid")) ) {
  3874. roomcd = model.getValue(xWardPatListPath + "[" + grd_patlist.row + "]/typedetl");
  3875. }
  3876. for (var idx=1; idx< grd_druglist.rows; idx++) {
  3877. prcpclscd = model.getValue(xWardDrugListPath + "[" + idx + "]/prtprcpclscd")
  3878. if ( prcpclscd != "A60" && prcpclscd != "A62" && prcpclscd != "A6" && model.getValue(xWardDrugListPath + "[" + idx + "]/check") == "true") { //수액믹스 주사제 제외.
  3879. model.setValue(xWardDrugListPath + "[" + idx + "]/check","false"); //1001
  3880. }
  3881. }
  3882. grd_druglist.refresh();
  3883. copyNodesetType(xHiddenMediCard8,xWardDrugListPath +"[check = 'true' and ( prtprcpclscd = 'A60' or prtprcpclscd = 'A62' or prtprcpclscd = 'A6')]","replace", model, model);
  3884. if ( getNodesetCount(xHiddenMediCard8) <= 1 && isNull(model.getValue(xHiddenMediCard8 + "["+1+"]/prcpcd")) ){
  3885. messageBox("선택된 믹스주사를 제외한 주사제가 존재하지 않습니다.","I007");
  3886. return;
  3887. }
  3888. for ( var jdx = 1 ; jdx <= getNodesetCount(xHiddenMediCard8) && !isNull(model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpcd")) ; jdx++){
  3889. medirectm = "";
  3890. //prcpcd = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpcdprt"); //20101116_KNUH
  3891. prcpcd = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpnm");
  3892. prcptims = model.getValue(xHiddenMediCard8 + "["+jdx+"]/tims");
  3893. prcpvol = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpvol");
  3894. prcpqty = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpqty");
  3895. execprcpvol = model.getValue(xHiddenMediCard8 + "["+jdx+"]/for[1]/execprcpvol");//1회별 용량 20091120 김홍점
  3896. execprcpqty = model.getValue(xHiddenMediCard8 + "["+jdx+"]/for[1]/execprcpqty");//1회별 수량 20091120 김홍점
  3897. prcpvolunitflag = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpvolunitflag");
  3898. prcpqtyunitflag = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpqtyunitflag");
  3899. abbrnm = model.getValue(xHiddenMediCard8 + "["+jdx+"]/abbrnm");
  3900. ast = model.getValue(xHiddenMediCard8 + "["+jdx+"]/ast");
  3901. prcpdelivefact = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpdelivefact");
  3902. prcpdd = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpdd");
  3903. //drugtmspec = (model.getValue(xHiddenMediCard8 + "["+jdx+"]/drugtmspec_recalc1")).split(" ");
  3904. drugtmspec = (model.getValue(xHiddenMediCard8 + "["+jdx+"]/disptmarray")).split(" ");
  3905. execprcptims = model.getValue(xHiddenMediCard8 + "["+jdx+"]/tims")/drugtmspec.length;//회수 20091120 김홍점
  3906. totalmedirectm = "";
  3907. disp1 = model.getValue(xHiddenMediCard8 + "["+jdx+"]/disp1");
  3908. disp2 = model.getValue(xHiddenMediCard8 + "["+jdx+"]/disp2");
  3909. disp3 = model.getValue(xHiddenMediCard8 + "["+jdx+"]/disp3");
  3910. //KJS 2014.01.05 수술예방적항생제
  3911. preanti = model.getValue(xHiddenMediCard8 + "["+jdx+"]/execcarestatcd");
  3912. if(disp1 == "Y" || disp2 == "Y" || disp3 == "Y") {
  3913. infcinfo ="";
  3914. if(disp3 == "Y") {
  3915. infcinfo += "[ A ]"
  3916. }
  3917. if(disp1 == "Y") {
  3918. infcinfo += "[ B ]"
  3919. }
  3920. if(disp2 == "Y") {
  3921. infcinfo += "[ C ]"
  3922. }
  3923. }
  3924. // ER과 병동과 동일하므로 분기문 주석처리함 2014.01.05 KJS
  3925. // // 응급의료센터와 일반병동 구분하여 주사라벨출력_20090602
  3926. // if ( !isNull(model.getValue("/root/code/codeinfo/codelist/cdid"))
  3927. // && model.getValue("/root/code/codeinfo/codelist/cdid") == model.getValue("/root/main/cond/wardcd") ) {
  3928. //
  3929. //// // 응급의료센터의 경우 1회용량으로 출력
  3930. //// 20110128_KNUH_Start
  3931. //// prcpvol = (prcpvol/prcptims);
  3932. //// prcpqty = (prcpqty/prcptims);
  3933. ////
  3934. //// // 소수점 셋째자리까지 ---------------------------------(20091020)
  3935. //// // 소수점 첫째자리까지 ------------(신미진ITC재변경 요청_20091027)
  3936. //// var prcpvollist = String(prcpvol).split(".");
  3937. //// var prcpqtylist = String(prcpqty).split(".");
  3938. //// if(prcpvollist.length > 1){
  3939. //// prcpvol = prcpvollist[0] + "." + prcpvollist[1].substr(0,1);
  3940. //// }
  3941. //// if(prcpqtylist.length > 1){
  3942. //// prcpqty = prcpqtylist[0] + "." + prcpqtylist[1].substr(0,1);
  3943. //// }
  3944. //// //20101116_KNUH 수정
  3945. //// //labelyn = fPrtCareInjLabel("ermedirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), "ED "+roomcd, medirectm, totalmedirectm, portOpenTF);
  3946. //// //20110128_KNUH_Start
  3947. //// //fPrtCareInjLabel("ermedirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), "ED "+roomcd, medirectm, totalmedirectm, portOpenTF);
  3948. //// fPrtCareInjLabel("ermedirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), "ED "+roomcd, medirectm, totalmedirectm, portOpenTF);
  3949. ////
  3950. //
  3951. // // 총 투약시간 응급실도 1회용량에 횟수별로 조회되도록 변경함.
  3952. // for (var kdx = 0 ; kdx < drugtmspec.length ; kdx++) {
  3953. // if (kdx == 0 ){
  3954. // totalmedirectm += drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  3955. // } else {
  3956. // totalmedirectm += " " + drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  3957. // }
  3958. // }
  3959. //
  3960. // // 횟수별로 출력되도록 , 회수는 안보이도록
  3961. // for (var kdx = 0 ; kdx < drugtmspec.length ; kdx++) {
  3962. // medirectm = drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  3963. // //20101116_KNUH 수정
  3964. // //labelyn = fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  3965. // fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF, infcinfo);
  3966. // //fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag +"/#"+ prcptims, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  3967. // }
  3968. // } else {
  3969. // 총 투약시간
  3970. for (var kdx = 0 ; kdx < drugtmspec.length ; kdx++) {
  3971. if (kdx == 0 ){
  3972. totalmedirectm += drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  3973. } else {
  3974. totalmedirectm += " " + drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  3975. }
  3976. }
  3977. // 횟수별로 출력되도록 , 회수는 안보이도록
  3978. for (var kdx = 0 ; kdx < drugtmspec.length ; kdx++) {
  3979. medirectm = drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  3980. var i = kdx + 1;
  3981. var carecfactcd = model.getValue(xHiddenMediCard8 + "["+jdx+"]/for[" + i + "]/carecfactcd");
  3982. var antiastrnm = model.getValue(xHiddenMediCard8 + "["+jdx+"]/for[" + i + "]/antiastrnm");
  3983. var preantiast = "";
  3984. //alert(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='W17']/cdid"));
  3985. if ( preanti == "M" //예방적항생제일 경우 AST 결과 표기 2014.01.05 KJS
  3986. && model.getValue("/root/code/codeinfo/codelist[cdgrupid ='W17']/cdid") == "Y") {
  3987. if (carecfactcd < '21' || carecfactcd > '28') {
  3988. messageBox("수술 예방적항생제의 경우\r\nCefa계 혹은 Pc계 AST 결과를 Remark로 반드시 등록하세요", "E999");
  3989. return;
  3990. }
  3991. }
  3992. if (carecfactcd == "21") {
  3993. preantiast = "Cefa AST(+) ";
  3994. }
  3995. if (carecfactcd == "22") {
  3996. preantiast = "Cefa AST(-) ";
  3997. }
  3998. if (carecfactcd == "23") {
  3999. preantiast = "Pc AST(+) ";
  4000. }
  4001. if (carecfactcd == "24") {
  4002. preantiast = "Pc AST(-) ";
  4003. }
  4004. if (carecfactcd == "25") {
  4005. preantiast = "SM AST(+) ";
  4006. }
  4007. if (carecfactcd == "26") {
  4008. preantiast = "SM AST(-) ";
  4009. }
  4010. if (carecfactcd == "27") {
  4011. preantiast = "기타 AST(+) ";
  4012. }
  4013. if (carecfactcd == "28") {
  4014. preantiast = "기타 AST(-) ";
  4015. }
  4016. if (preantiast != "") {
  4017. preantiast += "확인:" + antiastrnm;
  4018. }
  4019. //20101116_KNUH 수정
  4020. //labelyn = fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  4021. fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF, infcinfo, preantiast);
  4022. //fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag +"/#"+ prcptims, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  4023. }
  4024. // }
  4025. /*
  4026. for( var kdx = 0 ; kdx < drugtmspec.length ; kdx++){
  4027. if (kdx == 0 ){
  4028. medirectm += drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4029. } else {
  4030. medirectm += "," + drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4031. }
  4032. }
  4033. fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol, prcpqty, abbrnm, ast, prcpdelivefact, prcpdd,"", getCurrentTime(), roomcd, medirectm, portOpenTF);
  4034. */
  4035. }
  4036. /* 20101116_KNUH
  4037. if(labelyn == "TRUE"){
  4038. fsetLabelPrntInfo("injlabel", grd_patlist.row, grd_actlist.row); // 라벨출력정보 저장_20100319
  4039. }
  4040. */
  4041. }
  4042. /**
  4043. * @group :
  4044. * @ver : 2007.06.25
  4045. * @by : 최경용
  4046. * @---------------------------------------------------
  4047. * @type : function
  4048. * @access : public
  4049. * @desc : 수액라벨 출력
  4050. * @param :
  4051. * @return :
  4052. * @---------------------------------------------------
  4053. */
  4054. //------------(20080929로직변경됨)
  4055. function fClickHydPrint(){
  4056. model.removeNodeSet("/root/send/medicard8/warddruglist");
  4057. model.makeNode("/root/send/medicard8");
  4058. var rows = grd_druglist.rows-1;
  4059. var prcpclscd = "";
  4060. var prcpmixno = "";
  4061. var prcptims = "";
  4062. var medicardcnt8 = 0;//라벨 출력 총 건수
  4063. var prtMix_Array = new Array;
  4064. var acctims = 0;
  4065. //-----------------(20080927)
  4066. var totcnt = "";
  4067. //-----------------(20080927)
  4068. //----------------------
  4069. //1-1. 자동체크하기1: 동일MIXNO가 체크되어 있으면 자동 체크하기
  4070. //----------------------
  4071. var chkMixnoi = "";
  4072. var chkMixnoj = "";
  4073. var chkflag = "";
  4074. var chkcnt = 0;
  4075. for(var i = 1; i < rows; i++){
  4076. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  4077. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4078. if(prcpclscd != "A61") continue;
  4079. if (chkflag != "true" ) { //체크가 안되어있는것 중에서
  4080. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  4081. if ( chkMixnoi != "") { //mixno가 있는경우
  4082. for (var j=1;j<rows;j++) { //동일mix가 체크되어 있으면
  4083. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  4084. chkflag = model.getValue(xWardDrugListPath + "[" + j + "]/check");
  4085. if ( i != j && chkMixnoi == chkMixnoj && chkflag == "true") {
  4086. model.setValue(xWardDrugListPath + "[" + i + "]/check","true"); //체크자신의 체크로 변경함
  4087. j=rows;
  4088. chkcnt ++;
  4089. }
  4090. }
  4091. }
  4092. }
  4093. }
  4094. if (chkcnt >0) {
  4095. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n동일mixno의 다른 항목도 자동출력 선택 되었습니다. ","E999");
  4096. }
  4097. //----------------------
  4098. //1-2. 자동체크하기1: 출력대상아닌것은 체크풀기
  4099. //----------------------
  4100. chkMixnoi = "";
  4101. chkMixnoj = "";
  4102. chkflag = "";
  4103. chkcnt = 0;
  4104. var sapnoyndept = "";
  4105. var sapnoynall = "";
  4106. var sapnoyn = "";
  4107. var sapnoprtyn = "true";
  4108. var disp1 = "";
  4109. var disp2 = "";
  4110. var disp3 = "";
  4111. var infcinfo ="";
  4112. var abbrnm = "";
  4113. for(var i = 1; i < rows; i++){
  4114. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  4115. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4116. disp1 = model.getValue(xWardDrugListPath + "["+i+"]/disp1");
  4117. disp2 = model.getValue(xWardDrugListPath + "["+i+"]/disp2");
  4118. disp3 = model.getValue(xWardDrugListPath + "["+i+"]/disp3");
  4119. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4120. if(disp1 == "Y" || disp2 == "Y" || disp3 == "Y") {
  4121. infcinfo ="";
  4122. if(disp3 == "Y") {
  4123. infcinfo += "[ A ]"
  4124. }
  4125. if(disp1 == "Y") {
  4126. infcinfo += "[ B ]"
  4127. }
  4128. if(disp2 == "Y") {
  4129. infcinfo += "[ C ]"
  4130. }
  4131. }
  4132. if(prcpclscd != "A61") continue;
  4133. sapnoprtyn = "true"; //수액라벨출력 가능
  4134. if (chkflag == "true" ) { //체크되어있는것 중에서
  4135. sapnoyn = model.getValue(xWardDrugListPath + "[" + i + "]/sapnoyn");
  4136. sapnoyndept = sapnoyn.substr(1,1); //수액기준정보자료에 수액 & 부서로 자료가 있는지 여부(0이면 없는경우)
  4137. sapnoynall = sapnoyn.substr(2,1); //수액기준정보자료에 수액 & 공통로 자료가 있는지 여부(0이면 없는경우)
  4138. if (sapnoyndept == "N") { //부서에 자료가 있는데 수액라벨출력 불가로 들어가 있는경우
  4139. sapnoprtyn = "false";
  4140. } else if (sapnoyndept == "0" && sapnoynall == "N") {//부서에 자료가 없고, 공통에 수액라벨출력 불가로 들어가 있는경우
  4141. sapnoprtyn = "false"; //수액라벨출력 불가
  4142. }
  4143. if (sapnoprtyn == "false") {
  4144. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  4145. if ( chkMixnoi != "") { //mixno가 있으면서
  4146. for (var j=1;j<rows;j++) {
  4147. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  4148. if ( chkMixnoi == chkMixnoj ) { //같은 mixno이면 출력을 해제한다.
  4149. //model.setValue(xWardDrugListPath + "[" + j + "]/check","true");
  4150. model.setValue(xWardDrugListPath + "[" + j + "]/check","false"); //1001
  4151. chkcnt++;
  4152. }
  4153. }
  4154. }
  4155. }
  4156. }
  4157. }
  4158. if (chkcnt >0) {
  4159. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n수액기준정보에 수액no적용정보가 'N'로 설정된 자료가 있습니다. \n수액라벨출력을 해제합니다.","E999");
  4160. }
  4161. //----------------------
  4162. //3. 출력내역정리하기
  4163. //---------------------- 작업중...........
  4164. var subcnt = 0; //해당번호
  4165. var prcptimscalc ="";
  4166. var mainpre_prcpmixno = "999999999"; //main이전mixno
  4167. var subnow_prcpmixno = ""; //sub현재mixno
  4168. var startrow = "";
  4169. //전체
  4170. // 원본_20090601
  4171. for(var i = 1; i < rows; i++){
  4172. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4173. // 수술예방적 항생제 AST 결과 필수 입력
  4174. var execcarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[1]/execcarestatcd");
  4175. var preantiast = "";
  4176. if (execcarestatcd == "M") {
  4177. var carecfactcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[1]/carecfactcd");
  4178. var antiastrnm = model.getValue(xWardDrugListPath + "[" + i + "]/for[1]/antiastrnm");
  4179. if ((carecfactcd < '21' || carecfactcd > '28')
  4180. && model.getValue("/root/code/codeinfo/codelist[cdgrupid ='W17']/cdid") == "Y") {
  4181. messageBox("수술 예방적항생제의 경우\r\nCefa계 혹은 Pc계 AST 결과를 Remark로 반드시 등록하세요", "E999");
  4182. return;
  4183. }
  4184. if (carecfactcd == "21") {
  4185. preantiast = "Cefa AST(+) ";
  4186. }
  4187. if (carecfactcd == "22") {
  4188. preantiast = "Cefa AST(-) ";
  4189. }
  4190. if (carecfactcd == "23") {
  4191. preantiast = "Pc AST(+) ";
  4192. }
  4193. if (carecfactcd == "24") {
  4194. preantiast = "Pc AST(-) ";
  4195. }
  4196. if (carecfactcd == "25") {
  4197. preantiast = "SM AST(+) ";
  4198. }
  4199. if (carecfactcd == "26") {
  4200. preantiast = "SM AST(-) ";
  4201. }
  4202. if (carecfactcd == "27") {
  4203. preantiast = "기타 AST(+) ";
  4204. }
  4205. if (carecfactcd == "28") {
  4206. preantiast = "기타 AST(-) ";
  4207. }
  4208. if (preantiast != "") {
  4209. preantiast += "확인:" + antiastrnm;
  4210. }
  4211. }
  4212. var todaydrug = model.getValue(xWardDrugListPath + "[" + i + "]/todaydrug");
  4213. if(prcpclscd == "A61" && todaydrug == "Y"){ // 체크된 것 &&수액 && 조회당일 화면에 표시된것만
  4214. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  4215. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno"); //현재mixno
  4216. prcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  4217. prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims"); //------------(20080912)
  4218. abbrnm = model.getValue(xWardDrugListPath + "[" + i + "]/abbrnm"); //------------(20120608 투여경로 추가 삽입)
  4219. startrow = i;
  4220. if (mainpre_prcpmixno != prcpmixno) { //main 이전mixno가 다른경우
  4221. //횟수만큼
  4222. for(var j = 0; j < prcptimscalc; j++){ //for(var j = 0; j < prcptims; j++){ //--------(20080912)
  4223. subcnt ++;
  4224. //startrow부터 같은 mixno를 찾는다.
  4225. for(var k = startrow; k < rows; k++){
  4226. subnow_prcpmixno = model.getValue(xWardDrugListPath + "[" + k + "]/prcpmixno"); //현재mixno
  4227. if (prcpmixno != subnow_prcpmixno) {
  4228. // i = k; //main첨자를 sub에서 증가한 것 만큼 더한다.
  4229. // i--; //i가 전체 main loop로 돌아가면 자동 증가되므로 -1를 해준다.
  4230. k = rows; //k loop를 벗어남
  4231. } else {
  4232. //mixno가 연속해서 없는 경우에는 다른것으로 인식하기 위해서 구분한다.
  4233. if ( k > startrow && prcpmixno =="" && subnow_prcpmixno == "") {
  4234. k=rows;
  4235. } else {
  4236. model.setValue("/root/main/warddruginfo/warddruglist[" + k + "]/soding", subcnt);
  4237. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + k + "]");
  4238. }
  4239. }
  4240. }
  4241. }
  4242. mainpre_prcpmixno = prcpmixno;
  4243. if (prcpmixno == "") mainpre_prcpmixno = "999999999"; //mix no가 지정되지 않은것이 연속으로 되어 있는경우, 구분하기 위해서
  4244. }
  4245. }
  4246. }
  4247. } // end for(i)
  4248. // 횟수적용안됨_20090601
  4249. /*
  4250. var calctims = model.getValue(xMediCard8 + "[" + j + "]/soding");
  4251. for(var i=1; i<rows; i++){
  4252. var check = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  4253. var todaydrug = model.getValue(xWardDrugListPath + "[" + i + "]/todaydrug");
  4254. var prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims"); // 횟수
  4255. if(check == "true" && todaydrug == "Y"){ // 체크된 것 && 조회당일 화면에 표시된것만
  4256. for(var j=0; j<prcptimscalc; j++){ // 횟수만큼
  4257. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  4258. }
  4259. }
  4260. }
  4261. for(var i=1; i<=getNodesetCount(xMediCard8); i++){
  4262. var check = model.getValue(xMediCard8 + "[" + i + "]/check");
  4263. var prcpclscd = model.getValue(xMediCard8 + "[" + i + "]/prtprcpclscd");
  4264. var todaydrug = model.getValue(xMediCard8 + "[" + i + "]/todaydrug");
  4265. if(check == "true" && prcpclscd == "A61" && todaydrug == "Y"){ // 체크된 것 &&수액 && 조회당일 화면에 표시된것만
  4266. var soding = model.getValue(xMediCard8 + "[" + i + "]/soding"); // 출력지정번호(동일mixno끼리는 동일한 soding번호 가지고 있다.)
  4267. var mixno = model.getValue(xMediCard8 + "[" + i + "]/prcpmixno");
  4268. var prcpno = model.getValue(xMediCard8 + "[" + i + "]/prcpno");
  4269. if(soding == "-" || soding == ""){ // 출력지정 안되어 있는 경우
  4270. subcnt++;
  4271. model.makeValue(xMediCard8 + "[" + i + "]/soding", subcnt);
  4272. if(mixno != ""){
  4273. //같은 mixno찾기
  4274. for(var j=1; j<=getNodesetCount(xMediCard8); j++){
  4275. if(mixno == model.getValue(xMediCard8 + "[" + j + "]/prcpmixno")){
  4276. if((prcpno == model.getValue(xMediCard8 + "[" + j + "]/prcpno"))){
  4277. model.makeValue(xMediCard8 + "[" + j + "]/soding", subcnt);
  4278. subcnt++;
  4279. }
  4280. model.makeValue(xMediCard8 + "[" + j + "]/soding", subcnt);
  4281. }
  4282. }
  4283. }
  4284. }
  4285. }
  4286. }// end for(i)
  4287. // 총 출력매수 구하기(soding의 최대값)
  4288. for(var i=1; i<=getNodesetCount(xMediCard8); i++){
  4289. var maxcnt=0;
  4290. var soding = Number(model.getValue(xMediCard8 + "[" + i + "]/soding")); // 출력지정번호
  4291. if(maxcnt<soding){
  4292. maxcnt = soding;
  4293. }
  4294. subcnt = maxcnt;
  4295. }
  4296. */
  4297. //수액
  4298. if (subcnt > 0) {
  4299. //if(medicardcnt8 >0){
  4300. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  4301. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  4302. // 바코드OCX 생성(20080720)
  4303. // if(document.all("CommAX") == null){
  4304. // //lzzfMakeBrcdPrntObj("CommAX");
  4305. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  4306. // }
  4307. //------------------(20081024)
  4308. if ( getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo") <=0 ) {
  4309. //messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  4310. //return;
  4311. //1. 바코드 라벨 설정값 조회
  4312. fGetBarCodeInfo(getScreenID());
  4313. }
  4314. //------------------(20081024)
  4315. // LLZ001.JS참고
  4316. // messageBox("아래 사항을 확인후 재출력해주십시오."
  4317. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4318. // + " \n 2.케이블 확인"
  4319. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4320. //--------------------------------
  4321. //fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //CommAX.PortOpen(true)이 있음(20081024)
  4322. //2. 바코드 라벨 환경설정
  4323. lzzfMakeBrcdPrntObjHanDo("CommAX"); // 추가_20090522(ByJA)
  4324. var portOpenTF = fSetNursBarcdInfo("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //CommAX.PortOpen(true)이 있음20090522 김홍점 사토 추가 carecom.js
  4325. //CommAX.CommPort = "7"; // 출력 Port
  4326. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  4327. /** <addon>
  4328. *개발일시: 2010.05.13
  4329. *개발자: 양천덕
  4330. *요청병원: 세종병원
  4331. *요청파트: 간호
  4332. *개발내용: 바코드 출력 형식 변경으로 수정 처리(수액라벨)
  4333. </addon>
  4334. */
  4335. barcdRef = "/root/main/barcdprntsetup/prntsetupinfo";
  4336. pid = model.getValue("/root/main/patinfo/pid");
  4337. roomcd = model.getValue("/root/main/patinfo/roomcd");
  4338. patnm = model.getValue("/root/main/patinfo/patnm");
  4339. sexage = model.getValue("/root/main/patinfo/sexage");
  4340. orddd = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  4341. rntnode = xMediCard8;
  4342. prncnt = 1;
  4343. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+cmb_ward.value+"']/cdid")) ) {
  4344. roomcd = model.getValue(xWardPatListPath + "[" + grd_patlist.row + "]/typedetl");
  4345. }
  4346. var barcdRefcnt = getNodesetCount(xBarCordPath);
  4347. var barcdMode = "" ;
  4348. for(var i = 1 ; i <= barcdRefcnt; i++){
  4349. var barCord = model.getValue(xBarCordPath+"["+i+"]/barnm");
  4350. if(barCord == "RPMNZ00006"){
  4351. barcdMode = "1";
  4352. break;
  4353. }else if(barCord == "RPMNZ00008"){
  4354. barcdMode = "2";
  4355. break;
  4356. }
  4357. }
  4358. if(barcdMode == ""){
  4359. barcdMode = "1";
  4360. }
  4361. if(barcdMode == "2"){
  4362. fPrtFluidLabel2(barcdRef, pid, roomcd, patnm, sexage, orddd, rntnode, subcnt, infcinfo, abbrnm, preantiast);
  4363. return;
  4364. }else{
  4365. fPrtFluidLabel(barcdRef, pid, roomcd, patnm, sexage, orddd, rntnode, subcnt, infcinfo, abbrnm, preantiast);
  4366. }
  4367. // var nodecnt = getNodesetCount(xMediCard8);
  4368. // var prev_soding = "";
  4369. // var prcpvol = "";
  4370. // var prcpvolunitflag = "";
  4371. // var prcpqty = "";
  4372. // var prcpqtyunitflag = "";
  4373. // var drugspdunitflag = "";
  4374. // var labelcnt = 0;
  4375. // var labelindex = 0;
  4376. // var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  4377. // var soding = "";
  4378. // var last = "";
  4379. // var overcnt = 1;
  4380. // var iHeight = 0;
  4381. // var sTempData = "";
  4382. // var sLabelData_Array = new Array;
  4383. // var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  4384. // var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  4385. // if(iLeft == "" || iLeft == "-"){
  4386. // iLeft = 0;
  4387. // }
  4388. // if(iTop == "" || iTop == "-"){
  4389. // iTop = 0;
  4390. // }
  4391. //
  4392. // var esc = String.fromCharCode(27); // 추가_20090522(ByJA)
  4393. // var sPrntKind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind"); // 추가_20090522(ByJA)
  4394. // var sLabelSndMsg;
  4395. //
  4396. // var pageno = 1;
  4397. //
  4398. // //20101116_KNUH
  4399. // //var labelyn = "FALSE";
  4400. //
  4401. // /*수액 라벨 출력*/
  4402. // for(var j = 1; j <= nodecnt; j++){
  4403. // if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  4404. // /*환자정보 라벨 출력*/
  4405. // prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  4406. // // SATO일 경우
  4407. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4408. // // 시작위치 셋팅 (A1aaaabbbb:출력 용지 규격(aaaa:세로크기_최대 2848, bbbb:가로크기_최대 832))
  4409. // sLabelSndMsg = "";
  4410. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  4411. //
  4412. // // 출력할 데이터 생성
  4413. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10 , iLeft+50, "(" + model.getValue("/root/main/patinfo/pid") + ")", 1, 1);
  4414. // sLabelSndMsg += CommAX.PrtImgOut(iTop+60 , iLeft+50, model.getValue("/root/main/patinfo/roomcd"), 2, 2);
  4415. // sLabelSndMsg += CommAX.PrtImgOut(iTop+160, iLeft+50, model.getValue("/root/main/patinfo/patnm") , 2, 2);
  4416. //
  4417. // // 종료 및 출력물 출력수량
  4418. // sLabelSndMsg += esc + "Q1" + esc + "Z";
  4419. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4420. // CommAX.SendMsg(sLabelSndMsg);
  4421. //
  4422. // labelindex = labelindex + 1;
  4423. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  4424. //
  4425. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+50 , model.getValue("/root/main/patinfo/roomcd"), 1, 1);
  4426. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+130, model.getValue("/root/main/patinfo/patnm") , 1, 1);
  4427. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+250, model.getValue("/root/main/patinfo/sexage") , 1, 1);
  4428. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+350, sDate , 1, 1);
  4429. // }
  4430. // // SATO가 아닐 경우(기존)
  4431. // else{
  4432. // sLabelSndMsg = "";
  4433. // sLabelSndMsg = BP_StartFormat;
  4434. // //-----------------------------(20080917)
  4435. // //이름과 등록번호 크게 출력하기
  4436. // //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4437. // //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4438. // //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4439. //
  4440. // sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4441. // sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4442. // sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4443. // sLabelSndMsg += fCareBP_EndFormat(1);
  4444. // //-----------------------------(20080917)
  4445. //
  4446. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4447. //
  4448. // CommAX.SendMessage(sLabelSndMsg);
  4449. // //////alert(sLabelSndMsg);
  4450. //
  4451. // labelindex = labelindex + 1;
  4452. // sLabelSndMsg = BP_StartFormat;
  4453. //
  4454. // sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  4455. // sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4456. // sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  4457. // sLabelSndMsg += fCarePrintOutA(iLeft + 345, iTop + 10, 4, "N", sDate,"");
  4458. // }
  4459. // } // end if 환자정보 라벨 출력
  4460. //
  4461. // prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  4462. // prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  4463. //
  4464. // prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  4465. // prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  4466. //
  4467. // drugspdunitflag = model.getValue(xMediCard8 + "[" + j + "]/drugspdunitflag");
  4468. //
  4469. // //---------------(20080927)
  4470. // //1일횟수로 나눈다.
  4471. // var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  4472. // if (tims > 0 ) {
  4473. // //prcpvol = prcpvol / tims;
  4474. // //prcpqty = prcpqty / tims;
  4475. // prcpvol = (prcpvol / tims);
  4476. // prcpqty = (prcpqty / tims);
  4477. //
  4478. // // 소수점 셋째자리까지 ------------(20091020)
  4479. // var prcpvollist = String(prcpvol).split(".");
  4480. // var prcpqtylist = String(prcpqty).split(".");
  4481. // if(prcpvollist.length > 1){
  4482. // prcpvol = prcpvollist[0] + "." + prcpvollist[1].substr(0,3);
  4483. // }
  4484. // if(prcpqtylist.length > 1){
  4485. // prcpqty = prcpqtylist[0] + "." + prcpqtylist[1].substr(0,3);
  4486. // }
  4487. // }
  4488. // //---------------(20080927)
  4489. //
  4490. // sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag + ( isNull(drugspdunitflag) ? "" : "/" + drugspdunitflag);
  4491. // iHeight = ((labelcnt + overcnt) * 30) + 30;
  4492. //
  4493. // if(model.getValue(xMediCard8 + "[" + j + "]/todaydrug")=="Y"){
  4494. // // SATO일 경우
  4495. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4496. // sLabelSndMsg += CommAX.PrtImgOut(iTop+iHeight, iLeft+30 , model.getValue(xMediCard8 + "[" + j + "]/prcpcdprt"), 1, 1);
  4497. // sLabelSndMsg += CommAX.PrtImgOut(iTop+iHeight, iLeft+205, sTempData, 1, 1);
  4498. // }
  4499. // // SATO가 아닐 경우(기존)
  4500. // else{
  4501. // //--------------------(20081118):원래대로
  4502. // sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcdprt"), ""); //원본
  4503. //
  4504. // ////처방 영문명, 폰트 축소(안됨)
  4505. // //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 0, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  4506. // //--------------------(20081118)
  4507. //
  4508. // sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + iHeight, 3, "N", sTempData, "");
  4509. // }
  4510. // }
  4511. // labelcnt++;
  4512. //
  4513. // soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  4514. // last = model.getValue(xMediCard8 + "[" + j + "]/last");
  4515. //
  4516. // /*수액정보 라벨 출력*/
  4517. // if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  4518. // // SATO일 경우
  4519. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4520. // sLabelSndMsg += CommAX.PrtImgOut(iTop+220, iLeft+230 , subcnt + " - " + soding, 1, 1);
  4521. //
  4522. // // 종료 및 출력물 출력수량
  4523. // sLabelSndMsg += esc + "Q1" + esc + "Z";
  4524. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4525. // CommAX.SendMsg(sLabelSndMsg);
  4526. //
  4527. // labelindex = labelindex + 1;
  4528. // overcnt = 1;
  4529. // labelcnt = 0;
  4530. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  4531. // }
  4532. // // SATO가 아닐 경우(기존)
  4533. // else{
  4534. // // 총수 - 현위치
  4535. //
  4536. // //----------(20080927)
  4537. // //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  4538. // sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", subcnt + " - " + soding, "");
  4539. // //----------(20080927)
  4540. // sLabelSndMsg += fCareBP_EndFormat(1);
  4541. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4542. //
  4543. // CommAX.SendMessage(sLabelSndMsg);
  4544. // //////alert(sLabelSndMsg);
  4545. //
  4546. // labelindex = labelindex + 1;
  4547. // overcnt = 1;
  4548. // labelcnt = 0;
  4549. // sLabelSndMsg = BP_StartFormat;
  4550. // }
  4551. // }else if((labelcnt + overcnt) == 5){
  4552. // // SATO일 경우
  4553. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4554. // // 종료 및 출력물 출력수량
  4555. // sLabelSndMsg += esc + "Q1" + esc + "Z";
  4556. //
  4557. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4558. //
  4559. // CommAX.SendMsg(sLabelSndMsg);
  4560. //
  4561. // labelindex = labelindex + 1;
  4562. // overcnt = 0;
  4563. // labelcnt = 0;
  4564. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  4565. // }
  4566. // // SATO가 아닐 경우(기존)
  4567. // else{
  4568. // sLabelSndMsg += fCareBP_EndFormat(1);
  4569. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4570. //
  4571. // CommAX.SendMessage(sLabelSndMsg);
  4572. // //////alert(sLabelSndMsg);
  4573. //
  4574. // labelindex = labelindex + 1;
  4575. // overcnt = 0;
  4576. // labelcnt = 0;
  4577. // sLabelSndMsg = BP_StartFormat;
  4578. // }
  4579. // }else{} // end if 수액정보 라벨 출력
  4580. //
  4581. // } // end for
  4582. // /*순서 뒤집기*/
  4583. // /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  4584. // CommAX.SendMessage(sLabelData_Array[k]);
  4585. // }*/
  4586. //
  4587. // /* 20101116_KNUH주석처리.start
  4588. // // 20100322
  4589. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){ // SATO일 경우
  4590. // var Message = "";
  4591. // Message = CommAX.Message;
  4592. // if(Message == null || Message == ""){
  4593. // labelyn = "TRUE";
  4594. // }
  4595. // }else{ // SATO가 아닐 경우(기존)
  4596. // labelyn = portOpenTF;
  4597. // }
  4598. // if(labelyn == "TRUE"){
  4599. // fsetLabelPrntInfo("hydlabel", grd_patlist.row, grd_actlist.row); // 라벨출력정보 저장_20100319
  4600. // }
  4601. // 20101116_KNUH주석처리.end */
  4602. //
  4603. // //-----------(20081031)
  4604. // CommAX.PortOpen(false);
  4605. // //CommAX.PortClose();
  4606. // //-----------(20081031)
  4607. }else{
  4608. messageBox("수액이 존재하지","E007");
  4609. }
  4610. }
  4611. ///-----------------(20081210)
  4612. //약그리드 확대/축소 기능
  4613. function fDruglist_Extend(workflag){
  4614. switch (workflag) {
  4615. case "pat":
  4616. if ( btnExtend.text == "축소") {
  4617. btnExtend.text = "확대"; //축소되었으므로 확대시켜야한다.
  4618. swtpatList.visible = true ;
  4619. //linpatListRight.visible = true ; // 오류수정
  4620. linDruglistTop.attribute("x1") = "220"
  4621. grd_druglist.attribute("left") = "220"
  4622. grd_druglist.attribute("width") = "970"
  4623. bolall.attribute("left") = "222"; //--(20081216)
  4624. }
  4625. break;
  4626. case "drug":
  4627. if ( btnExtend.text == "축소") {
  4628. btnExtend.text = "확대"; //축소되었으므로 확대시켜야한다.
  4629. swtpatList.visible = true ;
  4630. //linpatListRight.visible = true ;
  4631. linDruglistTop.attribute("x1") = "220"
  4632. grd_druglist.attribute("left") = "220"
  4633. grd_druglist.attribute("width") = "970"
  4634. bolall.attribute("left") = "222"; //--(20081216)
  4635. } else {
  4636. btnExtend.text = "축소"; //확대되었으므로 축소시켜야한다.
  4637. swtpatList.visible = false ;
  4638. //linpatListRight.visible = false ;
  4639. linDruglistTop.attribute("x1") = "0"
  4640. grd_druglist.attribute("left") = "0"
  4641. grd_druglist.attribute("width") = "1185"
  4642. bolall.attribute("left") = "2"; //--(20081216)
  4643. }
  4644. break;
  4645. }
  4646. }
  4647. ///-----------------(20081210)
  4648. ///-----------------(20081208 임시작업분)
  4649. function fClickHydPrint_TEMP(){
  4650. return;
  4651. //수액라벨 간호itc에서 임시테스트용으로 작성한 소스임(20081209)
  4652. model.removeNodeSet("/root/send/medicard8/warddruglist");
  4653. var rows = grd_druglist.rows-1;
  4654. var prcpclscd = "";
  4655. var prcpmixno = "";
  4656. var prcptims = "";
  4657. var medicardcnt8 = 0;//라벨 출력 총 건수
  4658. var prtMix_Array = new Array;
  4659. var acctims = 0;
  4660. //-----------------(20080927)
  4661. var totcnt = "";
  4662. //-----------------(20080927)
  4663. //----------------------
  4664. //1-1. 자동체크하기1: 동일MIXNO가 체크되어 있으면 자동 체크하기
  4665. //----------------------
  4666. var chkMixnoi = "";
  4667. var chkMixnoj = "";
  4668. var chkflag = "";
  4669. var chkcnt = 0;
  4670. for(var i = 1; i < rows; i++){
  4671. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  4672. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4673. if(prcpclscd != "A61") continue;
  4674. if (chkflag != "true" ) { //체크가 안되어있는것 중에서
  4675. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  4676. if ( chkMixnoi != "") { //mixno가 있는경우
  4677. for (var j=1;j<rows;j++) { //동일mix가 체크되어 있으면
  4678. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  4679. chkflag = model.getValue(xWardDrugListPath + "[" + j + "]/check");
  4680. if ( i != j && chkMixnoi == chkMixnoj && chkflag == "true") {
  4681. model.setValue(xWardDrugListPath + "[" + i + "]/check","true"); //체크자신의 체크로 변경함
  4682. j=rows;
  4683. chkcnt ++;
  4684. }
  4685. }
  4686. }
  4687. }
  4688. }
  4689. if (chkcnt >0) {
  4690. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n동일mixno의 다른 항목도 자동출력 선택 되었습니다. ","E999");
  4691. }
  4692. //----------------------
  4693. //1-2. 자동체크하기1: 출력대상아닌것은 체크풀기
  4694. //----------------------
  4695. chkMixnoi = "";
  4696. chkMixnoj = "";
  4697. chkflag = "";
  4698. chkcnt = 0;
  4699. var sapnoyndept = "";
  4700. var sapnoynall = "";
  4701. var sapnoyn = "";
  4702. var sapnoprtyn = "true";
  4703. for(var i = 1; i < rows; i++){
  4704. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  4705. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4706. if(prcpclscd != "A61") continue;
  4707. sapnoprtyn = "true"; //수액라벨출력 가능
  4708. if (chkflag == "true" ) { //체크되어있는것 중에서
  4709. sapnoyn = model.getValue(xWardDrugListPath + "[" + i + "]/sapnoyn");
  4710. sapnoyndept = sapnoyn.substr(1,1); //수액기준정보자료에 수액 & 부서로 자료가 있는지 여부(0이면 없는경우)
  4711. sapnoynall = sapnoyn.substr(2,1); //수액기준정보자료에 수액 & 공통로 자료가 있는지 여부(0이면 없는경우)
  4712. if (sapnoyndept == "N") { //부서에 자료가 있는데 수액라벨출력 불가로 들어가 있는경우
  4713. sapnoprtyn = "false";
  4714. } else if (sapnoyndept == "0" && sapnoynall == "N") {//부서에 자료가 없고, 공통에 수액라벨출력 불가로 들어가 있는경우
  4715. sapnoprtyn = "false"; //수액라벨출력 불가
  4716. }
  4717. if (sapnoprtyn == "false") {
  4718. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  4719. if ( chkMixnoi != "") { //mixno가 있으면서
  4720. for (var j=1;j<rows;j++) {
  4721. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  4722. if ( chkMixnoi == chkMixnoj ) { //같은 mixno이면 출력을 해제한다.
  4723. //model.setValue(xWardDrugListPath + "[" + j + "]/check","true");
  4724. model.setValue(xWardDrugListPath + "[" + j + "]/check","false"); //1001
  4725. chkcnt++;
  4726. }
  4727. }
  4728. }
  4729. }
  4730. }
  4731. }
  4732. if (chkcnt >0) {
  4733. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n수액기준정보에 수액no적용정보가 'N'로 설정된 자료가 있습니다. \n수액라벨출력을 해제합니다.","E999");
  4734. }
  4735. //----------------------
  4736. //3. 출력내역정리하기
  4737. //---------------------- 작업중...........
  4738. var subcnt = 0; //해당번호
  4739. var prcptimscalc ="";
  4740. var mainpre_prcpmixno = "999999999"; //main이전mixno
  4741. var subnow_prcpmixno = ""; //sub현재mixno
  4742. var startrow = "";
  4743. //전체
  4744. for(var i = 1; i < rows; i++){
  4745. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4746. if(prcpclscd == "A61"){//수액
  4747. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  4748. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno"); //현재mixno
  4749. prcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  4750. prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims"); //------------(20080912)
  4751. startrow = i;
  4752. if (mainpre_prcpmixno != prcpmixno) { //main 이전mixno가 다른경우
  4753. //횟수만큼
  4754. for(var j = 0; j < prcptimscalc; j++){ //for(var j = 0; j < prcptims; j++){ //--------(20080912)
  4755. subcnt ++;
  4756. //startrow부터 같은 mixno를 찾는다.
  4757. for(var k = startrow; k < rows; k++){
  4758. subnow_prcpmixno = model.getValue(xWardDrugListPath + "[" + k + "]/prcpmixno"); //현재mixno
  4759. if (prcpmixno != subnow_prcpmixno) {
  4760. // i = k; //main첨자를 sub에서 증가한 것 만큼 더한다.
  4761. // i--; //i가 전체 main loop로 돌아가면 자동 증가되므로 -1를 해준다.
  4762. k = rows; //k loop를 벗어남
  4763. } else {
  4764. //mixno가 연속해서 없는 경우에는 다른것으로 인식하기 위해서 구분한다.
  4765. if ( k > startrow && prcpmixno =="" && subnow_prcpmixno == "") {
  4766. k=rows;
  4767. } else {
  4768. model.setValue("/root/main/warddruginfo/warddruglist[" + k + "]/soding", subcnt);
  4769. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + k + "]");
  4770. }
  4771. }
  4772. }
  4773. }
  4774. mainpre_prcpmixno = prcpmixno;
  4775. if (prcpmixno == "") mainpre_prcpmixno = "999999999"; //mix no가 지정되지 않은것이 연속으로 되어 있는경우, 구분하기 위해서
  4776. }
  4777. }
  4778. }
  4779. }
  4780. //수액
  4781. if (subcnt > 0) {
  4782. //if(medicardcnt8 >0){
  4783. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  4784. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  4785. // 바코드OCX 생성(20080720)
  4786. // if(document.all("CommAX") == null){
  4787. // //lzzfMakeBrcdPrntObj("CommAX");
  4788. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  4789. // }
  4790. //------------------(20081024)
  4791. if ( getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo") <=0 ) {
  4792. //messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  4793. //return;
  4794. fGetBarCodeInfo(getScreenID());
  4795. }
  4796. //------------------(20081024)
  4797. // LLZ001.JS참고
  4798. // messageBox("아래 사항을 확인후 재출력해주십시오."
  4799. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4800. // + " \n 2.케이블 확인"
  4801. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4802. //--------------------------------
  4803. fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //CommAX.PortOpen(true)이 있음(20081024)
  4804. //CommAX.CommPort = "7"; // 출력 Port
  4805. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  4806. var nodecnt = getNodesetCount(xMediCard8);
  4807. var prev_soding = "";
  4808. var prcpvol = "";
  4809. var prcpvolunitflag = "";
  4810. var prcpqty = "";
  4811. var prcpqtyunitflag = "";
  4812. var labelcnt = 0;
  4813. var labelindex = 0;
  4814. var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  4815. var soding = "";
  4816. var last = "";
  4817. var overcnt = 1;
  4818. var iHeight = 0;
  4819. var sTempData = "";
  4820. var sLabelData_Array = new Array;
  4821. var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  4822. var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  4823. if(iLeft == "" || iLeft == "-"){
  4824. iLeft = 0;
  4825. }
  4826. if(iTop == "" || iTop == "-"){
  4827. iTop = 0;
  4828. }
  4829. /*수액 라벨 출력*/
  4830. var sLabelSndMsg = BP_StartFormat;
  4831. for(var j = 1; j <= nodecnt; j++){
  4832. //하단
  4833. if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  4834. /*환자정보 라벨 출력*/
  4835. prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  4836. //-----------------------------(20080917)
  4837. //이름과 등록번호 크게 출력하기
  4838. //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4839. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4840. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4841. sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4842. //-----------하단의 성별/나이(20081208)
  4843. sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  4844. //-----------
  4845. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4846. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4847. sLabelSndMsg += fCareBP_EndFormat(1);
  4848. //-----------------------------(20080917)
  4849. sLabelData_Array[labelindex] = sLabelSndMsg;
  4850. CommAX.SendMessage(sLabelSndMsg);
  4851. //////alert(sLabelSndMsg);
  4852. labelindex = labelindex + 1;
  4853. sLabelSndMsg = BP_StartFormat;
  4854. //-----------상단의 등록번호(20081208)
  4855. //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  4856. //sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4857. //sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  4858. //sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  4859. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  4860. sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4861. sLabelSndMsg += fCarePrintOutH(iLeft + 180, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/pid"),"");
  4862. sLabelSndMsg += fCarePrintOutA(iLeft + 280, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  4863. sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  4864. //-----------
  4865. }
  4866. prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  4867. prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  4868. prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  4869. prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  4870. //---------------(20080927)
  4871. //1일횟수로 나눈다.
  4872. var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  4873. if (tims > 0 ) {
  4874. prcpvol = prcpvol / tims;
  4875. prcpqty = prcpqty / tims;
  4876. }
  4877. //---------------(20080927)
  4878. sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag;
  4879. iHeight = ((labelcnt + overcnt) * 30) + 30;
  4880. //--------------------(20081208)
  4881. //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcd"), ""); //원본
  4882. //sLabelSndMsg += fCarePrintOutA(iLeft + 220, iTop + iHeight, 3, "N", sTempData, "");
  4883. ////처방 영문명, 폰트 축소(안됨)
  4884. //1. 한글,특수문자(이미지)과 영문(텍스트)을 분리해서 보냄 ===> //이미지로 보내서 속도가 아주 떨어짐
  4885. //2. 한번에 보내는 버퍼용량이 제한이 있음
  4886. //대한5%포도당가생리식염액 1000ml (Dextrose, Electrolytes)
  4887. //sLabelSndMsg += fCarePrintOutH(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  4888. CommAX.SendMessage(sLabelSndMsg);
  4889. sLabelSndMsg = "";
  4890. sLabelSndMsg += fCarePrintOutH(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  4891. CommAX.SendMessage(sLabelSndMsg);
  4892. sLabelSndMsg = "";
  4893. sLabelSndMsg += fCarePrintOutA(iLeft + 230, iTop + iHeight, 3, "N", sTempData, "");
  4894. //--------------------(20081208)
  4895. labelcnt++;
  4896. soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  4897. last = model.getValue(xMediCard8 + "[" + j + "]/last");
  4898. /*수액정보 라벨 출력*/
  4899. if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  4900. // 총수 - 현위치
  4901. //----------(20080927)
  4902. //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  4903. //------------------(20081208)
  4904. var Mixno = "mixno";
  4905. var DrugTime = "10:00";
  4906. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 180, 1, "N", Mixno, "");
  4907. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 210, 1, "N", DrugTime, "");
  4908. //------------------(20081208)
  4909. sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", subcnt + " - " + soding, "");
  4910. //----------(20080927)
  4911. sLabelSndMsg += fCareBP_EndFormat(1);
  4912. sLabelData_Array[labelindex] = sLabelSndMsg;
  4913. CommAX.SendMessage(sLabelSndMsg);
  4914. //////alert(sLabelSndMsg);
  4915. labelindex = labelindex + 1;
  4916. overcnt = 1;
  4917. labelcnt = 0;
  4918. sLabelSndMsg = BP_StartFormat;
  4919. }else if((labelcnt + overcnt) == 5){
  4920. sLabelSndMsg += fCareBP_EndFormat(1);
  4921. sLabelData_Array[labelindex] = sLabelSndMsg;
  4922. CommAX.SendMessage(sLabelSndMsg);
  4923. //////alert(sLabelSndMsg);
  4924. labelindex = labelindex + 1;
  4925. overcnt = 0;
  4926. labelcnt = 0;
  4927. sLabelSndMsg = BP_StartFormat;
  4928. }else{}
  4929. }
  4930. /*순서 뒤집기*/
  4931. /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  4932. CommAX.SendMessage(sLabelData_Array[k]);
  4933. }*/
  4934. //-----------(20081031)
  4935. CommAX.PortOpen(false);
  4936. //CommAX.PortClose();
  4937. //-----------(20081031)
  4938. }else{
  4939. messageBox("수액이 존재하지","E007");
  4940. }
  4941. }
  4942. //----------(20080929이전버젼)
  4943. function fClickHydPrint_OLD(){
  4944. model.removeNodeSet("/root/send/medicard8/warddruglist");
  4945. var rows = grd_druglist.rows-1;
  4946. var prcpclscd = "";
  4947. var prcpmixno = "";
  4948. var prcptims = "";
  4949. var medicardcnt8 = 0;//라벨 출력 총 건수
  4950. var prtMix_Array = new Array;
  4951. var acctims = 0;
  4952. //-----------------(20080927)
  4953. var totcnt = "";
  4954. //-----------------(20080927)
  4955. for(var i = 1; i < rows; i++){
  4956. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  4957. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  4958. prcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  4959. //------------(20080912)
  4960. var prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims");
  4961. //------------(20080912)
  4962. if(prcpclscd == "A61"){//수액
  4963. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  4964. //--------(20080912)
  4965. //for(var j = 0; j < prcptims; j++){
  4966. for(var j = 0; j < prcptimscalc; j++){
  4967. //--------(20080912)
  4968. if((prcpmixno == "" || isSearchArrayIndex(prtMix_Array, prcpmixno) == -1) && j == 0){
  4969. medicardcnt8++;
  4970. prtMix_Array[medicardcnt8] = prcpmixno;
  4971. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", medicardcnt8 + acctims);
  4972. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  4973. //-----------------(20080927)
  4974. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  4975. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  4976. }
  4977. //-----------------(20080927)
  4978. }else if(j > 0){
  4979. acctims++;
  4980. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", Number(isSearchArrayIndex(prtMix_Array, prcpmixno)) + Number(acctims));
  4981. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  4982. //-----------------(20080927)
  4983. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  4984. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  4985. }
  4986. //-----------------(20080927)
  4987. }else{
  4988. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", Number(isSearchArrayIndex(prtMix_Array, prcpmixno)) + Number(acctims));
  4989. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  4990. //-----------------(20080927)
  4991. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  4992. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  4993. }
  4994. //-----------------(20080927)
  4995. }
  4996. }
  4997. }
  4998. }
  4999. }
  5000. //수액
  5001. if(medicardcnt8 >0){
  5002. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  5003. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  5004. // 바코드OCX 생성(20080720)
  5005. // if(document.all("CommAX") == null){
  5006. // //lzzfMakeBrcdPrntObj("CommAX");
  5007. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  5008. // }
  5009. if ( getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo") <=0 ) {
  5010. messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  5011. return;
  5012. }
  5013. // LLZ001.JS참고
  5014. // messageBox("아래 사항을 확인후 재출력해주십시오."
  5015. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5016. // + " \n 2.케이블 확인"
  5017. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5018. //--------------------------------
  5019. fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  5020. //CommAX.CommPort = "7"; // 출력 Port
  5021. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  5022. var nodecnt = getNodesetCount(xMediCard8);
  5023. var prev_soding = "";
  5024. var prcpvol = "";
  5025. var prcpvolunitflag = "";
  5026. var prcpqty = "";
  5027. var prcpqtyunitflag = "";
  5028. var labelcnt = 0;
  5029. var labelindex = 0;
  5030. var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  5031. var soding = "";
  5032. var last = "";
  5033. var overcnt = 1;
  5034. var iHeight = 0;
  5035. var sTempData = "";
  5036. var sLabelData_Array = new Array;
  5037. var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  5038. var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  5039. if(iLeft == "" || iLeft == "-"){
  5040. iLeft = 0;
  5041. }
  5042. if(iTop == "" || iTop == "-"){
  5043. iTop = 0;
  5044. }
  5045. /*수액 라벨 출력*/
  5046. var sLabelSndMsg = BP_StartFormat;
  5047. for(var j = 1; j <= nodecnt; j++){
  5048. if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  5049. /*환자정보 라벨 출력*/
  5050. prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  5051. //-----------------------------(20080917)
  5052. //이름과 등록번호 크게 출력하기
  5053. //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  5054. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  5055. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5056. sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  5057. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  5058. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5059. sLabelSndMsg += fCareBP_EndFormat(1);
  5060. //-----------------------------(20080917)
  5061. sLabelData_Array[labelindex] = sLabelSndMsg;
  5062. CommAX.SendMessage(sLabelSndMsg);
  5063. //////alert(sLabelSndMsg);
  5064. labelindex = labelindex + 1;
  5065. sLabelSndMsg = BP_StartFormat;
  5066. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  5067. sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5068. sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  5069. sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  5070. }
  5071. prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  5072. prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  5073. prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  5074. prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  5075. //---------------(20080927)
  5076. //1일횟수로 나눈다.
  5077. var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  5078. if (tims > 0 ) {
  5079. prcpvol = prcpvol / tims;
  5080. prcpqty = prcpqty / tims;
  5081. }
  5082. //---------------(20080927)
  5083. sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag;
  5084. iHeight = ((labelcnt + overcnt) * 30) + 30;
  5085. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcd"), "");
  5086. sLabelSndMsg += fCarePrintOutA(iLeft + 220, iTop + iHeight, 3, "N", sTempData, "");
  5087. labelcnt++;
  5088. soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  5089. last = model.getValue(xMediCard8 + "[" + j + "]/last");
  5090. /*수액정보 라벨 출력*/
  5091. if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  5092. // 총수 - 현위치
  5093. //----------(20080927)
  5094. //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  5095. sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", totcnt + " - " + soding, "");
  5096. //----------(20080927)
  5097. sLabelSndMsg += fCareBP_EndFormat(1);
  5098. sLabelData_Array[labelindex] = sLabelSndMsg;
  5099. CommAX.SendMessage(sLabelSndMsg);
  5100. //////alert(sLabelSndMsg);
  5101. labelindex = labelindex + 1;
  5102. overcnt = 1;
  5103. labelcnt = 0;
  5104. sLabelSndMsg = BP_StartFormat;
  5105. }else if((labelcnt + overcnt) == 5){
  5106. sLabelSndMsg += fCareBP_EndFormat(1);
  5107. sLabelData_Array[labelindex] = sLabelSndMsg;
  5108. CommAX.SendMessage(sLabelSndMsg);
  5109. //////alert(sLabelSndMsg);
  5110. labelindex = labelindex + 1;
  5111. overcnt = 0;
  5112. labelcnt = 0;
  5113. sLabelSndMsg = BP_StartFormat;
  5114. }else{}
  5115. }
  5116. /*순서 뒤집기*/
  5117. /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  5118. CommAX.SendMessage(sLabelData_Array[k]);
  5119. }*/
  5120. }else{
  5121. messageBox("수액이 존재하지","E007");
  5122. }
  5123. }
  5124. /**
  5125. * @group :
  5126. * @ver : 2007.06.25
  5127. * @by : 최경용
  5128. * @---------------------------------------------------
  5129. * @type : function
  5130. * @access : public
  5131. * @desc : 환자정보 라벨 출력
  5132. * @param :
  5133. * @return :
  5134. * @---------------------------------------------------
  5135. */
  5136. function fPatLabelPrint(sSndMsg){
  5137. //출력매수
  5138. //sSndMsg = sSndMsg + "^PQ1";
  5139. //끝
  5140. sSndMsg = sSndMsg + "^XZ";
  5141. CommAX.SendMessage(sSndMsg);
  5142. }
  5143. /**
  5144. * @group :
  5145. * @ver : 2007.06.25
  5146. * @by : 최경용
  5147. * @---------------------------------------------------
  5148. * @type : function
  5149. * @access : public
  5150. * @desc : 상단정보 셋팅
  5151. * @param :
  5152. * @return :
  5153. * @---------------------------------------------------
  5154. */
  5155. function fSetPatInfo(pid, indd, cretno, instcd, orddd, ordtype){
  5156. var row = grd_druglist.row - 1;
  5157. if(top_pid != pid){
  5158. if(ordtype == "I" || ordtype == "D"){
  5159. // 상단 세팅을 위한 파라미터
  5160. condparam = "I" + "▦" + pid
  5161. + "▦" + indd
  5162. + "▦" + cretno
  5163. + "▦" + instcd
  5164. + "▦" + orddd;
  5165. }else if(ordtype == "E"){
  5166. // 상단 세팅을 위한 파라미터
  5167. condparam = "E" + "▦" + pid
  5168. + "▦" + indd
  5169. + "▦" + cretno
  5170. + "▦" + instcd
  5171. + "▦";
  5172. }else{}
  5173. if(ordtype == "I" || ordtype == "E" || ordtype == "D"){
  5174. setParameter("condparam", condparam);
  5175. //상단 세팅 화면 사이즈 작게 띄움
  5176. //----------------------(20080618이전버젼)
  5177. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  5178. //top_pid = pid;
  5179. //----------------------(20080618이후버젼)
  5180. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  5181. var useyn = getParameter("SPMMO08900_rtn_useyn"); // 입원,외래 원무환자정보 존재 "Y" / 존재하지 않을 경우 "N"
  5182. if(useyn == 'Y') { // 원무환자정보 있을 경우만 다음 단계 진행
  5183. top_pid = pid;
  5184. btn_save.disabled = false;
  5185. btn_tempsave.disabled = false;
  5186. } else {
  5187. messageBox("원무정보가 없습니다. 투약기록일 할 수 업습니다.","E999");
  5188. btn_save.disabled = true;
  5189. btn_tempsave.disabled = true;
  5190. }
  5191. //---------------------
  5192. }
  5193. }
  5194. }
  5195. /**
  5196. * @group :
  5197. * @ver : 2007.06.25
  5198. * @by : 최경용
  5199. * @---------------------------------------------------
  5200. * @type : function
  5201. * @access : public
  5202. * @desc : 투약기록 리스트 클릭시
  5203. * @param :
  5204. * @return :
  5205. * @---------------------------------------------------
  5206. */
  5207. function fDrugListClick(){
  5208. var row = grd_druglist.row;
  5209. var col = grd_druglist.col;
  5210. var drugstat = model.getValue("/root/main/cond/drugstat"); //ACTING구분
  5211. //데이터 컬럼을 클릭시
  5212. if(isDataCell() && col >= grd_colcnt){ //해당 셀을 누를 경우 해당하는 자료만
  5213. if(fChkPrcpStat()) {
  5214. if(event.button == 1){
  5215. fSetDrug(drugstat); //Acting이벤트시 공통 함수(ACTING구분 파라미터)상단으로 올라감
  5216. grd_druglist.refresh();
  5217. }
  5218. if(grd_colcnt <= col){
  5219. //-----------(20081121:test) grd_druglist.row = 1;가 있는데, 막고 테스트 진행함)
  5220. //grd_druglist.row = 1;
  5221. //숨겨진필드로 이동한다.
  5222. // grd_druglist.select(grd_druglist.row,grd_druglist.colref("engnm")) = true;
  5223. // grd_druglist.col = grd_druglist.colref("engnm");
  5224. //-----------(20081121)
  5225. }
  5226. }
  5227. }else if(row == 0 || row == 1){ //헤더를 누를 경우 해당하는 모든 ROW의 컬럼
  5228. if(col >= grd_colcnt){
  5229. if(fChkPrcpStatAll()) {
  5230. fSetDrugAllActing(drugstat);
  5231. grd_druglist.refresh();
  5232. }
  5233. }
  5234. }else{}
  5235. }
  5236. /**
  5237. * @group :
  5238. * @ver : 2007.06.25
  5239. * @by : 최경용
  5240. * @---------------------------------------------------
  5241. * @type : function
  5242. * @access : public
  5243. * @desc : 환자정보 디스플레이(환자리스트)
  5244. * @param :
  5245. * @return :
  5246. * @---------------------------------------------------
  5247. */
  5248. function fSetPatTopInfo(){
  5249. var mouserow = grd_patlist.row;
  5250. var patcnt = getNodesetCount(xWardPatListPath);
  5251. var row = grd_patlist.mouserow;
  5252. var pid = model.getValue(xWardPatListPath + "[" + row + "]/pid");
  5253. var indd = model.getValue(xWardPatListPath + "[" + row + "]/indd");
  5254. var cretno = model.getValue(xWardPatListPath + "[" + row + "]/cretno");
  5255. var instcd = model.getValue(xWardPatListPath + "[" + row + "]/instcd");
  5256. var ordtype = model.getValue(xWardPatListPath + "[" + row + "]/ordtype");
  5257. var orddd = model.getValue("/root/main/cond/orddd");
  5258. var roomcd = model.getValue(xWardPatListPath + "[" + row + "]/roomcd");
  5259. var patnm = model.getValue(xWardPatListPath + "[" + row + "]/patnm");
  5260. var sexage = model.getValue(xWardPatListPath + "[" + row + "]/sexage");
  5261. if (model.getValue("/root/main/cond/wardcd") == "0000000000") {
  5262. xOpfromdt = model.getValue(xWardPatListPath + "[" + row + "]/opfromdt");
  5263. var preantidt = model.getValue(xWardPatListPath + "[" + row + "]/preantidt");
  5264. if (xDrMode = "dr") {
  5265. if (preantidt != "" && preantidt != "-") {
  5266. model.setValue("/root/main/cond/currentday", preantidt.substr(0, 8));
  5267. model.setValue("/root/main/cond/currenttime", preantidt.substr(8,4));
  5268. }
  5269. else {
  5270. model.setValue("/root/main/cond/currentday", getCurrentDate());
  5271. model.setValue("/root/main/cond/currenttime", getCurrentTime().substr(0,4));
  5272. }
  5273. }
  5274. }
  5275. model.setValue("/root/main/patinfo/roomcd", roomcd);
  5276. model.setValue("/root/main/patinfo/pid", pid);
  5277. model.setValue("/root/main/patinfo/patnm", patnm);
  5278. model.setValue("/root/main/patinfo/sexage", sexage);
  5279. model.makeValue("/root/main/patinfo/opfromdt", xOpfromdt);
  5280. //-----------------(20080912) 응급의료센터는 병실정보가 배드정보이므로 병실세팅하면 안됌.20090601 김홍점
  5281. if ( !isNull(model.getValue("/root/code/codeinfo/codelist/cdid"))
  5282. && model.getValue("/root/code/codeinfo/codelist/cdid") != model.getValue("/root/main/cond/wardcd") ){
  5283. model.setValue("/root/main/cond/roomcd",roomcd);
  5284. }
  5285. //-----------------(20080912)
  5286. if(mouserow > 0 && mouserow <= patcnt){
  5287. fSetPatInfo(pid,indd,cretno,instcd,orddd,ordtype);
  5288. }
  5289. if(mouserow > 0 && mouserow <= patcnt){
  5290. fClickDrugListBefore(); //------------(20081031)
  5291. fClickDrugList("drg", row);
  5292. fClickDrugListAfter(); //------------(20081031)
  5293. }
  5294. model.removeNodeSet(xPatInfoPath);
  5295. var sPamInfo = getGlobalVariable("paminfo");
  5296. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist"); //환자정보내리기
  5297. }
  5298. /**
  5299. * @group :
  5300. * @ver : 2007.06.25
  5301. * @by : 최경용
  5302. * @-------------------------------------------------
  5303. * @type : function
  5304. * @access : public
  5305. * @desc : 환자정보 디스플레이(미투약리스트)
  5306. * @param :
  5307. * @return :
  5308. * @---------------------------------------------------
  5309. */
  5310. function fSetActTopInfo(){
  5311. var mouserow = grd_actlist.mouseRow;
  5312. var patcnt = getNodesetCount(xWardActListPath);
  5313. var row = grd_actlist.mouserow;
  5314. var pid = model.getValue(xWardActListPath + "[" + row + "]/pid");
  5315. var indd = model.getValue(xWardActListPath + "[" + row + "]/indd");
  5316. var cretno = model.getValue(xWardActListPath + "[" + row + "]/cretno");
  5317. var instcd = model.getValue(xWardActListPath + "[" + row + "]/instcd");
  5318. var ordtype = model.getValue(xWardActListPath + "[" + row + "]/ordtype");
  5319. var orddd = model.getValue(xWardActListPath + "[" + row + "prcpdd");
  5320. var roomcd = model.getValue(xWardActListPath + "[" + row + "]/roomcd");
  5321. var patnm = model.getValue(xWardActListPath + "[" + row + "]/patnm");
  5322. var sexage = model.getValue(xWardActListPath + "[" + row + "]/sexage");
  5323. model.setValue("/root/main/patinfo/roomcd", roomcd);
  5324. model.setValue("/root/main/patinfo/pid", pid);
  5325. model.setValue("/root/main/patinfo/patnm", patnm);
  5326. model.setValue("/root/main/patinfo/sexage", sexage);
  5327. if(mouserow > 0 && mouserow <= patcnt){
  5328. fSetPatInfo(pid,indd,cretno,instcd,orddd,ordtype);
  5329. }
  5330. if(mouserow > 0 && mouserow <= patcnt){
  5331. fClickDrugListBefore(); //------------(20081031)
  5332. fClickDrugList("act", row);
  5333. fClickDrugListAfter(); //------------(20081031)
  5334. }
  5335. model.removeNodeSet(xPatInfoPath);
  5336. var sPamInfo = getGlobalVariable("paminfo");
  5337. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist"); //환자정보내리기
  5338. }
  5339. /**
  5340. * @group :
  5341. * @ver : 2007.06.25
  5342. * @by : 최경용
  5343. * @---------------------------------------------------
  5344. * @type : function
  5345. * @access : public
  5346. * @desc : 상태값 변경 체크
  5347. * @param :
  5348. * @return :
  5349. * @---------------------------------------------------
  5350. */
  5351. function fChangeValueStatus(row, forarr){
  5352. var iudflag = model.getValue(xWardDrugListPath + "[" + row+ "]/for[" + forarr + "]/iudflag");
  5353. if(iudflag == "-"){
  5354. model.setValue(xWardDrugListPath + "[" + row+ "]/for[" + forarr + "]/iudflag", "U");
  5355. }else if(iudflag == ""){
  5356. model.setValue(xWardDrugListPath + "[" + row+ "]/for[" + forarr + "]/iudflag", "I");
  5357. }else{}
  5358. }
  5359. /**
  5360. * @group :
  5361. * @ver : 2007.06.23
  5362. * @by : 최경용
  5363. * @---------------------------------------------------
  5364. * @type : function
  5365. * @access : public
  5366. * @desc : 투약 시간 셀 color 변경
  5367. * @param :
  5368. * @param :
  5369. * @return :
  5370. * @---------------------------------------------------
  5371. */
  5372. function fDrugCellColorChg(){
  5373. var rows = grd_druglist.rows-1;
  5374. var execcarestatcd = "";
  5375. var spcldrug = "";
  5376. var dccomcountyn = "";
  5377. var forarr = "";
  5378. var todaydrugflag = ""; //---(20080920)
  5379. for(var i = 1; i < rows; i++){
  5380. //AST.ADBMDRUG(약품기본정보)spcldrug(특별약품구분(코드군 A0006 참조))
  5381. spcldrug = model.getValue(xWardDrugListPath + "[" + i + "]/spcldrug");
  5382. //D/C확정여부
  5383. dccomcountyn = model.getValue(xWardDrugListPath + "[" + i + "]/dccomcountyn");
  5384. for(var j = 0; j < addCol_Array.length; j++){
  5385. forarr = model.getValue(xWardDrugListPath + "[" + i + "]/forarr" + (grd_colcnt + j)).split(" ");
  5386. if(forarr != ""){
  5387. for(var k = 0; k < forarr.length-1; k++){
  5388. //간호Acting진행상태(N(미확인)/R(정상투약)/P(투약X-반환가능)/I(투약X-반환불가)/L(퇴원당일 남은약)
  5389. execcarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + forarr[k] + "]/execcarestatcd");
  5390. //--------------------------------------
  5391. //원본:조건체크없이 설정했음
  5392. //수정:조회일 기준으로 투약대상이 아니면 색상을 표시하지 않는다.
  5393. todaydrugflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + forarr[k] + "]/todaydrug"); //--(0920)
  5394. if (todaydrugflag == "Y") { //--(0920)
  5395. if(execcarestatcd == "N" ||execcarestatcd == "-"){
  5396. grd_druglist.cellstyle("background-color",i+1,j+grd_colcnt) = gray;
  5397. }else if(execcarestatcd == "R"){
  5398. grd_druglist.cellstyle("background-color",i+1,j+grd_colcnt) = yellow;
  5399. }else if(execcarestatcd == "P"){
  5400. grd_druglist.cellstyle("background-color",i+1,j+grd_colcnt) = yellowishgreen;
  5401. }else if(execcarestatcd == "I"){
  5402. grd_druglist.cellstyle("background-color",i+1,j+grd_colcnt) = red;
  5403. }else if(execcarestatcd == "L"){
  5404. grd_druglist.cellstyle("background-color",i+1,j+grd_colcnt) = sky;
  5405. //-------------(20081201)
  5406. }else if(execcarestatcd == "M"){
  5407. grd_druglist.cellstyle("background-color",i+1,j+grd_colcnt) = orange;
  5408. //-------------(20081201)
  5409. }else{}
  5410. }
  5411. //--------------------------------------
  5412. }
  5413. }
  5414. }
  5415. //-----------------------------(20080731)
  5416. //마약,향정신성인 경우
  5417. //if(spcldrug == "M"){
  5418. if( spcldrug == "M" || spcldrug == "H" ){
  5419. grd_druglist.cellstyle("font-weight",i+1,1,i+1,grd_colcnt-3) = "bold";
  5420. grd_druglist.cellstyle("font-weight",i+1,grd_colcnt-1,i+1,grd_colcnt-1) = "bold";
  5421. }
  5422. //-----------------------------
  5423. //D/C확정여부
  5424. if(dccomcountyn == "Y"){
  5425. grd_druglist.cellstyle("color",i+1,1,i+1,grd_colcnt-3) = red;
  5426. grd_druglist.cellstyle("color",i+1,grd_colcnt-1,i+1,grd_colcnt-1) = red;
  5427. }
  5428. //bfprcpequalyn : 전일처방 비교 getbfprcpequalyninfo 추가 김홍점 'N'일때 색깔표현
  5429. if ( model.getValue(xWardDrugListPath + "[" + i + "]/bfprcpequalyn") == "N"){
  5430. grd_druglist.cellstyle("background-color",i+1,grd_druglist.colRef("prcpmixno"),i+1,grd_druglist.colRef("drugmthdspccd")) = "#cceeee";
  5431. }
  5432. }
  5433. }
  5434. //-------------------------------------(20080920)
  5435. // todaydrug 을 기준으로 화면에 보이는 것을 재 설정한다.
  5436. function fDrugCellDispChg(){
  5437. var pGrd = grd_druglist;
  5438. var rows = pGrd.rows;
  5439. var cols = pGrd.cols;
  5440. var execcarestatcd = "";
  5441. var spcldrug = "";
  5442. var dccomcountyn = "";
  5443. var forarr = "";
  5444. var todaydrugflag = "";
  5445. //-----------------------------
  5446. //column 설정
  5447. //화면에 보이는 자료에 대해서 색상이 없는경우는 colwidth = 0으로 설정한다.
  5448. //-----------------------------
  5449. for(var col = grd_colcnt; col < cols; col++){
  5450. var dispyn = false; //보이지 않아야 하는 컬럼
  5451. for(var row = 2; row < rows; row++){
  5452. //if (pGrd.rowheight(row) != 0) { //----(20080923)
  5453. if ( pGrd.cellstyle("background-color",row,col) == gray ||
  5454. pGrd.cellstyle("background-color",row,col) == yellow ||
  5455. pGrd.cellstyle("background-color",row,col) == yellowishgreen ||
  5456. pGrd.cellstyle("background-color",row,col) == red ||
  5457. //-------------(20081201)
  5458. pGrd.cellstyle("background-color",row,col) == orange ||
  5459. //-------------(20081201)
  5460. pGrd.cellstyle("background-color",row,col) == sky ) {
  5461. dispyn = true;
  5462. }
  5463. //}
  5464. }
  5465. if (dispyn == false) {
  5466. pGrd.colWidth(col) = 0;
  5467. }
  5468. }
  5469. //-----------------------------
  5470. //row 설정
  5471. //화면에 보이는 자료에 대해서 색상이 없는경우는 rowheight = 0으로 설정한다.
  5472. //-----------------------------
  5473. for(var row = 2; row < rows; row++){
  5474. var dispyn = false; //보이지 않아야 하는 컬럼
  5475. for(var col = grd_colcnt; col < cols; col++){
  5476. if (pGrd.colwidth(col) != 0) { //----(20080925)
  5477. if ( pGrd.cellstyle("background-color",row,col) == gray ||
  5478. pGrd.cellstyle("background-color",row,col) == yellow ||
  5479. pGrd.cellstyle("background-color",row,col) == yellowishgreen ||
  5480. pGrd.cellstyle("background-color",row,col) == red ||
  5481. //-----------(20081201)
  5482. pGrd.cellstyle("background-color",row,col) == orange ||
  5483. //-----------(20081201)
  5484. pGrd.cellstyle("background-color",row,col) == sky ) {
  5485. dispyn = true;
  5486. }
  5487. }
  5488. }
  5489. if (dispyn == false) {
  5490. pGrd.rowheight(row) = 0;
  5491. }
  5492. }
  5493. }
  5494. //-------------------------------------(20080920)
  5495. /**
  5496. * @group :
  5497. * @ver : 2007.06.25
  5498. * @by : 최경용
  5499. * @---------------------------------------------------
  5500. * @type : function
  5501. * @access : public
  5502. * @desc : Tree 셋팅
  5503. * @param : Object gridObj - 그리드 오브텍트
  5504. Integer levelcol - Depth 컬럼 위치
  5505. Integer targetcol - 아웃라인 생성 컬럼 위치
  5506. Boolean collapsed - Expand 설정
  5507. * @return :
  5508. * @---------------------------------------------------
  5509. */
  5510. function careSetTree( gridObj, levelcol, targetcol, collapsed ) {
  5511. // 그리드 아웃라이바 초기화
  5512. gridObj.outlinebar=0;
  5513. var prcpmixno = "0";
  5514. var prcpclscd = "";
  5515. //tree 및 레벨설정
  5516. for(var j = gridObj.fixedRows; j < gridObj.rows; j++)
  5517. {
  5518. gridObj.IsSubtotal(j) = false;
  5519. }
  5520. gridObj.refresh();
  5521. mixno_Array = new Array;
  5522. //tree 및 레벨설정
  5523. for(var i = gridObj.fixedRows; i < gridObj.rows; i++)
  5524. {
  5525. prcpmixno = model.getValue(xWardDrugListPath + "[" + (i-1) + "]/prcpmixno");
  5526. prcpclscd = model.getValue(xWardDrugListPath + "[" + (i-1) + "]/prcpclscd");
  5527. if(prcpmixno != ""){
  5528. try {
  5529. if(mixno_Array[parseInt(prcpmixno)] == null){
  5530. gridObj.IsSubtotal(i) = true;
  5531. gridObj.outlinelevel(i) = 1; //인스턴스 levl 값임
  5532. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "1");
  5533. mixno_Array[parseInt(prcpmixno)] = "Y";
  5534. }else if(mixno_Array[parseInt(prcpmixno)] == "Y"){
  5535. gridObj.IsSubtotal(i) = true;
  5536. gridObj.outlinelevel(i) = 2; //인스턴스 levl 값임
  5537. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "2");
  5538. }else{}
  5539. } catch(e) {
  5540. ////////////alert("i:"+i+",levelcol:"+levelcol);
  5541. }
  5542. }else{
  5543. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "0");
  5544. }
  5545. }
  5546. // tree 대상 컬럼 및 형태 설정
  5547. gridObj.outlinecol=targetcol; //연결선이 표현되는 컬럼
  5548. gridObj.outlinebar=2; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  5549. gridObj.treecolor="#948777"
  5550. // 자식 트리 접기
  5551. if(collapsed != null) {
  5552. setCollapsed(gridObj, collapsed);
  5553. }
  5554. }
  5555. /**
  5556. * @group :
  5557. * @ver : 2007.06.25
  5558. * @by : 최경용
  5559. * @---------------------------------------------------
  5560. * @type : function
  5561. * @access : public
  5562. * @desc : 문자열 검색(배열)
  5563. * @param :
  5564. * @return :
  5565. * @---------------------------------------------------
  5566. */
  5567. function isSearchArrayString(baseCol_Array, row){
  5568. for(var i = 0; i <= baseCol_Array.length; i++){
  5569. if((baseCol_Array[i]) == row){
  5570. return true;
  5571. }
  5572. }
  5573. return false;
  5574. }
  5575. /**
  5576. * @group :
  5577. * @ver : 2007.06.25
  5578. * @by : 최경용
  5579. * @---------------------------------------------------
  5580. * @type : function
  5581. * @access : public
  5582. * @desc : 문자열 검색(배열)
  5583. * @param :
  5584. * @return :
  5585. * @---------------------------------------------------
  5586. */
  5587. function isSearchArrayIndex(baseCol_Array, sData){
  5588. for(var i = 0; i <= baseCol_Array.length; i++){
  5589. if((baseCol_Array[i]) == sData){
  5590. return i;
  5591. }
  5592. }
  5593. return -1;
  5594. }
  5595. /**
  5596. * @group :
  5597. * @ver : 2007.06.25
  5598. * @by : 최경용
  5599. * @---------------------------------------------------
  5600. * @type : function
  5601. * @access : public
  5602. * @desc : 기준시간 변경전 변경된 내용이 있는지 체크
  5603. * @param :
  5604. * @return :
  5605. * @---------------------------------------------------
  5606. */
  5607. function fChangeDrugInfo(){
  5608. var rows = grd_druglist.rows - 1;
  5609. var drugtmspec = "";
  5610. var tims = "";
  5611. var stat = "false";
  5612. var iudflag = "";
  5613. for(var i = 1; i < rows; i++){
  5614. drugtmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec").split(" ");
  5615. tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  5616. for(var j = 0; j < rows; j++){
  5617. iudflag = model.getValue(xWardDrugListPath + "[" + i + "]/iudflag" + drugtmspec[j]);
  5618. if(iudflag != "-" && iudflag != ""){
  5619. return "true";
  5620. }
  5621. }
  5622. }
  5623. return "false";
  5624. }
  5625. /**
  5626. * @group :
  5627. * @ver : 2007.06.25
  5628. * @by : 최경용
  5629. * @---------------------------------------------------
  5630. * @type : function
  5631. * @access : public
  5632. * @desc : 투약기록 그리드 기본/펼치기 모드 이벤트
  5633. * @param :
  5634. * @return :
  5635. * @---------------------------------------------------
  5636. */
  5637. function fSelectOpenMoe(){
  5638. if(rdo_openmode.value == "O"){ //펼치기
  5639. grd_druglist.colHidden(grd_colcnt - 8) = false; //기준시간setting(drugtmspeccal)
  5640. grd_druglist.colHidden(grd_colcnt - 7) = false; //처방remark(prcpdelivefact)
  5641. grd_druglist.colHidden(grd_colcnt - 6) = false; //처방의(orddrnm)
  5642. grd_druglist.colHidden(grd_colcnt - 5) = false; //처방시간(fstrgstdt)
  5643. grd_druglist.colHidden(grd_colcnt - 4) = false; //처방적용일(prcphopedd)
  5644. //grd_druglist.colHidden(grd_colcnt - 2) = false; //수액라벨출력여부(sapnoyn)(20080929)
  5645. grd_druglist.colHidden(grd_colcnt - 3) = true; //수액라벨출력여부(sapnoyn)(20081114)
  5646. grd_druglist.colHidden(grd_colcnt - 2) = false; //처방영문명(20081118)
  5647. grd_druglist.colHidden(grd_colcnt - 1) = false; //depth(depth)
  5648. }else if(rdo_openmode.value == "B"){ //기본
  5649. grd_druglist.colHidden(grd_colcnt - 8) = true;
  5650. grd_druglist.colHidden(grd_colcnt - 7) = true;
  5651. grd_druglist.colHidden(grd_colcnt - 6) = true;
  5652. grd_druglist.colHidden(grd_colcnt - 5) = true;
  5653. grd_druglist.colHidden(grd_colcnt - 4) = true;
  5654. grd_druglist.colHidden(grd_colcnt - 3) = true; //수액라벨출력여부(sapnoyn)(20080929)
  5655. grd_druglist.colHidden(grd_colcnt - 2) = true; //처방영문명(20081118)
  5656. grd_druglist.colHidden(grd_colcnt - 1) = true;
  5657. }else {}
  5658. }
  5659. /**
  5660. * @group :
  5661. * @ver : 2007.06.23
  5662. * @by : 최경용
  5663. * @---------------------------------------------------
  5664. * @type : function
  5665. * @access : public
  5666. * @desc : 투약기록 문자열 정렬
  5667. * @param :
  5668. * @param :
  5669. * @return :
  5670. * @---------------------------------------------------
  5671. */
  5672. //일자별정렬
  5673. function sortHashKeys(col, cnt){
  5674. var sColArray = new Array; //파라미터를 배열 구조로 변경 저장
  5675. var sCol = col.split("^");
  5676. var temp = "";
  5677. for(var i = 0; i < cnt; i++){
  5678. sColArray[i] = Number(sCol[i]);
  5679. }
  5680. //sColArray.sort();
  5681. for(i = 0; i < sColArray.length; i++){
  5682. for(j = 0; j < sColArray.length; j++){
  5683. if(sort2(sColArray[i],sColArray[j]) == false){
  5684. temp = sColArray[i];
  5685. sColArray[i] = sColArray[j];
  5686. sColArray[j] = temp;
  5687. }
  5688. }
  5689. }
  5690. return sColArray;
  5691. }
  5692. //시간대정렬(20080918)
  5693. function sortHashKeys2(col, cnt){
  5694. var sColArray = new Array; //파라미터를 배열 구조로 변경 저장
  5695. var sCol = col.split("^");
  5696. var temp = "";
  5697. for(var i = 0; i < cnt; i++){
  5698. sColArray[i] = Number(sCol[i]);
  5699. }
  5700. //sColArray.sort();
  5701. for(i = 0; i < sColArray.length; i++){
  5702. for(j = 0; j < sColArray.length; j++){
  5703. if(sort2(sColArray[i],sColArray[j]) == false){
  5704. temp = sColArray[i];
  5705. sColArray[i] = sColArray[j];
  5706. sColArray[j] = temp;
  5707. }
  5708. }
  5709. }
  5710. ////////alert("1");
  5711. //가공
  5712. var sColArraytemp0 = new Array;
  5713. var sColArraytemp1 = new Array;
  5714. var sColArraytemp2 = new Array;
  5715. var sColArraytemp3 = new Array;
  5716. var sColArraytemp4 = new Array;
  5717. var cnt0 = -1;
  5718. var cnt1 = -1;
  5719. var cnt2 = -1;
  5720. var cnt3 = -1;
  5721. var cnt4 = -1;
  5722. ////////alert("2");
  5723. for(i = 0; i < sColArray.length; i++){
  5724. var tempv = parseInt(sColArray[i]);
  5725. //////////alert(tempv);
  5726. if (tempv < 0) {
  5727. ////////alert("나누기전:" +tempv);
  5728. tempv = tempv / 2400 ;
  5729. ////////alert("나누기후:" +tempv.toString().getTruncate());
  5730. if (tempv.toString().getTruncate() == 0) {
  5731. cnt0++;
  5732. sColArraytemp0[cnt0] = sColArray[i];
  5733. ////////alert(sColArraytemp0[cnt0]);
  5734. }else if(tempv.toString().getTruncate() == -1) {
  5735. cnt1++;
  5736. sColArraytemp1[cnt1] = sColArray[i];
  5737. }else if(tempv.toString().getTruncate() == -2) {
  5738. cnt2++;
  5739. sColArraytemp2[cnt2] = sColArray[i];
  5740. }else if (tempv.toString().getTruncate() == -3) {
  5741. cnt3++;
  5742. sColArraytemp3[cnt3] = sColArray[i];
  5743. }else if (tempv.toString().getTruncate() == -4) {
  5744. cnt4++;
  5745. sColArraytemp4[cnt4] = sColArray[i];
  5746. }
  5747. }
  5748. }
  5749. ////////alert("3");
  5750. var totcnt = -1;
  5751. for (i=0;i<sColArraytemp4.length;i++) {
  5752. totcnt ++;
  5753. sColArray[totcnt]=sColArraytemp4[i];
  5754. ////////alert(sColArray[totcnt]);
  5755. }
  5756. for (i=0;i<sColArraytemp3.length;i++) {
  5757. totcnt ++;
  5758. sColArray[totcnt]=sColArraytemp3[i];
  5759. ////////alert(sColArray[totcnt]);
  5760. }
  5761. for (i=0;i<sColArraytemp2.length;i++) {
  5762. totcnt ++;
  5763. sColArray[totcnt]=sColArraytemp2[i];
  5764. ////////alert(sColArray[totcnt]);
  5765. }
  5766. for (i=0;i<sColArraytemp1.length;i++) {
  5767. totcnt ++;
  5768. sColArray[totcnt]=sColArraytemp1[i];
  5769. ////////alert(sColArray[totcnt]);
  5770. }
  5771. for (i=0;i<sColArraytemp0.length;i++) {
  5772. totcnt ++;
  5773. sColArray[totcnt]=sColArraytemp0[i];
  5774. ////////alert(sColArray[totcnt]);
  5775. }
  5776. ////////alert("4");
  5777. return sColArray;
  5778. }
  5779. //기준시간setting정렬(0930)
  5780. function sortHashKeysString(sColString){
  5781. var sColArray = new Array;
  5782. //string -> 배열로
  5783. var sCol = sColString.split(" ");
  5784. var temp = "";
  5785. for(var i = 0; i < sCol.length; i++){
  5786. //sColArray[i] = Number(sCol[i]);
  5787. sColArray[i] = fCarec_GetFillZeno(sCol[i],4,0);
  5788. sColArray[i] = sColArray[i].toString().replace(":",""); //-----(20080919)
  5789. }
  5790. //배열 정렬
  5791. for(var i = 0; i < sColArray.length; i++){
  5792. for(var j = 0; j < sColArray.length; j++){
  5793. if(sort2(sColArray[i],sColArray[j]) == false){
  5794. temp = fCarec_GetFillZeno(sColArray[i],4,0);
  5795. sColArray[i] = fCarec_GetFillZeno(sColArray[j],4,0);
  5796. sColArray[j] = fCarec_GetFillZeno(temp,4,0);
  5797. }
  5798. }
  5799. }
  5800. //중복제거
  5801. // sColString = "";
  5802. // for(var i = 0; i < sColArray.length; i++){
  5803. // if ( sColArray[i] == "") continue;
  5804. //
  5805. // for(var j = i+1; j < sColArray.length; j++){
  5806. // if ( sColArray[i] == sColArray[j]) sColArray[j] = "";
  5807. // }
  5808. // }
  5809. //배열 -> string
  5810. sColString = "";
  5811. for(var i = 0; i < sColArray.length; i++){
  5812. //if (sColArray[i] == "0000") continue; //---0919
  5813. sColString += sColArray[i] + " ";
  5814. }
  5815. //마지막 " " 제거
  5816. sColString = sColString.substr(0,sColString.length-1);
  5817. //string 리턴
  5818. return sColString;
  5819. }
  5820. //--------------------(20080605)
  5821. // 음수끼리의 정렬은 반대임(기능추가)
  5822. // -1800 < -2000 임 시간이므로(오류가 있음) -1800 -2000 이 되어야함
  5823. // -1800 < -4000 인 경우는 날짜가 달라짐(0918) -4000 -1800 이 되어야함
  5824. // return false를 리터하면 change하라
  5825. //--------------------
  5826. function sort2(a,b){
  5827. var temp1,temp2;
  5828. var temp1mok,temp2mok;
  5829. // 두변수가 전부 음수인 경우(음수,음수) -1800 < -2000
  5830. // a을 비교한다.
  5831. //////////alert("비교:" + parseInt(a) + "/" + parseInt(b))
  5832. if ( parseInt(a) < 0 && parseInt(b) < 0 ) { //: 작은순정렬(큰순<작은순)
  5833. if(parseInt(a) < parseInt(b)){
  5834. return true; //no change
  5835. }else if(parseInt(a) > parseInt(b)){
  5836. return false; //change
  5837. }else{
  5838. var sort = new Array(a,b);
  5839. sort.sort();
  5840. return (sort[0] == a)? false:true;
  5841. }
  5842. } else {
  5843. //그외경우 (음수,양수/양수,음수/양수,양수) //: 큰순정렬(작은순->큰순)
  5844. if(parseInt(a) > parseInt(b)){
  5845. return true; //no change
  5846. }else if(parseInt(a) < parseInt(b)){
  5847. return false; //change
  5848. }else{
  5849. var sort = new Array(a,b);
  5850. sort.sort();
  5851. return (sort[0] == a)? false:true;
  5852. }
  5853. }
  5854. }
  5855. //function sort2_OLD(a,b){
  5856. // if(parseInt(a) > parseInt(b)){
  5857. // return true;
  5858. // }else if(parseInt(a) < parseInt(b)){
  5859. // return false;
  5860. // }else{
  5861. // var sort = new Array(a,b);
  5862. // sort.sort();
  5863. // return (sort[0] == a)? false:true;
  5864. // }
  5865. //}
  5866. /**
  5867. * @group :
  5868. * @ver : 2007.06.25
  5869. * @by : 최경용
  5870. * @---------------------------------------------------
  5871. * @type : function
  5872. * @access : public
  5873. * @desc : grid mouse down
  5874. * @param :
  5875. * @return :
  5876. * @---------------------------------------------------
  5877. */
  5878. function fMouseDownGridRow(){
  5879. var rows = grd_druglist.rows;
  5880. var row = grd_druglist.mouseRow-1;
  5881. var col = grd_druglist.mouseCol;
  5882. if(row + 1 <= rows && rows > 2 && row > 0){
  5883. if(event.button == 3){
  5884. if(col >= grd_colcnt){
  5885. window.setPopupMenu(true, "/root/hidden/drg_popmenu1/menu", "name", "func", false);
  5886. }else{
  5887. window.setPopupMenu(true, "/root/hidden/drg_popmenu2/menu", "name", "func", false);
  5888. }
  5889. }
  5890. }else{
  5891. window.setPopupMenu(false);
  5892. }
  5893. }
  5894. /**
  5895. * @---------------------------------------------------
  5896. * @desc : 전체 문장에서 특정 문장이 있는지를 검사하는 함수
  5897. * @param : strSrc - 전체 문장
  5898. * @param : strFind - 찾을 문장
  5899. * @return : boolean
  5900. * @---------------------------------------------------
  5901. */
  5902. function careIsSearchString(strSrc, strFind){
  5903. strSrc = strSrc.split("^");
  5904. for(var i = 0; i < strSrc.length; i++){
  5905. if(strFind == strSrc[i]){
  5906. return true;
  5907. }
  5908. }
  5909. return false;
  5910. }
  5911. /*
  5912. 20080809
  5913. prcpno별로 drugbasetmspec_TM를 기준으로
  5914. model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")에 값설정 한다.
  5915. */
  5916. function fndrugcalcbefore() {
  5917. var querydrugddfr = model.getValue("/root/main/cond/orddd"); //조회일(투약(예정)일 (화면에 나와야하는 일자)
  5918. var querydrugddto = getDateAddc(querydrugddfr, 1); //조회일(투약(예정)일+1 (화면에 나와야하는 일자)
  5919. var prcpdd = "";
  5920. var prcpno = "";
  5921. var prcphistno = "";
  5922. var drugbasetmspec_tm = "";
  5923. var fridx = 1;
  5924. var toidx = 1;
  5925. var rows = getNodesetCount(xHiddenWardDrugPath);
  5926. for(var i = 1; i<= rows; i++){
  5927. ////////////alert( "읽기:" +prcpdd + "/" + prcpno + "/" + prcphistno );
  5928. if (i == 1) {
  5929. prcpdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpdd");
  5930. prcpno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpno");
  5931. //prcphistno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno");
  5932. fridx = 1;
  5933. toidx = 1;
  5934. ////////////alert("시작:"+ i + "/" + drugbasetmspec_tm+ "/");
  5935. }
  5936. if (
  5937. prcpdd == model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpdd") &&
  5938. prcpno == model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpno") //&&
  5939. //prcphistno == model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno")
  5940. ) {
  5941. drugbasetmspec_tm += model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugbasetmspec_tm") + " ";
  5942. ////////////alert("같음:"+ i + "/" + drugbasetmspec_tm+ "/");
  5943. } else {
  5944. prcpdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpdd");
  5945. prcpno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpno");
  5946. //prcphistno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno");
  5947. //반영을 위한 값설정
  5948. toidx = i-1;
  5949. drugbasetmspec_tm = drugbasetmspec_tm.substring(0,drugbasetmspec_tm.length-1);
  5950. ////////////alert("다름1:" + i + "/" + drugbasetmspec_tm+ "/");
  5951. //반영
  5952. for (var j=fridx;j<=toidx;j++) {
  5953. model.setValue(xHiddenWardDrugPath + "[" + j + "]/drugtmspec", drugbasetmspec_tm);
  5954. model.setValue(xHiddenWardDrugPath + "[" + j + "]/drugbasetmspec", drugbasetmspec_tm);
  5955. }
  5956. ////////////alert("다름2:" + i + "/" + drugbasetmspec_tm+ "/");
  5957. //초기화
  5958. fridx = i;
  5959. drugbasetmspec_tm = "";
  5960. drugbasetmspec_tm += model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugbasetmspec_tm") + " ";
  5961. ////////////alert("다름3:" + i + "/" + drugbasetmspec_tm+ "/");
  5962. }
  5963. if (i == rows) {
  5964. //반영을 위한 값설정
  5965. toidx = i;
  5966. drugbasetmspec_tm = drugbasetmspec_tm.substring(0,drugbasetmspec_tm.length-1);
  5967. ////////////alert("종료1:" + i + "/" + drugbasetmspec_tm+ "/");
  5968. //반영
  5969. for (var j=fridx;j<=toidx;j++) {
  5970. model.setValue(xHiddenWardDrugPath + "[" + j + "]/drugtmspec", drugbasetmspec_tm);
  5971. model.setValue(xHiddenWardDrugPath + "[" + j + "]/drugbasetmspec", drugbasetmspec_tm);
  5972. }
  5973. ////////////alert("종료2:" + i + "/" + drugbasetmspec_tm+ "/");
  5974. }
  5975. }
  5976. }
  5977. /*
  5978. 20080529
  5979. 조회자료에서 기준시간setting을 편집한다.
  5980. 시간대를 row별로 반영한다.
  5981. */
  5982. function fndrugcalc() {
  5983. var querydrugddfr = model.getValue("/root/main/cond/orddd"); //조회일(투약(예정)일 (화면에 나와야하는 일자)
  5984. var querydrugddto = getDateAddc(querydrugddfr, 1); //조회일(투약(예정)일+1 (화면에 나와야하는 일자)
  5985. for(var i = 1; i<= getNodesetCount(xHiddenWardDrugPath); i++){
  5986. //------------------------------------------------------------------------------------------
  5987. //drugtmspec : 조회해온 표준시간대(표준시간대+변경된시간대, 단 투약시간대는 반영되지 않았음)
  5988. // 변경하지 않는다.
  5989. //------------------------------------------------------------------------------------------
  5990. var drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec"); //1 부터임(질의문에서 받아온 시간 그대로)
  5991. var prcphopedd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphopedd");
  5992. var prcpcd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpcd");
  5993. var drugdd = "";
  5994. var drugtm = "";
  5995. var i_init = i
  5996. var drugtmspeccal1 = ""; //조회자료에 대한 DRUGDD,DRUGTM
  5997. var drugtmspeccal2 = ""; //조회기간에 대한(조회일~조회일+1) 을 연산한것으로 변경한 것
  5998. var dispddarray = ""; //투약(예정)일
  5999. var disptmarray = ""; //투약(예정)시간
  6000. var dispflagarray = ""; //조회기간안의 투약(예정)일 여부 flag(화면상계산의미없음)전부보임
  6001. var todaydrugtimes = ""; //질의문을 기준으로 화면에 보일자료 (20080920)
  6002. var antiastrids = "";
  6003. var antiastrnms = "";
  6004. if(drugtmspec != ""){
  6005. array_drugtmspec = drugtmspec.split(" ");
  6006. for(var j = 0; j < array_drugtmspec.length; j++){
  6007. //------------------------------------------------------------
  6008. //처방적용일기준으로 표준 시간대를 계산한다.[절대시간대]
  6009. //------------------------------------------------------------
  6010. //처방적용희망일+설정된시간(표준시간대또는 변경된시간대):실질적인 투약일/투약시간을 찾는다.
  6011. //------------------------------------------------------------
  6012. drugdd = getDateAddc(prcphopedd, parseInt(array_drugtmspec[j] / 2400));
  6013. drugtm = Number(array_drugtmspec[j]) % 2400;
  6014. drugtm = Math.abs(Number(drugtm)).toString();
  6015. //------------------------------------------------------------
  6016. //투약된일자가 있으면
  6017. //투약된일자와 투약된시간대를 반영한다.
  6018. //
  6019. //변경시간은 반영된 상태이고,
  6020. //투약일(medr.execdd)이 있으면 투약일로 설정한다.
  6021. //------------------------------------------------------------
  6022. var execdrugdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/execdd");
  6023. var execdrugtm = model.getValue(xHiddenWardDrugPath + "[" + i + "]/exectm");
  6024. //------------(20080710) 투약기록과 시행일자가 분리되었음
  6025. // if (execdrugdd != "" && execdrugdd != "00000000") drugdd = execdrugdd;
  6026. // if (execdrugtm != "" && execdrugtm != "000000") drugtm = execdrugtm.substring(0,4);
  6027. ////////////alert("drugtmspeccal1:" + drugtmspeccal1);
  6028. drugtmspeccal1 += fCarec_GetFillZeno(drugtm,4,0) + " ";
  6029. drugtm = fCarec_GetFillZeno(drugtm,4,0);
  6030. //투약(예정)일을 찾는다.
  6031. model.setValue(xHiddenWardDrugPath + "[" + i + "]/dispdd", drugdd);
  6032. model.setValue(xHiddenWardDrugPath + "[" + i + "]/disptm", drugtm);
  6033. //투약(예정)일을 string형태로 생성한다.
  6034. dispddarray += drugdd + " ";
  6035. disptmarray += drugtm + " ";
  6036. //------------------------------------------------------------
  6037. //화면에 표시하기 위하여 조회일자를 기준으로 시간대를 다시 계산한다.[24시간 기준대로]//[상대시간대]
  6038. //------------------------------------------------------------
  6039. //실질적인 투약일을 구한것을 기준으로
  6040. //조회일과의 일수차를 계산하여
  6041. //투약시간대와 일수를 감안하여 재계산한다.
  6042. //------------------------------------------------------------
  6043. var dispdd2 = model.getValue(xHiddenWardDrugPath + "[" + i + "]/dispdd"); //의미없음(dispdd와 동일)
  6044. var disptm2 = model.getValue(xHiddenWardDrugPath + "[" + i + "]/disptm");
  6045. var intervaldd = getDateInterval(querydrugddfr,dispdd2); //투약(예정)일-조회일 일수
  6046. if (intervaldd >= 0 ) {
  6047. disptm2 = Number(disptm2) + (Number(intervaldd) * 2400); //일수 반영한 시간대
  6048. } else {
  6049. disptm2 = (-Number(disptm2) + (Number(intervaldd) * 2400))
  6050. }
  6051. drugtmspeccal2 += fCarec_GetFillZeno(disptm2,4,0) + " "; //drugtmspeccal 만든다.
  6052. //------------------------------------------------------------
  6053. //자료들 중 화면에 표시해야 하는 것들을 표시한다.:
  6054. //
  6055. //조회일<= 투약(예정)일 and 투약(예정)일 <= 조회일+1
  6056. //------------------------------------------------------------
  6057. //test
  6058. if (querydrugddfr <= dispdd2 && dispdd2 <= querydrugddto) {
  6059. ////////////alert(querydrugddfr + "/" +drugdd +"/" + dispdd2 + "/" + querydrugddto);
  6060. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/dispflag", "Y"); //화면에 표시대상FLAG
  6061. dispflagarray += "Y" + "/";
  6062. } else {
  6063. dispflagarray += "" + "/";
  6064. }
  6065. todaydrugtimes += model.getValue(xHiddenWardDrugPath + "[" + i + "]/todaydrug") + "/"; //-----(20080920)
  6066. antiastrids += model.getValue(xHiddenWardDrugPath + "[" + i + "]/antiastrid") + "/";
  6067. antiastrnms += model.getValue(xHiddenWardDrugPath + "[" + i + "]/antiastrnm") + "/";
  6068. ////////alert(todaydrugtimes);
  6069. i++;
  6070. }
  6071. //------------------------------------------------------------
  6072. //위에서 계산대 정보를 각 row에 반영한다.
  6073. //------------------------------------------------------------
  6074. drugtmspeccal1 = drugtmspeccal1.substring(0,drugtmspeccal1.length-1);
  6075. drugtmspeccal2 = drugtmspeccal2.substring(0,drugtmspeccal2.length-1);
  6076. dispddarray = dispddarray.substring(0,dispddarray.length-1);
  6077. disptmarray = disptmarray.substring(0,disptmarray.length-1);
  6078. dispflagarray = dispflagarray.substring(0,dispflagarray.length-1);
  6079. todaydrugtimes = todaydrugtimes.substring(0,todaydrugtimes.length-1); //(20080920)
  6080. antiastrids = antiastrids.substring(0,antiastrids.length-1);
  6081. antiastrnms = antiastrnms.substring(0,antiastrnms.length-1);
  6082. i=i_init; //시작첨자
  6083. for(var j = 0; j < array_drugtmspec.length; j++){
  6084. if ( model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpcd") == "DTMD100J") {
  6085. //////////alert("DTMD100J:" +drugtmspeccal2);
  6086. }
  6087. //처방적용일기준으로 표준 시간대를 계산한다.
  6088. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec_recalc1", drugtmspeccal1);
  6089. //조회일자를 기준으로 시간대를 다시 계산한다(화면표시용)
  6090. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec_recalc2", drugtmspeccal2);
  6091. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", drugtmspeccal2);
  6092. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/dispddarray", dispddarray);
  6093. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/disptmarray", disptmarray);
  6094. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/dispflagarray", dispflagarray);
  6095. dispflagarray = dispflagarray.replace("/","");
  6096. if ( dispflagarray.length > 0) {
  6097. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/dispflaggroup", "Y");
  6098. }
  6099. //실질적인 당일투약대상또는 투약한 대상
  6100. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/todaydrugtimes", todaydrugtimes); //--(20080920)
  6101. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/antiastrids", antiastrids);
  6102. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/antiastrnms", antiastrnms);
  6103. i++;
  6104. }
  6105. i--;
  6106. drugtmspeccal1 = "";
  6107. drugtmspeccal2 = "";
  6108. dispddarray = "";
  6109. disptmarray = "";
  6110. dispflagarray = "";
  6111. } else {
  6112. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec_recalc1", "");
  6113. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec_recalc2", "");
  6114. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", "");
  6115. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/dispddarray", "");
  6116. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/disptmarray", "");
  6117. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/dispflagarray", "");
  6118. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/todaydrugtimes", ""); //--(20080920)
  6119. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/antiastrids", "");
  6120. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/antiastrnms", "");
  6121. }
  6122. }
  6123. }
  6124. /**
  6125. * @group :
  6126. * @ver : 2008.06.19
  6127. * @by : 김보성
  6128. * @---------------------------------------------------
  6129. * @type : function
  6130. * @access : public
  6131. * @desc : 반환사유내역등록기능
  6132. * @param :
  6133. * @param :
  6134. * @return :
  6135. * @---------------------------------------------------
  6136. */
  6137. function fnEndddSave() {
  6138. var sPathSave = "/root/send/savedata/drugreportinfo"; //저장원본
  6139. var sPathEndResult = "/root/endsave/endresult"; //enddd 확인 결과(결과)
  6140. var sPathEndSave = "/root/endsave/endinfo"; //반환사유정보생성path
  6141. var sRows = getNodesetCount(sPathSave); //저장원본총갯수
  6142. var sRowsEnd = 0;
  6143. var sTempExecdd = "";
  6144. var sinstcd = getUserInfo("dutplceinstcd");
  6145. var sEndFlag = false;
  6146. var sprcpdd = "";
  6147. var sprcpno = "";
  6148. var sprcphistno = "";
  6149. var sexecprcpno = "";
  6150. var sexecprcpuniqno = "";
  6151. var sinstcd = "";
  6152. var sioflag = "";
  6153. var enddd = ""; //(20080731)
  6154. var endddflag = true; //(20080820) 처음만 물어본다.
  6155. var rtnstat = "";
  6156. model.removeNodeset(sPathEndSave);
  6157. model.makeNode(sPathEndSave);
  6158. for (var row=1;row<=sRows;row++) {
  6159. ////////////alert (sRows + "/" + row);
  6160. sTempExecdd = model.getValue(sPathSave+ "[" + row + "]/execcarestatcd");
  6161. sEndFlag = false;
  6162. //간호Acting진행상태(N(미확인)/R(정상투약)/P(투약X-반환가능)/I(투약X-반환불가)/L(퇴원당일 남은약)
  6163. //Execcarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + forarr[k] + "]/execcarestatcd");
  6164. //-------------------------------------------------------------------------
  6165. //ACTING된후 미확인으로 전환되거나, 투약X-반환가능인경우 ACTING이 취소된다
  6166. //마감이 되어 있으면 사유팝업을 이용한다.
  6167. //-------------------------------------------------------------------------
  6168. ////////////alert(sTempExecdd);
  6169. if ( sTempExecdd == "N" || sTempExecdd == "P") {
  6170. // <pastexecdd>20080618</pastexecdd> //exip의 실시일자
  6171. // <medrexecdd>20080617</medrexecdd> //medr의 투약일자(현재시점:20080619에서는 투약일자=실시일자이다.
  6172. sprcpdd = model.getValue(sPathSave+ "[" + row + "]/prcpdd");
  6173. sprcpno = model.getValue(sPathSave+ "[" + row + "]/prcpno");
  6174. sprcphistno = model.getValue(sPathSave+ "[" + row + "]/prcphistno");
  6175. sexecprcpno = model.getValue(sPathSave+ "[" + row + "]/execprcpno");
  6176. sinstcd = getUserInfo("dutplceinstcd");
  6177. sioflag = "I";
  6178. sTempExecdd = model.getValue(sPathSave+ "[" + row + "]/pastexecdd"); //---------(20080820)
  6179. ////////////alert(sTempExecdd);
  6180. //acting된것
  6181. if (sTempExecdd != "00000000" ) {
  6182. //현재시점의 마감을 확인한다.
  6183. model.removeNodeset(sPathEndCond);
  6184. model.makeNode(sPathEndCond);
  6185. //model.removeNodeset(sPathEndResult+"/enddd");
  6186. //model.makeNode(sPathEndResult+"/enddd");
  6187. model.makeValue(sPathEndCond + "/prcpdd", sprcpdd);
  6188. model.makeValue(sPathEndCond + "/prcpno", sprcpno);
  6189. model.makeValue(sPathEndCond + "/prcphistno", sprcphistno);
  6190. model.makeValue(sPathEndCond + "/execprcpno", sexecprcpno);
  6191. model.makeValue(sPathEndCond + "/instcd", sinstcd);
  6192. model.makeValue(sPathEndCond + "/ioflag", sioflag);
  6193. submit("TRMNR00610");
  6194. ////////////alert(model.getValue(sPathEndResult + "/enddd"));
  6195. /*
  6196. if ((model.getValue(sPathEndResult + "/enddd") == "00000000") ||
  6197. (model.getValue(sPathEndResult + "/enddd") == "") ||
  6198. (model.getValue(sPathEndResult + "/enddd") == "-")) {
  6199. */
  6200. //--------test(20080731)
  6201. enddd = model.getValue(sPathEndResult + "/enddd");
  6202. enddd = enddd.substr(0,8);
  6203. ////////////alert("마감일자:" + enddd);
  6204. //return
  6205. //----------------------
  6206. if ( enddd == "99991231") {
  6207. sEndFlag = false;
  6208. } else {
  6209. sEndFlag = true;
  6210. }
  6211. }
  6212. if ( sEndFlag ) {
  6213. //check: acting된것인데, enddd가 있는경우에 미확인으로 처리할경우인지를 확인해야함
  6214. sRowsEnd++;
  6215. model.removeNodeset(sPathEndSave);
  6216. model.makeNode(sPathEndSave);
  6217. model.makeValue(sPathEndSave+"/list/prcpdd", sprcpdd );
  6218. model.makeValue(sPathEndSave+"/list/prcpno", sprcpno );
  6219. model.makeValue(sPathEndSave+"/list/prcphistno", sprcphistno );
  6220. model.makeValue(sPathEndSave+"/list/execprcpno", sexecprcpno );
  6221. model.makeValue(sPathEndSave+"/list/instcd", sinstcd );
  6222. model.makeValue(sPathEndSave+"/list/ioflag", sioflag );
  6223. ////////////alert("반환사유 테스트");
  6224. if (getNodesetCount (sPathEndSave+"/list") > 0 ) {
  6225. //-------------------------
  6226. //처음만 물어본다.
  6227. if ( endddflag == true) {
  6228. //if (messageBox("이미 마감된 투약처방입니다. 정말 취소 ","Q003","") != 6) {
  6229. if (messageBox("저장대상 자료중 이미 마감된 투약처방이 존재합니다. 정말 취소작업을 ","Q003","") != 6) {
  6230. return false;
  6231. } else {
  6232. endddflag = false;
  6233. }
  6234. }
  6235. //-------------------------
  6236. modal("SPPAS03000", "2", "100", "100", "SPPAS03000", sPathEndSave, "root/target",
  6237. "left:100; top:100; width:400; height:400; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;", false);
  6238. model.removeNodeset(sPathEndSave);
  6239. }
  6240. }
  6241. }
  6242. }
  6243. return true;
  6244. }
  6245. /**
  6246. * @group :
  6247. * @ver : 2008.08.01
  6248. * @by : 김보성
  6249. * @---------------------------------------------------
  6250. * @type : function
  6251. * @access : public
  6252. * @desc : worklist 호출
  6253. * @param :
  6254. * @param :
  6255. * @return :
  6256. * @---------------------------------------------------
  6257. */
  6258. //------------------(20080801)
  6259. function fnWorkListCall() {
  6260. var sWardCd = model.getValue("/root/main/cond/wardcd");
  6261. //응급실 환자 투약기록 화면을 통해서 투약워크리스트 띄울 경우 roomcd에 베드 정보를 가져가는 오류사항 수정_20091109_SMY
  6262. //var sRoomCd = model.getValue("/root/main/patinfo/roomcd");
  6263. var sRoomCd = model.getValue("/root/main/cond/roomcd");
  6264. var sPid = model.getValue("/root/main/patinfo/pid");
  6265. var sPatNm = model.getValue("/root/main/patinfo/patnm");
  6266. var sDd = model.getValue("/root/main/cond/orddd");
  6267. if (sPid == "") {
  6268. messageBox("환자가 선택되지 않았습니다.","E999");
  6269. return;
  6270. }
  6271. setParameter("SMMNR06300_Param", sWardCd);
  6272. setParameter("SMMNR06300_Param1", sRoomCd);
  6273. setParameter("SMMNR06300_Param2", sPid);
  6274. setParameter("SMMNR06300_Param3", sPatNm);
  6275. setParameter("SMMNR06300_Param4", sDd);
  6276. //20110209 경북대 : 구역정보추가
  6277. setParameter("SMMNR06300_Zonecd", model.getValue("/root/main/cond/zonecd"));
  6278. ////////////alert(sPid);
  6279. //------------------------(20080910)
  6280. //그리드를 선택한 자료를 worklist에 전달한다.
  6281. var sCnt = 5;
  6282. var sParamNm = "";
  6283. var sParamValue = "";
  6284. //var sPath = "/root/main/warddruginfo/warddruglist";
  6285. setParameter("SMMNR06300_Param5", "N0");
  6286. for (var row =1;row < (grd_druglist.rows-1);row++) {
  6287. sParamValue = "";
  6288. if (model.getValue(xWardDrugListPath + "[" + row + "]/check") == "true"){
  6289. sParamValue = model.getValue(xWardDrugListPath + "[" + row + "]/prcpdd");
  6290. sParamValue += "/" + model.getValue(xWardDrugListPath + "[" + row + "]/prcpno");
  6291. sCnt ++;
  6292. setParameter("SMMNR06300_Param5", "Y"+sCnt);
  6293. sParamNm = "SMMNR06300_Param" + sCnt;
  6294. setParameter(sParamNm, sParamValue);
  6295. }
  6296. }
  6297. //------------------------(20080910)
  6298. //modal("SMMNR06300");
  6299. modal("SMMNR06300", 1);
  6300. }
  6301. //------------------(20080801)
  6302. //------------------(20080829)
  6303. //TEST
  6304. // 투약기록 통합기록을 위한 자료 추출질의문 -- 작업 중(LOOP만큼 호출할것)
  6305. function fnSignSaveCall(workflag) {
  6306. var sPathSign = "/root/signinfo";
  6307. model.resetInstanceNode(sPathSign + "/reqsigncond");
  6308. var spid = "13573600"; //desc="등록번호"(필수)
  6309. var sinstcd = "012"; //desc="기관코드"(사용X)
  6310. var sindd = "20081003"; //desc="입원일자"(필수)
  6311. var scretno = "1"; //desc="생성번호"(사용X)
  6312. var sprcpdd = ""; //desc="처방일자"(PRN시 필수아닌것 같음)
  6313. var sprcpno = ""; //desc="처방번호"(확인사항)
  6314. var sworkdd = "20081215"; //desc="투약일" (일자그룹일때만 (필수))
  6315. var slistflag = "90"; //desc="작업구분"(필수)
  6316. var snursnm = "간호사명"; //desc="간호사명추가"(필수)
  6317. var shngnm = "환자명"; //desc="환자명추가" (필수)
  6318. var smedrexecdd = ""; //desc="화면에서저장할투약일자"(사용X)
  6319. var smedrexectm = ""; //desc="화면에서저장할투약시간"(사용X)
  6320. model.setValue(sPathSign + "/reqsigncond/pid" ,spid ); //desc="등록번호"
  6321. model.setValue(sPathSign + "/reqsigncond/instcd" ,sinstcd ); //desc="기관코드"
  6322. model.setValue(sPathSign + "/reqsigncond/indd" ,sindd ); //desc="입원일자"
  6323. model.setValue(sPathSign + "/reqsigncond/cretno" ,scretno ); //desc="생성번호"
  6324. model.setValue(sPathSign + "/reqsigncond/prcpdd" ,sprcpdd ); //desc="처방일자"
  6325. model.setValue(sPathSign + "/reqsigncond/prcpno" ,sprcpno ); //desc="처방번호"
  6326. model.setValue(sPathSign + "/reqsigncond/workdd" ,sworkdd ); //desc="투약일"
  6327. model.setValue(sPathSign + "/reqsigncond/listflag" ,slistflag ); //desc="작업구분"
  6328. model.setValue(sPathSign + "/reqsigncond/nursnm" ,snursnm ); //desc="간호사명추가"
  6329. model.setValue(sPathSign + "/reqsigncond/hngnm" ,shngnm ); //desc="환자명추가"
  6330. model.setValue(sPathSign + "/reqsigncond/medrexecdd" ,smedrexecdd); //desc="화면에서저장할투약일자"
  6331. model.setValue(sPathSign + "/reqsigncond/medrexectm" ,smedrexectm); //desc="화면에서저장할투약시간"
  6332. var sPathSign = "/root/signinfo";
  6333. model.removenode(sPathSign + "/signdruginfo/signdruglist");
  6334. submit("TRMNR00609");
  6335. }
  6336. //------------------(20080829)
  6337. /**
  6338. * @group :
  6339. * @ver : 2008.08.31
  6340. * @by : 김보성
  6341. * @---------------------------------------------------
  6342. * @type : function
  6343. * @access : public
  6344. * @desc : 투약기록 관련 인증저장(interface제공한 web에서 사용)(iprc단위 1개 처리용)
  6345. * : 따라서 여러개의 iprc이면 n번 호출해야한다.
  6346. * @param :
  6347. * @return :
  6348. * @---------------------------------------------------
  6349. */
  6350. /* // TEST용
  6351. function fnSignSaveWork() {
  6352. var sSignPath = "/root/signinfo/signdruginfo/signdruglist";
  6353. var sSignPathCount = getNodesetCount(sSignPath);
  6354. var sPathSignSave = "/root/signinfo/signsave/signdata";
  6355. if ( sSignPathCount <= 0 ) {
  6356. messageBox("자료가 존재하지 않습니다. ","E999");
  6357. return;
  6358. }
  6359. model.removenode("/root/send/savedata");
  6360. for(var j = 1; j <= getNodesetCount(sSignPath); j++){
  6361. sSignRow= j; //전역변수(프로그램내)
  6362. if(Sign.signprocess() == false){//인증저장 데이터 생성fMake_SignData 호출
  6363. return;
  6364. }
  6365. ////////////alert("j=" + j);
  6366. var temppid = model.getValue(sSignPath + "[j]/pid"); //pid
  6367. var temporddd = model.getValue(sSignPath + "[j]/orddd"); //입원일자
  6368. var tempsignno = ""; //서명번호
  6369. var tempcretno = model.getValue(sSignPath + "[j]/cretno"); //생성번호
  6370. var temporddeptcd = model.getValue(sSignPath + "[j]/orddeptcd"); //진료부서코드
  6371. var temporddrid = model.getValue(sSignPath + "[j]/orddrid"); //진료의사id
  6372. model.makeValue(sPathSignSave + "[j-1]/pid", temppid); //pid
  6373. model.makeValue(sPathSignSave + "[j-1]/orddd", temporddd); //입원일자
  6374. model.makeValue(sPathSignSave + "[j-1]/signno", tempsignno); //서명번호
  6375. model.makeValue(sPathSignSave + "[j-1]/cretno", tempcretno); //생성번호
  6376. model.makeValue(sPathSignSave + "[j-1]/recdd", getCurrentDate()); //실제기록이 이루어진 기록일자
  6377. model.makeValue(sPathSignSave + "[j-1]/rectm", getCurrentTime()); //실제기록이 이루어진 기록시간
  6378. model.makeValue(sPathSignSave + "[j-1]/recsaveflag", "Y"); //전자서명인적정보변경여부
  6379. model.makeValue(sPathSignSave + "[j-1]/signflag", "02"); //서명자료구분(02:간호)
  6380. model.makeValue(sPathSignSave + "[j-1]/signgenrflag", "I"); //외래/입원구분
  6381. model.makeValue(sPathSignSave + "[j-1]/formcd", "0000002476"); //투약기록 서식번호
  6382. model.makeValue(sPathSignSave + "[j-1]/orddeptcd", temporddeptcd); //진료부서코드
  6383. model.makeValue(sPathSignSave + "[j-1]/orddrid", temporddrid); //진료부서ID
  6384. model.makeValue(sPathSignSave + "[j-1]/signbfcnts", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  6385. model.makeValue(sPathSignSave + "[j-1]/signaftcnts", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  6386. }
  6387. }
  6388. */
  6389. //-----------------------------
  6390. //TEST 일자별 인증정보 생성하기
  6391. //-----------------------------
  6392. function fnSignSaveWork() {
  6393. var signDate = "20081212"
  6394. var sPathSign = "/root/signinfo";
  6395. var spid = "13573600"; //등록번호 (필수)
  6396. var sinstcd = "";//model.getValue("/root/main/wardpatinfo/wardpatlist/instcd"); //기관코드
  6397. var sindd = "20081003"; //입원일자 (필수)
  6398. var scretno = "2"; //생성번호
  6399. var sprcpdd = ""; //처방일자 (PRN시 필수)
  6400. var sprcpno = ""; //처방번호 (확인사항)
  6401. var sworkdd = "20081215"; //model.getValue("/root/main/cond/orddd"); //투약일(일자그룹일때만 (필수)
  6402. var slistflag = "90"; //고정 //작업구분 (필수)
  6403. var snursnm = "간호사명"; //간호사명추가 (필수)
  6404. var shngnm = "이정희" //환자명추가 (필수)
  6405. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  6406. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  6407. model.setValue(sPathSign + "/reqsigncond/pid" ,spid ); //desc="등록번호"
  6408. model.setValue(sPathSign + "/reqsigncond/instcd" ,sinstcd ); //desc="기관코드"
  6409. model.setValue(sPathSign + "/reqsigncond/indd" ,sindd ); //desc="입원일자"
  6410. model.setValue(sPathSign + "/reqsigncond/cretno" ,scretno ); //desc="생성번호"
  6411. model.setValue(sPathSign + "/reqsigncond/prcpdd" ,sprcpdd ); //desc="처방일자"
  6412. model.setValue(sPathSign + "/reqsigncond/prcpno" ,sprcpno ); //desc="처방번호"
  6413. model.setValue(sPathSign + "/reqsigncond/workdd" ,sworkdd ); //desc="투약일"
  6414. model.setValue(sPathSign + "/reqsigncond/listflag" ,slistflag ); //desc="작업구분"
  6415. model.setValue(sPathSign + "/reqsigncond/nursnm" ,snursnm ); //desc="간호사명추가"
  6416. model.setValue(sPathSign + "/reqsigncond/hngnm" ,shngnm ); //desc="환자명추가"
  6417. model.setValue(sPathSign + "/reqsigncond/medrexecdd" ,smedrexecdd); //desc="화면에서저장할투약일자"
  6418. model.setValue(sPathSign + "/reqsigncond/medrexectm" ,smedrexectm); //desc="화면에서저장할투약시간"
  6419. var pFlag = "Drug"; //저장구분 (Drug : 투약기록)
  6420. var pNode1 = ""; //조회할 조건 PATH(의미없음)
  6421. var pNode2 = "/root/signinfo/signdruginfo/signdruglist"; //Return 리스트 PATH
  6422. var pIoflag = "I"; //---(20080917)
  6423. fCare_SignNode(pFlag, pNode1, pNode2,spid,sindd,scretno,pIoflag);
  6424. }
  6425. //------------------------(20080902)
  6426. //일자별 인증정보를 묶을 일자를 찾는다
  6427. //넣어야 할지는 판단한다.
  6428. function signdayFind(signDates,findDate) {
  6429. var sreturn = false;
  6430. if (findDate == "00000000" || findDate == "") {
  6431. } else {
  6432. ////////////alert("signDates.length:"+ signDates.length);
  6433. for (var i=0;i<signDates.length;i++) {
  6434. ////////////alert("비교:" + signDates[i] + "/" + findDate);
  6435. sreturn = true;
  6436. if ( signDates[i] == findDate) {
  6437. sreturn = false;
  6438. break;
  6439. }
  6440. }
  6441. }
  6442. return sreturn;
  6443. }
  6444. //------------------------(20080902)
  6445. /**
  6446. * @group :
  6447. * @ver : 2008.10.10
  6448. * @by : 김보성
  6449. * @---------------------------------------------------
  6450. * @type : function
  6451. * @access : public
  6452. * @desc : 투약내역 리스트 정리
  6453. * @param :
  6454. * @param :
  6455. * @return :
  6456. * @---------------------------------------------------
  6457. */
  6458. //---------------(20081015)진행중 사용하지말것
  6459. function fnClearGrid() {
  6460. model.resetInstanceNode("/root/main/patinfo/roomcd");
  6461. model.resetInstanceNode("/root/main/patinfo/pid");
  6462. model.resetInstanceNode("/root/main/patinfo/patnm");
  6463. model.resetInstanceNode("/root/main/patinfo/sexage");
  6464. if(screen_mode == "pat"){
  6465. fClickDrugList("drg", 0);
  6466. }else if(screen_mode == "act"){
  6467. fClickDrugList("act", 0);
  6468. }else{}
  6469. model.refresh();
  6470. }
  6471. //---------------(20081010)
  6472. //---------------(20081014)
  6473. /*
  6474. 20081014
  6475. validate
  6476. hidden의 instance에 있는 drugtmspec 의 항목의 split 수와 calctims수를 확인한다.
  6477. */
  6478. function fndrugcalcCheck() {
  6479. var drugtmspec = "";
  6480. var calctims = "";
  6481. var validateYN = "";
  6482. var prcpdd = "";
  6483. var prcpno = "";
  6484. var prcphistno = "";
  6485. var execprcpno = "";
  6486. var spid = "";
  6487. var prcpcd = "";
  6488. var mthdcd = "";
  6489. var execprcpuniqno = "";
  6490. var timscnt = 0;
  6491. var prcptimscalc= "";
  6492. var drugerrmsg = "";
  6493. var drugerrPath = "/root/drugerrinfo";
  6494. model.removenode(drugerrPath);
  6495. var drugerrcnt = 0;
  6496. for(var i = 1; i<= getNodesetCount(xHiddenWardDrugPath); i++){
  6497. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec");
  6498. calctims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/calctims");
  6499. prcpdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpdd");
  6500. prcpno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpno");
  6501. prcphistno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno");
  6502. execprcpno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/execprcpno");
  6503. execprcpuniqno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/execprcpuniqno");
  6504. spid = model.getValue(xHiddenWardDrugPath + "[" + i + "]/pid");
  6505. prcpcd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpcd");
  6506. mthdcd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/mthdcd");
  6507. prcptims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcptims");
  6508. var execcarestatcd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/execcarestatcd");
  6509. var prcphistcd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistcd");
  6510. var fstrgstdt = model.getValue(xHiddenWardDrugPath + "[" + i + "]/fstrgstdt");
  6511. var orddrnm = model.getValue(xHiddenWardDrugPath + "[" + i + "]/orddrnm");
  6512. var indd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/indd");
  6513. var cretno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/cretno");
  6514. var prcpclscd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpclscd");
  6515. var wardcd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/wardcd"); //(20081117)
  6516. validateYN = "Y"; //정상자료
  6517. timscnt = drugtmspec.split(" ").length;
  6518. //-------------------(20081105)
  6519. drugtmspec = fntrim(drugtmspec);
  6520. if ( drugtmspec == "") {
  6521. //-------------------(20081105)
  6522. validateYN = "N"; //이상자료
  6523. timscnt = 0;
  6524. }
  6525. if (timscnt != calctims) validateYN = "N"; //이상자료
  6526. //alert( timscnt + "/" + calctims + "/" +validateYN + "/" + drugtmspec + "/");
  6527. if (validateYN == "N") {
  6528. if ( drugtmspec == "") {
  6529. drugerrmsg += "용법(" + mthdcd + ")의 횟수에 대한 시간대정보(" + drugtmspec + "없음)가 존재하지 않습니다("+ prcpcd +") \n"
  6530. } else {
  6531. drugerrmsg += "용법(" + mthdcd + ")의 횟수에 대한 시간대정보갯수(" + timscnt + ")와 " +
  6532. " 처방("+ prcpcd + ")에 대한 횟수(" + prcptims + ")가 다릅니다. \n"
  6533. }
  6534. drugerrcnt ++;
  6535. model.makenode( drugerrPath+"/drugerrlist[" + drugerrcnt + "]");
  6536. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/prcpdd" ,prcpdd);
  6537. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/prcpno" ,prcpno);
  6538. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/prcphistno" ,prcphistno);
  6539. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/execprcpno" ,execprcpno);
  6540. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/execprcpuniqno" ,execprcpuniqno);
  6541. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/prcpcd" ,prcpcd);
  6542. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/drugtmspec" ,drugtmspec);
  6543. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/execcarestatcd" ,execcarestatcd);
  6544. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/prcphistcd" ,prcphistcd);
  6545. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/exipfstrgstdt" ,fstrgstdt);
  6546. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/orrdnm" ,orddrnm);
  6547. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/prcpclscd" ,prcpclscd);
  6548. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/pid" ,spid);
  6549. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/indd" ,indd);
  6550. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/cretno" ,cretno);
  6551. model.makevalue(drugerrPath+"/drugerrlist[" + drugerrcnt + "]/wardcd" ,wardcd);//(20081117)
  6552. }
  6553. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/validateyn1", validateYN);
  6554. }
  6555. if (drugerrmsg != "") {
  6556. drugerrmsg += "" +
  6557. " \n" +
  6558. " 투약기준시간관리에서 용법에 대한 자료를 확인하십시오( " + drugerrcnt +" 건 )";
  6559. messageBox( "투약기준시간관리에 등록된 \n\n" + drugerrmsg ,"E999");
  6560. }
  6561. }
  6562. //---------------(20081014)
  6563. //fClickDrugListBefore(); //------------(20081031)
  6564. //fClickDrugListAfter(); //------------(20081031)
  6565. //-------------------(20081031)
  6566. function fClickDrugListBefore() {
  6567. grd_druglist.visible = false;
  6568. bolall.visible = false;
  6569. //grpalert.visible = true;
  6570. callLoadingWindow("");
  6571. }
  6572. function fClickDrugListAfter() {
  6573. grd_druglist.visible = true;
  6574. bolall.visible = true;
  6575. removeLoadingWindow();
  6576. //--------------(20081121)
  6577. //숨겨진 상태에서는 포커스가 설정되지 않는다.
  6578. //저장전 위치로 저장이후 재조회시 위치이동시킴
  6579. if (toprowflag == "Y") {
  6580. if (grd_druglist.rows > toprow) {
  6581. grd_druglist.toprow = toprow;
  6582. }
  6583. toprowflag = "N";
  6584. }
  6585. //--------------(20081121)
  6586. }
  6587. //--------원무팀의 입원등록에서 사용하는 것 이용함
  6588. function callLoadingWindow(msg){
  6589. //20080703 이동식 추가
  6590. //환자정보 조회 중 상태 표시
  6591. body.createChild("xforms:iviewer", "id:ivr_progress; src:../../../com/commonweb/xrw/SPZZZ00400_로딩중화면.xrw; left:435px; top:339px; width:330px; height:120px;");
  6592. var ivrObjt = document.all("ivr_progress");
  6593. if( msg == '' || msg == '-' ){
  6594. msg = "투약기록 조회 중 입니다...";
  6595. }
  6596. ivrObjt.model.setValue("/root/main/msg", msg);
  6597. ivrObjt.model.refresh();
  6598. }
  6599. function removeLoadingWindow(){
  6600. //20080703 이동식 추가
  6601. //환자정보 조회 중 상태 표시 지우기
  6602. body.removeChild("ivr_progress");
  6603. }
  6604. function WaitLoadingWindow(idx) {
  6605. var msg = "투약기록 조회 중 입니다...";
  6606. //var msg = "투약기록 조회(" + idx + ") 중 입니다...";
  6607. var ivrObjt = document.all("ivr_progress");
  6608. model.setFocus("ivr_progress");
  6609. ivrObjt.model.setFocus("caption75");
  6610. ivrObjt.model.setValue("/root/main/msg", msg);
  6611. ivrObjt.model.refresh();
  6612. //model.setFocus("output33");
  6613. model.refresh();
  6614. }
  6615. //-------------------(20081031)
  6616. //-------------------(20081105)
  6617. function fntrim(tmpValue) {
  6618. for(;tmpValue.indexOf(" ")!= -1;) {
  6619. tmpValue = tmpValue.replace(" ","");
  6620. }
  6621. return tmpValue;
  6622. }
  6623. //-------------------(20081105)
  6624. //-------------------(20081211)
  6625. // tmpvalue : 원본 문자열
  6626. // str1 : 찾고자 하는 문자열
  6627. // str2 : 바꾸고자 문자열
  6628. function fnReplace(tmpValue,str1,str2) {
  6629. for(;tmpValue.indexOf(str1)!= -1;) {
  6630. tmpValue = tmpValue.replace(str1,str2);
  6631. }
  6632. return tmpValue;
  6633. }
  6634. //-------------------(20081211)
  6635. //--------------------(20081112)
  6636. //sDigit 에서 반올림
  6637. function fnRound(sValue,sDigit) {
  6638. var rtnValue ;
  6639. var stemp = Math.pow(10,sDigit);
  6640. rtnValue = sValue;
  6641. rtnValue = rtnValue * stemp;
  6642. rtnValue = rtnValue / stemp;
  6643. rtnValue = Math.round(rtnValue);
  6644. return rtnValue;
  6645. }
  6646. //--------------------(20081112)
  6647. /**
  6648. * @group :
  6649. * @ver : 2010.03.16
  6650. * @by : 김진아
  6651. * @-----------------------------------------------------------------
  6652. * @type : function
  6653. * @access : public
  6654. * @desc : 라벨출력정보 저장(수액,주사라벨 출력시 호출한다.)
  6655. * @param : labelflag 라벨구분자(injlabel:주사라벨/)
  6656. patgrdrow 환자리스트 그리드에서 선택된 로우
  6657. actgrdrow 미투약리스트 그리드에서 선택된 로우
  6658. * @return :
  6659. * @-----------------------------------------------------------------
  6660. */
  6661. function fsetLabelPrntInfo(labelflag, patgrdrow, actgrdrow) {
  6662. switch (labelflag) {
  6663. case "injlabel":
  6664. model.removeNodeset("/root/send/savedata/labelprntinfo");
  6665. model.makeNode("/root/send/savedata/labelprntinfo");
  6666. model.copyNode("/root/send/savedata/labelprntinfo", "/root/hidden/medicard8");
  6667. break;
  6668. case "hydlabel":
  6669. model.removeNodeset("/root/send/savedata/labelprntinfo");
  6670. model.makeNode("/root/send/savedata/labelprntinfo");
  6671. model.copyNode("/root/send/savedata/labelprntinfo", "/root/send/medicard8");
  6672. break;
  6673. }
  6674. submit("TXMNR00602");
  6675. fClickDrugListBefore(); //------------(20081031)
  6676. if(screen_mode == "pat"){
  6677. grd_patlist.row = patgrdrow;
  6678. fClickDrugList(screen_mode, grd_patlist.row);
  6679. }else if(screen_mode == "act"){
  6680. grd_actlist.row = actgrdrow;
  6681. fClickDrugList(screen_mode, grd_actlist.row);
  6682. fGetActList();
  6683. }else{}
  6684. fClickDrugListAfter(); //------------(20081031)
  6685. }
  6686. /**
  6687. * @group :
  6688. * @ver : 2007.06.08
  6689. * @by : 김보성
  6690. * @---------------------------------------------------
  6691. * @type : function
  6692. * @access : public
  6693. * @desc : ER의 응급 리스트 조회 CareCom.js로 빼냄
  6694. * @param :
  6695. * @param :
  6696. * @return :
  6697. * @---------------------------------------------------
  6698. */
  6699. /*function fGetZoneList(){
  6700. model.removeNodeset("/root/send/reqdata");
  6701. model.makeNode("/root/send/reqdata");
  6702. model.copynode("/root/send/reqdata", xCondPath);
  6703. submit("TRMNR06302");
  6704. }*/
  6705. function fnZoneDisp(pFlag) {
  6706. //응급의료센터(2280200000)인 경우
  6707. //병동정보대신에 구역정보가 보임)(20080620)
  6708. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+cmb_ward.value+"']/cdid")) ) {
  6709. caption18.visible = false;
  6710. cmb_room.visible = false;
  6711. cap_Zone.visible = true;
  6712. cmb_Zone.visible = true;
  6713. var zonecd = model.getValue("/root/main/paminfo/pamlist/sectioncd");
  6714. if( !isNull(zonecd) && zonecd != "-" ){
  6715. cmb_Zone.value = model.getValue("/root/main/paminfo/pamlist/sectioncd");
  6716. } else {
  6717. cmb_Zone.value = "-";
  6718. }
  6719. } else {
  6720. caption18.visible = true;
  6721. cmb_room.visible = true;
  6722. cap_Zone.visible = false;
  6723. cmb_Zone.visible = false;
  6724. if ( pFlag != "init"){
  6725. fGetRoomList();
  6726. model.makeValue("/root/main/cond/pid", "");
  6727. model.makeValue("/root/main/cond/hngnm", "");
  6728. model.makeValue("/root/main/cond/indd", "");
  6729. model.makeValue("/root/main/cond/cretno", "");
  6730. model.makeValue("/root/main/cond/roomcd", "");
  6731. model.makeValue("/root/main/cond/settingrnid", "");
  6732. model.makeValue("/root/main/cond/zonecd", "");
  6733. model.removeNodeSet("/root/hidden/warddruginfo");
  6734. model.removeNodeSet("/root/main/warddruginfo");
  6735. grd_druglist.rebuild();
  6736. }
  6737. }
  6738. }
  6739. function fmisetting(){
  6740. var setid = getUserId();
  6741. var setdeptcd = getUserInfo("dutplcecd");
  6742. //model.removeNodeset("/root/send");
  6743. model.removeNodeset("/root/hidden/setting/settingrn");
  6744. model.makeValue("/root/temp/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  6745. //내환자세팅한 간호사 조회
  6746. if(submit("TRMNW10910")){
  6747. model.setValue("/root/main/cond/settingrnid", "");
  6748. for(i = 1; i <= getNodesetCount("/root/init/settinginfo/settingrn"); i++ ) {
  6749. if (model.getValue("/root/init/settinginfo/settingrn[" + i + "]/settingrnid") == setid) {
  6750. model.setValue("/root/main/cond/settingrnid", setid);
  6751. }
  6752. }
  6753. }
  6754. model.refresh();
  6755. return;
  6756. }
  6757. // 액팅 심사기준 점검
  6758. function fJudgCheck(pid, indd, cretno, prcpcd, prcpno, execprcpno, execdd, execcarestatcd) {
  6759. // 투약상태가 '미확인', '투약X-반환가능'일 경우 pass
  6760. if (execcarestatcd == "N" || execcarestatcd == "P") {
  6761. } else {
  6762. //저장된 acting 갯수
  6763. var curdate = getCurrentDate();
  6764. model.removeNodeSet("/root/send/judginfo");
  6765. model.makeValue("/root/send/judginfo/pid", pid);
  6766. model.makeValue("/root/send/judginfo/indd", indd);
  6767. model.makeValue("/root/send/judginfo/cretno", cretno);
  6768. model.makeValue("/root/send/judginfo/prcpcd", prcpcd);
  6769. model.makeValue("/root/send/judginfo/prcpno", prcpno);
  6770. model.makeValue("/root/send/judginfo/execprcpno", execprcpno);
  6771. model.makeValue("/root/send/judginfo/execdd", execdd);
  6772. model.makeValue("/root/send/judginfo/workdd", curdate);
  6773. model.makeValue("/root/send/judginfo/sdate", curdate);
  6774. model.makeValue("/root/send/judginfo/edate", curdate);
  6775. submit("TRMNR00612");
  6776. var rsltCalcCD = model.getValue("/root/main/judginfo/judglist/calcscorcd");
  6777. var rsltPrcpnm = model.getValue("/root/main/judginfo/judglist/prcpnm");
  6778. var rsltDayno = model.getValue("/root/main/judginfo/judglist/drugdayno");
  6779. var rsltTims = eval(model.getValue("/root/main/judginfo/judglist/drugtims"));
  6780. var rsltActcnt = eval(model.getValue("/root/main/judginfo/judglist/actcnt"));
  6781. //화면 상 지정된 acting 갯수
  6782. for(var i = 1; i <= getNodesetCount(xWardDrugListPath); i++){
  6783. //점검하려는 처방코드 검색
  6784. var chk_prcpcd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd");
  6785. var chk_prcpno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpno");
  6786. if (chk_prcpcd == prcpcd) {
  6787. var cnt = getNodesetCount(xWardDrugListPath + "[" + i + "]/for");
  6788. for(var j = 1; j <= cnt; j++){
  6789. chk_iudflag = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/iudflag");
  6790. chk_execcarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execcarestatcd");
  6791. chk_execprcpno = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/execprcpno");
  6792. if (prcpno == chk_prcpno && execprcpno == chk_execprcpno) {
  6793. //점검할 대상은 제외
  6794. } else {
  6795. //변화가 있는 값이랑 비교
  6796. if (chk_iudflag != '-') {
  6797. //바꾸려는 값이 계산되는 값인 경우
  6798. if (chk_execcarestatcd == "N" || chk_execcarestatcd == "P") {
  6799. } else {
  6800. rsltActcnt ++;
  6801. }
  6802. }
  6803. }
  6804. }
  6805. }
  6806. }
  6807. if (rsltTims <= rsltActcnt) {
  6808. messageBox("Acting 횟수가 심사 기준을 초과하였습니다.\r\n\r\n" +
  6809. "* 처방명: " + rsltPrcpnm + " [" + rsltCalcCD + "]\r\n" +
  6810. "* 심사 기준 횟수: " + rsltTims + "회/" + rsltDayno + "일\r\n" +
  6811. "* 기 Acting 횟수: " + rsltActcnt + "회/" + curdate.substr(0, 4) + "-" + curdate.substr(4, 2) + "-" + curdate.substr(6, 2) + " (투약기록 실제시간 기준)\r\n\r\n" +
  6812. "※ Acting 심사 기준을 확인하시려면 '심사기준' 버튼을 클릭하세요.", "I999");
  6813. }
  6814. }
  6815. }
  6816. function fChkPrcpStat() {
  6817. model.removeNodeset("/root/send/req");
  6818. var row = grd_druglist.row;
  6819. var prcpno = model.getValue(grd_druglist.nodeset + "[" + (row-1) + "]/prcpno");
  6820. var prcpdd = model.getValue(grd_druglist.nodeset + "[" + (row-1) + "]/prcpdd");
  6821. var dccountyn = model.getValue(grd_druglist.nodeset + "[" + (row-1) + "]/dccountyn");
  6822. if(dccountyn == "" || dccountyn == null) {
  6823. dccountyn = "N"
  6824. }
  6825. model.makeValue("/root/send/req/prcpno", prcpno);
  6826. model.makeValue("/root/send/req/prcpdd", prcpdd);
  6827. submit("TRMNR00613", false);
  6828. var dccoutnyn2 = model.getValue("/root/temp/prcpinfo/prcplist/dccountyn");
  6829. if(dccoutnyn2 == "" || dccoutnyn2 == null) {
  6830. dccoutnyn2 = "N"
  6831. }
  6832. if(dccountyn != dccoutnyn2) {
  6833. messageBox("처방 상태가 변경되어 재조회됩니다.", "I");
  6834. fSearch();
  6835. return false;
  6836. }
  6837. return true;
  6838. }
  6839. function fChkPrcpStatAll() {
  6840. var prcpno;
  6841. var prcpdd;
  6842. var dccountyn;
  6843. var dccountyn2;
  6844. var prcpHeader = "prcpdd▦prcpno▩";
  6845. var prcpData = "";
  6846. model.removeNodeset("/root/send/req");
  6847. for(var i = grd_druglist.fixedRows; i < grd_druglist.rows; i++) {
  6848. prcpdd = model.getValue(grd_druglist.nodeset + "[" + (i-1) + "]/prcpdd");
  6849. prcpno = model.getValue(grd_druglist.nodeset + "[" + (i-1) + "]/prcpno");
  6850. prcpData += prcpdd + "▦"
  6851. + prcpno + "▩";
  6852. }
  6853. if(prcpData == "") {
  6854. return false;
  6855. }
  6856. model.makeValue("/root/send/req/prcplist", prcpHeader + prcpData);
  6857. submit("TRMNR00614", false);
  6858. var prcpdd2;
  6859. var prcpno2;
  6860. for(var i = grd_druglist.fixedRows; i < grd_druglist.rows; i++) {
  6861. prcpdd = model.getValue(grd_druglist.nodeset + "[" + (i-1) + "]/prcpdd");
  6862. prcpno = model.getValue(grd_druglist.nodeset + "[" + (i-1) + "]/prcpno");
  6863. prcpData += prcpdd + "▦"
  6864. + prcpno + "▩";
  6865. dccountyn = model.getValue(grd_druglist.nodeset + "[" + (i-1) + "]/dccountyn");
  6866. dccountyn2 = model.getValue("/root/temp/prcpinfo/prcplist[prcpdd='" + prcpdd + "' and prcpno='" + prcpno + "']/dccountyn");
  6867. if(dccountyn != dccountyn2) {
  6868. messageBox("처방 상태가 변경되어 재조회됩니다.", "I");
  6869. fSearch();
  6870. return false;
  6871. }
  6872. }
  6873. return true;
  6874. }