1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363 |
- /*function list
- copyNodeSet: NodeSet (child node를 포함하여 전체 nodeset을 복사한다.)Copy
- getNodeSetCnt: NodeSet의 최종길이를 구한다.
- addCopyNode: Source Node의 child node를 Destination의 node로 append한다.
- addCopyNodeset: Source Node의 child nodelist를 Destination의 nodelist로 append한다.
- rgstScrnEnvEstb: 진료대상자 리스트의 그리드 정보를 등록한다.
- setScrnEnvEstb: 화면 환경설정 적용
- isNumber: 숫자여부를 확인하여 return함
- addPrcp: 선택된 처방을 목적지에 보낸다. ( addPrcpDetl 이용 )
- addPrcpDetl: 선택된 처방을 목적지에 보낸다. ( 그룹처방일 경우 묶인 내용도 전송한다. )
- addPrcpSetValue: 처방main에 넘기기 전에 기본값을 setting한다.
- focusMain: 포커스를 메인으로 한다.
- appendChildPrcp: appendChild 공통함수로
- addDiagSetValue: 선택된 진단명을 진단 instance에처 맵핑한다.
- prcpGroupSrch: 그룹코드 M의 싱글코드 검색
- prcpDirecSrch: 지시처방 J의 싱글코드 검색
- makePrcpNm: 처방내역만들기
- fContPrcpDd: 지정일자처리(연속처방)
- fContPrcpDdInit: 지정일자초기화(연속처방)
- fPrcpHopeDd: 희망일자처리
- fDateFormat: 날짜모양바꾸기
- getArrayData: split을 이용한 배열값 가져오기
- reqGetDrList: 부서에 소속된 의사 조회
- reqGetDeptList: 부서코드, 부서명 조회
- reqGetWardList: 병동코드, 병동명 조회
- getArrayData: split을 이용한 배열값 가져오기
- fIsHangul: 데이터 한글인지 영문인지 구분해주는 함수
- fIvwDetlVwCom: 공통 상세보기
- compareNodeVal: 두 NodeList와 NodeValue값을 비교 결과에 따라 true, false를 return한다.
- reqGetRoomList: 병실코드, 병실명 조회
- reqPatInfo: 환자정보 조회
- fAltDrug: 대체약이 있을경우 팝업처리
- initScrnCol: 화면컬럼 조회 및 설정
- fPrcpSrchArg: 처방검색
- fPrcpModal: 팝업위치가 저장되지 않는 modaliss 팝업 띄우기
- fPrcpOpen: 팝업위치가 저장되지 않는 modal 팝업 띄우기
- getPrcpNodeListCSV: 노드리스트를 CSV로 반환한다.
- fSaveGridToExcel : 그리드 데이터 엑셀저장
- fSaveSign: Sing 데이터 저장 함수
- fGetPrcpCodeInfo: 처방 코드 정보를 조회 하는 함수 addPrcpSetValue()에서 값을 셋팅 할때 처방 코드별 참조자료를 셋팅 한다.
- mmofReqGetCnstTypeComboList : 협진분류콤보리스트 조회
- reqSetMonitoringLog: 속도체크를 위한 모니터링 로그 데이터 생성. 2013.06.27 엄영만
- */
- //변수선언
- var prcpnmCol = 5; //처방명 컬럼 index
- var prcpcdCol = 4; //처방명 컬럼 index
- var diagnmCol = 4; //처방명 컬럼 index
- var icd10cdCol = 3; //처방명 컬럼 index
- //2012.02.09 교육서버의 htmlwindow.DEVSystem 값을 true로 변경 함에 따라 같이 수정.
- //if (htmlwindow.DEVSystem != "true") {
- var signyn = "Y"; //전자서명 사용하는 check 서버 에러시 N으로 수정
- //} else {
- // var signyn = "N"; //전자서명 사용하는 check 서버 에러시 N으로 수정
- //}
- var volflag = "time"; //1일 총용량 구분
- var ocrcalcscorcd = ""; //OCR print
- var restantimicyn = ""; //제한항생제 저장
- var dietcnt = 0; //식이처방 조,중,식 추가row cnt
- var gridprcpsrchflag = "N"; //그리드 처방검색에서 앤터로 처방 넘겨줄때 검색이 다시 타는 것을 막음
- /**
- * @desc : NodeSet (child node를 포함하여 전체 nodeset을 복사한다.)Copy
- * @param : strDest : 목적지 주소값
- * : strSrc : 출발지 주소값
- * : ex) copyNodeSet("/root/hidden/diaginfo", "/root/main/diaginfo");
- * @return : void
- * @authur : 이상현 200?. ?. ??
- 수정자 - 오지훈 2007. 3. 12
- * @---------------------------------------------------
- */
-
- function copyNodeset(strDest, strSrc, mode, destModel, srcModel)
- {
- if(mode == null)
- mode = "replace";
- if(destModel == null)
- destModel = model;
- if(srcModel == null)
- srcModel = model;
- if(mode == "replace")
- destModel.removeNodeset(strDest);// 대상 노드를 삭제한다.
- //var destListLen = 0;
- var destNodeList = destModel.instances(0).selectNodes(strDest);
- //if(destNodeList != null)
- var destListLen = destNodeList.length;
- var srcNodeList = srcModel.instances(0).selectNodes(strSrc);
- for(var i = 0; i < srcNodeList.length; i++)
- {
- var strDest1 = strDest + "[" + (i + 1 + destListLen) + "]";
- destModel.makeNode(strDest1);
- var destNode = destModel.instances(0).selectSingleNode(strDest1);
- var srcNode = srcNodeList.item(i);
- var srcChildList = srcNode.childNodes;
- for(var j = 0; j < srcChildList.length; j++)
- destNode.appendChild(srcChildList.item(j).cloneNode(true));
- }
- }
- /**
- * @desc : NodeSet의 최종길이를 구한다.
- * @param : path : xpath
- * : ex) getNodeSetCnt("/root/hidden/diaginfo");
- * @return : NodeSet 최종 길이값
- * @authur : 이상현 200?. ?. ??
- 수정자 - 오지훈 2007. 3. 12
- * @---------------------------------------------------
- */
- function getNodeSetCnt(path)
- {
- var insXml = model.instances(0);
- var nodeList = insXml.selectNodes(path);
- return nodeList.length;
- }
- /**
- * @desc : Source Node의 child node를 Destination의 node로 append한다.
- * @param : strDest - 도착node path
- * : strSrc - 출발node path
- * @return : void
- * @authur : 오지훈 2007. 3. 21
- * @---------------------------------------------------
- */
- function addCopyNode(strDest, strSrc){
- var srcNodeList = model.instances(0).selectNodes(strSrc);
- var pDestNode = model.instances.item(0).selectSingleNode(strDest).parentNode;
-
- for( var i = 1; i < srcNodeList.length + 1 ; i++ ) {
- var iRow = i - 1;
- pDestNode.appendChild(srcNodeList.item(iRow).cloneNode(true));
- }
- }
- /**
- * @desc : Source Node의 child nodelist를 Destination의 nodelist로 append한다.
- * @param : strDest - 도착node path
- * : strSrc - 출발node path
- * @return : void
- * @authur : 이상현 2007. 3. 27
- * @---------------------------------------------------
- */
- function addCopyNodeset(strDest, strSrc, mode, destModel, srcModel) {
- if( destModel == null || destModel =="" )
- destModel = document.models.item(0);
-
- if( srcModel == null || srcModel =="" )
- srcModel = document.models.item(0);
-
- var srcNodeList = srcModel.instances(0).selectNodes(strSrc);
- var srcNode;
-
- var pDestNode = destModel.instances.item(0).selectSingleNode(strDest).parentNode;
-
- if( mode == "replace" || mode == null ) {
- destModel.removeNodeset(strDest);
- while( srcNode = srcNodeList.nextNode() ) {
- pDestNode.appendChild(srcNode.cloneNode(true));
- }
- }
-
- else if( mode == "after" ) {
- while( srcNode = srcNodeList.nextNode() ) {
- pDestNode.appendChild(srcNode.cloneNode(true));
- }
- }
-
- else if( mode == "before" ) {
- var destNode;
- for( var i = srcNodeList.length - 1; i >= 0; i-- ) {
- destNode = destModel.instances.item(0).selectSingleNode(strDest + "[1]");
- pDestNode.insertBefore(srcNodeList.item(i).cloneNode(true), destNode);
- }
- }
- }
- /**
- * @desc : 화면 환경설정 등록
- * @param : grdObj : 그리드 Object ID
- * @return : void
- * @authur : 오지훈 2007. 3. 27
- * @---------------------------------------------------
- */
- function rgstScrnEnvEstb(grdObj){
- var compscnts = "";
- var compsrefcnts = "";
- var compssizecnts = "";
- var totCol = grdObj.cols;
- for(var i = 0 ; i < totCol ; i++){
- var tmp_caption = grdObj.textmatrix(0, i);
- var compscnts = compscnts + tmp_caption + "^";
- var tmp_ref = grdObj.colAttribute(i, "ref");
- var compsrefcnts = compsrefcnts + tmp_ref + "^";
- var tmp_size = grdObj.colWidth(i);
- var compssizecnts = compssizecnts + tmp_size + "^";
- }
- var len = compscnts.length;
- var compscnts = compscnts.substring(0, len-1);
- var len = compsrefcnts.length;
- var compsrefcnts = compsrefcnts.substring(0, len-1);
- var len = compssizecnts.length;
- var compssizecnts = compssizecnts.substring(0, len-1);
- model.makeValue("/root/send/savedata/compscnts" ,compscnts);
- model.makeValue("/root/send/savedata/compsrefcnts" ,compsrefcnts);
- model.makeValue("/root/send/savedata/compssizecnts" ,compssizecnts);
- model.makeValue("/root/send/savedata/scrnid" ,model.getValue("/root/main/cond/scrnid"));
- model.makeValue("/root/send/savedata/compscd" ,model.getValue("/root/hidden/userscrnenvinfo/gridseq/compscd"));
- submit("TXMMB01102");
- }
- /**
- * @desc : 화면 환경설정 적용
- * @param : grdObj - 그리드 Object ID
- * @return : void
- * @authur : 오지훈 2007. 3. 27
- * @---------------------------------------------------
- */
- function setScrnEnvEstb(grdObj, compscnts, compsrefcnts, compssizecnts){
- var refArray = compsrefcnts.split("^");
- var sizeArray = compssizecnts.split("^");
- //var captArray = compscnts.split("^");
- for(var i=0;i<refArray.length;i++){
- grdObj.colAttribute(i, "ref") = refArray[i];
- //alert(sizeArray[i]+ " , " + captArray[i]);
- grdObj.colWidth(i) = sizeArray[i];
- if(sizeArray[i] == 0){ //size가 0인 경우 colhidden
- grdObj.colhidden(i) = false;
- }
- }
- grdObj.caption = compscnts;
- model.recalculate();
- grdObj.rebuild();
-
- }
- /**
- * @desc : 숫자여부 판단
- * @param : String 객체
- * @return : 숫자일 경우 : true , 그 외의 경우 : false
- * @authur : 오지훈 2007. 3. 27
- */
- function isNumber(str) {
- str += ''; // 문자열로 변환
- str = str.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
- if (str == '' || isNaN(str)) return false;
- return true;
- }
- /**
- * @desc : check 된 Source Node의 값을 목적지에 Append Node 한다.(처방검색)
- * @param : objFlag - child or else
- : strSrc - 출발지 Node
- : strDest - 목적지 Node
- : multiFlag - 복수 add 여부
- : checkNM - check로 사용할 instance명
- : checkFlag - check시 Value
- : grdObj - 더블클릭시 값을 넘기는 그리드 명
- : prcpNmClearFlag - 검색 row에 검색명 클리어암㈉?
- : sCopyInptFlag - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술, 05 CP, 06 항암 M0034
- : ex) addPrcp ( "child", "/root/prcpsrch/prcplist", "/root/main/prcp", "N", "status", "I", grd_prcpsrchlist, "N");
- * @return : void
- * @authur : 마정민 2007. 3. 12
- * @---------------------------------------------------
- */
- function addPrcp ( objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag ) {
- var sRTC = "/root/temp/rtc"; // 처방복사 실시간 체크(RealTimeCheck)변수 노드 경로
- try {
- if (document.all("TRMMO00151") == null ) {
- addPrcp_Web(objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag);
- } else {
- model.setValue ( "/root/send/cond1", getUserInfo("dutplceinstcd"));
- model.setValue ( "/root/send/cond2", "435"); // 복사시 실시간 체크를 위한 하드코드 그룹
- model.setValue ( "/root/send/cond3", getCurrentDate()); // 적용일자
- submit ( "TRMMO00151", false ); // 처방복사 실시간 체크(RealTimeCheck)변수 설정
- var sNewLogic = model.getValue(sRTC + "/codeinfo[hardcdno='436']/trgtcd"); // 신규로직 적용여부
- var sScreenID = getScreenID();
- var sUserID = getUserInfo("userid");
- if(sNewLogic == "Y") { // Y 이면 아래에 코드는 제외 조건으로 처리 한다. CP 제외 (CP 적용버튼 클릭시 수정해야함.)
- if ( isNull(model.getValue(sRTC + "/codeinfo[hardcdno='437' and trgtcd='"+sCopyInptFlag+"']/trgtcd"))
- && isNull(model.getValue(sRTC + "/codeinfo[hardcdno='438' and trgtcd='"+sScreenID+"']/trgtcd")) ) {
- addPrcp_App(objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag);
- } else {
- addPrcp_Web(objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag);
- }
- } else if (sNewLogic == "S"
- && !isNull(model.getValue(sRTC + "/codeinfo[hardcdno='437' and trgtcd='"+sCopyInptFlag+"']/trgtcd"))
- && !isNull(model.getValue(sRTC + "/codeinfo[hardcdno='438' and trgtcd='"+sScreenID+"']/trgtcd"))
- && !isNull(model.getValue(sRTC + "/codeinfo[hardcdno='439' and trgtcd='"+sUserID+"']/trgtcd")) ) {
- addPrcp_App(objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag);
- } else {
- addPrcp_Web(objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag);
- }
- }
- } catch(err) {
- messageBox ( "addPrcp() 실행 중 오류가 발생 하였습니다. 전산실(6598)로 연락 부탁드립니다.", "E" );
- } finally {
- model.removeNodeset(sRTC);
- }
- }
- /**
- * @desc : check 된 Source Node의 값을 목적지에 Append Node 한다.(처방검색)
- * @param : objFlag - child or else
- : strSrc - 출발지 Node
- : strDest - 목적지 Node
- : multiFlag - 복수 add 여부
- : checkNM - check로 사용할 instance명
- : checkFlag - check시 Value
- : grdObj - 더블클릭시 값을 넘기는 그리드 명
- : prcpNmClearFlag - 검색 row에 검색명 클리어암㈉?
- : sCopyInptFlag - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술, 05 CP, 06 항암 M0034
- : ex) addPrcp ( "child", "/root/prcpsrch/prcplist", "/root/main/prcp", "N", "status", "I", grd_prcpsrchlist, "N");
- * @return : void
- * @authur : 마정민 2007. 3. 12
- * @---------------------------------------------------
- */
- function addPrcp_App(objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag) {
- var startStepDate = new Date(); // 각 업부 시작 시간
- var endStepDate = null; // 각 업부 종료후 시간
- var step1Elapsed = null; // 코드별 체크 전 소요시간
- var step2Elapsed = null; // 코드별 체크 소요시간
- var step3Elapsed = null; // 코드별 체크 후 소요시간
- var nSrchRow = 0; // 검색행 Row번호
- var nCopyCnt = 0; // 복사 갯수
- var sScreenID = getScreenID(); // 호출 화면 아이디
- var sRowKey = ""; // sRowKey
- var sCopykeys = "";
- var sCopyIoFlag = "";
- var sBfGenrFlag = "";
- var sNowGenrFlag = "";
-
- // 소스노드의 Key값을 생성한다. 2013.07.05 엄영만
- var srcNodeList = model.instances(0).selectNodes(strSrc); //or instance1.selectNodes(strSrc)
- if ( multiFlag == "Y" ){
- var sb = new StringBuffer();
- for( var i = 1; i <= srcNodeList.length; i++ ) {
- if ( model.getValue( strSrc + "[" + i + "]/" + checkNM) == checkFlag ) {
- sRowKey = model.getValue( strSrc + "[" + i + "]/rowkey");
- if(isNull(sRowKey)) {
- continue;
- } else {
- if(sCopyInptFlag == "01") { // 전처방 조회 일때 외래/입원구분
- sNowGenrFlag = model.getValue( strSrc + "[" + i + "]/prcpgenrflag");
- if (nCopyCnt == 0) {
- sBfGenrFlag = sNowGenrFlag;
- if (sNowGenrFlag == "O" || sNowGenrFlag == "S") { // 입원 외래 처방 구분
- sCopyIoFlag = "O";
- } else {
- sCopyIoFlag = "I";
- }
- } else { // 퇴원 후 외래 처방과 동시 복사 블러킹
- if (sBfGenrFlag != sNowGenrFlag) {
- messageBox ( "퇴원후 외래 처방과 입원 처방을 동시에 복사 하실 수 없습니다.", "I999" );
- return;
- }
- }
- }
- sb.append("'" + sRowKey + "'");
- nCopyCnt++;
- }
- }
- }
- sCopykeys = sb.toString(",");
- } else {
- sRowKey = model.getValue( strSrc + "[" + grdObj.row + "]/rowkey");
- if(isNull(sRowKey)) {
- return 0;
- } else {
- sCopykeys = "'" + sRowKey + "'";
- if (sCopyInptFlag == "01") { // 전처방 조회 일때 외래/입원구분
- sCopyIoFlag = model.getValue( strSrc + "[" + grdObj.row + "]/prcpgenrflag");
- if (sCopyIoFlag == "O" || sCopyIoFlag == "S") { // 입원 외래 처방 구분
- sCopyIoFlag = "O";
- } else {
- sCopyIoFlag = "I";
- }
- }
- nCopyCnt = 1;
- }
- }
- endStepDate = new Date(); // 각 업부 종료후 시간
- step1Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
-
- if(isNull(sCopykeys)){ // 조회할 코드가 있을경우에만 실행하도록 수정함.
- return 0;
- }
-
- if ( objFlag == "child") {
- opener.javascript.addPrcpDetl_App(strDest, sCopyInptFlag, sScreenID, sCopykeys, sCopyIoFlag);
- var destNodeList = opener.model.instances(0).selectNodes( strDest + "/prcplist" );
- } else {
- addPrcpDetl_App(strDest, sCopyInptFlag, sScreenID, sCopykeys, sCopyIoFlag);
- var destNodeList = model.instances(0).selectNodes( strDest + "/prcplist" );
- }
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step2Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
-
- if(destNodeList.length == 0) {
- nSrchRow = 1;
- } else {
- nSrchRow = destNodeList.length;
- }
-
- fHosinPrcpResnChk (objFlag, strDest );
- focusMain( nSrchRow, objFlag, prcpNmClearFlag);
-
- //KNUH, 약속처방 복사 시 치식 팝업이 한번만 뜨고 다른 치과처방에 동일하게 적용되도록 함. 처방복사가 완료되면 임시 instance는 제거함. (2011.03.28 JJE)
- if ( objFlag == "child" ) {
- opener.model.removeNodeset("/root/main/toot_prcp");
- }else{
- model.removeNodeset("/root/main/toot_prcp");
- }
-
- // 20080925 항생제 추가 시는 그리드 editting을 위해 색 변경 로직 생략 by MoonSH
- var cdssFlag = getParameter( "SPMMD01600_flag");
- clearParameter( "SPMMD01600_flag", "");
- if (cdssFlag != "Y") {
- fPrcpColor(objFlag);
- }
- if ( objFlag != "child") {
- if( model.getValue ( "/root/cp" ) == "Y" ){
- if (prtlprcpstatus_SMMMO00110 != "U" ) {
- import1.visible = false;
- }
- }else{
- import1.visible = false;
- }
- }
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step3Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- // 속도체크 모니터링 로그 추가 2013.06.27 엄영만
- if ( objFlag == "child") {
- opener.javascript.reqSetMonitoringLog("PrcpCopy", "APP", sScreenID, objFlag, sCopyInptFlag, multiFlag, prcpNmClearFlag, nCopyCnt, step1Elapsed+step2Elapsed+step3Elapsed, step1Elapsed, step2Elapsed, step3Elapsed);
- } else {
- reqSetMonitoringLog("PrcpCopy", "APP", sScreenID, objFlag, sCopyInptFlag, multiFlag, prcpNmClearFlag, nCopyCnt, step1Elapsed+step2Elapsed+step3Elapsed, step1Elapsed, step2Elapsed, step3Elapsed);
- }
- }
- function addPrcpDetl_App(strDest, sCopyInptFlag, sScreenID, sCopykeys, sCopyIoFlag) {
- var nSrchRow = 0; // 검색Row
- var sTimeStr = getNewDate().valueOf( ).toString() ; // 반복호출을 처리 하기 위한 노드 변수값으로 사용 (품절약, 대체약, 수혈 추가처방(AST, ABO) 등 화면에서 재귀호출을 처리 하기 위해) 2013.09.16 엄영만
- var sCopyPrcpSrc = "/root/copyprcp" +sTimeStr+ "/prcplist"; // Copy Prcp Node 주소
- var sCopyFlagSrc = "/root/copyprcp" +sTimeStr+ "/flaginfo"; // Copy Flag Node 주소
-
- var sErrFlag = ""; // 서버체크시 오류구분
- var sErrMsg = ""; // 서버체크시 오류메세지
- var sErrCode = ""; // 서버체크시 오류코드
-
- var sUsge = model.getValue("/root/usge");
-
- var srcNodeList = model.instances(0).selectNodes( "/root/paminfo" );
- if ( srcNodeList.length == 0 ){
- messageBox ( "환자정보가", "E014" );
- return;
- }
-
- //복사 화면정보(copyFlagInfo)
- model.removeNodeSet ( "/root/copyflag" );
- model.makeValue("/root/copyflag/subprcp", "N"); // 사용자 설정으로 재조회 여부(품절약 등등)
- model.makeValue("/root/copyflag/instcd", getUserInfo("dutplceinstcd"));
- model.makeValue("/root/copyflag/copyinptflag", sCopyInptFlag);
- model.makeValue("/root/copyflag/pageinptflag", model.getValue("/root/init/prcpinptflag"));
- model.makeValue("/root/copyflag/copykeys", sCopykeys);
- model.makeValue("/root/copyflag/copyioflag", sCopyIoFlag);
- model.makeValue("/root/copyflag/screenid", sScreenID);
- model.makeValue("/root/copyflag/usge", sUsge);
- model.makeValue("/root/copyflag/prcpgenrflag", model.getValue("/root/patflag/list/prcpgenrflag"));
- model.makeValue("/root/copyflag/prcpdd", model.getValue("/root/init/prcpdd")); // 처방적용일자
- model.makeValue("/root/copyflag/prcpmixno", model.getValue("/root/init/prcpmixno")); // mix번호
- model.makeValue("/root/copyflag/addprcp", model.getValue("/root/addprcp"));
- model.makeValue("/root/copyflag/admininfo", model.getValue("/root/admininfo"));
- model.makeValue("/root/copyflag/cp", model.getValue("/root/cp"));
-
- if(model.getValue("/root/cp") == "Y") {
- model.makeValue("/root/copyflag/cpgappno", model.getValue("/root/temp1/getdata/cpgappno")); // cp적용번호
- model.makeValue("/root/copyflag/cpgstartstepno", model.getValue("/root/main/steppath/info[startendflag = 'S']/stepno")); // cp시작 스텝번호 2017.12.20 엄영만 추가
- } else {
- model.makeValue("/root/copyflag/cpgappno", "0");
- model.makeValue("/root/copyflag/cpgstartstepno", "1");
- }
-
- if(model.getValue("/root/addprcp") == "Y") {
- model.makeValue("/root/copyflag/issdept", model.getValue("/root/init/issdept"));
- } else {
- model.makeValue("/root/copyflag/issdept", model.getValue("/root/issdept"));
- }
-
- model.makeValue("/root/copyflag/anstrecno", model.getValue("/root/anst/anstrecno"));
- model.makeValue("/root/copyflag/anstfromdt", model.getValue("/root/anst/anstfromdt"));
- model.makeValue("/root/copyflag/ansttm", model.getValue("/root/anst/ansttm"));
- model.makeValue("/root/copyflag/ansttodt", model.getValue("/root/anst/ansttodt"));
- model.makeValue("/root/copyflag/opansflagcd", model.getValue("/root/anst/opansflagcd"));
- model.makeValue("/root/copyflag/paramyn", model.getValue("/root/anst/paramyn"));
- model.makeValue("/root/copyflag/anst_drid", model.getValue("/root/anst/anst_drid"));
- model.makeValue("/root/copyflag/anst_specordflag", model.getValue("/root/anst/anst_specordflag"));
- //20131107 이정택(마취의 이름 추가)
- model.makeValue("/root/copyflag/anst_anstdrnm", model.getValue("/root/anst/anst_anstdrnm"));
- //20131107 이정택
-
- model.makeValue("/root/copyflag/erresn", model.getValue("/root/init/erresn"));
- model.makeValue("/root/copyflag/hosinprcpresncd", model.getValue("/root/init/hosinprcpresncd"));
- model.makeValue("/root/copyflag/hsctlnkno", model.getValue("/root/init/hsctlnkno"));
- model.makeValue("/root/copyflag/inclprcpno", model.getValue("/root/init/inclprcpno"));
- model.makeValue("/root/copyflag/prcpauthflag", model.getValue("/root/init/prcpauthflag"));
- model.makeValue("/root/copyflag/prcpfromdd", model.getValue("/root/init/prcpfromdd"));
- model.makeValue("/root/copyflag/prcpkindcd", model.getValue("/root/init/prcpkindcd"));
- model.makeValue("/root/copyflag/prcptodd", model.getValue("/root/init/prcptodd"));
- model.makeValue("/root/copyflag/bfprcpviewflag", model.getValue("/root/initsrch/envinfo[qestcd='018']/answcnt")); // 전처방 정렬 개인별 설정
- model.makeValue("/root/copyflag/bfinoutsetflag", model.getValue("/root/initsrch/envinfo[qestcd='075']/answcnt")); // 전처방 복사시 약품 원내/원외 개인설정 2016.06.28 엄영만
-
- model.makeValue("/root/copyflag/subjsubcretno", model.getValue("/root/init/subjsubcretno"));
- model.makeValue("/root/copyflag/opcnfmdd", model.getValue("/root/operation/list/opcnfmdd"));
- model.makeValue("/root/copyflag/opflagcd", model.getValue("/root/operation/list/opflagcd"));
- model.makeValue("/root/copyflag/opfromtmcd", model.getValue("/root/operation/list/opfromtmcd"));
- model.makeValue("/root/copyflag/oprsrvno", model.getValue("/root/operation/list/oprsrvno"));
- model.makeValue("/root/copyflag/prcpdd_prcpresn", model.getValue("/root/prcpresn/prcpdd"));
- model.makeValue("/root/copyflag/prcptime_prcpresn", model.getValue("/root/prcpresn/prcptime"));
- model.makeValue("/root/copyflag/resncnt_prcpresn", model.getValue("/root/prcpresn/resncnt"));
-
- model.removeNodeSet ( "/root/send/cond1" );
- model.makeNode ( "/root/send/cond1");
- var copyFlagInfo = model.instances(0).selectNodes( "/root/copyflag");
- model.setValue ( "/root/send/cond1", getNodeListCSV(copyFlagInfo));
- //복사 등록정보(copyRgstInfo)
- model.removeNodeSet ( "/root/send/cond2" );
- model.makeNode ( "/root/send/cond2");
- var copyRgstInfo = model.instances(0).selectNodes( "/root/paminfo/list" );
- model.setValue ( "/root/send/cond2", getNodeListCSV(copyRgstInfo));
- submit ( "TRMMO00150", false ); // 처방저장 실시간 체크(RealTimeCheck)변수 설정
- model.makeNode(sCopyPrcpSrc); // 처방정보 복사 노드생성
- model.makeNode(sCopyFlagSrc); // 화면정보 복사 노드생성
-
- copyNodesetType ( sCopyPrcpSrc, "/root/prcpcopy/prcplist", "replace", model, model); // 품절약등 내부적으로 다시 TRMMO00150를 Call 하는 경우 처리
- copyNodesetType ( sCopyFlagSrc, "/root/prcpcopy/flaginfo", "replace", model, model); // 품절약등 내부적으로 다시 TRMMO00150를 Call 하는 경우 처리
- model.resetInstanceNode("/root/prcpcopy/prcplist"); // submit() 리턴 인스턴스 초기화
- model.resetInstanceNode("/root/prcpcopy/flaginfo"); // submit() 리턴 인스턴스 초기화
- var copyPrcpNode = model.instances(0).selectNodes(sCopyPrcpSrc);
- if (copyPrcpNode.length > 0) {
- // 리턴 된 화면 설정값 셋팅
- model.makeValue("/root/init/prcpmixno", model.getValue(sCopyFlagSrc + "/prcpmixno"));
- model.makeValue("/root/init/inclprcpno", model.getValue(sCopyFlagSrc + "/inclprcpno"));
- model.makeValue("/root/init/hsctlnkno", model.getValue(sCopyFlagSrc + "/hsctlnkno"));
-
- if (sCopyInptFlag == "06") { // 항암프로토콜일 경우 추가되는 saveflaginfo 값 셋팅
- model.makeValue ( "/root/save/saveflaginfo/cpgappno", appNo_SMMMO00110 ); //CP처방 or 프로토콜처방 no
- model.makeValue ( "/root/save/saveflaginfo/prtlprcpstatus", prtlprcpstatus_SMMMO00110 ); //CP처방 or 프로토콜처방 저장 status
- model.makeValue ( "/root/save/saveflaginfo/prtlflag", "10" ); //프로토콜구분
- }
-
- var destNodeList;
- for (var i=1; i<=copyPrcpNode.length; i++) { // Start of 복사 처방 건별 화면 복사
-
- if ( isNull(model.getValue ( sCopyPrcpSrc + "[" + i + "]/prcpcd" ))) { continue; }
- destNodeList = model.instances(0).selectNodes( strDest + "/prcplist" );
- if(destNodeList.length == 0) { nSrchRow = 1; } else { nSrchRow = destNodeList.length; }
- if (sCopyInptFlag == "06") { // 항암프로토콜일 경우 etclnkspec 컬럼 값 셋팅
- model.setValue( sCopyPrcpSrc + "[" + i + "]/etclnkspec", etclnkspecValue_SMMMO00110);
- }
-
- // 전환처방 복용 방법 설정
- if ( model.getValue ( sCopyPrcpSrc + "[" + i + "]/tempcol18" ) == "Y" ) {
- var len = 1;
- if ( !isNull(model.instance1.selectNodes("/root/migdrugmthd/migdrugmthdlist").length)){
- len = model.instance1.selectNodes("/root/migdrugmthd/migdrugmthdlist").length + 1;
- }
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/prcpcd", model.getValue( sCopyPrcpSrc + "[" + i + "]/prcpcd" ));
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/prcpnm", model.getValue( sCopyPrcpSrc + "[" + i + "]/prcpnm" ));
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/drugmthdspccd", model.getValue( sCopyPrcpSrc + "[" + i + "]/drugmthdspccd" ) );
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/drugmthdspccdnm", model.getValue( sCopyPrcpSrc + "[" + i + "]/drugmthdspccdnm" ) );
-
- if ( model.getValue ( sCopyPrcpSrc + "[" + i + "]/rateprcpflag" ) == "Y" ) {
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/migdrugmthdspccdnm", "[비율처방불가] 투약량이 다른 처방을 분리해서 처방하셔야 합니다.\n\n" + model.getValue( sCopyPrcpSrc + "[" + i + "]/exptmthdfact" ) + ".");
- model.setValue ( sCopyPrcpSrc + "[" + i + "]/rateprcpflag", "N" )
- model.setValue ( sCopyPrcpSrc + "[" + i + "]/drugrateqty", "-" )
- } else {
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/migdrugmthdspccdnm", model.getValue( sCopyPrcpSrc + "[" + i + "]/exptmthdfact" ));
- }
- model.setValue ( sCopyPrcpSrc + "[" + i + "]/exptmthdfact", "-" );
- }
-
- //20090122 마정민수정: 변경요청번호 670. 단순 방사선 예약 자동 팝업요청
- //20090709 CHC, 단순방사선예약자동팝업 병원별 적용
- var raypopwndcheckyn = model.getValue ( "/root/initsrch/raypopwndcheckyn/trgtcd" );
- if ( model.getValue("/root/patflag/list/prcpgenrflag") == "O" && model.getValue( sCopyPrcpSrc + "[" + i + "]/tempcol2" ).length > 2 && model.getValue( sCopyPrcpSrc + "[" + i + "]/tempcol2" ).substring( 0, 2 ) == "18" && sUsge == "prcp" ) {
- var msgTitle = "[영상]" + "[" + model.getValue( sCopyPrcpSrc + "[" + i + "]/prcpcd" ) + ":" + model.getValue( sCopyPrcpSrc + "[" + i + "]/prcpnm" ) + "]";
- if (raypopwndcheckyn != "Y") {
- if (window.alert( "단순 방사선 검사를 당일 시행 하시겠습니까? [예:당일,아니요:예약]", msgTitle, "36" ) == "7" ){
- model.setValue( sCopyPrcpSrc + "[" + i + "]/prcphopedd","99991231" );
- }
- }
- }
-
- sErrFlag = model.getValue(sCopyPrcpSrc +"[" + i + "]/errflag");
- sErrMsg = model.getValue(sCopyPrcpSrc +"[" + i + "]/errmsg");
- sErrCode = model.getValue(sCopyPrcpSrc +"[" + i + "]/errcode");
-
- if(sErrFlag == "E") { // 서버체크시 오류가 있으면 메세지 처리
- if(!isNull(sErrMsg)) messageBox(sErrMsg, sErrCode);
- continue;
- } else if(sErrFlag == "D") { // 사용자 결정
- if(sErrCode == "D001") { // 품절약
- fAltDrug ( i, "1", sCopyPrcpSrc, sCopyInptFlag );
-
- if("01" == sCopyInptFlag || "02" == sCopyInptFlag) { // 전처방 또는 약속처방일 경우
- var sOpt079 = model.getValue("/root/initsrch/envinfo[qestcd='079']/answcnt"); // 품절약 복사 개인 설정 옵션 (001:대체약품의 기본 횟수(용법), 수량으로 설정, 002:기존약품의 횟수(용법), 수량, 일수로 설정)
- if(sOpt079 == "002" && !isNull(model.getValue(strDest+"/prcplist["+nSrchRow+"]/prcpcd"))) { // 기존약품의 횟수(용법), 수량, 일수로 설정 이고 품절약을 선택한경우
- model.setValue(strDest+"/prcplist["+nSrchRow+"]/drugmthdspccdnm", model.getValue(sCopyPrcpSrc +"[" + i + "]/drugmthdspccdnm"))
- model.setValue(strDest+"/prcplist["+nSrchRow+"]/drugmthdspccd", model.getValue(sCopyPrcpSrc +"[" + i + "]/drugmthdspccd"))
- model.setValue(strDest+"/prcplist["+nSrchRow+"]/prcpdayno", model.getValue(sCopyPrcpSrc +"[" + i + "]/prcpdayno"))
-
- bfDrugCalc("prcptims" , parseInt(nSrchRow));
- model.setValue(strDest+"/prcplist["+nSrchRow+"]/prcptims", model.getValue(sCopyPrcpSrc +"[" + i + "]/prcptims"))
- DrugCalc("prcptims" , parseInt(nSrchRow));
-
- bfDrugCalc("drprcpetc8" , parseInt(nSrchRow));
- model.setValue(strDest+"/prcplist["+nSrchRow+"]/drprcpetc8", model.getValue(sCopyPrcpSrc +"[" + i + "]/drprcpetc8"))
- DrugCalc("drprcpetc8" , parseInt(nSrchRow));
- } // End of 기존약품의 횟수(용법), 수량, 일수로 설정 이고 품절약을 선택한경우
- } // End of 전처방 또는 약속처방일 경우
- } else if(sErrCode == "D002") { // 산제불가
- fAltDrug ( i, "4", sCopyPrcpSrc, sCopyInptFlag );
- if ( getParameter ( "SPMMB10100_chkyn" ) == "Y" ) { //대체약을 선택했다면 복사시키지 않는다.
- clearParameter ( "SPMMB10100_chkyn" );
- } else {
- model.duplicate( strDest, sCopyPrcpSrc+"[" + i + "]", "*[" + nSrchRow + "]");
- addPrcpPop_App(nSrchRow, sUsge);
- }
- } else if(sErrCode == "D003") { // 산제주의
- fAltDrug ( i, "5", sCopyPrcpSrc, sCopyInptFlag );
- if ( getParameter ( "SPMMB10100_chkyn" ) == "Y" ) { //대체약을 선택했다면 복사시키지 않는다.
- clearParameter ( "SPMMB10100_chkyn" );
- } else {
- model.duplicate( strDest, sCopyPrcpSrc+"[" + i + "]", "*[" + nSrchRow + "]");
- addPrcpPop_App(nSrchRow, sUsge);
- }
- } else if(sErrCode == "D004") { // 투석원내처방사유처리
- if("19" != model.getValue( "/root/init/hosinprcpresncd")) {
- var message = "원내지정이 가능한 처방입니다. 전체 약제를 원내로 하시려면 [예], 해당약제만 원내처방하시려면 [아니오]를 선택해주십시오.";
- if (messageBox ( message, "Q" ) == "6" ) {
- model.setValue( "/root/init/hosinprcpresncd", "19" );
- cmb_hosinprcpresn.refresh();
- }
- }
- model.duplicate( strDest, sCopyPrcpSrc+"[" + i + "]", "*[" + nSrchRow + "]");
- addPrcpPop_App(nSrchRow, sUsge);
- } else if (sErrCode == "D006"){ // 대채처방체크 altcdinfo = X
- fAltPrcpCd ( i, "1", sCopyPrcpSrc, sCopyInptFlag );
- } else if(sErrCode == "D007"){ // 수술예방적 항생제 CHECK SON0926 START 사유입력 대상자일 경우
- if (messageBox ( sErrMsg, "Q999" ) == "7") {
- setParameter ("SPMMO016000_resnflag" , "O" );
- var xpt = window.screenleft + eval(500);
- var ypt = window.screenTop + eval(400);
- var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- modal ("SPMMO16000", mon, xpt, ypt, "SPMMO16000", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false); //사유입력창
- var resncnts = getParameter ("SPMMO016000_resncnts" );
- model.setValue ( sCopyPrcpSrc + "[" + i + "]/tempcol19" ,resncnts );
-
- model.duplicate( strDest, sCopyPrcpSrc+"[" + i + "]", "*[" + nSrchRow + "]");
- addPrcpPop_App(nSrchRow, sUsge);
- } else {
- continue;
- }
- }
- } else { // 오류가 없으면 화면으로 복사 처리
- if(sErrFlag == "I" && !isNull(sErrMsg)) { // 서버체크시 정보가 있으면 메세지 처리
- messageBox(sErrMsg, sErrCode);
- }
-
- model.duplicate( strDest, sCopyPrcpSrc+"[" + i + "]", "*[" + nSrchRow + "]");
- addPrcpPop_App(nSrchRow, sUsge); // 화면에서 체크해야 할 항목 체크
- }
- } // End of 복사 처방 건별 화면 복사
-
- // 투석원내처방사유처리
- if ( model.getValue( "/root/init/hosinprcpresncd") != model.getValue(sCopyFlagSrc + "/hosinprcpresncd") ) {
- grd_prcplist.refresh();
- fChngHosinPrcpResn();
- }
-
- //JJE CP,항암프로토콜일 경우 root/init/prcpdd 를 해당 미래일자로 변경... (2008.09.11)
- if (sCopyInptFlag == "05" || sCopyInptFlag == "06") {
- if ( model.getValue( "/root/init/prcpdd") != model.getValue(sCopyFlagSrc + "/prcpdd") ) {
- cmb_prcpdd.refresh();
- }
- }
- }
-
- model.removeNodeSet ("/root/copyprcp" +sTimeStr); // 처방정보, 화면정보 복사 노드삭제
- }
- /**
- * @desc : check 된 Source Node의 값을 목적지에 Append Node 한다.(처방검색)
- * @param : objFlag - child or else
- : strSrc - 출발지 Node
- : strDest - 목적지 Node
- : multiFlag - 복수 add 여부
- : checkNM - check로 사용할 instance명
- : checkFlag - check시 Value
- : grdObj - 더블클릭시 값을 넘기는 그리드 명
- : prcpNmClearFlag - 검색 row에 검색명 클리어암㈉?
- : prcpInptFlag - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술, 05 CP, 06 항암 M0034
- : ex) addPrcp ( "child", "/root/prcpsrch/prcplist", "/root/main/prcp", "N", "status", "I", grd_prcpsrchlist, "N");
- * @return : void
- * @authur : 마정민 2007. 3. 12
- * @---------------------------------------------------
- */
- function addPrcp_Web ( objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, prcpInptFlag ) {
- var startStepDate = new Date(); // 각 업부 시작 시간
- var endStepDate = null; // 각 업부 종료후 시간
- var step1Elapsed = null; // 코드별 체크 전 소요시간
- var step2Elapsed = null; // 코드별 체크 소요시간
- var step3Elapsed = null; // 코드별 체크 후 소요시간
- var nCopyCnt = 0; // 복사 갯수
-
- //model.addLog("***************** Start Of addPrcp()");
- if ( objFlag == "child") {
- opener.model.makeValue("/root/drugcalc/prcpvol", "");
- opener.model.makeValue("/root/drugcalc/prcpqty", "");
- opener.model.makeValue("/root/drugcalc/prcptims", "");
- opener.model.makeValue("/root/drugcalc/drprcpetc7", "");
- opener.model.makeValue("/root/drugcalc/drprcpetc8", "");
- } else {
- model.makeValue("/root/drugcalc/prcpvol", "");
- model.makeValue("/root/drugcalc/prcpqty", "");
- model.makeValue("/root/drugcalc/prcptims", "");
- model.makeValue("/root/drugcalc/drprcpetc7", "");
- model.makeValue("/root/drugcalc/drprcpetc8", "");
- }
-
- //목적지를 변수로 받고 싶었으나 iviewer에서 문제가 있어 목적지는 프레그를 구분자로 박아 넣음.
- var srchRow = 0;
- var srcNodeList = model.instances(0).selectNodes(strSrc); //or instance1.selectNodes(strSrc)
- //검색Row 찾기
- if ( objFlag == "child") {
- var destNodeList = opener.model.instances(0).selectNodes( strDest + "/prcplist" ); //dest Node에서 prcplist는 약속으로 하자.
- for ( i = destNodeList.length; i>0; i-- ){
- opener.model.getValue ( strDest + "/prcplist[" + i + "]" ) == "S";
- srchRow = i;
- break;
- }
- } else {
- var destNodeList = model.instances(0).selectNodes( strDest + "/prcplist" );
- for ( i = destNodeList.length; i >0; i-- ){
- model.getValue ( strDest + "prcplist[" + i + "]" ) == "S";
- srchRow = i;
- break;
- }
-
- if(!(srchRow > 0)){
- if(destNodeList.length == 0) srchRow = 1;
- else srchRow = destNodeList.length+1;
- }
- }
-
- // 처방 코드정보를 가져온다. (선택진료 자동체크 및 선택진료의사 등의 데이터를 가져오기 위해) 2011.10.13 엄영만
- var sPrcpCodes = ""; // 처방코드 정보를 가져오기 위한 처방 코드 셋팅
- if ( multiFlag == "Y" ){
- for( var i = 1; i <= srcNodeList.length; i++ ) {
- if ( model.getValue( strSrc + "[" + i + "]/" + checkNM) == checkFlag ) {
- if(sPrcpCodes == ""){
- sPrcpCodes = "'" + model.getValue( strSrc + "[" + i + "]/prcpcd") + "'";
- } else {
- sPrcpCodes = sPrcpCodes + ",'" + model.getValue( strSrc + "[" + i + "]/prcpcd") + "'";
- }
- nCopyCnt = nCopyCnt + 1;
- }
- }
- } else {
- sPrcpCodes = "'" + model.getValue( strSrc + "[" + grdObj.row + "]/prcpcd") + "'" ;
- nCopyCnt = 1;
- }
- if(!isNull(sPrcpCodes)){ // 조회할 코드가 있을경우에만 실행하도록 수정함.
- if ( objFlag == "child") {
- opener.javascript.fGetPrcpCodeInfo(sPrcpCodes);
- } else {
- fGetPrcpCodeInfo(sPrcpCodes);
- }
- }
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step1Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 전 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
-
- var cnt = 0;
- if ( multiFlag == "Y" ){
- //약속처방일 경우 MIX 가 있으면 번호를 새로 만들어줌
- if ( prcpInptFlag == "02") { //약속처방이고
- for( var i = 1; i <= srcNodeList.length; i++ ) {
- if ( model.getValue( strSrc + "[" + i + "]/" + checkNM) == checkFlag ) {
- var prcpmixno = model.getValue( strSrc + "[" + i + "]/prcpmixno" );
- if ( prcpmixno != "-" && prcpmixno != "0" ) { //믹스번호가 있다면
- if ( model.getValue( strSrc + "[" + i + "]/tempcol8" ) == "-" ) { //새로 번호 딴것은 체크 하지 않는다.
- model.setValue( strSrc + "[" + i + "]/tempcol8", "" );
- } else {
- var mixcnt = 0;
- //믹스번호를 하나 증가시켜서 같은 믹스번호가 있는것은 적용한다.
- var newprcpmixno = eval(opener.model.getValue ( "/root/init/prcpmixno" )) + 1;
- for( var j = 1; j <= srcNodeList.length; j++ ) {
- if ( model.getValue( strSrc + "[" + j + "]/" + checkNM) == checkFlag ) {
- if ( i != j ) {
- if ( prcpmixno == model.getValue( strSrc + "[" + j + "]/prcpmixno" )) {
- model.setValue( strSrc + "[" + j + "]/prcpmixno", newprcpmixno );
- model.setValue( strSrc + "[" + j + "]/tempcol8", "-" );
- mixcnt++;
- }
- }
- }
- }
- if ( mixcnt == 0 ) { // 같이 적용된것이 하나도 없다면 믹스번호 초기화
- model.setValue( strSrc + "[" + i + "]/prcpmixno", "-" );
- } else { // 값이 있으면 본인것도 증가시켜주고, 믹스번호 init 값도 증가시켜준다.
- model.setValue( strSrc + "[" + i + "]/prcpmixno", newprcpmixno );
- opener.model.setValue ( "/root/init/prcpmixno", newprcpmixno );
- }
- }
- }
- }
- }
- } //약속처방 mix no 체크끝
- for( var i = 1; i <= srcNodeList.length; i++ ) {
-
- //전처방, 약속처방에서 처방복사 버튼 클릭시...구코드이고 유효하지 않은 코드 일경우 불가처리 조과장님 지시. BY SONJY 2008-09-04
- //전처방, 약속처방에서 처방복사 버튼 클릭시 식사처방 복사 불가처리 by sonjy 2008-09-06
- //20090409 마정민 수정. 성가병원 구코드 복사 기능 요청
- /*if( model.getValue( strSrc + "[" + i + "]/prcpcd").substring( 0, 1 ) == "*" ||
- model.getValue( strSrc + "[" + i + "]/prcpcd").substring( 0, 1 ) == "_" ||
- model.getValue( strSrc + "[" + i + "]/prcpclscd") == "03" ) {
- if ( objFlag == "child" ) {
- addprcpchk = opener.model.getValue ( "/root/addprcp" );
- } else {
- addprcpchk = model.getValue ( "/root/addprcp" );
- }
- if ( addprcpchk != "Y" ){
- continue ;
- }
- }*/
- if ( model.getValue( strSrc + "[" + i + "]/prcpclscd") == "03" ) {
- if ( objFlag == "child" ) {
- addprcpchk = opener.model.getValue ( "/root/addprcp" );
- } else {
- addprcpchk = model.getValue ( "/root/addprcp" );
- }
- if ( addprcpchk != "Y" ){
- continue ;
- }
- }
-
- if ( model.getValue( strSrc + "[" + i + "]/" + checkNM) == checkFlag ) {
- srchRow = addPrcpDetl ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag );
-
- if ( srchRow == 0) {
- cnt++;
- //검색줄 다시검색
- if ( objFlag == "child") {
- var destNodeList = opener.model.instances(0).selectNodes( strDest + "/prcplist" ); //dest Node에서 prcplist는 약속으로 하자.
- for ( j = destNodeList.length; j>0; j-- ){
- opener.model.getValue ( strDest + "/prcplist[" + j + "]" ) == "S";
- srchRow = j;
- break;
- }
- } else {
- var destNodeList = model.instances(0).selectNodes( strDest + "/prcplist" );
- for ( j = destNodeList.length; j >0; j-- ){
- model.getValue ( strDest + "prcplist[" + j + "]" ) == "S";
- srchRow = j;
- break;
- }
- //JJE-
- if(!(srchRow > 0)){
- srchRow = destNodeList.length;
- }
- //-JJE
- }
- } else {
- //처방복사에 문제가 없다면 하드코드 set 처방 Chk
- //srchRow = fAddSetPrcpChk ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag );
- srchrownum = fAddSetPrcpChkKNUH ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag );
- if (srchrownum != srchRow) {
- srchRow = srchrownum;
- if ( objFlag == "child" ) {
- opener.javascript.DrugCalc ( "drprcpetc8" , parseInt(srchRow) -1 );
- } else {
- DrugCalc ( "drprcpetc8" , parseInt(srchRow) -1 );
- }
- }
- }
-
- //if ( objFlag == "child" ) {
- // opener.grd_prcplist.refresh();
- //} else {
- // grd_prcplist.refresh();
- //}
- }
- }
- } else { //더블클릭으로 넘길때
- //전처방, 약속처방에서 더블 클릭시...구코드이고 유효하지 않은 코드 일경우 불가처리 조과장님 지시. BY SONJY 2008-09-04
- //전처방, 약속처방에서 처방복사 버튼 클릭시 식사처방 복사 불가처리 by sonjy 2008-09-06
- //20090409 마정민 수정. 성가병원 구코드 복사 기능 요청
- /*if( model.getValue( strSrc + "[" + grdObj.row + "]/prcpcd").substring( 0, 1 ) == "*" ||
- model.getValue( strSrc + "[" + grdObj.row + "]/prcpcd").substring( 0, 1 ) == "_" ||
- model.getValue( strSrc + "[" + grdObj.row + "]/prcpclscd") == "03" ) {
- if ( objFlag == "child" ) {
- addprcpchk = opener.model.getValue ( "/root/addprcp" );
- } else {
- addprcpchk = model.getValue ( "/root/addprcp" );
- }
- if ( addprcpchk != "Y" ){
- //20090407 마정민 수정. 성가병원 기능 요청
- //return ;
- }
- }*/
- if( model.getValue( strSrc + "[" + grdObj.row + "]/prcpclscd") == "03" ) {
- if ( objFlag == "child" ) {
- addprcpchk = opener.model.getValue ( "/root/addprcp" );
- } else {
- addprcpchk = model.getValue ( "/root/addprcp" );
- }
- if ( addprcpchk != "Y" ){
- return ;
- }
- }
- //mix no 초기화
- model.setValue( strSrc + "[" + grdObj.row + "]/prcpmixno", "-" );
- srchRow = addPrcpDetl ( objFlag , strSrc , strDest , grdObj.row , srchRow, prcpInptFlag );
- if ( srchRow == 0) {
- cnt++;
- } else {
- //처방복사에 문제가 없다면 하드코드 set 처방 Chk
- //srchRow = fAddSetPrcpChk( objFlag , strSrc , strDest , grdObj.row , srchRow, prcpInptFlag );
- var srchrownum = fAddSetPrcpChkKNUH( objFlag , strSrc , strDest , grdObj.row , srchRow, prcpInptFlag );
- if (srchrownum != srchRow) {
- srchRow = srchrownum;
- if ( objFlag == "child" ) {
- opener.javascript.DrugCalc ( "drprcpetc8" , parseInt(srchRow) -1 );
- } else {
- DrugCalc ( "drprcpetc8" , parseInt(srchRow) -1 );
- }
- }
- }
- }
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step2Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
- fHosinPrcpResnChk (objFlag, strDest );
- if ( cnt == 0 ) { // 한번도 에러가 없을 때만 메인으로 포커스가 간다.
- focusMain ( srchRow, objFlag, prcpNmClearFlag );
- } else {
- var modiflag = model.getValue("/root/init/rowmodify/modiflag");
- if ( objFlag == "child" ) {
- if ( modiflag != "Y" ){ // 처방 코드에서 수정 모드가 아닐때만 refresh - 20090630 by Moonsh
- opener.grd_prcplist.rebuild();
- opener.model.recalculate();
- opener.grd_prcplist.refresh();
- }
- // opener.model.setfocus( "grd_prcplist" );
- // if ( srchRow != 0 ) {
- // opener.grd_prcplist.row = srchRow;
- // }
- } else {
- if ( modiflag != "Y" ){ // 처방 코드에서 수정 모드가 아닐때만 refresh - 20090630 by Moonsh
- grd_prcplist.rebuild();
- model.recalculate();
- grd_prcplist.refresh();
- }
- // model.setfocus( "grd_prcplist" );
- // if ( srchRow != 0 ) {
- // grd_prcplist.row = srchRow;
- // }
- }
- }
- //KNUH, 약속처방 복사 시 치식 팝업이 한번만 뜨고 다른 치과처방에 동일하게 적용되도록 함. 처방복사가 완료되면 임시 instance는 제거함. (2011.03.28 JJE)
- if ( objFlag == "child" ) {
- opener.model.removeNodeset("/root/main/toot_prcp");
- }else{
- model.removeNodeset("/root/main/toot_prcp");
- }
- // 20080925 항생제 추가 시는 그리드 editting을 위해 색 변경 로직 생략 by MoonSH
- var cdssFlag = getParameter( "SPMMD01600_flag");
- clearParameter( "SPMMD01600_flag", "");
- if (cdssFlag != "Y") {
- fPrcpColor(objFlag);
- }
- if ( objFlag != "child") {
- //JJE-
- if( model.getValue ( "/root/cp" ) == "Y" ){
- if (prtlprcpstatus_SMMMO00110 != "U" ) {
- import1.visible = false;
- }
- }else{
- import1.visible = false;
- }
- //-JJE
- }
- //model.addLog("***************** End Of addPrcp()");
- endStepDate = new Date(); // 각 업부 종료후 시간
- step3Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- // 속도체크 모니터링 로그 추가 2013.06.27 엄영만
- if ( objFlag == "child") {
- opener.javascript.reqSetMonitoringLog("PrcpCopy", "WEB", getScreenID(), objFlag, prcpInptFlag, multiFlag, prcpNmClearFlag, nCopyCnt, step1Elapsed+step2Elapsed+step3Elapsed, step1Elapsed, step2Elapsed, step3Elapsed);
- } else {
- reqSetMonitoringLog("PrcpCopy", "WEB", getScreenID(), objFlag, prcpInptFlag, multiFlag, prcpNmClearFlag, nCopyCnt, step1Elapsed+step2Elapsed+step3Elapsed, step1Elapsed, step2Elapsed, step3Elapsed);
- }
- }
- /**
- * @desc : 검색된 내용중 내릴 처방을 선택하여 전송한다.( double click )
- * @param : objFlag - child or else
- : strSrc - source node
- : strDest - 목적지 node; child일때는 opener.root.main.prcp, 아니면 "/root/main/prcp" 이다
- : sendRow - 검색된 내용중 메인으로 보내고자 하는 row
- : srchRow - 메인에 들어간 자리. 검색로우(srchRow) 바로 전이다.
- : prcpInptFlag - - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- : groupSrc - 옵션: group처방 검색할 경우 node
- : direcSrc - 옵션: group 지시처방 검색할 경우 node
- : prcpInptFlag - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- * @return : srchRow 에러시 0
- * @authur : 마정민 2007. 4. 12
- * @---------------------------------------------------
- */
- function addPrcpDetl ( objFlag, strSrc, strDest, sendRow, srchRow, prcpInptFlag, grupSrc, direcSrc ) {
- if ( objFlag == "child") {
- opener.javascript.reqSetMonitoringLog("addPrcpDetl", "WEB", getScreenID(), objFlag, prcpInptFlag); // 2017.12.20 사용여부를 체크 하기 위해 추가 엄영만
- } else {
- reqSetMonitoringLog("addPrcpDetl", "WEB", getScreenID(), objFlag, prcpInptFlag); // 2017.12.20 사용여부를 체크 하기 위해 추가 엄영만
- }
-
- //model.addLog(" *************** Start Of addPrcpDetl() PRCPCLSCD " + model.getValue( strSrc + "[" + sendRow + "]/prcpclscd" ) + " || PRCPCD : " + model.getValue( strSrc + "[" + sendRow + "]/prcpcd" ));
- //model.addLog(" PRCPCLSCD : " + model.getValue( strSrc + "[" + sendRow + "]/prcpclscd" ));
- //model.addLog(" PRCPCD : " + model.getValue( strSrc + "[" + sendRow + "]/prcpcd" ));
-
- //20091013 by sonjy 성빈센트병원 요청 => mig data 전처방 copy시 신코드일 경우 reset여부
- var bfprcpsrchyn = "";
- if( objFlag == "child") bfprcpsrchyn = opener.model.getValue("/root/initsrch/bfprcpsrchyn/trgtcd");
- else bfprcpsrchyn = model.getValue("/root/initsrch/bfprcpsrchyn/trgtcd");
- //20091104 by sonjy 성빈센트 전환 데이터 관련 => mig data 전처방 copy시 약/주사 용량 오류 보정
- var migyn = "";
- var colHidnValue = grdBaseColHidn("D");
-
- /***************************** 전처방 구수가코드 검색시 신코드로 변환검색 ****************************************/
- var oldprcpflag = "";
- if ( prcpInptFlag == "01" ) { //전처방이고
- var tempcol9 = model.getValue( strSrc + "[" + sendRow + "]/tempcol9" );
- var tempcol18 = model.getValue( strSrc + "[" + sendRow + "]/tempcol18" );
- if ( tempcol9 == "N" ) {
- return 0;
- } else {
- var bfprcpcd = model.getValue( strSrc + "[" + sendRow + "]/prcpcd" );
- //20091104 by sonjy 성빈센트 전환 데이터 관련 => mig data 전처방 copy시 약/주사 용량 오류 보정
- migyn = model.getValue( strSrc + "[" + sendRow + "]/tempcol20" );
-
- /**
- * 20091013 by sonjy 성빈센트병원 요청 => mig data 전처방 copy시 신코드일 경우 reset
- * 단, 지시처방일 경우는 검색 불필요하므로 제외
- */
-
- if ( bfprcpcd.substring( 0, 1 ) == "_" || bfprcpcd.substring( 0, 1 ) == "=" ||
- ( bfprcpsrchyn == "Y" && migyn == "Y" && model.getValue( strSrc + "[" + sendRow + "]/prcpclscd" ) != "09") ) { //구수가코드이면 신코드로 다시 검색한다. by sonjy20091013
- //20090407 마정민수정. tempcol9로 구분되기 때문에 색깔비교 주석처리.
- //if ( model.getValue ( strSrc + "[" + sendRow + "]/tempcol10" ) != "#ccffcc" ) { //매핑값이 있으면(색깔은 mgr단에서 박는다)
-
- var bfprcpvol = model.getValue( strSrc + "[" + sendRow + "]/prcpvol" );
- var bfprcpqty = model.getValue( strSrc + "[" + sendRow + "]/prcpqty" );
- var bfprcptims = model.getValue( strSrc + "[" + sendRow + "]/prcptims" );
- var bfprcpdayno = model.getValue( strSrc + "[" + sendRow + "]/prcpdayno" );
- var bfprcpdelivefact = model.getValue( strSrc + "[" + sendRow + "]/prcpdelivefact" );
- var bfpowdflag = model.getValue( strSrc + "[" + sendRow + "]/powdflag" );
- var bfprnprcpflag = model.getValue( strSrc + "[" + sendRow + "]/prnprcpflag" );
- var bfprepprcpflag = model.getValue( strSrc + "[" + sendRow + "]/prepprcpflag" );
- var bfselfprcpflag = model.getValue( strSrc + "[" + sendRow + "]/selfprcpflag" );
- var bfselfdrugflag = model.getValue( strSrc + "[" + sendRow + "]/selfdrugflag" );
- var bfdrugpackflag = model.getValue( strSrc + "[" + sendRow + "]/drugpackflag" );
- var bferprcpflag = model.getValue( strSrc + "[" + sendRow + "]/erprcpflag" );
- var bfprecureprcpflag = model.getValue( strSrc + "[" + sendRow + "]/precureprcpflag" );
- var bfnigtprcpflag = model.getValue( strSrc + "[" + sendRow + "]/nigtprcpflag" );
- var bfportprcpflag = model.getValue( strSrc + "[" + sendRow + "]/portprcpflag" );
- var bffixprcpflag = model.getValue( strSrc + "[" + sendRow + "]/fixprcpflag" );
- var bfanamneflag = model.getValue( strSrc + "[" + sendRow + "]/anamneflag" );
- var bferreadflag = model.getValue( strSrc + "[" + sendRow + "]/erreadflag" );
- var bfstemcellflag = model.getValue( strSrc + "[" + sendRow + "]/stemcellflag" );
- var bfprcpexecdeptcd = model.getValue( strSrc + "[" + sendRow + "]/prcpexecdeptcd" );
- var bfDrprcpetc7 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc7"); //1회용량
- var bfDrprcpetc8 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc8"); //1회수량
- var bfDrugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec");
- var bfpayflagcd = model.getValue ( strSrc + "[" + sendRow + "]/payflagcd"); // 2011.03.03 마이그된 처방 전처방 복사시 급여도 복사하도록 수정
-
- //20091013 by sonjy 성빈센트병원 요청 => mig data 전처방 copy시 신코드일 경우 reset여부
- if(bfprcpcd.substring( 0, 1 ) == "_" || bfprcpcd.substring( 0, 1 ) == "=" ) {
- fPrcpSrchCom ( bfprcpcd.substring( 1, bfprcpcd.length ), opener.model.getValue ( "/root/init/prcpdd" ), opener.model.getValue ( "/root/paminfo/list/insukind"), "TRMMO02101", "", false, "getOldPrcpCdChngInfo", "E" );
- } else {
- fPrcpSrchCom ( bfprcpcd, opener.model.getValue ( "/root/init/prcpdd" ), opener.model.getValue ( "/root/paminfo/list/insukind"), "TRMMO02101", "", false, "getPrcpCdSrchInfo", "E" , false);
- }
-
- strSrc = "/root/oldprcpchngsrch/prcplist";
- sendRow = 1;
- if ( isNull(model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" ))){
- return 0;
- } else {
- oldprcpflag = "Y";
- var prcpclscd = model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" );
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
- if ( prcpclscd == "A2" ) {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcptims") != bfprcptims ) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcptims", bfprcptims );
- fBaseMthd("oldprcp");
- }
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/prcptims", bfprcptims );
- }
- var chkPrcpVol = model.getValue ( strSrc + "[" + sendRow + "]/prcpvol");
- if( bfprcpsrchyn == "Y" && migyn == "Y" && parseInt(chkPrcpVol) < 1 ){
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", 0 );
- model.setValue ( strSrc + "[" + sendRow + "]/prcpqty", 0 );
- model.setValue ( strSrc + "[" + sendRow + "]/prcpdayno", 0 );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", bfprcpvol );
- model.setValue ( strSrc + "[" + sendRow + "]/prcpqty", bfprcpqty );
- model.setValue ( strSrc + "[" + sendRow + "]/prcpdayno", bfprcpdayno );
- }
- //model.setValue ( strSrc + "[" + sendRow + "]/drugmthdspccdnm", "-" );
- //model.setValue ( strSrc + "[" + sendRow + "]/drugmthdspccd", "-" );
-
- //20091104 by sonjy 성빈센트 전환 데이터 관련 => mig data 전처방 copy시 약/주사 용량 오류 보정
- if( bfprcpsrchyn == "Y" && migyn == "Y" ){
- var sdrugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec");
- var orgprcpvol = getArrayData ( sdrugmastspec + "^", 0, 1 , "^", "|" ); //drugcntsvol 함량기준용량 -> 경북대는 일기준 용량으로 비교
- var orgDrprcpetc7 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc7"); //1회용량
- var orgDrprcpetc8 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc8"); //1회수량
- var orgCalcRate = 0;
- //회기준에서는 수가계산구분이 1이면 횟수도 곱 (2011.01.02 전지은)
- if(!isNull(bfDrprcpetc7) && !isNull(bfDrprcpetc8) && (colHidnValue == "C" || colHidnValue == "G" || colHidnValue == "H") ){
- orgCalcRate = (orgDrprcpetc8 * bfDrprcpetc8) * 1000;
- orgCalcRate = Math.round(orgCalcRate);
- orgCalcRate = orgCalcRate / 1000;
- var calcmthdcd = getArrayData ( bfDrugmastspec + "^", 0, 26, "^", "|" );
- if( calcmthdcd == "1" ){
- var volRate = orgDrprcpetc7 / bfDrprcpetc7 * 1000;
- var qtyRate = orgDrprcpetc8 / bfDrprcpetc8 * 1000;
- volRate = Math.round(volRate);
- qtyRate = Math.round(qtyRate);
- volRate = volRate / 1000;
- qtyRate = qtyRate / 1000;
- if ( volRate != qtyRate //회 기준 용량 이상 시
- || Math.round ( orgDrprcpetc7 * Math.round ( orgDrprcpetc8 / bfDrprcpetc8 ) * bfprcptims * 1000 ) != bfprcpvol * 1000 ){ //1회 용량이 잘못 들어왔을 수 있음(mig) 일 기준 용량 이상 시
- if( eval(bfDrprcpetc7) < 1 ){
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", "0") ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc7", "0") ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc8", "0") ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", "0") ;
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", orgDrprcpetc7 * bfprcptims) ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc7", orgDrprcpetc7 * orgCalcRate ) ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc8", bfDrprcpetc8 ) ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", bfprcpvol) ;
- }
- }
- }else{
- if( eval(bfDrprcpetc7) < 1 ){
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", "0" ) ; //1회용량
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc7", "0") ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc8", "0") ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", "0") ;
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", bfDrprcpetc7 ) ; //1회용량
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc7", bfDrprcpetc7 ) ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc8", bfDrprcpetc8 ) ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", bfprcpvol) ;
- }
- }
- } else{//회기준 보정 끝 원래
- if ( !isNull(orgprcpvol) && Math.round ( orgprcpvol * bfprcpqty * 1000 ) != bfprcpvol * 1000 ){
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", bfprcpqty * orgprcpvol) ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", bfprcpvol) ;
- }
- }
- }
- }
- model.setValue ( strSrc + "[" + sendRow + "]/prcpdelivefact", bfprcpdelivefact );
- model.setValue ( strSrc + "[" + sendRow + "]/powdflag", bfpowdflag );
- model.setValue ( strSrc + "[" + sendRow + "]/prnprcpflag", bfprnprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/prepprcpflag", bfprepprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/selfprcpflag", bfselfprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/selfdrugflag", bfselfdrugflag );
- model.setValue ( strSrc + "[" + sendRow + "]/drugpackflag", bfdrugpackflag );
- model.setValue ( strSrc + "[" + sendRow + "]/erprcpflag", bferprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", bfprecureprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/nigtprcpflag", bfnigtprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/portprcpflag", bfportprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/fixprcpflag", bffixprcpflag );
- model.setValue ( strSrc + "[" + sendRow + "]/anamneflag", bfanamneflag );
- model.setValue ( strSrc + "[" + sendRow + "]/erreadflag", bferreadflag );
- model.setValue ( strSrc + "[" + sendRow + "]/payflagcd", bfpayflagcd ); // 2011.03.03 마이그된 처방 전처방 복사시 급여도 복사하도록 수정
- }
- }
- }
-
- //20080917 마정민수정: PRN실처방은 전처방에서 복사되면 안된다.
- if ( model.getValue( strSrc + "[" + sendRow + "]/prcpinptflag" ) == "19" ) {
- messageBox ( "[" + model.getValue( strSrc + "[" + sendRow + "]/prcpnm" ) + "]: PRN 실처방은 처방등록 하실수", "I004" );
- return 0;
- }
-
- // 전처방에서 복사 시 소아 TPN은 전처방에서 복사 안되도록 요청. - 20090720 by MoonSH
- if( model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "A6" &&
- getArrayData ( model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^", 0, 23 , "^", "|" ) == "B") {
- messageBox ( "[" + model.getValue( strSrc + "[" + sendRow + "]/prcpnm" ) + "]: 소아 TPN 처방은 전처방에서 복사하실수", "I004" );
- return 0;
- }
- // 전처방에서 복사 시 stemcellflag 초기화 요청. - 20081118 by MoonSH
- if ( !isNull(bfstemcellflag) ){
- model.setValue ( strSrc + "[" + sendRow + "]/stemcellflag", "00NNN" );
- }
- // 전처방에서 복사 시 마이그레이션 잘못 들어와서 _0으로 존재 하는 실행부서 -으로 수정. - 20081202 by MoonSH
- if ( bfprcpexecdeptcd == "_0" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd", "-" );
- }
-
- //20091203 by sonjy 전처방 copy시 처방종류가 지시인경우 전처방에 저장된 시행부서를 copy하지 않고 초기화.[요청번호 8711 ]
- //(전실 환자의 경우 이전병동으로 보이는 문제 ) -- V/S(지시), 활동(지시), I/O(지시), 지시 : 식이,BMT제외
- var cur_prcpclscd = model.getValue( strSrc + "[" + sendRow + "]/prcpclscd" );
- if(cur_prcpclscd == "00" || cur_prcpclscd == "01"|| cur_prcpclscd == "02" || cur_prcpclscd == "09") {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd", model.getValue( strSrc + "[" + sendRow + "]/tempcol23") );
- }
- }
-
- //전처방이나 약속처방에서 임상처방체크된 처방을 발행할 경우 임상시험 부유형 자동세팅(subcretno), CHC, 2009-07-22
- if ( prcpInptFlag == "01" || prcpInptFlag == "02" ) {
- if ( model.getValue( strSrc + "[" + sendRow + "]/clincstdyflag" ) == "Y" ) {
- fSubcretnoSet("2", "Y", strSrc, sendRow);
- }
- //전처방이나 약속처방일때 용량/수량 보정 20100209 LYJ
- var prcpclscd = model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" );
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
- if( bfprcpsrchyn == "Y" && model.getValue( strSrc + "[" + sendRow + "]/prcpclscd" ) != "09" && model.getValue( strSrc + "[" + sendRow + "]/prcpinptflag" ) != "35"){ // 자가보유처방은 보정 제외한다. 20100504 LYJ
- var bfprcpvol = model.getValue( strSrc + "[" + sendRow + "]/prcpvol" );
- var bfprcpqty = model.getValue( strSrc + "[" + sendRow + "]/prcpqty" );
- var sdrugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec");
- var orgprcpvol = getArrayData ( sdrugmastspec + "^", 0, 1 , "^", "|" ); //drugcntsvol 함량기준용량
- if ( !isNull(orgprcpvol) && Math.round ( orgprcpvol * bfprcpqty * 1000 ) != bfprcpvol * 1000 ){
- var bfDrprcpetc7 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc7"); //1회용량
- var bfDrprcpetc8 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc8"); //1회수량
- var bfprcptims = model.getValue( strSrc + "[" + sendRow + "]/prcptims" );
- if(!isNull(bfDrprcpetc7) && !isNull(bfDrprcpetc8) && (colHidnValue == "C" || colHidnValue == "G" || colHidnValue == "H") ){
- var orgDrprcpetc7 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc7"); //1회용량
- var orgDrprcpetc8 = model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc8"); //1회수량
- var orgCalcRate = 0;
- var calcmthdcd = getArrayData ( sdrugmastspec + "^", 0, 26, "^", "|" );
- if( calcmthdcd == "1" ){
- orgCalcRate = (orgDrprcpetc8 * bfDrprcpetc8) * 1000;
- orgCalcRate = Math.round(orgCalcRate);
- orgCalcRate = orgCalcRate / 1000;
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", orgDrprcpetc7 * bfprcptims) ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc7", orgDrprcpetc7 ) ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc8", bfDrprcpetc8 ) ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", orgDrprcpetc7) ;
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", bfDrprcpetc7 ) ; //1회용량
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc7", bfDrprcpetc7 ) ; //1회용량*횟수
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc8", bfDrprcpetc8 ) ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", bfprcpvol) ;
- }
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", bfprcpqty * orgprcpvol) ;
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", bfprcpvol) ;
- }
- }
- }
- }
- }
-
- //자가보유 처방일때 처방명 재설정 한다. 20100427 LYJ
- if (model.getValue( strSrc + "[" + sendRow + "]/prcpinptflag") == "35"){
- var selfprcpnm = model.getValue( strSrc + "[" + sendRow + "]/prcpnm" );
- var selflen = selfprcpnm.length;
- if (prcpInptFlag != "35"){
- selfprcpnm1 = selfprcpnm.substring(7, selflen);
- model.setValue ( strSrc + "[" + sendRow + "]/orgprcpnm", selfprcpnm1) ;
- }
- }
- if ( prcpInptFlag == "35" ) { //자가보유
- model.setValue ( strSrc + "[" + sendRow + "]/orgprcpnm", model.getValue( strSrc + "[" + sendRow + "]/prcpnm" )) ;
- }
- var prcpClsCd = model.getValue( strSrc + "[" + sendRow + "]/prcpclscd" );
- var prcpKindCd = model.getValue( strSrc + "[" + sendRow + "]/prcpkindcd" );
- var drugmthdspccd = model.getValue( strSrc + "[" + sendRow + "]/drugmthdspccd" );
- var prcpnm = model.getValue( strSrc + "[" + sendRow + "]/prcpnm" );
- var drugmastspec = model.getValue( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^";
- var hsctflag = "N";
- var cpchk = "";
- var usge = "";
- var prcpgenrflag = "";
-
- if ( objFlag == "child" ) {
- usge = opener.model.getValue ( "/root/usge" );
- cpchk = opener.model.getValue ( "/root/cp" );
- prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- } else {
- usge = model.getValue ( "/root/usge" );
- cpchk = model.getValue ( "/root/cp" );
- prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
- }
-
- if ( usge == "prms" || usge == "direc" || usge == "home" ) {
- prcpInptFlag = "02";
- }
- if ( prcpClsCd == "-" ) {
- messageBox ( prcpnm + " 처방은 처방분류가 없어 처방등록을 하실 수 없습니다.", "E" );
- return 0;
- }
-
- var iprcpqty = eval(model.getValue( strSrc + "[" + sendRow + "]/prcpqty" ));
- var iprcptims = eval(model.getValue( strSrc + "[" + sendRow + "]/prcptims" ));
- if ( model.getValue( strSrc + "[" + sendRow + "]/tempcol18" ) == "MC" && (iprcpqty != 1 || iprcptims != 1 )) {
- messageBox ( "[" + prcpnm + "] 전환데이터 연속검사처방은 처방복사 하실 수 없습니다. ( 수량:" + iprcpqty + ", 횟수:" + iprcptims + " )" , "E" );
- return 0;
- }
- var addprcpchk = ""
- if ( objFlag == "child" ) {
- addprcpchk = opener.model.getValue ( "/root/addprcp" );
- } else {
- addprcpchk = model.getValue ( "/root/addprcp" );
- }
- if ( addprcpchk == "Y" ){ //시행부서체크
- //시행부서 처방은 마약불가
- var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
- //20080721 마정민수정 김민선 선생님의 요청. 의사권한이 있는사람은 처방 가능.
- if ( spcldrug == "M" ) {
- var prcpauthflag = "";
- if ( objFlag == "child" ) {
- prcpauthflag = opener.model.getValue ( "/root/init/prcpauthflag" )
- } else {
- prcpauthflag = model.getValue ( "/root/init/prcpauthflag" )
- }
- if (prcpauthflag != "3" ){
- messageBox ( prcpnm + " 마약처방은 시행부서에서 의사만 등록이 가능한 처방입니다.", "E" );
- return 0;
- }
- }
- }
- //20090302 마정민수정: Irradiation(LBT70010) 단독처방 불가
- if ( objFlag == "child" ) {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" ) == opener.model.getValue ( "/root/initsrch/irrprcpcd/trgtcd" )) {
- messageBox ( prcpnm + "는 단독처방이 불가합니다. 수혈상세팝업의 Irr 체크기능을 통해 등록해 주십시오", "E" );
- return 0;
- }
- } else {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" ) == model.getValue ( "/root/initsrch/irrprcpcd/trgtcd" )) {
- messageBox ( prcpnm + "는 단독처방이 불가합니다. 수혈상세팝업의 Irr 체크기능을 통해 등록해 주십시오", "E" );
- return 0;
- }
- }
- if ( prcpClsCd == "A2" || prcpClsCd == "A4" || prcpClsCd == "A6" ) {
- if (isNull(model.getValue ( strSrc + "[" + sendRow + "]/prcpvolunitnm"))) {
- messageBox ( model.getValue ( strSrc + "[" + sendRow + "]/prcpnm") + " 처방의 용량단위가", "E014" );
- return 0;
- }
- if ( isNull(model.getValue ( strSrc + "[" + sendRow + "]/prcpqtyunitnm"))) {
- messageBox ( model.getValue ( strSrc + "[" + sendRow + "]/prcpnm") + " 처방의 수량단위가", "E014" );
- return 0;
- }
- }
-
- //20090903 이윤정 추가: 응급 탭에서 선택된 환자의 경우 심야가산적용 자동 체크
- if ( objFlag == "child" ) {
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- if (prcpgenrflag == "E"){
- if ( prcpClsCd == "H2" || prcpClsCd == "H4" ) {
- model.setValue( strSrc + "[" + sendRow + "]/nigtprcpflag","N" );
- var nigtprcptm = opener.model.getValue("/root/initsrch/nigtprcptm/trgtcd");
- var nigtprcpsplit = nigtprcptm.split("|");
- var nigtprcpstart = nigtprcpsplit[0];
- var nigtprcpend = nigtprcpsplit[1];
- var MyTime = getCurrentTime();
- var realtime = MyTime.substr(0,4);
-
- if ( nigtprcpstart < realtime || realtime < nigtprcpend){
- model.setValue( strSrc + "[" + sendRow + "]/nigtprcpflag","Y" );
- }
- }
- }
- }else{
- var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
- if (prcpgenrflag == "E"){
- if ( prcpClsCd == "H2" || prcpClsCd == "H4" ) {
- model.setValue( strSrc + "[" + sendRow + "]/nigtprcpflag","N" );
- var nigtprcptm = model.getValue("/root/initsrch/nigtprcptm/trgtcd");
- var nigtprcpsplit = nigtprcptm.split("|");
- var nigtprcpstart = nigtprcpsplit[0];
- var nigtprcpend = nigtprcpsplit[1];
- var MyTime = getCurrentTime();
- var realtime = MyTime.substr(0,4);
- if ( nigtprcpstart < realtime || realtime < nigtprcpend){
- model.setValue( strSrc + "[" + sendRow + "]/nigtprcpflag","Y" );
- }
- }
- }
- }
-
- //-- CP, 항암프로토콜일 경우는 클라이언트에서 품절약체크를 하지 않는다 --//
- if( prcpInptFlag != "05" && prcpInptFlag != "06" && prcpInptFlag != "17" ){
- if ( prcpClsCd == "A2" || prcpClsCd == "A4" || prcpClsCd == "A6" ) {
-
- //항생제체크
- var returnVal = fGetHardCDList("Y", 233, 3); // 2010. 10. 26. 경북대는 CDSS 추천항생제를 사용하지 않음. 따라서 사용여부를 처방 하드코드 테이블로 설정할 수 있도록 함.
- if (returnVal =="Y") {
- if ( usge == "prcp" && prcpgenrflag != "O" && prcpClsCd == "A6") {
- if ( getArrayData ( drugmastspec + "^", 0, 23, "^", "|" ) == "P" && getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "N" ) {
- if ( objFlag == "child" ) {
- if (opener.javascript.fAntiMicChk ( sendRow, "child", strSrc, prcpInptFlag ) == 0){
- return 0;
- }
- } else {
- if (fAntiMicChk ( sendRow, "1", strSrc, prcpInptFlag ) == 0 ){
- return 0;
- }
- }
- }
- }
- //제한항생제체크
- if ( usge == "prcp" && prcpgenrflag != "O" ) {
- if ( getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "Y" ) {
- if ( objFlag == "child" ) {
- if (opener.javascript.fAntiMicChk ( sendRow, "child", strSrc, prcpInptFlag ) == 0){
- return 0;
- }
- } else {
- if (fAntiMicChk ( sendRow, "1", strSrc, prcpInptFlag ) == 0 ){
- return 0;
- }
- }
- }
- }
- }
- //BY 문세희 20080930 END
- //품절약 체크
- if ( getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) {
- if ( objFlag == "child" ) {
- opener.javascript.fAltDrug ( sendRow, "child", strSrc, prcpInptFlag );
- } else {
- fAltDrug ( sendRow, "1", strSrc, prcpInptFlag );
- }
- return 0;
- }
- //20090528 마정민 추가. 6세미만 경구약 자동 powdflag전환 때문에 처방복사시 powdflag체크로직 추가. 단 전처방복사는제외.
- var vAge = 99;
- if ( objFlag == "child" ) {
- vAge = parseInt ( opener.model.getValue ( "/root/paminfo/list/age" ));
- } else {
- vAge = parseInt ( model.getValue ( "/root/paminfo/list/age" ));
- }
- if ( vAge < 6 && prcpClsCd == "A2" && prcpInptFlag != "01" ) {
- if ( getArrayData ( drugmastspec + "^", 0, 19, "^", "|" ) == "2" ) { //산제불가
- if ( objFlag == "child" ) {
- opener.javascript.fAltDrug ( sendRow, "child", strSrc, prcpInptFlag, "4" );
- if ( opener.javascript.getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- opener.javascript.clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- } else {
- fAltDrug ( sendRow, "4", strSrc, prcpInptFlag );
- if ( getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- }
- //20090602 배성미선생님 요청으로 산제불가 취소해도 복사되게 수정
- } else if ( getArrayData ( drugmastspec + "^", 0, 19, "^", "|" ) == "1" ) { //산제주의
- if ( objFlag == "child" ) {
- opener.javascript.fAltDrug ( sendRow, "child", strSrc, prcpInptFlag, "5" );
- if ( opener.javascript.getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- opener.javascript.clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- } else {
- fAltDrug ( sendRow, "5", strSrc, prcpInptFlag );
- if ( getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- }
- }
- }
- }
- //대체처방체크
- var altcdinfo = model.getValue( strSrc + "[" + sendRow + "]/tempcol16" );
- var prcpinptflag = model.getValue( strSrc + "[" + sendRow + "]/prcpinptflag" );
- if ( altcdinfo.substring( 0, 1 ) != "X" && altcdinfo.substring( 0, 1 ) != "A" ) {
- if(altcdinfo.substring( 0, 1 ) == "D") { // 수가 종료 처방 복사 불가 처리 2013.04.18 엄영만
- if(prcpInptFlag == "02") {
- messageBox ( "[" + prcpnm + "]: 수가 또는 검사실 사용종료 되어 처방을 복사 할 수 없습니다.\n\n상단메뉴 기본정보관리->약속Set 메뉴에서 약속처방을 재구성 하시기 바랍니다.", "E999" );
- } else {
- messageBox ( "[" + prcpnm + "]: 수가 또는 검사실 사용종료 되어 처방을 복사", "E001" );
- }
- return 0;
- }
-
- if (prcpinptflag !="35") { // 자가보유처방은 복사 가능 20100504 by LYJ
- messageBox ( "[" + prcpnm + "]: 수가 또는 검사실 사용종료 되어 처방을 복사", "E001" );
- return 0;
- }
- }
- if (altcdinfo.substring( 0, 1 ) == "X" ) {
- if ( objFlag == "child" ) {
- opener.javascript.fAltPrcpCd ( sendRow, "child", strSrc, prcpInptFlag );
- } else {
- fAltPrcpCd ( sendRow, "1", strSrc, prcpInptFlag );
- }
- return 0;
- }
- }
- //-- CP, 항암프로토콜 처방의 품절약 체크 제외 끝 --//
- if (!fPrmsSaveCheck ( usge, prcpKindCd, prcpnm )) {
- return 0;
- }
- if ( prcpInptFlag == "01" ) { //전회처방
- //반환요청된 처방, D/C된 처방 모두 처방 복사 불가, CHC, 2009-08-03
- //if ( model.getValue ( strSrc + "[" + sendRow + "]/prcphistcd" ) == "E" ) {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcphistcd" ) == "E" || model.getValue ( strSrc + "[" + sendRow + "]/prcphistcd" ) == "C") {
- messageBox ( "반납처방은 처방복사", "E001" );
- return 0;
- }
- //종속처방 자처방 복사 불가
- var inclprcpno = model.getValue ( strSrc + "[" + sendRow + "]/inclprcpno" );
- if ( !isNull(inclprcpno) && inclprcpno != "-" ) {
- if ( eval(inclprcpno) > 0 ) {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/grupsnglflag" ) != "M" ) {
- return 0;
- }
- }
- }
- //20080731: 마정민 수정 hsct 자처방 복사 불가
- var hsctlnkno = model.getValue ( strSrc + "[" + sendRow + "]/hsctlnkno" );
- if ( !isNull(hsctlnkno) && hsctlnkno != "-" ) {
- if ( eval(hsctlnkno) > 0 ) {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpsetcd" ) != "-" ) {
- return 0;
- }
- }
- }
- }
- if ( model.getValue( strSrc + "[" + sendRow + "]/grupsnglflag" ) == "M" ) { //그룹코드 M을 찾아낸다. 처방검색일때만 풀린다.
- var grupCond1 = model.getValue( strSrc + "[" + sendRow + "]/prcpcd" );
- var grupCond3 = "";
- var grupCond4 = "";
- var inclprcpno = "";
- if ( objFlag == "child" ) {
- grupCond3 = opener.model.getValue ( "/root/init/prcpdd" );
- grupCond4 = opener.model.getValue ( "/root/paminfo/list/insukind");
- if ( usge == "prcp" ) { //처방화면에만 종속처방이 적용된다.
- inclprcpno = eval(opener.model.getValue ( "/root/init/inclprcpno")) + 1; //종속처방번호를 받아온다.
- }
- } else {
- grupCond3 = model.getValue ( "/root/init/prcpdd" );
- grupCond4 = model.getValue ( "/root/paminfo/list/insukind");
- if ( usge == "prcp" ) {//처방화면에만 종속처방이 적용된다.
- inclprcpno = eval(model.getValue ( "/root/init/inclprcpno")) + 1; //종속처방번호를 받아온다.
- }
- }
-
- prcpGroupSrch ( grupCond1, grupCond3, grupCond4 );
- if ( grupSrc == null ) grupSrc = "/root/prcpgroup/prcplist";
- var srcNodeList = model.instances(0).selectNodes( grupSrc );
- if ( srcNodeList.length > 0 ) {
- if ( objFlag == "child" ) {
- var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- if (!opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "N", inclprcpno )) {
- return 0;
- }
- } else {
- var destNode = strDest;
- model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- if (!addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "N", inclprcpno )) {
- return 0;
- }
- }
- srchRow ++;
-
- if ( usge == "prcp" ) {
- for (var i=1; i<=srcNodeList.length; i++) {
- if ( objFlag == "child" ) {
- var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- if (!opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "N", inclprcpno )) {
- return 0;
- }
- } else {
- var destNode = strDest;
- model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- if (!addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "N", inclprcpno )) {
- return 0;
- }
- }
- if ( objFlag == "child" ) {
- srchRow = opener.javascript.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- } else {
- srchRow = addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- }
- srchRow ++;
- }
- }
- }
- } else if ( model.getValue( strSrc + "[" + sendRow + "]/grupsnglflag" ) == "J" ) { //그룹지시처방 J을 찾아낸다.
- //조회조건
- var direcCond1 = model.getValue( strSrc + "[" + sendRow + "]/srchcondcnts" );
- var direcCond5 = model.getValue( strSrc + "[" + sendRow + "]/prcpcd" );
- var direcCond3 = "";
- var direcCond4 = "";
- if ( prcpClsCd == "04" ) {
- hsctflag = "Y";
- }
- if ( objFlag == "child" ) {
- direcCond3 = opener.model.getValue ( "/root/init/prcpdd" );
- direcCond4 = opener.model.getValue ( "/root/paminfo/list/insukind");
- } else {
- direcCond3 = model.getValue ( "/root/init/prcpdd" );
- direcCond4 = model.getValue ( "/root/paminfo/list/insukind");
- }
- prcpDirecSrch ( direcCond1, direcCond3, direcCond4, direcCond5 );
- if ( direcSrc == null ) direcSrc = "/root/prcpdirec/prcplist";
- var srcNodeList = model.instances(0).selectNodes( direcSrc );
- if ( srcNodeList.length > 0 ){ //그룹지시처방 J는 종속하는 수가 코드가 있을 때만 추가.
- //HSCT 모코드는 HSCTTEMPFLAG 가 N이다.
- if ( objFlag == "child" ) {
- var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- //종속처방번호 Setting ( hsctlnkno )
- var hsctlnkno = eval ( opener.model.getValue ( "/root/init/hsctlnkno" )) + 1;
- opener.model.setValue ( "/root/init/hsctlnkno", hsctlnkno );
- if (!opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "M" )) {
- return 0;
- }
- } else {
-
- var destNode = strDest;
- var hsctlnkno = eval ( model.getValue ( "/root/init/hsctlnkno" )) + 1;
- model.setValue ( "/root/init/hsctlnkno", hsctlnkno );
- model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- if (!addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "M" )) {
- return 0;
- }
- }
-
- //CP 약속셋 생성 시에는 자코드가 풀리면 안된다. CP배치를 통해 실처방 저장시 풀린다! (2008.01.22)
- if( opener.model.getValue("/root/cp") == "S" || model.getValue("/root/cp") == "S" ){
- return;
- }
-
- if ( objFlag == "child" ) {
-
- srchRow = opener.javascript.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- } else {
-
- srchRow = addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- }
- srchRow ++;
- for (var k=1; k <= srcNodeList.length; k++) {
- if ( objFlag == "child" ) {
- var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- model.duplicate( destNode, direcSrc + "[" + k + "]", "*[" + srchRow + "]");
- if (!opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, hsctflag )) {
- return 0;
- }
- } else {
- var destNode = strDest;
- model.duplicate( destNode, direcSrc + "[" + k + "]", "*[" + srchRow + "]");
- if (!addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, hsctflag )) {
- return 0;
- }
- }
- if ( objFlag == "child" ) {
- srchRow = opener.javascript.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- } else {
- srchRow = addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- }
- srchRow ++;
- }
- }
- } else if ( (prcpClsCd == "B2" || prcpClsCd == "B4" || prcpClsCd == "B6") && (getArrayData (drugmastspec, 0, 2, "^", "|" ) == "0" || getArrayData (drugmastspec, 0, 2, "^", "|" ) == "-")){
- //검사대분류유형(testlrgkind) 그룹: 0, 1
- //-일 때는 검체와 상관없는 그룹코드
- var grupCond1 = model.getValue( strSrc + "[" + sendRow + "]/prcpcd" );
- var grupCond3 = "";
- var grupCond4 = "";
- var popflag = "group"
- if ( objFlag == "child" ) {
- popflag = "child";
- grupCond3 = opener.model.getValue ( "/root/init/prcpdd" );
- grupCond4 = opener.model.getValue ( "/root/paminfo/list/insukind");
- } else {
- grupCond3 = model.getValue ( "/root/init/prcpdd" );
- grupCond4 = model.getValue ( "/root/paminfo/list/insukind");
- }
- //구수가코드일 경우
- if ( oldprcpflag == "Y" ) {
- popflag = "oldprcp";
- }
- var drugmthdspccd = model.getValue ( strSrc + "[" + sendRow + "]/drugmthdspccd" );
- var spccd = "";
- var spcnm = "";
- fGetSpc ( sendRow, popflag, objFlag )
- if ( drugmthdspccd == "998" ) {
- if ( getParameter ("SPMMO03500_rtn_useyn") == "Y" ) {
- spccd = getParameter ( "SPMMO03500_rtn_spccd" );
- spcnm = getParameter ( "SPMMO03500_rtn_spcscrnnm" );
- }
- clearParameter ( "SPMMO03500_rtn_useyn" );
- clearParameter ( "SPMMO03500_rtn_spccd" );
- clearParameter ( "SPMMO03500_rtn_spcscrnnm" );
- } else if ( drugmthdspccd == "999" ) {
- if ( getParameter ("SPMMO03400_rtn_useyn") == "Y" ) {
- spccd = getParameter ( "SPMMO03400_rtn_spccd" );
- spcnm = getParameter ("SPMMO03400_rtn_spcscrnnm" );
- }
- clearParameter ( "SPMMO03400_rtn_useyn" );
- clearParameter ( "SPMMO03400_rtn_spccd" );
- clearParameter ( "SPMMO03400_rtn_spcscrnnm" );
- } else { //팝업이 뜨지 않을 때는 본체의 검체코드로 검색한다.
- spccd = drugmthdspccd;
- spcnm = model.getValue ( strSrc + "[" + sendRow + "]/drugmthdspccdnm" );
- }
-
- prcpGroupSrch ( grupCond1, grupCond3, grupCond4, spccd, getArrayData (drugmastspec, 0, 2, "^", "|" ), "getLisPrcpGroupInfo" );
- if ( objFlag == "child" ) {
- var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- } else {
- var destNode = strDest;
- }
- if ( grupSrc == null ) grupSrc = "/root/prcpgroup/prcplist";
- var srcNodeList = model.instances(0).selectNodes( grupSrc );
-
- for (var i=1; i<=srcNodeList.length; i++) {
- if ( objFlag == "child" ) {
- var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- if (!opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag )) {
- return 0;
- }
- if (!isNull(spccd)) {
- if ( getArrayData (drugmastspec, 0, 2, "^", "|" ) != "-" ) {
- opener.model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccd", spccd );
- opener.model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccdnm", spcnm );
- }
- }
- } else {
- var destNode = strDest;
- model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- if (!addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag )) {
- return 0;
- }
- if (!isNull(spccd)) {
- if ( getArrayData (drugmastspec, 0, 2, "^", "|" ) != "-" ) {
- model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccd", spccd );
- model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccdnm", spcnm );
- }
- }
- }
- srchRow ++;
- }
- } else { //그룹코드 M, J 가 아닐 경우
- if ( objFlag == "child" ) {
- var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- //전처방 때문에 duplicate => addPrcpSetValue 하는 것으로 수정
- //먼저 set 하면 전처방 화면 내용이 수정되고 그로인해 처방키 초기화로 인해 D/C 시 에러
- if (!opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag )) {
- return 0;
- }
- } else {
- var destNode = strDest;
- model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- //전처방 때문에 duplicate => addPrcpSetValue 하는 것으로 수정 (main에서는 필요없지만 구조를 맞추려 같이 고침)
- //먼저 set 하면 전처방 화면 내용이 수정되고 그로인해 처방키 초기화로 인해 D/C 시 에러
- if (!addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag )) {
- return 0;
- }
- }
- if ( objFlag == "child" ) {
- srchRow = opener.javascript.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- } else {
- srchRow = addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- }
- srchRow ++;
- }
-
- //model.addLog(" ***************** End Of addPrcpDetl()");
-
- return srchRow; //검색 row 값을 넘겨준다.
- }
- /**
- * @desc : 처방main에 넘긴 후에 기본값을 setting한다.
- * @param : objFlag => child or ...
- : strSrc => setting할 source node
- : sendRow => setting할 row
- : prcpInptFlag => 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- : hsctflag => hsct 인지 표시
- : inclprcpcd => 종속처방코드
- * @return : true, false
- * @authur : 마정민 2007. 4. 12
- * @---------------------------------------------------
- */
- function addPrcpSetValue ( objFlag, strSrc , sendRow, prcpInptFlag, hsctflag, inclprcpno ) {
-
- if ( objFlag == "child") {
- opener.javascript.reqSetMonitoringLog("addPrcpSetValue", "WEB", getScreenID(), objFlag, prcpInptFlag); // 2017.12.20 사용여부를 체크 하기 위해 추가 엄영만
- } else {
- reqSetMonitoringLog("addPrcpSetValue", "WEB", getScreenID(), objFlag, prcpInptFlag); // 2017.12.20 사용여부를 체크 하기 위해 추가 엄영만
- }
-
- //model.addLog(" ************* Start Of addPrcpSetValue()");
-
- var prcpdd = ""; //처방일
- var prcpkindcd = ""; //처방종류변수
- var pamInfoNode = "/root/paminfo/list";
- var pid = ""; //환자번호
- var indd = ""; //진료일자
- var cretno = ""; //생성번호
- var orddeptcd = ""; //담당부서
- var orddrid = ""; //담당교수
- var prcpgenrflag = ""; //외래입원구분
- var prcpclscd = model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" );
- var orddeptcd = "";
- var org_prcpInptFlag = prcpInptFlag;
-
- if ( isNull(prcpInptFlag)){
- prcpInptFlag = model.getValue ( strSrc + "[" + sendRow + "]/prcpinptflag" );
- }
-
- if( (org_prcpInptFlag != "05" || (org_prcpInptFlag == "05" && model.getValue(strSrc + "[" + sendRow + "]/prcpinptflag") == "00")) && model.getValue (strSrc + "[" + sendRow + "]/prcpinptflag") != "35"){ //20100426 자가보유약일 때 prcpinptflag 35 로 지정한다 LYJ
- model.setValue ( strSrc + "[" + sendRow + "]/prcpinptflag", prcpInptFlag ); //처방입력구분
- prcpInptFlag = org_prcpInptFlag;
- }
-
- model.setValue ( strSrc + "[" + sendRow + "]/prcphistcd", "O" ); //처방이력코드:O
- model.setValue ( strSrc + "[" + sendRow + "]/prcpsignflag", "2" ); //처방이력구분:2
- model.setValue ( strSrc + "[" + sendRow + "]/prcprefseq", "0" ); //처방순서(전처방에 넘어올때도 있기때문에 0으로 클리어)
- model.setValue ( strSrc + "[" + sendRow + "]/etcprcpflag", "-" ); //디폴트세팅.
- //-- CP, 항암프로토콜일 경우 추가되는 saveflaginfo 값 셋팅 --//
- if( prcpInptFlag == "05" || prcpInptFlag == "06" ){
- if( model.getValue(strSrc + "[" + sendRow + "]/prcpcd") != "000000000033" ){
- //처방명의 구분이 2개가 중복되어 저장되는 문제 -> 원처방명을 저장, 공통 지시처방의 원처방명은 "전달사항" 이므로, 공통 지시처방만 제외
- model.setValue ( strSrc + "[" + sendRow + "]/prcpnm", model.getValue(strSrc + "[" + sendRow + "]/orgprcpnm") ); //makePrcpNm() 때문에 prcpnm->orgprcpnm
- }
-
- if( prcpInptFlag == "06" ){
- model.makeValue ( "/root/save/saveflaginfo/cpgappno", appNo_SMMMO00110 ); //CP처방 or 프로토콜처방 no
- model.makeValue ( "/root/save/saveflaginfo/prtlprcpstatus", prtlprcpstatus_SMMMO00110 ); //CP처방 or 프로토콜처방 저장 status
- model.makeValue ( "/root/save/saveflaginfo/prtlflag", "10" ); //프로토콜구분
- }
-
- }else{
- model.setValue ( strSrc + "[" + sendRow + "]/status", "I" );
- }
- //-- 셋팅 끝 --//
- var drugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec") + "^";
- var usge = model.getValue ( "/root/usge" );
- var spcldrug = getArrayData ( drugmastspec + "^", 0, 23, "^", "|" );
- //가정간호일때 시작일,종료일 바꿔준다.
- if (usge == "home") {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol6",model.getValue ( "/root/init/prcpfromdd" )); //시작일자
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol7",model.getValue ( "/root/init/prcptodd" )); //종료일자
- //20080825 마정민 수정 가정간호처방 주사일 경우 자동으로 home 체크. 단 마약이 아닐경우. TPN일 경우 추가 20081013 by Moonsh
- if ( prcpclscd == "A6" && spcldrug != "M" && getArrayData (drugmastspec , 0, 14, "^", "|" ) == "Y" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/selfprcpflag","Y"); //종료일자
- }
- }
- model.setValue ( strSrc + "[" + sendRow + "]/prcpauthflag", model.getValue ( "/root/init/prcpauthflag" )); //처방권한구분
- //수술예약번호 setting
- if( !isNull (model.getValue ( "/root/operation/list/oprsrvno"))){
- model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", model.getValue ( "/root/operation/list/oprsrvno"));
- //by sonjy 20091120 심야가산 check 마취료처방 추가
- if ( prcpclscd == "H2" || model.getValue ( strSrc + "[" + sendRow + "]/tempcol2" ) == "13|01|00" ) { //수술처방인경우
- //응급으로 수술예약정보가 있다면 erprcpflag를 Y로 setting 한다.
- var opflagcd = model.getValue("/root/operation/list/opflagcd"); // opflagcd 1:정규, 2:응급, 3:추가
- if(opflagcd == "2"){
- //model.setValue("/root/main/prcp/prcplist/erprcpflag", "Y");
- model.setValue ( strSrc + "[" + sendRow + "]/erprcpflag", "Y");
- }
- //수술시작시간이 오후 5시 이후에는 야간으로 체크한다.
- var opfromtmcd = model.getValue("/root/operation/list/opfromtmcd"); //opfromtmcd 수술시작시간
- //if(eval(opfromtmcd) > 170000 ) { //야간 시간 기준을 물어볼 것
- //수술및 마취료처방시 심야기준 08시이전, 18시 이후 by sonjy 20081211
- if(eval(opfromtmcd) >= 180000 || eval(opfromtmcd) < 80000 ) {
- model.setValue ( strSrc + "[" + sendRow + "]/nigtprcpflag", "Y");
- }
-
- //수술액팅일자 = 확정수술일자
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol22", model.getValue ( "/root/operation/list/opcnfmdd") );
-
- }
- } else {
- // CP 에서는 수동으로 수술예약번호를 mapping 한다.
- if( model.getValue ( "/root/cp" ) != "Y" ){
- model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", "0" );
- }else{
- if( isNull (model.getValue (strSrc + "[" + sendRow + "]/oprsrvno" )))
- model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", "0" );
- }
- }
-
- var srcNodeList = model.instances(0).selectNodes( "/root/paminfo" );
- if ( srcNodeList.length == 0 ){
- messageBox ( "환자정보가", "E014" );
- return false;
- }
-
- prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
- pid = model.getValue ( pamInfoNode + "/pid" );
- orddeptcd = model.getValue ( pamInfoNode + "orddeptcd" );
-
- //by sonjy 2008-08-25 건진일 경우 check추가.
- if ( prcpgenrflag == "O" || prcpgenrflag == "S" ) {
- indd = model.getValue ( pamInfoNode + "/orddd" );
- orddrid = model.getValue ( pamInfoNode + "/orddrid" );
- } else {
- indd = model.getValue ( pamInfoNode + "/indd" );
- orddrid = model.getValue ( pamInfoNode + "/medispclid" );
- }
- cretno = model.getValue ( pamInfoNode + "/cretno" );
- orddeptcd = model.getValue ( pamInfoNode + "/orddeptcd" );
-
- //2011.11.07 엄영만 선택진료여부 및 선택진료의사 셋팅
- if (prcpclscd != "D2" || usge != "prcp") { // 처방시에 병리처방은 의뢰지 팝업후 검체코드설정되면 선택의사 설정 함.(의뢰지 작성후 팝업 되도록) 2011.11.25 엄영만.
- fSetPrcpSpecValue(strSrc, sendRow, prcpInptFlag);
- }
-
- //-- CP,항암프로토콜일 경우, 처방일과 처방종류가 일률적으로 입력되지 않는다 --//
- if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
- prcpdd = model.getValue ( "/root/init/prcpdd" ); //처방일
- prcpkindcd = model.getValue ("/root/init/prcpkindcd"); //처방종류(정규,추가...)
-
- //외래이고 약속 set/전처방 copy시 입원전 검사일 경우 prcpkindcd를 20으로 초기화하지 않는다.
- //by sonjy 김민선 선생님 요청사항 20080925
- if( prcpgenrflag == "O" &&
- (model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" ) == "90" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd") == "95" ) ){
- prcpkindcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" ) ;
- }
- }else{
- //JJE-
- prcpdd = model.getValue ( strSrc + "[" + sendRow + "]/prcpdd" );
- prcpkindcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" );
- if(isNull(prcpdd)){
- prcpdd = model.getValue ( "/root/init/prcpdd" );
- }
- //JJE root/init/prcpdd 를 해당 미래일자로 변경... (2008.09.11)
- if( prcpdd != model.getValue("/root/init/prcpdd") && prcpdd > model.getValue("/root/init/prcpdd") ){
- model.setValue("/root/init/prcpdd", prcpdd);
- cmb_prcpdd.refresh();
- }
-
- var prcpsetcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpsetcd" );
- if(prcpsetcd != "-"){
- //풀린 자코드에 처방종류 및 처방입력구분을 모코드와 동일하게 넣어줌
- var prcpddNode = instance1.selectSingleNode("/root/main/prcp/prcplist[prcpcd='" + prcpsetcd + "']/prcpdd");
- var prcpkindcdNode = instance1.selectSingleNode("/root/main/prcp/prcplist[prcpcd='" + prcpsetcd + "']/prcpkindcd");
- var etclnkspecNode = instance1.selectSingleNode("/root/main/prcp/prcplist[prcpcd='" + prcpsetcd + "']/etclnkspec");
- var prcpinptflagNode = instance1.selectSingleNode("/root/main/prcp/prcplist[prcpcd='" + prcpsetcd + "']/prcpinptflag");
- if( prcpddNode != null ){
- prcpdd = prcpddNode.text;
- }
- if( prcpkindcdNode != null ) prcpkindcd = prcpkindcdNode.text;
- if( etclnkspecNode != null ){
- model.makeValue ( strSrc + "[" + sendRow + "]/etclnkspec", etclnkspecNode.text );
- }
- if( prcpinptflagNode != null ){
- model.makeValue ( strSrc + "[" + sendRow + "]/prcpinptflag", prcpinptflagNode.text );
- }
- }
- model.makeValue ( strSrc + "[" + sendRow + "]/prcphopedd", prcpdd );
- //-JJE
- }
-
- //마취기록화면에서 처방화면을 띄우면
- //마취처방일 경우 필수입력구분이 1이면 수술시간과, 수술구분을 넣어준다. 넣어지는 기준은 마취처방상세팝업과 동일하다.
- if ( model.getValue ( "/root/anst/paramyn" ) == "Y" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpinptflag", "27" );
- if ( prcpclscd == "I2" || prcpclscd == "I4" ){ //마취
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpessninptflag" ) == "1" ) { // 필수입력구분이 1
- var earncls = model.getValue ( strSrc + "[" + sendRow + "]/tempcol2" );
- if ( earncls != "04|01|00" && earncls != "05|01|00" ) { //마취구분
- model.setValue ( strSrc + "[" + sendRow + "]/opansflagcd", model.getValue ( "/root/anst/opansflagcd" ));
- }
- model.setValue ( strSrc + "[" + sendRow + "]/ansttm", model.getValue ( "/root/anst/ansttm" ));//마취시간
- model.setValue ( strSrc + "[" + sendRow + "]/clinccmtcnts", model.getValue ( "/root/anst/anstfromdt" ) + "|" + model.getValue ( "/root/anst/ansttodt" ));
- }
-
- }
- } else {
- if ( prcpclscd == "I2" || prcpclscd == "I4" ){ //마취
- model.setValue ( strSrc + "[" + sendRow + "]/clinccmtcnts", "-" );
- }
- }
- model.setValue ( strSrc + "[" + sendRow + "]/prcphopedd",prcpdd); //처방희망일자
- //전처방이나 약속처방에서 시행부서가 현재 존재 하는 부서인지 체크 2012.10.29 엄영만
- if ( prcpInptFlag == "01" || prcpInptFlag == "02" ) {
- var bfprcpexecdeptcd = model.getValue( strSrc + "[" + sendRow + "]/prcpexecdeptcd" );
- var CheckExecdeptcdNode;
- if ( objFlag == "child" ) {
- CheckExecdeptcdNode = opener.model.instance1.selectNodes( "/root/orddept/dept[deptcd='" + bfprcpexecdeptcd + "']" );
- } else {
- CheckExecdeptcdNode = model.instance1.selectNodes( "/root/orddept/dept[deptcd='" + bfprcpexecdeptcd + "']" );
- }
- if(CheckExecdeptcdNode == null || CheckExecdeptcdNode.length == 0) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd", "-" );
- }
- }
-
- //전처방 clear
- if ( prcpInptFlag == "01" ) {
- // 전처방 복사시 초기화해야 할 것 ( PAMPKSpec, PrcpKindCd 등은 처방 복사시 다시 setting 해줌 )
- if ( prcpclscd == "B2" ) { // 진검 전처방에서 응급 체크되어 있는 것은 복사 시에도 응급 체크되어지도록 요청 - 20081127 by MoonSH
- var erprcpflag = model.getValue ( strSrc + "[" + sendRow + "]/erprcpflag" );
- if ( erprcpflag == "Y") {
- model.setValue ( strSrc + "[" + sendRow + "]/erprcpflag", "Y" );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/erprcpflag", "N" );
- }
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/erprcpflag", "N" ); //2008-01-28 약국요청 응급은 복사되면 안됨
- }
- model.setValue ( strSrc + "[" + sendRow + "]/rgstdt", "" ); //rgstdt: 등록일시
- model.setValue ( strSrc + "[" + sendRow + "]/rgstridnm", "" ); //rgstridnm: 등록자명
- model.setValue ( strSrc + "[" + sendRow + "]/tempprcpflag", "N" ); //tempprcpflag: 임시처방구분
- model.setValue ( strSrc + "[" + sendRow + "]/etcprcpresncd", "-" ); //etcprcpresncd: 응급의학관리료 사유 (코드정의서 M0012 참조), 수혈반납 및 폐기사유코드 (코드정의서 M0037, M0038 참조), 재활처방 마감일자
- model.setValue ( strSrc + "[" + sendRow + "]/ordreqlnkno", "0" ); //ordreqlnkno: 진료의뢰연결번호
- model.setValue ( strSrc + "[" + sendRow + "]/testreqlnkno", "0" ); //testreqlnkno: 검사의뢰연결번호
- model.setValue ( strSrc + "[" + sendRow + "]/prcplnkdd", "00000000" ); //prcplnkdd: 임시처방에 대한 연계 일자
- model.setValue ( strSrc + "[" + sendRow + "]/prcplnkno", "0" ); //prcplnkno: 임시처방에 대한 연계 번호
- model.setValue ( strSrc + "[" + sendRow + "]/prtlno", "0" ); //prtlno: 프로토콜SET에 대한 코드로 일련번호 형태로 관리
- model.setValue ( strSrc + "[" + sendRow + "]/contprcpspec", "-" ); //contprcpspec: 연속처방내역
- model.setValue ( strSrc + "[" + sendRow + "]/etclnkspec", "-" ); //etclnkspec: 항암프로토콜번호|CP번호
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol6", "" ); //전처방 화면 display clear
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol7", "" ); //전처방 화면 display clear
-
- var antibiotics = getArrayData ( model.getValue ( strSrc + "[" + sendRow + "]/tempcol8" ) + "^", 0, 0, "^", "|" );
- if ( antibiotics != "antibiotics" ){ //20081020: 마정민수정. 전처방에 항생제 값이 setting 되어 있다면 클리어 시키지 않는다.
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol8", "" ); //전처방 화면 display clear
- }
-
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol9", "" ); //전처방 화면 display clear
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol12", "" ); //전처방 화면 display clear
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol13", "" ); //전처방 화면 display clear
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol14", "" ); //전처방 화면 display clear
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol15", "" ); //전처방 화면 display clear
-
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc1", "" ); //건진 SET처방
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc3", "" ); //OCR출력정보
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc4", "" ); //귀가유치용물품여부
- model.setValue ( strSrc + "[" + sendRow + "]/drprcpetc5", "" ); //multi-day no
- model.setValue ( strSrc + "[" + sendRow + "]/druglnkno", "0" );
- model.setValue ( strSrc + "[" + sendRow + "]/drgacptflag", "-" ); // DRG인정 전처방 복사시 clear
- if ( prcpclscd == "B2" || prcpclscd == "B6") {
-
- var contyn = getArrayData ( drugmastspec, 0, 5, "^", "|" );
- if ( contyn == "Y" ) {
- var conttestintvlflag = model.getValue ( strSrc + "[" + sendRow + "]/diagtestconttestintvlflag" );
- if ( conttestintvlflag == "N" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/diagtestconttestcdspec", "-" );
- model.setValue ( strSrc + "[" + sendRow + "]/drugrateqty", "-" );
- model.setValue ( strSrc + "[" + sendRow + "]/diagtestconttestorgtims", "1" );
- } else {
- var cdnm = model.getValue ( "/root/init/conttestintvlflag/M0545[cdid=" + conttestintvlflag + "]/cdnm" );
- var diagtestconttestbasetm = model.getValue ( strSrc + "[" + sendRow + "]/diagtestconttestbasetm" );
- model.setValue ( strSrc + "[" + sendRow + "]/diagtestconttestcdspec", diagtestconttestbasetm + cdnm );
- model.setValue ( strSrc + "[" + sendRow + "]/drugrateqty", diagtestconttestbasetm );
- model.setValue ( strSrc + "[" + sendRow + "]/diagtestconttestorgtims", "1" );
- }
- }
- }
- }
- //-- CP,항암프로토콜일 경우 etclnkspec 컬럼 값 셋팅 --//
- else if( prcpInptFlag == "05" ){
- //Hsct 처방일 경우, 조회해 온 자코드들에 값을 setting
- model.setValue(strSrc + "[" + sendRow + "]/status", "I");
- //model.setValue(strSrc + "[" + sendRow + "]/prcphopedd", model.getValue ( "/root/init/prcpdd" )); //JJE(-)
-
- //cp는 이미 인스턴스에 값이 들어있음
- if( isNull(model.getValue(strSrc + "[" + sendRow + "]/etclnkspec")) ){
- model.makeValue ( strSrc + "[" + sendRow + "]/etclnkspec", "-" ); //CP처방 or 프로토콜처방 no
- }
- }
- else if( prcpInptFlag == "06" ){
- //항암은 이미 인스턴스에 값이 들어있음
- model.makeValue ( strSrc + "[" + sendRow + "]/etclnkspec", etclnkspecValue_SMMMO00110 ); //CP처방 or 프로토콜처방 no
- //model.makeValue ( strSrc + "[" + sendRow + "]/cpno", model.getValue ( strSrc + "[" + sendRow + "]/prtldg") ); //CpNo 에 프로토콜 차수 저장
- }
- else if( prcpInptFlag == "07" ){ //임상시험 프로토콜에서 불러올때.
- if(prcpgenrflag == "I" || prcpgenrflag == "D"){
- model.makeValue ( strSrc + "[" + sendRow + "]/subcretno", model.getValue("/root/init/subjsubcretno") ); // 임상프로토콜에서 처방시 임상유형의 cretno를 subcretno로 세팅
- }
- }
- //-- CP,항암프로토콜일 경우 etclnkspec 컬럼 값 셋팅 끝 --//
-
- model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", "-" ); //종속처방
- model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", "0" );//종속처방번호
- //20090518 마정민수정. 입원일 경우 전처방, 약속처방 복사처방의 선처치를 제외한다.
- if( prcpgenrflag != "O" && prcpgenrflag != "S" ) {
- if ( prcpInptFlag == "01" || prcpInptFlag == "02" ) {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/precureprcpflag" ) == "Y" ) {
- if( prcpclscd.substring(0,1) == "A" || prcpclscd == "M2" ) model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "N" );
- }
- }
- }
- if ( prcpclscd == "F2" && prcpgenrflag == "O") {
- model.setValue ( strSrc + "[" + sendRow + "]/rehbprcpenddd", prcpdd ); //재활마감일
- } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) { //약처방
- // 원내처방사유 SETTING
- fHosinPrcpResncdSed ( objFlag, strSrc, sendRow );
-
- //2010. 12. 29 김영학 약처방 원외일 경우 시행부서가 셋팅되어 있지 않으면 기본 외래약국으로 셋팅해준다.
- if( prcpgenrflag != "O" && prcpgenrflag != "S" ) {
- if ( model.getValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag" ) == "O"
- && (model.getValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd" ) == "-" || model.getValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd" ) == "D")) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd" , fGetHardCDList("Y", 260, 3))
- }
- }
- //AST 검사 체크
- var astyn = getArrayData ( drugmastspec, 0, 22, "^", "|" );
- if ( astyn == "Y" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/asttestflag", "Y" );
- }
-
- //응급 flag 가 Y인 경우는 1회만 가능
- if ( model.getValue ( strSrc + "[" + sendRow + "]/erprcpflag" ) == "Y" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prnprcpflag" ) == "Y"
- ) {
- var prcptims = model.getValue ( strSrc + "[" + sendRow + "]/prcptims" );
- if ( prcptims != "1" ) {
- //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
- model.setValue ( strSrc + "[" + sendRow + "]/prcptims", "1" );
- var prcpqty = model.getValue ( strSrc + "[" + sendRow + "]/prcpqty" );
- var prcpvol = model.getValue ( strSrc + "[" + sendRow + "]/prcpvol" );
-
- if ( prcpclscd == "A2" ) {
- fBaseMthd(sendRow);
- }
- if ( prcpclscd == "A2" || prcpclscd == "A4" ) {
- if ( prcptims != "0" ) {
- prcpqty = (eval(prcpqty)*1000/eval(prcptims));
- prcpvol = (eval(prcpvol)*1000/eval(prcptims));
- model.setValue ( strSrc + "[" + sendRow + "]/prcpqty", Math.round ( prcpqty ) / 1000);
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvol", Math.round ( prcpvol ) / 1000);
- }
- }
- }
- }
-
- //by sonjy 20081216 외래일경우 전처방/약속처방에서 copy시 약/주사에 한해 수행부서를 마스터의 부서로 초기화
- //영수증의 환자 가야할곳이 병동약국으로 찍혀 나오는 오류 때문.
- //20081230 마정민수정 변환조건을 병동약국으로 축소함
- if( model.getValue( strSrc + "[" + sendRow + "]/prcpexecdeptcd" ) == "3240300000" && prcpgenrflag == "O" && ( prcpInptFlag == "01" || prcpInptFlag == "02" )) {
- var sTmp23 = model.getValue( strSrc + "[" + sendRow + "]/tempcol23" );
- if( !isNull(sTmp23) && sTmp23 != "-" ){
- model.setValue( strSrc + "[" + sendRow + "]/prcpexecdeptcd", sTmp23 );
- }
- }
- } else if ( prcpclscd == "03" ) { //보호자식일 때는 procerdietflag 을 Y로 바꿈
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" ) == "Q4131004" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/procerdietflag", "Y" );
- }
- } else if ( prcpclscd == "B4" ){
- if ( prcpgenrflag == "O" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/prepprcpflag", "N" );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/prepprcpflag", "Y" );
- }
- }
-
- // hsct 체크
- if ( hsctflag == "Y" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/hsctlnkno", model.getValue ( "/root/init/hsctlnkno" )); //HSCT
- model.setValue ( strSrc + "[" + sendRow + "]/hscttempprcpflag", "Y" ); //HSCT
- } else if ( hsctflag == "M" ){
- model.setValue ( strSrc + "[" + sendRow + "]/hsctlnkno", model.getValue ( "/root/init/hsctlnkno" )); //HSCT
- model.setValue ( strSrc + "[" + sendRow + "]/hscttempprcpflag", "N" ); //HSCT
- }
- if ( !isNull(inclprcpno) && inclprcpno != "0" ) { //종속처방 처리
-
- var prcpcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" );
- //initsrch에서 가져온 종속처방 instance에 값이 있으면 종속처방 코드와 번호를 박아준다.
- var prcpsetcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpsetcd" );
- var inclprcpcd = model.getValue ( "/root/initsrch/inclprcpcnts[snglcd='" + prcpcd + "' and calcscorcdgrup='" + prcpsetcd + "']/inclprcpcd" );
- var calcscorcdgrup = "";
- if ( isNull(inclprcpcd)) {
- //본체에도 코드를 박아준다.
- calcscorcdgrup = model.getValue ( "/root/initsrch/inclprcpcnts[calcscorcdgrup='" + prcpcd + "']/inclprcpcd" ); // GROUP 처방
- } else {
- if ( prcpgenrflag == "O" ) {
- //외래일경우 약, 주사 에 원내처방사유 검사 수술처리에 사용
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );//원내
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "55" );//원내처방사유(원내처방사유 검사 수술처리에 사용)
- }
- }
- }
- if ( !isNull(inclprcpcd) || !isNull(calcscorcdgrup)) {
- model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", inclprcpno ); //종속처방번호
- if ( isNull(inclprcpcd)){
- model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", calcscorcdgrup ); //종속처방
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", inclprcpcd ); //종속처방
- }
- model.setValue ( "/root/init/inclprcpno", inclprcpno );
- var remainder = inclprcpno%2;
- if ( objFlag == "child" ){
- if ( remainder == 1 ) {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#eaeaea" );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#ffffcc" );
- }
- } else {
- if ( remainder == 1 ) {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#eaeaea" );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#ffffcc" );
- }
- }
- }
- }
-
- /* by sonjy 20091019 요청번호:3667
- * 전처방(01)과 약속처방(02)을 복사하여 처방시 처방일수가 1일로 수정이 되도록
- * => 무조건 1로 SETTING처리
- */
- var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
- if ( //model.getValue(strSrc + "[" + sendRow + "]/prcpinptflag") == "01" && model.getValue(strSrc + "[" + sendRow + "]/prcpinptflag") == "02" &&
- prcpclscd.substring(0,1) == "A" && calcmthdcd == "4" && model.getValue ( strSrc + "[" + sendRow + "]/prcpdayno" ) > 1 ) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpdayno", "1" );
- }
-
- /*by sonjy 20091019
- * 외래처방과 퇴원,퇴원호외래,외출외박처방(응급실,DSC 퇴원 포함)에만 해당으로, 4번에 해당하지 않는 약품 (계산법이 1,2,3,5번)을 처방할 때 처방일수가 0 으로 되도록
- * (0 으로 저장시 처방일수를 넣으라는 메시지가 뜨도록 : 현재 되고 있는 기능임)
- * 전처방과 약속처방, 프로토콜처방을 복사하여 처방시에는 제외 => 즉, 처방검색시에만 적용하되 MSET제외
- */
- if ( prcpclscd.substring(0,1) == "A" && calcmthdcd != "4" && prcpInptFlag == "00" &&
- ( model.getValue ( "/root/patflag/list/prcpgenrflag" ) == "O" || model.getValue ( "/root/init/prcpkindcd" ) == "50" ||
- model.getValue ( "/root/init/prcpkindcd" ) == "60" || model.getValue ( "/root/init/prcpkindcd" ) == "70" ) ) {
-
- if( model.getValue ( strSrc + "[" + sendRow + "]/inclprcpno") == "0" || model.getValue ( strSrc + "[" + sendRow + "]/inclprcpno") == "-" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpdayno", "0" );
- }
- }
-
- model.setValue ( strSrc + "[" + sendRow + "]/prcpgenrflag", prcpgenrflag ); //처방발생구분
- model.setValue ( strSrc + "[" + sendRow + "]/prcpkindcd", prcpkindcd ); //처방종류
- //20131105 Start 이정택(마취에서 처방이동시에 수익부서와 수익의를 자동으로 세팅하도록 수정)
- if(model.getValue ( strSrc + "[" + sendRow + "]/prcpinptflag")=="27"){
- var orddeptcd = "2090000000";
- var orddrid = model.getValue("/root/anst/anst_drid");
- var anstdrnm = model.getValue("/root/anst/anst_anstdrnm");
- model.setValue ( strSrc + "[" + sendRow + "]/pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol20", "[마취통증의학과]["+anstdrnm+"]" ); //처방창의 주진료과/진료의를 세팅
- }else{
- var sOldPamPkSpec = model.getValue ( strSrc + "[" + sendRow + "]/pampkspec");
-
- if(isNull(sOldPamPkSpec) || sOldPamPkSpec.length < 30) { // 2017.10.16 엄영만 CP에서 처방의 변경 기능 안되는 오류 수정(기존 설정된 값이 있으면 그대로 적용)
- model.setValue ( strSrc + "[" + sendRow + "]/pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid ); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
- }
- }
- // 20131105 End
- //model.setValue ( strSrc + "[" + sendRow + "]/pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid ); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
- model.setValue ( strSrc + "[" + sendRow + "]/prcppkspec", prcpdd + "|0|0|" + getUserInfo("dutplceinstcd")); //처방키: 처방일자|처방번호|처방이력번호|기관코드
- //20081007 마정민 수정
- //원래 회처방 불가
- //수혈, 영상, Angio, 핵의학영상, 병리, 기능, RT, 수술, 마취, 마취약제, 재료, 기타 이고 마이그레이션 데이터는 1로 setting
- //추가 처치 H4
- //20090514 마정민추가 K2 치과
- if ( model.getValue ( strSrc + "[" + sendRow + "]/tempcol20" ) == "Y" && (
- prcpclscd == "B4" || prcpclscd == "C2" || prcpclscd == "C4" || prcpclscd == "C6" ||
- prcpclscd == "D2" || prcpclscd == "E2" || prcpclscd == "G2" || prcpclscd == "H2" ||
- prcpclscd == "I2" || prcpclscd == "I4" || prcpclscd == "M2" || prcpclscd == "Z0" ||
- prcpclscd == "H4" || prcpclscd == "K2")) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcptims", "1" ); //처방발생구분
- }
- //20090122 마정민수정: 변경요청번호 670. 단순 방사선 예약 자동 팝업요청
- //20090709 CHC, 단순방사선예약자동팝업 병원별 적용
- var raypopwndcheckyn = model.getValue ( "/root/initsrch/raypopwndcheckyn/trgtcd" );
- if ( prcpgenrflag == "O" && model.getValue( strSrc + "[" + sendRow + "]/tempcol2" ).length > 2 && model.getValue( strSrc + "[" + sendRow + "]/tempcol2" ).substring( 0, 2 ) == "18" && usge == "prcp" ) {
- var msgTitle = "[영상]" + "[" + model.getValue( strSrc + "[" + sendRow + "]/prcpcd" ) + ":" + model.getValue( strSrc + "[" + sendRow + "]/prcpnm" ) + "]";
- if (raypopwndcheckyn != "Y") {
- if (window.alert( "단순 방사선 검사를 당일 시행 하시겠습니까? [예:당일,아니요:예약]", msgTitle, "36" ) == "7" ){
- model.setValue( strSrc + "[" + sendRow + "]/prcphopedd","99991231" );
- }
- }
-
- }
-
- //20090827 차현철, 치료내시경예약 지시처방일 경우 처방명 선택 팝업창 호출
- var escopedirecprcpcd = model.getValue ( "/root/initsrch/escopedirecprcpcd/trgtcd" );
- if ( escopedirecprcpcd == model.getValue( strSrc + "[" + sendRow + "]/prcpcd" )) {
- setParameter ( "SPMMB02200_cond2", "5" );
- fPrcpModal ( "SPMMB02200", 50, 50 );
- model.setValue (strSrc + "[" + sendRow + "]/prcpnm", getParameter ( "SPMMB02200_clinccmt" ));
- clearParameter("SPMMB02200_clinccmt");
- }
- //SON0919 G3아닌 응급일경우 원내사유 PRCPKINDCD에 의해 움직이므로 PRCPKINDCD가 설정된 후 다시 호출 start
- //퇴원처방 전처방에서 추가처방모드에서 복사시 퇴원처방 원내사유가 적용되는것을 막기 위함임.
- var g3flag = "";
- if( objFlag == "child") g3flag = opener.model.getValue ( "/root/init/erresn" );
- else g3flag = model.getValue ( "/root/init/erresn" );
- if( (prcpgenrflag == "E" && g3flag!= "G3") || prcpgenrflag == "D" ){
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) { //약처방
- // 원내처방사유 SETTING
- fHosinPrcpResncdSed ( objFlag, strSrc, sendRow );
- }
- }
- //SON0919 end
-
- if ( (prcpkindcd == "50" || prcpkindcd == "60" ) && getArrayData (drugmastspec, 0, 20, "^", "|" ) == "Y" ) {
- //2008-01-18 김은희 약사 모든처방 자가주사가 가능하게 수정
- if ( prcpclscd == "A6") {
- model.setValue ( strSrc + "[" + sendRow + "]/selfprcpflag", "Y" );
- }
- }
- //20080721 마정민 임상처방에서 넘어오는 것은 clincstdyflag를 Y로 처리
- if ( prcpInptFlag == "07" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/clincstdyflag", "Y" ); //
- }
- var chkprcpcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpcd")
- /******************** 선처치, 과내검사 시행부서처리 *******************/
- var iFind = -1;
- var precureexecdeptchk = model.getValue ( "/root/initsrchprcp/prcpetccnts/precureprcpcd" );
- // 기존 search함수에서 무결성이 어긋나 개별 체크 변경 - 20081008 by MoonSH
- var precureprcpflag = "";
- var prcpexecdeptcd = "";
- if( chkprcpcd.charAt(0) != "*" ){
- var firStage = precureexecdeptchk.split("^");
- for( i=0; i<firStage.length; i++ ){
- var secStage = firStage[i].split("|");
- if( chkprcpcd == secStage[0]) {
- iFind = 1 ;
- precureprcpflag = secStage[1] ;
- prcpexecdeptcd = secStage[2] ;
- break ;
- }
- }
- }
- if ( parseInt(iFind) >= 0) {
- var charchk = "";
- var arraychk = "";
- if ( precureprcpflag == "Y" ) {
- if( prcpgenrflag == "I" || prcpgenrflag == "E" || prcpgenrflag == "D" ) {
- //입원일 경우 선처치 적용시 약/재료코드는 제외한다. 정보관리팀 요구변경 요청서 2008-11-08 미액팅 분석 후 액팅시점 변경건
- //by sonjy 20081115
- if( prcpclscd.substring(0,1) != "A" && prcpclscd != "M2" ) model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" );
- }
- }
- if ( prcpexecdeptcd != "X" && !isNull ( prcpexecdeptcd ) ) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd", prcpexecdeptcd );
- }
- }
-
- if ( model.getValue ( "/root/addprcp" ) == "Y" && model.getValue ( strSrc + "[" + sendRow + "]/inclprcpno") == "0" ) {
- //시행부서 수혈, 식이, 재활, 마취, 치과, 방사선치료, 기타를 제외한 처방은 자동 선처치. 단 m-set은 예외
- if ((model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "A2" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "A4" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "A6" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "B2" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "B6" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "C2" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "C4" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "C6" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "D2" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "E2" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "H2" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "H4" ||
- model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) == "M2" ) &&
- model.getValue ( "/root/admininfo" ).substring (0,1) != "Y" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" );
- }
- }
-
- // 시행부서 처방 가퇴원 누락처방 사유 및 일시 셋팅 - 20081221 by MoonSH
- if ( model.getValue ( "/root/addprcp" ) == "Y" && model.getValue ("/root/prcpresn/prcpdd") != "" ) {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol19", model.getValue ("/root/prcpresn/resncnt") );
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol12", model.getValue ("/root/prcpresn/prcptime") ); // tempcol24를 사용하던것을 tempcol12로 변경 처리 2013.11.28 엄영만
- }
-
- /******************** 선처치, 과내검사 시행부서 처리 끝 ********************/
- //시행부서, 발행부서 SETTING
- fPrcpExecIssDeptCdSet( strSrc, sendRow )
-
- if (!isNull(model.getValue ( "/root/init/prcpinptflag" ))){ //27: 마취기록, 28: 시행부서처방
- model.setValue ( strSrc + "[" + sendRow + "]/prcpinptflag", model.getValue ( "/root/init/prcpinptflag" ));
- }
- //추가컬럼 test
- model.setValue ( strSrc + "[" + sendRow + "]/aftcertflag", "-");
- model.setValue ( strSrc + "[" + sendRow + "]/aftcertdrid", "-");
- model.setValue ( strSrc + "[" + sendRow + "]/prcpvalidd", "00000000");
- if ( isNull(model.getValue ( strSrc + "[" + sendRow + "]/anticncrdayno"))) {
- model.setValue ( strSrc + "[" + sendRow + "]/anticncrdayno", "0");
- }
- if ( isNull(model.getValue ( strSrc + "[" + sendRow + "]/druglnkno"))) {
- model.setValue ( strSrc + "[" + sendRow + "]/druglnkno", "0");
- }
-
- if (model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" ) == "FE6541" ) {
- var prcpdelivefact = model.getValue( strSrc + "[" + sendRow + "]/prcpdelivefact" );
- var iFind1 = prcpdelivefact.search( "Long Stream" );
- var iFind2 = prcpdelivefact.search( "Routine" );
- //전달사항에 값이 있으면 "-" 로처리
- if ( eval( iFind1) <= 0 && eval(iFind2) <= 0 ) {
- if ( prcpdelivefact == "-" ) {
- model.setValue( strSrc + "[" + sendRow + "]/prcpdelivefact", "[Routine]" );
- } else {
- model.setValue( strSrc + "[" + sendRow + "]/prcpdelivefact", "[Routine] " + prcpdelivefact );
- }
- }
- }
- if ( model.getValue ( strSrc + "[" + sendRow + "]/tempcol18" ) == "Y" ) {
- var len = 1;
- if ( !isNull(model.instance1.selectNodes("/root/migdrugmthd/migdrugmthdlist").length)){
- len = model.instance1.selectNodes("/root/migdrugmthd/migdrugmthdlist").length + 1;
- }
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/prcpcd", model.getValue( strSrc + "[" + sendRow + "]/prcpcd" ));
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/prcpnm", model.getValue( strSrc + "[" + sendRow + "]/prcpnm" ));
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/prcpnm", model.getValue( strSrc + "[" + sendRow + "]/prcpnm" ));
- if ( model.getValue ( strSrc + "[" + sendRow + "]/rateprcpflag" ) == "Y" ) {
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/migdrugmthdspccdnm", "[비율처방불가] 투약량이 다른 처방을 분리해서 처방하셔야 합니다.\n\n" + model.getValue( strSrc + "[" + sendRow + "]/exptmthdfact" ) + ".");
- model.setValue ( strSrc + "[" + sendRow + "]/rateprcpflag", "N" )
- model.setValue ( strSrc + "[" + sendRow + "]/drugrateqty", "-" )
- } else {
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/migdrugmthdspccdnm", model.getValue( strSrc + "[" + sendRow + "]/exptmthdfact" ));
- }
-
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/drugmthdspccd", model.getValue( strSrc + "[" + sendRow + "]/drugmthdspccd" ) );
- model.makeValue ( "/root/migdrugmthd/migdrugmthdlist[" + len + "]/drugmthdspccdnm", model.getValue( strSrc + "[" + sendRow + "]/drugmthdspccdnm" ) );
- model.setValue ( strSrc + "[" + sendRow + "]/exptmthdfact", "-" );
- }
-
- //수술예방적 항생제 CHECK SON0926 START 사유입력 대상자일 경우
- //경구약은 cdss항생제 에서 제외. 따라서 외용/주사일 경우 cdss항생제 화면이 뜬 후에 check로직이 뜨도록..
- if ( prcpgenrflag == "I" && usge == "prcp" && ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" )) { //약처방
- if( !fChkOpDrug(objFlag , strSrc , sendRow ) ) return 0;
- }
- //수술예방적 항생제 CHECK SON0926 END
- //20090520 마정민수정
- //저장시 체크하던 ocrprnt 여부를 search 함수의 문제로 처방복사시 tempcol13에 값을 넣어놨다가 저장시 tempcol13을 읽는 방법으로 수정
- var ocrprnt = model.getValue ( "/root/initsrchprcp/prcpetccnts/ocrprnt" );
- if (isNull(ocrprnt)) {
- ocrprnt = model.getValue ( "/root/initsrch/prcpetccnts/ocrprnt" );
- }
- var ocrprntArray = ocrprnt.split("|");
- var ocrprcpcd = "OCR" + model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" );
- for( m=0; m < ocrprntArray.length; m++ ){
- if( ocrprcpcd == ocrprntArray[m]) {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol13", "Y" );
- break;
- }
- }
- // 20100108 한재상 - 유전자검사 동의서 출력방식 변경 (OCR -> REX)
- var ocrprogprnt = model.getValue ( "/root/initsrchprcp/prcpetccnts/ocrprogprnt" );
- var ocrprogprntArray = ocrprogprnt.split("|");
- var ocrprogprcpcd = "OCRPROG" + model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" );
- for( m=0; m < ocrprogprntArray.length; m++ ){
- if( ocrprogprcpcd == ocrprogprntArray[m]) {
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol13", "A" );
- break;
- }
- }
- //20090521 마정민추가 외래수술프로세스의 추가로 외래수술탭에서 처방을 낼 경우 자동선처치로 수정
- if (!isNull(model.getValue ( "/root/operation/list/oprsrvno")) && prcpgenrflag == "O"
- && model.getValue ( strSrc + "[" + sendRow + "]/prnprcpflag" ) != "Y"
- && model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) != "B4"
- ) {
- model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" ); //
- }
- if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpflag") != "2" ) { //지시처방이 아니면 이름을 다시 만들어 준다.
- makePrcpNm( "/root/main/prcp/prcplist", sendRow );
- }
- // 2010. 10. 19 약속처방이나 전처방에서 처방 복사시 1회 용량에 값이 없을 경우 용량 계산하는 로직 수행
- if ( model.getValue ( strSrc + "[" + sendRow + "]/drprcpetc7") == "-" ) {
- if (fContainsHardCD("420", "Y") && model.getValue ( strSrc + "[" + sendRow + "]/prcpinptflag") == "02") { // 2013.02.21 엄영만 약속처방 1회 용량 없을 시 메세지 팝업.
- var sPrcpcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpcd");
- var sPrcpnm = model.getValue ( strSrc + "[" + sendRow + "]/prcpnm");
- messageBox ( sPrcpnm +"["+ sPrcpcd + "] 처방의 1회용량값이 존재하지 않습니다.\n약속처방 구성을 확인 하시기 바랍니다.", "E999" );
- } else {
- DrugCalc2( "prcpqty" , sendRow);
- }
- }
- // 2011.07.05 엄영만 수익분류 의료영상복사-CD 복사-CD copy 처방, 산재/자보 환자 디폴트 비급여 셋팅 원무 최인영(5069) 요청
- if (model.getValue ( strSrc + "[" + sendRow + "]/tempcol2" ) == "24|01|01" && (model.getValue ( "/root/paminfo/list/insukind" ) == "31" || model.getValue ( "/root/paminfo/list/insukind" ) == "41")) {
- model.setValue ( strSrc + "[" + sendRow + "]/payflagcd", "1" );
- }
-
- // 2013.09.26 엄영만 수익분류 초음파 처방이고 수가정보의 급비가 급여(0), 급여불가 보조유형일 경우 디폴트 비급여 설정
- /*if (model.getValue( strSrc + "[" + sendRow + "]/tempcol2" ).length > 2 && model.getValue( strSrc + "[" + sendRow + "]/tempcol2" ).substring( 0, 2 ) == "21" && model.getValue( strSrc + "[" + sendRow + "]/spynpy1" ) == "0" ) {
- if ( (model.getValue("/root/paminfo/list/insukind") != "11" && model.getValue("/root/paminfo/list/insukind") != "21" && model.getValue("/root/paminfo/list/insukind") != "22") // 보험 유형이 건강보험 또는 의료급여 1,2종이 아니면 비급여 처리
- || (!fContainsHardCD("442", model.getValue("/root/paminfo/list/suppkind"))) ) { // 급여가능 보조유형이 아닐경우
- model.setValue ( strSrc + "[" + sendRow + "]/payflagcd", "2" ); // 디폴트 비급여 처리
- }
- }
- */
- //model.addLog(" ************* End Of addPrcpSetValue()");
-
- return true;
- }
- /**
- * @desc : 처방이 발행될때 set로 같이 나가야할 처방 처리
- * @param : objFlag - child or else
- : strSrc - source node
- : strDest - 목적지 node; child일때는 opener.root.main.prcp, 아니면 "/root/main/prcp" 이다
- : sendRow - 검색된 내용중 메인으로 보내고자 하는 row
- : srchRow - 메인에 들어간 자리. 검색로우(srchRow) 바로 전이다.
- : prcpInptFlag - - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- : groupSrc - 옵션: group처방 검색할 경우 node
- : direcSrc - 옵션: group 지시처방 검색할 경우 node
- : prcpInptFlag - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- * @return : srchRow 에러시 0
- * @authur : 마정민 2008. 6. 25
- * @---------------------------------------------------
- */
- function fAddSetPrcpChk ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag ) {
- var prcpcd = model.getValue( strSrc + "[" + i + "]/prcpcd" );
- var addprcpcd = "";
- var addprcpcnt = 0;
- // if (prcpcd == "LCT101") addprcpcd = "DDIS50";
- // else if (prcpcd == "LCT001") addprcpcd = "DDIS75";
- // else if (prcpcd == "LCT002") addprcpcd = "DDIS100";
- // else if (prcpcd == "NHC297EG") addprcpcd = "FE654303G"; //by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청
-
- var iFind = -1;
- var setprcpchk = "";
- if ( objFlag == "child" ) {
- setprcpchk = opener.model.getValue ( "/root/initsrch/setprcplist/setprcp" );
- } else {
- setprcpchk = model.getValue ( "/root/initsrch/setprcplist/setprcp" );
- }
- // 기존 search함수에서 무결성이 어긋나 개별 체크 변경 - 20081008 by MoonSH
- var precureprcpflag = "";
- var calcflag = "";
- var prcpdelivefact = "";
- var firStage = setprcpchk.split("^");
- for( i=0; i<firStage.length; i++ ){
- var secStage = firStage[i].split("|");
- if( prcpcd == secStage[0]) {
- iFind = 1 ;
- calcflag = secStage[1];
- addprcpcd = secStage[2];
- prcpdelivefact = secStage[3];
- break ;
- }
- if ( iFind == 1) break;
- }
- if ( parseInt(iFind) >= 0) {
- var prcpdd = "";
- var insukind = "";
- if ( objFlag == "child" ) {
- prcpdd = opener.model.getValue ( "/root/init/prcpdd" );
- insukind = opener.model.getValue ( "/root/paminfo/list/insukind");
- } else {
- prcpdd = model.getValue ( "/root/init/prcpdd" );
- insukind = model.getValue ( "/root/paminfo/list/insukind");
- }
- //멀티 search 가능함
- model.makeValue("/root/send/addsetprcp[1]/prcpcd",addprcpcd);
- model.makeValue("/root/send/addsetprcp[1]/prcpdd",prcpdd);
- model.makeValue("/root/send/addsetprcp[1]/insukind",insukind);
- model.makeValue("/root/send/addsetprcp[1]/srchkind","B2");
-
- if ( submit("TRMMO00207",false)) {
- /*
- **by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청 수정 시작.
- ** 처방코드 : NHC297EMG, 자동발생코드 : FE654303G
- ** 자동발생코드는 돈계산에서 제외되어야 함.
- ** 자동발생코드 처방전달사항 자동 생성=>[HEART-SPECT 핵의학검사용]
- */
- //20090420 마정민 수정 HARDCODE 테이블로 분리
- //if( addprcpcd == "FE654303G"){
- var nd = model.instance1.selectNodes("/root/addsetprcp/prcplist");
- if( nd != null && nd.length > 0) {
- model.setValue("/root/addsetprcp/prcplist[1]/prcpdelivefact", prcpdelivefact );
- model.setValue("/root/addsetprcp/prcplist[1]/tempcol17" , calcflag ); //자동발생코드는 돈계산이 되어선 안됨.
- }
- //}
- //by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청 수정 끝
-
- //serPrcpSrchRow = addPrcpDetl ( objFlag , "root/addsetprcp/prcplist" , strDest , 1 , srchRow, prcpInptFlag );
- //by sonjy 20091031 자동발생 처방 입력 구분 추가
- //SET 처방일 때 약품의 기본 일수는 수가계산법이 어떤 것이든 기본을 1일로 되도록 요청번호:8875
- serPrcpSrchRow = addPrcpDetl ( objFlag , "root/addsetprcp/prcplist" , strDest , 1 , srchRow, "34" );
-
- if (serPrcpSrchRow != 0 ) srchRow++;
- }
- model.removeNodeset("/root/send/addsetprcp");
- }
- return srchRow;
- }
- /**
- * @desc : 포커스를 메인으로 한다.
- * @param : curRow => 메인의 검색 row
- : flag => child
- : prcpNmClearFlag => 검색명을 클리어 시킬건지 여부
- * @return : void
- * @authur : 마정민 2007. 4. 12
- * @---------------------------------------------------
- */
- function focusMain( curRow, flag, prcpNmClearFlag ) {
- if ( flag == "child" ) {
- if ( prcpNmClearFlag != "N" ) {
- opener.model.setValue( "/root/main/prcp/prcplist[" + curRow + "]/prcpnm", "");
- opener.model.setValue( "/root/main/prcp/prcplist[" + curRow + "]/prcpcd", "");
- }
- opener.model.recalculate();
- var modiflag = model.getValue("/root/init/rowmodify/modiflag");
- if ( modiflag != "Y" ){ // 처방 코드에서 수정 모드가 아닐때만 refresh - 20090630 by Moonsh
- opener.grd_prcplist.refresh();
- }
- var bfRow = curRow - 1 ;
- var sPrcpClsCd = opener.model.getValue( "/root/main/prcp/prcplist[" + bfRow + "]/prcpclscd" );
- if ( sPrcpClsCd == "A2" || sPrcpClsCd == "A4" || sPrcpClsCd == "A6" ){
- opener.grd_prcplist.row = bfRow;
- opener.grd_prcplist.col = opener.grd_prcplist.colref("drprcpetc7");
- } else {
- opener.grd_prcplist.row = curRow;
-
- if ( model.getValue ( "/root/send/cond99" ) == "getPrcpCdOldSrchInfo" ) {
- opener.grd_prcplist.col = prcpcdCol;
- opener.model.setValue ( "/root/send/cond99", "" );
- } else {
- opener.grd_prcplist.col = prcpnmCol;
- }
- }
-
- if( opener.model.getValue("/root/cp") == "Y" ){ //CP에서 저장 시 AddPrcp()를 수행 시, 마지막 라인에 포커스가 남아있는 상태에서 저장 수행 과정에 "onendedit" 이번트 동시 수행하면서 윈도우 에러 발생 -> 이 경우 막음처리 (2008.10.02 JJE)
- if( (typeof(curSavePrcpFlag_SMMMO00110) != "undefined") && (curSavePrcpFlag_SMMMO00110 != null) && (curSavePrcpFlag_SMMMO00110 == "N" || curSavePrcpFlag_SMMMO00110 == "T" )){
- return;
- }
- }
-
- // 항생제에서 데이타 추가 후 dispatch 시엔 Focus가 안 가서 setFocus 사용 20080925 by Moonsh
- var cdssFlag = opener.javascript.getParameter( "SPMMD01600_flag");
- var sAltDrugFlag = opener.javascript.getParameter( "SPMMB10100_flag"); // 대체약 선택으로 호출시
- if ( cdssFlag == "Y" ) {
- opener.model.setFocus(opener.grd_prcplist.attribute("id"), true);
- } else if (sAltDrugFlag == "Y") {
- } else {
- //by sonjy 20090923 성공적으로 copy햇을 경우 ...
- //iviewer에서 addprcp호출시 grid edit 안되는 bug 수정
- opener.model.setFocus("grd_prcplist");
- opener.btn_editcell.dispatch("DOMActivate");
- }
-
- opener.grd_prcplist.allstyle( "all", "font-weight" ) = ""; //기존 focus cell bold체 해제 (2010.01.27 JJE)
- } else {
- model.removeNodeset( "/root/prcpsrch/prcplist");
- model.removeNodeset( "/root/prcpgroup/prcplist");
- model.removeNodeset( "/root/prcpdirec/prcplist");
- if ( prcpNmClearFlag != "N" ) {
- model.setValue( "/root/main/prcp/prcplist[" + curRow + "]/prcpnm", ""); //검색그리드를 클리어 시킨다.
- model.setValue( "/root/main/prcp/prcplist[" + curRow + "]/prcpcd", ""); //검색그리드를 클리어 시킨다.
- }
- model.recalculate();
- var modiflag = model.getValue("/root/init/rowmodify/modiflag");
- if ( modiflag != "Y" ){ // 처방 코드에서 수정 모드가 아닐때만 refresh - 20090630 by Moonsh
- grd_prcplist.refresh();
- }
-
- var bfRow = curRow - 1 ;
- var sPrcpClsCd = model.getValue( "/root/main/prcp/prcplist[" + bfRow + "]/prcpclscd" );
- if ( sPrcpClsCd == "A2" || sPrcpClsCd == "A4" || sPrcpClsCd == "A6" ){
- grd_prcplist.row = bfRow;
- grd_prcplist.col = grd_prcplist.colref("drprcpetc7");
- } else {
- grd_prcplist.row = curRow;
-
- if ( model.getValue ( "/root/send/cond99" ) == "getPrcpCdOldSrchInfo" ) {
- grd_prcplist.col = prcpcdCol;
- model.setValue ( "/root/send/cond99", "" );
- } else {
- grd_prcplist.col = prcpnmCol;
- }
- }
- if( model.getValue("/root/cp") == "Y" ){ //CP에서 저장 시 AddPrcp()를 수행 시, 마지막 라인에 포커스가 남아있는 상태에서 저장 수행 과정에 "onendedit" 이번트 동시 수행하면서 윈도우 에러 발생 -> 이 경우 막음처리 (2008.10.02 JJE)
- if( (curSavePrcpFlag_SMMMO00110 !=null ) && (curSavePrcpFlag_SMMMO00110 == "N" || curSavePrcpFlag_SMMMO00110 == "T") ){
- return;
- }
- }
-
- if( model.getValue ( "/root/cp" ) == "Y" ){
- if (prtlprcpstatus_SMMMO00110 != "U" ) {
- btn_editcell.dispatch("DOMActivate");
- }
- }else{
- btn_editcell.dispatch("DOMActivate");
- }
-
- grd_prcplist.allstyle( "all", "font-weight" ) = ""; //기존 focus cell bold체 해제 (2010.01.27 JJE)
- }
- }
- /**
- * @desc : appendChild 공통함수로
- * @param : strSrc => 소스 노드
- : strDest => 목적지 노드
- : flag => 같은화면에서 사용하는지 child에서 사용하는지
- : autocheck => 자동체크하려면 체크벨류를 넣는다.
- * @return : void
- * @authur : 마정민 2007. 4. 21
- * @---------------------------------------------------
- */
- function appendChildPrcp ( strSrc, strDest, flag, autocheck ) {
- //* ---2007.11.12 (CP에서 미래처방을 수정하는 경우, 처방상세팝업에서 리턴 받은 값의 상태를 바꾼다) --- *//
- if( opener.model.getValue("/root/cp") == "D" ){
- if(strSrc == "/root/reset/prcplist"){
- return;
- }else{
- if( instance1.selectSingleNode(strSrc + "/status") != null ){
- model.setValue( strSrc + "/status", opener.model.getValue("/root/temp/mstatus") );
- }
- }
- }
- //* --- End --- *//
-
- var srcNodeList = model.instances(0).selectNodes(strSrc);
-
- if ( flag == null || flag == "child" )
- var destNode = opener.model.instances(0).selectSingleNode(strDest);
- else {
- var destNode = model.instances(0).selectSingleNode(strDest);
- }
-
- var currow = 0;
- for ( i=0; i < srcNodeList.length; i++ ){
- if ( !isNull(autocheck)) {
- currow = i + 1;
- model.setValue ( strSrc + "[" + currow + "]/status", autocheck );
- }
-
- destNode.appendChild(srcNodeList.item(i).cloneNode(true));
- }
- }
- /**
- * @desc : 선택된 진단명을 진단 instance에 맵핑한다.
- * @param : diagInfo: setValue할 진단정보
- * @return : void
- * @authur : 마정민 2007. 4. 21
- * @---------------------------------------------------
- */
- function addDiagSetValue ( diagInfo ) {
- var strSrc = "/root/main/diaginfo/diagcdlist";
- var pamInfoNode = "/root/paminfo/list";
- var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
-
- var orddd = "";
- if ( prcpgenrflag == "O" || prcpgenrflag == "S") {
- orddd = model.getValue ( pamInfoNode + "/orddd" );
- orddrid = model.getValue ( pamInfoNode + "/orddrid" );
- } else {
- orddd = model.getValue ( pamInfoNode + "/indd" );
- orddrid = model.getValue ( pamInfoNode + "/medispclid" );
- }
- cretno = model.getValue ( pamInfoNode + "/cretno" );
- orddeptcd = model.getValue ( pamInfoNode + "/orddeptcd" );
- var diagRow = diagInfo.split ( "▩" ).length;
- var srchRow = grd_diaglist.rows-1;
- var mdiagcd = model.getValue ( strSrc + "[diagkindcdflag='M']/diagcd" );
- var diagkindcdflag = ""; //주부유형
- for ( var i = 1; i < diagRow-1 ; i++ ) {
- var destNode = model.instances(0).selectSingleNode( "/root/main/diaginfo" );
- model.duplicate( destNode, "/root/reset/diagcdlist", "*[" + srchRow + "]");
- var icd10cd = getArrayData ( diagInfo, i, 8, "▩", "▦" );
- var diagcd = getArrayData ( diagInfo, i, 9, "▩", "▦" );
- var diagengnm = getArrayData ( diagInfo, i, 2, "▩", "▦" );
- var diaghngnm = getArrayData ( diagInfo, i, 3, "▩", "▦" );
- var spclinfo = getArrayData ( diagInfo, i, 5, "▩", "▦" );
- model.setValue ( strSrc + "[" + srchRow + "]/diagkindcdflag", "S" );
- if ( isNull(mdiagcd) && i == 1) {
- model.setValue ( strSrc + "[" + srchRow + "]/diagkindcdflag", "M");
- } else {
- if ( spclinfo == "Y" ) { //산전특례
- //산정특례 처방이면 산전특례이면서 주상병이 있는지 찾는다.
- var spcmdiagcd = model.getValue ( strSrc + "[diagkindcdflag='M' and spclinfo='Y']/diagcd" );
- if (isNull(spcmdiagcd)) { //값이 없으면 주상병으로 할 건지 물어본다.
- if ( messageBox ( "[" + icd10cd + "] 상병은 특례상병입니다. 주상병으로 하시겠습니까?","Q") == "6" ) {
- //하겠다고 하면 주상병으로 고침
- var srcNodeList = model.instances(0).selectNodes ( "/root/main/diaginfo/diagcdlist" );
- for ( var j=1; j <= srcNodeList.length; j++ ) {
- if (srchRow == j) {
- model.setValue ( "/root/main/diaginfo/diagcdlist[" + j + "]/diagkindcdflag", "M" );
- } else {
- if (model.getValue ( "/root/main/diaginfo/diagcdlist[" + j + "]/diagkindcdflag" )=="M") {
- model.setValue ( "/root/main/diaginfo/diagcdlist[" + j + "]/diagkindcdflag", "S" );
- if (model.getValue ( "/root/main/diaginfo/diagcdlist[" + j + "]/status" ) == "-" ) {
- //진단상태가 - 이면 U로 수정함
- model.setValue ( "/root/main/diaginfo/diagcdlist[" + j + "]/status", "U" );
- }
- }
- }
- }
- }
- }
- }
- }
- /*
- var dispdiagcd = getArrayData ( getParameter("diagInfo"), i, 6, "▩", "▦" );
- var orgdiagnm = getArrayData ( getParameter("diagInfo"), i, 7, "▩", "▦" );
- var orgdiagcd = getArrayData ( getParameter("diagInfo"), i, 8, "▩", "▦" );
- var tootfact = getArrayData ( getParameter("diagInfo"), i, 9, "▩", "▦" );
- */
- model.setValue ( strSrc + "[" + srchRow + "]/icd10cd", icd10cd );
- model.setValue ( strSrc + "[" + srchRow + "]/diagcd", diagcd );
- model.setValue ( strSrc + "[" + srchRow + "]/diagengnm", diagengnm );
- model.setValue ( strSrc + "[" + srchRow + "]/diaghngnm", diaghngnm );
- model.setValue ( strSrc + "[" + srchRow + "]/spclinfo", spclinfo );
- model.setValue ( strSrc + "[" + srchRow + "]/status", "I" );
- model.setValue ( strSrc + "[" + srchRow + "]/instcd", getUserInfo("dutplceinstcd"));
- model.setValue ( strSrc + "[" + srchRow + "]/pid", model.getValue ( pamInfoNode + "/pid" ));
- model.setValue ( strSrc + "[" + srchRow + "]/orddd", orddd);
- model.setValue ( strSrc + "[" + srchRow + "]/cretno", cretno);
- model.setValue ( strSrc + "[" + srchRow + "]/orddeptcd", orddeptcd);
- model.setValue ( strSrc + "[" + srchRow + "]/orddrid", orddrid);
- model.setValue ( strSrc + "[" + srchRow + "]/genrflagcd", prcpgenrflag);
- model.setValue ( strSrc + "[" + srchRow + "]/diaghistcd", "O" );
- model.setValue ( strSrc + "[" + srchRow + "]/diagtypecd", "D" );
- model.setValue ( strSrc + "[" + srchRow + "]/diagkindcd", "C" );
- model.setValue ( strSrc + "[" + srchRow + "]/anamneflag", "N" );
- model.setValue ( strSrc + "[" + srchRow + "]/diagsignflag", "2" );
- model.setValue ( strSrc + "[" + srchRow + "]/tootflagcd", "-" );
- model.setValue ( strSrc + "[" + srchRow + "]/tootfact", "-" );
-
- diagkindcdflag = model.getValue ( "/root/main/diaginfo/diagcdlist[" + srchRow + "]/diagkindcdflag" );
-
- fCheckDiagHosinpPcp( icd10cd, prcpgenrflag, diagkindcdflag );
- srchRow++;
- /**************************************** 진단추가시 원외처방예외사유 진단인지 check ******************************/
-
- //치식 상병 입력 시 치식팝업 자동 호출 (2009.10.28 by JJE)
- var tootDiagFromToCd = model.getValue("/root/initsrch/tootdiagcd/trgtcd"); //ex: K01|K10
- if( !isNull(tootDiagFromToCd) ){
- var tootDiagFrCd = tootDiagFromToCd.split("|")[0];
- var tootDiagToCd = tootDiagFromToCd.split("|")[1];
- var tootDiagFrLngth = getStringLength(tootDiagFrCd);
- var tootDiagToLngth = getStringLength(tootDiagToCd);
- if(icd10cd.substring(0, tootDiagFrLngth) >= tootDiagFrCd && icd10cd.substring(0, tootDiagToLngth) <= tootDiagToCd){
- fDentifmla();
- }
- }
- //end 치식팝업 자동 호출
- }
- //검색라인 초기화
- model.setValue ( "/root/main/diaginfo/diagcdlist[" + srchRow + "]/icd10cd", "" );
- model.setValue ( "/root/main/diaginfo/diagcdlist[" + srchRow + "]/diagengnm", "" );
- model.refresh();
- model.setfocus( "grd_diaglist" );
- grd_diaglist.row = grd_diaglist.rows - 1;
- grd_diaglist.col = 4;
-
- }
- /**
- * @desc : 진단추가시 원내처방예외사유가 있는 진단코드인지 검색후(처방화면초기값) 결과에 따라 처방화면의 원내처방사유를 setting한다.
- * @ :
- * @param : icd10cd, prcpgenrflag
- * @return : void
- * @authur : 마정민 2007. 9. 6
- * @---------------------------------------------------
- */
- function fCheckDiagHosinpPcp( icd10cd, prcpgenrflag, diagkindcdflag ) {
- var inhospappdeptcd = model.getValue ( "/root/initsrch/inhospappdeptcd/trgtcd" ); //F상병원내사유적용 부서:정신과 (2009.06.29 JJE)
- var inhospautoappyn = model.getValue ( "/root/initsrch/inhospautoappyn/trgtcd" ); //F상병원내사유자동적용 여부 (2009.06.29 JJE)
- var insukind = opener.model.getValue ( "/root/paminfo/list/insukind"); //보험유형 (2009.06.29 JJE)
- if (isNull(insukind)) insukind = model.getValue ( "/root/paminfo/list/insukind"); //보험유형 (2009.06.29 JJE)
-
- if ( prcpgenrflag == "O" || prcpgenrflag == "D" ) { //SON1123 DSC 퇴원처방 처리 by sonjy 20081123
- if ( !isNull(model.getValue ( "/root/initsrch/diagautocnts/trgtcd" ))) {
- if (model.getValue ( "/root/init/hosinprcpresncd" ) == "00" ) { //원내처방 사유가 없을 경우
- var srcNodeList = model.instances(0).selectNodes( "/root/initsrch/diagautocnts" );
- for ( var i=1; i <=srcNodeList.length; i++ ) {
- var trgtcdnmArray = model.getValue ( "/root/initsrch/diagautocnts[" + i + "]/trgtcdnm" );
- var fromTrgtcdnm = getArrayData ( trgtcdnmArray + "^", 0, 0, "^", "|" );
- var toTrgtcdnm = getArrayData ( trgtcdnmArray + "^", 0, 1, "^", "|" );
- var cdlength = fromTrgtcdnm.length;
- var icd10Chck = icd10cd.substring( 0, cdlength );
- if ( icd10Chck >= fromTrgtcdnm && icd10Chck <= toTrgtcdnm ) { //해당 진단검색안에 값이 있다면
- var hosinprcpresncd = model.getValue ( "/root/initsrch/diagautocnts[" + i + "]/trgtcd" );
- //원내처방사유 적용 주상병만 가능 단 23은 부상병도 적용
- if ( diagkindcdflag == "M" || hosinprcpresncd == "23" ) {
- //by sonjy 20081031 F상병일 경우 진료과가 정신과인 경우에 한해서만 원내처방사유 SETTING되도록. 윤영옥ITC 요청. start
- if( icd10Chck.substring( 0,1) == "F" ){
- //if( model.getValue ( "/root/paminfo/list/orddeptcd" ) != "2030000000") break;
- if( model.getValue ( "/root/paminfo/list/orddeptcd" ) != inhospappdeptcd) break; //F상병이면서 진료과가 정신과인지 check (2009.06.29 JJE)
- if( inhospautoappyn != "Y" && (insukind != "21" && insukind != "22") ) break; //원내사유자동적용 N이면 보험유형까지 check - ujb요청 (2009.06.29 JJE)
-
- }
- //by sonjy end
-
- model.setValue ( "/root/init/hosinprcpresncd", hosinprcpresncd);
- fChngHosinPrcpResn();
- model.refresh();
- break; //값을 setting 하면 빠져나온다.
- }
- } //icd10cd == trgtcdnm end
- } //진단검색 end
- // model.refresh();
- } //원내처방 사유가 없을 경우 여부
- }//진단초기값 여부 end
- } //외래end
- }
- /**
- * @desc : 그룹코드 M의 싱글코드 검색
- * @ : 검색후 수가코드의 그룹싱글구분이 M 일경우는 그 그룹코드로 다시 SINGLE 코드를 찾아온다.
- * @param : cond1= 처방명, 코드명, 성분명, old수가코드
- * @return : void
- * @authur : 마정민 2007. 4. 12
- * @---------------------------------------------------
- */
- function prcpGroupSrch ( cond1, cond3, cond4, cond5, cond6, cond99 ) {
- if (isNull(cond3)) {
- cond3 = getCurrentDate();
- }
- if (isNull(cond4)) {
- cond4 = "11";
- }
- if (isNull(cond99)) {
- cond99 = "getPrcpGroupInfo";
- }
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- if ( isNull(prcpgenrflag) ) {
- prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
- if ( isNull(prcpgenrflag) ) {
- prcpgenrflag = "-"
- }
- }
- model.setValue ( "/root/send/cond1", cond1 ); //처방명, 수가코드
- model.setValue ( "/root/send/cond2", prcpgenrflag ); //외래, 입원, 응급 구분
- model.setValue ( "/root/send/cond3", cond3 ); //처방일
- model.setValue ( "/root/send/cond4", cond4 ); //환자보험유형
- model.setValue ( "/root/send/cond5", cond5 ); //진단검사 그룹처방일 때 검체코드정보
- model.setValue ( "/root/send/cond6", cond6 ); //진단검사 검사분류유형
- model.setValue ( "/root/send/cond99", cond99 );
- submit( "TRMMO00101", false );
- // 20090721 한재상 수정. m-set중 특정 signle코드의 default 급비변경.
- var grupSrc = "/root/prcpgroup/prcplist";
- var srcNodeList = model.instances(0).selectNodes( grupSrc );
- var msetpfcspec = model.getValue("/root/initsrch/msetpayflagcd/trgtcd");
- if ( msetpfcspec == "" ) {
- msetpfcspec = opener.model.getValue("/root/initsrch/msetpayflagcd/trgtcd");
- }
- var msetpfcsplit = msetpfcspec.split("^");
- for (var i=1; i<=srcNodeList.length; i++) {
- for (var j=0; j < msetpfcsplit.length-1; j++) {
- var msetpfcitem = msetpfcsplit[j].split("|");
- if ( msetpfcitem[j] == model.getValue(grupSrc+"["+i+"]/prcpcd") ) {
- model.setValue(grupSrc+"["+i+"]/payflagcd", msetpfcitem[1]);
- }
- }
- }
-
- }
- /**
- * @desc : 지시처방 J의 싱글코드 검색
- * @ : 검색후 수가코드의 그룹싱글구분이 M 일경우는 그 그룹코드로 다시 SINGLE 코드를 찾아온다.
- * @param : cond1= 처방명, 코드명, 성분명, old수가코드
- * @return : void
- * @authur : 마정민 2007. 4. 12
- * @---------------------------------------------------
- */
- function prcpDirecSrch( cond1, cond3, cond4, cond5 ) {
-
- if (isNull(cond3)) {
- cond3 = getCurrentDate();
- }
- if (isNull(cond4)) {
- cond4 = "11";
- }
- model.setValue ( "/root/send/cond1", cond1 ); //처방명, 수가코드
- model.setValue ( "/root/send/cond2", "-" ); //외래, 입원, 응급 구분
- model.setValue ( "/root/send/cond3", cond3 ); //처방일
- model.setValue ( "/root/send/cond4", cond4 ); //환자보험유형
- model.setValue ( "/root/send/cond5", cond5 );
- model.setValue ( "/root/send/cond99", "getDirecGroupInfo" ); //환자보험유형
- submit( "TRMMO00102" , false );
- }
- /**
- * @desc : 처방내역만들기
- * @param : strSrc: source Node
- : from: 시작 row
- : to: 끝 row
- * @return : void
- * @authur : 마정민 2007. 4. 16
- */
- function makePrcpNm ( strSrc, from, to ) {
-
- var i = from;
- if ( model.getValue ( strSrc + "[" + i + "]/status" ) == "S" ) return;
- if ( model.getValue ( strSrc + "[" + i + "]/prcpflag" ) == "2" ) return;
- var prcpnmbf = "";
- var prcpnmaft = "";
- var opansflagcd = "";
- var prcpclscd = model.getValue ( strSrc + "[" + i + "]/prcpclscd" ); //처방종류
- var prcpcd = model.getValue ( strSrc + "[" + i + "]/prcpcd" ); //처방코드
- var prcpnm = model.getValue ( strSrc + "[" + i + "]/orgprcpnm" ); //처방명
- var clincstdyflag = model.getValue ( strSrc + "[" + i + "]/clincstdyflag" ); //임상연구
- var erprcpflag = model.getValue ( strSrc + "[" + i + "]/erprcpflag" ); //응급구분
- var prnprcpflag = model.getValue ( strSrc + "[" + i + "]/prnprcpflag" ); //prn
- var prepprcpflag = model.getValue ( strSrc + "[" + i + "]/prepprcpflag" ); //prep
- var selfdrugflag = model.getValue ( strSrc + "[" + i + "]/selfdrugflag" ); //self
- var powdflag = model.getValue ( strSrc + "[" + i + "]/powdflag" ); //powder
- var drugspd = model.getValue ( strSrc + "[" + i + "]/drugspd" ); //gtt
- var tnsfiltflag = model.getValue ( strSrc + "[" + i + "]/tnsfiltflag" ); //filter
- var portprcpflag = model.getValue ( strSrc + "[" + i + "]/portprcpflag" ); //portprcpflag
- //수술유형, 재활치료부위
- if ( prcpclscd == "F2" ) {
- var rehbprcpcurepartcd = model.getValue ( strSrc + "[" + i + "]/rehbprcpcurepartcd" );
- if ( rehbprcpcurepartcd != "-" && !isNull(rehbprcpcurepartcd)) {
- opansflagcd = model.getValue ( "/root/init/rehbprcpcurepartcd/M0046[cdid=" + rehbprcpcurepartcd + "]/cdnm" );
- }
- } else if ( prcpclscd == "H2" || prcpclscd == "K2" ) {
- opansflagcd = model.getValue ( strSrc + "[" + i + "]/opansflagcd" );
- if ( opansflagcd != "-" && !isNull(opansflagcd)) {
- opansflagcd = model.getValue ( "/root/init/opansflagcd/M0007[cdid=" + opansflagcd + "]/cdnm" );
- }
- }
- var dietprcpgenrflag = model.getValue ( strSrc + "[" + i + "]/dietprcpgenrflag" ); //조/중/석
- var mealcalrcnts = model.getValue ( strSrc + "[" + i + "]/mealcalrcnts" ); //열량
- var mealprotcnts = model.getValue ( strSrc + "[" + i + "]/mealprotcnts" ); //단백질
- var prcpdelivefact = model.getValue ( strSrc + "[" + i + "]/prcpdelivefact" ); //전달사항
- var ansttm = model.getValue ( strSrc + "[" + i + "]/prcprefseq" ); //검사간격
- var drugspd = model.getValue ( strSrc + "[" + i + "]/drugspd" ); //기본시간
- var trnptbftestflag = model.getValue ( strSrc + "[" + i + "]/trnptbftestflag" );
- var prcptims = model.getValue ( strSrc + "[" + i + "]/prcptims" ); //치료횟수
- var prcpdayno = model.getValue ( strSrc + "[" + i + "]/prcpdayno" ); //치료일수
- var etcprcpresncd = model.getValue ( strSrc + "[" + i + "]/etcprcpresncd" ); //마감일
- var irflag = model.getValue ( strSrc + "[" + i + "]/irflag" ); //필터
- var precureprcpflag = model.getValue ( strSrc + "[" + i + "]/precureprcpflag" ); //선처치
- var selfprcpflag = model.getValue ( strSrc + "[" + i + "]/selfprcpflag" ); //자가
- var prcpkindcd = model.getValue ( strSrc + "[" + i + "]/prcpkindcd" ); //처방종류
- var hsctdelivepos = model.getValue ( strSrc + "[" + i + "]/hsctdelivepos" ); //hsct전달부서
- var rehbprcpenddd = model.getValue ( strSrc + "[" + i + "]/rehbprcpenddd" ); //재활치료 마감일
- var fasttrackflag = model.getValue ( strSrc + "[" + i + "]/fasttrackflag" ); //FastTrackFlag
- var drprcpetc11 = model.getValue ( strSrc + "[" + i + "]/drprcpetc11" ); //제2시술
- var drprcpetc12 = model.getValue ( strSrc + "[" + i + "]/drprcpetc12" ); //F/U
- var prcpmixno = model.getValue ( strSrc + "[" + i + "]/prcpmixno" ); //처방 Mix번호
- var cnt = 0;
- if ( erprcpflag == "Y") prcpnmbf = prcpnmbf + "[응급] ";
- if ( fasttrackflag == "Y") prcpnmbf = prcpnmbf + "[FT] ";
- if ( clincstdyflag == "Y") prcpnmbf = prcpnmbf + "[임상] ";
- if ( precureprcpflag == "Y") prcpnmbf = prcpnmbf + "[선] ";
- if ( drprcpetc11 == "Y") prcpnmbf = prcpnmbf + "[제2시술] ";
- if ( drprcpetc12 == "Y") prcpnmbf = prcpnmbf + "[F/U] ";
-
- if ( prcpclscd == "A2" || prcpclscd == "A4" ) {//약
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- if ( selfprcpflag == "Y") prcpnmbf = prcpnmbf + "[home] ";
- if ( selfdrugflag == "Y") prcpnmbf = prcpnmbf + "[self] ";
-
- prcpnm = prcpnmbf + prcpnm;
- if ( powdflag == "Y") prcpnm = prcpnm + "[powder] ";
- } else if ( prcpclscd == "A6" ) { //주사
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- if ( selfprcpflag == "Y") prcpnmbf = prcpnmbf + "[home] ";
- if ( selfdrugflag == "Y") prcpnmbf = prcpnmbf + "[self] "; // 주사일때도 셀프 표시 2013.07.10 엄영만
- //if ( !isNull(prcpmixno) && prcpmixno != "-" && prcpmixno != "0") prcpnmbf = prcpnmbf + "(" + prcpmixno + ") "; // Mix 번호 표시 2018.04.17 엄영만
-
- prcpnm = prcpnmbf + prcpnm;
-
- if ( drugspd != "0" && drugspd != "" ) {
- var drugspdunitflag = model.getValue ( strSrc + "[" + i + "]/drugspdunitflag" ); //투여속도
- if ( drugspdunitflag != "-" && !isNull(drugspdunitflag)) {
- drugspdunitflag = model.getValue ( "/root/init/M0040/M0040[cdid=" + drugspdunitflag + "]/cdnm" );
- } else {
- drugspdunitflag = "";
- }
-
- prcpnm = prcpnm + " [" + drugspd + drugspdunitflag + "] ";
- }
- } else if ( prcpclscd == "D2" ) { //병리
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- prcpnm = prcpnmbf + prcpnm;
-
- } else if ( prcpclscd == "B4" ) { //수혈 (혈액수혈)
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- prcpnm = prcpnmbf + prcpnm;
- if ( tnsfiltflag == "Y") prcpnm = prcpnm + "[Filter] ";
- if ( irflag == "Y") prcpnm = prcpnm + "[Irr] ";
-
- } else if ( prcpclscd == "C2" || prcpclscd == "C6" || prcpclscd == "E2" || prcpclscd == "G2") { //방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상, 방사선치료)
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- if ( portprcpflag == "Y") prcpnmbf = prcpnmbf + "[por] ";
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- prcpnm = prcpnmbf + prcpnm;
- } else if ( prcpclscd == "H2" || prcpclscd == "H4" || prcpclscd == "K2" || prcpclscd == "C4" ) { //수술, 처치, 치과
- prcpnm = prcpnmbf + prcpnm;
- if ( opansflagcd != "" && opansflagcd != "-") prcpnm = prcpnm + " [" + opansflagcd + "] "; //수술마취구분-수술유형
- } else if ( prcpclscd == "B2" || prcpclscd == "B6" ) { //진단검사 (검체검사), 핵의학 체외
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- prcpnm = prcpnmbf + prcpnm;
- } else if ( prcpclscd == "03" ) {//식이
- if ( dietprcpgenrflag == "1") prcpnmbf = prcpnmbf + "[조식] ";
- if ( dietprcpgenrflag == "2") prcpnmbf = prcpnmbf + "[중식] ";
- if ( dietprcpgenrflag == "3") prcpnmbf = prcpnmbf + "[석식] ";
- prcpnm = prcpnmbf + prcpnm;
-
- if ( mealcalrcnts != "" && mealcalrcnts != "0" ) prcpnm = prcpnm + "[" + opansflagcd + ":" + mealcalrcnts + "] ";
-
- var drugmastspec = model.getValue ( strSrc + "[" + i + "]/drugmastspec" ) + "▩";
- var mealprotcntscond = getArrayData (drugmastspec, 0, 3, " ▩", "|" );
- if ( mealprotcnts != "" && mealprotcntscond == "Y" ) prcpnm = prcpnm + "[횟수:" + mealprotcnts + "] ";
- } else if ( prcpclscd == "F2" ) { //재활
- prcpnm = prcpnmbf + prcpnm;
-
- if("HZ272" != prcpcd ) { // 요청번호 20140422010 온열암 치료는 재활표기 따르지 않음. 스크립트 함수도 같이 수정. 2014.04.23 엄영만
- if ( opansflagcd != "" && opansflagcd != "-") {
- prcpnmaft = prcpnmaft + " " + opansflagcd + " ";
- cnt++;
- }
- if ( prcptims != "" && prcptims != 0 ) {
- prcpnmaft = prcpnmaft + " " + prcptims + "/1일 ";
- cnt++;
- }
- if ( cnt > 0 ) {
- prcpnm = prcpnm + " [" + prcpnmaft + "]";
- }
- }
- } else {
- prcpnm = prcpnmbf + prcpnm;
- }
-
- if ( trnptbftestflag == "Y") {
- prcpnm = prcpnm + " [pre-workup]";
- } else if ( trnptbftestflag == "D") {
- prcpnm = prcpnm + " [donor w/u]";
- }
- if ( prcpkindcd == "90") prcpnm = prcpnm + " [입원전검사(당일)] ";
- if ( prcpkindcd == "95") prcpnm = prcpnm + " [입원전검사(전일)] ";
- if ( prcpkindcd == "80") prcpnm = prcpnm + " [예약처방] ";
- if ( hsctdelivepos == "1") prcpnm = prcpnm + " [병동]";
- else if ( hsctdelivepos == "2") prcpnm = prcpnm + " [성분헌혈]";
- else if ( hsctdelivepos == "3") prcpnm = prcpnm + " [세포처리실]";
- if ( model.getValue ( strSrc + "[" + i + "]/drprcpetc2" ) == "Y" ) { // 특수주사실 체크 추가 요청 20081027 by Moonsh
- prcpnm = prcpnm + " [암센터주사실] ";
- } else if ( model.getValue ( strSrc + "[" + i + "]/drprcpetc2" ) == "B" ) {
- prcpnm = prcpnm + " [BMT주사실] ";
- }
- model.setValue ( strSrc + "[" + i + "]/prcpnm", prcpnm );
- model.setValue ( strSrc + "[" + i + "]/prcprefseq","0" );
- }
- /**
- * @desc : 지정일자(연속처방)처리
- * @param : grdObj: DataGrid
- : prcpNode: 값을 세팅할 node
- : flag: main 인지 child 인지
- : endFlag: 마감일 지정을 할지여부
- * @return : void
- * @authur : 마정민 2007. 4. 30
- * @---------------------------------------------------
- */
- function fContPrcpDd( grdObj, prcpNode, flag, endFlag ) {
- //1. 과거일자 불가(달력에서 막음)
- //2. 오늘날짜 처방이 아닐때 해더생성
- //3. 2개이상생성시 해더생성
- //4. 외래에서만 사용
- //5. 상태|Acting진료일자|실시처방상태코드|처방일자|실시처방번호^
- var status = "";
- var actordd = "";
- var prcpdd = "";
- var execprcpstatcd = "";
- var execprcpno = "";
- var curRow = "";
- var contPrcpSpec = "";
- var contPrcpSpecArray1;
- var contPrcpSpecArray2;
- var prcpPKSpecArray;
- var reqparm = "";
- if ( grdObj == null ) grdObj = grd_prcplist; //값이 없으면 메인의 오른쪽 마우스 클릭
- if ( isNull(prcpNode)) prcpNode = "/root/main/prcp/prcplist"; //값이 없으면 메인의 오른쪽 마우스 클릭
- //외래진료일자
- if ( flag == "child" ) {
- if ( opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ) != "O" ) {
- messageBox ( "지정일은 외래에서만 사용하실 수 있습니다.", "E" );
- return;
- }
- prcpdd = opener.model.getValue ( "/root/paminfo/list/orddd" ); //값이 없으면 메인의 오른쪽 마우스 클릭
- } else {
- if ( model.getValue ( "/root/patflag/list/prcpgenrflag" ) != "O" ) {
- messageBox ( "지정일은 외래에서만 사용하실 수 있습니다.", "E" );
- return;
- }
- prcpdd = model.getValue ( "/root/paminfo/list/orddd" );
- }
-
- if ( model.getValue ( prcpNode + "[" + grdObj.row + "]/prcpclscd" ) != "A6" && model.getValue ( prcpNode + "[" + grdObj.row + "]/prcpclscd" ) != "F2" ) {
- messageBox ( "지정일 사용하실 수 없는 처방입니다.", "E" );
- return;
- }
-
- setParameter ("paramcalflag", "multi");
- setParameter ("defaultday", prcpdd);
- var selectedRows = 0;
- if ( grdObj.selectionMode != "list" ) {
- selectedRows = grdObj.row;
- } else {
- selectedRows = grdObj.selectedRows;
- }
- for (var i=0; i<selectedRows; i++) {
-
- if ( grdObj.selectionMode != "list" ) {
- curRow = grdObj.row;
- } else {
- curRow = grdObj.selectedrow(i);
- }
- contPrcpSpec = model.getValue ( prcpNode + "[" + curRow + "]/contprcpspec" );
- if ( contPrcpSpec == "-" ) { //처방 당일이었던 지정일 또는 처음검색
- prcpPKSpecArray = model.getValue ( prcpNode + "[" + curRow + "]/prcppkspec" ).split("|");
- if ( !isNull(prcpPKSpecArray[0])) reqparm = prcpPKSpecArray[0]; //처방일자가 있으면
- else reqparm = prcpdd;
- } else {
- contPrcpSpecArray1 = contPrcpSpec.split("^");
- for ( var j=1; j < contPrcpSpecArray1.length; j++ ){
- contPrcpSpecArray2 = contPrcpSpecArray1[j].split("|");
- if ( j == (contPrcpSpecArray1.length-1))
- reqparm = reqparm + contPrcpSpecArray2[1];
- else
- reqparm = reqparm + contPrcpSpecArray2[1] + "▩";//과거에 선택됐던 지정일을 넘긴다.
- }
- }
-
- setParameter ("reqparam", reqparm);
- fPrcpModal ( "SPMMO10600", 20, 50 );
- if ( isNull(getParameter ( "rtn"))) return; //값이 없으면 return
-
- var actorddArray = getParameter ( "rtn").split("▩");
-
- model.setValue ( prcpNode + "[" + curRow + "]/prcpdayno", actorddArray.length );
- status = model.getValue ( prcpNode + "[" + curRow + "]/status" ); //선택된 셀 상태값 가져오기
-
- contPrcpSpec = "status|actorddd|execprcpstatcd|prcpdd|execprcpno";
- var enddd = "00000000";
- for( k = 0; k < actorddArray.length; k++) { //내용 붙히기
- actordd = actorddArray[k];
- contPrcpSpec = contPrcpSpec + "^" + status + "|" + actordd + "|" + execprcpstatcd + "|" + prcpdd + "|" + execprcpno;
- if ( eval(enddd) < eval(actordd) ) {
- enddd = actordd;
- }
- }
- if ( actorddArray.length == 1 && actordd == prcpdd ) { // 날짜가 1 이고 처방일과 같을 경우는 - 처리
- model.setValue ( prcpNode + "[" + curRow + "]/contprcpspec", "-" );
- } else {
- model.setValue ( prcpNode + "[" + curRow + "]/contprcpspec", contPrcpSpec );
- }
-
- //재활일 경우 마감일 setting
- var prcpclscd = model.getValue ( prcpNode + "[" + curRow + "]/prcpclscd" );
- if ( prcpclscd == "F2" ) model.setValue ( prcpNode + "[" + curRow + "]/etcprcpresncd", enddd );
- //일수변환
- model.setValue ( prcpNode + "[" + curRow + "]/prcpdayno", actorddArray.length );
- }
- }
- /**
- * @desc : 지정일자초기화
- * @param : contPrcpDdCol: main에서 setting 된 값이 있었다면 화면에 , 구분자로 표시해 준다.
- : grdObj: DataGrid
- * @return : void
- * @authur : 마정민 2007. 4. 30
- * @---------------------------------------------------
- */
- function fContPrcpDdInit( grdObj, contPrcpDdCol ) {
- var prcpNode = "/root/main/prcp/prcplist"
- var prcpdd = opener.model.getValue ( "/root/paminfo/orddd" );
- var contPrcpSpec = model.getValue ( prcpNode + "/contprcpspec" );
- var contPrcpSpecArray1;
- var contPrcpSpecArray2;
- var contPrcpDd = "";
-
- if ( opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ) != "O" ) {
- grdObj.valueMatrix ( 1, contPrcpDdCol ) = "-";
- return;
- }
-
- grdObj.valueMatrix ( 1, contPrcpDdCol ) = "";
- if ( contPrcpSpec == "-" ) { //처방 당일이었던 지정일 또는 처음검색
- prcpPKSpecArray = model.getValue ( prcpNode + "/prcppkspec" ).split("|");
- if ( !isNull(prcpPKSpecArray[0])) contPrcpDd = prcpPKSpecArray[0]; //처방일자가 있으면
- else contPrcpDd = prcpdd;
- contPrcpDd = fDateFormat ( contPrcpDd );
- } else {
- contPrcpSpecArray1 = contPrcpSpec.split("^");
- for ( var j=1; j < contPrcpSpecArray1.length; j++ ){
- contPrcpSpecArray2 = contPrcpSpecArray1[j].split("|");
- if ( j == (contPrcpSpecArray1.length-1))
- contPrcpDd = contPrcpDd + fDateFormat ( contPrcpSpecArray2[1]);//과거에 선택던 지정일을 넘긴다.
- else
- contPrcpDd = contPrcpDd + fDateFormat ( contPrcpSpecArray2[1]) + ",";
- }
- }
- grdObj.valueMatrix ( 1, contPrcpDdCol ) = contPrcpDd;
- }
- /**
- * @desc : 희망일자처리
- * @param : grdObj: Data Grid
- : prcpNode: source Node
- : flag: child
- : inst: 초기값을 가져올 instance
- * @return : void
- * @authur : 마정민 2007. 4. 30
- * @---------------------------------------------------
- */
- function fPrcpHopeDd( grdObj, prcpNode, flag, inst ) {
- //외래진료일자
- if ( flag == "child" ) {
- if ( opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ) != "O" ) return;
- prcpdd = opener.model.getValue ( "/root/paminfo/list/orddd" );
- } else {
- if ( model.getValue ( "/root/patflag/list/prcpgenrflag" ) != "O" ) return;
- prcpdd = model.getValue ( "/root/paminfo/list/orddd" );
- }
- if ( grdObj == null ) grdObj = grd_prcplist;
- if ( isNull(prcpNode)) prcpNode = "/root/main/prcp/prcplist";
- if ( isNull(inst)) inst = "prcphopedd";
-
- setParameter ("defaultday", prcpdd );
- setParameter ("paramcalflag", "sngl");
- setParameter ("reqparam", model.getValue ( prcpNode + "[" + grdObj.row + "]/" + inst ))
- modal ( "SPMMO10600" );
-
- if ( isNull(getParameter ( "rtn"))) return; //값이 없으면 return
- var selectedRows = grdObj.selectedRows;
- for (var i=0; i<selectedRows; i++) {
- model.setValue ( prcpNode + "[" + grdObj.selectedrow(i) + "]/" + inst, getParameter ( "rtn"));
- }
- }
- /**
- * @desc : 날짜에 - 구분자 두기
- * @param : dd: 모양을 바꿀날짜.
- * @return : yyyy-mm-dd
- * @authur : 마정민 2007. 4. 30
- * @---------------------------------------------------
- */
- function fDateFormat( dd ) {
- var yyyy = dd.substring ( 0, 4 );
- var mm = dd.substring ( 4, 6 );
- var dd = dd.substring ( 6, 8 );
- return yyyy + "-" + mm + "-" + dd;
- }
-
- /**
- * @desc : split을 이용한 배열값 가져오기
- * @param : pData: split이 포함된 원본데이터
- : pRow: row값
- : pCol: col값
- : pRowSep: row구분자
- : pColSep: col구분자
- * @return : arrCol[pCol]
- * @authur : 마정민 2007. 5. 9
- */
- function getArrayData (pData, pRow, pCol, pRowSep, pColSep ) {
- var pRowSep = (pRowSep == null || pRowSep =="" ? "▩" :pRowSep ); // row 구분자
- var pColSep = (pColSep == null || pColSep =="" ? "▦" :pColSep ); // column 구분자
-
- var arrRow = pData.split(pRowSep);
-
- if(arrRow.length <= pRow) return "";
- var arrCol = arrRow[pRow].split(pColSep);
- if(arrCol.length <= pCol) return "";
- return arrCol[pCol];
- }
- /**
- * @desc : 부서에 소속된 의사리스트 조회
- * @param : Ref - 조회조건 instance xPath
- : RsltRef - 데이터결과 instance xPath
- : orddeptcd - 부서코드
- : 추후에 마스터 데이터 작업 이후에 수정될 예정임
- * @return : void
- * @authur : 오지훈 2007. 5. 15
- * @---------------------------------------------------
- */
- function reqGetDrList(ref, rsltRef, orddeptcd, queryflag){
- model.makeValue(ref + "/orddeptcd" , orddeptcd);
- model.makeValue(ref + "/queryflag" , queryflag);
- submit("TRMMO04104", true, ref, rsltRef);
- }
- /**
- * @desc : 부서리스트 조회
- * @param : Ref - request instance xPath
- * : RsltRef - return instance xPath
- * : queryflag - instance에 전체, '-' 추가
- * : dutplceinstcd - 근무지기관코드
- * : dutplceuseyn - 근무지사용여부
- * @return : void
- * @authur : 오지훈 2007. 5. 15
- * @---------------------------------------------------
- */
- function reqGetDeptList(ref, rsltRef, queryflag, dutplceinstcd, dutplceuseyn){
- model.makeValue(ref + "/queryflag", queryflag);
- model.makeValue(ref + "/dutplceinstcd", dutplceinstcd);
- model.makeValue(ref + "/dutplceuseyn", dutplceuseyn);
- submit("TRMMO04103", true, ref, rsltRef);
- }
- /**
- * @desc : 병동리스트 조회
- * @param : Ref - 조회조건 instance xPath
- : RsltRef - 데이터결과 instance xPath
- * @return : void
- * @authur : 오지훈 2007. 5. 15
- * @---------------------------------------------------
- */
- function reqGetWardList(queryflag){
- model.makeValue("root/send/reqdata/queryflag", queryflag);
- submit("TRMMO04106");
- }
-
- /**
- * @desc : 데이터 한글인지 영문인지 구분해주는 함수
- * @param : pData: 한글여부를 비교할 데이터
- * @return : E: 영문, H: 한글
- * @authur : 마정민 2007. 5. 30
- * @---------------------------------------------------
- */
- function fIsHangul(pData) {
- var sBit = pData.charAt(0);
- if (escape(sBit).length <= 4) return "E";
- return "H";
- }
- /**
- * @desc : 공통 상세보기
- * @param : flag: 상세보기를 호출하는 화면 구분
- * @return : void
- * @authur : 마정민 2007. 6. 12
- * @---------------------------------------------------
- */
- function fIvwDetlVwCom ( grdObj ) {
- var grdLeft = 383;
- var grdWidht = 811;
- var minGrdLeft = 900;
- var minGrdWidht = 290;
- var ivwLeft = 0;
- var ivwWidth = 381;
- var extnIvwLeft = ivwLeft;
- var extnIvwWidth = 900;
- var lineX1 = grdLeft;
- var lineX2 = 1191;
- var minLineX1 = minGrdLeft;
- var minnLineX2 = lineX2;
- var ivwGridWidth = eval ( model.getValue ( "/root/init/grdwd" ));
- var extnIvwGridWidth = eval ( model.getValue ( "/root/init/extngrdwd" ));
- var ivwLineX2 = 380;
- var ivwMinLineX2 = 898;
- var grdnm = model.getValue ( "/root/init/grdnm" );
- var colsize = 100;
- if ( model.getValue( "/root/init/detlvw" ) == "p") {
- if (opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ) != "O" && !isNull(opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ))){
- opener.grd_prcplist.colHidden(3) = true;
- }
- if (typeof(opener.grd_prcplist) != "unknown" ) {
- opener.grd_prcplist.colHidden(4) = true;
- opener.grd_prcplist.attribute ( "left" ) = minGrdLeft;
- opener.grd_prcplist.attribute ( "width" ) = minGrdWidht;
- }
-
- if (grdObj == "bf"){
- opener.ivw_prcp3.attribute ( "left" ) = extnIvwLeft;
- opener.ivw_prcp3.attribute ( "width" ) = extnIvwWidth;
- } else {
- opener.ivw_prcp.attribute ( "left" ) = extnIvwLeft;
- opener.ivw_prcp.attribute ( "width" ) = extnIvwWidth;
- }
-
- if (typeof(opener.line5) != "unknown" ) {
- opener.line5.attribute ( "x1" ) = minLineX1;
- opener.line5.attribute ( "x2" ) = minnLineX2;
- }
-
- if ( opener.model.getValue ( "/root/cp" ) == "Y" ) {
- opener.ivw_prcp.visible = false;
- if (grdObj == "bf"){
- opener.ivw_prcp3.attribute ( "left" ) = extnIvwLeft;
- opener.ivw_prcp3.attribute ( "width" ) = extnIvwWidth;
- } else {
- opener.ivw_prcp2.attribute ( "left" ) = extnIvwLeft;
- opener.ivw_prcp2.attribute ( "width" ) = extnIvwWidth;
- }
- if (typeof(opener.grd_prcplist) != "unknown" ) {
- opener.grd_prcplist.attribute ( "left" ) = parseInt(minGrdLeft) + 5;
- opener.grd_prcplist.attribute ( "width" ) = parseInt(minGrdWidht) + 10;
- }
- if (typeof(opener.line5) != "unknown" ) {
- opener.line5.attribute ( "x1" ) = parseInt(minLineX1)+5;
- opener.line5.attribute ( "x2" ) = parseInt(minnLineX2)+15;
- }
- }
- model.setValue( "/root/init/detlvw", "m" );
- opener.model.setValue( "/root/init/detlivw", "m" );
- if( document.controls( grdnm ) != null) {
- if (typeof(line8) != "unknown" ) {
- line8.attribute ( "x2" ) = ivwMinLineX2;
- }
- document.controls( grdnm ).attribute ( "width" ) = extnIvwGridWidth;
-
- if ( grdObj == "bf" ) {
- //20081031 마정민 수정 전처방에 지정일을 추가하면서 상세보기시 word 추가
- for ( var i =1; i <= document.controls( grdnm ).rows ; i++ ){
- document.controls( grdnm ).rowstyle(1, "data", "word-warp") = "word";
- }
-
- document.controls( grdnm ).colWidth(document.controls( grdnm ).colRef ( "tempcol6" )) = model.getValue ( "/root/init/tempcol6exwd" );
- document.controls( grdnm ).colWidth(document.controls( grdnm ).colRef ( "tempcol7" )) = model.getValue ( "/root/init/tempcol7exwd" );
- //20081031 마정민 수정 전처방에 지정일을 추가하면서 상세보기시 word 추가. word일때는 autoResize = true
- document.controls( grdnm ).autoResize = true ;
- document.controls( grdnm ).rebuild();
- }
- }
- } else {
- if (opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ) != "O" && !isNull(opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ))){
- opener.grd_prcplist.colHidden(3) = false;
- }
- if (typeof(opener.grd_prcplist) != "unknown" ) {
- opener.grd_prcplist.colHidden(4) = false;
- opener.grd_prcplist.attribute ( "left" ) = grdLeft;
- opener.grd_prcplist.attribute ( "width" ) = grdWidht;
- }
- if (grdObj == "bf"){
- opener.ivw_prcp3.attribute ( "left" ) = ivwLeft;
- opener.ivw_prcp3.attribute ( "width" ) = ivwWidth;
- } else {
- opener.ivw_prcp.attribute ( "left" ) = ivwLeft;
- opener.ivw_prcp.attribute ( "width" ) = ivwWidth;
- }
- if (typeof(opener.line5) != "unknown" ) {
- opener.line5.attribute ( "x1" ) = lineX1;
- opener.line5.attribute ( "x2" ) = lineX2;
- }
- if ( opener.model.getValue ( "/root/cp" ) == "Y" ) {
- opener.ivw_prcp.visible = false;
- if (grdObj == "bf"){
- opener.ivw_prcp3.attribute ( "left" ) = ivwLeft;
- opener.ivw_prcp3.attribute ( "width" ) = ivwWidth;
- } else {
- opener.ivw_prcp2.attribute ( "left" ) = ivwLeft;
- opener.ivw_prcp2.attribute ( "width" ) = ivwWidth;
- }
- if (typeof(opener.grd_prcplist) != "unknown" ) {
- opener.grd_prcplist.attribute ( "left" ) = parseInt(grdLeft) + 2;
- opener.grd_prcplist.attribute ( "width" ) = parseInt(grdWidht) + 7;
- }
- if (typeof(opener.line5) != "unknown" ) {
- opener.line5.attribute ( "x1" ) = parseInt(lineX1)+2;
- opener.line5.attribute ( "x2" ) = parseInt(lineX2)+15;
- }
- }
- model.setValue( "/root/init/detlvw", "p" );
- opener.model.setValue( "/root/init/detlivw", "p" );
-
- if( document.controls( grdnm ) != null) {
- if (typeof(line8) != "unknown" ) {
- line8.attribute ( "x2" ) = ivwLineX2;
- }
- document.controls( grdnm ).attribute ( "width" ) = ivwGridWidth;
- if ( grdObj == "bf" ) {
- //20081031 마정민 수정 전처방에 지정일을 추가하면서 상세보기시 word 추가. 단 상세보기 취소시 noe으로 바꿈.
- for ( var i =1; i <= document.controls( grdnm ).rows ; i++ ){
- document.controls( grdnm ).rowstyle(1, "data", "word-warp") = "none";
- document.controls( grdnm ).rowHeight(i) ="22" ;
- }
- document.controls( grdnm ).colWidth(document.controls( grdnm ).colRef ( "tempcol6" )) = model.getValue ( "/root/init/tempcol6wd" );
- document.controls( grdnm ).colWidth(document.controls( grdnm ).colRef ( "tempcol7" )) = model.getValue ( "/root/init/tempcol7wd" );
- //20081031 마정민 수정 전처방에 지정일을 추가하면서 상세보기시 word 추가. none일때는 autoResize = false;
- document.controls( grdnm ).autoResize = false ;
- document.controls( grdnm ).rebuild();
- }
- }
- }
-
- //CP일 경우, viewer안의 컨트롤 height 사이즈를 모두 조정해야 함 (2008.08.28 JJE)
- //전처방 상세보기 모드일 경우 타 버튼 클릭시 전처방 축소시 오류 발생으로 조건 추가(2008.10.21 JJE)
- if ( opener.model.getValue ( "/root/cp" ) == "Y" && grdObj != "bf" ) {
- opener.window.javascript.fResizeControls();
- }
- }
- /**
- * @desc : 두 NodeList와 NodeValue값을 비교 결과에 따라 true, false를 return한다.
- * @param : desNode - 목적노드
- : srcNode - 원본노드
- * @return : true, false
- * @authur : 오지훈 2007. 6. 14
- * @---------------------------------------------------
- */
- function compareNodeVal(desNode, srcNode){
- var node = instance1.selectSingleNode(desNode);
- var node2 = instance1.selectSingleNode(srcNode);
- var nodeList = node.childNodes;
- var nodeList2 = node2.childNodes;
- while(childNode = nodeList.nextNode()){
- childNode2 = nodeList2.nextNode();
- //alert(childNode.NodeValue + "," + childNode2.NodeValue);
- if(childNode.NodeValue != childNode2.NodeValue){
- return true; //값이 다른 경우 true
- }
- }
- return false; //값이 같은 경우 false
- }
- /**
- * @desc : 병실리스트 - 병동에 해당하는 병실코드 조회
- * @param : wardcd - 병동코드
- * @return : void
- * @authur : 오지훈 2007. 6. 14
- */
- function reqGetRoomList(wardcd){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/wardcd", wardcd);
- submit("TRMMO04107");
- }
- /**
- * @desc : 환자정보 조회
- * @param : paramFlag - 등록번호/환자명 구분(pid/hngnm)
- * : param - 등록번호/환자명
- : param2 - 외래/입원일자
- * : tblFlag - 테이블구분(환자기본/외래/입원, ptbs/otpt/inpt)
- * @return : void
- * @authur : 오지훈 2007. 6. 14
- */
- function reqPatInfo(paramFlag, tblFlag, param, param2){
- model.removeNodeset("/root/send/reqdata");
- if(paramFlag == "pid"){ //등록번호 검색
- model.makeValue("/root/send/reqdata/pid" , param);
- model.makeValue("/root/send/reqdata/hngnm", "");
- }else if(paramFlag == "hngnm"){ //환자명 검색
- model.makeValue("/root/send/reqdata/pid" , "");
- model.makeValue("/root/send/reqdata/hngnm", param);
- }
- model.makeValue("/root/send/reqdata/orddd" , param2);
- model.makeValue("/root/send/reqdata/queryflag", tblFlag);
- model.makeValue("/root/send/reqdata/srchflag" , paramFlag);
- submit("TRMMO04105");
-
- var Node = instance1.selectSingleNode("/root/init/patnm/patnm/hngnm");
- if(Node == null && paramFlag == "pid"){
- messageBox("등록번호 [" + param + "] 환자를 찾을 수 ", "I004");
- return false;
- }else if(Node == null && paramFlag == "hngnm"){
- messageBox("환자명 [" + param + "] 환자를 찾을 수 ", "I004");
- return false;
- }
- return true;
- }
- /**
- * @desc : 대체약이 있을경우 팝업처리
- * @param : currow: 대체약을 띄울 팝업
- : flag: 대체약 팝업 flag ( 1:처방복사, 2:대체약일괄변경, 3:대체약폴더내변경 )
- : strSrc: source Node
- * @return : void
- * @authur : 마정민 2007. 6. 21
- */
- function fAltDrug ( currow, flag, strSrc, prcpInptFlag, powdflag ) {
- if (isNull(strSrc)) strSrc = "/root/main/prcp/prcplist";
- var setno = model.getValue ( "/root/hidden/prmsprcpsetinfo/prmsprcpsetlist/setno" );
- var settypecd = model.getValue ( "/root/hidden/prmsprcpsetinfo/prmsprcpsetlist/settypecd" );
- var setkindcd = model.getValue ( "/root/hidden/prmsprcpsetinfo/prmsprcpsetlist/setkindcd" );
- var setclscd = model.getValue ( "/root/hidden/prmsprcpsetinfo/prmsprcpsetlist/setclscd" );
- var settrgtcd = model.getValue ( "/root/hidden/prmsprcpsetinfo/prmsprcpsetlist/settrgtcd" );
- var prcpcd = "";
- var prcpnm = "";
- if ( flag == "child" ) {
- flag = 1;
- //20090528: 6세미만 경구약 자동 powdflag전환 때문에 처방복사시 powdflag 체크로직 추가.
- if ( !isNull(powdflag)) {
- flag = powdflag;
- }
- if ( prcpInptFlag == "01" ) {
- if (typeof(ivw_prcp3) == "object"){
- prcpcd = ivw_prcp3.model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- prcpnm = ivw_prcp3.model.getValue ( strSrc + "[" + currow + "]/prcpnm" );
- }
- } else {
- if (typeof(ivw_prcp) == "object"){
- prcpcd = ivw_prcp.model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- prcpnm = ivw_prcp.model.getValue ( strSrc + "[" + currow + "]/prcpnm" );
- }
- }
- }
-
- if (isNull(prcpcd)) {
- prcpcd = model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- prcpnm = model.getValue ( strSrc + "[" + currow + "]/prcpnm" );
- }
- var prcpclscd = model.getValue ( strSrc + "[" + currow + "]/prcpclscd" );
- var erprcpflag = model.getValue ( strSrc + "[" + currow + "]/erprcpflag" );
- var prnprcpflag = model.getValue ( strSrc + "[" + currow + "]/prnprcpflag" );
- var prepprcpflag = model.getValue ( strSrc + "[" + currow + "]/prepprcpflag" );
- var selfdrugflag = model.getValue ( strSrc + "[" + currow + "]/selfdrugflag" );
- var powdflag = model.getValue ( strSrc + "[" + currow + "]/powdflag" );
- var drugspd = model.getValue ( strSrc + "[" + currow + "]/drugspd" );
- var prcpvolunitflag = model.getValue ( strSrc + "[" + currow + "]/prcpvolunitflag" );
- cond1 = prcpcd + "▦" + setno + "▦" + settypecd + "▦" + setkindcd + "▦" + setclscd + "▦" + settrgtcd + "▩";
- cond2 = prcpclscd + "▦" + erprcpflag + "▦" + prnprcpflag + "▦" + prepprcpflag + "▦" + selfdrugflag + "▦" + powdflag + "▦" + drugspd + "▦" + prcpvolunitflag + "▩";
- setParameter ( "SMMMO02300_cond1", cond1 );
- setParameter ( "SMMMO02300_cond2", cond2 );
- setParameter ( "SMMMO02300_cond3", flag );
- setParameter ( "SMMMO02300_cond4", prcpnm );
- fPrcpModal ( "SPMMB10100", "220", "150" );
- clearParameter ( "SMMMO02300_cond1" );
- clearParameter ( "SMMMO02300_cond2" );
- clearParameter ( "SMMMO02300_cond3" );
- clearParameter ( "SMMMO02300_cond4" );
- }
- /**
- * @desc : 화면컬럼 조회 및 설정
- * @param :
- * @return : void
- * @authur : 오지훈 2007. 6. 18
- */
- function initScrnCol(grdObj, scrnID){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/scrnid", scrnID);
- submit("TRMMB01103");
- var node = instance1.selectSingleNode("/root/hidden/userscrnenvinfo/gridseq");
- if(node){
- var compscnts = model.getValue("/root/hidden/userscrnenvinfo/gridseq/compscnts");
- var compsrefcnts = model.getValue("/root/hidden/userscrnenvinfo/gridseq/compsrefcnts");
- var compssizecnts = model.getValue("/root/hidden/userscrnenvinfo/gridseq/compssizecnts");
- setScrnEnvEstb(grdObj, compscnts, compsrefcnts, compssizecnts);
- }
- }
- /**
- * @desc : 처방검색
- * @param : prcpnm: 검색할 처방명
- : prcpdd: 처방일자
- : insukind: 보험유형
- : trnm: 트랜젝션 네임
- : ioflag: 외래, 입원, 응급 구분
- : refreshFlag: refresh 여부
- : mthdnm 명
- : containflag : contains사용구분
- * @return : void
- * @authur : 마정민 2007. 6. 21
- */
- function fPrcpSrchCom ( prcpnm, prcpdd, insukind, trnm, ioflag, refreshFlag, mthdnm, isHangul, containflag ) {
- if ( isNull(trnm)) {
- trnm = "TRMMO00100";
- }
- if ( isNull(prcpdd)) {
- prcpdd = getCurrentDate();
- }
- if ( isNull(ioflag)) {
- ioflag = "-";
- }
- if ( isNull(refreshFlag)) {
- refreshFlag = false;
- }
- if ( isNull(mthdnm)) {
- mthdnm = "getPrcpSrchInfo";
- } //getPrcpCdSrchInfo
-
- //contains사용일 경우, 검색어의 특수기호에 /를 붙인다.
- //ex) high-voltage@avm -> high/-voltage/@avm
- //2008.06.28 오지훈
- model.resetInstanceNode ( "/root/send" );
-
- if(containflag == true){
- var regular = /[^ A-Za-z0-9]/g;
- var arr = prcpnm.match(regular);
- if(arr != null ){
- for(var i = 0; i <= arr.length-1; i++){
- if (arr[i] != "-" && arr[i] != " " && arr[i] != ".") {
- prcpnm = prcpnm.setReplaceWord( arr[i], "\\".concat(arr[i]) );
- }
- }
- }
- model.setValue("/root/send/cond6", "1");
- }else{
- model.setValue("/root/send/cond6", "2");
- }
-
- if (ioflag == "" || ioflag == null || ioflag == "undefined" || ioflag == "-") ioflag = getPatientInfoDetail("ioflag");
- model.setValue ( "/root/send/cond1", prcpnm.toUpperCase()); //처방명, 수가코드
- model.setValue ( "/root/send/cond2", ioflag ); //외래, 입원, 응급 구분
- model.setValue ( "/root/send/cond3", prcpdd ); //처방일
- model.setValue ( "/root/send/cond4", insukind ); //환자보험유형
- if ( !isNull( isHangul)) {
- model.setValue ( "/root/send/cond5", isHangul ); //한영구분
- }
- //그리드처방검색일때: 1일때는 첫단어검색, 2일때는 단어검색
- //var srchcond1 = model.getValue ( "/root/prcpsrchcond1" );
- //model.setValue ( "/root/send/cond6", srchcond1 ); //검색조건
-
- /*20080930 시행부서 건진처방 때문에 추가했으나 시행부서처방에서도 건진처방 건색은 안되야 한다고 해서 주석으로 처리.
- if ( model.getValue ( "/root/addprcp" ) == "Y" || opener.model.getValue ( "/root/addprcp" ) == "Y") {
- model.makeValue ( "/root/send/cond7", "addprcp"); //처방명, 수가코드
- }*/
-
- model.setValue ( "/root/send/cond99", mthdnm ); //검색구분
- if ( refreshFlag == false ) {
- submit (trnm, false );
- } else {
- submit( trnm );
- }
- }
- /**
- * @desc : 전처방검색
- * @param : pid: 환자ID
- : orddd: 외래:진료일, 입원:입원일
- : prcpdd: 처방일
- : bfflag: 전처방 where 조건 구분자
- : initflag: 최초구분
- : orddrid: 의사ID,외래에서만 필요하다.
- : todd
- : prcpgenrflag: 외래입원구분
- : orddeptcd: 부서코드
- : cretno: 원무생성번호
- : ioflag: 외래, 입원, 응급 구분
- : refreshFlag: refresh 여부
- : followup: 퇴원후 외래처방일과 동일한 처방일이거나 initsrch 와 동일한 날짜가 있을 경우 followdd를 입력한다.
- : bfprcpviewflag : 전처방 조회 조건 개인별 설정기능 추가 by sonjy 20091120
- * @return : void
- * @authur : 마정민 2007. 6. 21
- */
- function fBfPrcpSrchCom ( pid, orddd, prcpdd, bfflag, initflag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, trnm, refreshFlag, prcpauthflag, followup , bfprcpviewflag) {
-
- if ( isNull(trnm)) {
- trnm = "TRMMO00100";
- }
- if ( isNull(refreshFlag)) {
- refreshFlag = false;
- }
- if ( isNull(prcpauthflag)) {
- prcpauthflag = "0";
- }
- var curprcpdd = opener.model.getValue ( "/root/init/prcpdd" );
- if (isNull(curprcpdd)) {
- curprcpdd = model.getValue ( "/root/init/prcpdd" );
- if (isNull(curprcpdd)){
- curprcpdd = getCurrentDate();
- }
- }
-
- var oprsrvno = "";
- if (!isNull(opener.model.getValue ( "/root/operation/list/oprsrvno"))) {
- orddd = opener.model.getValue ( "/root/operation/list/oprsrvno");
- if (opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ) == "O"){
- prcpgenrflag = "OUTOP";
- } else {
- prcpgenrflag = "OP";
- }
- } else if (!isNull(model.getValue ( "/root/operation/list/oprsrvno"))) {
- orddd = model.getValue ( "/root/operation/list/oprsrvno");
- if (model.getValue ( "/root/patflag/list/prcpgenrflag" ) == "O"){
- prcpgenrflag = "OUTOP";
- } else {
- prcpgenrflag = "OP";
- }
- }
-
- model.setValue ( "/root/send/cond1", pid); //환자ID
- model.setValue ( "/root/send/cond2", orddd ); //외래:진료일, 입원:입원일
- model.setValue ( "/root/send/cond3", prcpauthflag ); //처방권한 구분
- model.setValue ( "/root/send/cond4", prcpdd ); //처방일자
- model.setValue ( "/root/send/cond5", bfflag ); //전처방 where 조건 구분자
- model.setValue ( "/root/send/cond6", initflag ); //최초구분
- model.setValue ( "/root/send/cond7", orddrid); //의사ID,외래에서만 필요하다.
- model.setValue ( "/root/send/cond8", todd); //todd
- model.setValue ( "/root/send/cond9", prcpgenrflag ); //외래입원구분
- model.setValue ( "/root/send/cond10", orddeptcd ); //부서코드
- model.setValue ( "/root/send/cond11", cretno ); //생성번호
- model.makeValue( "/root/send/cond14", curprcpdd );
- if (!isNull(followup)){
- model.makeValue( "/root/send/cond12", "followup" ); //외래follow up
- }
-
- var insukind = opener.model.getValue ( "/root/paminfo/list/insukind");
- if (isNull(insukind)) insukind = model.getValue ( "/root/paminfo/list/insukind");
- if (!isNull(insukind)){
- model.makeValue( "/root/send/cond13", insukind ); //외래follow up
- }
- model.setValue ( "/root/send/cond99", "getBfPrcpSrchInfo" );//검색구분
-
- //by sonjy 전처방 조회모드 설정 20091120
- if( bfflag == "bfprcp" || bfflag == "addprcp" ){
- if(!isNull(bfprcpviewflag) ) model.makeValue( "/root/send/bfprcpviewflag",bfprcpviewflag);
- }
- if ( refreshFlag == false ) {
- if(!submit (trnm, false )) {
- return false;
- } else {
- return true;
- }
- } else {
- if (!submit( trnm )) {
- return false;
- } else {
- return true;
- }
- }
- //CP일 경우, viewer안의 컨트롤 height 사이즈를 모두 조정해야 함 (2008.08.28 JJE)
- if ( opener.model.getValue ( "/root/cp" ) == "Y" ) {
- opener.window.javascript.fResizeControls();
- }
- }
- /**
- * @desc : 약속처방에 등록 가능한지 check
- * @param : usge: 저장화면
- : prcpkindcd: 처방분류
- : prcpnm: 처방명
- * @return : true, false
- * @authur : 마정민 2007. 6. 22
- */
- function fPrmsSaveCheck ( usge, prcpkindcd, prcpnm ) {
- //약속처방, 지시처방에서는 HSCT 처방을 등록할 수 없다.
- if ( prcpkindcd == "04" && usge == "prms" ) {
- messageBox ( "약속처방에는 [" + prcpnm +"] HSCT 처방을 등록", "E001" );
- return false;
- } else if ( prcpkindcd == "04" && usge == "direc" ) {
- messageBox ( "지시처방에는 [" + prcpnm +"] HSCT 처방을 등록", "E001" );
- return false;
- }
- return true;
- }
- /**
- * @desc : 팝업위치가 저장되지 않는 팝업 띄우기
- * @param : screenId: 화면 ID
- : argxpt : x좌표
- : argypt : y좌표
- * @return : void
- * @authur : 마정민 2007. 6. 29
- */
- function fPrcpModal ( screenId, argxpt, argypt ) {
- var xpt = window.screenleft + eval(argxpt);
- var ypt = window.screenTop + eval(argypt);
- var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- modal (screenId, mon, xpt, ypt, screenId, "", "", "", false);
- }
- /**
- * @desc : 팝업위치가 저장되지 않는 팝업 모달 띄우기
- * @param : screenId: 화면 ID
- : argxpt : x좌표
- : argypt : y좌표
- * @return : void
- * @authur : 문세희 2008. 9. 25
- */
- function fPrcpOpen ( screenId, argxpt, argypt ) {
- var xpt = window.screenleft + eval(argxpt);
- var ypt = window.screenTop + eval(argypt);
- var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- open (screenId, mon, xpt, ypt, screenId, "", "", "", false);
- }
- /**
- * @desc : 노드리스트를 CSV로 반환한다.
- * @param : nodeList
- : headerFlag : header 정보 필요유무
- * @return : void
- * @authur : 마정민 2007. 6. 30
- */
- function getPrcpNodeListCSV(nodeList, headerFlag ) {
- if( nodeList.length == 0 )
- return "";
- var sColSep = "▦";
- var sRowSep = "▩";
-
- var rCSV = "";
-
- var childNodeList = nodeList.item(0).childNodes;
- var childNodeCnt = childNodeList.length;
- if( childNodeCnt == 0 )
- return "";
-
- var i, j;
- if ( headerFlag != "N" ) {
- for( i = 0; i < childNodeCnt - 1; i++) {
-
- rCSV += childNodeList.item(i).nodeName + sColSep;
- }
- rCSV += childNodeList.item(i).nodeName + sRowSep;
- }
- var node;
- while( node = nodeList.nextNode() ) {
-
- childNodeList = node.childNodes;
- for( i = 0; i < childNodeCnt - 1; i++) {
-
- rCSV += childNodeList.item(i).text + sColSep;
- }
- rCSV += childNodeList.item(i).text + sRowSep;
- }
-
- return rCSV;
- }
- /**
- * @desc : 수술방 조회(combo 설정)
- * @param : opschedd - 수술예약일자
- * : queryflag - Query구분자(day : 일자, total : 전체, detl :부서, 의사, 일자 )
- * @return :
- * @authur : 오지훈 2007. 6. 30
- */
- function reqOpRoomList(opschedd, desRef, queryflag, perfdeptcd, perfdrid){
- var resultRef = "/root/hidden/mmo/oproomlist";
- model.makeNode(resultRef);
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/opschedd" , opschedd);
- model.makeValue("/root/send/reqdata/queryflag", queryflag);
- if(queryflag == "detl"){
- model.makeValue("/root/send/reqdata/perfdeptcd", perfdeptcd);
- model.makeValue("/root/send/reqdata/perfdrid" , perfdrid);
-
- }
- var rtnval = submit("TRMMO05704", false, "/root/send/reqdata", resultRef);
- if(rtnval == true){
- copyNodeType(desRef, resultRef, "replace");
- }
- }
- /**
- * @desc : 그리드 data 엑셀화일로 저장
- * @
- * @param :
- * @event :
- * @return :
- * @---------------------------------------------------
- */
- function saveGridToExcel(grdObj){
- var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
- if (fileName != ""){
- grdObj.saveExcel(fileName, "SheetName", true, true, "", "", true);
- }
- }
- /**
- * @desc : 콤보박스에 원하는 instance node와 value를 설정
- * @
- * @param :
- * @event :
- * @return :
- * @---------------------------------------------------
- */
- function addComboInstance(combopath, nodename, nodeval, parentnode){
- var xmlNode = model.instances(0).selectSingleNode(combopath + "/" + parentnode);
- if(xmlNode == null){
- return;
- }
- nodename = nodename.split("^");
- nodeval = nodeval.split("^");
- if(nodename.length != nodeval.length){
- return;
- }
-
- var label = model.instances(0).createElement(nodename[0]);
- var val = model.instances(0).createElement(nodename[1]);
- var combo = model.instances(0).createElement(parentnode);
- label.value = "" + nodeval[0] + "";
- val.value = "" + nodeval[1] + "";
-
- combo.appendChild(label);
- combo.appendChild(val);
-
- chkNode = model.instances(0).selectSingleNode(combopath);
- if(chkNode == null){
- model.makeNode(combopath);
- srcNode = model.instances(0).selectSingleNode(combopath);
- }else{
- srcNode = model.instances(0).selectSingleNode(combopath);
- }
-
- desNode = model.instances(0).selectSingleNode(combopath + "/" + parentnode);
- srcNode.insertBefore(combo, desNode);
- model.refresh();
- }
- /**
- * @desc : 콤보박스에 원하는 instance node와 value를 설정
- * @
- * @param : signbfcnts: sign할 데이터
- : signid: sign 할 유저의 id
- : signopt: false 로그인후 한번만 띄움, true: 매번띄움
- : setnode: sign 데이터를 setValue 할 인스턴스 값이 있을 때만 함
- * @event :
- * @return :
- * @---------------------------------------------------
- */
- function fSaveSign ( signbfcnts, signid, signopt, setnode ) {
- var v_stext = "";
- if ( !isNull( signbfcnts )) {
- if (signopt) {
- v_stext = zesfSignData( signbfcnts, signid, signopt );
- } else {
- v_stext = zesfSignData( signbfcnts, signid );
- }
- if ( isNull(v_stext)) {
- return ""; //값이 없을 때는 return 함
- }
- } else {
- return "N"; //인증할 데이터가 없을 때는 N 으로 return
- }
-
- if ( !isNull (setnode)) { //setnode가 있을경우 setvalue
- model.setValue ( setnode, v_stext );
- }
- return v_stext;
- }
- function fPrcpExecDeptSrch(flag) {
- var prcpcd = model.getValue ( "/root/main/prcp/prcplist/prcpcd" );
- var prcpdd = opener.model.getValue ( "/root/init/prcpdd" );
- if ( isNull(prcpdd)) {
- prcpdd = model.getValue ( "/root/init/prcpdd" );
- if (isNull(prcpdd)) {
- prcpdd = getCurrentDate();
- }
- }
- model.makeValue("/root/send/cond1" , prcpcd);
- model.makeValue("/root/send/cond2" , prcpdd);
- model.makeValue("/root/send/cond3" , flag);
- //KNUH_20110208, 주희경, 진료 속도 개선을 위해 로그인 시 미리 데이터를 조회해 놓고 copy해서 쓰는 방식으로 변경
- //flag가 all이면 이미 조회 해 놓은 데이터 카피
- if ( flag == "all" )
- {
- model.makeNode("/root/orddept");
- var viewerObj = getViewer("sysMessage");
- var srcNodes = viewerObj.window.instance1.selectNodes(gvOrderBasicInfoPath + "/dept");
- var targetNodes = instance1.selectSingleNode("/root/orddept");
-
- if ( srcNodes.length > 0 )
- {
- for(i=0; i<srcNodes.length; i++)
- {
- targetNodes.appendChild(srcNodes.item(i));
- }
- }
- else //KNUH_20110208, 주희경 복사할 데이터가 없을 시 (비정상 로딩) 강제 로그아웃
- {
- messageBox("현재 프로그램 배포로 인해 진료에 필요한 데이터를 재조회 해야합니다. 죄송하지만 반드시 다시 로그인 해주시기 바랍니다.", "");
- if(submit("TRMMO00116")){
- return true;
- }else{
- return false;
- }
- }
- }
- //all이 아니면 해당 데이터 조회
- else
- {
- if(submit("TRMMO00116")){
- return true;
- }else{
- return false;
- }
- }
- /*
- if(submit("TRMMO00116")){
- return true;
- }else{
- return false;
- }*/
- }
- function fPrcpColor(flag) {
- var rowcolor = "";
- var errcolor = "";
- //처방화면에 색을 칠한다.
- if ( flag == "child"){
- for ( var i=1; i<= opener.grd_prcplist.rows; i++ ) {
- errcolor = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol9" );
- if (!isNull(errcolor)) {
- rowcolor = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol9" );
- } else {
- rowcolor = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol10" );
- if (isNull(rowcolor)) {
- rowcolor = "transparent";
- }
- }
- opener.grd_prcplist.rowstyle(i, "data", "background-color") = rowcolor;
- }
-
- } else {
- for ( var i=1; i<= grd_prcplist.rows; i++ ) {
- errcolor = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol9" );
- if (!isNull(errcolor)) {
- rowcolor = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol9" );
- } else {
- rowcolor = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol10" );
- if (isNull(rowcolor)) {
- rowcolor = "transparent";
- }
- }
- grd_prcplist.rowstyle(i, "data", "background-color") = rowcolor;
- }
-
- }
- }
- /**
- * @desc : 감염관리 환자 여부를 확인, 직원감염노출사고 보고서 open
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqInFecPatList(rgstno, rgstno2){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/rgstno" , rgstno);
- model.makeValue("/root/send/reqdata/rgstno2", rgstno2);
- if(submit("TRMMO04108")==true){
- var pflag = model.getValue("/root/main/infecpatlist/infecpatlist/pflag");
- if(pflag == "Y"){
- var infecojb = getOpenWindow("SMASI01000");
- if(infecojb != null){infecojb.javascript.fClose();} //현재 직원감염노출사고 보고서가 있는 경우, close후, 다시 open
- setParameter("sFlag", "P");
- open("SMASI01000");
- }
- }
- }
- /**
- * @desc : EMR부서콤보 조회
- * @
- * @param : ref - reference path
- * rsltref - result reference path
- * orddeptflag- 진료과구분
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmbfGetDeptCodeComboList(ref, rsltref, orddeptflag, stnddd){
- var mmb_rsltref = "/root/hidden/mmb/orddept";
- model.removeNode(mmb_rsltref);
- model.makeNode(mmb_rsltref);
-
- if(stnddd != null && stnddd != "" && stnddd != "undefined" && stnddd.length == 8) { // 기준일자를 입력하는경우 DB에서 신규로 조회 하도록 수정. 2014.04.03 엄영만
- model.removeNode(ref);
- model.makeValue(ref + "/orddeptflag", orddeptflag);
- model.makeValue(ref + "/stnddd", stnddd);
-
- submit("TRMMB04101", "false", ref, mmb_rsltref);
- } else { // 기준일자가 없는경우 KNUH_20110208, 진료속도개선 수정, TRMMB04101 submit을 안하고 로그인시 가져온 데이터를 copy하는것으로 변경, 주희경
- var srcref = "";
- if ( orddeptflag == "A" || orddeptflag == "" || orddeptflag == null){
- srcref = gvOrderBasicInfoPath + "/alldeptinfo";
- } else if ( orddeptflag == "C"){
- srcref = gvOrderBasicInfoPath + "/centdeptinfo";
- } else if ( orddeptflag == "D"){
- srcref = gvOrderBasicInfoPath + "/dscdeptinfo";
- } else if ( orddeptflag == "W"){
- srcref = gvOrderBasicInfoPath + "/warddeptinfo";
- } else if ( orddeptflag == "O"){
- srcref = gvOrderBasicInfoPath + "/otptdeptinfo";
- } else if ( orddeptflag == "I"){
- srcref = gvOrderBasicInfoPath + "/inptdeptinfo";
- } else if ( orddeptflag == "T" ){
- srcref= gvOrderBasicInfoPath + "/deptinfoinall";
- }
-
- var viewerObj = getViewer("sysMessage");
- var targetNodes = instance1.selectSingleNode(mmb_rsltref);
- var srcNodes = viewerObj.window.instance1.selectNodes(srcref);
- if ( srcNodes.length > 0 ) { // 복사할 원본 데이터가 존재하면 복사
- for(i=0; i<srcNodes.length; i++){
- var newNode = srcNodes.item(i).cloneNode(true);
- newNode.nodeName = "dept";
- targetNodes.appendChild(newNode);
- }
- } else { //KNUH_20110208, 주희경 복사할 데이터가 없을 시 (비정상 로딩) 강제 로그아웃
- messageBox("현재 프로그램 배포로 인해 진료에 필요한 데이터를 재조회 해야합니다. 죄송하지만 반드시 다시 로그인 해주시기 바랍니다.", "");
- model.removeNode(ref);
- model.makeValue(ref + "/orddeptflag", orddeptflag);
- submit("TRMMB04101", "false", ref, mmb_rsltref);
- }
- }
- model.copyNode(rsltref, mmb_rsltref);
- model.removeNode(mmb_rsltref);
- model.refresh();
- }
- /**
- * @desc : EMR사용자콤보 조회
- * @
- * @param : ref - reference path
- * rsltref - result reference path
- * deptcd - 부서코드
- * jobkindcd - 직종코드
- * jobposcd - 직책코드
- * specordyn - 선택진료여부
- * drflag - 의사구분, 가상사용자 제외
- * nmdispflag - 이름뒤에 특진(Y)표시 할것인지 구분
- * jobflag - 주치의 담당의 조회기준 (JobKindCD, JobPoscd)
- * specdrlist - 선택진료 의사 모두 조회한다.
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmbfGetUserComboList(ref, rsltref, deptcd, jobkindcd, specordyn, drflag, standd, nmdispflag, jobflag, specdrchk){
- var mmb_rsltref = "/root/hidden/mmb/userlist";
- model.removeNode(mmb_rsltref);
- model.makeNode(mmb_rsltref);
-
- model.removeNode(ref);
- model.makeValue(ref + "/deptcd" , deptcd); //부서코드
- model.makeValue(ref + "/jobkindcd", jobkindcd); //직종코드(의사:0330)
- model.makeValue(ref + "/specordyn", specordyn); //선택진료여부
- model.makeValue(ref + "/drflag" , drflag); //주치의, 담당의 구분(M : 주치의 , A:담당의, T:전체 )
- model.makeValue(ref + "/standd" , standd); //조회기준일자
-
- model.makeValue(ref + "/jobflag" , jobflag); //JobKindcd
- model.makeValue(ref + "/specdrchk" , specdrchk); //진료과조건 제외
-
- if(nmdispflag == "")
- model.makeValue(ref + "/nmdispflag" , "N"); //조회기준일자
- else
- model.makeValue(ref + "/nmdispflag" , nmdispflag); //조회기준일자
- if(submit("TRMMB04102", "false", ref, mmb_rsltref)==true){
- model.copyNode(rsltref, mmb_rsltref);
- model.removeNode(mmb_rsltref);
- }
- model.refresh();
- }
- /**
- * @desc : 하드코드 조회
- * @
- * @param : ref - reference path
- * rsltref - result reference path
- * hardcd - 하드코드
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function reqHardCodeInfo(ref, rsltref, hardcd){
- //KNUH_20110208, 진료속도개선 위해 로그인 시 미리 조회 해 놓은 데이터 복사, 주희경
- fGetHardCDList("N", hardcd, 0, rsltref);
- /*
- var mmb_rsltref = "/root/hidden/mmb/hardcd";
- model.removeNode(mmb_rsltref);
- model.makeNode(mmb_rsltref);
-
- model.removeNode(ref);
- model.makeValue(ref + "/hardcd", hardcd);
- if(submit("TRMMB04103", "false", ref, mmb_rsltref)==true){
- model.copyNode(rsltref, mmb_rsltref);
- model.removeNode(mmb_rsltref);
- }
- */
- model.refresh();
- }
- /**
- * @desc : 약주사 원내처방 사유 체크
- * @
- * @param : objFlag
- * strDest - 검색노드
- * @return :
- * @author : 마정민
- * @---------------------------------------------------
- */
- function fHosinPrcpResnChk ( objFlag, strDest ) {
- //약주사 원내처방사유 체크
- var prcpclscdchkA2 = "";
- var prcpclscdchkA4 = "";
- var prcpclscdchkA6 = "";
- var prcpclscd = "";
-
- //SON0919 G3아닌 응급퇴원약 원내외 처리 부분 BY SONJY 20080917 start
- var prcpgenrflag = "";
- var prcpkindcd = "";
- var erflag = "";
- //SON0919 end
-
- //SON0930 약제원/내외구분 O/I Setting값이 있는 경우 모든 사유처리에서 제외하도록.
- var hosinflag = "";
- var drugmastspec = "";
- if ( objFlag == "child") {
- prcpgenrflag = opener.model.getValue ("/root/patflag/list/prcpgenrflag");
- if( (prcpgenrflag == "E" && opener.model.getValue ( "/root/init/erresn" ) != "G3") || prcpgenrflag == "D" ){ //SON0919 G3아닌 응급퇴원약 원내외 처리 부분 BY SONJY 20080917 start
- erflag = "Y";
- }
-
- if ( opener.model.getValue ("/root/usge") == "prcp" && (prcpgenrflag =="O" || erflag == "Y" ) ) { //SON0919 G3아닌 응급퇴원약 원내외 처리 부분 BY SONJY
- var srcNodeList;
- if( erflag == "Y") { //원내처방사유가 45 SON0919 start
- srcNodeList = opener.model.instances(0).selectNodes ( strDest + "/prcplist[prcpkindcd='60' and hosinprcpresncd='45']" );
- } else {
- srcNodeList = opener.model.instances(0).selectNodes ( strDest + "/prcplist[hosinprcpresncd='45']" );
- }//SON0919 end
-
- var prcpclscdNodeValue = "";
- for(var i = 0; i < srcNodeList.length; i++) {
- drugmastspec = srcNodeList.item(i).drugmastspec.value;
- hosinflag = getArrayData ( drugmastspec + "^", 0, 11 , "^", "|" );
- if( hosinflag == "O" ) continue ; //SON0930 start 원외전용약은 예외
-
- prcpclscdNodeValue = srcNodeList.item(i).prcpclscd.value;
- if ( prcpclscdNodeValue == "A2" ) {
- prcpclscdchkA2 = "A2"
- } else if ( prcpclscdNodeValue == "A4" ){
- prcpclscdchkA4 = "A4"
- } else if ( prcpclscdNodeValue == "A6" ){
- prcpclscdchkA6 = "A6"
- }
- }
- if ( !isNull(prcpclscdchkA2) || !isNull(prcpclscdchkA4) || !isNull(prcpclscdchkA6) ) { //값이 있으면
- var destNodeList = opener.model.instances(0).selectNodes( strDest + "/prcplist" ); //처방화면에 넘어온 것을 모두 찾아서
- for ( var i=1; i <= destNodeList.length; i++ ) { // 처방건별처리
- prcpclscd = opener.model.getValue ( strDest + "/prcplist[" + i + "]/prcpclscd");
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ; //sonjy 20081012 약/주사일때만 check
-
- prcpkindcd = opener.model.getValue ( strDest + "/prcplist[" + i + "]/prcpkindcd");
- if( erflag == "Y" && prcpkindcd != "60" ){ //응급 G3가 아니고 퇴원처방이 아닌경우 응급원내사유로 원복
- opener.model.setValue ( strDest + "/prcplist[" + i + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strDest + "/prcplist[" + i + "]/hosinprcpresncd", model.getValue ( "/root/init/hosinprcpresncd") );
- continue ;
- }
-
- drugmastspec = opener.model.getValue ( strDest + "/prcplist[" + i + "]/drugmastspec");
- hosinflag = getArrayData ( drugmastspec + "^", 0, 11, "^", "|" );
- if ( prcpclscd != "A6" && hosinflag != "O" ) { //주사제는 예외 , 기본 원외인것도 예외 SON0930
- if ( prcpclscdchkA2 == prcpclscd || prcpclscdchkA4 == prcpclscd || prcpclscdchkA6 == prcpclscd ) {
- var hosinprcpresncd = opener.model.getValue ( strDest + "/prcplist[" + i + "]/hosinprcpresncd");
- if ( hosinprcpresncd != "45" && hosinprcpresncd != "47" && hosinprcpresncd != "57" && hosinprcpresncd != "55" ) { //45, 47이 아니면, 55는 MSET
- opener.model.setValue ( strDest + "/prcplist[" + i + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strDest + "/prcplist[" + i + "]/hosinprcpresncd", "57" );
- }
- }
- }
- } // End of 처방건별처리
- }// End of 값이 있으면
- } // End of 처방화면에서 외래이고
- } else {
- prcpgenrflag = model.getValue ("/root/patflag/list/prcpgenrflag"); //SON1123 DSC 퇴원처방 처리 by sonjy 20081123
- if( (prcpgenrflag == "E" && model.getValue ( "/root/init/erresn" ) != "G3" ) || prcpgenrflag == "D" ){
- erflag = "Y";
- }
- if ( model.getValue ("/root/usge") == "prcp" && ( prcpgenrflag =="O" || erflag == "Y" ) ) { //처방화면에서 외래이고
- var srcNodeList;
- if( erflag == "Y") { //원내처방사유가 45 SON0919 start
- srcNodeList = model.instances(0).selectNodes ( strDest + "/prcplist[prcpkindcd='60' and hosinprcpresncd='45']" );
- } else {
- srcNodeList = model.instances(0).selectNodes ( strDest + "/prcplist[hosinprcpresncd='45']" );
- }//SON0919 end
-
- var prcpclscdNodeValue = "";
- for(var i = 0; i < srcNodeList.length; i++) {
- drugmastspec = srcNodeList.item(i).drugmastspec.value;
- hosinflag = getArrayData ( drugmastspec + "^", 0, 11, "^", "|" );
- if( hosinflag == "O" ) continue ; //SON0930 start 원외전용약은 예외
-
- prcpclscdNodeValue = srcNodeList.item(i).prcpclscd.value;
- if ( prcpclscdNodeValue == "A2" ) {
- prcpclscdchkA2 = "A2"
- } else if ( prcpclscdNodeValue == "A4" ){
- prcpclscdchkA4 = "A4"
- } else if ( prcpclscdNodeValue == "A6" ){
- prcpclscdchkA6 = "A6"
- }
- }
- if ( !isNull(prcpclscdchkA2) || !isNull(prcpclscdchkA4) || !isNull(prcpclscdchkA6) ) { //값이 있으면
- var destNodeList = opener.model.instances(0).selectNodes( strDest + "/prcplist" ); //처방화면에 넘어온 것을 모두 찾아서
- for ( var i=1; i <= destNodeList.length; i++ ) { // 처방건별처리
- prcpclscd = model.getValue ( strDest + "/prcplist[" + i + "]/prcpclscd");
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ; //sonjy 20081012 약/주사일때만 check
-
- prcpkindcd = model.getValue ( strDest + "/prcplist[" + i + "]/prcpkindcd"); //SON0919 start
- if( erflag == "Y" && prcpkindcd != "60" ) {
- model.setValue ( strDest + "/prcplist[" + i + "]/hosinhosoutflag", "I" );
- model.setValue ( strDest + "/prcplist[" + i + "]/hosinprcpresncd", model.getValue ( "/root/init/hosinprcpresncd") );
- continue ;
- } //SON0919 end
-
- drugmastspec = model.getValue ( strDest + "/prcplist[" + i + "]/drugmastspec");
- hosinflag = getArrayData ( drugmastspec + "^", 0, 11, "^", "|" );
- if ( prcpclscd != "A6" && hosinflag != "O" ) { //주사제는 예외 20080930원외전용약은 예외
- if ( prcpclscdchkA2 == prcpclscd || prcpclscdchkA4 == prcpclscd || prcpclscdchkA6 == prcpclscd ) {
- var hosinprcpresncd = model.getValue ( strDest + "/prcplist[" + i + "]/hosinprcpresncd");
- if ( hosinprcpresncd != "45" && hosinprcpresncd != "47" && hosinprcpresncd != "57" && hosinprcpresncd != "55" ) { //45, 47이 아니면, 55는 MSET
- model.setValue ( strDest + "/prcplist[" + i + "]/hosinhosoutflag", "I" );
- model.setValue ( strDest + "/prcplist[" + i + "]/hosinprcpresncd", "57" ); //같은 분류 코드가 있으면 57로 박아준다.
- }
- }
- }
- } // End of 처방건별처리
- } // End of 값이 있으면
- } // End of 처방화면에서 외래이고
- }
- }
- function fHosinPrcpResncdSed ( objFlag, strSrc, sendRow, strSelResn ) {
- //2007-12-13 윤영옥 선생님과 대화
- //종속이 최우선 => 원내처방사유 => 약, 주사
- var prcpgenrflag = "";
- var hosinprcpresncd = "";
- var prcpkindcd = "";
-
- //SON0919 응급퇴원처방 원내사유 관련 추가 by sonjy start
- var erflag = "";
- var erprcpkindcd = "";
- //SON0919 end
-
- //SON0930
- var hosinflag = "";
- var drugmastspec = "";
- var iFind = -1;
- var prcpclscd = "";
- var wardcd = "";
- if ( objFlag == "child" ) {
- prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- prcpclscd = opener.model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) ;
- prcpkindcd = opener.model.getValue ("/root/init/prcpkindcd");
- erprcpkindcd = opener.model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" );
- if( isNull(erprcpkindcd) || erprcpkindcd == "" ) erprcpkindcd = prcpkindcd ;
-
- if (isNull(strSelResn) || strSelResn == ""){
- if( prcpgenrflag == "E" && erprcpkindcd == "60" && opener.model.getValue ( "/root/init/erresn" ) != "G3") {
- hosinprcpresncd = "00"; // 응급실 G3가 아닌 환자의 퇴원 처방을 원외로 설정 되게 하기 위해 2013.03.27 엄영만
- } else {
- hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무의 원내사유 체크
- }
- } else {
- hosinprcpresncd = strSelResn;
- }
-
- if(prcpgenrflag == "O" || prcpgenrflag == "S"){
- wardcd = "";
- } else {
- wardcd = opener.model.getValue("/root/paminfo/list/wardcd");
- }
-
- // DSC(일일수술실 2360800000 원외로 되도록 2012.06.11 엄영만)
- if( erprcpkindcd == "60" &&
- ( (prcpgenrflag == "E" && opener.model.getValue ( "/root/init/erresn" ) != "G3")
- || (prcpgenrflag == "D" && wardcd == "2360800000") )) {
- erflag = "Y" ;
- }
- } else {
- prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
- prcpclscd = model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ) ;
- prcpkindcd = model.getValue ("/root/init/prcpkindcd");
- erprcpkindcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" );
- if( isNull(erprcpkindcd) || erprcpkindcd == "" ) erprcpkindcd = prcpkindcd ;
-
- if (isNull(strSelResn) || strSelResn == ""){
- if( prcpgenrflag == "E" && erprcpkindcd == "60" && model.getValue ( "/root/init/erresn" ) != "G3") {
- hosinprcpresncd = "00"; // 응급실 G3가 아닌 환자의 퇴원 처방을 원외로 설정 되게 하기 위해 2013.03.27 엄영만
- } else {
- hosinprcpresncd = model.getValue("/root/init/hosinprcpresncd"); //원무의 원내사유 체크
- }
- } else {
- hosinprcpresncd = strSelResn;
- }
-
- if(prcpgenrflag == "O" || prcpgenrflag == "S"){
- wardcd = "";
- } else {
- wardcd = model.getValue("/root/paminfo/list/wardcd");
- }
-
- // DSC(일일수술실 2360800000 원외로 되도록 2012.06.11 엄영만) 퇴원처방 처리
- if( erprcpkindcd == "60" &&
- ( (prcpgenrflag == "E" && model.getValue ( "/root/init/erresn" ) != "G3")
- || (prcpgenrflag == "D" && wardcd == "2360800000") )) {
- erflag = "Y" ;//SON0919
- }
- }
-
- /* 종속 원내처방사유 55: 검사, 수술, 처치에 사용하는 의약품
- 마약 45: 조제실제제,임상시험의약품,마약,방사성의약품,투석액,희귀의약품
- 항암 47: 6세이하의 소아에게 투약하는 항암제(경구) */
- /****************************** 원내처방 사유코드 처리 *******************************/
- if ( prcpgenrflag == "O" || erflag == "Y" ) { //SON0919 외래이거나 g3아닌 응급퇴원처방, DSC(일일수술실 2360800000) 퇴원처방 인 경우
- if( objFlag == "child" ) {
- drugmastspec = opener.model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^";
- hosinflag = getArrayData ( drugmastspec , 0, 11 , "^", "|" ); //SON0930 start 원외전용약은 예외
-
- //********************* 투석원내처방사유처리 **************************//
- var prcpcd = opener.model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" );
- if( hosinflag != "O" ){
- iFind = opener.model.getValue ( "/root/initsrch/prcpetccnts/dialhospinoutcd" ).search( prcpcd );
- }
-
- if ( iFind >= 0 && erflag != "Y") { //SON0919
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "19" );
- var message = "원내지정이 가능한 처방입니다. 전체 약제를 원내로 하시려면 [예], 해당약제만 원내처방하시려면 [아니오]를 선택해주십시오.";
- if (messageBox ( message, "Q" ) == "6" ) {
- opener.model.setValue( "/root/init/hosinprcpresncd", "19" );
- opener.cmb_hosinprcpresn.refresh();
- opener.cmb_hosinprcpresn.dispatch ( "xforms-value-changed" );
- }
- model.setValue ( "/root/initsrch/prcpetccnts/dialhospinoutcd", "" );
- //********************* 투석원내처방사유처리끝 ************************//
- } else {
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) return ; //약/주사가 아니면 return 20081012
-
- drugmastspec = opener.model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^";
- var drugmastHosinprcpresncd = getArrayData ( drugmastspec, 0, 12, "^", "|" ); //약품마스터에 있는 원내처방 사유코드 처리
-
- if( opener.model.getValue ( strSrc + "[" + sendRow + "]/inclprcpno") != "0" ){ //종속처방 처리 추가 by sonjy 2008-09-16
- drugmastHosinprcpresncd = "55";
- drugmastHosinhosoutflag = "I" ;
- }
-
- if ( drugmastHosinprcpresncd != "00" ) { //SON0826 주사제와 선처치, mset은 환자원내사유에 우선한다.
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", drugmastHosinprcpresncd );
- } else {
- if ( hosinprcpresncd != "00" ) { // 환자원내처방사유
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", hosinprcpresncd );
- } else {
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "O" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "00" );
- }
- }
- }
- } else {
- drugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^";
- hosinflag = getArrayData ( drugmastspec , 0, 11 , "^", "|" ); //SON0930 start 원외전용약은 예외
-
- //********************* 투석원내처방사유처리 **************************//
- var prcpcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" );
- if( hosinflag != "O" ){
- iFind = model.getValue ( "/root/initsrch/prcpetccnts/dialhospinoutcd" ).search( prcpcd );
- }
- if ( iFind >= 0 && erflag != "Y") { //SON0919
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "19" );
- var message = "원내지정이 가능한 처방입니다. 전체 약제를 원내로 하시려면 [예], 해당약제만 원내처방하시려면 [아니오]를 선택해주십시오.";
- if (messageBox ( message, "Q" ) == "6" ) {
- model.setValue( "/root/init/hosinprcpresncd", "19" );
- cmb_hosinprcpresn.refresh();
- cmb_hosinprcpresn.dispatch ( "xforms-value-changed" );
- }
- model.setValue ( "/root/initsrch/prcpetccnts/dialhospinoutcd", "" );
- //********************* 투석원내처방사유처리끝 ************************//
- } else {
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) return ; //약/주사가 아니면 return 20081012
-
- drugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^"; //약품마스터에 있는 원내외 처리
- var drugmastHosinprcpresncd = getArrayData ( drugmastspec, 0, 12, "^", "|" ); //약품마스터에 있는 원내처방 사유코드 처리
-
- if( model.getValue ( strSrc + "[" + sendRow + "]/inclprcpno") != "0" ){ //종속처방 처리 추가 by sonjy 2008-09-16
- drugmastHosinprcpresncd = "55";
- drugmastHosinhosoutflag = "I" ;
- }
-
- if ( drugmastHosinprcpresncd != "00" ) { //SON0826 주사제와 선처치, mset은 환자원내사유에 우선한다.
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", drugmastHosinprcpresncd );
- } else {
- if ( hosinprcpresncd != "00") { // 환자원내처방사유 적용
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", hosinprcpresncd );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "O" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "00" );
- }
- }
- }
- }
- } else if ( prcpgenrflag == "E" ) {
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) return;
-
- if( objFlag == "child") {
- if ( erprcpkindcd == "60" && hosinprcpresncd == "00") { // 퇴원약 환자원내처방사유 적용
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "O" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "00" );
- } else {
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", hosinprcpresncd );
- }
- } else {
- if ( erprcpkindcd == "60" && hosinprcpresncd == "00") { // 퇴원약 환자원내처방사유 적용
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "O" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "00" );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", hosinprcpresncd );
- }
- }
- } else { //입원, DSC
- if( objFlag == "child") {
- // 3120400000 화학요법실, 3120900000 항암주사실 퇴원약 처방시 원내 예외 사유 설정. "주사제와 같이 투여 하는 경우" 2012.06.11 엄영만
- if ( prcpgenrflag == "D" && erprcpkindcd == "60" && (wardcd == "3120900000" || wardcd == "3120400000")) {
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "52" );
- } else {
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "00" );
- }
- } else {
- // 3120400000 화학요법실, 3120900000 항암주사실 퇴원약 처방시 원내 예외 사유 설정. "주사제와 같이 투여 하는 경우" 2012.06.11 엄영만
- if (prcpgenrflag == "D" && erprcpkindcd == "60" && (wardcd == "3120900000" || wardcd == "3120400000")) {
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "52" );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );
- model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "00" );
- }
- }
- }
- }
- /**
- * @desc : 환자에 해당되는 원내처방사유인지 체크
- * @
- * @param :
- *
- * @return : void
- * @author : 마정민
- * @---------------------------------------------------
- */
- function fPamHosinPrcpResnCdChk ( hosinprcpresncd, objFlag ) {
- var cdnm = "";
- if ( objFlag == "child" ) {
- cdnm = opener.model.getValue ( "/root/init/hosinprcpresncd/P0034[cdid='" + hosinprcpresncd + "']/cdnm" );
- } else {
- cdnm = model.getValue ( "/root/init/hosinprcpresncd/P0034[cdid='" + hosinprcpresncd + "']/cdnm" );
- }
- if (!isNull(cdnm)){
- return true;
- } else {
- //return false;
- if( hosinprcpresncd == "52" || hosinprcpresncd == "55" ) return false ; //SON0826 선처치/주사제는 환자사유에 우선한다.
- else return true ;
- }
- }
- function fPrcpExecIssDeptCdSet ( strSrc, sendRow ) {
-
- //발행처
- if ( model.getValue ( "/root/addprcp" ) == "Y" ){
- var issdept = model.getValue ( "/root/init/issdept" );
- if ( isNull(issdept)) {
- issdept = getUserInfo( "dutplcecd" );
- }
- model.setValue ( strSrc + "[" + sendRow + "]/issdeptcd", issdept );
- } else {
- var issdept = model.getValue ("/root/issdept");
- if ( isNull(issdept)) {
- issdept = getUserInfo( "dutplcecd" );
- }
- model.setValue ( strSrc + "[" + sendRow + "]/issdeptcd", issdept );
- }
-
- // 응급실 발행부서 관련 셋팅. 응급실 환자의 경우 센서스에 등록되어 있는 부서코드로 발행부서를 셋팅해준다.2012.04.24 엄영만
- var prcpgenrflag = model.getValue( strSrc + "[" + sendRow + "]/prcpgenrflag");
- var erissdeptcd = model.getValue("/root/paminfo/list/erissdeptcd");
- if (prcpgenrflag == "E" && issdept == "2280200000" && !isNull(erissdeptcd) && erissdeptcd != "-") {
- model.setValue ( strSrc + "[" + sendRow + "]/issdeptcd", erissdeptcd );
- }
-
- //과내검사 수가코드인 경우는 orddeptcd를 넣어준다. 구현중...
- /*iFind = -1;
- iFind = model.getValue ( "/root/initsrch/prcpetccnts/precureprcpcd" ).search( chkprcpcd + "D" );
- if ( iFind >= 0) {
- model.setValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd", orddeptcd );
- }*/
- }
- /**
- * @desc : 원내처방사유변경
- * @
- * @param :
- * @return :
- * @author : 마정민
- * @---------------------------------------------------
- * @ objFlag 추가 by sonjy
- */
- function fChngHosinPrcpResn(objFlag , strSelResn) {
- var hosinprcpresncd = "";
- var prcpclscd = "";
-
- //SON0919 응급 퇴원약 원내사유 처리 by sonjy start
- //SON1123 DSC 퇴원처방 처리 by sonjy 20081123
- var prcpkindcd = "";
- var erflag = "";
- var erresn = ""; // G3
- var prcpgenrflag = "";
-
- //SON0930 약제원내외구분 우선 적용
- var hosinflag = "";
- var drugmastspec = "";
-
- if( objFlag == "child" ) {
- hosinprcpresncd = opener.model.getValue ( "/root/init/hosinprcpresncd" );
- erresn = opener.model.getValue ( "/root/init/erresn" );
- prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- } else {
- hosinprcpresncd = model.getValue ( "/root/init/hosinprcpresncd" );
- erresn = model.getValue ( "/root/init/erresn" );
- prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
- }
-
- if( prcpgenrflag == "I" ){ return; }
-
- if ( (prcpgenrflag == "E" && erresn != "G3") || prcpgenrflag == "D" ) {
- erflag = "Y" ;//SON0919
- }
-
- if ( hosinprcpresncd != "00") { // 환자별 처방 사유가 존재 할 경우
- if( objFlag == "child" ) {
- for ( var i = 1; i < opener.grd_prcplist.rows; i++ ) { // 처방 건별 처리
- prcpclscd = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpclscd" );
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ;
- prcpkindcd = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpkindcd" );
- drugmastspec = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/drugmastspec" ) + "^";
- hosinflag = getArrayData ( drugmastspec , 0, 11, "^", "|" );
-
- if( erflag == "Y" && prcpkindcd == "60" ) { // 응급 DSC 퇴원약 원내사유 처리
- fHosinPrcpResncdSed ( objFlag , "/root/main/prcp/prcplist", i, strSelResn );
- } else if ( prcpgenrflag == "E" || prcpgenrflag == "D" ){ // 응급, DSC
- if( prcpgenrflag == "D" ) {
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd","00");
- } else {
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd",hosinprcpresncd);
- }
- } else { // 그외 외래
- prcphosinprcpresncd = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd" );
- if (hosinflag != "O" && fPamHosinPrcpResnCdChk (prcphosinprcpresncd, objFlag)) { //환자원내처방사유만 적용
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd",hosinprcpresncd);
- }
- }
- } // End of 처방 건별 처리
- } else {
- for ( var i = 1; i < grd_prcplist.rows; i++ ) { // 처방 건별 처리
- prcpclscd = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpclscd" );
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ;
-
- prcpkindcd = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpkindcd" );
- drugmastspec = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/drugmastspec" ) + "^";
- hosinflag = getArrayData ( drugmastspec , 0, 11, "^", "|" );
-
- if( erflag == "Y" && prcpkindcd == "60" ) { // 응급 DSC 퇴원약 원내사유 처리
- fHosinPrcpResncdSed ( objFlag, "/root/main/prcp/prcplist", i, strSelResn ); //SON0826 원복시 기존 약제사유로 원복.
- } else if ( prcpgenrflag == "E" || prcpgenrflag == "D" ){ // 응급, DSC
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- if( prcpgenrflag == "D" ) {
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd","00");
- } else {
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd",hosinprcpresncd);
- }
- } else { // 그외 외래
- prcphosinprcpresncd = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd" );
- if (hosinflag != "O" && fPamHosinPrcpResnCdChk (prcphosinprcpresncd, objFlag)) { //환자원내처방사유만 적용
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd",hosinprcpresncd);
- }
- }
- } // End of 처방 건별 처리
- }
- if( erflag == "Y" ) fHosinPrcpResnChk ( objFlag, "/root/main/prcp" ); //SON0919 원복시 기존 약제사유로 원복 후 동시투여 약제처리....
-
- } else { // 환자별 처방 사유가 없을 경우
- if( objFlag == "child" ) {
- for ( var i = 1; i < opener.grd_prcplist.rows; i++ ) {
- prcpclscd = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpclscd" );
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ;
-
- //SON0919 응급 퇴원약 원내사유 처리 by sonjy start
- prcpkindcd = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpkindcd" );
- if( erflag == "Y" && prcpkindcd == "60" ) {
- fHosinPrcpResncdSed ( objFlag , "/root/main/prcp/prcplist", i, strSelResn );
- } else if ( prcpgenrflag == "E" || prcpgenrflag == "D" ){ //SON1123 DSC퇴원처방 처리
- if( prcpgenrflag == "D" ) {
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd","00");
- } else {
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd",hosinprcpresncd);
- }
- } else { // 그외 외래
- if(opener.model.getValue("/root/main/prcp/prcplist[" + i + "]/prcphistcd" ) == "T" && opener.model.getValue("/root/main/prcp/prcplist[" + i + "]/drprcpetc9" ) != "-") { // 사전심사 임시저장인경우 제외 2015.09.08 엄영만
- continue;
- }
-
- prcphosinprcpresncd = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd" );
- if (fPamHosinPrcpResnCdChk (prcphosinprcpresncd , objFlag)) { //환자원내처방사유만 적용
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","O");
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd","00");
- fHosinPrcpResncdSed (objFlag , "/root/main/prcp/prcplist", i ); //SON0826 원복시 기존 약제사유로 원복.
- }
- }
- } // End of 처방 건별 처리
- } else {
- for ( var i = 1; i < grd_prcplist.rows; i++ ) {
- prcpclscd = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpclscd" );
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ;
-
- //SON0919 응급 퇴원약 원내사유 처리 by sonjy start
- prcpkindcd = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpkindcd" );
- if( erflag == "Y" && prcpkindcd == "60" ) {
- fHosinPrcpResncdSed ( objFlag, "/root/main/prcp/prcplist", i, strSelResn );
- } else if ( prcpgenrflag == "E" || prcpgenrflag == "D" ){ //SON1123 DSC퇴원처방 처리
- if( prcpgenrflag == "D" ) {
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd","00");
- } else {
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","I");
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd",hosinprcpresncd);
- }
- } else { // 그외 외래
- if(model.getValue("/root/main/prcp/prcplist[" + i + "]/prcphistcd" ) == "T" && model.getValue("/root/main/prcp/prcplist[" + i + "]/drprcpetc9" ) != "-") { // 사전심사 임시저장인경우 제외 2015.09.08 엄영만
- continue;
- }
-
- prcphosinprcpresncd = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd" );
- if (fPamHosinPrcpResnCdChk (prcphosinprcpresncd, objFlag)) { //환자원내처방사유만 적용
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinhosoutflag","O");
- model.setValue("/root/main/prcp/prcplist[" + i + "]/hosinprcpresncd","00");
- fHosinPrcpResncdSed ( objFlag, "/root/main/prcp/prcplist", i ); //SON0826 원복시 기존 약제사유로 원복.
- }
- }
- }// End of 처방 건별 처리
- }
-
- fHosinPrcpResnChk ( objFlag, "/root/main/prcp" ); //SON0826 원복시 기존 약제사유로 원복 후 동시투여 약제처리....
- }
-
- if( objFlag == "child"){
- opener.model.setValue ( "/root/paminfo/list/hosoutexptresncd" , hosinprcpresncd );
- } else {
- model.setValue ( "/root/paminfo/list/hosoutexptresncd" , hosinprcpresncd );
- }
- }
-
- function fBundlePrcpDD(status){
- var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
- if(prcpgenrflag != "O"){
- messageBox("지정일은 외래가 아니면 사용", "E001");
- return;
- }
- var prcpdd = opener.model.getValue("/root/paminfo/list/orddd");
- var reqparam = getCurrentDate() + "▩";
-
- setParameter("paramcalflag", "multi");
- setParameter("defaultday" , prcpdd);
- setParameter("reqparam" , reqparam);
- fPrcpModal("SPMMO10600", 20, 50);
-
- var actordddArray = getParameter("rtn").split("▩");
- var contprcpspec = "status|actorddd|execprcpstatcd|prcpdd|execprcpno";
- for(var i = 0; i < actordddArray.length; i++){
- var actorddd = actordddArray[i];
- contprcpspec = contprcpspec + "^" + status + "|" + actorddd + "|" + "" + "|" + prcpdd + "|" + "";
- }
-
- var rtnval = "";
- var contprcpspecArray = contprcpspec.split("^");
- for(var i = 1; i < contprcpspecArray.length; i++){
- var tmp = contprcpspecArray[i].split("|");
- rtnval = rtnval + tmp[1] + ",";
- }
- rtnval = rtnval.substring(0, rtnval.length-1);
-
- if(actordddArray.length == 1 && actorddd == prcpdd){
- model.setValue("/root/main/prcp/prcplist/contprcpspec", "-");
- }else{
- model.setValue("/root/main/prcp/prcplist/contprcpspec", contprcpspec);
- }
- model.setValue("/root/main/prcp/prcplist/prcpdayno", actordddArray.length);
- model.setValue("/root/init/contprcpspec", rtnval);
- model.refresh();
- }
- /**
- * @desc : NodeList sorting
- * : node 구조를 변경하며 정렬을 수행
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function nodeListSort( nodeset, trgRef, mode ){
- var nodesetCnt = model.getXPathValue("count(" + nodeset + ")");
- if(nodesetCnt == 0) return;
-
- var tmpVal1, tmpVal2;
- var tmpIndx;
-
- for(var i = 1; i <= nodesetCnt; i++){
- for(var j = i + 1 ; j <= nodesetCnt; j++){
- tmpVal1 = model.getValue(nodeset + "[" + i + "]/" + trgRef);
- tmpVal2 = model.getValue(nodeset + "[" + j + "]/" + trgRef);
- if(isNumber(tmpVal1)==true){tmpVal1 = Number(tmpVal1);}
- if(isNumber(tmpVal2)==true){tmpVal2 = Number(tmpVal2);}
- if(mode == "desc"){
- if(tmpVal1 < tmpVal2){
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + j + "]", "*[" + i + "]");
- model.removenode(nodeset + "[" + (j + 1) + "]");
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + (i + 1) + "]", "*[" + j + "]");
- model.removenode(nodeset + "[" + (i + 1) + "]");
- }
- }else if(mode == "asc"){
- if(tmpVal1 > tmpVal2){
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + j + "]", "*[" + i + "]");
- model.removenode(nodeset + "[" + (j + 1) + "]");
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + (i + 1) + "]", "*[" + j + "]");
- model.removenode(nodeset + "[" + (i + 1) + "]");
- }
- }
- }
- }
- }
- /**
- * @desc : 협진분류콤보조회 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmofReqGetCnstTypeComboList(ref, rsltref, orddeptcd){
- var mmo_rsltref = "/root/hidden/mmo/cnsttypecombo";
- model.removeNodeset(mmo_rsltref);
- model.makeNode(mmo_rsltref);
-
- model.removeNode(ref);
- model.makeValue(ref + "/orddeptcd", orddeptcd);
- if(submit("TRMMO03602", "false", ref, mmo_rsltref)==true){
- model.copyNode(rsltref, mmo_rsltref);
- model.removeNodeset(mmo_rsltref);
- }
- model.refresh();
- }
- /*
- function mmbfPrcpGrdSort( nodeset, mode ){
- var nodesetCnt = model.getXPathValue("count(" + nodeset + ")");
- if(nodesetCnt == 0) return;
-
- var tmpVal1, tmpVal2;
- var tmpIndx;
-
- for(var i = 1; i <= nodesetCnt; i++){
- for(var j = i + 1 ; j <= nodesetCnt; j++){
- tmpVal1 = model.getValue(nodeset + "[" + i + "]/prcpclscd") || model.getValue(nodeset + "[" + i + "]/prcpcd");
- tmpVal2 = model.getValue(nodeset + "[" + j + "]/prcpclscd") || model.getValue(nodeset + "[" + j + "]/prcpcd");
- if(mode == "desc"){
- if(tmpVal1 < tmpVal2){
- if(model.getValue(nodeset + "[" + i + "]/status") == 'I') {
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + j + "]", "*[" + i + "]");
- model.removenode(nodeset + "[" + (j + 1) + "]");
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + (i + 1) + "]", "*[" + j + "]");
- model.removenode(nodeset + "[" + (i + 1) + "]");
- }
- }
- } else if(mode == "asc"){
- if(tmpVal1 > tmpVal2){
- if(model.getValue(nodeset + "[" + i + "]/status") == 'I') {
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + j + "]", "*[" + i + "]");
- model.removenode(nodeset + "[" + (j + 1) + "]");
- model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + (i + 1) + "]", "*[" + j + "]");
- model.removenode(nodeset + "[" + (i + 1) + "]");
-
- }
- }
- }
- }
- }
- }*/
- function fAltPrcpCd( currow, flag, strSrc, prcpInptFlag ) {
- var prcpcd = "";
- var prcpnm = "";
- var altcdinfo = "";
- if ( flag == "child" ) {
- if ( prcpInptFlag == "01" ) {
- prcpcd = ivw_prcp3.model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- prcpnm = ivw_prcp3.model.getValue ( strSrc + "[" + currow + "]/prcpnm" );
- altcdinfo = ivw_prcp3.model.getValue ( strSrc + "[" + currow + "]/tempcol16" );
- } else {
- prcpcd = ivw_prcp.model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- prcpnm = ivw_prcp.model.getValue ( strSrc + "[" + currow + "]/prcpnm" );
- altcdinfo = ivw_prcp.model.getValue ( strSrc + "[" + currow + "]/tempcol16" );
- }
-
- } else {
- prcpcd = model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- prcpnm = model.getValue ( strSrc + "[" + currow + "]/prcpnm" );
- altcdinfo = model.getValue ( strSrc + "[" + currow + "]/tempcol16" );
- }
- setParameter ( "SPMMO15400_cond1", prcpcd ); //원래처방코드
- setParameter ( "SPMMO15400_cond2", prcpnm ); //처방명
- setParameter ( "SPMMO15400_cond3", altcdinfo ); //대체처방코드
- modal ( "SPMMO15400" );
- clearParameter ( "SPMMO15400_cond1" ); //원래처방코드
- clearParameter ( "SPMMO15400_cond2" ); //처방명
- clearParameter ( "SPMMO15400_cond3" ); //대체처방코드
- return 0;
- }
- /**
- * @desc : 항생제이면서 제한항생자가 아니면 항생제처리
- *
- * @
- * @param :
- * @return :
- * @author : 마정민
- * @---------------------------------------------------
- */
- function fAntiMicChk( currow, flag, strSrc, prcpInptFlag ) {
- //20080725 마정민추가. 항생제이면서 제한항생자가 아니면 항생제처리
- var prcpcd = "";
- var drugmastspec = "";
- var pid = "";
- var prcpdd = "";
- //CP는 CDSS항생제 체크 skip임. (2008.09.29 JJE)
- if( model.getValue("/root/cp") == "Y" ){
- return 1;
- }
- if ( flag == "child" ) {
- if ( prcpInptFlag == "01" ) {
- prcpcd = ivw_prcp3.model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- } else {
- prcpcd = ivw_prcp.model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- }
- } else {
- prcpcd = model.getValue ( strSrc + "[" + currow + "]/prcpcd" );
- }
- prcpdd = model.getValue ( "/root/init/prcpdd" );
- pid = model.getvalue ( "/root/paminfo/list/pid" );
- model.setValue ( "/root/send/cond1", pid );
- model.setValue ( "/root/send/cond2", prcpcd );
- model.setValue ( "/root/send/cond3", prcpdd );
- if (submit ( "TRMMO01609" )){
- /*var chkAntibio = "20"; // 항생제 antibiotics(20), 제한항생제 restantimic(10) 따로 구분 후 저장 - by Moonsh 20081013
- var getAntibio = model.getValue ( "/root/result/antibiotics/antibioticsinfo" );
- var srchAntibio = getAntibio.split("|");
-
- if (srchAntibio[1] == "20"){
- chkAntibio = "20";
- } else {
- chkAntibio = "10";
- setParameter ( "SPMMMD00700_chkday", srchAntibio[9] ); //체크일 추가 요청 - by Moonsh 20081021
- }*/
- if (model.getValue ( "/root/result/antibiotics/popyn" )=="Y") {
- // 항생제 검색어 초기화
- var prcplistcnt = grd_prcplist.rows - 1;
- var prcpcd = model.getValue ( "/root/main/prcp/prcplist[" + prcplistcnt + "]/prcpcd" );
- var prcpnm = model.getValue ( "/root/main/prcp/prcplist[" + prcplistcnt + "]/prcpnm" );
- if (prcpcd != "" && prcpnm == "") {
- model.setValue ( "/root/main/prcp/prcplist[" + prcplistcnt + "]/prcpcd", "" );
- }
-
- fPrcpModal("SPMMD01600", 20, 50);
- return 0;
- } else {
- if ( flag == "child" ) {
- if ( prcpInptFlag == "01" ) {
- ivw_prcp3.model.setValue ( strSrc + "[" + currow + "]/tempcol8", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- /*if ( chkAntibio == "20") {
- ivw_prcp3.model.setValue ( strSrc + "[" + currow + "]/tempcol8", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- } else {
- ivw_prcp3.model.setValue ( strSrc + "[" + currow + "]/tempcol7", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- }*/
- } else {
- ivw_prcp.model.setValue ( strSrc + "[" + currow + "]/tempcol8", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- /*if ( chkAntibio == "20") {
- ivw_prcp.model.setValue ( strSrc + "[" + currow + "]/tempcol8", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- } else {
- ivw_prcp.model.setValue ( strSrc + "[" + currow + "]/tempcol7", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- }*/
- }
- } else {
- model.setValue ( strSrc + "[" + currow + "]/tempcol8", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- /*if ( chkAntibio == "20") {
- model.setValue ( strSrc + "[" + currow + "]/tempcol8", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- } else{
- model.setValue ( strSrc + "[" + currow + "]/tempcol7", model.getValue ( "/root/result/antibiotics/antibioticsinfo" ));
- }*/
- }
- return 1;
- }
- }
- }
- /**
- * @desc : EMR진료 기록지 조정
- * modal로 화면에 숨겨진 팝업을 띄운다. 여러화면 동시에 open되어, submit간의 충돌을 방지한다.
- * @
- * @param : scrnid : 화면ID
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmbfOpenEmrWnd(scrnid){
- setParameter("SPMMB08400_scrnid", scrnid);
- modal("SPMMB08400", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
- return true;
- }
- /**
- * @desc : 하드코드 조회
- * @
- * @param : ref - reference path
- * rsltref - result reference path
- * hardcd - 하드코드
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmbfGetHardCodeInfo(ref, rsltref, hardcd){
- //KNUH_20110208, 진료속도개선 위해 로그인 시 미리 조회 해 놓은 데이터 복사, 주희경
- fGetHardCDList("N", hardcd, 0, rsltref);
- /*
- var mmb_rsltref = "/root/hidden/mmb/hardcd";
- model.removeNode(mmb_rsltref);
- model.makeNode(mmb_rsltref);
- model.removeNode(ref);
- model.makeValue(ref + "/hardcd", hardcd);
- if(submit("TRMMB04103", "false", ref, mmb_rsltref)==true){
- model.copyNode(rsltref, mmb_rsltref);
- model.removeNode(mmb_rsltref);
- }
- */
- model.refresh();
- }
- /**
- * @desc : 하드코드 조회 (하드코드, 하드코드명)
- * @
- * @param : ref - reference path
- * rsltref - result reference path
- * hardcd - 하드코드
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmbfGetHardCodeInfoNm(ref, rsltref, hardcd){
- var mmb_rsltref = "/root/hidden/mmb/hardcd";
- model.removeNode(mmb_rsltref);
- model.makeNode(mmb_rsltref);
- model.removeNode(ref);
- model.makeValue(ref + "/hardcd", hardcd);
- if(submit("TRMMB04105", "false", ref, mmb_rsltref)==true){
- model.copyNode(rsltref, mmb_rsltref);
- model.removeNode(mmb_rsltref);
- }
- model.refresh();
- }
- /**
- * @desc : 선택진료의 변경 시 호출 .
- 선택진료환자이나 선택한 의사가 특진의가 아닐경우 방사선혈관조영/마취, 수술 처방에 한해 해당 처방의 선택진료여부 = 'N'으로 SETTING
- * @
- * @param : objFlag - child or null
- DrID - 진료의id
- specDrYN- 특진의여부(A-특진/B..)
- * @return :
- * @author : 손주연
- * @---------------------------------------------------
- */
- function fChngSpecDr(objFlag, DrID, specDrYN ){
- //선택진료관련 추가 by sonjy 2008-08-27 start
- if( objFlag == "child"){
-
- if( opener.model.getValue("/root/main/prcp/prcplist/choiordflag") == "Y" ){
- var tempcol2 = opener.model.getValue("/root/main/prcp/prcplist/tempcol2");
- if( !isNull(tempcol2) ){
- var temparray = tempcol2.split("|");
- //선택진료환자이나 선택한 의사가 특진의가 아닐경우 방사선혈관조영/마취, 수술 처방에 한해 해당 처방의 선택진료여부 = 'N'으로 SETTING
- if( specDrYN!= "A" ){
- /* 2010. 12. 29 선택진료의사면 무조건 선택진료 아니면
- if( (temparray[0] == "15" && temparray[1] == "02") || // 수술
- (temparray[0] == "13") || //마취
- (temparray[0] == "20") //방사선혈관조영술
- ){
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "N");
- }
- */
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "N");
- } else {
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "Y");
- }
- }
- }
- //선택진료환자이나 비특진의 선택으로 인해 선택진료여부가 'N'으로 변경되었으나 다시 선택진료의를 선택한 경우
- else if( opener.model.getValue("/root/paminfo/list/specordyn") == "Y" && opener.model.getValue("/root/main/prcp/prcplist/choiordflag") == "N" ){
- if( specDrYN == "A" ) {
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "Y");
- }
- } else { // 의사가 찍은대로 선택진료의를 변경한다.
- if( specDrYN == "A" ) {
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "Y");
- } else {
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "N");
- }
- }
- }
- else {
-
- if(model.getValue("/root/main/prcp/prcplist/choiordflag") == "Y" ){
- var tempcol2 = model.getValue("/root/main/prcp/prcplist/tempcol2");
- if( !isNull(tempcol2) ){
- var temparray = tempcol2.split("|");
- //선택진료환자이나 선택한 의사가 특진의가 아닐경우 방사선혈관조영/마취, 수술 처방에 한해 해당 처방의 선택진료여부 = 'N'으로 SETTING
- if( specDrYN != "A" ){
- /*
- if( (temparray[0] == "15" && temparray[1] == "02") || // 수술
- (temparray[0] == "13") || //마취
- (temparray[0] == "20") //방사선혈관조영술
- ){
- model.setValue("/root/main/prcp/prcplist/choiordflag", "N");
- }
- */
- model.setValue("/root/main/prcp/prcplist/choiordflag", "N");
- }else {
- model.setValue("/root/main/prcp/prcplist/choiordflag", "Y");
- }
- }
- }
- //선택진료환자이나 비특진의 선택으로 인해 선택진료여부가 'N'으로 변경되었으나 다시 선택진료의를 선택한 경우
- else if( model.getValue("/root/paminfo/list/specordyn") == "Y" && model.getValue("/root/main/prcp/prcplist/choiordflag") == "N" ){
- if( specDrYN == "A" ) {
- model.setValue("/root/main/prcp/prcplist/choiordflag", "Y");
- }
- } else { // 의사가 찍은대로 선택진료의를 변경한다.
- if( specDrYN == "A" ) {
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "Y");
- } else {
- opener.model.setValue("/root/main/prcp/prcplist/choiordflag", "N");
- }
- }
- }
- //선택진료관련 추가 by sonjy 2008-08-27 end
- }
- /**
- * @desc : 수술 예방적 항생제 투여 관련 체크
- * @
- * @param :
- * @return :
- * @author : 손주연 2008-09-26
- * @---------------------------------------------------
- */
- function fChkOpDrug( objFlag, strSrc , sendRow ){
-
- //A, 예정수술명 => P, 수술코드 처방 => S, 대상이 아닐 경우 => N
- var resnyn = getPatientInfoDetail("resnyn");
- if( resnyn == "N" || isNull( resnyn ) ) return true ;
-
- var ndOpDrugList = null;
- var ret = null ;
- var drugmastspec = model.getValue( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^";
- var prcpcd = model.getValue( strSrc + "[" + sendRow + "]/prcpcd" ) ;
- var prcpnm = model.getValue( strSrc + "[" + sendRow + "]/prcpnm" ) ;
- var msg = "[" + prcpcd + ":" + prcpnm + "]";
- if( model.getValue( strSrc + "[" + sendRow + "]/prcpkindcd") == "60" && ( resnyn == "S" || resnyn == "A") ) {
- if ( getArrayData ( drugmastspec, 0, 23, "^", "|" ) == "P" && getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "N") {
- ret = messageBox( "수술시 예방적 항생제 투여 시는 퇴원약을 권장하고 있지 않습니다. " + msg + "처방을 ", "Q001") ;
- }
- } else {
- //3세대 수술 예방적 항생제 여부 check
- if( objFlag == "child") {
- ndOpDrugList = opener.model.instances(0).selectNodes ( "/root/initsrch/opdrugcdlist[opdrugcd='" + opener.model.getValue ( strSrc + "[" + sendRow + "]/prcpcd") + "']" );
- } else {
- ndOpDrugList = model.instances(0).selectNodes ( "/root/initsrch/opdrugcdlist[opdrugcd='" + model.getValue ( strSrc + "[" + sendRow + "]/prcpcd") + "']" );
- }
-
- if( ndOpDrugList != null && ndOpDrugList.length > 0 && ( resnyn == "P" || resnyn == "A")) {
- ret = messageBox( "수술시 예방적 항생제로 3세대 cephalosporin 또는 aminoglycoside를 권장하고 있지 않습니다." + msg + " 처방을 변경 ", "S004") ;
- } else if ( getArrayData ( drugmastspec, 0, 23, "^", "|" ) == "P" && getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "N" && ( resnyn == "S" || resnyn == "A")) {
- ret = messageBox( "수술시 예방적 항생제 투여 시는 장기투여를 권장하고 있지 않습니다." + msg + " 처방을 ", "Q001") ;
- }
- }
-
- if( ret == 6 ){ //yes=> 항생제 clear
- if( objFlag == "child") {
- opener.model.removeNode ( strSrc + "[" + sendRow + "]" );
- //opener.model.setValue ( strSrc + "[" + sendRow + "]/tempcol6", "D" );
- //opener.javascript.fDeleteRow ( "noselect" );
- } else {
- model.removeNode ( strSrc + "[" + sendRow + "]" );
- //model.setValue ( strSrc + "[" + sendRow + "]/tempcol6", "D" );
- //fDeleteRow ( "noselect" );
- }
- return false ;
-
- } else if( ret == 7 ) { //no => 항생제 사유 입력
- if( objFlag == "child") {
- opener.javascript.setParameter ("SPMMO016000_resnflag" , "O" );
- } else {
- setParameter ("SPMMO016000_resnflag" , "O" );
- }
-
- var xpt = window.screenleft + eval(500);
- var ypt = window.screenTop + eval(400);
-
- var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- modal ("SPMMO16000", mon, xpt, ypt, "SPMMO16000", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false); //사유입력창
- //fPrcpModal ( "SPMMO16000", 400, 100 ); //사유입력창
- var resncnts = "";
- if( objFlag == "child") {
- resncnts = opener.javascript.getParameter ("SPMMO016000_resncnts" );
- opener.model.setValue ( strSrc + "[" + sendRow + "]/tempcol19" ,resncnts );
- } else {
- resncnts = getParameter ("SPMMO016000_resncnts" );
- model.setValue ( strSrc + "[" + sendRow + "]/tempcol19" ,resncnts );
- }
- }
- return true ;
- }
- /**
- * @desc : 화면타이틀을 설정한다
- * @ : 형식 : 기관명 + 화면명 + 로그인과 + 로그인한 사용자 + 로그인일시
- * @param :
- * @return :
- * @author : 김영학 2008-11-19
- * @---------------------------------------------------
- */
- function initWndTitle() {
- if (getGlobalVariable("userinfos") != "") {
- var scrnTitle = getUserInfo("systeminstnm") + " " ;
- scrnTitle += document.title + " " ;
- scrnTitle += getUserInfo("dutplcenm") + " ";
- scrnTitle += getUserName() + " ";
- scrnTitle += getTitleLoginDate() + " ";
- document.title = scrnTitle;
- }
- }
- /**
- * @desc : (입원/응급/DSC)임상연구처방을 위한 subcretno를 세팅한다.
- * @ :
- * @param :
- * @return :
- * @author : 한재상 20090227
- * @---------------------------------------------------
- */
- // 전처방 및 약속처방에서 처방을 넘기는 경우에도 임상연구처방을 위한 subcretno를 세팅하기 위해 strSrc, sendRow 추가, CHC, 2009-07-22
- function fSubcretnoSet(prcpinptflag, ctrlnm, strSrc, sendRow) {
- var sSubcretno = "0";
-
- if (prcpinptflag == "0" ) { // 상세팝업에서...
- var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
- var clincstdyflag = ctrlnm.valueMatrix(1, ctrlnm.colRef("clincstdyflag"));
-
- if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
- if(clincstdyflag == "Y"){ //임상연구가 Y로 처리된 경우에만 보조유형세팅
- var pid = opener.model.getValue("/root/paminfo/list/pid");
- var indd = opener.model.getValue("/root/paminfo/list/indd");
-
- sSubcretno = fGetSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- model.setValue("/root/main/prcp/prcplist/subcretno", "0");
- ctrlnm.valueMatrix(1, ctrlnm.colRef("clincstdyflag")) = 'N';
- messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- } else {
- model.setValue("/root/main/prcp/prcplist/subcretno", sSubcretno);
- }
- }else{ //임상연구가 N로 처리된 경우에는 subcretno 0로 처리
- model.setValue("/root/main/prcp/prcplist/subcretno", "0");
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- model.setValue("/root/main/prcp/prcplist/subcretno", "0");
- if ( clincstdyflag == "Y" && opener.model.getValue("/root/paminfo/list/insukind") != "71") {
- ctrlnm.valueMatrix(1, ctrlnm.colRef("clincstdyflag")) = 'N';
- messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- }
- }
- } else if (prcpinptflag == "1") { // 일괄입력에서...
- var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
- var clincstdyflag = model.getValue("/root/chkflag/clincstdyflag");
-
- if (prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
- if(model.getValue("/root/chkflag/clincstdyflag") == "Y"){
- var pid = opener.model.getValue("/root/paminfo/list/pid");
- var indd = opener.model.getValue("/root/paminfo/list/indd");
-
- sSubcretno = fGetSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- model.setValue("/root/main/prcp/prcplist/subcretno", "0");
- messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- return -1
- } else {
- model.setValue("/root/main/prcp/prcplist/subcretno", sSubcretno);
- }
- }else{ //임상연구가 N로 처리된 경우에는 subcretno 0로 처리
- model.setValue("/root/main/prcp/prcplist/subcretno", "0");
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- model.setValue("/root/main/prcp/prcplist/subcretno", "0");
- if ( clincstdyflag == "Y" && opener.model.getValue("/root/paminfo/list/insukind") != "71") {
- messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- return -1;
- }
- }
- } else if (prcpinptflag == "2") { // 전처방, 약속처방에서, 임상시험 부유형 자동세팅, cHc, 2009-07-21
- var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
- var clincstdyflag = ctrlnm;
-
- if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E") {
- if(clincstdyflag == "Y"){ //임상연구가 Y로 처리된 경우에만 보조유형세팅
-
- var pid = opener.model.getValue("/root/paminfo/list/pid");
- var indd = opener.model.getValue("/root/paminfo/list/indd");
-
- sSubcretno = fGetSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- model.setValue(strSrc + "[" + sendRow + "]/subcretno", "0");
- model.setValue(strSrc + "[" + sendRow + "]/clincstdyflag", "N");
- messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- } else {
- model.setValue(strSrc + "[" + sendRow + "]/subcretno", sSubcretno);
- }
-
- model.removeNodeset("/root/temp");
- } else{ //임상연구가 N로 처리된 경우에는 subcretno 0로 처리
- opener.model.setValue(strSrc + "[" + sendRow + "]/subcretno", "0");
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- model.setValue(strSrc + "[" + sendRow + "]/subcretno", "0");
- if ( clincstdyflag == "Y" && opener.model.getValue("/root/paminfo/list/insukind") != "71") {
- messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- }
- }
- } else if (prcpinptflag == "3") { // kimsj 임상 일괄입력 팝업 체크
- var prcpgenrflag = model.getValue("/root/patflag/list/prcpgenrflag");
-
- if (prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
- var pid = model.getValue("/root/paminfo/list/pid");
- var indd = model.getValue("/root/paminfo/list/indd");
-
- sSubcretno = fGetSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- return -1;
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- if (model.getValue("/root/paminfo/list/insukind") != "71") {
- messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- return -1;
- }
- }
- return 0;
- }
-
- }
- /**
- * @desc : 환자의 부유형 원무접수번호(subcretno)를 조회 한다.
- * @ :
- * @param :
- * @return :
- * @author : 엄영만 2012.05.09
- * @---------------------------------------------------
- */
- function fGetSubcretno(sPid, sIndd, sSrchcls) {
- var sSubcretno = "0";
-
- if(isNull(sPid)) { messageBox ( "환자번호가 없습니다. 보조유형 조회에 실패 하였습니다. 전산실(6598)로 연락 바랍니다.", "E999" ); return sSubcretno;}
- if(isNull(sIndd)) { messageBox ( "입원일자가 없습니다. 보조유형 조회에 실패 하였습니다. 전산실(6598)로 연락 바랍니다.", "E999" ); return sSubcretno;}
- if(isNull(sSrchcls)) { sSrchcls = ""; }
-
- model.makeValue("/root/temp/send/pid", sPid);
- model.makeValue("/root/temp/send/indd", sIndd);
- model.makeValue("/root/temp/send/srchcls", sSrchcls);
-
- if(submit("TRMMO15701")){
- var nodelist = model.instances(0).selectNodes("/root/temp/patsupkind/patsupkind");
- if(nodelist != null) {
- if(sSrchcls == "clincstdyflag") { // 임상시험 유형
- sSubcretno = model.getValue("/root/temp/patsupkind/patsupkind/cretno");
- if(isNull(sSubcretno)) {
- sSubcretno = "0";
- }
- } else { // 기왕증 등 임상시험 이외의 경우
- if(nodelist.length > 1){
- modal("SPMMO15700", "", "", "", "SPMMO15700", "/root/temp/patsupkind", "/root/main/patsupkind");
- sSubcretno = getParameter("SPMMO15700_subcretno");
- }
- }
- }
- } else {
- messageBox ( "보조유형 조회에 실패 하였습니다. 전산실(6598)로 연락 바랍니다.", "E999" );
- }
-
- model.resetInstanceNode( "/root/temp/send" );
- return sSubcretno;
- }
- /**
- * @desc : 문자열 입력하는 곳에 공백이 있으면 공백을 제거한다.
- * @ :
- * @param :
- * @return :
- * @author : 김영학 2009. 03.03
- * @---------------------------------------------------
- */
- function trim(s) {
- s += ''; // 숫자라도 문자열로 변환
- return s.replace(/^\s*|\s*$/g, '');
- }
- /**
- * @desc : 문자열 입력하는 곳에 공백이 있으면 공백을 제거한다.
- * @ :
- * @param :
- * @return :
- * @author : 김영학 2009. 03.03
- * @---------------------------------------------------
- */
- function fPidTrim(pid_path) {
- var pid = model.getValue(pid_path);
- //pid = trim(pid);
- pid += ''; // 숫자라도 문자열로 변환
- pid = pid.replace(/^\s*|\s*$/g, '');
- model.setValue(pid_path, pid);
- }
- /**
- * @desc : 세부과리스트 조회
- * @
- * @param : ref - reference path
- * rsltref - result reference path
- * orddeptcd - 진료과코드
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmbfGetSubDeptComboList(ref, rsltref, orddeptcd){
- var mmb_rsltref = "/root/hidden/mmb/subdeptinfo";
- model.removeNode(mmb_rsltref);
- model.makeNode(mmb_rsltref);
- model.removeNode(ref);
- model.makeValue(ref + "/orddeptcd", orddeptcd);
- if(submit("TRMMB04106", "false", ref, mmb_rsltref)==true){
- model.copyNode(rsltref, mmb_rsltref);
- model.removeNode(mmb_rsltref);
- }
- model.refresh();
- }
- /**
- * @desc : 변경요청(8106), 응급간호에서 삭제처리한 환자 선택 시 blocking 메세지 처리 추가
- * 응급진료대상자 및 처방창에서 호출함
- * @param : pid, orddd, cretno, mode(C:false리턴 시 창을닫음, B:처방저장을 blocking)
- * @return : true, false
- * @author : 전지은
- * @---------------------------------------------------
- */
- function fChkInCnclYN(pid, orddd, cretno, pMode){
- var rstlRef = "/root/hidden/erincnclinfo/info/incnclyn";
-
- if(isNull(pMode)) pMode = "C";
-
- model.makeValue("/root/send/reqdata/erincncl_pid" , pid);
- model.makeValue("/root/send/reqdata/erincncl_orddd" , orddd);
- model.makeValue("/root/send/reqdata/erincncl_cretno" , cretno);
- model.makeNode("/root/hidden/erincnclinfo");
-
- if (submit("TRMMO04404")==true) {
- model.removenode("/root/send/reqdata/erincncl_pid");
- model.removenode("/root/send/reqdata/erincncl_orddd");
- model.removenode("/root/send/reqdata/erincncl_cretno");
-
- //조회 결과, 삭제처리여부 N이면 처방창 호출 가능, 그 외(삭제처리 했을 경우)에는 blocking
- if( model.getValue(rstlRef) == "N" ){
- return true;
- }else{
- messageBox("삭제 처리 환자입니다.\n처방입력은 불가 합니다.\n\n응급 간호에", "I007");
-
- if( pMode == "C" ){
- var orgPid = getPatientInfo("pid");
- var orgOrddd = getPatientInfoDetail("indd");
- var orgCretno = getPatientInfoDetail("cretno");
-
- if( pid == orgPid && orddd == orgOrddd && cretno == orgCretno ){
- var mainObj = getMainViewer();
- var curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100"); //활성화된 처방Main 화면 object loading
- var curCpObj = mainObj.javascript.getOpenWindow("SMMMP00800"); //활성화된 CP Main 화면 object loading
-
- // 처방창이 열려있다면 입력된 처방을 삭제하고 처방창 close
- if(curPrcpObj != null){
- curPrcpObj.model.removeNodeSet ("/root/main/prcp/prcplist");
- curPrcpObj.window.javascript.appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" );
- }
- if(curCpObj != null){
- curCpObj.model.removeNodeSet ("/root/main/prcp/prcplist");
- curCpObj.window.javascript.appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" );
- }
- }
- } else if ( pMode == "B" ){
- // 저장 blocking, 처방저장 버튼의 상태를 disabled 시킴
- btn_tempsave.disabled = true;
- btn_prcpsave.disabled = true;
- btn_tempsave.hint = "삭제 처리 환자입니다. 처방입력은 불가 합니다. 응급 간호에 확인하십시오.";
- btn_prcpsave.hint = "삭제 처리 환자입니다. 처방입력은 불가 합니다. 응급 간호에 확인하십시오.";
-
- // 입력된 처방을 삭제시킴 (처방이 남아있으면 창 닫을 때 저장여부를 또 물어봄)
- model.removeNodeSet ("/root/main/prcp/prcplist");
- appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" );
- model.refresh();
- model.recalculate();
- }
-
- if(instance1.selectSingleNode(rstlRef) == null) model.makeValue(rstlRef, "Y");
- return false; //삭제처리 환자인 경우 false
- }
- } else{
- model.removenode("/root/send/reqdata/erincncl_pid");
- model.removenode("/root/send/reqdata/erincncl_orddd");
- model.removenode("/root/send/reqdata/erincncl_cretno");
-
- if( instance1.selectSingleNode(rstlRef) == null ) model.makeValue(rstlRef, "");
- return false; //submit 실패 시 false
- }
- }
- /**
- * @desc : 선택진료신청관리 팝업 open 여부 체크
- * @param : pid(등록번호), cretno(cretno), stnddd(입원일/진료일), orddeptcd(진료과), orddrid(진료의), ordtype(O:외래진료대상자/I:입원결정서)
- * @return :
- * @author : 전지은 (조영상 제공 2009.10.23)
- * @---------------------------------------------------
- */
- function fSpecOrdPopUpYN(pid, cretno, stnddd, orddeptcd, orddrid, ordtype) {
- //20091007 JJE 추가 : 주진료과 의사가 진료지원과의 선택진료의사 선택 여부(hardcdno:134) 및 원무 팝업 호출
- var selspecordyn = "";
- if( isNull(ordtype) ) ordtype = "O"; //입원장에서 호출 시에는 I로 보냄.. (2009.11.03 추가)
-
- if(ordtype != "O") selspecordyn = opener.model.getValue("/root/initsrch/selspecordyn[trgtcd = 'Y']/trgtcd");
- else selspecordyn = model.getValue("/root/init/selspecordyn/hardcd[hardcd = 'Y']/hardcd");
-
- if (!isNull(selspecordyn)){
- model.removenode("/root/smpmc06800");
-
- model.makeValue("/root/smpmc06800/send/pid" , pid);
- model.makeValue("/root/smpmc06800/send/orddd" , stnddd);
- model.makeValue("/root/smpmc06800/send/orddeptcd" , orddeptcd);
- model.makeValue("/root/smpmc06800/send/orddrid" , orddrid);
- model.makeValue("/root/smpmc06800/send/cretno" , cretno);
- model.makeValue("/root/smpmc06800/send/ordtype" , ordtype);
-
- if( submit("TRPMC06801") ){
- var saim_pid = getNodesetCount("/root/smpmc06800/hsaim/saim/pid");
-
- if(saim_pid == 0){
- //Parameter: 진료형태▦환자번호▦입원/진료일▦생성번호▦진료과▦주치의▦등록위치구분 : rgstposflag (I:입원,O:외래,M:진료,N:간호)
- setParameter("SMPMC06800_PARM", ordtype + "▦" + pid + "▦" + stnddd + "▦" + cretno + "▦" + orddeptcd + "▦" + orddrid + "▦" + "M");
- modal("SMPMC06800");
- }
- }
- }
- }
- var hardcdResultRef = "/root/hidden/hardcd/resultref";
- function makeHardCdResultRef(){ model.makeNode(hardcdResultRef); }
- function removeHardCdResultRef(){ model.removeNode(hardcdResultRef); }
- /**
- * @desc : 하드코드 조회 배열을 이용하여 한번의 Submit 이용하기
- * @param : 첫번째 파리미터 : 위치할 최하위 인스턴스명 |(구분자) 하드코드 번호
- 두번째 파라미터 : 하드코드 내용이 위치 할 곳
- Ex) fGethardcdArrayList(new Array(
- "dayaftrcptyn|75",
- "patprotector|95",
- "menu|191",
- "selspecordyn|134",
- "ordordershow|135",
- "reqphardcdno|138"
- ),
- new Array(
- "/root/init",
- "/root/init",
- "/root/popupmenu",
- "/root/init",
- "/root/init",
- "/root/init"
- )
- );
- * @return :
- * @author : 김영학
- * @---------------------------------------------------
- */
- /*
- // 하드코드 리스트가 많을 경우 속도가 느려지는 문제 발생하여 submit을 한번 날려서 가지고 오는 방식으로 변경
- function fGethardcdArrayList(hardcdlist, rslt_ref_list){
- makeHardCdResultRef();
- var bCopy = true;
- for (key in hardcdlist){
- addParameter("hardcdno", hardcdlist[key]);
- //////////////
- //KNUH_20110211, 주희경, 진료속도개선위해 미리 조회해 놓은 hardcd 데이터를 복사
- var target_path = rslt_ref_list[key];
- if(target_path==null){
- target_path = rslt_ref_list[key-1];
- }
- target_path = target_path + "/" + hardcdlist[key].split("|")[0];
- var hardcd = hardcdlist[key].split("|")[1];
- fGetHardCDList("N", hardcd, 0, target_path);
- var destNode = model.instances(0).selectSingleNode(rslt_ref_list);
- if ( destNode.childNodes.length == 0 )
- {
- bCopy = false;
- }
- //////////////
- }
- //KNUH_20110211, 주희경, 복사된 데이터가 없으면 submit
- if (!bCopy)
- {
- var success = submit("TRMMB04107", "false", getParameterPath(), hardcdResultRef);
- for(key in hardcdlist){
- var target_path = rslt_ref_list[key];
- if(target_path==null){
- target_path = rslt_ref_list[key-1];
- }
- var refArray = hardcdlist[key].split("|");
- var nodeitem = refArray[0]
- var sourceNode = instance1.selectNodes(hardcdResultRef + "/" + nodeitem);
- for(i=0; i<sourceNode.length; i++){
- model.duplicate(target_path, sourceNode.item(i));
- }
- }
- }
- removeHardCdResultRef();
- clearParameter("hardcdno");
- }
- */
- function fGethardcdArrayList(hardcdlist, rslt_ref_list){
- makeHardCdResultRef();
- for (key in hardcdlist){
- addParameter("hardcdno", hardcdlist[key]);
- }
- var success = submit("TRMMB04107", "false", getParameterPath(), hardcdResultRef);
- for(key in hardcdlist){
- var target_path = rslt_ref_list[key];
- if(target_path==null){
- target_path = rslt_ref_list[key-1];
- }
- var refArray = hardcdlist[key].split("|");
- var nodeitem = refArray[0]
- var sourceNode = instance1.selectNodes(hardcdResultRef + "/" + nodeitem);
- for(i=0; i<sourceNode.length; i++){
- model.duplicate(target_path, sourceNode.item(i));
- }
- }
- removeHardCdResultRef();
- clearParameter("hardcdno");
- }
- /**
- * @desc : 조회된 하드코드 리스트를 조회한다.
- * @param : 첫번째 파리미터 : option : Y : 값을 리턴한다. , N : 리스트를 반환한다.
- * 두번째 파라미터 : 하드코드 번호
- * 세번째 파라미터 : 반환할 instance 주소를 준다.
- * var returnVal = fGetHardCDList("Y", 1, 0);
- * model.makeValue("/root/hidden/returnValue", returnVal) ;
- *
- * fGetHardCDList("N", 6, 0 , "/root/hidden/destnode");
- * @return : option = "Y" 일 경우
- * return hardcd+ "|" + hardcdnm + "|" + cdseqno;
- = "N" 일 경우 노드 복사
- hardcdno = 하드코드 번호
- rtnValue 0 - 리턴값 반환하지 않음 (하드코드 값이 여러개일 때 선택
- 1 - hardcdno를 리턴
- 2 - hardcodenm 을 리턴
- 3 - hardcd 를 리턴
- 4 - hardcdnm를 리턴
- 5 - cdseqno를 리턴
- 9 - hardcd+ "|" + hardcdnm + "|" + cdseqno 형태로 리턴
- rslt_ref_list 목적노드
- * @author : 김영학
- * @---------------------------------------------------
- */
- function fGetHardCDList(option, hardcdno, rtnValue , rslt_ref_list) {
- model.makeNode(rslt_ref_list);
- var destNode = model.instances(0).selectSingleNode(rslt_ref_list);
- var sysMessageobj = getViewer("sysMessage");
- if (sysMessageobj != null) {
- if (option == "Y") {
- try {
- var hardcdno = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdlist/hardcd[hardcdno='" + hardcdno + "']/hardcdno").text;
- var hardcodenm = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdlist/hardcd[hardcdno='" + hardcdno + "']/hardcodenm").text;
- var hardcd = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdlist/hardcd[hardcdno='" + hardcdno + "']/hardcd").text;
- var hardcdnm = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdlist/hardcd[hardcdno='" + hardcdno + "']/hardcdnm").text;
- var cdseqno = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdlist/hardcd[hardcdno='" + hardcdno + "']/cdseqno").text;
- } catch(err) {
- model.makeValue("/root/temp/hardcd", hardcdno);
- mmbfGetHardCodeInfo("/root/send/reqdata", "/root/temp/hardcd", hardcdno); //
- var hardcd = model.getValue("/root/temp/hardcd/hardcd");
- var hardcdnm = model.getValue("/root/temp/hardcd/hardcdnm");
- var cdseqno = model.getValue("/root/temp/hardcd/cdseqno");
- }
-
- if (rtnValue == 1) {
- return hardcdno;
- } else if (rtnValue == 1) {
- return hardcodenm;
- } else if (rtnValue == 2) {
- return hardcdno;
- } else if (rtnValue == 3) {
- return hardcd;
- } else if (rtnValue == 4) {
- return hardcdnm;
- } else if (rtnValue == 5) {
- return cdseqno;
- } else if (rtnValue == 9) {
- return hardcd+ "|" + hardcdnm + "|" + cdseqno;
- }
- } else {
- /*
- //속도 문제로 인덱스를 뒤져서 해당 인덱스에서부터 시작하도록 수정 : 20110428 김영학
- var hardcdPath = sysMessageobj.window.instance1.selectNodes("/root/properties/orderbasicinfo/hardcdlist/hardcd");
- var destListLen = destNode.childNodes.length;
- var hardcdIdxPath = sysMessageobj.window.instance1.selectNodes("/root/properties/orderbasicinfo/hardcdidxlist");
- for (idxno = 1; idxno <= hardcdIdxPath.length; idxno++ ) {
- if (sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdidxlist[" + idxno + "]/hardcdno").text == hardcdno) {
- strtrow = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdidxlist[" + idxno + "]/strtrow").text
- break;
- }
- }
- */
- /*
- if (destListLen < 1 ) { // 한번이라도 복사된 내용이 있으면 다시 안하도록 수정 2011. 01.20 김영학
- model.copyNode( rslt_ref_list+ "/hardcd", "/root/properties/orderbasicinfo/hardcdlist/hardcd[hardcdno='"+hardcdno+"']");
- for (i=strtrow; i<= hardcdPath.length; i++){
- if (sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdlist/hardcd[" + i + "]/hardcdno").text == hardcdno) {
- destNode.appendChild(hardcdPath.item(i-1).cloneNode(true));
- } else if (parseInt(sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/hardcdlist/hardcd[" + i + "]/hardcdno").text) > parseInt(hardcdno)) {
- break;
- }
- }
- }
- */
-
- var destListLen = destNode.childNodes.length;
- if (destListLen < 1 ) { // 한번이라도 복사된 내용이 있으면 다시 안하도록 수정 2011. 01.20 김영학
- var destNode = instance1.selectSingleNode(rslt_ref_list);
- var nodes = sysMessageobj.window.instance1.selectNodes("/root/properties/orderbasicinfo/hardcdlist/hardcd[hardcdno='"+hardcdno+"']");
- for(i=1; i<= nodes.length; i++) {
- destNode.appendChild(nodes.item(i-1).cloneNode(true));
- }
- }
- }
- }
- }
- /**
- * @desc : 하드코드 리스트에 해당 파라미터의 코드 값이 존재 하는지 여부를 체크 한다.
- * @param : sHardCdNo : 하드코드 번호
- * sCheckCode : 체크 할 하드코드
- * fContainsHardCD("339", "LIR112");
- * @return : true : 값이 존재 함.
- false : 값이 존재하지 않음.
- * @author : 엄영만 2012.11.26
- * @---------------------------------------------------
- */
- function fContainsHardCD(sHardCdNo, sCheckCode) {
- var bRtn = false; // 반환값
- var sChekPath = "/root/temp/mmo001/fcontainshardcd"; // 체크할 임시 노드 경로
-
- try {
- model.removeNodeset(sChekPath);
- fGetHardCDList("N", sHardCdNo, 0, sChekPath);
-
- if(!isNull(model.getValue(sChekPath + "/hardcd[hardcd='"+sCheckCode+"']/hardcd"))) {
- bRtn = true;
- } else {
- bRtn = false;
- }
- } catch(err) {
- messageBox ( "fContainsHardCD() 실행 중 오류가 발생 하였습니다. sHardCdNo:" + sHardCdNo + " sCheckCode:"+ sCheckCode, "E" );
- } finally {
- model.removeNodeset(sChekPath);
- }
-
- return bRtn;
- }
- /**
- * @desc : 의사 직종직위 옵션을 받아서 true, false 값을 리턴한다.
- * @param : 첫번째 파리미터 : option 1: 의사 여부, 2: 주치의 여부 3: 담당의 여부 를 체크한다.
- * 두번째 파라미터 : chkOption : A : 직종으로 체크한다. , B : 직위로 체크한다.
- * 값이 없으면 하드코드번호 255번의 기본값으로 셋팅한다., 하드코드도 없으면 기본값 "B"로 셋팅
- * 세번째 파라미터 : userinfo : 비교할 직종 또는 직위코드(getUserInfo(jobkindcd), getUserInfo("jobposcd") ;
- 값이 없으면 A일 경우는 getUserInfo("jobkindcd") , B일 경우는 getUserInfo("jobposcd")로 셋팅함.
- * model.makeValue("/root/hidden/returnValue", returnVal) ;
- * fGetHardCDList("1");
- * fGetHardCDList("2", "A", getUserInfo("jobkindcd"));
- * @return : true/false;
- * @author : 김영학
- * @---------------------------------------------------
- */
- function mmbfChkDrKindPosYN(option, chkOption, userinfo) {
-
- if (chkOption == null || chkOption == "" || chkOption == "undefined") {
- chkOption = fGetHardCDList("Y", "255", "3")
- if (chkOption == "" ) chkOption = "B"
- }
- if (option == "1") { // 의사여부를 리턴한다.
- fGetHardCDList("N", 69, 0, "/root/chktmpdrlist");
- if (userinfo == null || userinfo == "" || userinfo == "undefined") userinfo = getUserInfo("jobkindcd") ;
- var jobkindcd = model.getValue("/root/chktmpdrlist/hardcd[hardcd='" + userinfo + "']/hardcd");
- if ( jobkindcd != "") return true;
- else return false;
-
- } else if (option =="2") { // 주치의 여부를 리턴한다.
- if (chkOption == "A") { // 직종에서 비교한다. (jobkindcd)
- fGetHardCDList("N", 65, 0, "/root/chktmpdrlist") ;
- if (userinfo == null || userinfo == "" || userinfo == "undefined") userinfo = getUserInfo("jobkindcd") ;
- var jobkindcd = model.getValue("/root/chktmpdrlist/hardcd[hardcd='" + userinfo + "']/hardcd");
- if ( jobkindcd != "") return true;
- else return false;
- } else if (chkOption == "B") { // 직위를 비교한다. (jobposcd)
- fGetHardCDList("N", 67, 0, "/root/chktmpdrlist") ;
- if (userinfo == null || userinfo == "" || userinfo == "undefined") userinfo = getUserInfo("jobposcd") ;
- var jobkindcd = model.getValue("/root/chktmpdrlist/hardcd[hardcd='" + userinfo + "']/hardcd");
- if ( jobkindcd != "") return true;
- else return false;
- }
- } else if (option == "3") {
- if (chkOption == "A") { // 직종에서 비교한다. (jobkindcd)
- fGetHardCDList("N", 65, 0, "/root/chktmpdrlist") ;
- if (userinfo == null || userinfo == "" || userinfo == "undefined") userinfo = getUserInfo("jobkindcd") ;
- var jobkindcd = model.getValue("/root/chktmpdrlist/hardcd[hardcd='" + userinfo + "']/hardcd");
- if ( jobkindcd != "") return true;
- else return false;
- } else if (chkOption == "B") { // 직위를 비교한다. (jobposcd)
- fGetHardCDList("N", 67, 0, "/root/chktmpdrlist") ;
- if (userinfo == null || userinfo == "" || userinfo == "undefined") userinfo = getUserInfo("jobposcd") ;
- var jobkindcd = model.getValue("/root/chktmpdrlist/hardcd[hardcd='" + userinfo + "']/hardcd");
- if ( jobkindcd != "") return "Y";
- else return "N";
- }
- }
- }
- /**
- * @desc : 사용자 환경설정의 값을 조회한다.
- * @param : qestcd : 질문값
- * @return : Answcnt ( 답안값)
- */
- function mmbfGetUserEnvQuestValue(qestcd) {
- var sysMessageobj = getViewer("sysMessage");
- if (sysMessageobj != null) {
- var anstcnt = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/envinfo[qestcd='" + qestcd + "']/answcnt").text;
- return anstcnt;
- } else {
- var mmb_rsltref = "/root/userenv/answlist";
- var ref = "/root/userenv/cond"
- var answcnt = "";
- model.removeNode(mmb_rsltref);
- model.makeNode(mmb_rsltref);
- model.makeValue(ref + "/interqestcd", qestcd);
- if(submit("TRMMB01104", "false", ref, mmb_rsltref)==true){
- answcnt = model.getValue("/root/userenv/interface/answcnt")
- model.removeNode(mmb_rsltref);
- return answcnt;
- }
- }
- }
- function fChoiOrdChk() {
- if ( model.getValue ( "/root/main/prcp/prcplist/tempcol24" ) != "Y" ) {
- messageBox ( "선택진료가 불가한 처방입니다.", "E" );
- return false;
- } else {
- return true;
- }
- }
- function fChgChoiDr( mode, currow, sXpt, sYpt ) {
- var xpt = window.screenLeft + 400;
- var ypt = window.screenTop + 60;
- var coord = getRelativeCoordinate(xpt, ypt);
- var mon = coord[0];
- if(!isNull(sXpt) && !isNull(sYpt)) {
- xpt = sXpt;
- ypt = sYpt;
- } else {
- xpt = coord[1];
- ypt = coord[2];
- }
-
- var ordtype = model.getValue ( "/root/patflag/list/prcpgenrflag" );
- var prcpcd = "";
- var prcpdd = "";
- var prcpnm = "";
- var prcpexecdeptcd = "";
- var prcpclscd = "";
- var drugmthdspccd = "";
- var useyn = "";
- var userid = "";
- //default 선택진료과 설정
- if ( mode == "pop" ) {
- ordtype = model.getValue ( "/root/main/prcp/prcplist/prcpgenrflag" );
- prcpcd = model.getValue ( "/root/main/prcp/prcplist/prcpcd" );
- prcpnm = model.getValue ( "/root/main/prcp/prcplist/prcpnm" );
- prcpexecdeptcd = model.getValue ( "/root/main/prcp/prcplist/prcpexecdeptcd" );
- prcpclscd = model.getValue ( "/root/main/prcp/prcplist/prcpclscd" );
- drugmthdspccd = model.getValue ( "/root/main/prcp/prcplist/drugmthdspccd" );
- } else if ( mode == "auto" ) {
- //ordtype = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/prcpgenrflag" );
- ordtype = model.getValue ( "/root/patflag/list/prcpgenrflag" ); //입력구분
- prcpcd = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/prcpcd" );
- prcpnm = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/prcpnm" );
- prcpexecdeptcd = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/prcpexecdeptcd" );
- prcpclscd = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/prcpclscd" );
- drugmthdspccd = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/drugmthdspccd" );
- } else {
- ordtype = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row + "]/prcpgenrflag" );
- prcpcd = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row + "]/prcpcd" );
- prcpnm = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row + "]/prcpnm" );
- prcpexecdeptcd = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row + "]/prcpexecdeptcd" );
- prcpclscd = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row + "]/prcpclscd" );
- drugmthdspccd = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row + "]/drugmthdspccd" );
- }
-
- //defalut 선택진료과 설정. 예외
- if ( prcpexecdeptcd == "2010500000" || prcpexecdeptcd == "2010302030" ) { //내시경검사실, 내분비대사내과 일경우 소화기내과
- prcpexecdeptcd = "2010300000";
- } else if ( prcpexecdeptcd == "2220204000" ) { //물리치료실일 경우 재활의학과
- prcpexecdeptcd = "2220000000";
- } else if ( prcpexecdeptcd == "2010402030" || prcpexecdeptcd == "2010402090" ) { //심장혈관촬영실, 심전도검사실 경우 순환기내과
- prcpexecdeptcd = "2010400000";
- } else if ( prcpexecdeptcd == "2200238000" ) { //채혈실일 경우 진단검사의학과
- prcpexecdeptcd = "2200000000";
- }
-
- // 신규로직 테스트 적용 여부 추후 삭제 필요.
- var sChkNewLogicYn = fGetHardCDList("Y", 400, 3); // 400 처방 관련 신규로직 적용여부
- var orddeptcd = "";
- var orddrid = "";
-
- if ( mode == "pop" ) {
- orddeptcd = opener.model.getValue ( "/root/paminfo/list/orddeptcd" );
- if ( ordtype == "O" ) {
- orddrid = opener.model.getValue ( "/root/paminfo/list/orddrid" );
- } else {
- orddrid = opener.model.getValue ( "/root/paminfo/list/medispclid" );
- }
- } else {
- orddeptcd = model.getValue ( "/root/paminfo/list/orddeptcd" );
- if ( ordtype == "O" ) {
- orddrid = model.getValue ( "/root/paminfo/list/orddrid" );
- } else {
- orddrid = model.getValue ( "/root/paminfo/list/medispclid" );
- }
- }
-
- fGetHardCDList("N", 402, 0 , "/root/hidden/testcheckspcdrlist"); // 402 신규로직 적용대상 2011.11.19 엄영만 (추후 관련 로직 삭제해야함.)
- // End of 신규로직 테스트 적용 여부 추후 삭제 필요. orddrid 가져 오는 부분도 필요 없음.
- if ( sChkNewLogicYn == "Y"
- || (sChkNewLogicYn == "N" && !isNull(model.getValue("/root/hidden/testcheckspcdrlist/hardcd[hardcd='"+orddrid+"']/hardcd" ))) ) { // 신규로직 적용여부
- if ( mode == "pop" ) {
- prcpdd = opener.model.getValue ( "/root/init/prcpdd" );
- } else {
- prcpdd = model.getValue ( "/root/init/prcpdd" );
- }
-
- clearParameter ( "SPMMB08600_useyn" );
- clearParameter ( "SPMMB08600_userid" );
- clearParameter ( "SPMMB08600_prcpdd" );
- clearParameter ( "SPMMB08600_prcpcd" );
- clearParameter ( "SPMMB08600_prcpnm" );
- clearParameter ( "SPMMB08600_prcpexecdeptcd" );
- clearParameter ( "SPMMB08600_orddeptcd" );
- clearParameter ( "SPMMB08600_orddrid" );
- clearParameter ( "SPMMB08600_prcpclscd" );
- clearParameter ( "SPMMB08600_drugmthdspccd" );
- clearParameter ( "SPMMB08600_userinfo" );
- setParameter("SPMMB08600_prcpdd", prcpdd);
- setParameter("SPMMB08600_prcpcd", prcpcd);
- setParameter("SPMMB08600_prcpnm", prcpnm);
- setParameter("SPMMB08600_prcpexecdeptcd", prcpexecdeptcd);
- setParameter("SPMMB08600_prcpclscd", prcpclscd);
- setParameter("SPMMB08600_orddeptcd", orddeptcd);
- setParameter("SPMMB08600_orddrid", orddrid);
- setParameter("SPMMB08600_drugmthdspccd", drugmthdspccd);
- setParameter("SPMMB0800_ioflag", ordtype);
-
- // "sysmenu:hidden;" 닫기버튼 삭제
- modal("SPMMB08600", mon, xpt, ypt, null, null, null, "sysmenu:hidden;", false);
- useyn = getParameter("SPMMB08600_useyn");
- userid = getParameter("SPMMB08600_userid");
- } else {
- clearParameter ( "SPMMB08300_flag");
- clearParameter ( "SPMMB08300_useyn" );
- clearParameter ( "SPMMB08300_userid" );
- clearParameter ( "SPMMB08300_orddeptcd" );
- clearParameter ( "SPMMB08300_userinfo" );
-
- setParameter("SPMMB08300_orddeptcd", prcpexecdeptcd);
- setParameter("SPMMB08300_ioflag", ordtype);
-
- modal("SPMMB08300", mon, xpt, ypt, null, null, null, "sysmenu:hidden;", false);
- useyn = getParameter("SPMMB08300_useyn");
- userid = getParameter("SPMMB08300_userid");
- }
-
- if(useyn == "Y"){
- if ( mode == "pop" ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/tempcol24" ) == "Y" ) {
- model.setValue ( "/root/main/prcp/prcplist/choiordflag", "Y" );
- model.setValue ( "/root/main/prcp/prcplist/specdrid", userid );
- } else {
- model.setValue ( "/root/main/prcp/prcplist/choiordflag", "N" );
- model.setValue ( "/root/main/prcp/prcplist/specdrid", "-");
- }
- } else if ( mode == "auto" ) {
- if ( model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/tempcol24" ) == "Y" ) {
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/choiordflag", "Y" );
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/specdrid", userid );
- } else {
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/choiordflag", "N" );
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/specdrid", "-");
- }
- } else {
- var selectedRows = grd_prcplist.selectedRows;
- for (var i=0; i< selectedRows; i++) {
- if ( model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/tempcol24" ) == "Y" ) {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/choiordflag", "Y" );
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/specdrid", userid );
- } else {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/choiordflag", "N" );
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/specdrid", "-");
- }
- }
- }
- } else {
- if ( mode == "pop" ) {
- model.setValue ( "/root/main/prcp/prcplist/choiordflag", "N" );
- model.setValue ( "/root/main/prcp/prcplist/specdrid", "-");
- } else if ( mode == "auto" ) {
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/choiordflag", "N" );
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/specdrid", "-");
- } else {
- var selectedRows = grd_prcplist.selectedRows;
- for (var i=0; i< selectedRows; i++) {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/choiordflag", "N" );
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/specdrid", "-");
- }
- }
- }
- var sysMessageobj = getViewer("sysMessage");
- // 선택진료의사가 아닐 경우 는 기본값으로 셋팅한다.
- if (mode =="pop") {
- var chkChoiSpcldrid = model.getValue ( "/root/main/prcp/prcplist/specdrid" );
- var choiSpclDrid = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/usercombo[refseq = 'A' and userid ='" + chkChoiSpcldrid + "']/userid");
- if ( choiSpclDrid == null) {
- model.setValue ( "/root/main/prcp/prcplist/choiordflag", "N" );
- if (chkChoiSpcldrid == getUserInfo("userid")) {
- model.setValue ( "/root/main/prcp/prcplist/specdrid", chkChoiSpcldrid);
- } else {
- model.setValue ( "/root/main/prcp/prcplist/specdrid", "-");
- }
- }
- } else if (mode == "auto") {
- var chkChoiSpcldrid = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/specdrid" );
- var choiSpclDrid = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/usercombo[refseq = 'A' and userid ='" + chkChoiSpcldrid + "']/userid");
- if ( choiSpclDrid == null) {
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/choiordflag", "N" );
- if(chkChoiSpcldrid == getUserInfo("userid")) {
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/specdrid", chkChoiSpcldrid);
- } else {
- model.setValue ( "/root/main/prcp/prcplist[" + currow + "]/specdrid", "-");
- }
- }
- } else {
- var selectedRows = grd_prcplist.selectedRows;
- for (var i=0; i< selectedRows; i++) {
- var chkChoiSpcldrid = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/specdrid");
- var choiSpclDrid = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/usercombo[refseq = 'A' and userid ='" + chkChoiSpcldrid + "']/userid");
- if ( choiSpclDrid == null) {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/choiordflag", "N" );
- if(chkChoiSpcldrid == getUserInfo("userid")) {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/specdrid", chkChoiSpcldrid);
- } else {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/specdrid", "-");
- }
- }
- }
- }
-
- model.refresh();
- }
- /**
- * @desc : 처방이 발행될때 set로 같이 나가야할 처방 처리
- * @param : objFlag - child or else
- : strSrc - source node
- : strDest - 목적지 node; child일때는 opener.root.main.prcp, 아니면 "/root/main/prcp" 이다
- : sendRow - 검색된 내용중 메인으로 보내고자 하는 row
- : srchRow - 메인에 들어간 자리. 검색로우(srchRow) 바로 전이다.
- : prcpInptFlag - - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- : groupSrc - 옵션: group처방 검색할 경우 node
- : direcSrc - 옵션: group 지시처방 검색할 경우 node
- : prcpInptFlag - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- * @return : srchRow 에러시 0
- * @authur : 마정민 2008. 6. 25
- * @---------------------------------------------------
- */
- function fAddSetPrcpChkKNUH ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag ) {
- var prcpcd = model.getValue( strSrc + "[" + i + "]/prcpcd" );
- var addprcpcd = "";
- var addprcpcnt = 0;
- // if (prcpcd == "LCT101") addprcpcd = "DDIS50";
- // else if (prcpcd == "LCT001") addprcpcd = "DDIS75";
- // else if (prcpcd == "LCT002") addprcpcd = "DDIS100";
- // else if (prcpcd == "NHC297EG") addprcpcd = "FE654303G"; //by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청
- var iFind = -1;
- var setprcpchk = "";
- var cnts = getNodesetCount("/root/init/autosetprcplist/hardcd");
- if ( objFlag == "child" ) {
- srchPrcpcd = opener.model.getValue ( "/root/init/autosetprcplist/hardcd[hardcd = '" + prcpcd + "']/hardcd" );
- setprcpchk = opener.model.getValue ( "/root/init/autosetprcplist/hardcd[hardcd = '" + prcpcd + "']/hardcdnm" );
- } else {
- srchPrcpcd = model.getValue ( "/root/init/autosetprcplist/hardcd[hardcd = '" + prcpcd + "']/hardcd" );
- setprcpchk = model.getValue ( "/root/init/autosetprcplist/hardcd[hardcd = '" + prcpcd + "']/hardcdnm" );
- }
- // 기존 search함수에서 무결성이 어긋나 개별 체크 변경 - 20081008 by MoonSH
- var precureprcpflag = "";
- var calcflag = "";
- var drprcpetc8 = "";
- if( !isNull(srchPrcpcd)) {
- var secStage = setprcpchk.split("|");
- iFind = 1 ;
- calcflag = secStage[0];
- addprcpcd = secStage[1];
- drprcpetc8 = secStage[2];
- }
- if ( parseInt(iFind) >= 0) {
- var prcpdd = "";
- var insukind = "";
- if ( objFlag == "child" ) {
- prcpdd = opener.model.getValue ( "/root/init/prcpdd" );
- insukind = opener.model.getValue ( "/root/paminfo/list/insukind");
- } else {
- prcpdd = model.getValue ( "/root/init/prcpdd" );
- insukind = model.getValue ( "/root/paminfo/list/insukind");
- }
- //멀티 search 가능함
- model.makeValue("/root/send/addsetprcp[1]/prcpcd",addprcpcd);
- model.makeValue("/root/send/addsetprcp[1]/prcpdd",prcpdd);
- model.makeValue("/root/send/addsetprcp[1]/insukind",insukind);
- model.makeValue("/root/send/addsetprcp[1]/srchkind","B2");
-
- if ( submit("TRMMO00207",false)) {
- /*
- **by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청 수정 시작.
- ** 처방코드 : NHC297EMG, 자동발생코드 : FE654303G
- ** 자동발생코드는 돈계산에서 제외되어야 함.
- ** 자동발생코드 처방전달사항 자동 생성=>[HEART-SPECT 핵의학검사용]
- */
- //20090420 마정민 수정 HARDCODE 테이블로 분리
- var nd = model.instance1.selectNodes("/root/addsetprcp/prcplist");
- if( nd != null && nd.length > 0) {
- //model.setValue("/root/addsetprcp/prcplist[1]/prcpdelivefact", prcpdelivefact );
- model.setValue("/root/addsetprcp/prcplist[1]/drprcpetc8", drprcpetc8);
- //by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청 수정 끝
- //serPrcpSrchRow = addPrcpDetl ( objFlag , "root/addsetprcp/prcplist" , strDest , 1 , srchRow, prcpInptFlag );
- //by sonjy 20091031 자동발생 처방 입력 구분 추가
- //SET 처방일 때 약품의 기본 일수는 수가계산법이 어떤 것이든 기본을 1일로 되도록 요청번호:8875
- serPrcpSrchRow = addPrcpDetl ( objFlag , "root/addsetprcp/prcplist" , strDest , 1 , srchRow, "34" );
- if (serPrcpSrchRow != 0 ) srchRow++;
- }
- }
- model.removeNodeset("/root/send/addsetprcp");
- }
- return srchRow;
- }
- /**
- * @desc : 처방 코드 정보를 조회 하는 함수 addPrcpSetValue()에서 값을 셋팅 할때 처방 코드별 참조자료를 셋팅 한다.
- * @param : sPrcpCodes - 처방 편집 화면으로 복사되는 처방 코드
- * @return : 처방화면(SMMO00100) /root/prcpcodeinfo 셋팅
- * @authur : 엄영만 2011. 10. 13
- * @---------------------------------------------------
- */
- function fGetPrcpCodeInfo(sPrcpCodes) {
- var pamInfoNode = "/root/paminfo/list";
- var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" ); //입력구분
- var prcpdd = model.getValue ( "/root/init/prcpdd" ); //처방일
- var pid = model.getValue ( pamInfoNode + "/pid" );
- var ioflag = model.getValue ( pamInfoNode + "/ioflag" );
- var cretno = model.getValue ( pamInfoNode + "/cretno" );
- var orddeptcd = model.getValue ( pamInfoNode + "/orddeptcd" );
- var orddd = "";
- var orddrid = "";
- //건진일 경우 check추가.
- if ( prcpgenrflag == "O" || prcpgenrflag == "S" ) {
- orddd = model.getValue ( pamInfoNode + "/orddd" );
- orddrid = model.getValue ( pamInfoNode + "/orddrid" );
- } else {
- orddd = model.getValue ( pamInfoNode + "/indd" );
- orddrid = model.getValue ( pamInfoNode + "/medispclid" );
- }
- model.resetInstanceNode ( "/root/send" );
- model.resetInstanceNode ( "/root/prcpcodeinfo" );
-
- if(!isNull(sPrcpCodes)){
- model.setValue( "/root/send/cond1", sPrcpCodes ); //처방코드
- model.setValue( "/root/send/cond2", prcpdd ); //처방일
- model.setValue( "/root/send/cond3", ioflag ); //외래입원구분
- model.setValue( "/root/send/cond4", pid ); //등록번호
- model.setValue( "/root/send/cond5", orddd ); //진료일자
- model.setValue( "/root/send/cond6", cretno ); //생성번호
- model.setValue( "/root/send/cond7", orddeptcd ); //진료과
- model.setValue( "/root/send/cond8", orddrid ); //진료의
-
- if(!submit("TRMMO00143",false)){
- // 테스트 메세지 팝업 여부 추후 삭제 해야 함. 엄영만 2011.11.19
- var sChkMsgPopYn = fGetHardCDList("Y", 403, 3); // 403 테스트메세지 사용여부
- if (sChkMsgPopYn == "Y"){
- alert("처방정보 조회시 에러가 발생 하였습니다. 전산실(6598)로 문의 하세요.");
- }
- }
- }
- }
- /**
- * @desc : 선택진료 여부 선택진료의사를
- * addPrcpSetValue()에서 값을 셋팅 선택진료처방 및 선택진료의사를 셋팅 한다..
- * @param : strSrc => setting할 source node
- : sendRow => setting할 row
- : prcpInptFlag => 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- * @return : 선택진료처방여부, 선택진료의사 셋팅
- * @authur : 엄영만 2011. 11. 08
- * @---------------------------------------------------
- */
- function fSetPrcpSpecValue( strSrc, sendRow, prcpInptFlag ) {
- //2011.01.12 MJM수정. 선택진료 가능처방은 일괄위임일 경우 무조건 선택진료처리.
- //2011.10.01 고시관련 수정 일괄위임의 경우 선택진료 처리.
- //선택진료여부처리는 결정(검사,영상진단) 무조건 선택진료가능항목으로 처리
- var pamInfoNode = "/root/paminfo/list";
- var prcpCodeNode = "/root/prcpcodeinfo/prcpcodelist";
- var sChoiordFlag = "N";
- var sOrdDrId = "";
- var sPrcpClsCd = model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" ); // 처방종류
- var sPrcpCd = model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" ); // 처방코드
- var sDrugMthdSpcCd = model.getValue ( strSrc + "[" + sendRow + "]/drugmthdspccd" ); // 처방 검체코드(병리 처방은 검체코드가 있을때만 선택진료 설정함.)
- var sPrcpGenrFlag = model.getValue ( "/root/patflag/list/prcpgenrflag" ); // 처방입력구분(외래, 입원, 응급..)
- var sSpecOrdType = model.getValue ( pamInfoNode + "/specordtype" ); // 선택진료 타입 (B:일괄 위임)
- var sSpcspifYn = ""; // 부분 선택진료 위임 여부
- var sSpecCls = ""; // 선택진료처방 분류
- var sTodaySpcDrId = ""; // 오늘 선택진료의
- var sAllSpcDrId = ""; // 가능 선택진료의
- var sPreSpecDrId = ""; // 기존 선택진료의
- var sPrcpSpecDrId = "";
- var sChkSpecDrId = "";
- var sUserID = getUserInfo("userid");
-
- sSpcspifYn = model.getValue ( prcpCodeNode + "[prcpcd='" + sPrcpCd + "']/spcspifyn" );
- if(isNull(sSpcspifYn)) { // 처방 코드 정보가 없으면 -- App 처방 복사 로직
- sSpcspifYn = model.getValue ( strSrc + "[" + sendRow + "]/spcspifyn" ); // 부분 선택진료 위임 여부
- sSpecCls = model.getValue ( strSrc + "[" + sendRow + "]/speccls" ); // 선택진료처방 분류
- sTodaySpcDrId = model.getValue ( strSrc + "[" + sendRow + "]/todayspcdrid" ); // 오늘 선택진료의
- sAllSpcDrId = model.getValue ( strSrc + "[" + sendRow + "]/allspcdrid" ); // 가능 선택진료의
- } else { // 처방 코드 정보가 있으면 -- Web 처방 복사 로직
- sSpcspifYn = model.getValue ( prcpCodeNode + "[prcpcd='" + sPrcpCd + "']/spcspifyn" ); // 부분 선택진료 위임 여부
- sSpecCls = model.getValue ( prcpCodeNode + "[prcpcd='" + sPrcpCd + "']/speccls" ); // 선택진료처방 분류
- sTodaySpcDrId = model.getValue ( prcpCodeNode + "[prcpcd='" + sPrcpCd + "']/todayspcdrid" ); // 오늘 선택진료의
- sAllSpcDrId = model.getValue ( prcpCodeNode + "[prcpcd='" + sPrcpCd + "']/allspcdrid" ); // 가능 선택진료의
- }
- if (model.getValue ( strSrc + "[" + sendRow + "]/tempcol24" ) == "Y" ) { //선택진료가능처방
- if (sPrcpGenrFlag == "E") { // 응급실에서 발행 하는 처방일경우 선택진료 자동 셋팅 하지 않도록 수정. 심사실 윤순길팀장님 요청. 엄영만 2011.11.23
- if ( sSpecOrdType == "B" || sSpcspifYn == "Y" ) {// 일괄선택진료 위임 일 경우 또는 부분선택진료 위임 일 경우(처방 항목에 위임)
- sChoiordFlag = "Y";
- model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", "Y" );
- }
- } else { // 응급실에서 발행 하는 처방이 아닐 경우
- if ( model.getValue ( pamInfoNode + "/specordyn" ) == "Y" // 선택진료의사(교수님 진료)
- || sSpecOrdType == "B" // 일괄선택진료 위임 일 경우
- || sSpcspifYn == "Y" // 부분선택진료 위임 일 경우(처방 항목에 위임)
- || sSpecCls == "02" // 선택진료 분류가 검사인것
- || sSpecCls == "03" // 선택진료 분류가 영상진단인것
- || (sPrcpClsCd == "C6" && model.getValue ( pamInfoNode + "/insukind" ) == "11" ) // 건강보험이면서 처방분류가 핵의학체내 일 경우는 무조건 선택진료가 발생하도록 수정 (의사가 체크 해제 할 수 있음): 2011. 02.07 김영학
- || (sPrcpClsCd == "D2" && model.getValue ( pamInfoNode + "/insukind" ) == "11" ) // 건강보험이면서 처방분류가 병리 처방은 선택진료 가능 처방은 무조건 선택진료로 한다. 김영학
- || (prcpInptFlag == '02' && model.getValue ( strSrc + "[" + sendRow + "]/choiordflag") == "Y" ) ) { //약속처방이고 선택진료 체크 되어 있는경우
-
- sChoiordFlag = "Y";
- model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", "Y" );
- }
- }
- }
- if ( sChoiordFlag == "Y" ) {
- if ( sPrcpGenrFlag == "O" ) {
- sOrdDrId = model.getValue ( "/root/paminfo/list/orddrid" );
- } else {
- sOrdDrId = model.getValue ( "/root/paminfo/list/medispclid" );
- }
-
- sPreSpecDrId = model.getValue ( strSrc + "[" + sendRow + "]/specdrid"); // 기존 선택진료의
- if (sPreSpecDrId == "-") {
- sPreSpecDrId = "";
- }
- if (sPrcpClsCd == "D2" && (!isNull(sDrugMthdSpcCd) || sDrugMthdSpcCd != "-")) { // 병리처방은 검체 코드로 조회 한다.
- var sPrcpDd = model.getValue ( "/root/init/prcpdd" );
- //model.resetInstanceNode ( "/root/send" );
- model.resetInstanceNode ( "/root/spcdrinfo" );
-
- model.setValue( "/root/send/cond1", "G" ); //코드구분(S 수가코드, G 검체)
- model.setValue( "/root/send/cond2", sPrcpDd ); //처방일
- model.setValue( "/root/send/cond3", sDrugMthdSpcCd ); //검체코드
-
- if(!submit("TRMMO00144",false)){
- alert("병리검체 선택진료의사 조회시 에러가 발생 하였습니다. 전산실(6598)로 문의 하세요.");
- }
-
- sTodaySpcDrId = model.getValue ( "/root/spcdrinfo/info/todayspcdrid" ); // 오늘 선택진료의
- sAllSpcDrId = model.getValue ( "/root/spcdrinfo/info/allspcdrid" ); // 가능 선택진료의
- }
-
- if (isSearchString(sAllSpcDrId, sOrdDrId) ){ // 가능선택의에 진료의가 포함 될 경우
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", sOrdDrId);
- } else if( (prcpInptFlag == '02' || prcpInptFlag == '05') && !isNull(sPreSpecDrId) && isSearchString(sAllSpcDrId, sPreSpecDrId)) { // 약속처방 선택의가 가능선택의일 경우 약속처방 선택의 설정
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", sPreSpecDrId);
- } else {
- switch(sTodaySpcDrId) {
- case "NO_DATA_FOUND": // 오늘 선택진료의사가 없는경우
- if ( sAllSpcDrId == "NO_DATA_FOUND" ) { // 가능한 선택의가 없을경우
- if ( (prcpInptFlag == '02' || prcpInptFlag == '05') && !isNull(sPreSpecDrId) ) { // 약속처방의사가 있으면
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", sPreSpecDrId);
- } else if ( model.getValue ( pamInfoNode + "/specordyn" ) == "Y" ) { // 교수진료이고, 시행부서가 없거나 진료과랑 같으면 진료의로 설정
- if ( model.getValue ( pamInfoNode + "/orddeptcd") == model.getValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd")
- || model.getValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd") == ""
- || model.getValue ( strSrc + "[" + sendRow + "]/prcpexecdeptcd") == "-") {
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", sOrdDrId ); // 진료의를 선택의로 설정
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- }
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- }
- } else if (isSearchString(sAllSpcDrId, ",")) { // 가능의사가 2명 이상일경우
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- } else if (sAllSpcDrId == "ERROR") { // 가능의사 정보 조회시 에러
- alert("선택진료 가능의사 정보 조회시 에러가 발생 하였습니다. 전산실(6598)로 문의 하세요.");
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- } else { // 가능의사가 1명일 경우
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", sAllSpcDrId); // 가능의사 셋팅
- }
- break;
- case "TOO_MANY_ROWS": // 오늘 선택진료의사가 2명이상인경우
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- break;
-
- case "ERROR": // 오늘 선택진료의사정보를 가져오는중 에러
- alert("오늘 선택진료 의사정보 조회시 에러가 발생 하였습니다. 전산실(6598)로 문의 하세요.");
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- break;
-
- default: // 오늘 선택진료의사가 1명인경우
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", sTodaySpcDrId); // 오늘 선택진료의 설정
- break;
- }
- }
-
- sPrcpSpecDrId = model.getValue ( strSrc + "[" + sendRow + "]/specdrid")
- sChkSpecDrId = model.getValue("/root/init/specdrinfo/usercombo[userid = '" + sPrcpSpecDrId + "']/userid");
- if (isNull(sChkSpecDrId) && (sPrcpSpecDrId != sUserID) ) { // 진료의가 선택진료의와 같은경우 선택진료 가능여부 체크 하지 않도록 수정 2015.09.21 엄영만
- model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", "" );
- fChgChoiDr ( "auto", sendRow );
- }
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", "N" );
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", "-" );
- }
-
- //이은영 과장 요청 마취의 setting by sonjy 20081010 start
- if ( model.getValue ( "/root/anst/paramyn" ) == "Y" ) {
- if ( sPrcpClsCd == "I2" || sPrcpClsCd == "I4" ) {
- //마취의 ID가 있을 경우 만 setting
- if( !isNull( model.getValue ( "/root/anst/anst_drid") ) ){
- //특진처방 이나 의사가 특진의사가 아닌경우 일반진료처방으로 설정
- if( sChoiordFlag == "Y" ) {
- if( model.getValue ( "/root/anst/anst_specordflag") != "A" ){
- model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", "N" );
- }
- }
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", model.getValue ( "/root/anst/anst_drid") ) ;
- }
- }
- }
- //마취의 setting by sonjy 20081010 end
- //20110517_김영학 /선택진료 처방이지만 선택진료의가 비선택진료의 일 경우에는 선택진료여부를 기본값으로 변경한다.
- // 선택진료 체크가 되어 있으면서 의사가 비선택의사 일 경우에는 선택진료 여부를 -으로 처리한다.
- var sysMessageobj = getViewer("sysMessage");
- if (sChoiordFlag == "Y" ) {
- var chkChoiSpcldrid = model.getValue ( strSrc + "[" + sendRow + "]/specdrid" );
- var choiSpclDrid = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/usercombo[refseq = 'A' and userid ='" + chkChoiSpcldrid + "']/userid");
-
- if ( choiSpclDrid == null) {
- if(chkChoiSpcldrid == sUserID) {
- model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", "N" );
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", chkChoiSpcldrid );
- } else {
- model.setValue ( strSrc + "[" + sendRow + "]/specdrid", "-" );
- }
- }
- }
- //20110517 선택진료 처방이지만 선택진료의가 비선택진료의 일 경우에는 선택진료여부를 기본값으로 변경한다. END
- }
- /**
- * @desc : 서브밋 중인지 체크 함수
- * @param :
- * @return : 서브밋 중이면 true, 아니면 false
- * @authur : 엄영만 2011. 11. 16
- * @---------------------------------------------------
- */
- function fIsOnSubmit(){
- if(!isNull(gvOnSubmit)){
- return gvOnSubmit;
- } else {
- return false;
- }
- }
- /**
- * @desc : 처방화면 검색 Row 리턴 함수
- * @param :
- * @return : 처방화면의 검색 Row를 리턴 한다.
- * @authur : 엄영만 2012. 03. 26
- * @---------------------------------------------------
- */
- function fGetPrcpSrchRow(objFlag, strPrcpPath){
- var srchRow = 0;
- var prcpNodeList;
-
- if ( objFlag == "child") {
- prcpNodeList = opener.model.instances(0).selectNodes( strPrcpPath + "/prcplist" ); //dest Node에서 prcplist는 약속으로 하자.
- for ( i = destNodeList.length; i>0; i-- ){
- if(opener.model.getValue ( strPrcpPath + "/prcplist[" + i + "]" ) == "S") {
- srchRow = i;
- break;
- }
- }
- } else {
- prcpNodeList = model.instances(0).selectNodes( strPrcpPath + "/prcplist" );
-
- for ( i = destNodeList.length; i>0; i-- ){
- if(model.getValue ( strPrcpPath + "/prcplist[" + i + "]" ) == "S") {
- srchRow = i;
- break;
- }
- }
- }
- if(srchRow < 1) {
- if(prcpNodeList.length == 0)
- srchRow = 1;
- else
- srchRow = prcpNodeList.length+1;
- }
-
- return srchRow;
- }
- /**
- * @desc : 전처방검색
- * @param : pid: 환자ID
- : orddd: 외래:진료일, 입원:입원일
- : prcpdd: 처방일
- : bfflag: 전처방 where 조건 구분자
- : initflag: 최초구분
- : orddrid: 의사ID,외래에서만 필요하다.
- : todd
- : prcpgenrflag: 외래입원구분
- : orddeptcd: 부서코드
- : cretno: 원무생성번호
- : ioflag: 외래, 입원, 응급 구분
- : refreshFlag: refresh 여부
- : followup: 퇴원후 외래처방일과 동일한 처방일이거나 initsrch 와 동일한 날짜가 있을 경우 followdd를 입력한다.
- : bfprcpviewflag : 전처방 조회 조건 개인별 설정기능 추가 by sonjy 20091120
- * @return : void
- * @authur : 마정민 2007. 6. 21
- */
- function fBfPrcpSrchCom_New ( pid, orddd, prcpdd, bfflag, initflag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, trnm, refreshFlag, prcpauthflag, followup , bfprcpviewflag) {
- if ( isNull(trnm)) {
- trnm = "TRMMO00100";
- }
- if ( isNull(refreshFlag)) {
- refreshFlag = false;
- }
- if ( isNull(prcpauthflag)) {
- prcpauthflag = "0";
- }
- var curprcpdd = opener.model.getValue ( "/root/init/prcpdd" );
- if (isNull(curprcpdd)) {
- curprcpdd = model.getValue ( "/root/init/prcpdd" );
- if (isNull(curprcpdd)){
- curprcpdd = getCurrentDate();
- }
- }
-
- var oprsrvno = "";
- if (!isNull(opener.model.getValue ( "/root/operation/list/oprsrvno"))) {
- orddd = opener.model.getValue ( "/root/operation/list/oprsrvno");
- if (opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ) == "O"){
- prcpgenrflag = "OUTOP";
- } else {
- prcpgenrflag = "OP";
- }
- } else if (!isNull(model.getValue ( "/root/operation/list/oprsrvno"))) {
- orddd = model.getValue ( "/root/operation/list/oprsrvno");
- if (model.getValue ( "/root/patflag/list/prcpgenrflag" ) == "O"){
- prcpgenrflag = "OUTOP";
- } else {
- prcpgenrflag = "OP";
- }
- }
-
- model.setValue ( "/root/send/cond1", pid); //환자ID
- model.setValue ( "/root/send/cond2", orddd ); //외래:진료일, 입원:입원일
- model.setValue ( "/root/send/cond3", prcpauthflag ); //처방권한 구분
- model.setValue ( "/root/send/cond4", prcpdd ); //처방일자
- model.setValue ( "/root/send/cond5", bfflag ); //전처방 where 조건 구분자
- model.setValue ( "/root/send/cond6", initflag ); //최초구분
- model.setValue ( "/root/send/cond7", orddrid); //의사ID,외래에서만 필요하다.
- model.setValue ( "/root/send/cond8", todd); //todd
- model.setValue ( "/root/send/cond9", prcpgenrflag ); //외래입원구분
- model.setValue ( "/root/send/cond10", orddeptcd ); //부서코드
- model.setValue ( "/root/send/cond11", cretno ); //생성번호
- model.makeValue( "/root/send/cond14", curprcpdd );
- if (!isNull(followup)){
- model.makeValue( "/root/send/cond12", "followup" ); //외래follow up
- }
-
- var insukind = opener.model.getValue ( "/root/paminfo/list/insukind");
- if (isNull(insukind)) insukind = model.getValue ( "/root/paminfo/list/insukind");
- if (!isNull(insukind)){
- model.makeValue( "/root/send/cond13", insukind ); //외래follow up
- }
- model.setValue ( "/root/send/cond99", "getBfPrcpSrchInfo" );//검색구분
-
- opener.ivw_prcp3.src = "SMMMO02100_전회처방.xrw";
-
- //by sonjy 전처방 조회모드 설정 20091120
- if( bfflag == "bfprcp" || bfflag == "addprcp" ){
- if(!isNull(bfprcpviewflag) ) model.makeValue( "/root/send/bfprcpviewflag",bfprcpviewflag);
- }
- if ( refreshFlag == false ) {
- copyNodeset("root/prcpsrch/prcplist", "root/savertninfo/prcplist", "replace", opener.ivw_prcp3.model, model)
- } else {
- copyNodeset("root/prcpsrch/prcplist", "root/savertninfo/prcplist", "replace", opener.ivw_prcp3.model, model)
- }
- //CP일 경우, viewer안의 컨트롤 height 사이즈를 모두 조정해야 함 (2008.08.28 JJE)
- if ( opener.model.getValue ( "/root/cp" ) == "Y" ) {
- opener.window.javascript.fResizeControls();
- }
- }
- /**
- * @desc : 인증 암호화 전 데이터 생성
- * @param : sFlag: 인증정보 구분 ("1":처방정보, "2":진단정보)
- : sRegpath : 접수정보 인스턴스노드 패스
- : sSrcPath : 정보 인스턴스노드 패스
- * @return : void
- * @authur : 엄영만 2013. 05. 29
- */
- function getSignBfConts (sFlag, sRegpath, sSrcPath) {
- var sRtn = "";
-
- var sRegConts = ""; // 환자 등록정보
- var sSrcConts = ""; // 처방및 진단 암호화전 데이터
-
- var regNodeList = model.instances(0).selectNodes(sRegpath);
- var srcNodeList = model.instances(0).selectNodes(sSrcPath);
- if ( !regNodeList.length > 0 || !srcNodeList.length > 0) { return sRtn; }
-
- var sOrdType = model.getValue( sRegpath + "/ioflag");
-
- sRegConts = "$환자진료정보";
- sRegConts = sRegConts + "@등록번호:" + model.getValue( sRegpath + "/pid");
- sRegConts = sRegConts + "@이름:" + model.getValue( sRegpath + "/hngnm");
- sRegConts = sRegConts + "@성별/나이:" + model.getValue( sRegpath + "/sex") + "/" + model.getValue( sRegpath + "/age");
- sRegConts = sRegConts + "@진료과:" + model.getValue( sRegpath + "/orddeptnm") + "(" + model.getValue( sRegpath + "/orddeptcd") + ")";
-
- if ("O" == sOrdType || "S" == sOrdType) { // 외래
- sRegConts = sRegConts + "@진료의:" + model.getValue( sRegpath + "/orddrnm") + "(" + model.getValue( sRegpath + "/orddrid") + ")";
- sRegConts = sRegConts + "@진료일자:" + model.getValue( sRegpath + "/orddd").toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일");
- } else { // 입원
- sRegConts = sRegConts + "@진료의:" + model.getValue( sRegpath + "/orddrnm") + "(" + model.getValue( sRegpath + "/medispclid") + ")";
- sRegConts = sRegConts + "@입원일자:" + model.getValue( sRegpath + "/indd").toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일");
- }
-
- switch (sFlag) {
- case "1": // 처방정보
- var sStatus = "";
- var sPrcpflag = "";
- var sPrcpclscd = "";
- var sPrcpdd = "";
- sSrcConts = "$환자처방정보";
- for(var i = 1; i <= srcNodeList.length; i++) {
- sStatus = model.getValue( sSrcPath + "[" + i + "]/status");
- sPrcpflag = model.getValue( sSrcPath + "[" + i + "]/prcpflag");
- sPrcpclscd = model.getValue( sSrcPath + "[" + i + "]/prcpclscd");
- sPrcpdd = model.getValue( sSrcPath + "[" + i + "]/prcppkspec").substring(0,8);
-
- // 20100210 한재상 수정 - 사망환자 사망등록이후 처방시 처방일자를 사망일자로 변경
- if ("I" == sOrdType || "E" == sOrdType || "D" == sOrdType) {
- if ("I" == sStatus || "-" == sStatus || "U" == sStatus) {
- var sDethdd = model.getValue( sRegpath + "/dethdt"); // 사망일자 설정
- if(sDethdd.length >= 8 && sPrcpdd > sDethdd ) {
- sPrcpdd = sDethdd;
- }
- }
- }
- if ("I" == sStatus) { sSrcConts = sSrcConts + "@처리구분:신규"; }
- else if ("-" == sStatus) { sSrcConts = sSrcConts + "@처리구분:신규"; } // 임시저장후 인증저장
- else if ("U" == sStatus) { sSrcConts = sSrcConts + "@처리구분:신규"; } // 임시저장후 수정 인증저장
- else if ("D" == sStatus) { sSrcConts = sSrcConts + "@처리구분:DC(임시저장)"; } // 임시저장후 DC
- else if ("C" == sStatus) { sSrcConts = sSrcConts + "@처리구분:DC"; }
- else if ("S" == sStatus) {
- if ("O" == model.getValue( sSrcPath + "[" + i + "]/prcphistcd")) { sSrcConts = sSrcConts + "@처리구분:후인증"; }
- else if ("D" == model.getValue( sSrcPath + "[" + i + "]/prcphistcd")) { sSrcConts = sSrcConts + "@처리구분:DC 후인증"; }
- } else { continue; }
- if ("1" == sPrcpflag) { sSrcConts = sSrcConts + "@처방구분:수가"; }
- else if ("2" == sPrcpflag) { sSrcConts = sSrcConts + "@처방구분:지시"; }
- else if ("3" == sPrcpflag) { sSrcConts = sSrcConts + "@처방구분:식사"; }
- else { continue; }
- sSrcConts = sSrcConts + "@처방일자:" + sPrcpdd.toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일");
- sSrcConts = sSrcConts + "@처방코드:" + model.getValue( sSrcPath + "[" + i + "]/prcpcd");
- sSrcConts = sSrcConts + "@처방명:" + model.getValue( sSrcPath + "[" + i + "]/prcpnm");
- sSrcConts = sSrcConts + "@처방내역:" + model.getValue( sSrcPath + "[" + i + "]/prcpqty") + " * #" + model.getValue( sSrcPath + "[" + i + "]/prcptims") + " * " + model.getValue( sSrcPath + "[" + i + "]/prcpdayno");
-
- if ("1" == sPrcpflag && "A" == sPrcpclscd.substring(0,1)) { // 복용방법, 비율처방
- sSrcConts = sSrcConts + "@복용방법:" + model.getValue( sSrcPath + "[" + i + "]/drugmthdspccdnm") + "(" + model.getValue( sSrcPath + "[" + i + "]/drugmthdspccd") + ")";
- if ( "-" != model.getValue( sSrcPath + "[" + i + "]/drugrateqty")) {
- sSrcConts = sSrcConts + "@투여비율적용:" + model.getValue( sSrcPath + "[" + i + "]/drugrateqty").replaceAll("\\|", ",");
- }
- }
-
- if ("1" == sPrcpflag && ( "B" == sPrcpclscd.substring(0,1) || "D2" == sPrcpclscd)) { // 진단검사, 병리 검체명
- sSrcConts = sSrcConts + "@검체:" + model.getValue( sSrcPath + "[" + i + "]/drugmthdspccdnm") + "(" + model.getValue( sSrcPath + "[" + i + "]/drugmthdspccd") + ")";
- }
- sSrcConts = sSrcConts + "@전달사항:" + model.getValue( sSrcPath + "[" + i + "]/prcpdelivefact");
-
- if ("1" == sPrcpflag && "C2" == sPrcpclscd) { // 임상소견
- sSrcConts = sSrcConts + "@임상소견:" + model.getValue( sSrcPath + "[" + i + "]/clinccmtcnts")
- }
-
- if ("I" == sStatus || "-" == sStatus || "U" == sStatus) {
- sSrcConts = sSrcConts + "@등록일시:" + new Date().getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@등록자:" + getUserInfo("usernm") + "(" + getUserInfo("userid") + ")";
- } else {
- sSrcConts = sSrcConts + "@수정일시:" + new Date().getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@수정자:" + getUserInfo("usernm") + "(" + getUserInfo("userid") + ")";
- }
- }
- break;
-
- case "2": // 진단정보
- var sStatus = "";
- var sDiagKindcd = "";
- var sDiagKindcdFlag = "";
- var sDiagHistCd = "";
-
- sSrcConts = "$환자진단정보";
- for(var i = 1; i <= srcNodeList.length; i++) {
- sStatus = model.getValue( sSrcPath + "[" + i + "]/status");
- sDiagKindcd = model.getValue( sSrcPath + "[" + i + "]/diagkindcd");
- sDiagKindcdFlag = model.getValue( sSrcPath + "[" + i + "]/diagkindcdflag");
- sDiagHistCd = model.getValue( sSrcPath + "[" + i + "]/diaghistcd");
- if ("I" == sStatus) { sSrcConts = sSrcConts + "@처리구분:신규"; }
- else if ("T" == sStatus) { sSrcConts = sSrcConts + "@처리구분:신규"; } // 임시저장후 인증저장
- else if ("U" == sStatus) {
- if ("T" == sDiagHistCd) { sSrcConts = sSrcConts + "@처리구분:신규"; // 임시저장후 수정 인증저장
- } else { sSrcConts = sSrcConts + "@처리구분:수정"; }
- }
- else if ("D" == sStatus) { sSrcConts = sSrcConts + "@처리구분:삭제"; }
- else if ("S" == sStatus) { continue } // 검색
- else { continue; }
-
- if ("C" == sDiagKindcd) { sSrcConts = sSrcConts + "@종류:확정"; }
- else if ("R" == sDiagKindcd) { sSrcConts = sSrcConts + "@종류:R/O"; }
- else { continue; }
-
- if ("M" == sDiagKindcdFlag) { sSrcConts = sSrcConts + "@주부구분:주"; }
- else if("S" == sDiagKindcdFlag) { sSrcConts = sSrcConts + "@주부구분:부"; }
- else { continue; }
-
- sSrcConts = sSrcConts + "@진단코드:" + model.getValue( sSrcPath + "[" + i + "]/diagcd");
- sSrcConts = sSrcConts + "@진단영문명:" + model.getValue( sSrcPath + "[" + i + "]/diagengnm");
- sSrcConts = sSrcConts + "@진단한글명:" + model.getValue( sSrcPath + "[" + i + "]/diaghngnm");
-
- if ("I" == sStatus || "T" == sStatus || ("U" == sStatus && "T" == sDiagHistCd)) {
- sSrcConts = sSrcConts + "@등록일시:" + new Date().getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@등록자:" + getUserInfo("usernm") + "(" + getUserInfo("userid") + ")";
- } else {
- sSrcConts = sSrcConts + "@수정일시:" + new Date().getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@수정자:" + getUserInfo("usernm") + "(" + getUserInfo("userid") + ")";
- }
- }
- break;
-
- default:
- break;
- }
-
- if( sSrcConts != "$환자처방정보" && sSrcConts != "$환자진단정보" ) { // 저장할 처방 또는 진단정보가 있을경우만 리턴
- sRtn = sRegConts + sSrcConts;
- }
-
- return sRtn;
- }
- /**
- * @desc : 속도체크를 위한 모니터링 로그 데이터 생성.
- * @param : sType: 모니터링 타입값
- : sItem01 ~ sItem20 : 모니터링 필드값
- * @return : void
- * @authur : 엄영만 2013. 06. 27
- */
- function reqSetMonitoringLog (sType, sItem01, sItem02, sItem03, sItem04, sItem05, sItem06, sItem07, sItem08, sItem09, sItem10, sItem11, sItem12, sItem13, sItem14, sItem15, sItem16, sItem17, sItem18, sItem19, sItem20) {
-
- try {
- if(isNull(sType)) { if (0 == sType ) sType = sType.toString(); else sType = "-"; }
- if(isNull(sItem01)) { if (0 == sItem01) sItem01 = sItem01.toString(); else sItem01 = "-"; }
- if(isNull(sItem02)) { if (0 == sItem02) sItem02 = sItem02.toString(); else sItem02 = "-"; }
- if(isNull(sItem03)) { if (0 == sItem03) sItem03 = sItem03.toString(); else sItem03 = "-"; }
- if(isNull(sItem04)) { if (0 == sItem04) sItem04 = sItem04.toString(); else sItem04 = "-"; }
- if(isNull(sItem05)) { if (0 == sItem05) sItem05 = sItem05.toString(); else sItem05 = "-"; }
- if(isNull(sItem06)) { if (0 == sItem06) sItem06 = sItem06.toString(); else sItem06 = "-"; }
- if(isNull(sItem07)) { if (0 == sItem07) sItem07 = sItem07.toString(); else sItem07 = "-"; }
- if(isNull(sItem08)) { if (0 == sItem08) sItem08 = sItem08.toString(); else sItem08 = "-"; }
- if(isNull(sItem09)) { if (0 == sItem09) sItem09 = sItem09.toString(); else sItem09 = "-"; }
- if(isNull(sItem10)) { if (0 == sItem10) sItem10 = sItem10.toString(); else sItem10 = "-"; }
- if(isNull(sItem11)) { if (0 == sItem11) sItem11 = sItem11.toString(); else sItem11 = "-"; }
- if(isNull(sItem12)) { if (0 == sItem12) sItem12 = sItem12.toString(); else sItem12 = "-"; }
- if(isNull(sItem13)) { if (0 == sItem13) sItem13 = sItem13.toString(); else sItem13 = "-"; }
- if(isNull(sItem14)) { if (0 == sItem14) sItem14 = sItem14.toString(); else sItem14 = "-"; }
- if(isNull(sItem15)) { if (0 == sItem15) sItem15 = sItem15.toString(); else sItem15 = "-"; }
- if(isNull(sItem16)) { if (0 == sItem16) sItem16 = sItem16.toString(); else sItem16 = "-"; }
- if(isNull(sItem17)) { if (0 == sItem17) sItem17 = sItem17.toString(); else sItem17 = "-"; }
- if(isNull(sItem18)) { if (0 == sItem18) sItem18 = sItem18.toString(); else sItem18 = "-"; }
- if(isNull(sItem19)) { if (0 == sItem19) sItem19 = sItem19.toString(); else sItem19 = "-"; }
- if(isNull(sItem20)) { if (0 == sItem20) sItem20 = sItem20.toString(); else sItem20 = "-"; }
-
- model.removeNodeSet("/root/monitoringlog/reqdata");
- model.makeValue("/root/monitoringlog/reqdata/type", sType);
- model.makeValue("/root/monitoringlog/reqdata/item01", sItem01);
- model.makeValue("/root/monitoringlog/reqdata/item02", sItem02);
- model.makeValue("/root/monitoringlog/reqdata/item03", sItem03);
- model.makeValue("/root/monitoringlog/reqdata/item04", sItem04);
- model.makeValue("/root/monitoringlog/reqdata/item05", sItem05);
- model.makeValue("/root/monitoringlog/reqdata/item06", sItem06);
- model.makeValue("/root/monitoringlog/reqdata/item07", sItem07);
- model.makeValue("/root/monitoringlog/reqdata/item08", sItem08);
- model.makeValue("/root/monitoringlog/reqdata/item09", sItem09);
- model.makeValue("/root/monitoringlog/reqdata/item10", sItem10);
- model.makeValue("/root/monitoringlog/reqdata/item11", sItem11);
- model.makeValue("/root/monitoringlog/reqdata/item12", sItem12);
- model.makeValue("/root/monitoringlog/reqdata/item13", sItem13);
- model.makeValue("/root/monitoringlog/reqdata/item14", sItem14);
- model.makeValue("/root/monitoringlog/reqdata/item15", sItem15);
- model.makeValue("/root/monitoringlog/reqdata/item16", sItem16);
- model.makeValue("/root/monitoringlog/reqdata/item17", sItem17);
- model.makeValue("/root/monitoringlog/reqdata/item18", sItem18);
- model.makeValue("/root/monitoringlog/reqdata/item19", sItem19);
- model.makeValue("/root/monitoringlog/reqdata/item20", sItem20);
-
- if (document.all("TXMMO00120") != null) {
- submit("TXMMO00120",false);
- }
- } catch(err) {
- messageBox ( "reqSetMonitoringLog() 실행 중 오류가 발생 하였습니다.", "E999" );
- }
- }
- /**
- * @---------------------------------------------------
- * @desc : StringBuffer 관련 추가 2013.07.16 엄영만
- * @use it : var sb = new StringBuffer();
- sb.append("Hello ");
- sb.append("Java");
- sb.append("script!");
- document.write(sb.toString());
- * @---------------------------------------------------
- */
- function StringBuffer() { this.buffer = []; }
- StringBuffer.prototype.append = function(str) {
- if (isNull(str)) { str = ""; }
- this.buffer.push(str);
- return this;
- }
- StringBuffer.prototype.toString = function(str) {
- if (isNull(str)) { str = ""; }
- return this.buffer.join(str);
- }
- /**
- * 프로그레스바 생성
- * @param msg
- * @return
- */
- function createLoadingWindow(sMsg, nLeft, nTop){
- body.createChild("xforms:iviewer", "id:ivr_progress; src:../../../com/commonweb/xrw/SPZZZ00400_로딩중화면.xrw; left:"+nLeft+"px; top:"+nTop+"px; width:330px; height:120px;");
- var ivrObjt = document.all("ivr_progress");
- ivrObjt.model.setValue("/root/main/msg", sMsg);
- ivrObjt.model.refresh();
- }
- /**
- * 프로그레스바 삭제
- * @return
- */
- function removeLoadingWindow(){
- body.removeChild("ivr_progress");
- }
|