123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************************
- * System Name :
- * Job Name : EMR
- * File Name : MMO001.xjs
- * Creator : 이호성
- * Make Date : 2014.03.03
- *
- * Description : 진료 공통 메서드
- *--------------------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *--------------------------------------------------------------------------------------------------
- *
- ***************************************************************************************************/
-
-
- include "emr_prcpmngtxp::MMOCommon.xjs";
-
- //=======================================================================================
- // Global Form Variable
- //---------------------------------------------------------------------------------------
- var prcpnmCol = 5; //처방명 컬럼 index
- var prcpcdCol = 4; //처방명 컬럼 index
- var diagnmCol = 4; //처방명 컬럼 index
- var icd10cdCol = 3; //처방명 컬럼 index
- var signyn = "Y"; //전자서명 사용하는 check 서버 에러시 N으로 수정
- var volflag = "time"; //1일 총용량 구분
- //var lv_sLglydisprcpyn = "N"; //제한항생제 저장
- var gridprcpsrchflag = "N"; //그리드 처방검색에서 앤터로 처방 넘겨줄때 검색이 다시 타는 것을 막음
- // var lgds_arrEssentialDsList = ["ds_data_paminfo", "ds_data_prcpdc", "ds_grid_diaglist", "ds_data_prcper", "ds_temp_ocrbldyn"
- // ,"ds_data_saveetcchklist", "ds_data_prcperlist", "ds_data_atadinfo", "ds_temp_geneunitlist"
- // ];
- /***************************************************************************************************
- * Function : lf_getFormObject
- * Description : TF는 XP와 다르게 팝업만 opener을 가지고 div는 opener가 없다(TF는 둘다 opener)
- 그래서 div인 경우 oOpener을 각화면 마다 만들어서 사용했다.
- 이때 TF는 소스가 항상 opener라 상관없었지만 XP는 구분을 해야 하므로
- 공통 함수를 하나 둬서 항상 구별 하여 가져올 수 있도록 하였다.
- (처방을 form_bottom 에서 띄우는 경우 frmf_checkOpener()으로는 제대로 처리를 할 수 없어서
- 우선은 oOpener이 선언 되지 않은 곳에서는 opener을 가져오도록 함)
- * Argument : flag [String : 화면 종류 구분]
- * return type : form에 대한 객체
- * Creator : 김상목
- ***************************************************************************************************/
- function lf_getFormObject(flag) {
- // var obj;
- // if(flag == "child" || flag == "pop"){// || utlf_isNull(flag)) {
- // try {
- // obj = oOpener;
- // } catch (e) {
- // obj = opener;
- // }
- // } else {
- // obj = this;
- // }
-
- return (flag == "child" || flag == "pop") ? (frmf_checkOpener() ? opener : oOpener) : this;
- }
- /***************************************************************************************************
- * Function : emr_getOrderBaseInfo
- * Description : 아이디에 해당하는 기초정보를 리턴한다. (시스템메세지 정보 조회)
- * Argument : sID [String : 데이타셋명(ds_를 제외한)]
- * : objSrcDs [Dataset : 리턴 데이타를 받을 데이타셋]
- * return type : [Dataset : 기초정보를 리턴]
- * Creator :
- * 변환 OK
- ***************************************************************************************************/
- function emr_getOrderBaseInfo(sID, objSrcDs)
- {
- var oDescDs = agv_objAppTopPath.form.dv_orderbasicinfo.lf_getOrderBaseInfo(sID);
- if (utlf_isNull(objSrcDs)) {
- return oDescDs;
- }
- else {
- objSrcDs.copyData(oDescDs, true);
- }
- }
- /***************************************************************************************************
- * Function : lf_addPrcp
- * Description : check 된 Source Node의 값을 목적지에 Append Node 한다.(처방검색)
- * Argument : 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 type :
- * Creator :
- * 변환 OK
- ***************************************************************************************************/
-
- function lf_addPrcp(sObjFlag, strSrc, strDest, sMultiFlag, sCheckNM, sCheckFlag, grdObj, sPrcpNmClearFlag, sCopyInptFlag, objInitDs)
- {
- var sRTC = "ds_temp_rtc_codeinfo"; // 처방복사 실시간 체크(RealTimeCheck)변수 노드 경로
- dsf_createDs(sRTC);
- // 추후 작업 완료 후 try catch 주석 풀어야 함 확인필요
- //try {
- // if (document.all("TRMMO00151") == null ) {
- // lf_addPrcp_Web(objFlag, strSrc, strDest, multiFlag, checkNM, checkFlag, grdObj, prcpNmClearFlag, sCopyInptFlag);
- // } else {
- ds_TRMMO00151.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
- ds_TRMMO00151.setColumn(0, "hardcdno", "435"); // 복사시 실시간 체크를 위한 하드코드 그룹
- ds_TRMMO00151.setColumn(0, "prcpdd", utlf_getCurrentDate()); // 적용일자
-
- var oParam = {};
- oParam.id = "TRMMO00151";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetGroupHardCode";
- oParam.inds = "req=ds_TRMMO00151";
- oParam.outds = sRTC + "=codeinfo";
- oParam.async = false;
- tranf_submit(oParam); // 처방복사 실시간 체크(RealTimeCheck)변수 설정
-
- var ds_codeinfo = this.objects[sRTC];
- var sNewLogic = ds_codeinfo.lookup("hardcdno", '436', "trgtcd"); // 신규로직 적용여부
- var sScreenID = frmf_getScreenID();
- var sUserID = sysf_getUserInfo("userid");
-
- var findRow437 = ds_codeinfo.findRowExpr("hardcdno == '437' && trgtcd == '" + sCopyInptFlag + "'");
- var findRow438 = ds_codeinfo.findRowExpr("hardcdno == '438' && trgtcd == '" + sScreenID + "'");
- var findRow439 = ds_codeinfo.findRowExpr("hardcdno == '439' && trgtcd == '" + sUserID + "'");
-
- var data437 = (findRow437 == -1) ? "" : ds_codeinfo.getColumn(findRow437, "trgtcd");
- var data438 = (findRow438 == -1) ? "" : ds_codeinfo.getColumn(findRow438, "trgtcd");
- var data439 = (findRow439 == -1) ? "" : ds_codeinfo.getColumn(findRow439, "trgtcd");
- if(sNewLogic == "Y") { // Y 이면 아래에 코드는 제외 조건으로 처리 한다. CP 제외 (CP 적용버튼 클릭시 수정해야함.)
- if (utlf_isNull(data437) && utlf_isNull(data438)) {
- lf_addPrcp_App(sObjFlag, strSrc, strDest, sMultiFlag, sCheckNM, sCheckFlag, grdObj, sPrcpNmClearFlag, sCopyInptFlag);
- } else {
- lf_addPrcp_Web(sObjFlag, strSrc, strDest, sMultiFlag, sCheckNM, sCheckFlag, grdObj, sPrcpNmClearFlag, sCopyInptFlag);
- }
- } else if (sNewLogic == "S" && !utlf_isNull(data437) && !utlf_isNull(data438) && !utlf_isNull(data439) ) {
- lf_addPrcp_App(sObjFlag, strSrc, strDest, sMultiFlag, sCheckNM, sCheckFlag, grdObj, sPrcpNmClearFlag, sCopyInptFlag);
- } else {
- lf_addPrcp_Web(sObjFlag, strSrc, strDest, sMultiFlag, sCheckNM, sCheckFlag, grdObj, sPrcpNmClearFlag, sCopyInptFlag);
- }
- //}
- //} catch(err) {
- // sysf_messageBox ( "addPrcp() 실행 중 오류가 발생 하였습니다. 전산실(6598)로 연락 부탁드립니다.", "E" );
- // } finally {
- dsf_deleteDs(sRTC);
- //}
- }
- // function lf_srchModiRow(objDestDS, sObjFlag){
- // var nSrchRow = 0;
- //
- // nSrchRow = objDestDS.findRow("status", "S");
- //
- // if (nSrchRow < 1) {
- // nSrchRow = 0;
- // }
- // return nSrchRow;
- // }
- /**
- * @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
- * 변환OK
- * @---------------------------------------------------
- */
- function lf_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 = frmf_getScreenID(); // 호출 화면 아이디
- var sRowKey = ""; // sRowKey
- var sCopykeys = "";
- var sCopyIoFlag = "";
- var sBfGenrFlag = "";
- var sNowGenrFlag = "";
-
- // 소스노드의 Key값을 생성한다. 2013.07.05 엄영만
- var ds_src = this.objects[strSrc];
-
- //var srcNodeList = model.instances(0).selectNodes(strSrc); //or instance1.selectNodes(strSrc)
- if ( multiFlag == "Y" ){
- var sb = new StringBuffer();
-
- for( var i = 0; i < ds_src.rowcount; i++ ) {
- if ( ds_src.getColumn(i, checkNM) == checkFlag ) {
- sRowKey = ds_src.getColumn(i, "rowkey");
-
- if(utlf_isNull(sRowKey)) {
- continue;
- } else {
- if(sCopyInptFlag == "01") { // 전처방 조회 일때 외래/입원구분
- sNowGenrFlag = ds_src.getColumn(i, "prcpgenrflag");
- if (nCopyCnt == 0) {
- sBfGenrFlag = sNowGenrFlag;
- if (sNowGenrFlag == "O" || sNowGenrFlag == "S") { // 입원 외래 처방 구분
- sCopyIoFlag = "O";
- } else {
- sCopyIoFlag = "I";
- }
- } else { // 퇴원 후 외래 처방과 동시 복사 블러킹
- if (sBfGenrFlag != sNowGenrFlag) {
- sysf_messageBox ( "퇴원후 외래 처방과 입원 처방을 동시에 복사 하실 수 없습니다.", "I999" );
- return;
- }
- }
- }
- sb.append("'" + sRowKey + "'");
- nCopyCnt++;
- }
- }
- }
- sCopykeys = sb.toString(",");
- } else {
- sRowKey = ds_src.getColumn(ds_src.rowposition, "rowkey");
- if(utlf_isNull(sRowKey)) {
- return 0;
- } else {
- sCopykeys = "'" + sRowKey + "'";
- if (sCopyInptFlag == "01") { // 전처방 조회 일때 외래/입원구분
- sCopyIoFlag = ds_src.getColumn(ds_src.rowposition, "prcpgenrflag");
- if (sCopyIoFlag == "O" || sCopyIoFlag == "S") { // 입원 외래 처방 구분
- sCopyIoFlag = "O";
- } else {
- sCopyIoFlag = "I";
- }
- }
- nCopyCnt = 1;
- }
- }
- if(utlf_isNull(sCopykeys)){ // 조회할 코드가 있을경우에만 실행하도록 수정함.
- return 0;
- }
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step1Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
-
- var oTrgtObj = lf_getFormObject(objFlag);
- var ds_dest = oTrgtObj.objects[strDest];
-
- // 처리 속도 향상을 위해 잠시 데이타셋 이벤트 끔
- // -----------------------------------------------------------------------------------------
- lf_setDatasetEvent(ds_src, ds_dest, false);
- oTrgtObj.lf_addPrcpDetl_App(strDest, sCopyInptFlag, sScreenID, sCopykeys, sCopyIoFlag);
- endStepDate = new Date(); // 각 업부 종료후 시간
- step2Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
-
- nSrchRow = ds_dest.rowcount - 1;
-
- lf_hosinPrcpResnChk (objFlag, ds_dest );
-
- // 처리 후 속도 향상을 위해 꺼뒀던 데이타셋 이벤트 다시 켬
- lf_setDatasetEvent(ds_src, ds_dest, true);
- // -----------------------------------------------------------------------------------------
-
- lf_focusMain( nSrchRow, objFlag, prcpNmClearFlag);
-
- //KNUH, 약속처방 복사 시 치식 팝업이 한번만 뜨고 다른 치과처방에 동일하게 적용되도록 함. 처방복사가 완료되면 임시 instance는 제거함. (2011.03.28 JJE)
- oTrgtObj.dsf_deleteDs("ds_main_toot_prcp");
-
- // 20080925 항생제 추가 시는 그리드 editting을 위해 색 변경 로직 생략 by MoonSH
- //var cdssFlag = frmf_getParameter( "SPMMD01600_flag");
- frmf_clearParameter( "SPMMD01600_flag", "");
- // if (cdssFlag != "Y") {
- // fPrcpColor(objFlag);
- // }
- if ( objFlag != "child") {
- if( ds_root.getColumn(0, "cp" ) == "Y" ){
- if (prtlprcpstatus_SMMMO00110 != "U" ) {
- div_all.div_srch.visible = false;
- }
- }else{
- div_all.div_srch.visible = false;
- }
- }
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step3Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- // 속도체크 모니터링 로그 추가 2013.06.27 엄영만
- oTrgtObj.reqSetMonitoringLog("PrcpCopy", "APP", sScreenID, objFlag, sCopyInptFlag, multiFlag, prcpNmClearFlag, nCopyCnt, step1Elapsed+step2Elapsed+step3Elapsed, step1Elapsed, step2Elapsed, step3Elapsed);
- }
- /***************************************************************************************************
- * Function : lf_appendChildPrcp
- * Description : 소스노드를 목적지 노드에 append 하는 기능
- * Argument : strSrc => 소스 노드
- * : strDest => 목적지 노드
- * : flag => 같은화면에서 사용하는지 child에서 사용하는지
- * : autocheck => 자동체크하려면 체크벨류를 넣는다.
- * return type :
- * Creator :
- * Modifier :
- * 변환 OK
- ***************************************************************************************************/
- function lf_appendChildPrcp(strSrc, strDest, flag, autocheck) {
- var oDatasetSrc = this.objects[strSrc];
-
- if(utlf_isNull(flag)) flag = "child";
-
- var oTrgtObj = lf_getFormObject(flag);
- //* ---2007.11.12 (CP에서 미래처방을 수정하는 경우, 처방상세팝업에서 리턴 받은 값의 상태를 바꾼다) --- *//
- if(frmf_checkOpener() && !utlf_isNull(oTrgtObj.ds_root) && oTrgtObj.ds_root.getColumn(0, "cp") == "D") {
- if (oDatasetSrc.name == "ds_reset_prcplist"){
- return;
- } else {
- if (!utlf_isNull(oDatasetSrc.getColumn(0, "status"))) {
- oDatasetSrc.setColumn(0, "status", oTrgtObj.ds_temp.getColumn(0, "mstatus"));
- }
- }
- }
- //* --- End --- *//
- var oDatasetDest = oTrgtObj.objects[strDest];
- if (!utlf_isNull(autocheck)) {
- for (var i = 0; i < oDatasetSrc.rowcount; i++) {
- oDatasetSrc.setColumn(i, "status", autocheck);
- }
- }
-
- oDatasetDest.appendData(oDatasetSrc, true);
- }
- /***************************************************************************************************
- * Function : lf_makePrcpNm
- * Description : 처방내역만들기
- * Argument : strSrc [Dataset : 처리할 대상 데이타셋]
- * : nRow [Number : 대상 row]
- * : sSubOrdDeptCd [String : ]
- * return type : Dataset에 값 설정
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_makePrcpNm(strSrc, nRow)
- {
- var ds_src = this.objects[strSrc];
-
- if ( ds_src.getColumn(nRow, "status") == "S" ) return;
- if ( ds_src.getColumn(nRow, "prcpflag") == "2" ) return;
- var prcpnmbf = "";
- var prcpnmaft = "";
- var opansflagcd = "";
- var prcpclscd = ds_src.getColumn(nRow, "prcpclscd"); //처방종류
- var prcpcd = ds_src.getColumn(nRow, "prcpcd"); //처방코드
- var prcpnm = ds_src.getColumn(nRow, "orgprcpnm"); //처방명
- var clincstdyflag = ds_src.getColumn(nRow, "clincstdyflag"); //임상연구
- var erprcpflag = ds_src.getColumn(nRow, "erprcpflag"); //응급구분
- var prnprcpflag = ds_src.getColumn(nRow, "prnprcpflag"); //prn
- var prepprcpflag = ds_src.getColumn(nRow, "prepprcpflag"); //prep
- var selfdrugflag = ds_src.getColumn(nRow, "selfdrugflag"); //self
- var powdflag = ds_src.getColumn(nRow, "powdflag"); //powder
- var drugspd = ds_src.getColumn(nRow, "drugspd"); //gtt
- var tnsfiltflag = ds_src.getColumn(nRow, "tnsfiltflag"); //filter
- var portprcpflag = ds_src.getColumn(nRow, "portprcpflag"); //portprcpflag
-
- //수술유형, 재활치료부위
- if ( prcpclscd == "F2" ) {
- var rehbprcpcurepartcd = ds_src.getColumn(nRow, "rehbprcpcurepartcd");
- if ( rehbprcpcurepartcd != "-" && !utlf_isNull(rehbprcpcurepartcd)) {
- opansflagcd = ds_M0046.lookup("cdid", rehbprcpcurepartcd, "cdnm");
- }
- } else if ( prcpclscd == "H2" ) {
- opansflagcd = ds_src.getColumn(nRow, "opansflagcd" );
- if ( opansflagcd != "-" && !utlf_isNull(opansflagcd)) {
- opansflagcd = ds_M0007.lookup("cdid", opansflagcd, "cdnm");
- }
- }
- // var opansflagcd = model.getValue ( strSrc + "[" + i + "]/tempcol1" );
- var dietprcpgenrflag = ds_src.getColumn(nRow, "dietprcpgenrflag"); //조/중/석
- var mealcalrcnts = ds_src.getColumn(nRow, "mealcalrcnts"); //열량
- var mealprotcnts = ds_src.getColumn(nRow, "mealprotcnts"); //단백질
- // var drugpackflag = model.getValue ( strSrc + "[" + i + "]/drugpackflag" ); //보호자식
- var prcpdelivefact = ds_src.getColumn(nRow, "prcpdelivefact"); //전달사항
- var ansttm = ds_src.getColumn(nRow, "prcprefseq"); //검사간격
- var drugspd = ds_src.getColumn(nRow, "drugspd"); //기본시간
- var trnptbftestflag = ds_src.getColumn(nRow, "trnptbftestflag");
- var prcptims = ds_src.getColumn(nRow, "prcptims"); //치료횟수
- var prcpdayno = ds_src.getColumn(nRow, "prcpdayno"); //치료일수
- var etcprcpresncd = ds_src.getColumn(nRow, "etcprcpresncd"); //마감일
- var irflag = ds_src.getColumn(nRow, "irflag"); //필터
- var precureprcpflag = ds_src.getColumn(nRow, "precureprcpflag"); //선처치
- var selfprcpflag = ds_src.getColumn(nRow, "selfprcpflag"); //자가
- var prcpkindcd = ds_src.getColumn(nRow, "prcpkindcd"); //처방종류
- var hsctdelivepos = ds_src.getColumn(nRow, "hsctdelivepos"); //hsct전달부서
- var rehbprcpenddd = ds_src.getColumn(nRow, "rehbprcpenddd"); //재활치료 마감일
- var cnt = 0;
- if ( erprcpflag == "Y") prcpnmbf = prcpnmbf + "[응급] ";
- if ( clincstdyflag == "Y") prcpnmbf = prcpnmbf + "[임상] ";
- if ( precureprcpflag == "Y") prcpnmbf = prcpnmbf + "[선] ";
-
- 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 엄영만
-
- prcpnm = prcpnmbf + prcpnm;
-
- if ( !utlf_isNull(drugspd) && drugspd != "0" ) prcpnm = prcpnm + " [" + drugspd + "] ";
- } else if ( prcpclscd == "D2" ) {
- //주사
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- prcpnm = prcpnmbf + prcpnm;
- } else if ( prcpclscd == "B4" ) {
- //수혈 (혈액수혈)
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- // if ( prepprcpflag == "N") prcpnmbf = prcpnmbf + " [T/F] ";
- 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 ( !utlf_isNull(opansflagcd) && opansflagcd != "-") prcpnm = prcpnm + " [" + opansflagcd + "] "; //수술마취구분-수술유형
- } else if ( prcpclscd == "B2" || prcpclscd == "B6" ) {
- //진단검사 (검체검사), 핵의학 체외
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- prcpnm = prcpnmbf + prcpnm;
- // if ( ansttm != "") prcpnm = prcpnm + " [" + ansttm + "] "; //검사간격
- // if ( drugspd != "") prcpnm = prcpnm + " [" + drugspd + "] "; //기본시간
- } else if ( prcpclscd == "03" ) {
- //식이
- if ( dietprcpgenrflag == "1") prcpnmbf = prcpnmbf + "[조식] ";
- if ( dietprcpgenrflag == "2") prcpnmbf = prcpnmbf + "[중식] ";
- if ( dietprcpgenrflag == "3") prcpnmbf = prcpnmbf + "[석식] ";
- prcpnm = prcpnmbf + prcpnm;
-
- if ( !utlf_isNull(mealcalrcnts) && mealcalrcnts != "0" ) prcpnm = prcpnm + "[" + opansflagcd + ":" + mealcalrcnts + "] ";
-
- var drugmastspec = ds_src.getColumn(nRow, "drugmastspec") + "▩";
- var mealprotcntscond = lf_getArrayData (drugmastspec, 0, 3, " ▩", "|" );
- if ( !utlf_isNull(mealprotcnts) && mealprotcntscond == "Y" ) prcpnm = prcpnm + "[횟수:" + mealprotcnts + "] ";
- // if ( drugpackflag == "Y") prcpnm = prcpnm + "[보호자식추가] ";
- //if ( prcpdelivefact != "") prcpnm = prcpnm + " [" + prcpdelivefact + "] ";
- } else if ( prcpclscd == "F2" ) { //재활
- prcpnm = prcpnmbf + prcpnm;
-
- if("HZ272" != prcpcd ) { // 요청번호 20140422010 온열암 치료는 재활표기 따르지 않음. 스크립트 함수도 같이 수정. 2014.04.23 엄영만
- if ( !utlf_isNull(opansflagcd) && opansflagcd != "-") {
- //prcpnm = prcpnm + " [치료부위:" + opansflagcd + "] ";
- prcpnmaft = prcpnmaft + " " + opansflagcd + " ";
- cnt++;
- }
- if ( !utlf_isNull(prcptims) && prcptims != 0 ) {
- //prcpnm = prcpnm + " [1일치료횟수:" + prcptims + "/1일] ";
- prcpnmaft = prcpnmaft + " " + prcptims + "/1일 ";
- cnt++;
- }
- if ( !utlf_isNull(rehbprcpenddd) && rehbprcpenddd != "-" ) {
- //prcpnm = prcpnm + " [마감일:" + etcprcpresncd.substring (0,4) + "-" + etcprcpresncd.substring (4,6) + "-" + etcprcpresncd.substring (6,8) + "] ";
- prcpnmaft = prcpnmaft + " " + rehbprcpenddd.substring (0,4) + "-" + rehbprcpenddd.substring (4,6) + "-" + rehbprcpenddd.substring (6,8) + " ";
- 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 ( ds_src.getColumn(nRow, "drprcpetc2") == "Y" ) { // 특수주사실 체크 추가 요청 20081027 by Moonsh
- prcpnm = prcpnm + " [암센터주사실] ";
- } else if ( ds_src.getColumn(nRow, "drprcpetc2") == "B" ) {
- prcpnm = prcpnm + " [BMT주사실] ";
- }
- ds_src.setColumn(nRow, "prcpnm", prcpnm );
- ds_src.setColumn(nRow, "prcprefseq","0" );
- }
- /***************************************************************************************************
- * Function : lf_chgChoiDr
- * Description : 선택진료의 변경
- * Argument : sMode [String : ]
- * : nCurRow [Number : ]
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_chgChoiDr( mode, currow, sXpt, sYpt )
- {
- var mon = sysf_getCurrentMonitorNumber();
- var xpt;
- var ypt;
-
- if(!utlf_isNull(sXpt) && !utlf_isNull(sYpt)) {
- xpt = sXpt;
- ypt = sYpt;
- } else {
- xpt = this.getOwnerFrame().position.x + 400;
- ypt = this.getOwnerFrame().position.y + 98;
- }
-
- var ordtype = "";
- var prcpcd = "";
- var prcpdd = "";
- var prcpnm = "";
- var prcpexecdeptcd = "";
- var prcpclscd = "";
- var drugmthdspccd = "";
- var useyn = "";
- var userid = "";
- //default 선택진료과 설정
- if ( mode == "pop" ) {
- ordtype = ds_main_prcplist.getColumn(0, "prcpgenrflag" );
- prcpcd = ds_main_prcplist.getColumn(0, "prcpcd" );
- prcpnm = ds_main_prcplist.getColumn(0, "prcpnm" );
- prcpexecdeptcd = ds_main_prcplist.getColumn(0, "prcpexecdeptcd" );
- prcpclscd = ds_main_prcplist.getColumn(0, "prcpclscd" );
- drugmthdspccd = ds_main_prcplist.getColumn(0, "drugmthdspccd" );
- } else if ( mode == "auto" ) {
- //ordtype = model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/prcpgenrflag" );
- ordtype = ds_patflag.getColumn(0, "prcpgenrflag" ); //입력구분
- prcpcd = ds_main_prcplist.getColumn(currow, "prcpcd" );
- prcpnm = ds_main_prcplist.getColumn(currow, "prcpnm" );
- prcpexecdeptcd = ds_main_prcplist.getColumn(currow, "prcpexecdeptcd" );
- prcpclscd = ds_main_prcplist.getColumn(currow, "prcpclscd" );
- drugmthdspccd = ds_main_prcplist.getColumn(currow, "drugmthdspccd" );
- } else {
- ordtype = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpgenrflag" );
- prcpcd = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpcd" );
- prcpnm = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpnm" );
- prcpexecdeptcd = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpexecdeptcd" );
- prcpclscd = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpclscd" );
- drugmthdspccd = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "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 = lf_getHardCDList("Y", 400, 3); // 400 처방 관련 신규로직 적용여부
- var orddrid = "";
-
-
- var oTrgtObj = lf_getFormObject(mode);
-
- if ( ordtype == "O" ) {
- orddrid = oTrgtObj.ds_paminfo.getColumn(0, "orddrid");
- } else {
- orddrid = oTrgtObj.ds_paminfo.getColumn(0, "medispclid");
- }
-
- if(utlf_isNull(this.objects["ds_hidden_testcheckspcdrlist"]))
- this.dsf_createDs("ds_hidden_testcheckspcdrlist");
- lf_getHardCDList("N", 402, 0 , ds_hidden_testcheckspcdrlist); // 402 신규로직 적용대상 2011.11.19 엄영만 (추후 관련 로직 삭제해야함.)
- // End of 신규로직 테스트 적용 여부 추후 삭제 필요. orddrid 가져 오는 부분도 필요 없음.
- if ( sChkNewLogicYn == "Y"
- || (sChkNewLogicYn == "N" && !utlf_isNull(ds_hidden_testcheckspcdrlist.lookup("hardcd", orddrid, "hardcd"))) ) { // 신규로직 적용여부
- prcpdd = oTrgtObj.ds_init.getColumn(0, "prcpdd");
-
- frmf_clearParameter ( "SPMMB08600_useyn" );
- frmf_clearParameter ( "SPMMB08600_userid" );
- frmf_clearParameter ( "SPMMB08600_prcpdd" );
- frmf_clearParameter ( "SPMMB08600_prcpcd" );
- frmf_clearParameter ( "SPMMB08600_prcpnm" );
- frmf_clearParameter ( "SPMMB08600_orddeptcd" );
- frmf_clearParameter ( "SPMMB08600_prcpclscd" );
- frmf_clearParameter ( "SPMMB08600_drugmthdspccd" );
- frmf_clearParameter ( "SPMMB08600_userinfo" );
- frmf_setParameter("SPMMB08600_prcpdd", prcpdd);
- frmf_setParameter("SPMMB08600_prcpcd", prcpcd);
- frmf_setParameter("SPMMB08600_prcpnm", prcpnm);
- frmf_setParameter("SPMMB08600_orddeptcd", prcpexecdeptcd);
- frmf_setParameter("SPMMB08600_prcpclscd", prcpclscd);
- frmf_setParameter("SPMMB08600_drugmthdspccd",drugmthdspccd);
- frmf_setParameter("SPMMB0800_ioflag", ordtype);
-
- frmf_modal("SPMMB08600", "SPMMB08600", null, false, mon, xpt, ypt, null, null, null, null, null, "P");
-
- useyn = frmf_getParameter("SPMMB08600_useyn");
- userid = frmf_getParameter("SPMMB08600_userid");
- } else {
- frmf_clearParameter ( "SPMMB08300_flag");
- frmf_clearParameter ( "SPMMB08300_useyn" );
- frmf_clearParameter ( "SPMMB08300_userid" );
- frmf_clearParameter ( "SPMMB08300_orddeptcd" );
- frmf_clearParameter ( "SPMMB08300_userinfo" );
-
- frmf_setParameter("SPMMB08300_orddeptcd", prcpexecdeptcd);
- frmf_setParameter("SPMMB08300_ioflag", ordtype);
-
- frmf_modal("SPMMB08300", "SPMMB08300", null, false, mon, xpt, ypt, null, null, null, null, null, "P");
-
- useyn = frmf_getParameter("SPMMB08300_useyn");
- userid = frmf_getParameter("SPMMB08300_userid");
- }
-
- ds_main_prcplist.enableevent = false;
-
- if(useyn == "Y"){
- if ( mode == "pop" ) {
- if ( ds_main_prcplist.getColumn(0, "tempcol24" ) == "Y" ) {
- ds_main_prcplist.setColumn(0, "choiordflag", "Y" );
- ds_main_prcplist.setColumn(0, "specdrid", userid );
- } else {
- ds_main_prcplist.setColumn(0, "choiordflag", "N" );
- ds_main_prcplist.setColumn(0, "specdrid", "-");
- }
- } else if ( mode == "auto" ) {
- if ( ds_main_prcplist.getColumn(currow, "tempcol24" ) == "Y" ) {
- ds_main_prcplist.setColumn(currow, "choiordflag", "Y" );
- ds_main_prcplist.setColumn(currow, "specdrid", userid );
- } else {
- ds_main_prcplist.setColumn(currow, "choiordflag", "N" );
- ds_main_prcplist.setColumn(currow, "specdrid", "-");
- }
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- if ( ds_main_prcplist.getColumn(selectedRows[i], "tempcol24") == "Y" ) {
- ds_main_prcplist.setColumn(selectedRows[i], "choiordflag", "Y");
- ds_main_prcplist.setColumn(selectedRows[i], "specdrid", userid);
- } else {
- ds_main_prcplist.setColumn(selectedRows[i], "choiordflag", "N");
- ds_main_prcplist.setColumn(selectedRows[i], "specdrid", "-");
- }
- }
- }
- } else {
- if ( mode == "pop" ) {
- ds_main_prcplist.setColumn(0, "choiordflag", "N" );
- ds_main_prcplist.setColumn(0, "specdrid", "-");
- } else if ( mode == "auto" ) {
- ds_main_prcplist.setColumn(currow, "choiordflag", "N" );
- ds_main_prcplist.setColumn(currow, "specdrid", "-");
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- ds_main_prcplist.setColumn(selectedRows[i], "choiordflag", "N" );
- ds_main_prcplist.setColumn(selectedRows[i], "specdrid", "-");
- }
- }
- }
-
- // 선택진료의사가 아닐 경우 는 기본값으로 셋팅한다.
- var ds_usercombo = emr_getOrderBaseInfo("usercombo")
-
- if (mode =="pop") {
- var chkChoiSpcldrid = ds_main_prcplist.getColumn(0, "specdrid");
- var choiSpclDrid = ds_usercombo.lookup("userid", chkChoiSpcldrid, "userid");
- if (utlf_isNull(choiSpclDrid)) {
- ds_main_prcplist.setColumn(0, "choiordflag", "N");
- ds_main_prcplist.setColumn(0, "specdrid", "-");
- }
- } else if (mode == "auto") {
- var chkChoiSpcldrid = ds_main_prcplist.getColumn(currow, "specdrid");
- var choiSpclDrid = ds_usercombo.lookup("userid", chkChoiSpcldrid, "userid");
- if (utlf_isNull(choiSpclDrid)) {
- ds_main_prcplist.setColumn(currow, "choiordflag", "N" );
- ds_main_prcplist.setColumn(currow, "specdrid", "-");
- }
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- var chkChoiSpcldrid = ds_main_prcplist.getColumn(selectedRows[i], "specdrid");
- var choiSpclDrid = ds_usercombo.lookup("userid", chkChoiSpcldrid, "userid");
- if (utlf_isNull(choiSpclDrid)) {
- ds_main_prcplist.setColumn(selectedRows[i], "choiordflag", "N" );
- ds_main_prcplist.setColumn(selectedRows[i], "specdrid", "-");
- }
- }
- }
-
- ds_main_prcplist.enableevent = true;
- }
- // * 변환 OK
- function lf_prcpExecDeptSrch(flag) {
- var prcpcd = ds_main_prcplist.getColumn(0, "prcpcd" );
- var prcpdd = "";
-
- if(frmf_checkOpener() && !utlf_isNull(opener.ds_init)) {
- prcpdd = opener.ds_init.getColumn(0, "prcpdd");
- }
-
- // div 같은 곳에서 실행될때를 위해 넣음
- if(utlf_isNull(prcpdd)) {
- try {
- if(!utlf_isNull(oOpener) && !utlf_isNull(oOpener.objects["ds_init"])) {
- prcpdd = lf_getDsValue(oOpener.ds_init, 0, "prcpdd");
- }
- } catch (E) {}
- }
-
- if(utlf_isNull(prcpdd)) {
- prcpdd = ds_init.getColumn(0, "prcpdd" );
- if (utlf_isNull(prcpdd)) {
- prcpdd = utlf_getCurrentDate();
- }
- }
-
- if(utlf_isNull(this.objects["ds_send"])) {
- dsf_createDsRow("ds_send", [{col:"cond1", type:"string", size:256, val:prcpcd},
- {col:"cond2", type:"string", size:256, val:prcpdd},
- {col:"cond3", type:"string", size:256, val:flag}]);
- } else {
- ds_send.clearData();
- ds_send.addRow();
- ds_send.setColumn(0, "cond1" , prcpcd);
- ds_send.setColumn(0, "cond2" , prcpdd);
- ds_send.setColumn(0, "cond3" , flag);
- }
-
- //KNUH_20110208, 주희경, 진료 속도 개선을 위해 로그인 시 미리 데이터를 조회해 놓고 copy해서 쓰는 방식으로 변경
- //flag가 all이면 이미 조회 해 놓은 데이터 카피
- var srchSuccess = false;
-
- if ( flag == "all" )
- {
- var ds_dept = emr_getOrderBaseInfo("dept");
-
- if ( ds_dept.rowcount > 0 )
- {
- ds_orddept.copyData(ds_dept);
- srchSuccess = true;
- }
- else //KNUH_20110208, 주희경 복사할 데이터가 없을 시 (비정상 로딩) 강제 로그아웃
- {
- sysf_messageBox("현재 프로그램 배포로 인해 진료에 필요한 데이터를 재조회 해야합니다. 죄송하지만 반드시 다시 로그인 해주시기 바랍니다.", "");
- }
- }
-
- //all이 아니거나 복사할 데이터가 없을 시 해당 데이터 재조회
- if(!srchSuccess) {
- var oParam = {};
- oParam.id = "TRMMO00116";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpExecDeptSrch";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_orddept=dept";
- oParam.async = false;
- tranf_submit(oParam);
- }
- }
- /***************************************************************************************************
- * Function : lf_altPrcpCd
- * Description : 처방에 따른 알림 팝업호출(repeat, 대체처방 등)
- * Argument : currow []
- * : flag
- * : strSrc
- * : prcpInptFlag
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_altPrcpCd( currow, flag, strSrc, prcpInptFlag )
- {
- var prcpcd = "";
- var prcpnm = "";
- var altcdinfo = "";
-
- var ds_src;
- if ( flag == "child" ) {
- var oTrgtObj = lf_getFormObject(flag);
-
- var childlist = oTrgtObj.div_all.Tab_prcp.components;
- var childcomp = childlist[oTrgtObj.div_all.Tab_prcp.tabindex];
-
- ds_src = childcomp.objects[strSrc];
- } else {
- ds_src = this.objects[strSrc];
- }
-
- prcpcd = ds_src.getColumn(currow, "prcpcd");
- prcpnm = ds_src.getColumn(currow, "prcpnm");
- altcdinfo = ds_src.getColumn(currow, "tempcol16");
- frmf_setParameter ( "SPMMO15400_cond1", prcpcd ); //원래처방코드
- frmf_setParameter ( "SPMMO15400_cond2", prcpnm ); //처방명
- frmf_setParameter ( "SPMMO15400_cond3", altcdinfo ); //대체처방코드
-
- frmf_modal("SPMMO15400", "SPMMO15400", null, null, null, null, null, null, null, null, null, null, "M");
-
- frmf_clearParameter ( "SPMMO15400_cond1" ); //원래처방코드
- frmf_clearParameter ( "SPMMO15400_cond2" ); //처방명
- frmf_clearParameter ( "SPMMO15400_cond3" ); //대체처방코드
-
- return 0;
- }
- /**
- * @desc : 항생제이면서 제한항생자가 아니면 항생제처리
- *
- * @
- * @param :
- * @return :
- * @author : 마정민
- * @---------------------------------------------------
- */
- function lf_antiMicChk( currow, flag, strSrc, prcpInptFlag ) {
- //20080725 마정민추가. 항생제이면서 제한항생자가 아니면 항생제처리
- var prcpcd = "";
- var drugmastspec = "";
- var pid = "";
- var prcpdd = "";
- //CP는 CDSS항생제 체크 skip임. (2008.09.29 JJE)
- if( ds_root.getColumn(0, "cp") == "Y" ){
- return 1;
- }
-
- var ds_src;
- if ( flag == "child" ) {
- var oTrgtObj = lf_getFormObject(flag);
-
- var childlist = oTrgtObj.div_all.Tab_prcp.components;
- var childcomp = childlist[oTrgtObj.div_all.Tab_prcp.tabindex];
-
- ds_src = childcomp.objects[strSrc];
- } else {
- ds_src = this.objects[strSrc];
- }
-
- prcpcd = ds_src.getColumn(currow, "prcpcd");
- prcpdd = ds_init.getColumn(0, "prcpdd");
- pid = ds_paminfo.getColumn(0, "pid");
-
- var sRef = dsf_createDsRow("ds_TRMMO01609", [{col:"pid", type:"string", size:256, val:pid},
- {col:"prcpcd", type:"string", size:256, val:prcpcd},
- {col:"prcpdd", type:"string", size:256, val:prcpdd}]);
-
- var sDsResult = dsf_createDs("ds_result_antibiotics");
- var oDsResult = this.objects[sDsResult];
-
- var oParam = {};
- oParam.id = "TRMMO01609";
- oParam.service = "prcpmngtapp.AntiBioPrcpMngt";
- oParam.method = "reqGetAntiBioBalDayChk";
- oParam.inds = "req=" + sRef;
- oParam.outds = sDsResult + "=antibiotics";
- oParam.async = false;
- oParam.callback = "cf_TRMMO01609";
- tranf_submit(oParam);
-
- var result = 1;
-
- if(arErrorCode.pop("TRMMO01609") > -1){
- /*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 (oDsResult.getColumn(0, "popyn" )=="Y") {
- // 항생제 검색어 초기화
- var prcplistcnt = ds_main_prcplist.rowcount - 1;
- var prcpcd = ds_main_prcplist.getColumn(prcplistcnt, "prcpcd" );
- var prcpnm = ds_main_prcplist.getColumn(prcplistcnt, "prcpnm" );
- if (!utlf_isNull(prcpcd) && utlf_isNull(prcpnm)) {
- ds_main_prcplist.setColumn(prcplistcnt, "prcpcd", "");
- }
-
- lf_prcpModal("SPMMD01600", 20, 50);
- result = 0;
- } else {
- ds_src.setColumn(currow, "tempcol8", oDsResult.getColumn(0, "antibioticsinfo"));
- result = 1;
- }
- }
-
- dsf_deleteDs(sRef);
- dsf_deleteDs(sDsResult);
-
- return result;
- }
- function cf_TRMMO01609(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /***************************************************************************************************
- * Function : lf_setPrcpUnit
- * Description : 처방화면에서 수량단위, 횟수단위, 투여속도 단위 등을 선택하는 팝업 호출
- * Argument : nRow
- * : objSrcDs
- * : sFlag
- * : sCalcFlag
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_setPrcpUnit(nRow, objSrcDs , sFlag , sCalcFlag, e:GridClickEventInfo )
- {
- if (nRow < 0)
- return;
- if (utlf_isNull(sFlag))
- sFlag = "drprcpetc3";
-
- var status = objSrcDs.getColumn(nRow, "status");
- if (status == "S" || utlf_isNull(status))
- return;
- var prcpstat = objSrcDs.getColumn(nRow, "tempcol1");
- if (!utlf_isNull(prcpstat) && prcpstat != "000" && sCalcFlag != "Y")
- return;
- var inptcntrid = objSrcDs.getColumn(nRow, "inptctrlflag");
- var objInptListDs = emr_getOrderBaseInfo("prcpinptctrllist");
-
- if (objInptListDs != null) {
- objInptListDs.filterstr = "inptcntrid=='"+ inptcntrid +"'";
- }
- if (objInptListDs == null || objInptListDs.rowcount < 1) {
- objInptListDs.filterstr = "";
- return;
- }
-
- var xpt = 0;
- var ypt = 0;
- var sScreenId = this.name.split("_")[0];
-
-
- if (sScreenId == "SMMMO00100" || sScreenId == "SMMMO00200") {
-
- if(utlf_isNull(e)){
-
- xpt = system.cursorx;
- ypt = system.cursory;
- if (sFlag == "drprcpetc3")
- xpt = 777;
- else if (sFlag == "drprcpetc7")
- xpt = 803;
- else if (sFlag == "drugspdunitflag")
- xpt = 905;
- ypt = 414 + 22 * nRow;
- if (nRow > 11)
- ypt = 656;
- xpt = system.clientToScreenX(this.getOwnerFrame(), 0) + parseInt(xpt) - 350;
- var grdtop = grp_prcp.grd_prcplist.position.top;
- ypt = system.clientToScreenY(this.getOwnerFrame(), 0) + parseInt(ypt) - parseInt(grdtop);
- if (ds_init_data.getColumn(0, "addPrcp") == "Y") {
- ypt = ypt - 22 * 4;
- xpt = xpt + 65;
- }
- }else{
-
- xpt = system.clientToScreenX(grp_prcp.grd_prcplist, e.clientX);
- ypt = system.clientToScreenY(grp_prcp.grd_prcplist, e.clientY);
- //trace("X" + xpt);
- }
- }
- if (sFlag == "drprcpetc3") {
- if (objInptListDs.getColumn(0, "unit") != "Y") {
- return;
- }
-
-
-
- var sRef = dsf_createDsRow("ds_cond_prcpunitinfo", [{col:"prcpcd", type:"string", size:256, val:objSrcDs.getColumn(nRow, "prcpcd")},
- {col:"drprcpketc4", type:"string", size:256, val:objSrcDs.getColumn(nRow, "drprcpetc4")},
- {col:"drprcpetc3", type:"string", size:256, val:objSrcDs.getColumn(nRow, "drprcpetc3")},
- {col:"drprcpetc7", type:"string", size:256, val:objSrcDs.getColumn(nRow, "drprcpetc7")},
- {col:"prcpunitflag", type:"string", size:256, val:objSrcDs.getColumn(nRow, "prcpqtyunitflag")},
- {col:"prcptims", type:"string", size:256, val:objSrcDs.getColumn(nRow, "prcptims")},
- {col:"prcpdayno", type:"string", size:256, val:""}]);
- var oRef = this.objects[sRef];
- var sDsTemp = dsf_createDs("ds_temp");
- var oDsTemp = this.objects[sDsTemp];
- if (sCalcFlag == "Y") {
- oRef.setColumn(0, "prcpdayno", objSrcDs.getColumn(nRow, "prcpdayno"));
- }
- else if (sCalcFlag == "Q") {
- oRef.setColumn(0, "prcpdayno", "Q");
- }
- else {
- oRef.setColumn(0, "prcpdayno", "");
- }
- var selunitinfo;
- var rtn;
- var oParam = {};
- oParam.id = "TRMMO00142"; // transaction을 구분하기 위한 ID
- oParam.service = "prcpmngtapp.PrcpMngt"; // service ID
- oParam.method = "reqGetPrcpUnit"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.outds = sDsTemp + "=prcpunit"; // transaction을 처리 결과를 받을 Dataset의 ID
- tranf_submit(oParam);
-
- if (oDsTemp != null && oDsTemp.rowcount > 0) {
- if (sCalcFlag == "Y") {
- oDsTemp.filterstr = "prcpunitflag == '3'";
- if (oDsTemp != null && oDsTemp.rowcount > 0) {
- rtn = "총수량: " + oDsTemp.getColumn(0, "sch_prcpqty")+ " " +oDsTemp.getColumn(0, "sch_drprcpetc3");
- }
- oDsTemp.filterstr = "";
- }
- else if (sCalcFlag == "Q") {
- oDsTemp.filterstr = "prcpunitflag == '3'";
- rtn = "";
- if (oDsTemp != null && oDsTemp.rowcount > 0) {
- rtn = oDsTemp.getColumn(0, "drprcpetc4");
- }
- oDsTemp.filterstr = "";
- }
- else {
-
- rtn = undefined;
- var objArg = {};
- objArg["plgds_prcpnode"] = objSrcDs;
- objArg["plgds_orgprcpnode"] = objSrcDs;
- objArg["plgds_unitdata"] = oDsTemp;
- objArg["plgv_sFlag"] = sFlag;
- objArg["plgv_nIndx"] = nRow;
-
- frmf_modal("SPMMO35800", "SPMMO35800", objArg, false, null, xpt,ypt, null, null);
-
- lf_drugCalc("drprcpetc3" , nRow, objSrcDs);
- if (objSrcDs.getOrgColumn(nRow, "drprcpetc3") != objSrcDs.getColumn(nRow, "drprcpetc3")) {
- lf_baseMthd(nRow, objSrcDs);
- }
- }
- }
- // Temp로 사용한 Dataset을 삭제
- var oRemoveDs = this.removeChild(sRef);
- oRemoveDs = null;
- oRemoveDs = this.removeChild(sDsTemp);
- oRemoveDs = null;
- return rtn;
- }
- else if (sFlag == "drprcpetc7") {
- if (objInptListDs.getColumn(0, "dvtime") != "Y") return;
-
- var objArg = {};
- objArg["plgds_prcpnode"] = objSrcDs;
- objArg["plgv_sFlag"] = sFlag;
- objArg["plgv_nIndx"] = nRow;
-
- frmf_modal("SPMMO35800", "SPMMO35800", objArg, false, null, xpt, ypt, null, null);
- lf_drugCalc("drprcpetc7" , nRow, objSrcDs);
- lf_baseMthd(nRow, objSrcDs);
- }
- else if (sFlag == "drugspdunitflag") {
- if (objInptListDs.getColumn(0, "inj" != "Y")) return;
-
- var objArg = {};
- objArg["plgds_prcpnode"] = objSrcDs;
- objArg["plgv_sFlag"] = sFlag;
- objArg["plgv_nIndx"] = nRow;
- frmf_modal("SPMMO35800", "SPMMO35800", objArg, false, null, xpt, ypt, null, null);
- }
-
- objInptListDs.filterstr = ""; //filter 초기화
- }
- /***************************************************************************************************
- * Function : lf_subcretnoSet
- * Description : (입원/응급/DSC)임상연구처방을 위한 subcretno를 셋팅한다.
- * Argument : sPrcpInptFlag []
- * : ctrlnm []
- * : oDsSrc []
- * : nSendRow []
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_subcretnoSet(prcpinptflag, ctrlnm:Dataset, oDsSrc, sendRow) {
- var prcpgenrflag;
- var clincstdyflag;
- var pid;
- var indd;
- var subcretno;
-
- if (prcpinptflag == "0" ) { // 상세팝업에서...
- prcpgenrflag = opener.ds_patflag.getColumn(0, "prcpgenrflag");
- clincstdyflag = ctrlnm.getColumn(0, "clincstdyflag");
-
- if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
- if(clincstdyflag == "Y"){ //임상연구가 Y로 처리된 경우에만 보조유형세팅
- pid = opener.ds_paminfo.getColumn(0, "pid");
- indd = opener.ds_paminfo.getColumn(0, "indd");
-
- sSubcretno = lf_getSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- ds_main_prcplist.setColumn(0, "subcretno", "0");
- ctrlnm.setColumn(0, "clincstdyflag", "N");
- sysf_messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- } else {
- ds_main_prcplist.setColumn(0, "subcretno", sSubcretno);
- }
- }else{ //임상연구가 N로 처리된 경우에는 subcretno 0로 처리
- ds_main_prcplist.setColumn(0, "subcretno", "0");
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- ds_main_prcplist.setColumn(0, "subcretno", "0");
- if ( clincstdyflag == "Y" && opener.ds_paminfo.getColumn(0, "insukind") != "71") {
- ctrlnm.setColumn(0, "clincstdyflag", "N");
- sysf_messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- }
- }
- } else if (prcpinptflag == "1") { // 일괄입력에서...
- var prcpgenrflag = opener.ds_patflag.getColumn(0, "prcpgenrflag");
- var clincstdyflag = ds_chkflag.getColumn(0, "clincstdyflag");
-
- if (prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
- if(ds_chkflag.getColumn(0, "clincstdyflag") == "Y"){
- var pid = opener.ds_paminfo.getColumn(0, "pid");
- var indd = opener.ds_paminfo.getColumn(0, "indd");
-
- sSubcretno = lf_getSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- ds_main_prcplist.setColumn(0, "subcretno", "0");
- sysf_messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- return -1
- } else {
- ds_main_prcplist.setColumn(0, "subcretno", sSubcretno);
- }
- }else{ //임상연구가 N로 처리된 경우에는 subcretno 0로 처리
- ds_main_prcplist.setColumn(0, "subcretno", "0");
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- ds_main_prcplist.setColumn(0, "subcretno", "0");
- if ( clincstdyflag == "Y" && opener.ds_paminfo.getColumn(0, "insukind") != "71") {
- sysf_messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- return -1;
- }
- }
- } else if (prcpinptflag == "2") { // 전처방, 약속처방에서, 임상시험 부유형 자동세팅, cHc, 2009-07-21
- var prcpgenrflag = oOpener.ds_patflag.getColumn(0, "prcpgenrflag");
- var clincstdyflag = ctrlnm;
-
- if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E") {
- if(clincstdyflag == "Y"){ //임상연구가 Y로 처리된 경우에만 보조유형세팅
-
- var pid = oOpener.ds_paminfo.getColumn(0, "pid");
- var indd = oOpener.ds_paminfo.getColumn(0, "indd");
-
- sSubcretno = lf_getSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- oDsSrc.setColumn(sendRow, "subcretno", "0");
- oDsSrc.setColumn(sendRow, "clincstdyflag", "N");
- sysf_messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- } else {
- oDsSrc.setColumn(sendRow, "subcretno", sSubcretno);
- }
- } else{ //임상연구가 N로 처리된 경우에는 subcretno 0로 처리
- oOpener.oDsSrc.setColumn(sendRow, "subcretno", "0");
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- oDsSrc.setColumn(sendRow, "subcretno", "0");
- if ( clincstdyflag == "Y" && oOpener.ds_paminfo.getColumn(0, "insukind") != "71") {
- sysf_messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- }
- }
- } else if (prcpinptflag == "3") { // kimsj 임상 일괄입력 팝업 체크
- var prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag");
-
- if (prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
- var pid = ds_paminfo.getColumn(0, "pid");
- var indd = ds_paminfo.getColumn(0, "indd");
-
- sSubcretno = lf_getSubcretno(pid, indd, "clincstdyflag");
- if ( sSubcretno == "0" ) {
- sysf_messageBox ("임상시험 보험유형이 없습니다. 보험유형을", "I007");
- return -1;
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- if (ds_paminfo.getColumn(0, "insukind") != "71") {
- sysf_messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- return -1;
- }
- }
- return 0;
- }
- }
- /**
- * @desc : 환자의 부유형 원무접수번호(subcretno)를 조회 한다.
- * @ :
- * @param :
- * @return :
- * @author : 엄영만 2012.05.09
- * @---------------------------------------------------
- * 변환OK
- */
- function lf_getSubcretno(sPid, sIndd, sSrchcls) {
- var sSubcretno = "0";
-
- if(utlf_isNull(sPid)) { sysf_messageBox ( "환자번호가 없습니다. 보조유형 조회에 실패 하였습니다. 전산실(6598)로 연락 바랍니다.", "E999" ); return sSubcretno;}
- if(utlf_isNull(sIndd)) { sysf_messageBox ( "입원일자가 없습니다. 보조유형 조회에 실패 하였습니다. 전산실(6598)로 연락 바랍니다.", "E999" ); return sSubcretno;}
- if(utlf_isNull(sSrchcls)) { sSrchcls = ""; }
-
- var sRef = dsf_createDsRow("ds_temp_send", [{col:"pid", type:"string", size:256, val:sPid},
- {col:"indd", type:"string", size:256, val:sIndd},
- {col:"srchcls", type:"string", size:256, val:sSrchcls}]);
- var oRef = this.objects[sRef];
- var sDsTemp = dsf_createDs("ds_temp_patsupkind");
- var oDsTemp = this.objects[sDsTemp];
-
- var oParam = {};
- oParam.id = "TRMMO15701";
- oParam.service = "prcpmngtapp.PatPrcpSrchMngt";
- oParam.method = "reqGetPatSupKind";
- oParam.inds = "req=" + sRef;
- oParam.outds = sDsTemp + "=patsupkind";
- oParam.async = false;
- oParam.callback = "cf_TRMMO15701";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMO15701") > -1) {
- if(!utlf_isNull(oDsTemp)) {
- if(sSrchcls == "clincstdyflag") { // 임상시험 유형
- sSubcretno = oDsTemp.getColumn(0, "cretno");
- if(utlf_isNull(sSubcretno)) {
- sSubcretno = "0";
- }
- } else { // 기왕증 등 임상시험 이외의 경우
- if(oDsTemp.rowcount > 1){
- var objArgs = new Object();
- objArgs.arg_ds_temp_patsupkind = oDsTemp;
-
- frmf_modal("SPMMO15700", "SPMMO15700", objArgs, null, null, null, null, null, null, null, null, null, "M");
-
- sSubcretno = frmf_getParameter("SPMMO15700_subcretno");
- }
- }
- }
- } else {
- sysf_messageBox ( "보조유형 조회에 실패 하였습니다. 전산실(6598)로 연락 바랍니다.", "E999" );
- }
-
- dsf_deleteDs(sRef);
- dsf_deleteDs(sDsTemp);
- return sSubcretno;
- }
- function cf_TRMMO15701(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /**
- * @desc : 대체약이 있을경우 팝업처리
- * @param : currow: 대체약을 띄울 팝업
- : flag: 대체약 팝업 flag ( 1:처방복사, 2:대체약일괄변경, 3:대체약폴더내변경 )
- : strSrc: source Node
- * @return : void
- * @authur : 마정민 2007. 6. 21
- * 변환OK
- */
- function lf_altDrug ( currow, flag, strSrc, prcpInptFlag, powdflag ) {
- if (utlf_isNull(strSrc)) strSrc = "ds_main_prcplist";
-
- var ds_src = this.objects[strSrc];
-
- var setno = "";
- var settypecd = "";
- var setkindcd = "";
- var setclscd = "";
- var settrgtcd = "";
- if(!utlf_isNull(this.objects["ds_hidden_prmsprcpsetlist"])) {
- setno = ds_hidden_prmsprcpsetlist.getColumn(0, "setno");
- settypecd = ds_hidden_prmsprcpsetlist.getColumn(0, "settypecd");
- setkindcd = ds_hidden_prmsprcpsetlist.getColumn(0, "setkindcd");
- setclscd = ds_hidden_prmsprcpsetlist.getColumn(0, "setclscd");
- settrgtcd = ds_hidden_prmsprcpsetlist.getColumn(0, "settrgtcd");
- }
-
- var prcpcd = "";
- var prcpnm = "";
- if ( flag == "child" ) {
- flag = 1;
- //20090528: 6세미만 경구약 자동 powdflag전환 때문에 처방복사시 powdflag 체크로직 추가.
- if ( !utlf_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 (utlf_isNull(prcpcd)) {
- prcpcd = ds_src.getColumn(currow, "prcpcd");
- prcpnm = ds_src.getColumn(currow, "prcpnm");
- }
- var prcpclscd = ds_src.getColumn(currow, "prcpclscd");
- var erprcpflag = ds_src.getColumn(currow, "erprcpflag");
- var prnprcpflag = ds_src.getColumn(currow, "prnprcpflag");
- var prepprcpflag = ds_src.getColumn(currow, "prepprcpflag");
- var selfdrugflag = ds_src.getColumn(currow, "selfdrugflag");
- var powdflag = ds_src.getColumn(currow, "powdflag");
- var drugspd = ds_src.getColumn(currow, "drugspd");
- var prcpvolunitflag = ds_src.getColumn(currow, "prcpvolunitflag");
- var cond1 = prcpcd + "▦" + setno + "▦" + settypecd + "▦" + setkindcd + "▦" + setclscd + "▦" + settrgtcd + "▩";
- var cond2 = prcpclscd + "▦" + erprcpflag + "▦" + prnprcpflag + "▦" + prepprcpflag + "▦" + selfdrugflag + "▦" + powdflag + "▦" + drugspd + "▦" + prcpvolunitflag + "▩";
- frmf_setParameter ( "SMMMO02300_cond1", cond1 );
- frmf_setParameter ( "SMMMO02300_cond2", cond2 );
- frmf_setParameter ( "SMMMO02300_cond3", flag );
- frmf_setParameter ( "SMMMO02300_cond4", prcpnm );
-
- lf_prcpModal ( "SPMMB10100", "220", "150" );
-
- frmf_clearParameter ( "SMMMO02300_cond1" );
- frmf_clearParameter ( "SMMMO02300_cond2" );
- frmf_clearParameter ( "SMMMO02300_cond3" );
- frmf_clearParameter ( "SMMMO02300_cond4" );
- }
- /***************************************************************************************************
- * Function : lf_contPrcpDd
- * Description : 처방 발행 시 날짜와 일수를 지정한다.(지정한 날짜로 처방 발행_지정일자(연속처방)처리)
- * Argument : oGrid: DataGrid
- * : objPrcpDs: 값을 세팅할 node
- * : sFlag: main 인지 child 인지
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_contPrcpDd(grdObj:Grid, prcpNode, flag, endFlag)
- {
- //1. 과거일자 불가(달력에서 막음)
- //2. 오늘날짜 처방이 아닐때 해더생성
- //3. 2개이상생성시 해더생성
- //4. 외래에서만 사용
- //5. 상태|Acting진료일자|실시처방상태코드|처방일자|실시처방번호^
- var status = "";
- var actordd = "";
- var prcpdd = "";
- var execprcpstatcd = "";
- var execprcpno = "";
- var contPrcpSpec = "";
- var contPrcpSpecArray1;
- var contPrcpSpecArray2;
- var prcpPKSpecArray;
- var reqparm = "";
-
- if(utlf_isNull(grdObj)) grdObj = div_all.grd_prcplist;
- if(utlf_isNull(prcpNode)) prcpNode = "ds_main_prcplist";
-
- var oTrgtObj = lf_getFormObject(flag);
- var objPrcpDs = oTrgtObj.objects[prcpNode];
- // 외래진료일자
- if (oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag") != "O") {
- sysf_messageBox("지정일은 외래에서만 사용하실 수 있습니다.", "E");
- return;
- }
-
- prcpdd = oTrgtObj.ds_paminfo.getColumn(0, "orddd");
-
- objPrcpDs = this.objects[prcpNode];
- if (objPrcpDs.getColumn(objPrcpDs.rowposition , "prcpclscd") != "A6" && objPrcpDs.getColumn(objPrcpDs.rowposition , "prcpclscd") != "F2") {
- sysf_messageBox("지정일 사용하실 수 없는 처방입니다.", "E");
- return;
- }
-
- frmf_setParameter ("paramcalflag", "multi");
- frmf_setParameter ("defaultday", prcpdd);
- var selectedRows = new Array();
- if ( grdObj.selecttype == "row" ) {
- selectedRows[0] = objPrcpDs.rowposition;
- } else {
- selectedRows = grdf_getSelectedRows(grdObj);
- }
-
- objPrcpDs.enableevent = false;
- for (var i = 0; i < selectedRows.length; i++) {
-
- if ( grdObj.selecttype == "row" ) {
- curRow = objPrcpDs.rowposition;
- } else {
- curRow = selectedRows[i];
- }
- contPrcpSpec = objPrcpDs.getColumn(curRow, "contprcpspec");
- if ( contPrcpSpec == "-" ) { //처방 당일이었던 지정일 또는 처음검색
- prcpPKSpecArray = objPrcpDs.getColumn(curRow, "prcppkspec" ).split("|");
- if ( !utlf_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] + "▩";//과거에 선택됐던 지정일을 넘긴다.
- }
- }
-
- frmf_setParameter ("reqparam", reqparm);
- lf_prcpModal ( "SPMMO10600", 20, 50 );
- if ( utlf_isNull(frmf_getParameter ("rtn"))) return; //값이 없으면 return
-
- var actorddArray = frmf_getParameter ("rtn").split("▩");
-
- objPrcpDs.setColumn(curRow, "prcpdayno", actorddArray.length );
- status = objPrcpDs.getColumn(curRow, "status" ); //선택된 셀 상태값 가져오기
-
- contPrcpSpec = "status|actorddd|execprcpstatcd|prcpdd|execprcpno";
- var enddd = "00000000";
- for( i = 0; i < actorddArray.length; i++) { //내용 붙히기
- actordd = actorddArray[i];
- contPrcpSpec = contPrcpSpec + "^" + status + "|" + actordd + "|" + execprcpstatcd + "|" + prcpdd + "|" + execprcpno;
- if ( eval(enddd) < eval(actordd) ) {
- enddd = actordd;
- }
- }
- if ( actorddArray.length == 1 && actordd == prcpdd ) { // 날짜가 1 이고 처방일과 같을 경우는 - 처리
- objPrcpDs.setColumn(curRow, "contprcpspec", "-" );
- } else {
- objPrcpDs.setColumn(curRow, "contprcpspec", contPrcpSpec );
- }
-
- //재활일 경우 마감일 setting
- var prcpclscd = objPrcpDs.getColumn(curRow, "prcpclscd" );
- if ( prcpclscd == "F2" ) objPrcpDs.setColumn(curRow, "etcprcpresncd", enddd );
- //일수변환
- objPrcpDs.setColumn(curRow, "prcpdayno", actorddArray.length );
- }
-
- objPrcpDs.enableevent = true;
- }
- /**
- * @desc : 처방검색
- * @param : prcpnm: 검색할 처방명
- : prcpdd: 처방일자
- : insukind: 보험유형
- : trnm: 트랜젝션 네임
- : ioflag: 외래, 입원, 응급 구분
- : refreshFlag: refresh 여부
- : mthdnm 명
- : containflag : contains사용구분
- * @return : void
- * @authur : 마정민 2007. 6. 21
- * 변환OK
- */
- function lf_prcpSrchCom ( prcpnm, prcpdd, insukind, trnm, ioflag, mthdnm, isHangul, containflag ) {
- if ( utlf_isNull(trnm)) {
- trnm = "TRMMO00100";
- }
- if ( utlf_isNull(prcpdd)) {
- prcpdd = utlf_getCurrentDate();
- }
- if ( utlf_isNull(ioflag)) {
- ioflag = "-";
- }
- if ( utlf_isNull(mthdnm)) {
- mthdnm = "getPrcpSrchInfo";
- } //getPrcpCdSrchInfo
-
- //contains사용일 경우, 검색어의 특수기호에 /를 붙인다.
- //ex) high-voltage@avm -> high/-voltage/@avm
- //2008.06.28 오지훈
- if(containflag == true){
- var regular = /[^ A-Za-z0-9]/g;
- var arr = prcpnm.match(regular);
- if(!utlf_isNull(arr)){
- for(var i = 0; i < arr.length; i++){
- if (arr[i] != "-" && arr[i] != " " && arr[i] != ".") {
- prcpnm = prcpnm.setReplaceWord( arr[i], "\\".concat(arr[i]) );
- }
- }
- }
- ds_send.setColumn(0, "cond6", "1");
- }else{
- ds_send.setColumn(0, "cond6", "2");
- }
-
- if (utlf_isNull(ioflag) || ioflag == "-") ioflag = appf_getPatientInfoDetail("ioflag");
- ds_send.setColumn(0, "cond1", prcpnm.toUpperCase()); //처방명, 수가코드
- ds_send.setColumn(0, "cond2", ioflag ); //외래, 입원, 응급 구분
- ds_send.setColumn(0, "cond3", prcpdd ); //처방일
- ds_send.setColumn(0, "cond4", insukind ); //환자보험유형
- if ( !utlf_isNull( isHangul)) {
- ds_send.setColumn(0, "cond5", isHangul ); //한영구분
- } else {
- ds_send.setColumn(0, "cond5", "" );
- }
- //그리드처방검색일때: 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"); //처방명, 수가코드
- }*/
-
- ds_send.setColumn(0, "cond99", mthdnm ); //검색구분
-
- lf_makePrcpSrchDs(); // 처방 조회 시 outds가 없다면 자동 생성한다.
-
- if(trnm == "TRMMO00100") {
- var oParam = {};
- oParam.id = "TRMMO00100";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpSrchInfo";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_prcpsrch_prcplist=prcplist";
- oParam.async = false;
- oParam.callback = "cf_TRMMO00100";
- tranf_submit(oParam);
-
- dsf_setDefaultVal(ds_prcpsrch_prcplist, "status:N,prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,hosinprcpresncd:00,drugmthdspccd:-,hsctdelivepos:0,druglnkno:0,dnorreqlnkno:0,subcretno:0,drgacptflag:-");
- } else if(trnm == "TRMMB00201") {
- var oParam = {};
- oParam.id = "TRMMB00201";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpSrchInfo";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_prcpsrch_prcplist=prcplist";
- oParam.async = false;
- tranf_submit(oParam);
- dsf_setDefaultVal(ds_prcpsrch_prcplist, "status:N,prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,drugmthdspccd:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,drgacptflag:-");
- }
- }
- /***************************************************************************************************
- * Function : lf_bfPrcpSrchCom
- * Description : 전처방검색
- * Argument : pid: 환자ID
- * : orddd: 외래:진료일, 입원:입원일
- * : prcpdd: 처방일
- * : bfflag: 전처방 where 조건 구분자
- * : initflag: 최초구분
- * : orddrid: 의사ID,외래에서만 필요하다.
- * : todd
- * : prcpgenrflag: 외래입원구분
- * : orddeptcd: 부서코드
- * : cretno: 원무생성번호
- * : prcpgenrflag: 외래, 입원, 응급 구분
- * : followup: 퇴원후 외래처방일과 동일한 처방일이거나 initsrch 와 동일한 날짜가 있을 경우 followdd를 입력한다.
- * : bfprcpviewflag : 전처방 조회 조건 개인별 설정기능 추가 by sonjy 20091120
- * return type :
- * Creator :
- * 변환OK
- * @---------------------------------------------------
- */
- function lf_bfPrcpSrchCom( sPid, sOrddd, sPrcpdd, sBfflag, sInitflag, sOrddrid, sTodd, sPrcpgenrflag, sOrddeptcd, sCretno, sTrnm, sPrcpauthflag, sFollowup , sBfprcpviewflag)
- {
- if (utlf_isNull(sTrnm))
- sTrnm = "TRMMO00100";
-
- if (utlf_isNull(sPrcpauthflag))
- sPrcpauthflag = "0";
-
- var oTrgtObj;
- // oOpener 선언 되지 않은 곳은 모두 this를 사용하도록 함(여기는 flag가 없어 lf_getFormObject() 함수 적용하지 않음)
- try {
- oTrgtObj = oOpener; // 현재 화면이 전처방인경우
- } catch(e) {
- oTrgtObj = this; // 현재 화면이 미수행처방DC인 경우
- }
- var curprcpdd = lf_getDsValue(oTrgtObj.ds_init, 0, "prcpdd");
- if (utlf_isNull(curprcpdd)) {
- curprcpdd = lf_getDsValue(ds_init, 0, "prcpdd");
- if (utlf_isNull(curprcpdd)) {
- curprcpdd = utlf_getCurrentDate();
- }
- }
-
- var oprsrvno = "";
- if (!utlf_isNull(oTrgtObj.objects["ds_operation"]) && !utlf_isNull(oTrgtObj.ds_operation.getColumn(0, "oprsrvno"))) {
- sOrddd = oTrgtObj.ds_operation.getColumn(0, "oprsrvno");
- if (oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag") == "O") {
- sPrcpgenrflag = "OUTOP";
- }
- else {
- sPrcpgenrflag = "OP";
- }
- } else if (!utlf_isNull(this.objects["ds_operation"]) && !utlf_isNull(ds_operation.getColumn(0, "oprsrvno"))) {
- sOrddd = ds_operation.getColumn(0, "oprsrvno");
- if (ds_patflag.getColumn(0, "prcpgenrflag") == "O") {
- sPrcpgenrflag = "OUTOP";
- }
- else {
- sPrcpgenrflag = "OP";
- }
- }
- var sRef = dsf_createDsRow("ds_cond_prcplist", [{col:"cond1", type:"string", size:256, val:sPid}, // 환자ID
- {col:"cond2", type:"string", size:256, val:sOrddd}, // 외래:진료일, 입원:입원일
- {col:"cond3", type:"string", size:256, val:sPrcpauthflag}, // 처방권한 구분
- {col:"cond4", type:"string", size:256, val:sPrcpdd}, // 처방일자
- {col:"cond5", type:"string", size:256, val:sBfflag}, // 전처방 where 조건 구분자
- {col:"cond6", type:"string", size:256, val:sInitflag}, // 최초구분
- {col:"cond7", type:"string", size:256, val:sOrddrid}, // 의사ID,외래에서만 필요하다.
- {col:"cond8", type:"string", size:256, val:sTodd}, // sTodd
- {col:"cond9", type:"string", size:256, val:sPrcpgenrflag}, // 외래입원구분
- {col:"cond10", type:"string", size:256, val:sOrddeptcd}, // 부서코드
- {col:"cond11", type:"string", size:256, val:sCretno}, // 생성번호
- {col:"cond12", type:"string", size:256, val:""}, // 외래follow up
- {col:"cond13", type:"string", size:256, val:""}, // 환자보험유형전처방용
- {col:"cond14", type:"string", size:256, val:curprcpdd}, // 처방일자(전처방)
- {col:"cond99", type:"string", size:256, val:"getBfPrcpSrchInfo"}, // 검색구분
- {col:"aftcertdrid", type:"string", size:256, val:""}, // 후인증의사id
- {col:"bfprcpviewflag", type:"string", size:256, val:""}]); // 전처방조회조건
- var oRef = this.objects[sRef];
-
- if (!utlf_isNull(sFollowup))
- oRef.setColumn(0, "cond12", "followup"); //외래follow up
-
- var insukind = utlf_isNull(oTrgtObj.objects["ds_paminfo"]) ? "" : oTrgtObj.ds_paminfo.getColumn(0, "insukind");
- if (utlf_isNull(insukind)) insukind = utlf_isNull(this.objects["ds_paminfo"]) ? "" : lf_getDsValue(ds_paminfo, 0, "insukind");
- if (!utlf_isNull(insukind)){
- oRef.setColumn(0, "cond13", insukind ); //외래follow up
- }
-
- //by sonjy 전처방 조회모드 설정 20091120
- if( sBfflag == "bfprcp" || sBfflag == "addprcp" ){
- if(!utlf_isNull(sBfprcpviewflag) ) oRef.setColumn(0, "bfprcpviewflag", sBfprcpviewflag);
- }
-
- lf_makePrcpSrchDs(); // 처방 조회 시 outds가 없다면 자동 생성한다.
-
- var oParam = {};
- oParam.id = "TRMMO00100";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpSrchInfo";
- oParam.inds = "req=" + sRef;
- oParam.outds = "ds_prcpsrch_prcplist=prcplist";
- oParam.async = false;
- oParam.callback = "cf_TRMMO00100";
- tranf_submit(oParam);
-
- var bResult = (arErrorCode.pop("TRMMO00100") < 0) ? false : true;
-
- dsf_setDefaultVal(ds_prcpsrch_prcplist, "prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,hosinprcpresncd:00,drugmthdspccd:-,hsctdelivepos:0,druglnkno:0,dnorreqlnkno:0,subcretno:0,drgacptflag:-");
- //CP일 경우, viewer안의 컨트롤 height 사이즈를 모두 조정해야 함 (2008.08.28 JJE)
- if ( !utlf_isNull(oTrgtObj.objects["ds_root"]) && oTrgtObj.ds_root.getColumn(0, "cp" ) == "Y" ) {
- // 추후 CPGMAIN 작업 후 확인필요
- oTrgtObj.fResizeControls();
- }
- // Temp로 사용한 Dataset을 삭제
- dsf_deleteDs(sRef);
-
- return bResult;
- }
- function cf_TRMMO00100(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /***************************************************************************************************
- * Function : lf_chkEMRLoadingInfo
- * Description : 처방, 기록 조회 함수
- * 진료대상리스트에서 선택했을 경우 상단에서 데이터를 가져오고 아닐 경우 서버에서 조회하도록 만든 모듈
- * Argument :
- * return type : true(진료대상자 선택), false(자체 호출)
- * Creator :
- ***************************************************************************************************/
- function lf_chkEMRLoadingInfo()
- {
- if (this.lgv_addprcp == "Y")
- return false ;
- else
- return true ;
- var oPatientInfoDiv = frmf_getViewer("patientInfo");
- var loadflag = oPatientInfoDiv.ds_loadinginfo.getColumn(0, "loadflag");
- var loaddate = oPatientInfoDiv.ds_loadinginfo.getColumn(0, "loaddate");
- var loadtime = oPatientInfoDiv.ds_loadinginfo.getColumn(0, "loadtime");
- if (loadflag == "Y") {
- if (!utlf_isNull(loaddate) && loaddate.length == 8 && utlf_getDateInterval(loaddate, utlf_getCurrentDate()) > 0) {
- return false;
- }
- else if (!utlf_isNull(loadtime) && loadtime.length == 6 && utlf_getTimeInterval(loadtime, utlf_getCurrentTime()) > 30) {
- return false;
- }
- else {
- return true;
- }
- }
- else {
- return false;
- }
- }
- /***************************************************************************************************
- * Function : lf_mmbfChkDrKindPosYN
- * Description : 의사 직종직위 옵션을 받아서 true, false 값을 리턴한다.
- * Argument : option 1: 의사 여부, 2: 주치의 여부 3: 담당의 여부 를 체크한다.
- * : chkOption : A : 직종으로 체크한다. , B : 직위로 체크한다.
- * 값이 없으면 하드코드번호 255번의 기본값으로 셋팅한다., 하드코드도 없으면 기본값 "B"로 셋팅
- * : userinfo : 비교할 직종 또는 직위코드(sysf_getUserInfo(jobkindcd), sysf_getUserInfo("jobposcd");
- * 값이 없으면 A일 경우는 sysf_getUserInfo("jobkindcd") , B일 경우는 sysf_getUserInfo("jobposcd")로 셋팅함.
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_mmbfChkDrKindPosYN(option, chkOption, userinfo)
- {
- if (utlf_isNull(chkOption)) {
- chkOption = lf_getHardCDList("Y", "255", "3");
- if (utlf_isNull(chkOption))
- chkOption = "B";
- }
- var jobkindcd;
- var sChkTmpDrListNm = dsf_createDs("ds_chktmpdrlist", []);
- var oChkTmpDrListDs = this.objects[sChkTmpDrListNm];
- var rtnValue;
- if (option == "1") { // 의사여부를 리턴한다.
- lf_getHardCDList("N", 69, 0, oChkTmpDrListDs);
- if (userinfo == null || userinfo == "" || userinfo == "undefined") {
- userinfo = sysf_getUserInfo("jobkindcd");
- }
- var nFindRow = oChkTmpDrListDs.findRow("hardcd", userinfo);
- jobkindcd = oChkTmpDrListDs.getColumn(nFindRow, "hardcd");
- rtnValue = (!utlf_isNull(jobkindcd)) ? true : false;
- }
- else if (option =="2") { // 주치의 여부를 리턴한다.
- if (chkOption == "A") { // 직종에서 비교한다. (jobkindcd)
- lf_getHardCDList("N", 65, 0, oChkTmpDrListDs);
- if (userinfo == null || userinfo == "" || userinfo == "undefined")
- userinfo = sysf_getUserInfo("jobkindcd") ;
- var nFindRow = oChkTmpDrListDs.findRow("hardcd", userinfo);
- jobkindcd = oChkTmpDrListDs.getColumn(nFindRow, "hardcd");
- }
- else if (chkOption == "B") { // 직위를 비교한다. (jobposcd)
- lf_getHardCDList("N", 67, 0, oChkTmpDrListDs);
- if (userinfo == null || userinfo == "" || userinfo == "undefined")
- userinfo = sysf_getUserInfo("jobposcd") ;
- var nFindRow = oChkTmpDrListDs.findRow("hardcd", userinfo);
- jobkindcd = oChkTmpDrListDs.getColumn(nFindRow, "hardcd");
- }
- rtnValue = (!utlf_isNull(jobkindcd)) ? true : false;
- }
- else if (option == "3") {
- if (chkOption == "A") { // 직종에서 비교한다. (jobkindcd)
- lf_getHardCDList("N", 65, 0, oChkTmpDrListDs);
- if (userinfo == null || userinfo == "" || userinfo == "undefined")
- userinfo = sysf_getUserInfo("jobkindcd") ;
- var nFindRow = oChkTmpDrListDs.findRow("hardcd", userinfo);
- jobkindcd = oChkTmpDrListDs.getColumn(nFindRow, "hardcd");
- rtnValue = (!utlf_isNull(jobkindcd)) ? true : false;
- }
- else if (chkOption == "B") { // 직위를 비교한다. (jobposcd)
- lf_getHardCDList("N", 67, 0, oChkTmpDrListDs);
- if (userinfo == null || userinfo == "" || userinfo == "undefined")
- userinfo = sysf_getUserInfo("jobposcd");
- var nFindRow = oChkTmpDrListDs.findRow("hardcd", userinfo);
- jobkindcd = oChkTmpDrListDs.getColumn(nFindRow, "hardcd");
- rtnValue = (!utlf_isNull(jobkindcd)) ? "Y" : "N";
- }
- }
- // Temp로 사용한 Dataset을 삭제
- var oRemoveDs = this.removeChild(sChkTmpDrListNm);
- oRemoveDs = null;
- return rtnValue;
- }
- /***************************************************************************************************
- * Function : lf_saveSign
- * Description : 처방 인증 저장 시 sign 데이터 저장 하는 함수
- * Argument : signbfcnts: sign할 데이터
- * : signid: sign 할 유저의 id
- * : signopt: false 로그인후 한번만 띄움, true: 매번띄움
- * : setnode: sign 데이터를 setColumn 할 인스턴스 값이 있을 때만 함
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_saveSign(signbfcnts, signid, signopt, setnode )
- {
- var v_stext = "";
- if (!utlf_isNull(signbfcnts)) {
- if (signopt) {
- v_stext = zesf_SignData(signbfcnts, signid, signopt);
- }
- else {
- v_stext = zesf_SignData(signbfcnts, signid);
- }
- if (utlf_isNull(v_stext)) {
- return ""; //값이 없을 때는 return 함
- }
- }
- else {
- return "N"; // 인증할 데이터가 없을 때는 N 으로 return
- }
- // setnode가 있을경우 setColumn
- if (!utlf_isNull(setnode)) {
- this.objects[setnode].setColumn(0, "signaftcnts", v_stext);
- }
- return v_stext;
- }
- /***************************************************************************************************
- * Function : lf_chngHosinPrcpResn
- * Description : 원내처방사유변경
- * Argument : sFlag [String : ]
- * return type :
- * 변환 OK
- ***************************************************************************************************/
- function lf_chngHosinPrcpResn(sFlag, strSelResn)
- {
- var hosinprcpresncd = "";
- var prcpclscd = "";
-
- //SON0919 응급 퇴원약 원내사유 처리 by sonjy start
- //SON1123 DSC 퇴원처방 처리 by sonjy 20081123
- var prcpkindcd = "";
- var erflag = "";
- var erresn = ""; // G3
- var prcpgenrflag = "";
-
- var oTrgtObj = lf_getFormObject(sFlag);
- hosinprcpresncd = oTrgtObj.ds_init.getColumn(0, "hosinprcpresncd");
- erresn = lf_getDsValue(oTrgtObj.ds_init, 0, "erresn");
- prcpgenrflag = oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag");
-
- if( prcpgenrflag == "I" ){ return; }
-
- if ( (prcpgenrflag == "E" && erresn != "G3") || prcpgenrflag == "D" ) {
- erflag = "Y" ;//SON0919
- }
- // 약제원내외구분 우선 적용
- var hosinflag = "";
- var drugmastspec = "";
- if (hosinprcpresncd != "00") { // 환자별 처방 사유가 존재 할 경우
- for (var i = 0; i < oTrgtObj.ds_main_prcplist.rowcount; i++) { // 처방 건별 처리
- prcpclscd = oTrgtObj.ds_main_prcplist.getColumn(i, "prcpclscd");
-
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ;
-
- prcpkindcd = oTrgtObj.ds_main_prcplist.getColumn(i, "prcpkindcd");
- drugmastspec = oTrgtObj.ds_main_prcplist.getColumn(i, "drugmastspec") + "^";
- hosinflag = lf_getArrayData(drugmastspec , 0, 11, "^", "|");
- if (erflag == "Y" && prcpkindcd == "60") { // 응급 DSC 퇴원약 원내사유 처리
- lf_hosinPrcpResncdSed(sFlag , "ds_main_prcplist", i, strSelResn);
- } else if (prcpgenrflag == "E") { // 응급
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinhosoutflag", "I");
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinprcpresncd", hosinprcpresncd);
- } else if (prcpgenrflag == "D" ){ // DSC
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinhosoutflag", "I");
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinprcpresncd", "00");
- } else {
- prcphosinprcpresncd = oTrgtObj.ds_main_prcplist.getColumn(i, "hosinprcpresncd");
- if (hosinflag != "O" && lf_pamHosinPrcpResnCdChk(prcphosinprcpresncd, sFlag)) { // 환자원내처방사유만 적용
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinhosoutflag", "I");
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinprcpresncd", hosinprcpresncd);
- }
- }
- }
- // 원복시 기존 약제사유로 원복 후 동시투여 약제처리....
- if (erflag == "Y"){
- lf_hosinPrcpResnChk(sFlag, oTrgtObj.ds_main_prcplist);
- }
- } else { // 환자별 처방 사유가 없을 경우
- for(var i = 0; i < oTrgtObj.ds_main_prcplist.rowcount; i++) {
- prcpclscd = oTrgtObj.ds_main_prcplist.getColumn(i, "prcpclscd");
-
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ;
- //SON0919 응급 퇴원약 원내사유 처리 by sonjy start
- prcpkindcd = oTrgtObj.ds_main_prcplist.getColumn(i, "prcpkindcd");
- if (erflag == "Y" && prcpkindcd == "60") {
- lf_hosinPrcpResncdSed(sFlag , "ds_main_prcplist", i, strSelResn);
- } else if (prcpgenrflag == "E") {
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinhosoutflag", "I");
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinprcpresncd", hosinprcpresncd);
- } else if (prcpgenrflag == "D" ) {
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinhosoutflag", "I");
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinprcpresncd", "00");
- } else {
- prcphosinprcpresncd = oTrgtObj.ds_main_prcplist.getColumn(i, "hosinprcpresncd");
- // 환자원내처방사유만 적용
- if (lf_pamHosinPrcpResnCdChk(prcphosinprcpresncd, sFlag)) {
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinhosoutflag","O");
- oTrgtObj.ds_main_prcplist.setColumn(i, "hosinprcpresncd","00");
- lf_hosinPrcpResncdSed(sFlag, "ds_main_prcplist", i); //SON0826 원복시 기존 약제사유로 원복.
- }
- }
- }
-
- lf_hosinPrcpResnChk(sFlag, oTrgtObj.ds_main_prcplist); //SON0826 원복시 기존 약제사유로 원복 후 동시투여 약제처리....
- }
-
- oTrgtObj.ds_paminfo.setColumn(0, "hosoutexptresncd", hosinprcpresncd);
- }
- /***************************************************************************************************
- * Function : lf_checkPrcpAuth
- * Description : 처방권한 check
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_checkPrcpAuth(sScrnFlag)
- {
- var sIoflag = ds_data_paminfo.getColumn(0, "ioflag");
- var sUserDeptCds = sysf_getUserInfo("dutplcecd");
- var anstdeptlst = emr_getOrderBaseInfo("anstdeptcd");
- var docSchInfoList = emr_getOrderBaseInfo("docschinfolist");
- var sUserdeptcd = sysf_getUserInfo("dutplcecd");
-
- if (sScrnFlag == "prcp") {
-
- var sUserOrdDeptNode = emr_getOrderBaseInfo("userorddeptcd");
- var userdeptcds = "";
- if (sUserOrdDeptNode != null && sUserOrdDeptNode.rowcount > 0) {
- for (var i=0 ; i <= sUserOrdDeptNode.rowcount ; i++) {
-
- userdeptcds = sUserOrdDeptNode.getColumn(i, "userorddeptcd");
- anstdeptlst.filterstr = "trgtcd=='" + userdeptcds + "'";
- if (anstdeptlst != null && anstdeptlst.rowcount > 0)
- break;
- }
- }
- else {
- anstdeptlst.filterstr = "trgtcd=='" + sUserdeptcd + "'";
- }
- anstdeptlst.filterstr = "";
- }
- if (sScrnFlag == "prcp" && (sIoflag != "O" && sIoflag != "S")) {
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_00.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_10.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_31.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_21.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_22.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_30.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_35.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_40.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_50.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_60.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_70.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_90.enable = true;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_95.enable = true;
- }
- if (!utlf_isNull(ds_init_operation.getColumn(0, "oprsrvno"))) {
- if (sScrnFlag == "prcp" && sIoflag != "O" && sIoflag != "S") {
- var prcpkindcd = ds_init_data.getColumn(0, "prcpkindcd");
- var objBtn = this.components("btn_prcpkcd_" + prcpkindcd);
- objBtn.setSelectStatus(true);
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_00.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_10.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_21.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_22.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_50.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_60.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_70.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_90.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_95.enable = false;
- }
- if (sScrnFlag == "prcp" && anstdeptlst != null && anstdeptlst.rowcount > 0) {
- if (ds_init_anstinfo.getColumn(0, "paramyn") == "Y") {
- if (sIoflag != "O" && sIoflag != "S") {
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_30.enable = false;
- grp_prcp.grp_prcpkindbtn.btn_prcpkcd_40.enable = false;
- }
- }
- if (prcpkindcd == "31" || (ds_init_anstinfo.getColumn(0, "paramyn") == "Y" && prcpkindcd == "35")) {
- return true;
- }
- else {
- return false;
- }
- }
- else if (userdeptcd == ds_init_operation.getColumn(0, "perfdeptcd")) {
- return true;
- }
- }
- if (sScrnFlag == "prcp") {
- if (ds_init_data.getColumn(0, "usge") != "prcp")
- return true;
- var prcpauthflag = ds_init_data.getColumn(0, "prcpauthflag");
- if (prcpauthflag != "0" && prcpauthflag != "3")
- return true ;
- }
-
- var atdoctridfg = lf_mmbfChkDrKindPosYN("3", "B", sysf_getUserInfo("jobposcd"));
- var orddeptcd = ds_data_paminfo.getColumn(0, "orddeptcd");
-
- if (sIoflag == "E") {
- var erorddeptcd = ds_data_paminfo.getColumn(0, "erorddeptcd");
-
- var nTrgtRow = sUserOrdDeptNode.findRow("userorddeptcd", orddeptcd);
- if (!utlf_isNull(nTrgtRow) && nTrgtRow > 0){
- return true;
- }
- var eradrvinfo = ds_data_paminfo.getColumn(0, "eradrvinfo");
- var eradrvorddeptcd = "";
- var eradrvorddrid = "";
- if (sScrnFlag == "prcp" && !utlf_isNull(eradrvinfo) && eradrvinfo != "-") {
- eradrvorddeptcd = lf_getArrayData(eradrvinfo, 0, 0 , "^", "|");
- eradrvorddrid = lf_getArrayData(eradrvinfo, 0, 1 , "^", "|");
-
-
- var nTrgtDeptRow = sUserOrdDeptNode.findRow("userorddeptcd", eradrvorddeptcd);
- if (!utlf_isNull(nTrgtDeptRow) && nTrgtDeptRow > 0){
- if ("Y" == atdoctridfg)
- return true;
- if (sysf_getUserInfo("userid") == eradrvorddrid)
- return true;
- }
- }
- var ordPatObj = frmf_getChildWindow("SMMMO04100");
- // 두 객체값이 다른 경우 새로운 진료대상자 화면을 open함
- if (ordPatObj != null) {
- var callvisityn = ordPatObj.frmf_getParameter("SMMMO04100_callvisityn");
- if (callvisityn == "N") {
- grp_prcp.btn_tempsave.enable = false;
- grp_prcp.btn_prcpsave.enable = false;
- grp_prcp.btn_prcpsave2.enable = false;
- grp_prcp.btn_prcpsave.tooltip = "응급실 Visit Time을 등록 하지 않으면 기록과 처방은 임시저장만 가능 합니다.";
- grp_prcp.btn_prcpsave2.tooltip = "응급실 Visit Time을 등록 하지 않으면 기록과 처방은 임시저장만 가능 합니다.";
- return false ;
- }
- else {
- var nTrgtDeptRow = sUserOrdDeptNode.findRow("userorddeptcd", erorddeptcd);
- if (!utlf_isNull(nTrgtDeptRow) && nTrgtDeptRow > 0){
- return true;
- }
- else {
- if (ds_data_paminfo.getColumn(0, "ervisityn") == "Y") return true;
- }
- }
- }
- return false;
- }
- else {
- if (sIoflag == "O" || sIoflag == "S") {
- var nTrgtRow = sUserOrdDeptNode.findRow("userorddeptcd", orddeptcd)
- if(utlf_isNull(nTrgtRow) || nTrgtRow < 1){
- return false;
- }
- }
- else {
- if (docSchInfoList.rowcount > 0 && atdoctridfg == "Y") {
- var wardcd = ds_data_paminfo.getColumn(0, "wardcd");
-
- dsf_createDs("ds_temp_icudeptinfo", []);
- lf_getHardCDList("Y", 425, 0 , ds_temp_icudeptinfo);
- var cdseqno = ds_icudeptinfo.getColumn(0, ds_temp_icudeptinfo.findRow("hardcd", wardcd), "cdseqno");
-
-
- for (var i= 0 ; i < docSchInfoList.rowcount ; i++) {
- var curTime = utlf_getCurrentTime().substr (0,4);
- var starttm = docSchInfoList.getColumn(i, "starttm");
- var endtm = docSchInfoList.getColumn(i, "endtm");
- var workdd = docSchInfoList.getColumn(i, "workdd");
- var icuprcpyn = docSchInfoList.getColumn(i, "icuprcpyn");
- var nicuprcpyn = docSchInfoList.getColumn(i, "nicuprcpyn");
- if (ds_init_data.getColumn(0, "prcpcd") == workdd && curTime >= starttm && curTime <= endtm) {
- if (icuprcpyn == "Y" && nicuprcpyn == "N") {
- if (cdseqno != "1"){
- var oRemoveDs = this.removeChild("ds_temp_icudeptinfo");
- oRemoveDs = null;
- return false;
- }
- }
- else if (icuprcpyn == "N" && nicuprcpyn == "Y") {
- if (cdseqno != "2"){
- var oRemoveDs = this.removeChild("ds_temp_icudeptinfo");
- oRemoveDs = null;
- return false;
- }
- }
- else if (icuprcpyn == "Y" && nicuprcpyn == "Y") {
- if (cdseqno != "2" && cdseqno != "1"){
- var oRemoveDs = this.removeChild("ds_temp_icudeptinfo");
- oRemoveDs = null;
- return false;
- }
- }
- }
- }
-
- var oRemoveDs = this.removeChild("ds_temp_icudeptinfo");
- oRemoveDs = null;
-
- }
- if (sScrnFlag == "prcp" && anstdeptlst != null && anstdeptlst.rowcount > 0) {
- return true;
- }
- if (ds_data_paminfo.getColumn(0, "subprcpyn") == "Y") {
- return true;
- }
- else {
- if (atdoctridfg == "Y") {
- var nFindRow = sUserOrdDeptNode.findRow("userorddeptcd", ds_data_paminfo.getColumn(0, "subprcpyn"));
- if (nFindRow >= 0)
- return true ;
- }
- }
- var nFindRow = sUserOrdDeptNode.findRow("userorddeptcd",orddeptcd);
- if (nFindRow < 0) {
- return false;
- }
- }
- var orddrid = "";
- if (sIoflag == "O" || sIoflag == "S")
- orddrid = ds_data_paminfo.getColumn(0, "orddrid");
- else
- orddrid = ds_data_paminfo.getColumn(0, "medispclid");
- if (sysf_getUserInfo("userid") == orddrid) {
- return true;
- }
- else {
-
-
- dsf_createDs("ds_temp_akinfo", []);
- lf_getHardCDList("Y", 317, 0 , ds_temp_akinfo);
- var cdseqno = ds_icudeptinfo.getColumn(0, ds_temp_icudeptinfo.findRow("hardcd", orddeptcd), "cdseqno");
- var nAkInfoRow= ds_temp_akinfo.findRow("hardcd", orddeptcd);
-
- if (nAkInfoRow >= 0) {
- var nAkInfoUserdeptRow = ds_temp_akinfo.findRow("hardcd", userdeptcd);
- if (nAkInfoUserdeptRow >= 0) {
- var oRemoveDs = this.removeChild("ds_temp_akinfo");
- oRemoveDs = null;
- return true;
- }
- }
-
- var oRemoveDs = this.removeChild("ds_temp_akinfo");
- oRemoveDs = null;
- }
- if ("Y" != atdoctridfg)
- return false;
- }
- return true;
- }
- /***************************************************************************************************
- * Function : lf_addDiagSetValue
- * Description : 선택된 진단명을 진단 instance에 맵핑한다.
- * Argument : diagInfo
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_addDiagSetValue(diagInfo)
- {
- var ds_src = ds_main_diagcdlist;
- var prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag");
-
- var orddd;
- var orddrid;
-
- if ( prcpgenrflag == "O" || prcpgenrflag == "S") {
- orddd = ds_paminfo.getColumn(0, "orddd");
- orddrid = ds_paminfo.getColumn(0, "orddrid");
- } else {
- orddd = ds_paminfo.getColumn(0, "indd");
- orddrid = ds_paminfo.getColumn(0, "medispclid");
- }
- cretno = ds_paminfo.getColumn(0, "cretno");
- orddeptcd = ds_paminfo.getColumn(0, "orddeptcd");
- var diagRow = diagInfo.split ( "▩" ).length;
- var srchRow = ds_src.rowcount - 1;
- var mdiagcd = ds_src.lookup("diagkindcdflag", 'M', "diagcd");
- var diagkindcdflag = ""; //주부유형
- for ( var i = 0; i < diagRow - 1; i++ ) {
- var ds_dest = ds_main_diagcdlist;
-
- ds_dest.insertRow(srchRow)
- ds_dest.copyRow(srchRow, ds_reset_diagcdlist, 0);
- var icd10cd = lf_getArrayData ( diagInfo, i, 8, "▩", "▦" );
- var diagcd = lf_getArrayData ( diagInfo, i, 9, "▩", "▦" );
- var diagengnm = lf_getArrayData ( diagInfo, i, 2, "▩", "▦" );
- var diaghngnm = lf_getArrayData ( diagInfo, i, 3, "▩", "▦" );
- var spclinfo = lf_getArrayData ( diagInfo, i, 5, "▩", "▦" );
- ds_src.setColumn(srchRow, "diagkindcdflag", "S");
- if ( utlf_isNull(mdiagcd) && i == 0) {
- ds_src.setColumn(srchRow, "diagkindcdflag", "M");
- } else {
- if ( spclinfo == "Y" ) { //산전특례
- //산정특례 처방이면 산전특례이면서 주상병이 있는지 찾는다.
- var findRow = ds_src.findRowExpr("diagkindcdflag == 'M' && spclinfo == 'Y'");
- var spcmdiagcd = (findRow == -1) ? null : ds_src.getColumn(findRow, "diagcd");
- if (utlf_isNull(spcmdiagcd)) { //값이 없으면 주상병으로 할 건지 물어본다.
- if ( sysf_messageBox ( "[" + icd10cd + "] 상병은 특례상병입니다. 주상병으로 하시겠습니까?","Q") == "6" ) {
- //하겠다고 하면 주상병으로 고침
- var srcNodeList = model.instances(0).selectNodes ( "/root/main/diaginfo/diagcdlist" );
- for ( var j = 0; j < ds_dest.rowcount; j++ ) {
- if (srchRow == j) {
- ds_dest.setColumn(j, "diagkindcdflag", "M" );
- } else {
- if (ds_dest.getColumn(j, "diagkindcdflag") == "M") {
- ds_dest.setColumn(j, "diagkindcdflag", "S");
- if (ds_dest.getColumn(j, "status") == "-") {
- //진단상태가 - 이면 U로 수정함
- ds_dest.setColumn(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, "▩", "▦" );
- */
- ds_src.setColumn(srchRow, "icd10cd", icd10cd);
- ds_src.setColumn(srchRow, "diagcd", diagcd);
- ds_src.setColumn(srchRow, "diagengnm", diagengnm);
- ds_src.setColumn(srchRow, "diaghngnm", diaghngnm);
- ds_src.setColumn(srchRow, "spclinfo", spclinfo);
- ds_src.setColumn(srchRow, "status", "I");
- ds_src.setColumn(srchRow, "instcd", sysf_getUserInfo("dutplceinstcd"));
- ds_src.setColumn(srchRow, "pid", ds_paminfo.getColumn(0, "pid"));
- ds_src.setColumn(srchRow, "orddd", orddd);
- ds_src.setColumn(srchRow, "cretno", cretno);
- ds_src.setColumn(srchRow, "orddeptcd", orddeptcd);
- ds_src.setColumn(srchRow, "orddrid", orddrid);
- ds_src.setColumn(srchRow, "genrflagcd", prcpgenrflag);
- ds_src.setColumn(srchRow, "diaghistcd", "O");
- ds_src.setColumn(srchRow, "diagtypecd", "D");
- ds_src.setColumn(srchRow, "diagkindcd", "C");
- ds_src.setColumn(srchRow, "anamneflag", "N");
- ds_src.setColumn(srchRow, "diagsignflag", "2");
- ds_src.setColumn(srchRow, "tootflagcd", "-");
- ds_src.setColumn(srchRow, "tootfact", "-");
-
- diagkindcdflag = ds_src.getColumn(srchRow, "diagkindcdflag" );
-
- lf_checkDiagHosinpPcp( icd10cd, prcpgenrflag, diagkindcdflag );
- srchRow++;
- /**************************************** 진단추가시 원외처방예외사유 진단인지 check ******************************/
-
- //치식 상병 입력 시 치식팝업 자동 호출 (2009.10.28 by JJE)
- var tootDiagFromToCd = ds_initsrch_tootdiagcd.getColumn(0, "trgtcd"); //ex: K01|K10
- if( !utlf_isNull(tootDiagFromToCd) ){
- var tootDiagFrCd = tootDiagFromToCd.split("|")[0];
- var tootDiagToCd = tootDiagFromToCd.split("|")[1];
- var tootDiagFrLngth = utlf_getStringLength(tootDiagFrCd);
- var tootDiagToLngth = utlf_getStringLength(tootDiagToCd);
- if(icd10cd.substring(0, tootDiagFrLngth) >= tootDiagFrCd && icd10cd.substring(0, tootDiagToLngth) <= tootDiagToCd){
- fDentifmla();
- }
- }
- //end 치식팝업 자동 호출
- }
-
- //검색라인 초기화
- ds_src.setColumn(srchRow, "icd10cd", "");
- ds_src.setColumn(srchRow, "diagengnm", "");
- div_all.grd_diaglist.setFocus();
- ds_main_diagcdlist.selectRow(ds_main_diagcdlist.rowcount - 1);
- ds_main_diagcdlist.rowposition = ds_main_diagcdlist.rowcount - 1;
- div_all.grd_diaglist.setCellPos(4);
- }
- /****************************************************************************************
- * Components : ds_grid_prcplist
- * Components ID : ds_grid_prcplist
- * Event : OnEnterDown
- * Argument : ioflag, flag ,srcNode, indx , chkval, popupfg, grdObj
- * Description : 액팅부서입력
- ****************************************************************************************/
- function lf_setPrcpExecDept( ioflag, flag ,srcNode:Dataset, indx , chkval, popupfg, grdObj ){
- if( indx < 1 || utlf_isNull(srcNode)){
- return ;
- }
-
- var oTrgtObj = null;
-
- if( popupfg == "child"){
- oTrgtObj = opener;
- } else{
- oTrgtObj = this;
- }
-
- var prcpclscd =srcNode.getColumn(indx, "prcpclscd");
- var prcpnodelist;
- var chngdeptcd;
- var grpno;
- if( flag == "prepprcpflag"){
- if( (ioflag == "O" || ioflag == "S" )&& ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) ) {
- var spcldrug = lf_getArrayData (srcNode.getColumn(indx, "drugmastspec") + "^", 0, 23, "^", "|" );
- if( (spcldrug == "M" || spcldrug == "S" ) && chkval == "Y" ) {
- sysf_messageBox("마약 및 수액은 prep지정 불가합니다.", "I");
- srcNode.setColumn(indx, "prepprcpflag", "N");
-
- if( grdObj != null ){
-
- var nCol = grdObj.getBindCellIndex("body", "prepprcpflag");
- grdObj.setCellProperty("body", nCol, "edittype", "none");
- }
- return ;
- }
- if( chkval == "Y"){
- srcNode.setColumn(indx, "prcpexecdeptcd", srcNode.getColumn(indx, "issdeptcd"));
-
- }else {
- srcNode.setColumn(indx, "prcpexecdeptcd", srcNode.getColumn(indx, "tempcol23"));
- }
- }
- }else if ( flag == "tpnyn"){
- if( (ioflag != "O" && ioflag != "S" )&& ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) ) {
- chngdeptcd = "";
- if( chkval == "Y"){
- srcNode.setColumn(indx, "fluidyn", "Y");
- chngdeptcd = "A753";
- }else {
- chngdeptcd = srcNode.getColumn(indx, "tempcol23");
- }
- srcNode.setColumn(indx, "prcpexecdeptcd", chngdeptcd);
-
- if( srcNode != null && srcNode.rowcount > 0 ){
- grpno = srcNode.getColumn(indx, "prcpmixno");
- for( var i= 0; i < srcNode.rowcount ; i++ ) {
- if(srcNode.getColumn(i, "prcpmixno") != grpno ){
- continue ;
- }
-
- if( !utlf_isNull(srcNode.getColumn(i, "tempcol1"))&& srcNode.getColumn(i, "tempcol1") != "000" ) {
- continue ;
- }
-
- if( chkval == "Y" ){
- srcNode.setColumn(i, "prcpexecdeptcd", chngdeptcd);
-
- }else{
- var tempcol23 = srcNode.getColumn(i, "tempcol23");
- srcNode.setColumn(i, "prcpexecdeptcd", tempcol23);
- }
- oTrgtObj.lf_gridUpdateChk("per", i);
- }
- }
- }
- }else if ( flag =="anticncryn"){
- if( (ioflag != "O" && ioflag != "S" )&& ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) ) {
- chngdeptcd = "";
- if( chkval == "Y"){
- chngdeptcd = "PMB";
- }else {
- chngdeptcd = srcNode.getColumn(indx, "tempcol23"); //PMR
- }
- srcNode.setColumn(indx, "prcpexecdeptcd", chngdeptcd);
- //prcpnodelist = opener.instance1.selectNodes(srcNode);
-
-
- if( srcNode != null && srcNode.rowcount > 0 ){
- grpno = srcNode.getColumn(indx, "prcpmixno");
- for( var i= 0; i < srcNode.rowcount ; i++ ) {
- if(srcNode.getColumn(i, "prcpmixno") != grpno ){
- continue ;
- }
- if( !utlf_isNull(srcNode.getColumn(i, "tempcol1")) && srcNode.getColumn(i, "tempcol1") != "000" ){
- continue ;
- }
-
- if( chkval == "Y" ){
- srcNode.setColumn(i, "prcpexecdeptcd", chngdeptcd);
- }else{
- srcNode.setColumn(i, "prcpexecdeptcd", srcNode.getColumn(i, "tempcol23"));
- }
-
- oTrgtObj.lf_gridUpdateChk("per", i);
- }
- }
- }
- }else if ( flag =="stocyn"){
- if( chkval == "Y"){
- var prcpcd = srcNode.getColumn(indx, "prcpcd");
-
- var oPointDsKeepprcplist = lf_getTopPatientinfo("N", "ds_keepprcplist") ;
- var sPrcpCd = oPointDsKeepprcplist.getColumn(oPointDsKeepprcplist.findRow("prcpcd", prcpcd), "prcpcd");
-
- if(utlf_isNull(sPrcpCd)){
- sysf_messageBox("비치약품마스터에 없는 처방은 비치지정 불가합니다.", "I");
- srcNode.setColumn(indx, "stocyn", "N");
-
- if( grdObj != null ){
- var nCol = grdObj.getBindCellIndex("body", "stocyn");
- grdObj.setCellProperty("body", nCol, "edittype", "none");
- }
- return ;
- }
-
- if(srcNode.getColumn(indx, "hosinhosoutflag") == "O"){
- sysf_messageBox("원외 처방은 비치지정 불가합니다.", "I");
- srcNode.setColumn(indx, "stocyn", "N");
- return ;
- }
-
- srcNode.setColumn(indx, "prcpexecdeptcd", "HOM" );
-
- }else {
- srcNode.setColumn(indx, "prcpexecdeptcd", srcNode.getColumn(indx, "tempcol23"));
- }
- }else if ( flag =="selfprcpflag"){
- if( chkval == "Y"){
- srcNode.setColumn(indx, "prcpexecdeptcd", "PMR" );
-
- }else {
- srcNode.setColumn(indx, "prcpexecdeptcd", srcNode.getColumn(indx, "tempcol23") );
- }
- }else if ( flag =="fluidyn"){
- var prcplist = srcNode.findRowExpr("status!='S'");
- var prcpmixno = model.getValue( srcNode + "[" + indx + "]/prcpmixno");
-
- srcNode.filterstr = "status!='S'";
- var prcplist = srcNode;
- if (prcplist != null && prcplist.rowcount > 0) {
- var status = "";
- for( var i = 0; i < prcplist.rowcount ; i++ ) {
- status = prcplist.getColumn(i, "status");
- if(prcplist.getColumn(i, "prcpmixno") == prcpmixno && ((prcplist.getColumn(i, "tempcol1") == "000" && status != "D" ) || ( status == "I"))){
- prcplist.setColumn(i, "fluidyn", chkval);
-
- if( status != "I" ){
- prcplist.setColumn(i, "status", "U");
- }
- }
- }
- }
- srcNode.filterstr = "";
- }
- }
- /***************************************************************************************************
- * Function : lf_checkDupInsu
- * Description : 기왕증 체크
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_checkDupInsu(sFlag , oGrid, sCtrlFlag)
- {
- var dupyn = "N";
- var dupcol = 1;
- if (sFlag == "child")
- dupyn = opener.ds_data_paminfo.getColumn(0, "dupinsuyn");
- else
- dupyn = ds_paminfo.getColumn(0, "dupinsuyn");
- if (!utlf_isNull(sCtrlFlag)) {
- oGrid.enable = (dupyn != "Y") ? false : true;
- }
- else {
- dupcol = oGrid.getBindCellIndex("body", "anamneflag");
- oGrid.setCellProperty("body", dupcol, "edittype", ((dupyn != "Y") ? "none" : "normal") );
- }
- }
- /***************************************************************************************************
- * Function : lf_choiOrdChk
- * Description : 선택진료 가능여부 체크
- * Argument :
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_choiOrdChk(objPrcpDs:Dataset)
- {
- if (objPrcpDs.getColumn(0, "tempcol24") != "Y") {
- sysf_messageBox("선택진료가 불가한 처방입니다.", "E");
- return false;
- }
- else {
- return true;
- }
- }
- /***************************************************************************************************
- * Function : lf_hosinPrcpResncdSed
- * Description : 원내처방사유 처리
- * Argument :
- * return type :
- * Creator :
- * 변환 OK
- ***************************************************************************************************/
- function lf_hosinPrcpResncdSed(sFlag, strSrc, nSendRow, 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 = "";
-
- var oTrgtObj = lf_getFormObject(sFlag);
- var ds_src = oTrgtObj.objects[strSrc];
-
- // 원무의 원내사유 체크
- prcpgenrflag = oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag");
- prcpclscd = ds_src.getColumn(nSendRow, "prcpclscd");
- prcpkindcd = lf_getDsValue(oTrgtObj.ds_init, 0, "prcpkindcd");
- erprcpkindcd = ds_src.getColumn(nSendRow, "prcpkindcd");
- if( utlf_isNull(erprcpkindcd) )
- erprcpkindcd = prcpkindcd;
-
- if (utlf_isNull(strSelResn)){
- if( prcpgenrflag == "E" && erprcpkindcd == "60" && oTrgtObj.ds_init.getColumn(0, "erresn" ) != "G3") {
- hosinprcpresncd = "00"; // 응급실 G3가 아닌 환자의 퇴원 처방을 원외로 설정 되게 하기 위해 2013.03.27 엄영만
- } else {
- hosinprcpresncd = oTrgtObj.ds_init.getColumn(0, "hosinprcpresncd"); //원무의 원내사유 체크
- }
- } else {
- hosinprcpresncd = strSelResn;
- }
-
- if(prcpgenrflag == "O" || prcpgenrflag == "S"){
- wardcd = "";
- } else {
- wardcd = oTrgtObj.ds_paminfo.getColumn(0, "wardcd");
- }
- // DSC(일일수술실 2360800000 원외로 되도록 2012.06.11 엄영만)
- if( erprcpkindcd == "60" &&
- ( (prcpgenrflag == "E" && oTrgtObj.ds_init.getColumn(0, "erresn") != "G3")
- || (prcpgenrflag == "D" && wardcd == "2360800000") )) {
- erflag = "Y" ;
- }
-
- /* 종속 원내처방사유 55: 검사, 수술, 처치에 사용하는 의약품
- 마약 45: 조제실제제,임상시험의약품,마약,방사성의약품,투석액,희귀의약품
- 항암 47: 6세이하의 소아에게 투약하는 항암제(경구) */
- /****************************** 원내처방 사유코드 처리 *******************************/
- if (prcpgenrflag == "O" || erflag == "Y") { //SON0919 외래이거나 g3아닌 응급퇴원처방, DSC(일일수술실 2360800000) 퇴원처방 인 경우
- // 원외전용약은 예외
- drugmastspec = ds_src.getColumn(nSendRow, "drugmastspec" ) + "^";
- hosinflag = lf_getArrayData(drugmastspec , 0, 11 , "^", "|" ); //SON0930 start 원외전용약은 예외
-
- //********************* 투석원내처방사유처리 **************************//
- var prcpcd = ds_src.getColumn(nSendRow, "prcpcd");
- if (hosinflag != "O") {
- var dialhospinoutcd = lf_getDsValue(oTrgtObj.ds_initsrch_prcpetccnts, 0, "dialhospinoutcd");
- iFind = dialhospinoutcd.indexOf(prcpcd);
- }
-
- if (iFind >= 0 && erflag != "Y") {
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "I");
- ds_src.setColumn(nSendRow, "hosinprcpresncd", "19");
- var message = "원내지정이 가능한 처방입니다. 전체 약제를 원내로 하시려면 [예], 해당약제만 원내처방하시려면 [아니오]를 선택해주십시오.";
- if (sysf_messageBox(message, "Q") == "6") {
- var old_hosinprcpresncd = oTrgtObj.ds_init.getColumn(0, "hosinprcpresncd");
-
- oTrgtObj.ds_init.setColumn(0, "hosinprcpresncd", "19");
-
- if(old_hosinprcpresncd != "19") // TF 와 동작을 동일하게 맞추기 위해(TF는 같은 값이면 event 미발생함)
- oTrgtObj.div_all.cmb_hosinprcpresn.onitemchanged.fireEvent(oTrgtObj.div_all.cmb_hosinprcpresn, new ItemChangeEventInfo);
- }
- oTrgtObj.ds_initsrch_prcpetccnts.setColumn(0, "dialhospinoutcd", "");
- //********************* 투석원내처방사유처리끝 ************************//
- } else {
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) return ; //약/주사가 아니면 return 20081012
-
- drugmastspec = ds_src.getColumn(nSendRow, "drugmastspec") + "^";
- var drugmastHosinprcpresncd = lf_getArrayData( drugmastspec, 0, 12, "^", "|" ); //약품마스터에 있는 원내처방 사유코드 처리
-
- if( ds_src.getColumn(nSendRow, "inclprcpno") != "0" ){ //종속처방 처리 추가 by sonjy 2008-09-16
- drugmastHosinprcpresncd = "55";
- drugmastHosinhosoutflag = "I" ; // 사용안하는 듯?
- }
- if ( drugmastHosinprcpresncd != "00" ) { //SON0826 주사제와 선처치, mset은 환자원내사유에 우선한다.
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "I" );
- ds_src.setColumn(nSendRow, "hosinprcpresncd", drugmastHosinprcpresncd );
- } else {
- if ( hosinprcpresncd != "00" ) { // 환자원내처방사유
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "I" );
- ds_src.setColumn(nSendRow, "hosinprcpresncd", hosinprcpresncd );
- } else {
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "O" );
- ds_src.setColumn(nSendRow, "hosinprcpresncd", "00" );
- }
- }
- }
- } else if (prcpgenrflag == "E") {
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) return;
-
- if ( erprcpkindcd == "60" && hosinprcpresncd == "00") { // 퇴원약 환자원내처방사유 적용
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "O");
- ds_src.setColumn(nSendRow, "hosinprcpresncd", "00");
- } else {
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "I");
- ds_src.setColumn(nSendRow, "hosinprcpresncd", hosinprcpresncd);
- }
- } else { //입원, DSC
- // 3120400000 화학요법실, 3120900000 항암주사실 퇴원약 처방시 원내 예외 사유 설정. "주사제와 같이 투여 하는 경우" 2012.06.11 엄영만
- if ( prcpgenrflag == "D" && erprcpkindcd == "60" && (wardcd == "3120900000" || wardcd == "3120400000")) {
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "I");
- ds_src.setColumn(nSendRow, "hosinprcpresncd", "52");
- } else {
- ds_src.setColumn(nSendRow, "hosinhosoutflag", "I");
- ds_src.setColumn(nSendRow, "hosinprcpresncd", "00");
- }
- }
- }
- /***************************************************************************************************
- * Function : lf_checkColor
- * Description : 처방 진행상태 체크
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_checkColor(ioflag, prcpstatcd, prcpclscd1, colorfg, scrnflag)
- {
- if (utlf_isNull(ioflag) || utlf_isNull(prcpstatcd))
- return -1 ;
- var iprcpstat = parseInt(prcpstatcd);
- if (iprcpstat >= 600) {
- return 4;
- }
- else if (iprcpstat >= 400) {
- if (colorfg == "E") return 4;
- else return 3;
- }
- if (ioflag == "O" || ioflag == "S") {
- if (iprcpstat >= 230) {
- if (colorfg == "E") return 4;
- else return 2;
- }
- }
- else {
- if (iprcpstat >= 100) {
- if (colorfg == "E") {
- return 4;
- }
- else {
- if (scrnflag == "N" && iprcpstat == 100) return 1;
- else return 2;
- }
- }
- }
- return 1 ;
- }
- /***************************************************************************************************
- * Function : lf_chkOpDrug
- * Description : 수술 예방적 항생제 투여 관련 체크
- * Argument :
- * return type :
- * Creator :
- * 변환 OK
- ***************************************************************************************************/
- function lf_chkOpDrug(sFlag, strSrc, nSendRow)
- {
- var oTrgtObj = lf_getFormObject(sFlag);
-
- var ds_src = this.objects[strSrc];
- var ds_temp_src = oTrgtObj.objects[strSrc];
-
- //A, 예정수술명 => P, 수술코드 처방 => S, 대상이 아닐 경우 => N
- var resnyn = appf_getPatientInfoDetail("resnyn");
- if( resnyn == "N" || utlf_isNull( resnyn ) ) return true ;
-
- var ndOpDrugList = null;
- var ret = null ;
- var drugmastspec = ds_src.getColumn(sendRow, "drugmastspec" ) + "^";
- var prcpcd = ds_src.getColumn(sendRow, "prcpcd" ) ;
- var prcpnm = ds_src.getColumn(sendRow, "prcpnm" ) ;
- var msg = "[" + prcpcd + ":" + prcpnm + "]";
- if( ds_src.getColumn(sendRow, "prcpkindcd") == "60" && (resnyn == "S" || resnyn == "A") ) {
- if ( lf_getArrayData ( drugmastspec, 0, 23, "^", "|" ) == "P" && lf_getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "N") {
- ret = sysf_messageBox( "수술시 예방적 항생제 투여 시는 퇴원약을 권장하고 있지 않습니다. " + msg + "처방을 ", "Q001") ;
- }
- } else {
- //3세대 수술 예방적 항생제 여부 check
- ndOpDrugList = oTrgtObj.ds_initsrch_opdrugcdlist.findRow("opdrugcd", ds_temp_src.getColumn(sendRow, "prcpcd"));
-
- if( ndOpDrugList > -1 && ( resnyn == "P" || resnyn == "A")) {
- ret = sysf_messageBox( "수술시 예방적 항생제로 3세대 cephalosporin 또는 aminoglycoside를 권장하고 있지 않습니다." + msg + " 처방을 변경 ", "S004") ;
- } else if ( lf_getArrayData ( drugmastspec, 0, 23, "^", "|" ) == "P" && lf_getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "N" && ( resnyn == "S" || resnyn == "A")) {
- ret = sysf_messageBox( "수술시 예방적 항생제 투여 시는 장기투여를 권장하고 있지 않습니다." + msg + " 처방을 ", "Q001") ;
- }
- }
-
- if( ret == 6 ){ //yes=> 항생제 clear
- ds_temp_src.deleteRow(sendRow);
- return false ;
- } else if( ret == 7 ) { //no => 항생제 사유 입력
- oTrgtObj.frmf_setParameter ("SPMMO016000_resnflag" , "O" );
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt = this.getOwnerFrame().position.x + 500;
- var ypt = this.getOwnerFrame().position.y + 400;
-
- var objArgs = new Object();
- objArgs.arg_ds_migdrugmthd = ds_migdrugmthd;
-
- frmf_modal("SPMMO16000", "SPMMO16000", objArgs, false, mon, xpt, ypt, null, null, null, null, null, "P"); //사유입력창
-
- //fPrcpModal ( "SPMMO16000", 400, 100 ); //사유입력창
- var resncnts = oTrgtObj.frmf_getParameter ("SPMMO016000_resncnts");
- ds_temp_src.setColumn(sendRow, "tempcol19" ,resncnts);
- }
- return true ;
- }
- /***************************************************************************************************
- * Function : lf_hosinPrcpResnChk
- * Description : 약주사 원내처방 사유 체크
- * Argument : sFlag [String : ]
- * : oDestDs [Dataset : 검색Dataset]
- * return type :
- * Creator :
- * 변환 OK
- ***************************************************************************************************/
- function lf_hosinPrcpResnChk(sFlag, oDestDs)
- {
- // 약주사 원내처방사유 체크
- //var prcpclscdchk1 = "";
- var prcpclscdchkA2 = "";
- var prcpclscdchkA4 = "";
- var prcpclscdchkA6 = "";
- var prcpclscd = "";
- // G3아닌 응급퇴원약 원내외 처리 부분
- var prcpgenrflag = "";
- var prcpkindcd = "";
- var erflag = "";
-
- // 약제원/내외구분 O/I Setting값이 있는 경우 모든 사유처리에서 제외하도록.
- var hosinflag = "";
- var drugmastspec = "";
- var age;
- var oTrgtObj = lf_getFormObject(sFlag);
-
- //G3아닌 응급퇴원약 원내외 처리 부분
- //DSC 퇴원처방 처리
- prcpgenrflag = oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag");
- if( (prcpgenrflag == "E" && oTrgtObj.ds_init.getColumn(0, "erresn") != "G3") || prcpgenrflag == "D" ){ //SON0919 G3아닌 응급퇴원약 원내외 처리 부분 BY SONJY 20080917 start
- erflag = "Y";
- }
- //var hosinprcpresncd;
- // G3아닌 응급퇴원약 원내외 처리 부분
- if ( oTrgtObj.ds_root.getColumn(0, "usge") == "prcp" && (prcpgenrflag =="O" || erflag == "Y" ) ) { //SON0919 G3아닌 응급퇴원약 원내외 처리 부분 BY SONJY
- dsf_createDs("ds_tempSrc");
- ds_tempSrc.copyData(oDestDs);
-
- if( erflag == "Y") { //원내처방사유가 45 SON0919 start
- ds_tempSrc.filter("prcpkindcd == '60' && hosinprcpresncd == '45'");
- } else {
- ds_tempSrc.filter("hosinprcpresncd == '45'");
- }//SON0919 end
-
- var prcpclscdNodeValue = "";
- for(var i = 0; i < ds_tempSrc.rowcount; i++) {
- drugmastspec = ds_tempSrc.getColumn(i, "drugmastspec");
- hosinflag = lf_getArrayData ( drugmastspec + "^", 0, 11 , "^", "|" );
- if( hosinflag == "O" ) continue ; //SON0930 start 원외전용약은 예외
-
- prcpclscdNodeValue = ds_tempSrc.getColumn(i, "prcpclscd");
- if ( prcpclscdNodeValue == "A2" ) {
- prcpclscdchkA2 = "A2"
- } else if ( prcpclscdNodeValue == "A4" ){
- prcpclscdchkA4 = "A4"
- } else if ( prcpclscdNodeValue == "A6" ){
- prcpclscdchkA6 = "A6"
- }
- }
- if ( !utlf_isNull(prcpclscdchkA2) || !utlf_isNull(prcpclscdchkA4) || !utlf_isNull(prcpclscdchkA6) ) { //값이 있으면
- for ( var i = 0; i < oDestDs.rowcount; i++ ) { // 처방화면에 넘어온 것을 모두 찾아서 처방건별처리
- prcpclscd = oDestDs.getColumn(i, "prcpclscd");
- if( prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6" ) continue ; //sonjy 20081012 약/주사일때만 check
-
- prcpkindcd = oDestDs.getColumn(i, "prcpkindcd");
- if( erflag == "Y" && prcpkindcd != "60" ){ //응급 G3가 아니고 퇴원처방이 아닌경우 응급원내사유로 원복
- oDestDs.setColumn(i, "hosinhosoutflag", "I" );
- oDestDs.setColumn(i, "hosinprcpresncd", ds_init.getColumn(0, "hosinprcpresncd") );
- continue ;
- }
-
- drugmastspec = oDestDs.getColumn(i, "drugmastspec");
- hosinflag = lf_getArrayData ( drugmastspec + "^", 0, 11, "^", "|" );
- if ( prcpclscd != "A6" && hosinflag != "O" ) { //주사제는 예외 , 기본 원외인것도 예외 SON0930
- if ( prcpclscdchkA2 == prcpclscd || prcpclscdchkA4 == prcpclscd || prcpclscdchkA6 == prcpclscd ) {
- var hosinprcpresncd = oDestDs.getColumn(i, "hosinprcpresncd");
- if ( hosinprcpresncd != "45" && hosinprcpresncd != "47" && hosinprcpresncd != "57" && hosinprcpresncd != "55" ) { //45, 47이 아니면, 55는 MSET
- oDestDs.setColumn(i, "hosinhosoutflag", "I" );
- oDestDs.setColumn(i, "hosinprcpresncd", "57" );
- }
- }
- }
- } // End of 처방건별처리
- }// End of 값이 있으면
- }
- }
- /***************************************************************************************************
- * Function : lf_pamHosinPrcpResnCdChk
- * Description : 환자에 해당되는 원내처방사유인지 체크
- * Argument :
- * return type :
- * Creator :
- * 변환 OK
- ***************************************************************************************************/
- function lf_pamHosinPrcpResnCdChk(sHosinPrcpResnCd, sFlag)
- {
- var cdnm = "";
- if (sFlag == "child") {
- var oTrgtObj = lf_getFormObject(sFlag);
- cdnm = oTrgtObj.ds_P0034.lookup("cdid", sHosinPrcpResnCd, "cdnm");
- }else {
- cdnm = utlf_isNull(this.objects["ds_P0034"]) ? "" : ds_P0034.lookup("cdid", sHosinPrcpResnCd, "cdnm");
- }
- if (!utlf_isNull(cdnm)) {
- return true;
- } else {
- if (sHosinPrcpResnCd == "52" || sHosinPrcpResnCd == "55") return false; //SON0826 선처치/주사제는 환자사유에 우선한다.
- else return true ;
- }
- }
- /***************************************************************************************************
- * Function : lf_chkInCnclYN
- * Description : 응급간호(ER Census)에서 삭제처리 했는지 여부 조회
- * 변경요청(8106), 응급간호에서 삭제처리한 환자 선택 시 blocking 메세지 처리 추가
- * 응급진료대상자 및 처방창에서 호출함
- * Argument : pid []
- * : orddd []
- * : cretno []
- * : mode [String : C:false리턴 시 창을닫음, B:처방저장을 blocking]
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_chkInCnclYN(pid, orddd, cretno, pMode)
- {
- if (utlf_isNull(pMode)) pMode = "C";
- var sRef = dsf_createDsRow("ds_send_reqdata_erincncl", [{col:"pid", type:"string", size:256, val:pid},
- {col:"orddd", type:"string", size:256, val:orddd},
- {col:"cretno", type:"string", size:256, val:cretno}]);
- var sRstlRef = dsf_createDs("ds_hidden_erincnclinfo");
-
- var oParam = {};
- oParam.id = "TRMMO04404";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetChkInCnclYN";
- oParam.inds = "req=" + sRef;
- oParam.outds = sRstlRef + "=info";
- oParam.async = false;
- oParam.callback = "cf_TRMMO04404";
- tranf_submit(oParam);
-
- var oRstlRef = this.objects[sRstlRef];
-
- if(arErrorCode.pop("TRMMO04404") > -1) {
- //조회 결과, 삭제처리여부 N이면 처방창 호출 가능, 그 외(삭제처리 했을 경우)에는 blocking
- if (oRstlRef.getColumn(0, "incnclyn") == "N" ) {
- return true;
- } else {
- sysf_messageBox("삭제 처리 환자입니다.\n처방입력은 불가 합니다.\n\n응급 간호에", "I007");
- if (pMode == "C") {
- var orgPid = appf_getPatientInfo("pid");
- var orgOrddd = appf_getPatientInfoDetail("indd");
- var orgCretno = appf_getPatientInfoDetail("cretno");
- if (pid == orgPid && orddd == orgOrddd && cretno == orgCretno) {
- var mainObj = frmf_getMainViewer();
- var curPrcpObj = mainObj.frmf_findPopup("SMMMO00100"); // 활성화된 처방Main 화면 object loading
- var curCpObj = mainObj.frmf_findPopup("SMMMP00800"); // 활성화된 CP Main 화면 object loading
- // 처방창이 열려있다면 입력된 처방을 삭제하고 처방창 close
- if (!utlf_isNull(curPrcpObj)) {
- curPrcpObj.ds_main_prcplist.clearData();
- curPrcpObj.lf_appendChildPrcp("ds_reset_prcplist", "ds_main_prcplist", "main");
- }
- if (!utlf_isNull(curCpObj)) {
- curCpObj.ds_main_prcplist.clearData();
- curCpObj.lf_appendChildPrcp("ds_reset_prcplist", "ds_main_prcplist", "main");
- }
- }
- } else if (pMode == "B") {
- // 저장 blocking, 처방저장 버튼의 상태를 disabled 시킴
- btn_tempsave.enable = false;
- btn_prcpsave.enable = false;
- btn_tempsave.tooltip = "삭제 처리 환자입니다. 처방입력은 불가 합니다. 응급 간호에 확인하십시오.";
- btn_prcpsave.tooltip = "삭제 처리 환자입니다. 처방입력은 불가 합니다. 응급 간호에 확인하십시오.";
- // 입력된 처방을 삭제시킴 (처방이 남아있으면 창 닫을 때 저장여부를 또 물어봄)
- ds_main_prcplist.clearData();
- lf_appendChildPrcp("ds_reset_prcplist", "ds_main_prcplist", "main");
- }
- if (utlf_isNull(oRstlRef.getColumn(0, "incnclyn"))) {
- oRstlRef.addColumn("incnclyn", "string");
- oRstlRef.setColumn(0, "incnclyn", "Y");
- }
- return false;// 삭제처리 환자인 경우 false
- }
- } else {
- dsf_deleteDs("ds_send_reqdata_erincncl");
-
- if (utlf_isNull(oRstlRef.getColumn(0, "incnclyn"))) {
- oRstlRef.addColumn("incnclyn", "string");
- oRstlRef.setColumn(0, "incnclyn", "Y");
- }
-
- return false; //submit 실패 시 false
- }
- }
- function cf_TRMMO04404(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /***************************************************************************************************
- * Function : lf_getLoadingStatus
- * Description : 처방화면 Main loading 여부를 세팅
- * : 형식 : 기관명 + 화면명 + 로그인과 + 로그인한 사용자 + 로그인일시
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_getLoadingStatus()
- {
- return frmf_getParameter("PRCP_LOADING_STATUS");
- }
- /***************************************************************************************************
- * Function : lf_addSetPrcpChk
- * Description : 처방이 발행될때 set로 같이 나가야할 처방 처리
- * Argument : sFlag [String : child or else]
- * : objSrcDs [Dataset : source node]
- * : oDestDs [Dataset : 목적지 node; child일때는 opener.root.main.prcp, 아니면 "/root/main/prcp" 이다]
- * : nSendRow [Number : 검색된 내용중 메인으로 보내고자 하는 row]
- * : nSrchRow [Number : 메인에 들어간 자리. 검색로우(nSrchRow) 바로 전이다.]
- * : sPrcpInptFlag [String : 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034]
- * return type : nSrchRow 에러시 0
- * Creator :
- ***************************************************************************************************/
- function lf_addSetPrcpChk(sFlag, objSrcDs, oDestDs, nSendRow, nSrchRow, sPrcpInptFlag) {
- var prcpcd = objSrcDs.getColumn(nSendRow, "prcpcd");
- var addprcpcd = "";
- var iFind = -1;
- var oPointSetPrcpList = emr_getOrderBaseInfo("setprcplist");
- var setprcpchk = oPointSetPrcpList.getColumn(0, "setprcp");
- var oTrgtObj = null;
-
- if (sFlag == "child") {
- oTrgtObj = opener;
- }else{
- oTrgtObj = this;
- }
-
- // 기존 search함수에서 무결성이 어긋나 개별 체크 변경
- var precureprcpflag = "";
- var calcflag = "";
- var prcpdelivefact = "";
- var firStage = setprcpchk.split("^");
- for (var 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 = oTrgtObj.ds_init_data.getColumn(0, "prcpdd");
- var insukind = oTrgtObj.ds_data_paminfo.getColumn(0, "insukind");
- var sRef = dsf_createDsRow("ds_temp_prcpcd", [{col:"prcpcd", type:"string", size:256, val:addprcpcd}, // 처방코드
- {col:"prcpdd", type:"string", size:256, val:prcpdd}, // 처방일
- {col:"insukind", type:"string", size:256, val:insukind}, // 보험유형
- {col:"srchkind", type:"string", size:256, val:"B2"}]); // 검색종류 default="ANST"
- var sAddSetPrcpDs = dsf_createDs("ds_temp_addsetprcp");
- var oAddSetPrcpDs = this.objects[sAddSetPrcpDs];
- var oParam = {};
- oParam.id = "TRMMO00207"; // transaction을 구분하기 위한 ID
- oParam.service = "prcpmngtapp.PrcpMngt"; // service ID
- oParam.method = "reqGetPrcpMultiSrchInfo"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.outds = sAddSetPrcpDs + "=prcplist"; // transaction을 처리 결과를 받을 Dataset의 ID
- tranf_submit(oParam);
- /*
- ** 자동발생코드 추가
- ** 처방코드 : NHC297EMG, 자동발생코드 : FE654303G
- ** 자동발생코드는 돈계산에서 제외되어야 함.
- ** 자동발생코드 처방전달사항 자동 생성=>[HEART-SPECT 핵의학검사용]
- */
- if (oAddSetPrcpDs != null && oAddSetPrcpDs.rowcount > 0) {
- oAddSetPrcpDs.setColumn(0, "prcpdelivefact", prcpdelivefact);
- oAddSetPrcpDs.setColumn(0, "tempcol17", calcflag); // 자동발생코드는 돈계산이 되어선 안됨.
- }
-
- // 자동발생 처방 입력 구분 추가
- // SET 처방일 때 약품의 기본 일수는 수가계산법이 어떤 것이든 기본을 1일로 되도록 요청번호
- serPrcpSrchRow = lf_addPrcpDetl(sFlag, oAddSetPrcpDs, oDestDs, 0, nSrchRow, "34");
- if (serPrcpSrchRow != 0){
- nSrchRow++;
- }
- // Temp로 사용한 Dataset을 삭제
- var oRemoveDs = this.removeChild(sRef);
- var oRemoveDs = this.removeChild(sAddSetPrcpDs);
- oRemoveDs = null;
- }
- return nSrchRow;
- }
- /***************************************************************************************************
- * Function : lf_prcpDirecSrch
- * Description : 지시처방 J의 싱글코드 검색
- * : 검색후 수가코드의 그룹싱글구분이 M 일경우는 그 그룹코드로 다시 SINGLE 코드를 찾아온다.
- * Argument : oDsRsltRef [Dataset : 조회된 값을 받을 대상 데이타셋]
- * : sCond1 [String : 처방명, 코드명, 성분명, old수가코드]
- * : sCond3 [String : 처방일]
- * : sCond4 [String : 환자보험유형]
- * : sCond5 [String : 그룹지시처방코드]
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_prcpDirecSrch(sCond1, sCond3, sCond4, sCond5)
- {
- if (utlf_isNull(sCond3)) {
- sCond3 = utlf_getCurrentDate();
- }
- if (utlf_isNull(sCond4)) {
- sCond4 = "11";
- }
-
- var sRef = dsf_createDsRow("ds_TRMMO00102", [{col:"cond1", type:"string", size:256, val:sCond1}, //처방명, 수가코드
- {col:"cond2", type:"string", size:256, val:"-"}, //외래, 입원, 응급 구분
- {col:"cond3", type:"string", size:256, val:sCond3}, //처방일
- {col:"cond4", type:"string", size:256, val:sCond4}, //환자보험유형
- {col:"cond5", type:"string", size:256, val:sCond5},
- {col:"cond99", type:"string", size:256, val:"getDirecGroupInfo"}]); // 검색구분
-
- var oParam = {};
- oParam.id = "TRMMO00102";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpSrchInfo";
- oParam.inds = "req=" + sRef;
- oParam.outds = "ds_prcpdirec_prcplist=prcplist";
- tranf_submit(oParam);
-
- dsf_setDefaultVal(ds_prcpdirec_prcplist, "prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,drugmthdspccd:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,drgacptflag:-");
- dsf_deleteDs(sRef);
- }
- /***************************************************************************************************
- * Function : lf_reqInFecPatList
- * Description : 감염관리 환자 여부를 확인, 직원감염노출사고 보고서 open
- * Argument : sRgstNo [String : 주민번호1]
- * : sRgstNo2 [String : 주민번호2]
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_reqInFecPatList(sRgstNo, sRgstNo2)
- {
- var sRef = dsf_createDsRow("ds_cond_reqdata", [{col:"rgstno", type:"string", size:256, val:sRgstNo},
- {col:"rgstno2", type:"string", size:256, val:sRgstNo2}]);
- var oRef = this.objects[sRef];
- var sDsTemp = dsf_createDs("ds_temp");
- var oDsTemp = this.objects[sDsTemp];
- var oParam = {};
- oParam.id = "TRMMO04108"; // transaction을 구분하기 위한 ID
- oParam.service = "prcpmngtapp.ConcPatMngt"; // service ID
- oParam.method = "reqGetInfecPatInfo"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.outds = sDsTemp + "=infecpatlist"; // transaction을 처리 결과를 받을 Dataset의 ID
- tranf_submit(oParam);
- // 등록번호 유/무
- if (oDsTemp.getColumn(0, "pflag") == "Y") {
- var infecojb = frmf_getChildWindow("SMASI01000");
- // 현재 직원감염노출사고 보고서가 있는 경우, close후, 다시 open
- if (infecojb != null) {
- infecojb.javascript.fClose();
- }
- frmf_setParameter("sFlag", "P");
- frmf_open("SMASI01000");
- }
- // Temp로 사용한 Dataset을 삭제
- var oRemoveDs = this.removeChild(sDsTemp);
- oRemoveDs = null;
- oRemoveDs = this.removeChild(sRef);
- oRemoveDs = null;
- }
- /***************************************************************************************************
- * Function : lf_prcpGroupSrch
- * Description : 그룹코드 M의 싱글코드 검색
- * : 검색후 수가코드의 그룹싱글구분이 M 일경우는 그 그룹코드로 다시 SINGLE 코드를 찾아온다.
- * Argument : oDsRsltRef [Dataset : 조회된 값을 받을 대상 데이타셋]
- * : sCond1 [Stirng : 처방명, 코드명, 성분명, old수가코드]
- * : sCond3 [Stirng : 처방일]
- * : sCond4 [Stirng : 환자보험유형]
- * : sCond5 [Stirng : 진단검사 그룹처방일 때 검체코드정보]
- * : sCond6 [Stirng : 진단검사 검사분류유형]
- * : sCond99 [Stirng : 검색구분]
- * : sPrcpExecDeptCd [Stirng : 검색구분]
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_prcpGroupSrch(oDsRsltRef, sCond1, sCond3, sCond4, sCond5, sCond6, sCond99, sPrcpExecDeptCd)
- {
- var sRef = dsf_createDsRow("ds_cond_deptlist", [{col:"cond1", type:"string", size:256, val:sCond1},
- {col:"cond2", type:"string", size:256, val:""}, // 외래, 입원, 응급 구분
- {col:"cond3", type:"string", size:256, val:""},
- {col:"cond4", type:"string", size:256, val:""},
- {col:"cond5", type:"string", size:256, val:sCond5},
- {col:"cond6", type:"string", size:256, val:sCond6},
- {col:"cond10", type:"string", size:256, val:""},
- {col:"cond99", type:"string", size:256, val:""},
- {col:"sch_prcpexecdeptcd", type:"string", size:256, val:sPrcpExecDeptCd}]);
- var oRef = this.objects[sRef];
- if (utlf_isNull(sCond3)) {
- sCond3 = utlf_getCurrentDate();
- }
- if (utlf_isNull(sCond4)) {
- sCond4 = "11";
- }
- if (utlf_isNull(sCond99)) {
- sCond99 = "getPrcpGroupInfo";
- }
- var prcpgenrflag = opener.ds_data_paminfo.getColumn(0, "ioflag");
- if (utlf_isNull(prcpgenrflag)) {
- prcpgenrflag = ds_data_paminfo.getColumn(0, "ioflag");
-
- if (utlf_isNull(prcpgenrflag)) {
- prcpgenrflag = "-";
- }
- }
- //진료과 추가
- var orddeptcd = opener.ds_data_paminfo.getColumn(0, "orddeptcd");
- if (utlf_isNull(orddeptcd)) {
- orddeptcd = ds_data_paminfo.getColumn(0, "orddeptcd");
- if (utlf_isNull(orddeptcd)) {
- orddeptcd = "*";
- }
- }
- oRef.setColumn(0, "cond2", prcpgenrflag); // 외래, 입원, 응급 구분
- oRef.setColumn(0, "cond3", sCond3); // 처방일
- oRef.setColumn(0, "cond4", sCond4); // 환자보험유형
- oRef.setColumn(0, "cond10", orddeptcd); // 진료과
- oRef.setColumn(0, "cond99", sCond99); // 검색구분
- var oParam = {};
- oParam.id = "TRMMO00101"; // transaction을 구분하기 위한 ID
- oParam.service = "prcpmngtapp.PrcpMngt"; // service ID
- oParam.method = "reqGetPrcpSrchInfo"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.outds = oDsRsltRef.name + "=prcplist"; // transaction을 처리 결과를 받을 Dataset의 ID
- tranf_submit(oParam);
- var oRemoveDs = this.removeChild(sRef);
- oRemoveDs = null;
- }
- /***************************************************************************************************
- * Function : lf_specOrdPopUpYN
- * Description : 선택진료신청관리 팝업 open 여부 체크
- * Argument : sPid [String : 환자번호]
- * : sCretNo [String : 순번]
- * : sOrdDd [String : 입원일/진료일]
- * : sOrdDeptCd [String : 진료과]
- * : sOrdDrId [String : 주치의]
- * : sOrdType [String : 입원외래구분(O:외래진료대상자/I:입원결정서)]
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_specOrdPopUpYN(sPid, sCretNo, sOrdDd, sOrdDeptCd, sOrdDrId, sOrdType)
- {
- // 20091007 JJE 추가 : 주진료과 의사가 진료지원과의 선택진료의사 선택 여부(hardcdno:134) 및 원무 팝업 호출
- var sSelSpeCordYN = "";
- if (utlf_isNull(sOrdType))
- sOrdType = "O"; // 입원장에서 호출 시에는 I로 보냄.. (2009.11.03 추가)
- if (sOrdType != "O")
- sSelSpeCordYN = opener.ds_initsrch.getColumn(ds_initsrch.findRow("trgtcd", "Y"), "/root/initsrch/selspecordyn[trgtcd = 'Y']/trgtcd");
- else
- sSelSpeCordYN = ds_init.getColumn(ds_init.findRow("hardcd", "Y"), "/root/init/selspecordyn/hardcd[hardcd = 'Y']/hardcd");
- if (!utlf_isNull(sSelSpeCordYN)) {
- var sRef = dsf_createDsRow("ds_cond_cnsttypecombo", [{col:"pid", type:"string", size:256, val:sPid},
- {col:"cretno", type:"string", size:256, val:sCretNo},
- {col:"orddd", type:"string", size:256, val:sOrdDd},
- {col:"orddeptcd", type:"string", size:256, val:sOrdDeptCd},
- {col:"orddrid", type:"string", size:256, val:sOrdDrId},
- {col:"ordtype", type:"string", size:256, val:sOrdType}]);
- var oRef = this.objects[sRef];
- var sDsTemp = dsf_createDs("ds_temp");
- var oDsTemp = this.objects[sDsTemp];
- var oParam = {};
- oParam.id = "TRPMC06801"; // transaction을 구분하기 위한 ID
- oParam.service = "patinfomngtapp.SpecAppFrm"; // service ID
- oParam.method = "reqGetSpecOrdOpenYN"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.outds = sDsTemp + "=saim"; // transaction을 처리 결과를 받을 Dataset의 ID
- tranf_submit(oParam);
- // 조회된 환자번호
- var saim_pid = oDsTemp.getColumn(0, "pid");
- if (saim_pid == 0) {
- // Parameter: 진료형태▦환자번호▦입원/진료일▦생성번호▦진료과▦주치의▦등록위치구분 : rgstposflag (I:입원,O:외래,M:진료,N:간호)
- frmf_setParameter("SMPMC06800_PARM", sOrdType + "▦" + sPid + "▦" + sOrdDd + "▦" + sCretNo + "▦" + sOrdDeptCd + "▦" + sOrdDrId + "▦" + "M");
- frmf_modal("SMPMC06800", "SMPMC06800");
- }
- var oRemoveDs = this.removeChild(sRef);
- oRemoveDs = null;
- oRemoveDs = this.removeChild(sDsTemp);
- oRemoveDs = null;
- }
- }
- /***************************************************************************************************
- * Function : lf_checkPrcpUnit
- * Description : 처방 단위 유효성체크
- * Argument : sPrcpCd [String : 항목코드]
- * : drprcpetc3 [String : 항목코드]
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_checkPrcpUnit(sPrcpCd, drprcpetc3)
- {
- var sRef = dsf_createDsRow("ds_cond_sch_prcpcd", [{col:"prcpcd", type:"string", size:256, val:sPrcpCd},
- {col:"prcptims", type:"string", size:256, val:1},
- {col:"prcpdayno", type:"string", size:256, val:1}]);
- var oRef = this.objects[sRef];
- var sDsTemp = dsf_createDs("ds_temp");
- var oDsTemp = this.objects[sDsTemp];
- var ret = false;
- var oParam = {};
- oParam.id = "TRMMO00142"; // transaction을 구분하기 위한 ID
- oParam.service = "prcpmngtapp.PrcpMngt"; // service ID
- oParam.method = "reqGetPrcpUnit"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.outds = sDsTemp + "=prcpunit"; // transaction을 처리 결과를 받을 Dataset의 ID
- tranf_submit(oParam);
- oDsTemp.filterstr = "drprcpetc3=='" + drprcpetc3 + "'";
- if (oDsTemp.getRowCount() > 0) {
- ret = true;
- }
- oDsTemp.filterstr = "";
- var oRemoveDs = this.removeChild(sRef);
- oRemoveDs = null;
- oRemoveDs = this.removeChild(sDsTemp);
- oRemoveDs = null;
- return ret ;
- }
- /***************************************************************************************************
- * Function : lf_childTPNChk
- * Description : 소아 TPN Repeat처방시 체크.
- * Argument : strSrc [Dataset : ]
- * : nSendRow [Number : ]
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_childTPNChk(strSrc, nSendRow)
- {
- var sRef = dsf_createDsRow("ds_cond_sch_prcpcd", [{col:"tpn_testreqlnkno", type:"string", size:256, val:""},
- {col:"tpn_prcpdd", type:"string", size:256, val:""}]);
- var oRef = this.objects[sRef];
- var sDsTemp = dsf_createDs("ds_temp");
- var oDsTemp = this.objects[sDsTemp];
- // 저장로직 start
- oRef.setColumn(0, "tpn_testreqlnkno", ""); // strSrc.getColumn(nSendRow, "testreqlnkno")); // 검사의뢰지번호
- oRef.setColumn(0, "tpn_prcpdd", ""); // opener.ds_prcpdd.getValue("/root/init/prcpdd")); // 처방일자
- var oParam = {};
- oParam.id = "TXMMO02901"; // transaction을 구분하기 위한 ID
- oParam.service = "prcpmngtapp.PrcpMngt"; // service ID
- oParam.method = "reqExeTPNChildInfo"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.outds = sDsTemp + "=tpndata"; // transaction을 처리 결과를 받을 Dataset의 ID
- tranf_submit(oParam);
- strSrc.setColumn(nSendRow, "testreqlnkno", sDsTemp.getColumn(0, "tpnno"));
- // 저장로직 end
- if (sysf_messageBox("세부함량을 그대로 유지하시겠습니까?", "Q") != "6") {
- var prcptpnno = strSrc.getColumn(nSendRow, "testreqlnkno");
- if (!utlf_isNull(prcptpnno)) {
- frmf_setParameter("SSADB70201_prcptpnno", prcptpnno);
- frmf_setParameter("SSADB70201_prcptpnyn", "Y");
- lf_prcpModal("SSADB70201", objArg);
- frmf_clearParameter("SSADB70201_prcptpnno");
- frmf_clearParameter("SSADB70201_prcptpnyn");
- }
- }
- var oRemoveDs = this.removeChild(sRef);
- oRemoveDs = null;
- oRemoveDs = this.removeChild(sDsTemp);
- oRemoveDs = null;
- }
- /***************************************************************************************************
- * Function : lf_addSetPrcpChkKNUH
- * Description : 처방이 발행될때 set로 같이 나가야할 처방 처리
- * Argument : objFlag - child or else
- * : strSrc - source node
- * : strDest - 목적지 node; child일때는 opener.root.main.prcp, 아니면 "/root/main/prcp" 이다
- * : nSendRow - 검색된 내용중 메인으로 보내고자 하는 row
- * : srchRow - 메인에 들어간 자리. 검색로우(srchRow) 바로 전이다.
- * : prcpInptFlag - 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술
- * return type : srchRow 에러시 0
- * Creator :
- ***************************************************************************************************/
- function lf_addSetPrcpChkKNUH ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag ) {
- var ds_src = this.objects[strSrc];
-
- var prcpcd = ds_src.getColumn(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 = ds_autosetprcplist.rowcount;
-
- var oTrgtObj = lf_getFormObject(objFlag);
-
- var srchPrcpcd = oTrgtObj.ds_autosetprcplist.lookup("hardcd", prcpcd, "hardcd");
- var setprcpchk = oTrgtObj.ds_autosetprcplist.lookup("hardcd", prcpcd, "hardcdnm");
- // 기존 search함수에서 무결성이 어긋나 개별 체크 변경 - 20081008 by MoonSH
- var precureprcpflag = "";
- var calcflag = "";
- var drprcpetc8 = "";
- if( !utlf_isNull(srchPrcpcd)) {
- var secStage = setprcpchk.split("|");
- iFind = 1 ;
- calcflag = secStage[0];
- addprcpcd = secStage[1];
- drprcpetc8 = secStage[2];
- }
- if ( parseInt(iFind) >= 0) {
- var prcpdd = oTrgtObj.ds_init.getColumn(0, "prcpdd");
- var insukind = oTrgtObj.ds_paminfo.getColumn(0, "insukind");
- //멀티 search 가능함
- var sRef = dsf_createDsRow("ds_send_addsetprcp", [{col:"cond1", type:"string", size:256, val:addprcpcd},
- {col:"cond3", type:"string", size:256, val:prcpdd},
- {col:"cond4", type:"string", size:256, val:insukind},
- {col:"srchkind", type:"string", size:256, val:"B2"}]);
-
- var oParam = {};
- oParam.id = "TRMMO00207";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpMultiSrchInfo";
- oParam.inds = "req=" + sRef;
- oParam.outds = "ds_addsetprcp_prcplist=prcplist";
- oParam.async = false;
- oParam.callback = "cf_TRMMO00207";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMO00207") > -1) {
- dsf_setDefaultVal(ds_addsetprcp_prcplist, "prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,drugmthdspccd:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,drgacptflag:-");
-
- /*
- **by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청 수정 시작.
- ** 처방코드 : NHC297EMG, 자동발생코드 : FE654303G
- ** 자동발생코드는 돈계산에서 제외되어야 함.
- ** 자동발생코드 처방전달사항 자동 생성=>[HEART-SPECT 핵의학검사용]
- */
- //20090420 마정민 수정 HARDCODE 테이블로 분리
- if( ds_addsetprcp_prcplist.rowcount > 0) {
- //model.setValue("/root/addsetprcp/prcplist[1]/prcpdelivefact", prcpdelivefact );
- ds_addsetprcp_prcplist.setColumn(0, "drprcpetc8", drprcpetc8);
- //by sonjy 자동발생코드 추가 2008-08-20 인화성 과장님 요청 수정 끝
- //serPrcpSrchRow = addPrcpDetl ( objFlag , "root/addsetprcp/prcplist" , strDest , 1 , srchRow, prcpInptFlag );
- //by sonjy 20091031 자동발생 처방 입력 구분 추가
- //SET 처방일 때 약품의 기본 일수는 수가계산법이 어떤 것이든 기본을 1일로 되도록 요청번호:8875
- serPrcpSrchRow = lf_addPrcpDetl ( objFlag , "ds_addsetprcp_prcplist" , strDest , 0, srchRow, "34" );
- if (serPrcpSrchRow != 0 ) srchRow++;
- }
- }
- dsf_deleteDs(sRef);
- }
- return srchRow;
- }
- function cf_TRMMO00207(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /***************************************************************************************************
- * Function : lf_chngPrcpExecDeptSCH
- * Description : 선택진료의 검색 팝업 호출
- * Argument : objSrcDs [Dataset : ]
- * : nIndex [Number : ]
- * : sFlag [String : ]
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_chngPrcpExecDeptSCH(objSrcDs, nIndex, sFlag)
- {
- if (nIndex < 0) return;
- var prcpdd = "";
- var orddeptcd = "";
- var orddeptnm = "";
- var ioflag = "";
- var xpt = 700;
- var ypt = 150;
- var flag = "prcp";
- if (sFlag == "child") {
- prcpdd = opener.ds_init_data.getColumn(0, "prcpdd");
- orddeptcd = opener.ds_data_paminfo.getColumn(0, "orddeptcd");
- ioflag = opener.ds_data_paminfo.getColumn(0, "ordtype");
- orddeptnm = opener.ds_data_paminfo.getColumn(0, "orddeptnm");
- xpt = 300;
- ypt = 10;
- flag = "popup";
- } else {
- prcpdd = ds_init_data.getColumn(0, "prcpdd");
- orddeptcd = ds_data_paminfo.getColumn(0, "orddeptcd");
- ioflag = ds_data_paminfo.getColumn(0, "ordtype");
- orddeptnm = ds_data_paminfo.getColumn(0, "orddeptnm");
- }
- var objArg = {};
- objArg["plgv_flag"] = flag;
- objArg["plgv_prcpcd"] = objSrcDs.getColumn(nIndex, "prcpcd");
- objArg["plgv_prcpdd"] = prcpdd;
- objArg["plgv_orddeptcd"] = orddeptcd;
- objArg["plgv_orddeptnm"] = orddeptnm;
- objArg["plgv_prcpclscd"] = objSrcDs.getColumn(nIndex, "prcpclscd");
- objArg["plgv_ioflag"] = (ioflag == "O" || ioflag == "S") ? "O" : "I";
-
- var obj_Rtn = lf_prcpModal("SPMMB08600", objArg);
- return obj_Rtn;
- }
- /***************************************************************************************************
- * Function : lf_prcpOpen
- * Description : 팝업위치가 저장되지 않는 팝업 모달 띄우기(모니터 번호 선택 가능)
- * Argument : String[화면ID], Integer[x좌표], Integer[y좌표], Integer[ref], Integer[resultref], Integer[userProp]
- * return type : void
- * Creator :
- ***************************************************************************************************/
- function lf_prcpOpen(sScreenId, argxpt, argypt, ref, resultref , userProp )
- {
- var xpt = system.clientToScreenX(this.getOwnerFrame(), 0) + argxpt;
- var ypt = system.clientToScreenY(this.getOwnerFrame(), 0) + argypt;
- frmf_open(sScreenId, sScreenId, null, xpt, ypt);
- }
- /***************************************************************************************************
- * Function : lf_setSpecOrd
- * Description : 특진료 설정
- * Argument :
- * return type :
- * Creator : 오지훈
- ***************************************************************************************************/
- function lf_setSpecOrd()
- {
- var tempcol2 = ds_prcp.getColumn(0, "tempcol2");
- var temparray = tempcol2.split("|");
- // by sonjy 2008-08-29 진료과, 진료의id setting
- var orddeptcd = opener.ds_paminfo.getColumn(0, "orddeptcd");
- ds_paminfo.setColumn(0, "specordyn", opener.ds_paminfo.getColumn(0, "specordyn")); //by sonjy 2008-08-28 진료의선택창에서 사용.
- // 선택진료과가 있는 경우, 조회해서 사용자를 grid에 보여줌
- var tempcol12 = ds_prcp.getColumn(0, "tempcol12");
- if (utlf_isNull(tempcol12))
- tempcol12 = orddeptcd ; //by sonjy 20081014
- if (tempcol12 != "") {
- lf_mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", tempcol12);
- btn_specdrid.enable = true;
- return;
- }
- var ioflag = opener.ds_patflag.getColumn(0, "prcpgenrflag");
- var orddrid = "";
- // 입원, DSC,응급
- if (ioflag == "I" || ioflag == "D" || ioflag == "E") {
- orddeptcd = opener.ds_paminfo.getColumn(0, "orddeptcd");
- orddrid = opener.ds_paminfo.getColumn(0, "medispclid");
- lf_mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", orddeptcd);
- if (sysf_getUserInfo("dutplcecd") == orddeptcd){ // 로그인 의사가 동일한 과인 경우
- ds_prcp.setColumn(0, "specdrid", orddrid); // 입원과의 주치의 설정
- btn_specdrid.enable = true;
- }
- else { // 타과의 경우 ,default없음
- var operation;
- if (temparray[1] == "SB" || temparray[2] == "SA99") { // 분류 1 : 수술 OR 기타처치
- operation = sysf_getGlobalVariable("operation");
- if (operation.length > 0) {
- setCSVToNode("/root/init/operation", operation);
- var perfdeptcd = ds_operation.getColumn(0, "perfdeptcd");
- var perfdrid = ds_operation.getColumn(0, "perfdrid");
- lf_mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", perfdeptcd);
- ds_prcp.setColumn(0, "specdrid", perfdrid); // 집도의 설정
- }
- else {
- btn_specdrid.enable = true;
- btn_specdrid.click();
- }
- }
- else if (temparray[0] == "L") { // 분류 2 : 마취, 마취의 '1'을 기본 default
- operation = sysf_getGlobalVariable("operation");
- if (operation != null || operation != "") {
- setCSVToNode("/root/init/operation", operation);
- var anstdrid = ds_operation.getColumn(0, "anstdrid");
- lf_mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", "AN"); //마취통증의학과 의사조회
- // 이은영 과장 요청 마취의 setting by sonjy 20080925 start
- if (opener.ds_anst.getColumn(0, "paramyn" ) == "Y") {
- // 마취의 ID가 있고 선택진료일 경우 특진의 선택진료가 아닐경우 일반의 일 경우만 SETTING
- if (!utlf_isNull(opener.ds_anst.getColumn(0, "/root/anst/anst_drid"))) {
- // 선택진료이고 일반의인 경우 선택진료처방여부 'N'처리
- if (ds_paminfo.getColumn(0, "/root/paminfo/list/specordyn") == "Y") {
- if (opener.ds_anst.getColumn(0, "/root/anst/anst_specordflag") != "A") {
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag" , "N");
- }
- else {
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag" , "Y");
- }
- }
- else {
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag" , "N");
- }
- anstdrid = opener.ds_anst.getColumn(0, "/root/anst/anst_drid");
- }
- //바뀐대로 보여야 함 by sonjy 20081010
- btn_specdrid.enable = true;
- if (utlf_isNull( ds_prcp.getColumn(0, "/root/main/prcp/prcplist/specdrid")) || ds_prcp.getColumn(0, "/root/main/prcp/prcplist/specdrid") == "-") {
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/specdrid", anstdrid); // 마취의1 설정
- }
- }
- else { // 마취의 setting by sonjy 20080925 end
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/specdrid", anstdrid); // 마취의1 설정
- }
- }
- else {
- btn_specdrid.enable = true;
- btn_specdrid.click();
- }
- }
- else if (temparray[0] == "10" || temparray[1] == "13") { // 분류3 : 위장관검사
- btn_specdrid.enable = true;
- btn_specdrid.click();
- }
- else if (temparray[0] == "10" || temparray[1] == "06") { // 분류4 : 기관지검사
- btn_specdrid.enable = true;
- btn_specdrid.click();
- }
- else if (temparray[1] == "XE" || temparray[1] == "XI") { // 분류 5: 방사선혈관조영
- btn_specdrid.enable = true;
- btn_specdrid.click();
- }
- else if (temparray[0] == "20") { // 방사선혈관조영술 추가. by sonjy 2008-08-29
- btn_specdrid.enable = true;
- btn_specdrid.click();
- }
- else { //그 이외의 경우, 입원과의 주치의 설정
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/specdrid", orddrid);
- }
- }
- }
- }
- /***************************************************************************************************
- * Function : lf_checkPatLimt
- * Description : 환자별 제한 규정
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_checkPatLimt(flag, strSrc:Dataset, sendRow , chkpayflag)
- {
- var oTrgtObj = null;
- if( flag == "child"){
- oTrgtObj = opener;
- }else{
- oTrgtObj = this;
- }
-
- var sPrcpCd = strSrc.getColumn(sendRow, "prcpcd");
- var prcpMsg = "";
- var chngyn = "";
- var payflag = "";
- var patNm = "";
- var msgTitle = "";
-
- var oPointDsPatlimtcdinfo= lf_getTopPatientinfo("N", "ds_patlimtcdinfo") ;
- var nLimitlistIndx = oPointDsPatlimtcdinfo.findRow("prcpcd", sPrcpCd);
- patNm = oTrgtObj.ds_data_paminfo.getColumn(0, "hngnm");
-
- if (nLimitlistIndx >= 0 ) {
- chngyn = oPointDsPatlimtcdinfo.getColumn(nLimitlistIndx, "prcpchngyn");
- payflag = oPointDsPatlimtcdinfo.getColumn(nLimitlistIndx, "apppayflag");
- prcpMsg = oPointDsPatlimtcdinfo.getColumn(nLimitlistIndx, "prcpmsg");
- msgTitle = oPointDsPatlimtcdinfo.getColumn(nLimitlistIndx, "prcptitle");
- if (utlf_isNull(chkpayflag) ||(!utlf_isNull(chkpayflag) && chngyn == "N" && chkpayflag != payflag)) {
- application.alert(patNm + prcpMsg, msgTitle, "64");
- if (chngyn == "N") {
- strSrc.setColumn(sendRow, "payflagcd", payflag);
- if (!utlf_isNull(chkpayflag)) {
- return false;
- }
- }
- }
- }
- return true;
- }
- /***************************************************************************************************
- * Function : lf_prmsSaveCheck
- * Description : 약속처방에 등록 가능한지 check
- * Argument : usge: 저장화면
- : prcpkindcd: 처방분류
- : prcpnm: 처방명
- * return type : true, false
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_prmsSaveCheck(usge, prcpkindcd, prcpnm)
- {
- //약속처방, 지시처방에서는 HSCT 처방을 등록할 수 없다.
- if (prcpkindcd == "04" && usge == "prms") {
- sysf_messageBox( "약속처방에는 [" + prcpnm +"] HSCT 처방을 등록", "E001");
- return false;
- }
- else if (prcpkindcd == "04" && usge == "direc") {
- sysf_messageBox( "지시처방에는 [" + prcpnm +"] HSCT 처방을 등록", "E001");
- return false;
- }
- return true;
- }
- /***************************************************************************************************
- * Function : lf_checkNigtFlag
- * Description : night시간 체크 (오후 6시~오전9시 사이이면 true 아니면 false 반환)
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_checkNightFlag(exectm)
- {
- if (utlf_isNull(exectm) || exectm.length < 4)
- return false ;
- if (exectm.length < 6)
- exectm = exectm + "00";
- if (parseInt(exectm) >= 180000 || parseInt(exectm) < 90000)
- return true;
- return false;
- }
- /***************************************************************************************************
- * Function : lf_chkSpecDrId
- * Description : 특진의 check
- * Argument :
- * return type : true or false
- * Creator :
- ***************************************************************************************************/
- function lf_chkSpecDrId(specdrid)
- {
- var oUserComboDs = emr_getOrderBaseInfo("usercombo");
- var choiSpclDrid = oUserComboDs.getColumn(0, oUserComboDs.findRowExpr("userid=='"+ specdrid +"' && refseq=='A'"), "userid");
- if (choiSpclDrid == null) {
- return false;
- }
- return true;
- }
- /***************************************************************************************************
- * Function : lf_setPrcpreteflag
- * Description : 희망일자 선택 시 보류 체크(외래)
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_setPrcpreteflag(objSrcNode, nIndx, sTrgtFlag)
- {
- if (nIndx < 0) return;
- var ioflag ="";
- if (sTrgtFlag == "child"){
- ioflag = opener.ds_data_paminfo.getColumn(0, "ioflag");
- }
- else {
- ioflag = ds_data_paminfo.getColumn(0, "ioflag");
- }
- if (ioflag == "O" && objSrcNode.getColumn(nIndx, "prcphopedd") != utlf_getCurrentDate()) {
- objSrcNode.setColumn(nIndx, "prcpreteflag", "Y");
- //보류 체크 시 처방명 앞에 [보류] 도 붙도록 makePrcpNm호출
- lf_makePrcpNm( objSrcNode, nIndx);
- }
- }
- /***************************************************************************************************
- * Function : lf_autoSetAddDr
- * Description : 가산의 자동 셋팅
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_autoSetAddDr(objSrcNode, indx, addfg)
- {
- // 1. 선택진료의 check
- var specdrid = objSrcNode.getColumn(indx, "specdrid");
- ds_init_specdrinfo.filterstr = "userid=='"+specdrid+"' && refseq=='A'";
- var specdridchk = ds_init_specdrinfo;
- if (!utlf_isNull(specdrid) && !utlf_isNull(specdridchk) && specdridchk.rowcount > 0) {
- var specdeptcd = specdridchk.getColumn(0, "dutplcecd");
- if ((specdeptcd == addfg) || (addfg == "ALL" && (specdeptcd == "CS"|| specdeptcd == "GS"))) {
- objSrcNode.setColumn(indx, "tempcol30", specdrid);
- ds_init_specdrinfo.filterstr = "";
- return;
- }
- }
- ds_init_specdrinfo.filterstr = "";
- // 2. 입력의 가산의 check
- var jobkind = sysf_getUserInfo("jobkindcd");
- if (jobkind == "A" || jobkind == "B") {
- var dutplcecd = sysf_getUserInfo("dutplcecd");
- if ((addfg == dutplcecd) || (addfg == "ALL" && (dutplcecd == "CS"|| dutplcecd == "GS"))) {
- objSrcNode.setColumn(indx, "tempcol30", sysf_getUserInfo("userid"));
- }
- }
- // 3.집도과 집도의
- var tmpadddrid = objSrcNode.getColumn(indx, "tempcol30");
- if ((utlf_isNull(tmpadddrid) || tmpadddrid == "-") && (utlf_isNull(specdrid) || specdrid == "-")) {
- var perfdeptcd = ds_init_operation.getColumn(0, "perfdeptcd");
- if (!utlf_isNull(perfdeptcd) && perfdeptcd == addfg) {
- var perfdrid = ds_init_operation.getColumn(0, "perfdrid");
- objSrcNode.setColumn(indx, "tempcol30", perfdrid);
- }
- }
- }
- /***************************************************************************************************
- * Function : lf_checkSrchWord
- * Description : 검색 금지어 체크
- * Argument : srchnm [String : 검색할 문자열]
- * return type : 검색 금지어를 변환 처리한 문자열
- * Creator :
- ***************************************************************************************************/
- function lf_checkSrchWord(srchnm)
- {
- var rtn = "";
- var srchrtn = "";
- var srcharray = srchnm.split(" ");
- var cnt = srcharray.length;
- var len = 0;
- var i = 0;
- var sDsTemp = dsf_createDs("ds_temp_srchlimitword");
- var oDsTemp = this.objects[sDsTemp];
-
- lf_getHardCDList("N", 421, 0 , oDsTemp);
- var limtcnt = oDsTemp.rowcount;
- var limtword = "";
- var limtflag = "";
- do {
- if (cnt < 1) rtn = srchnm;
- else rtn = srcharray[i];
- for (var j=0 ; j<limtcnt ; j++)
- {
- limtword = oDsTemp.getColumn(j, "hardcdnm");
- limtflag = oDsTemp.getColumn(j, "hardcd");
- if (!utlf_isNull(limtword)) {
- if (limtflag == "NUM") {
- if (rtn == limtword)
- rtn = rtn.replace(limtword , "");
- }
- else {
- rtn = rtn.replace(limtword , "");
- }
- }
- }
- if (i == 0) {
- srchrtn = rtn;
- }
- else {
- len = rtn.length;
- if (len > 1) srchrtn += " " + rtn;
- else srchrtn += rtn;
- }
- i++;
- }
- while (i < cnt);
-
-
- // Temp로 사용한 Dataset을 삭제
- var oRemoveDs = this.removeChild(sDsTemp);
- oRemoveDs = null;
- return srchrtn;
- }
- /***************************************************************************************************
- * Function : lf_chkRecModi
- * Description : 외래환자 원무, 환자구분, 상단정보 설정
- * Argument : emrloadingflag 진료대상자 리스트 호출 여부. 진료대상자 리스트에서 호출시에서는 tranf_submit 호출 필요 없음.
- * return type :
- * Creator : 2013-01-16 오후 3:53:53 강지훈 수정
- ***************************************************************************************************/
- function lf_chkRecModi()
- {
- // 2012-12-24 오후 2:09:54 강지훈 : BroadCasting 되기전에 기록지 정보 변경여부 체크 필요
- var mainobj = frmf_getMainViewer();
- var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
- if (mainscrnid == "SMMMR00100") {
- var prvIntRecPamInfRtn = mainobj.fPrevInitRecPamInfo();
- // 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정
- if (prvIntRecPamInfRtn == false) {
- return false;
- }
- }
- return true;
- }
- /***************************************************************************************************
- * Function : lf_bundlePrcpDD
- * Description : 지정일 셋팅
- * Argument :
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_bundlePrcpDD(status)
- {
- var prcpgenrflag = opener.ds_patflag.getColumn(0, "prcpgenrflag");
- if (prcpgenrflag != "O") {
- sysf_messageBox("지정일은 외래가 아니면 사용", "E001");
- return false;
- }
- var prcpdd = opener.ds_paminfo.getColumn(0, "orddd");
- var reqparam = utlf_getCurrentDate() + "▩";
- frmf_setParameter("paramcalflag", "multi");
- frmf_setParameter("defaultday", prcpdd);
- frmf_setParameter("reqparam", reqparam);
- lf_prcpModal("SPMMO10600", 20, 50);
- var actordddArray = frmf_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) {
- ds_main_prcplist.setColumn(0, "contprcpspec", "-");
- }
- else {
- ds_main_prcplist.setColumn(0, "contprcpspec", contprcpspec);
- }
- ds_main_prcplist.setColumn(0, "prcpdayno", actordddArray.length);
- ds_init.setColumn(0, "contprcpspec", rtnval);
-
- return true;
- }
- /***************************************************************************************************
- * Function : lf_chkAuthDeptCd
- * Description : 부서 권한 check . 내과일 경우 환자 진료과 return. 그외는 로그인 근무지부서.
- * Argument :
- * return type : string
- * Creator :
- ***************************************************************************************************/
- function lf_chkAuthDeptCd()
- {
- var authdeptcd = sysf_getUserInfo("dutplcecd");
- if (!this.isValidObject("ds_depthard"))
- return authdeptcd;
- var orddeptcd = fGetPatientInfoDetail("orddeptcd");
- lf_reqHardCodeInfo(ds_depthard, ds_depthard, "423");
- ds_depthard.filterstr = "cdseqno=='1' && hardcd=='"+authdeptcd+"'";
- if (ds_depthard.rowcount > 0) {
- ds_depthard.filterstr = "cdseqno=='3' && hardcd=='"+orddeptcd+"'";
- if (ds_depthard.rowcount > 0) {
- authdeptcd = orddeptcd;
- }
- }
- ds_depthard.filterstr = "";
- return authdeptcd;
- }
- /***************************************************************************************************
- * Function : lf_prcpExecIssDeptCdSet
- * Description : 시행부서, 발행부서 SETTING
- * Argument :
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_prcpExecIssDeptCdSet(strSrc, sendRow)
- {
- var ds_src = this.objects[strSrc];
-
- //발행처
- var issdept = (lf_getDsValue(ds_root, 0, "addprcp") == "Y") ? lf_getDsValue(ds_init, 0, "issdept") : lf_getDsValue(ds_root, 0, "issdept");
- if (utlf_isNull(issdept)) {
- issdept = sysf_getUserInfo("dutplcecd");
- }
-
- ds_src.setColumn(sendRow, "issdeptcd", issdept);
-
- // 응급실 발행부서 관련 셋팅. 응급실 환자의 경우 센서스에 등록되어 있는 부서코드로 발행부서를 셋팅해준다.2012.04.24 엄영만
- var prcpgenrflag = ds_src.getColumn(sendRow, "prcpgenrflag");
- var erissdeptcd = lf_getDsValue(ds_paminfo, 0, "erissdeptcd");
- if (prcpgenrflag == "E" && issdept == "2280200000" && !utlf_isNull(erissdeptcd) && erissdeptcd != "-") {
- ds_src.setColumn(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 );
- }*/
- }
- /***************************************************************************************************
- * Function : lf_setRsrvInfo
- * Description : 처방에 대한 예약일시 혹은 반납수량 등 힌트표시
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_setRsrvInfo(grd_prcplist, rsrvcolnm , mrow , mcol)
- {
- var rsrvinfo = grd_prcplist.nodeset.getColumn(mrow, rsrvcolnm);
- var orgprcpnm = grd_prcplist.nodeset.getColumn(mrow, "prcpnm");
- var prcpnm = "";
- var rsrvflag = lf_getArrayData( rsrvinfo , 0, 0, "^", "|");
- var rsrvdt = lf_getArrayData( rsrvinfo , 0, 1, "^", "|");
- if (!utlf_isNull(rsrvdt) && rsrvdt != "00000000000000" && rsrvflag == "3") {
- prcpnm = "[예약일시:" + rsrvdt.substr(0,4) + "/" + rsrvdt.substr(4,2) + "/" + rsrvdt.substr(6,2) + " " + rsrvdt.substr(8,2) + ":" + rsrvdt.substr(10,2) + "] ";
- }
- orgprcpnm = prcpnm + orgprcpnm;
- prcpnm = "";
- var prcphistcd = grd_prcplist.nodeset.getColumn(mrow, "prcphistcd");
- var rtnprcpqty = grd_prcplist.nodeset.getColumn(mrow, "rehbprcpcurepartcd");
- var rtndayno = grd_prcplist.nodeset.getColumn(mrow, "rehbprcpenddd");
- var drprcpetc3 = grd_prcplist.nodeset.getColumn(mrow, "drprcpetc3");
- if (prcphistcd == "E") {
- prcpnm = "\n[반납수량 :" + rtnprcpqty + " " + drprcpetc3 +"] " + "[반납일수 :" + rtndayno +"] ";
- }
- prcpnm = orgprcpnm + prcpnm;
- grd_prcplist.tooltipText(mrow, mcol) = prcpnm;
- }
- /***************************************************************************************************
- * Function : lf_prcpGrupSort
- * Description : Repeat처방 그룹 정렬 복사
- * Argument : strDest : 목적지 주소값
- * : strSrc : 출발지 주소값
- * return type : void
- * Creator :
- ***************************************************************************************************/
- function lf_prcpGrupSort(strSrc:Dataset, strDest:Dataset, sFlag)
- {
- strSrc.clearData();
- strDest.filter("status", "I");
- strSrc.copyData(strDest, true);//lf_addCopyNodeset(strSrc, strDest); // 정렬할 처방복사
- strSrc.keystring = "S:+prcpmixno";//sortNodeList(strSrc, "prcpmixno", "asc"); // 그룹번호 순서대로 정렬한다.
- var nNodeCnt = strSrc.getRowCount(); // getNodeSetCnt(strSrc);
- var sPrcpmixno = "";
- var sTmp_prcpmixno = "";
- // 추천처방 화면이면 화면별로 셋팅
- if (!utlf_isNull(sFlag)) {
- var sCur100 = fCheckPrcpWnd(sFlag);
- if (cur100 != null) {
- cur100.lf_setGroupMaxNo("/root/main/prcp/prcplist");
- }
- } else {
- opener.lf_setGroupMaxNo(opener.ds_grid_prcplist);
- }
- for (var i = 0 ; i < nNodeCnt ; i++) {
- if (i == 0) {
- sTmp_prcpmixno = strSrc.getColumn(i, "prcpmixno"); // 기존 그룹번호를 가지고 있는다.
- if (!utlf_isNull(sFlag)){ //추천처방 화면이면 화면별로 셋팅
- if (cur100 != null) {
- strSrc.setColumn(i, "prcpmixno", parseInt(cur100.ds_init.getColumn(0, "/root/init/prcpmixno"))+1); // 처방 그룹번호 Max + 1 로 초기처방은 그룹번호 셋팅.
- }
- }
- else {
- strSrc.setColumn(i, "prcpmixno", parseInt(opener.ds_temp_search.getColumn(0, "prcpmixno"))+1); // 처방 그룹번호 Max + 1 로 초기처방은 그룹번호 셋팅.
- }
- } else {
- sPrcpmixno = strSrc.getColumn(i, "prcpmixno");
- // 앞의 처방과 그룹번호가 같으면
- if (sPrcpmixno == sTmp_prcpmixno) {
- strSrc.setColumn(i, "prcpmixno", strSrc.getColumn(i-1, "prcpmixno"));
- } else { // 앞의 처방과 그룹번호가 같지 않으면
- tmp_prcpmixno = sPrcpmixno;
- strSrc.setColumn(i, "prcpmixno", parseInt(strSrc.getColumn(i-1 + "prcpmixno")) + 1);
- }
- }
- }
- }
- /***************************************************************************************************
- * Function : lf_chngSpecDr
- * Description : 선택진료의 변경 시 호출 .
- * 선택진료환자이나 선택한 의사가 특진의가 아닐경우 방사선혈관조영/마취, 수술 처방에 한해 해당 처방의 선택진료여부 = 'N'으로 SETTING
- * Argument : objFlag - child or null
- * : DrID - 진료의id
- * : specDrYN- 특진의여부(A-특진/B..)
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_chngSpecDr(objFlag, DrID, specDrYN)
- {
- //선택진료관련 추가 by sonjy 2008-08-27 start
- var tempcol2;
- if (objFlag == "child") {
- if (opener.ds_prcp.getColumn(0, "/root/main/prcp/prcplist/choiordflag") == "Y") {
- tempcol2 = pener.ds_prcp.getColumn(0, "/root/main/prcp/prcplist/tempcol2");
- if (!utlf_isNull(tempcol2)) {
- //선택진료환자이나 선택한 의사가 특진의가 아닐경우 방사선혈관조영/마취, 수술 처방에 한해 해당 처방의 선택진료여부 = 'N'으로 SETTING
- if (specDrYN!= "A") {
- opener.ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "N");
- }
- else {
- opener.ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "Y");
- }
- }
- }
- // 선택진료환자이나 비특진의 선택으로 인해 선택진료여부가 'N'으로 변경되었으나 다시 선택진료의를 선택한 경우
- else if (opener.ds_paminfo.getColumn(0, "/root/paminfo/list/specordyn") == "Y" && opener.ds_prcp.getColumn(0, "/root/main/prcp/prcplist/choiordflag") == "N") {
- if (specDrYN == "A") {
- opener.ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "Y");
- }
- }
- else { // 의사가 찍은대로 선택진료의를 변경한다.
- if (specDrYN == "A") {
- opener.ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "Y");
- }
- else {
- opener.ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "N");
- }
- }
- }
- else {
- if (ds_prcp.getColumn(0, "/root/main/prcp/prcplist/choiordflag") == "Y") {
- tempcol2 = ds_prcp.getColumn(0, "/root/main/prcp/prcplist/tempcol2");
- if (!utlf_isNull(tempcol2)) {
- var temparray = tempcol2.split("|");
- // 선택진료환자이나 선택한 의사가 특진의가 아닐경우 방사선혈관조영/마취, 수술 처방에 한해 해당 처방의 선택진료여부 = 'N'으로 SETTING
- if (specDrYN != "A") {
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "N");
- } else {
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "Y");
- }
- }
- }
- // 선택진료환자이나 비특진의 선택으로 인해 선택진료여부가 'N'으로 변경되었으나 다시 선택진료의를 선택한 경우
- else if (ds_paminfo.getColumn(0, "/root/paminfo/list/specordyn") == "Y" && ds_prcp.getColumn(0, "/root/main/prcp/prcplist/choiordflag") == "N") {
- if (specDrYN == "A") {
- ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "Y");
- }
- }
- else { // 의사가 찍은대로 선택진료의를 변경한다.
- if (specDrYN == "A") {
- opener.ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "Y");
- }
- else {
- opener.ds_prcp.setColumn(0, "/root/main/prcp/prcplist/choiordflag", "N");
- }
- }
- }
- }
- /***************************************************************************************************
- * Function : lf_chkAdrDrug
- * Description : ADR 약물 체크.
- * Argument : strSrc : 해당Node경로
- : sendRow : 선택Row
- : objFlag : opener.model or model
- * return type : void
- * Creator :
- ***************************************************************************************************/
- function lf_chkAdrDrug(strSrc, sendRow, objFlag)
- {
- var sPrcpCd = strSrc.getColumn(sendRow, "prcpcd");
- var adrNode;
-
- var oTempDsPrcpEtcCnts = lf_getTopPatientinfo("N", "ds_adrdruglist") ;
- var nRow = oTempDsPrcpEtcCnts.findRow("adrdrugcd", sPrcpCd);
-
- if (nRow > -1){
- sysf_messageBox("해당 약품에 대한 ADR 보고 이력이 있습니다.\n자세한 내용은 ADR 보고내역을", "I007");
- }
- }
- /***************************************************************************************************
- * Function : lf_getBaseSpecDr
- * Description : 수행부서별 기본 선택진료의
- * Argument :
- * return type : string
- * Creator :
- ***************************************************************************************************/
- function lf_getBaseSpecDr(prcpexecdeptcd , orddrid, ioflag)
- {
- var specdrid = "-";
- var chkspecdrid = "";
- // 1. 전달부서별 선택진료의
- var ds_dept = emr_getOrderBaseInfo("dept");
- if (ds_dept != null) {
- // var tmplist = sysMessageobj.instance1.selectNodes("/root/properties/orderbasicinfo/dept[deptcd='" + prcpexecdeptcd + "']");
- ds_dept.filterstr = "deptcd=='" + prcpexecdeptcd + "'";
- var tmplist = ds_dept;
- if (tmplist != null && tmplist.rowcount > 0) {
- chkspecdrid = tmplist.getColumn(0, "specdrid");
- }
- ds_dept.filterstr = "";
- }
- if (utlf_isNull(chkspecdrid)) {
- // 1.처방화면 기본
- chkspecdrid = orddrid;
- // 2. 시행부서처방 or 응급실
- if (ds_init_data.getColumn(0, "addprcp") == "Y" || (ioflag == "E" && utlf_isNull(ds_init_operation.getColumn(0, "perfdrid")))) {
- chkspecdrid = sysf_getUserInfo("userid");
- }
- else if (!utlf_isNull(ds_init_operation.getColumn(0, "perfdrid")) && ds_init_data.getColumn(0, "prcpkindcd") == "35") {
- // 3. 수술탭 처방
- chkspecdrid = ds_init_operation.getColumn(0, "perfdrid");
- }
- }
- if (lf_chkSpecDrId(chkspecdrid))
- specdrid = chkspecdrid ;
- return specdrid ;
- }
- /***************************************************************************************************
- * Function : lf_getPrcpNodeListCSV
- * Description : 노드리스트를 CSV로 반환한다.
- * Argument : nodeList
- * : headerFlag : header 정보 필요유무
- * return type : void
- * Creator :
- ***************************************************************************************************/
- function lf_getPrcpNodeListCSV(nodeList, headerFlag)
- {
- if (nodeList.rowcount == 0)
- return "";
- var sColSep = "▦";
- var sRowSep = "▩";
- var rCSV = "";
- var childNodeList = nodeList.item(0).childNodes;
- var childNodeCnt = childNodeList.length;
- if (childNodeCnt == 0)
- return "";
- if (headerFlag != "N") {
- for(var 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(var i = 0 ; i < childNodeCnt - 1 ; i++)
- {
- rCSV += childNodeList.item(i).text + sColSep;
- }
- rCSV += childNodeList.item(i).text + sRowSep;
- }
- return rCSV;
- }
- /***************************************************************************************************
- * Function : lf_checkDiagHosinpPcp
- * Description : 진단추가시 원내처방예외사유가 있는 진단코드인지 검색후(처방화면초기값) 결과에 따라 처방화면의 원내처방사유를 setting한다.
- * Argument : icd10cd
- * : prcpgenrflag
- * : diagkindcdflag
- * return type :
- * Creator :
- * 변환 OK
- ***************************************************************************************************/
- function lf_checkDiagHosinpPcp( icd10cd, prcpgenrflag, diagkindcdflag)
- {
- var inhospappdeptcd = ds_initsrch_inhospappdeptcd.getColumn(0, "trgtcd"); //F상병원내사유적용 부서:정신과 (2009.06.29 JJE)
- var inhospautoappyn = ds_initsrch_inhospautoappyn.getColumn(0, "trgtcd"); //F상병원내사유자동적용 여부 (2009.06.29 JJE)
- var insukind = (utlf_isNull(opener) || utlf_isNull(opener.objects["ds_paminfo"])) ? "" : opener.ds_paminfo.getColumn(0, "insukind"); //보험유형 (2009.06.29 JJE)
- if (utlf_isNull(insukind)) insukind = ds_paminfo.getColumn(0, "insukind"); //보험유형 (2009.06.29 JJE)
- if (prcpgenrflag == "O" || prcpgenrflag == "D") { //SON1123 DSC 퇴원처방 처리 by sonjy 20081123
- if (!utlf_isNull(ds_initsrch_diagautocnts.getColumn(0, "trgtcd"))) {
- if (ds_init.getColumn(0, "hosinprcpresncd") == "00") { //원내처방 사유가 없을 경우
- // 진단검색
- for(var i = 0; i < ds_initsrch_diagautocnts.rowcount; i++ ) {
- var trgtcdnmArray = ds_initsrch_diagautocnts.getColumn(i, "trgtcdnm");
- var fromTrgtcdnm = lf_getArrayData(trgtcdnmArray + "^", 0, 0, "^", "|");
- var toTrgtcdnm = lf_getArrayData(trgtcdnmArray + "^", 0, 1, "^", "|");
- var cdlength = fromTrgtcdnm.length;
- var icd10Chck = icd10cd.substring(0, cdlength);
- if (icd10Chck >= fromTrgtcdnm && icd10Chck <= toTrgtcdnm) { //해당 진단검색안에 값이 있다면
- var hosinprcpresncd = ds_initsrch_diagautocnts.getColumn(i, "trgtcd");
- // 원내처방사유 적용 주상병만 가능 단 23은 부상병도 적용
- if (diagkindcdflag == "M" || hosinprcpresncd == "23" ) {
- //by sonjy 20081031 F상병일 경우 진료과가 정신과인 경우에 한해서만 원내처방사유 SETTING되도록. 윤영옥ITC 요청. start
- if (icd10Chck.substring( 0,1) == "F" ) {
- if (ds_paminfo.getColumn(0, "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
- ds_init.setColumn(0, "hosinprcpresncd", hosinprcpresncd);
- lf_chngHosinPrcpResn();
- break; //값을 setting 하면 빠져나온다.
- }
- } //icd10cd == trgtcdnm end
- } //진단검색 end
- } //원내처방 사유가 없을 경우 여부
- }//진단초기값 여부 end
- } //외래end
- }
- /***************************************************************************************************
- * Function : lf_prcpHopeDd
- * Description : 희망일자처리
- * Argument : grdObj: Data Grid
- * : prcpNode: source Node
- * : flag: child
- * : inst: 초기값을 가져올 instance
- * return type : void
- * Creator :
- ***************************************************************************************************/
- function lf_prcpHopeDd(grdObj, prcpNode, flag, inst)
- {
- // 외래진료일자
- if (flag == "child") {
- if (opener.ds_patflag.getColumn(0, "/root/patflag/list/prcpgenrflag") != "O")
- return;
- prcpdd = opener.ds_paminfo.getColumn(0, "/root/paminfo/list/orddd");
- }
- else {
- if (ds_patflag.getColumn(0, "/root/patflag/list/prcpgenrflag") != "O")
- return;
- prcpdd = ds_paminfo.getColumn(0, "/root/paminfo/list/orddd");
- }
- if (grdObj == null)
- grdObj = grd_prcplist;
- if (utlf_isNull(prcpNode))
- prcpNode = "/root/main/prcp/prcplist";
- if (utlf_isNull(inst))
- inst = "prcphopedd";
- frmf_setParameter("defaultday", prcpdd);
- frmf_setParameter("paramcalflag", "sngl");
- frmf_setParameter("reqparam", prcpNode.getColumn(grdObj.row, inst));
- frmf_modal("SPMMO10600", "SPMMO10600");
- // 값이 없으면 return
- if (utlf_isNull(frmf_getParameter("rtn")))
- return;
- var selectedRows = grdObj.selectedRows;
- for (var i=0 ; i<selectedRows ; i++) {
- prcpNode.setColumn(grdObj.selectedrow(i), inst, frmf_getParameter("rtn"));
- }
- }
- /***************************************************************************************************
- * Function : lf_checkDeptDr
- * Description : 처방가능 부서/의사 체크
- * Argument : flag
- * : strSrc
- * : sendRow
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_checkDeptDr(flag, strSrc, sendRow )
- {
-
- var prcpCd = strSrc.getColumn(sendRow, "prcpcd");
- var prcpClsCd = strSrc.getColumn(sendRow, "prcpclscd");
- var prcpDept = "";
- var prcpDr = "";
- var prcpPossYn = ""; // 처방가능여부.
- var prcpDrugCd = "";
- var prcpFlag = "";
- var dutplcecd = sysf_getUserInfo("dutplcecd"); // 로그인한 의사의 부서.
- var userid = sysf_getUserInfo("userid"); // 로그이난 의사의 ID.
- var sysMessageobj = frmf_getViewer("sysMessage");
- var impossfg = "";
- if (sysMessageobj != null) {
- var ds_temp_drugpossprcplist = emr_getOrderBaseInfo("drugpossprcplist");
- if (ds_temp_drugpossprcplist != null && ds_temp_drugpossprcplist.rowcount > 0) {
- for (var i=0 ; i < ds_temp_drugpossprcplist.rowcount ; i++)
- {
- prcpPossYn = ds_temp_drugpossprcplist.getColumn(i, "prcpyn");
- prcpDrugCd = ds_temp_drugpossprcplist.getColumn(i, "drugcd");
- prcpFlag = ds_temp_drugpossprcplist.getColumn(i, "prcpflag");
- prcpDr = ds_temp_drugpossprcplist.getColumn(i, "prcpdr");
- prcpDept = ds_temp_drugpossprcplist.getColumn(i, "prcpdept");
- if (prcpCd != prcpDrugCd)
- continue;
- impossfg = "";
- // 처방 가능한 의사 이면
- if (prcpPossYn == "Y" && prcpFlag == "2") {
- if (prcpDr == userid) {
- impossfg = "ADR";
- break;
- }
- else { // 처방불가 의사 이면
- impossfg = "DR";
- }
- }
- else if (prcpPossYn == "N" && prcpFlag == "2" ) {
- if (prcpDr == userid) {
- impossfg = "DR";
- break;
- }
- }
- else if (prcpPossYn == "Y" && prcpFlag == "1") {
- if (prcpDept == dutplcecd) {
- impossfg = "ADEPT";
- break;
- }
- else { // 처방 불가 부서이면
- impossfg = "DEPT";
- }
- }
- else if (prcpPossYn == "N" && prcpFlag == "1") {
- if (prcpDept == dutplcecd) {
- impossfg = "DEPT";
- break;
- }
- }
- }
- var strMsg = " 처방을 발행할수 없습니다.\n관련 내용은";
- if (impossfg == "DR") {
- strMsg = sysf_getUserInfo("usernm") + "님은 " + prcpCd + strMsg;
- if (prcpClsCd == "B4")
- strMsg = strMsg + " 혈액은행에 문의하세요." ;
- else
- strMsg = strMsg + " 약제팀에 문의하세요." ;
- sysf_messageBox(strMsg , "I");
- return false;
- }
- else if (impossfg == "DEPT") {
- strMsg = sysf_getUserInfo("dutplcenm") + "는(은) " + prcpCd + strMsg;
- if (prcpClsCd == "B4")
- strMsg = strMsg + "혈액은행에 문의하세요." ;
- else
- strMsg = strMsg + "약제팀에 문의하세요." ;
- sysf_messageBox(strMsg , "I");
- return false;
- }
- }
- }
- return true ;
- }
- /***************************************************************************************************
- * Function : mmbfGetHardCodeInfoNm
- * Description : 하드코드 조회 (하드코드, 하드코드명)
- * Argument : ref - reference path
- * : rsltref - result reference path
- * : hardcd - 하드코드
- * return type :
- * Creator :
- ***************************************************************************************************/
- 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){ //잘못 된 submit 함수호출 수정("false"->false) 20131112 by zhyun
- model.copyNode(rsltref, mmb_rsltref);
- model.removeNode(mmb_rsltref);
- }
- }
- function lf_addPrcpBfPrcpDetl(strSrc, migyn){
- var bfprcpvol = strSrc.getColumn(sendRow, "prcpvol" );
- var bfprcpqty = strSrc.getColumn(sendRow, "prcpqty" );
- var bfprcptims = strSrc.getColumn(sendRow, "prcptims" );
- var bfprcpdayno = strSrc.getColumn(sendRow, "prcpdayno" );
- var bfprcpdelivefact = strSrc.getColumn(sendRow, "prcpdelivefact");
- var bfpowdflag = strSrc.getColumn(sendRow, "powdflag");
- var bfprnprcpflag = strSrc.getColumn(sendRow, "prnprcpflag");
- var bfprepprcpflag = strSrc.getColumn(sendRow, "prepprcpflag");
- var bfselfprcpflag = strSrc.getColumn(sendRow, "selfprcpflag");
- var bfselfdrugflag = strSrc.getColumn(sendRow, "selfdrugflag");
- var bfdrugpackflag = strSrc.getColumn(sendRow, "drugpackflag");
- var bferprcpflag = strSrc.getColumn(sendRow, "erprcpflag");
- var bfprecureprcpflag = strSrc.getColumn(sendRow, "precureprcpflag");
- var bfnigtprcpflag = strSrc.getColumn(sendRow, "nigtprcpflag");
- var bfportprcpflag = strSrc.getColumn(sendRow, "portprcpflag");
- var bffixprcpflag = strSrc.getColumn(sendRow, "fixprcpflag");
- var bfanamneflag = strSrc.getColumn(sendRow, "anamneflag");
- var bferreadflag = strSrc.getColumn(sendRow, "erreadflag");
- var bfstemcellflag = strSrc.getColumn(sendRow, "stemcellflag");
- var bfprcpexecdeptcd = strSrc.getColumn(sendRow, "prcpexecdeptcd");
- var bfDrprcpetc4 = strSrc.getColumn(sendRow, "drprcpetc4"); // 입력수량
- var bfDrprcpetc3 = strSrc.getColumn(sendRow, "drprcpetc3"); // 입력수량단위
- var bfDrprcpetc7 = strSrc.getColumn(sendRow, "drprcpetc7"); // DIVIDE단위
- var bfDrprcpetc8 = strSrc.getColumn(sendRow, "drprcpetc8"); // 입력횟수
- var bfprcpqtyunitflag = strSrc.getColumn(sendRow, "prcpqtyunitflag"); // 입력수량단위
- var bfprcpvolunitflag = strSrc.getColumn(sendRow, "prcpvolunitflag"); // 입력수량단위
- var bfpayflagcd = strSrc.getColumn(sendRow, "payflagcd"); // 마이그된 처방 전처방 복사시 급여도 복사
- var bfprcpmixno = strSrc.getColumn(sendRow, "prcpmixno");
- //mig data 전처방 copy시 신코드일 경우 reset여부
- if (bfprcpcd.substring( 0, 1 ) == "_" || bfprcpcd.substring( 0, 1 ) == "=" ) {
- lf_prcpSrchCom(bfprcpcd.substring(1, bfprcpcd.length), opener.ds_init_data.getColumn(0, "prcpdd"), opener.ds_data_paminfo.getColumn(0, "insukind"), "TRMMO02101", "", "getOldPrcpCdChngInfo", "E", null, ds_data_paminfo);
- }
- else {
- lf_prcpSrchCom(bfprcpcd, opener.ds_init_data.getColumn(0, "prcpdd"), opener.ds_data_paminfo.getColumn(0, "insukind"), "TRMMO02101", "", "getPrcpCdSrchInfo", "E" , false, ds_data_paminfo);
- }
-
-
- //ds_temp_OldPrcpsrch -> ds_temp_prcpsrch
- dsf_copyDs(strSrc , ds_temp_OldPrcpsrch, "replace");
- ds_temp_OldDiagcdlist.clearData();
- sendRow = 1;
-
-
- if (utlf_isNull(strSrc.getColumn(sendRow, "prcpcd"))) {
- return 0;
- } else {
- strSrc.setColumn(sendRow, "prcpmixno", bfprcpmixno );
- oldprcpflag = "Y";
- prcpclscd = strSrc.getColumn(sendRow, "prcpclscd" );
- if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") {
- bfprcptims = bfDrprcpetc8;
- if (bfDrprcpetc7 == "q" && !utlf_isNull(bfDrprcpetc8) && bfDrprcpetc8 != "0") {
- bfprcptims = 24/parseInt(bfDrprcpetc8);
- }
- if (prcpclscd == "A2") {
- if (strSrc.getColumn(sendRow, "prcptims") != bfprcptims) {
- strSrc.setColumn(sendRow, "prcptims", bfprcptims);
- lf_baseMthd("oldprcp");
- }
- }
- else {
- strSrc.setColumn(sendRow, "prcptims", bfprcptims );
- }
- var chkPrcpVol = strSrc.getColumn(sendRow, "drprcpetc4");
- var orgDrprcpetc3 = strSrc.getColumn(sendRow, "drprcpetc3"); // 입력단위
- var orgDrprcpetc7 = strSrc.getColumn(sendRow, "drprcpetc7"); // 횟수단위
- if (bfprcpsrchyn == "Y" && migyn == "Y" &&(parseInt(chkPrcpVol) < 1 || utlf_isNull(orgDrprcpetc3) || utlf_isNull(orgDrprcpetc7))) {
- strSrc.setColumn(sendRow, "prcpvol", 0);
- strSrc.setColumn(sendRow, "prcpqty", 0);
- strSrc.setColumn(sendRow, "prcpdayno", 0);
- strSrc.setColumn(sendRow, "drprcpetc4", 0);
- strSrc.setColumn(sendRow, "drprcpetc8", 0);
- } else {
- strSrc.setColumn(sendRow, "prcpvol", bfprcpvol);
- strSrc.setColumn(sendRow, "prcpqty", bfprcpqty);
- strSrc.setColumn(sendRow, "prcpdayno", bfprcpdayno);
- strSrc.setColumn(sendRow, "drprcpetc4", bfDrprcpetc4);
- strSrc.setColumn(sendRow, "drprcpetc8", bfDrprcpetc8);
- strSrc.setColumn(sendRow, "drprcpetc3", bfDrprcpetc3);
- strSrc.setColumn(sendRow, "drprcpetc7", bfDrprcpetc7);
- strSrc.setColumn(sendRow, "prcpvolunitflag", bfprcpvolunitflag);
- strSrc.setColumn(sendRow, "prcpqtyunitflag", bfprcpqtyunitflag);
- }
- //전환 데이터 관련 => mig data 전처방 copy시 약/주사 용량 오류 보정
- if (bfprcpsrchyn == "Y" && migyn == "Y") {
- var sdrugmastspec = strSrc.getColumn(sendRow, "drugmastspec");
- var orgDrprcpetc4 = strSrc.getColumn(sendRow, "drprcpetc4"); // 입력수량
- orgDrprcpetc3 = strSrc.getColumn(sendRow, "drprcpetc3"); // 입력수량
- orgDrprcpetc7 = strSrc.getColumn(sendRow, "drprcpetc7"); // 횟수단위
- if (!utlf_isNull(bfDrprcpetc4) &&!utlf_isNull(bfDrprcpetc7) && !utlf_isNull(bfDrprcpetc8) && (bfDrprcpetc4 != 0 ) && (bfDrprcpetc8 != 0)) {
- var calcmthdcd = lf_getArrayData(sdrugmastspec + "^", 0, 26, "^", "|");
- var calcCnts = 0;
- var calcTims = bfDrprcpetc8;
- if (bfDrprcpetc7 == "q" && utlf_isNull(bfDrprcpetc8) && bfDrprcpetc8 != 0) {
- calcTims = 24/parseInt(bfDrprcpetc8);
- }
- strSrc.setColumn(sendRow, "drprcpetc7", bfDrprcpetc7);
- // 수량단위 입력
- if (!utlf_isNull(bfDrprcpetc3) && bfDrprcpetc3 != "-") {
- if (orgDrprcpetc3 != bfDrprcpetc3 ) {
- if (!lf_checkPrcpUnit(bfprcpcd , bfDrprcpetc3, bfprcpvolunitflag)) {
- sysf_messageBox(strSrc.getColumn(sendRow, "prcpnm") + "의 처방단위["+ bfDrprcpetc3 +"]가 유효하지 않습니다.","I");
- return 0;
- } else {
- strSrc.setColumn(sendRow, "drprcpetc3", bfDrprcpetc3);
- strSrc.setColumn(sendRow, "prcpvolunitflag", bfprcpvolunitflag);
- strSrc.setColumn(sendRow, "prcpqtyunitflag", bfprcpqtyunitflag);
- }
- }
- // 용량보정
- calcCnts = parseFloat(orgDrprcpetc4);
- if (calcmthdcd == "1") {
- if (bfDrprcpetc7 != "#")
- calcCnts *= calcTims;
- }
- if (bfprcptims != calcTims || bfprcpqty != calcCnts || bfprcpvol!= calcCnts) {
- strSrc.setColumn(sendRow, "prcpqty", calcCnts);
- strSrc.setColumn(sendRow, "prcpvol", calcCnts);
- strSrc.setColumn(sendRow, "prcptims", calcTims);
- }
- } else {
- sysf_messageBox(strSrc.getColumn(sendRow, "prcpnm") + "의 처방단위["+ bfDrprcpetc3 +"]가 유효하지 않습니다. ","I");
- return 0;
- }
- }
- }
- }
- strSrc.setColumn(sendRow, "prcpdelivefact", bfprcpdelivefact);
- strSrc.setColumn(sendRow, "powdflag", bfpowdflag);
- strSrc.setColumn(sendRow, "prnprcpflag", bfprnprcpflag);
- strSrc.setColumn(sendRow, "prepprcpflag", bfprepprcpflag);
- strSrc.setColumn(sendRow, "selfprcpflag", bfselfprcpflag);
- strSrc.setColumn(sendRow, "selfdrugflag", bfselfdrugflag);
- strSrc.setColumn(sendRow, "drugpackflag", bfdrugpackflag);
- strSrc.setColumn(sendRow, "erprcpflag", bferprcpflag);
- strSrc.setColumn(sendRow, "precureprcpflag", bfprecureprcpflag);
- strSrc.setColumn(sendRow, "nigtprcpflag", bfnigtprcpflag);
- strSrc.setColumn(sendRow, "portprcpflag", bfportprcpflag);
- strSrc.setColumn(sendRow, "fixprcpflag", bffixprcpflag);
- strSrc.setColumn(sendRow, "anamneflag", bfanamneflag);
- strSrc.setColumn(sendRow, "erreadflag", bferreadflag);
- strSrc.setColumn(sendRow, "payflagcd", bfpayflagcd); // 마이그된 처방 전처방 복사시 급여도 복사
- }
- }
- /***************************************************************************************************
- * Function : lf_contPrcpDdInit
- * Description : 지정일자초기화
- * Argument : grdObj: DataGrid
- * : contPrcpDdCol: main에서 setting 된 값이 있었다면 화면에 , 구분자로 표시해 준다.
- * return type : void
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_contPrcpDdInit( objPrcpGrd, contPrcpDdCol) {
- var objPrcpDs = this.objects[objPrcpGrd.binddataset];
- var prcpdd = lf_getDsValue(opener.ds_paminfo, 0, "orddd");
- var contPrcpSpec = objPrcpDs.getColumn(0, "contprcpspec");
- var contPrcpSpecArray1;
- var contPrcpSpecArray2;
- var contPrcpDd = "";
-
- if (opener.ds_patflag.getColumn(0, "prcpgenrflag") != "O" ) {
- objPrcpGrd.setCellProperty("body", contPrcpDdCol, "text", "-");
- return;
- }
-
- objPrcpGrd.setCellProperty("body", contPrcpDdCol, "text", "");
- if (contPrcpSpec == "-" ) { //처방 당일이었던 지정일 또는 처음검색
- prcpPKSpecArray = objPrcpDs.getColumn(0, "prcppkspec" ).split("|");
- if (!utlf_isNull(prcpPKSpecArray[0])){
- contPrcpDd = prcpPKSpecArray[0]; //처방일자가 있으면
- }else{
- contPrcpDd = prcpdd;
- }
- contPrcpDd = lf_dateFormat(contPrcpDd );
- } else {
- contPrcpSpecArray1 = contPrcpSpec.split("^");
- for(var j = 1; j < contPrcpSpecArray1.length; j++ ){
- contPrcpSpecArray2 = contPrcpSpecArray1[j].split("|");
- if (j == (contPrcpSpecArray1.length - 1))
- contPrcpDd = contPrcpDd + lf_dateFormat(contPrcpSpecArray2[1]);//과거에 선택던 지정일을 넘긴다.
- else
- contPrcpDd = contPrcpDd + lf_dateFormat(contPrcpSpecArray2[1]) + ",";
- }
- }
-
- objPrcpGrd.setCellProperty("body", contPrcpDdCol, "text", contPrcpDd);
-
- if(objPrcpGrd.tooltiptype != "default") // 이 컬럼은 데이타셋에 바인드를 하지 않고 쓰기 때문에 tooltip이 나오지 않아 직접 설정함
- objPrcpGrd.setCellProperty("Body", contPrcpDdCol, "tooltiptext", contPrcpDd);
- }
- // 변환OK
- function lf_addPrcpDetl_App(strDest, sCopyInptFlag, sScreenID, sCopykeys, sCopyIoFlag) {
- var nSrchRow = 0; // 검색Row
- var sTimeStr = utlf_getNewDate().valueOf( ).toString() ; // 반복호출을 처리 하기 위한 노드 변수값으로 사용 (품절약, 대체약, 수혈 추가처방(AST, ABO) 등 화면에서 재귀호출을 처리 하기 위해) 2013.09.16 엄영만
- var sCopyPrcpSrc = "ds_copyprcp_" +sTimeStr+ "_prcplist"; // Copy Prcp Dataset 이름
- var sCopyFlagSrc = "ds_copyprcp_" +sTimeStr+ "_flaginfo"; // Copy Flag Dataset 이름
-
- var sErrFlag = ""; // 서버체크시 오류구분
- var sErrMsg = ""; // 서버체크시 오류메세지
- var sErrCode = ""; // 서버체크시 오류코드
-
- var sUsge = ds_root.getColumn(0, "usge");
-
- if ( ds_paminfo.rowcount == 0 ){
- sysf_messageBox ( "환자정보가", "E014" );
- return;
- }
-
- //복사 화면정보(copyFlagInfo)
- ds_copyflag.clearData();
- ds_copyflag.addRow();
-
- ds_copyflag.setColumn(0, "subprcp", "N"); // 사용자 설정으로 재조회 여부(품절약 등등)
- ds_copyflag.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
- ds_copyflag.setColumn(0, "copyinptflag", sCopyInptFlag);
- ds_copyflag.setColumn(0, "pageinptflag", lf_getDsValue(ds_init, 0, "prcpinptflag"));
- ds_copyflag.setColumn(0, "copykeys", sCopykeys);
- ds_copyflag.setColumn(0, "copyioflag", sCopyIoFlag);
- ds_copyflag.setColumn(0, "screenid", sScreenID);
- ds_copyflag.setColumn(0, "usge", sUsge);
- ds_copyflag.setColumn(0, "prcpgenrflag", ds_patflag.getColumn(0, "prcpgenrflag"));
- ds_copyflag.setColumn(0, "prcpdd", ds_init.getColumn(0, "prcpdd")); // 처방적용일자
- ds_copyflag.setColumn(0, "prcpmixno", ds_init.getColumn(0, "prcpmixno")); // mix번호
- ds_copyflag.setColumn(0, "addprcp", lf_getDsValue(ds_root, 0, "addprcp"));
- ds_copyflag.setColumn(0, "admininfo", lf_getDsValue(ds_root, 0, "admininfo"));
- ds_copyflag.setColumn(0, "cp", ds_root.getColumn(0, "cp"));
-
- if(ds_root.getColumn(0, "cp") == "Y") {
- ds_copyflag.setColumn(0, "cpgappno", ds_temp1_getdata.getColumn(0, "cpgappno")); // cp적용번호
- } else {
- ds_copyflag.setColumn(0, "cpgappno", "0");
- }
-
- if(lf_getDsValue(ds_root, 0, "addprcp") == "Y") {
- ds_copyflag.setColumn(0, "issdept", ds_init.getColumn(0, "issdept"));
- } else {
- ds_copyflag.setColumn(0, "issdept", lf_getDsValue(ds_root, 0, "issdept"));
- }
-
- ds_copyflag.setColumn(0, "anstrecno", lf_getDsValue(ds_anst, 0, "anstrecno"));
- ds_copyflag.setColumn(0, "anstfromdt", lf_getDsValue(ds_anst, 0, "anstfromdt"));
- ds_copyflag.setColumn(0, "ansttm", lf_getDsValue(ds_anst, 0, "ansttm"));
- ds_copyflag.setColumn(0, "ansttodt", lf_getDsValue(ds_anst, 0, "ansttodt"));
- ds_copyflag.setColumn(0, "opansflagcd", lf_getDsValue(ds_anst, 0, "opansflagcd"));
- ds_copyflag.setColumn(0, "paramyn", lf_getDsValue(ds_anst, 0, "paramyn"));
- ds_copyflag.setColumn(0, "anst_drid", lf_getDsValue(ds_anst, 0, "anst_drid"));
- ds_copyflag.setColumn(0, "anst_specordflag", lf_getDsValue(ds_anst, 0, "anst_specordflag"));
- //20131107 이정택(마취의 이름 추가)
- ds_copyflag.setColumn(0, "anst_anstdrnm", lf_getDsValue(ds_anst, 0, "anst_anstdrnm"));
- //20131107 이정택
-
- ds_copyflag.setColumn(0, "erresn", lf_getDsValue(ds_init, 0, "erresn"));
- ds_copyflag.setColumn(0, "hosinprcpresncd", lf_getDsValue(ds_init, 0, "hosinprcpresncd"));
- ds_copyflag.setColumn(0, "hsctlnkno", lf_getDsValue(ds_init, 0, "hsctlnkno"));
- ds_copyflag.setColumn(0, "inclprcpno", lf_getDsValue(ds_init, 0, "inclprcpno"));
- ds_copyflag.setColumn(0, "prcpauthflag", lf_getDsValue(ds_init, 0, "prcpauthflag"));
- ds_copyflag.setColumn(0, "prcpfromdd", lf_getDsValue(ds_init, 0, "prcpfromdd")); // 화면에 따라 해당 컬럼이 없는 곳이 있어서 defalut 처리
- ds_copyflag.setColumn(0, "prcpkindcd", lf_getDsValue(ds_init, 0, "prcpkindcd"));
- ds_copyflag.setColumn(0, "prcptodd", lf_getDsValue(ds_init, 0, "prcptodd")); // 화면에 따라 해당 컬럼이 없는 곳이 있어서 defalut 처리
- ds_copyflag.setColumn(0, "bfprcpviewflag", ds_initsrch_envinfo.lookup("qestcd", '018', "answcnt")); // 전처방 정렬 개인별 설정
-
- ds_copyflag.setColumn(0, "subjsubcretno", lf_getDsValue(ds_init, 0, "subjsubcretno"));
- ds_copyflag.setColumn(0, "opcnfmdd", lf_getDsValue(ds_operation, 0, "opcnfmdd"));
- ds_copyflag.setColumn(0, "opflagcd", lf_getDsValue(ds_operation, 0, "opflagcd"));
- ds_copyflag.setColumn(0, "opfromtmcd", lf_getDsValue(ds_operation, 0, "opfromtmcd"));
- ds_copyflag.setColumn(0, "oprsrvno", lf_getDsValue(ds_operation, 0, "oprsrvno"));
-
- // 추가 처방 화면 작업 후 확인필요 (추가 처방에 있는 노드임)
- if(!utlf_isNull(this.objects["ds_prcpresn"])) {
- ds_copyflag.setColumn(0, "prcpdd_prcpresn", ds_prcpresn.getColumn(0, "prcpdd"));
- ds_copyflag.setColumn(0, "prcptime_prcpresn", ds_prcpresn.getColumn(0, "prcptime"));
- ds_copyflag.setColumn(0, "resncnt_prcpresn", ds_prcpresn.getColumn(0, "resncnt"));
- }
-
- dsf_setDefaultVal(ds_paminfo, "orddeptnm:-,orddrnm:-");
-
- dsf_createDs(sCopyPrcpSrc); // 처방정보 복사 노드생성
- dsf_createDs(sCopyFlagSrc); // 화면정보 복사 노드생성
-
- var oParam = {};
- oParam.id = "TRMMO00150";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetAddPrcp";
- oParam.inds = "copyFlagInfo=ds_copyflag copyRgstInfo=ds_paminfo";
- oParam.outds = sCopyFlagSrc + "=flaginfo " + sCopyPrcpSrc + "=prcplist";
- oParam.async = false;
- tranf_submit(oParam); // 처방저장 실시간 체크(RealTimeCheck)변수 설정
-
- var ds_copyprcp_src = this.objects[sCopyPrcpSrc];
- var ds_copyflag_src = this.objects[sCopyFlagSrc];
- if (ds_copyprcp_src.rowcount > 0) {
- dsf_setDefaultVal(ds_copyprcp_src, "status:I,prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,hosinhosoutflag:-,hosinprcpresncd:00,drugmthdspccd:-,clincstdyflag:N,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,aftcertflag:-,aftcertdrid:-,prcpvalidd:00000000,spynpy1:-,specdrid:-,anticncrdayno:0,druglnkno:0,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
-
- // 리턴 된 화면 설정값 셋팅
- dsf_makeValue(ds_init, "prcpmixno", ds_copyflag_src.getColumn(0, "prcpmixno"));
- dsf_makeValue(ds_init, "inclprcpno", ds_copyflag_src.getColumn(0, "inclprcpno"));
- dsf_makeValue(ds_init, "hsctlnkno", ds_copyflag_src.getColumn(0, "hsctlnkno"));
-
- if (sCopyInptFlag == "06") { // 항암프로토콜일 경우 추가되는 saveflaginfo 값 셋팅
- ds_save_saveflaginfo.setColumn(0, "cpgappno", appNo_SMMMO00110 ); //CP처방 or 프로토콜처방 no
- ds_save_saveflaginfo.setColumn(0, "prtlprcpstatus", prtlprcpstatus_SMMMO00110 ); //CP처방 or 프로토콜처방 저장 status
- ds_save_saveflaginfo.setColumn(0, "prtlflag", "10" ); //프로토콜구분
- }
-
- var ds_dest = this.objects[strDest];
- for (var i = 0; i < ds_copyprcp_src.rowcount; i++) { // Start of 복사 처방 건별 화면 복사
- if ( utlf_isNull(ds_copyprcp_src.getColumn(i, "prcpcd"))) { continue; }
- if(ds_dest.rowcount == 0) { nSrchRow = 0; } else { nSrchRow = ds_dest.rowcount - 1; }
- if (sCopyInptFlag == "06") { // 항암프로토콜일 경우 etclnkspec 컬럼 값 셋팅
- ds_copyprcp_src.setColumn(i, "etclnkspec", etclnkspecValue_SMMMO00110);
- }
-
- // 전환처방 복용 방법 설정
- if ( lf_getDsValue(ds_copyprcp_src, i, "tempcol18") == "Y" ) {
- if (utlf_isNull(this.objects["ds_migdrugmthdlist"])) {
- dsf_createDs("ds_migdrugmthdlist", [{col:"prcpcd", type:"string", size:256},
- {col:"prcpnm", type:"string", size:256},
- {col:"migdrugmthdspccdnm", type:"string", size:256},
- {col:"drugmthdspccd", type:"string", size:256},
- {col:"drugmthdspccdnm", type:"string", size:256}]);
- }
-
- var len = ds_migdrugmthdlist.addRow();
-
- ds_migdrugmthdlist.setColumn(len, "prcpcd", ds_copyprcp_src.getColumn(i, "prcpcd"));
- ds_migdrugmthdlist.setColumn(len, "prcpnm", ds_copyprcp_src.getColumn(i, "prcpnm"));
- ds_migdrugmthdlist.setColumn(len, "drugmthdspccd", ds_copyprcp_src.getColumn(i, "drugmthdspccd"));
- ds_migdrugmthdlist.setColumn(len, "drugmthdspccdnm", ds_copyprcp_src.getColumn(i, "drugmthdspccdnm"));
-
- if ( ds_copyprcp_src.getColumn(i, "rateprcpflag") == "Y" ) {
- ds_migdrugmthdlist.setColumn(len, "migdrugmthdspccdnm", "[비율처방불가] 투약량이 다른 처방을 분리해서 처방하셔야 합니다.\n\n" + ds_copyprcp_src.getColumn(i, "exptmthdfact" ) + ".");
- ds_copyprcp_src.setColumn(i, "rateprcpflag", "N" )
- ds_copyprcp_src.setColumn(i, "drugrateqty", "-" )
- } else {
- ds_migdrugmthdlist.setColumn(len, "migdrugmthdspccdnm", ds_copyprcp_src.getColumn(i, "exptmthdfact" ));
- }
- ds_copyprcp_src.setColumn(i, "exptmthdfact", "-" );
- }
-
- //20090122 마정민수정: 변경요청번호 670. 단순 방사선 예약 자동 팝업요청
- //20090709 CHC, 단순방사선예약자동팝업 병원별 적용
- var raypopwndcheckyn = ds_initsrch_raypopwndcheckyn.getColumn(0, "trgtcd");
- if ( ds_patflag.getColumn(0, "prcpgenrflag") == "O" && ds_copyprcp_src.getColumn(i, "tempcol2").length > 2 && ds_copyprcp_src.getColumn(i, "tempcol2").substring( 0, 2 ) == "18" && sUsge == "prcp" ) {
- var msgTitle = "[영상]" + "[" + ds_copyprcp_src.getColumn(i, "prcpcd") + ":" + ds_copyprcp_src.getColumn(i, "prcpnm") + "]";
- if (raypopwndcheckyn != "Y") {
- if (!confirm( "단순 방사선 검사를 당일 시행 하시겠습니까? [예:당일,아니요:예약]", msgTitle)){
- ds_copyprcp_src.setColumn(i, "prcphopedd","99991231" );
- }
- }
- }
- sErrFlag = lf_getDsValue(ds_copyprcp_src, i, "errflag"); // ------------------------------------------------------------------
- sErrMsg = lf_getDsValue(ds_copyprcp_src, i, "errmsg"); // 서버체크시 오류가 있을 때만 존재하는 컬럼이라 default 처리함
- sErrCode = lf_getDsValue(ds_copyprcp_src, i, "errcode"); // ------------------------------------------------------------------
-
- if(sErrFlag == "E") { // 서버체크시 오류가 있으면 메세지 처리
- if(!utlf_isNull(sErrMsg)) sysf_messageBox(sErrMsg, sErrCode);
- continue;
- } else if(sErrFlag == "D") { // 사용자 결정
- if(sErrCode == "D001") { // 품절약
- lf_altDrug ( i, "1", sCopyPrcpSrc, sCopyInptFlag );
- } else if(sErrCode == "D002") { // 산제불가
- lf_altDrug ( i, "4", sCopyPrcpSrc, sCopyInptFlag );
- if ( frmf_getParameter ( "SPMMB10100_chkyn" ) == "Y" ) { //대체약을 선택했다면 복사시키지 않는다.
- frmf_clearParameter ( "SPMMB10100_chkyn" );
- } else {
- ds_dest.insertRow(nSrchRow);
- ds_dest.copyRow(nSrchRow, ds_copyprcp_src, i);
-
- addPrcpPop_App(nSrchRow, sUsge);
- }
- } else if(sErrCode == "D003") { // 산제주의
- lf_altDrug ( i, "5", sCopyPrcpSrc, sCopyInptFlag );
- if ( frmf_getParameter ( "SPMMB10100_chkyn" ) == "Y" ) { //대체약을 선택했다면 복사시키지 않는다.
- frmf_clearParameter ( "SPMMB10100_chkyn" );
- } else {
- ds_dest.insertRow(nSrchRow);
- ds_dest.copyRow(nSrchRow, ds_copyprcp_src, i);
-
- addPrcpPop_App(nSrchRow, sUsge);
- }
- } else if(sErrCode == "D004") { // 투석원내처방사유처리
- if("19" != ds_init.getColumn(0, "hosinprcpresncd")) {
- var message = "원내지정이 가능한 처방입니다. 전체 약제를 원내로 하시려면 [예], 해당약제만 원내처방하시려면 [아니오]를 선택해주십시오.";
- if (sysf_messageBox ( message, "Q" ) == "6" ) {
- ds_init.setColumn(0, "hosinprcpresncd", "19");
- }
- }
- ds_dest.insertRow(nSrchRow);
- ds_dest.copyRow(nSrchRow, ds_copyprcp_src, i);
-
- addPrcpPop_App(nSrchRow, sUsge);
- } else if (sErrCode == "D006"){ // 대채처방체크 altcdinfo = X
- lf_altPrcpCd ( i, "1", sCopyPrcpSrc, sCopyInptFlag );
- } else if(sErrCode == "D007"){ // 수술예방적 항생제 CHECK SON0926 START 사유입력 대상자일 경우
- if (sysf_messageBox ( sErrMsg, "Q999" ) == "7") {
- frmf_setParameter ("SPMMO016000_resnflag" , "O" );
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt = this.getOwnerFrame().position.x + 500;
- var ypt = this.getOwnerFrame().position.y + 400;
-
- frmf_modal("SPMMO16000", "SPMMO16000", null, false, mon, xpt, ypt, null, null, null, null, null, "P"); //사유입력창
-
- var resncnts = frmf_getParameter ("SPMMO016000_resncnts" );
- ds_copyprcp_src.setColumn(i, "tempcol19" ,resncnts );
-
- ds_dest.insertRow(nSrchRow);
- ds_dest.copyRow(nSrchRow, ds_copyprcp_src, i);
-
- addPrcpPop_App(nSrchRow, sUsge);
- } else {
- continue;
- }
- }
- } else { // 오류가 없으면 화면으로 복사 처리
- if(sErrFlag == "I" && !utlf_isNull(sErrMsg)) { // 서버체크시 정보가 있으면 메세지 처리
- sysf_messageBox(sErrMsg, sErrCode);
- }
- ds_dest.insertRow(nSrchRow);
- ds_dest.copyRow(nSrchRow, ds_copyprcp_src, i);
- addPrcpPop_App(nSrchRow, sUsge); // 화면에서 체크해야 할 항목 체크
- }
- } // End of 복사 처방 건별 화면 복사
-
- // 투석원내처방사유처리
- if ( ds_init.getColumn(0, "hosinprcpresncd") != ds_copyflag_src.getColumn(0, "hosinprcpresncd") ) {
- lf_chngHosinPrcpResn();
- }
-
- //JJE CP,항암프로토콜일 경우 root/init/prcpdd 를 해당 미래일자로 변경... (2008.09.11)
- // refresh() 만 하는 경우라 XP에서는 의미 없다, 확인필요
- // if (sCopyInptFlag == "05" || sCopyInptFlag == "06") {
- // if ( ds_initmodel.getValue( "/root/init/prcpdd") != model.getValue(sCopyFlagSrc + "/prcpdd") ) {
- // cmb_prcpdd.refresh();
- // }
- // }
- }
-
- dsf_deleteDs(sCopyPrcpSrc); // 처방정보, 화면정보 복사 노드삭제
- dsf_deleteDs(sCopyFlagSrc);
- }
- /**
- * @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
- * 변환 OK
- * @---------------------------------------------------
- */
- function lf_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()");
- var oTrgtObj = lf_getFormObject(objFlag);
-
- oTrgtObj.ds_drugcalc.setColumn(0, "prcpvol", "");
- oTrgtObj.ds_drugcalc.setColumn(0, "prcpqty", "");
- oTrgtObj.ds_drugcalc.setColumn(0, "prcptims", "");
- oTrgtObj.ds_drugcalc.setColumn(0, "drprcpetc7", "");
- oTrgtObj.ds_drugcalc.setColumn(0, "drprcpetc8", "");
-
- //목적지를 변수로 받고 싶었으나 iviewer에서 문제가 있어 목적지는 프레그를 구분자로 박아 넣음.
- var srchRow = 0;
- var ds_src = this.objects[strSrc];
- //검색Row 찾기
- var ds_dest = oTrgtObj.objects[strDest];
- for (var i = ds_dest.rowcount - 1; i >= 0; i--){
- if(ds_dest.getColumn(i, "status") == "S") {
- srchRow = i;
- break;
- }
- }
- // 처방 코드정보를 가져온다. (선택진료 자동체크 및 선택진료의사 등의 데이터를 가져오기 위해) 2011.10.13 엄영만
- var sPrcpCodes = ""; // 처방코드 정보를 가져오기 위한 처방 코드 셋팅
- if ( multiFlag == "Y" ){
- for( var i = 0; i < ds_src.rowcount; i++ ) {
- if ( ds_src.getColumn(i, checkNM) == checkFlag ) {
- if(utlf_isNull(sPrcpCodes)){
- sPrcpCodes = "'" + ds_src.getColumn(i, "prcpcd") + "'";
- } else {
- sPrcpCodes = sPrcpCodes + ",'" + ds_src.getColumn(i, "prcpcd") + "'";
- }
- nCopyCnt++;
- }
- }
- } else {
- sPrcpCodes = "'" + ds_src.getColumn(ds_src.rowposition, "prcpcd") + "'" ;
- nCopyCnt = 1;
- }
- if(!utlf_isNull(sPrcpCodes)){ // 조회할 코드가 있을경우에만 실행하도록 수정함.
- oTrgtObj.lf_getPrcpCodeInfo(sPrcpCodes);
- }
-
- // 처리 속도 향상을 위해 잠시 데이타셋 이벤트 끔
- // -----------------------------------------------------------------------------------------
- lf_setDatasetEvent(ds_src, ds_dest, false);
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step1Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 전 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
-
- var cnt = 0;
- if ( multiFlag == "Y" ){
- //약속처방일 경우 MIX 가 있으면 번호를 새로 만들어줌
- if ( prcpInptFlag == "02") { //약속처방이고
- for( var i = 0; i < ds_src.rowcount; i++ ) {
- if ( ds_src.getColumn(i, checkNM) == checkFlag ) {
- var prcpmixno = ds_src.getColumn(i, "prcpmixno" );
- if ( !utlf_isNull(prcpmixno) && prcpmixno != "-" && prcpmixno != "0" ) { //믹스번호가 있다면
- if ( ds_src.getColumn(i, "tempcol8") == "-" ) { //새로 번호 딴것은 체크 하지 않는다.
- ds_src.setColumn(i, "tempcol8", "");
- } else {
- var mixcnt = 0;
- //믹스번호를 하나 증가시켜서 같은 믹스번호가 있는것은 적용한다.
- var newprcpmixno = eval(opener.ds_init.getColumn(0, "prcpmixno")) + 1;
- for( var j = 0; j < ds_src.rowcount; j++ ) {
- if ( ds_src.getColumn(j, checkNM) == checkFlag ) {
- if ( i != j ) {
- if ( prcpmixno == ds_src.getColumn(j, "prcpmixno" )) {
- ds_src.setColumn(j, "prcpmixno", newprcpmixno );
- ds_src.setColumn(j, "tempcol8", "-" );
- mixcnt++;
- }
- }
- }
- }
- if ( mixcnt == 0 ) { // 같이 적용된것이 하나도 없다면 믹스번호 초기화
- ds_src.setColumn(i, "prcpmixno", "-" );
- } else { // 값이 있으면 본인것도 증가시켜주고, 믹스번호 init 값도 증가시켜준다.
- ds_src.setColumn(i, "prcpmixno", newprcpmixno );
- oTrgtObj.ds_init.setColumn(0, "prcpmixno", newprcpmixno);
- }
- }
- }
- }
- }
- } //약속처방 mix no 체크끝
- for( var i = 0; i < ds_src.rowcount; 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 ( ds_src.getColumn(i, "prcpclscd") == "03" ) {
- addprcpchk = oTrgtObj.ds_root.getColumn(0, "addprcp");
-
- if ( addprcpchk != "Y" ){
- continue ;
- }
- }
-
- if ( ds_src.getColumn(i, checkNM) == checkFlag ) {
- srchRow = lf_addPrcpDetl ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag );
- if ( srchRow == 0) {
- cnt++;
- //검색줄 다시검색
- var ds_dest = oTrgtObj.objects[strDest];
- for (var j = ds_dest.rowcount - 1; j >= 0; j--){
- if(ds_dest.getColumn(j, "status") == "S") {
- srchRow = j;
- break;
- }
- }
- } else {
- //처방복사에 문제가 없다면 하드코드 set 처방 Chk
- //srchRow = fAddSetPrcpChk ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag );
- srchrownum = lf_addSetPrcpChkKNUH ( objFlag , strSrc , strDest , i , srchRow, prcpInptFlag );
- if (srchrownum != srchRow) {
- srchRow = srchrownum;
-
- oTrgtObj.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( ds_src.getColumn(ds_src.rowposition, "prcpclscd") == "03" ) {
- addprcpchk = oTrgtObj.ds_root.getColumn(0, "addprcp");
- if ( addprcpchk != "Y" ){
- // 처리 속도 향상을 위해 꺼뒀던 데이타셋 이벤트 다시 켜두고 종료
- // -----------------------------------------------------------------------------------------
- lf_setDatasetEvent(ds_src, ds_dest, true);
- return ;
- }
- }
- //mix no 초기화
- ds_src.setColumn(ds_src.rowposition, "prcpmixno", "-" );
- srchRow = lf_addPrcpDetl ( objFlag , strSrc , strDest , grdObj.rowposition , srchRow, prcpInptFlag );
- if ( srchRow == 0) {
- cnt++;
- } else {
- //처방복사에 문제가 없다면 하드코드 set 처방 Chk
- //srchRow = fAddSetPrcpChk( objFlag , strSrc , strDest , grdObj.row , srchRow, prcpInptFlag );
- var srchrownum = lf_addSetPrcpChkKNUH( objFlag , strSrc , strDest , grdObj.rowposition , srchRow, prcpInptFlag );
- if (srchrownum != srchRow) {
- srchRow = srchrownum;
- oTrgtObj.DrugCalc ( "drprcpetc8" , parseInt(srchRow) -1 );
- }
- }
- }
-
- endStepDate = new Date(); // 각 업부 종료후 시간
- step2Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- startStepDate = new Date(); // 각 업부 시작 시간
-
- // 처리 속도 향상을 위해 꺼뒀던 데이타셋 이벤트 다시 켬
- // -----------------------------------------------------------------------------------------
- lf_setDatasetEvent(ds_src, ds_dest, true);
- lf_hosinPrcpResnChk (objFlag, ds_dest);
- if ( cnt == 0 ) { // 한번도 에러가 없을 때만 메인으로 포커스가 간다.
- lf_focusMain ( srchRow, objFlag, prcpNmClearFlag );
- } else {
- var modiflag = ds_init_rowmodify.getColumn(0, "modiflag");
- // 다른 처방 연계 화면 작업 후 rebuild(), recalculate() 동작 확인필요
- // 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)
- oTrgtObj.dsf_deleteDs("ds_main_toot_prcp");
- // 20080925 항생제 추가 시는 그리드 editting을 위해 색 변경 로직 생략 by MoonSH
- // 그리드에 expr로 되어 있음
- //var cdssFlag = frmf_getParameter( "SPMMD01600_flag");
- frmf_clearParameter( "SPMMD01600_flag", "");
- // if (cdssFlag != "Y") {
- // fPrcpColor(objFlag);
- // }
- if ( objFlag != "child") {
- //JJE-
- if( ds_root.getColumn(0, "cp" ) == "Y" ){
- if (prtlprcpstatus_SMMMO00110 != "U" ) {
- div_all.div_srch.visible = false;
- }
- }else{
- div_all.div_srch.visible = false;
- }
- //-JJE
- }
- //model.addLog("***************** End Of addPrcp()");
- endStepDate = new Date(); // 각 업부 종료후 시간
- step3Elapsed = endStepDate.getTime() - startStepDate.getTime(); // 코드별 체크 소요시간
- // 속도체크 모니터링 로그 추가 2013.06.27 엄영만
- oTrgtObj.reqSetMonitoringLog("PrcpCopy", "WEB", oTrgtObj.frmf_getScreenID(), objFlag, prcpInptFlag, multiFlag, prcpNmClearFlag, nCopyCnt, step1Elapsed+step2Elapsed+step3Elapsed, step1Elapsed, step2Elapsed, step3Elapsed);
- }
- /***************************************************************************************************
- * Function : lf_addPrcpDetl
- * Description : 검색된 내용중 내릴 처방을 선택하여 전송한다.( double click )
- * Argument : 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 type : srchRow 에러시 0
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_addPrcpDetl(objFlag, strSrc, strDest, sendRow, srchRow, prcpInptFlag, grupSrc, direcSrc)
- {
- var oTrgtObj = lf_getFormObject(objFlag);
- //20091013 by sonjy 성빈센트병원 요청 => mig data 전처방 copy시 신코드일 경우 reset여부
- var bfprcpsrchyn = oTrgtObj.ds_initsrch_bfprcpsrchyn.getColumn(0, "trgtcd");
- //20091104 by sonjy 성빈센트 전환 데이터 관련 => mig data 전처방 copy시 약/주사 용량 오류 보정
- var migyn = "";
- var colHidnValue = lf_grdBaseColHidn("D");
-
- /***************************** 전처방 구수가코드 검색시 신코드로 변환검색 ****************************************/
- var oldprcpflag = "";
- var ds_src = this.objects[strSrc];
-
- if ( prcpInptFlag == "01" ) { //전처방이고
- var tempcol9 = ds_src.getColumn(sendRow, "tempcol9");
- var tempcol18 = ds_src.getColumn(sendRow, "tempcol18");
- if ( tempcol9 == "N" ) {
- return 0;
- } else {
- var bfprcpcd = ds_src.getColumn(sendRow, "prcpcd" );
- //20091104 by sonjy 성빈센트 전환 데이터 관련 => mig data 전처방 copy시 약/주사 용량 오류 보정
- migyn = ds_src.getColumn(sendRow, "tempcol20" );
-
- /**
- * 20091013 by sonjy 성빈센트병원 요청 => mig data 전처방 copy시 신코드일 경우 reset
- * 단, 지시처방일 경우는 검색 불필요하므로 제외
- */
- if ( bfprcpcd.substring( 0, 1 ) == "_" || bfprcpcd.substring( 0, 1 ) == "=" ||
- ( bfprcpsrchyn == "Y" && migyn == "Y" && ds_src.getColumn(sendRow, "prcpclscd" ) != "09") ) { //구수가코드이면 신코드로 다시 검색한다. by sonjy20091013
- //20090407 마정민수정. tempcol9로 구분되기 때문에 색깔비교 주석처리.
- //if ( ds_src.getColumn(sendRow, "tempcol10" ) != "#ccffcc" ) { //매핑값이 있으면(색깔은 mgr단에서 박는다)
-
- var bfprcpvol = ds_src.getColumn(sendRow, "prcpvol" );
- var bfprcpqty = ds_src.getColumn(sendRow, "prcpqty" );
- var bfprcptims = ds_src.getColumn(sendRow, "prcptims" );
- var bfprcpdayno = ds_src.getColumn(sendRow, "prcpdayno" );
- var bfprcpdelivefact = ds_src.getColumn(sendRow, "prcpdelivefact" );
- var bfpowdflag = ds_src.getColumn(sendRow, "powdflag" );
- var bfprnprcpflag = ds_src.getColumn(sendRow, "prnprcpflag" );
- var bfprepprcpflag = ds_src.getColumn(sendRow, "prepprcpflag" );
- var bfselfprcpflag = ds_src.getColumn(sendRow, "selfprcpflag" );
- var bfselfdrugflag = ds_src.getColumn(sendRow, "selfdrugflag" );
- var bfdrugpackflag = ds_src.getColumn(sendRow, "drugpackflag" );
- var bferprcpflag = ds_src.getColumn(sendRow, "erprcpflag" );
- var bfprecureprcpflag = ds_src.getColumn(sendRow, "precureprcpflag" );
- var bfnigtprcpflag = ds_src.getColumn(sendRow, "nigtprcpflag" );
- var bfportprcpflag = ds_src.getColumn(sendRow, "portprcpflag" );
- var bffixprcpflag = ds_src.getColumn(sendRow, "fixprcpflag" );
- var bfanamneflag = ds_src.getColumn(sendRow, "anamneflag" );
- var bferreadflag = ds_src.getColumn(sendRow, "erreadflag" );
- var bfstemcellflag = ds_src.getColumn(sendRow, "stemcellflag" );
- var bfprcpexecdeptcd = ds_src.getColumn(sendRow, "prcpexecdeptcd" );
- var bfDrprcpetc7 = ds_src.getColumn(sendRow, "drprcpetc7"); //1회용량
- var bfDrprcpetc8 = ds_src.getColumn(sendRow, "drprcpetc8"); //1회수량
- var bfDrugmastspec = ds_src.getColumn(sendRow, "drugmastspec");
- var bfpayflagcd = ds_src.getColumn(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 ), oTrgtObj.ds_init.getColumn(0, "prcpdd" ), oTrgtObj.ds_paminfo.getColumn(0, "insukind"), "TRMMO02101", "", false, "getOldPrcpCdChngInfo", "E" );
- } else {
- fPrcpSrchCom ( bfprcpcd, oTrgtObj.ds_init.getColumn(0, "prcpdd"), ds_paminfo.getColumn(0, "insukind"), "TRMMO02101", "", false, "getPrcpCdSrchInfo", "E" , false);
- }
-
- strSrc = "ds_oldprcpchngsrch_prcplist";
- ds_src = this.objects[strSrc];
- sendRow = 0;
- if ( utlf_isNull(ds_src.getColumn(sendRow, "prcpcd"))){
- return 0;
- } else {
- oldprcpflag = "Y";
- var prcpclscd = ds_src.getColumn(sendRow, "prcpclscd");
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
- if ( prcpclscd == "A2" ) {
- if ( ds_src.getColumn(sendRow, "prcptims") != bfprcptims ) {
- ds_src.setColumn(sendRow, "prcptims", bfprcptims);
- fBaseMthd("oldprcp");
- }
- } else {
- ds_src.setColumn(sendRow, "prcptims", bfprcptims);
- }
-
- var chkPrcpVol = ds_src.getColumn(sendRow, "prcpvol");
- if( bfprcpsrchyn == "Y" && migyn == "Y" && parseInt(chkPrcpVol) < 1 ){
- ds_src.setColumn(sendRow, "prcpvol", 0 );
- ds_src.setColumn(sendRow, "prcpqty", 0 );
- ds_src.setColumn(sendRow, "prcpdayno", 0 );
- } else {
- ds_src.setColumn(sendRow, "prcpvol", bfprcpvol );
- ds_src.setColumn(sendRow, "prcpqty", bfprcpqty );
- ds_src.setColumn(sendRow, "prcpdayno", bfprcpdayno );
- }
- //ds_src.setColumn(sendRow, "drugmthdspccdnm", "-" );
- //ds_src.setColumn(sendRow, "drugmthdspccd", "-" );
-
- //20091104 by sonjy 성빈센트 전환 데이터 관련 => mig data 전처방 copy시 약/주사 용량 오류 보정
- if( bfprcpsrchyn == "Y" && migyn == "Y" ){
- var sdrugmastspec = ds_src.getColumn(sendRow, "drugmastspec");
- var orgprcpvol = lf_getArrayData ( sdrugmastspec + "^", 0, 1 , "^", "|" ); //drugcntsvol 함량기준용량 -> 경북대는 일기준 용량으로 비교
- var orgDrprcpetc7 = ds_src.getColumn(sendRow, "drprcpetc7"); //1회용량
- var orgDrprcpetc8 = ds_src.getColumn(sendRow, "drprcpetc8"); //1회수량
- var orgCalcRate = 0;
- //회기준에서는 수가계산구분이 1이면 횟수도 곱 (2011.01.02 전지은)
- if(!utlf_isNull(bfDrprcpetc7) && !utlf_isNull(bfDrprcpetc8) && (colHidnValue == "C" || colHidnValue == "G" || colHidnValue == "H") ){
- orgCalcRate = (orgDrprcpetc8 * bfDrprcpetc8) * 1000;
- orgCalcRate = Math.round(orgCalcRate);
- orgCalcRate = orgCalcRate / 1000;
- var calcmthdcd = lf_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 ){
- ds_src.setColumn(sendRow, "prcpvol", "0") ; //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc7", "0") ; //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc8", "0") ;
- ds_src.setColumn(sendRow, "tempcol22", "0") ;
- } else {
- ds_src.setColumn(sendRow, "prcpvol", orgDrprcpetc7 * bfprcptims) ; //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc7", orgDrprcpetc7 * orgCalcRate ) ; //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc8", bfDrprcpetc8 ) ;
- ds_src.setColumn(sendRow, "tempcol22", bfprcpvol) ;
- }
- }
- }else{
- if( eval(bfDrprcpetc7) < 1 ){
- ds_src.setColumn(sendRow, "prcpvol", "0" ) ; //1회용량
- ds_src.setColumn(sendRow, "drprcpetc7", "0") ; //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc8", "0") ;
- ds_src.setColumn(sendRow, "tempcol22", "0") ;
- } else {
- ds_src.setColumn(sendRow, "prcpvol", bfDrprcpetc7 ) ; //1회용량
- ds_src.setColumn(sendRow, "drprcpetc7", bfDrprcpetc7 ) ; //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc8", bfDrprcpetc8 ) ;
- ds_src.setColumn(sendRow, "tempcol22", bfprcpvol) ;
- }
- }
- } else{//회기준 보정 끝 원래
- if ( !utlf_isNull(orgprcpvol) && Math.round ( orgprcpvol * bfprcpqty * 1000 ) != bfprcpvol * 1000 ){
- ds_src.setColumn(sendRow, "prcpvol", bfprcpqty * orgprcpvol) ;
- ds_src.setColumn(sendRow, "tempcol22", bfprcpvol) ;
- }
- }
- }
- }
- ds_src.setColumn(sendRow, "prcpdelivefact", bfprcpdelivefact );
- ds_src.setColumn(sendRow, "powdflag", bfpowdflag );
- ds_src.setColumn(sendRow, "prnprcpflag", bfprnprcpflag );
- ds_src.setColumn(sendRow, "prepprcpflag", bfprepprcpflag );
- ds_src.setColumn(sendRow, "selfprcpflag", bfselfprcpflag );
- ds_src.setColumn(sendRow, "selfdrugflag", bfselfdrugflag );
- ds_src.setColumn(sendRow, "drugpackflag", bfdrugpackflag );
- ds_src.setColumn(sendRow, "erprcpflag", bferprcpflag );
- ds_src.setColumn(sendRow, "precureprcpflag", bfprecureprcpflag );
- ds_src.setColumn(sendRow, "nigtprcpflag", bfnigtprcpflag );
- ds_src.setColumn(sendRow, "portprcpflag", bfportprcpflag );
- ds_src.setColumn(sendRow, "fixprcpflag", bffixprcpflag );
- ds_src.setColumn(sendRow, "anamneflag", bfanamneflag );
- ds_src.setColumn(sendRow, "erreadflag", bferreadflag );
- ds_src.setColumn(sendRow, "payflagcd", bfpayflagcd ); // 2011.03.03 마이그된 처방 전처방 복사시 급여도 복사하도록 수정
- }
- }
- }
- //20080917 마정민수정: PRN실처방은 전처방에서 복사되면 안된다.
- if ( ds_src.getColumn(sendRow, "prcpinptflag" ) == "19" ) {
- sysf_messageBox ( "[" + ds_src.getColumn(sendRow, "prcpnm" ) + "]: PRN 실처방은 처방등록 하실수", "I004" );
- return 0;
- }
-
- // 전처방에서 복사 시 소아 TPN은 전처방에서 복사 안되도록 요청. - 20090720 by MoonSH
- if( ds_src.getColumn(sendRow, "prcpclscd" ) == "A6" &&
- lf_getArrayData ( ds_src.getColumn(sendRow, "drugmastspec" ) + "^", 0, 23 , "^", "|" ) == "B") {
- sysf_messageBox ( "[" + ds_src.getColumn(sendRow, "prcpnm" ) + "]: 소아 TPN 처방은 전처방에서 복사하실수", "I004" );
- return 0;
- }
- // 전처방에서 복사 시 stemcellflag 초기화 요청. - 20081118 by MoonSH
- if ( !utlf_isNull(bfstemcellflag) ){
- ds_src.setColumn(sendRow, "stemcellflag", "00NNN" );
- }
- // 전처방에서 복사 시 마이그레이션 잘못 들어와서 _0으로 존재 하는 실행부서 -으로 수정. - 20081202 by MoonSH
- if ( bfprcpexecdeptcd == "_0" ) {
- ds_src.setColumn(sendRow, "prcpexecdeptcd", "-" );
- }
-
- //20091203 by sonjy 전처방 copy시 처방종류가 지시인경우 전처방에 저장된 시행부서를 copy하지 않고 초기화.[요청번호 8711 ]
- //(전실 환자의 경우 이전병동으로 보이는 문제 ) -- V/S(지시), 활동(지시), I/O(지시), 지시 : 식이,BMT제외
- var cur_prcpclscd = ds_src.getColumn(sendRow, "prcpclscd" );
- if(cur_prcpclscd == "00" || cur_prcpclscd == "01"|| cur_prcpclscd == "02" || cur_prcpclscd == "09") {
- ds_src.setColumn(sendRow, "prcpexecdeptcd", ds_src.getColumn(sendRow, "tempcol23") );
- }
- }
-
- //전처방이나 약속처방에서 임상처방체크된 처방을 발행할 경우 임상시험 부유형 자동세팅(subcretno), CHC, 2009-07-22
- if ( prcpInptFlag == "01" || prcpInptFlag == "02" ) {
- if ( ds_src.getColumn(sendRow, "clincstdyflag" ) == "Y" ) {
- lf_subcretnoSet("2", "Y", ds_src, sendRow);
- }
- //전처방이나 약속처방일때 용량/수량 보정 20100209 LYJ
- var prcpclscd = ds_src.getColumn(sendRow, "prcpclscd" );
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
- if( bfprcpsrchyn == "Y" && ds_src.getColumn(sendRow, "prcpclscd") != "09" && ds_src.getColumn(sendRow, "prcpinptflag") != "35"){ // 자가보유처방은 보정 제외한다. 20100504 LYJ
- var bfprcpvol = ds_src.getColumn(sendRow, "prcpvol");
- var bfprcpqty = ds_src.getColumn(sendRow, "prcpqty");
- var sdrugmastspec = ds_src.getColumn(sendRow, "drugmastspec");
- var orgprcpvol = lf_getArrayData ( sdrugmastspec + "^", 0, 1 , "^", "|" ); //drugcntsvol 함량기준용량
- if ( !utlf_isNull(orgprcpvol) && Math.round ( orgprcpvol * bfprcpqty * 1000 ) != bfprcpvol * 1000 ){
- var bfDrprcpetc7 = ds_src.getColumn(sendRow, "drprcpetc7"); //1회용량
- var bfDrprcpetc8 = ds_src.getColumn(sendRow, "drprcpetc8"); //1회수량
- var bfprcptims = ds_src.getColumn(sendRow, "prcptims");
- if(!utlf_isNull(bfDrprcpetc7) && !utlf_isNull(bfDrprcpetc8) && (colHidnValue == "C" || colHidnValue == "G" || colHidnValue == "H") ){
- var orgDrprcpetc7 = ds_src.getColumn(sendRow, "drprcpetc7"); //1회용량
- var orgDrprcpetc8 = ds_src.getColumn(sendRow, "drprcpetc8"); //1회수량
- var orgCalcRate = 0;
- var calcmthdcd = lf_getArrayData ( sdrugmastspec + "^", 0, 26, "^", "|" );
- if( calcmthdcd == "1" ){
- orgCalcRate = (orgDrprcpetc8 * bfDrprcpetc8) * 1000;
- orgCalcRate = Math.round(orgCalcRate);
- orgCalcRate = orgCalcRate / 1000;
- ds_src.setColumn(sendRow, "prcpvol", orgDrprcpetc7 * bfprcptims); //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc7", orgDrprcpetc7); //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc8", bfDrprcpetc8);
- ds_src.setColumn(sendRow, "tempcol22", orgDrprcpetc7);
- } else {
- ds_src.setColumn(sendRow, "prcpvol", bfDrprcpetc7); //1회용량
- ds_src.setColumn(sendRow, "drprcpetc7", bfDrprcpetc7); //1회용량*횟수
- ds_src.setColumn(sendRow, "drprcpetc8", bfDrprcpetc8);
- ds_src.setColumn(sendRow, "tempcol22", bfprcpvol);
- }
- } else {
- ds_src.setColumn(sendRow, "prcpvol", bfprcpqty * orgprcpvol) ;
- ds_src.setColumn(sendRow, "tempcol22", bfprcpvol) ;
- }
- }
- }
- }
- }
-
- //자가보유 처방일때 처방명 재설정 한다. 20100427 LYJ
- if (ds_src.getColumn(sendRow, "prcpinptflag") == "35"){
- var selfprcpnm = ds_src.getColumn(sendRow, "prcpnm" );
- var selflen = selfprcpnm.length;
- if (prcpInptFlag != "35"){
- selfprcpnm1 = selfprcpnm.substring(7, selflen);
- ds_src.setColumn(sendRow, "orgprcpnm", selfprcpnm1) ;
- }
- }
- if ( prcpInptFlag == "35" ) { //자가보유
- ds_src.setColumn(sendRow, "orgprcpnm", ds_src.getColumn(sendRow, "prcpnm" )) ;
- }
- var prcpClsCd = ds_src.getColumn(sendRow, "prcpclscd" );
- var prcpKindCd = ds_src.getColumn(sendRow, "prcpkindcd" );
- var drugmthdspccd = ds_src.getColumn(sendRow, "drugmthdspccd" );
- var prcpnm = ds_src.getColumn(sendRow, "prcpnm" );
- var drugmastspec = ds_src.getColumn(sendRow, "drugmastspec" ) + "^";
- var hsctflag = "N";
- var cpchk = "";
- var usge = "";
- var prcpgenrflag = "";
-
- usge = oTrgtObj.ds_root.getColumn(0, "usge");
- cpchk = oTrgtObj.ds_root.getColumn(0, "cp" );
- prcpgenrflag = oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag" );
-
- if ( usge == "prms" || usge == "direc" || usge == "home" ) {
- prcpInptFlag = "02";
- }
- if ( prcpClsCd == "-" ) {
- sysf_messageBox ( prcpnm + " 처방은 처방분류가 없어 처방등록을 하실 수 없습니다.", "E" );
- return 0;
- }
-
- var iprcpqty = eval(ds_src.getColumn(sendRow, "prcpqty"));
- var iprcptims = eval(ds_src.getColumn(sendRow, "prcptims"));
- if ( ds_src.getColumn(sendRow, "tempcol18" ) == "MC" && (iprcpqty != 1 || iprcptims != 1 )) {
- sysf_messageBox ( "[" + prcpnm + "] 전환데이터 연속검사처방은 처방복사 하실 수 없습니다. ( 수량:" + iprcpqty + ", 횟수:" + iprcptims + " )" , "E" );
- return 0;
- }
- var addprcpchk = lf_getDsValue(oTrgtObj.ds_root, 0, "addprcp");
- if ( addprcpchk == "Y" ){ //시행부서체크
- //시행부서 처방은 마약불가
- var spcldrug = lf_getArrayData ( drugmastspec, 0, 23, "^", "|" );
- //20080721 마정민수정 김민선 선생님의 요청. 의사권한이 있는사람은 처방 가능.
- if ( spcldrug == "M" ) {
- var prcpauthflag = oTrgtObj.ds_init.getColumn(0, "prcpauthflag");
- if (prcpauthflag != "3" ){
- ssyf_messageBox ( prcpnm + " 마약처방은 시행부서에서 의사만 등록이 가능한 처방입니다.", "E" );
- return 0;
- }
- }
- }
- //20090302 마정민수정: Irradiation(LBT70010) 단독처방 불가
- if ( ds_src.getColumn(sendRow, "prcpcd" ) == oTrgtObj.ds_initsrch_irrprcpcd.getColumn(0, "trgtcd")) {
- sysf_messageBox ( prcpnm + "는 단독처방이 불가합니다. 수혈상세팝업의 Irr 체크기능을 통해 등록해 주십시오", "E" );
- return 0;
- }
- if ( prcpClsCd == "A2" || prcpClsCd == "A4" || prcpClsCd == "A6" ) {
- if (utlf_isNull(ds_src.getColumn(sendRow, "prcpvolunitnm"))) {
- sysf_messageBox ( ds_src.getColumn(sendRow, "prcpnm") + " 처방의 용량단위가", "E014" );
- return 0;
- }
- if (utlf_isNull(ds_src.getColumn(sendRow, "prcpqtyunitnm"))) {
- sysf_messageBox ( ds_src.getColumn(sendRow, "prcpnm") + " 처방의 수량단위가", "E014" );
- return 0;
- }
- }
-
- //20090903 이윤정 추가: 응급 탭에서 선택된 환자의 경우 심야가산적용 자동 체크
- var prcpgenrflag = oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag" );
- if (prcpgenrflag == "E"){
- if ( prcpClsCd == "H2" || prcpClsCd == "H4" ) {
- ds_src.setColumn(sendRow, "nigtprcpflag","N" );
- var nigtprcptm = oTrgtObj.ds_initsrch_nigtprcptm.getColumn(0, "trgtcd");
- var nigtprcpsplit = nigtprcptm.split("|");
- var nigtprcpstart = nigtprcpsplit[0];
- var nigtprcpend = nigtprcpsplit[1];
- var MyTime = utlf_getCurrentTime();
- var realtime = MyTime.substr(0,4);
-
- if ( nigtprcpstart < realtime || realtime < nigtprcpend){
- ds_src.setColumn(sendRow, "nigtprcpflag","Y" );
- }
- }
- }
- //-- CP, 항암프로토콜일 경우는 클라이언트에서 품절약체크를 하지 않는다 --//
- if( prcpInptFlag != "05" && prcpInptFlag != "06" && prcpInptFlag != "17" ){
- if ( prcpClsCd == "A2" || prcpClsCd == "A4" || prcpClsCd == "A6" ) {
-
- //항생제체크
- var returnVal = lf_getHardCDList("Y", 233, 3); // 2010. 10. 26. 경북대는 CDSS 추천항생제를 사용하지 않음. 따라서 사용여부를 처방 하드코드 테이블로 설정할 수 있도록 함.
- if (returnVal =="Y") {
- if ( usge == "prcp" && prcpgenrflag != "O" && prcpClsCd == "A6") {
- if ( lf_getArrayData ( drugmastspec + "^", 0, 23, "^", "|" ) == "P" && lf_getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "N" ) {
- if ( objFlag == "child" ) {
- if (oTrgtObj.lf_antiMicChk ( sendRow, "child", strSrc, prcpInptFlag ) == 0){
- return 0;
- }
- } else {
- if (lf_antiMicChk ( sendRow, "1", strSrc, prcpInptFlag ) == 0 ){
- return 0;
- }
- }
- }
- }
- //제한항생제체크
- if ( usge == "prcp" && prcpgenrflag != "O" ) {
- if ( lf_getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "Y" ) {
- if ( objFlag == "child" ) {
- if (oTrgtObj.lf_antiMicChk ( sendRow, "child", strSrc, prcpInptFlag ) == 0){
- return 0;
- }
- } else {
- if (lf_antiMicChk ( sendRow, "1", strSrc, prcpInptFlag ) == 0 ){
- return 0;
- }
- }
- }
- }
- }
- //BY 문세희 20080930 END
- //품절약 체크
- if ( lf_getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) {
- if ( objFlag == "child" ) {
- oTrgtObj.lf_altDrug ( sendRow, "child", strSrc, prcpInptFlag );
- } else {
- lf_altDrug ( sendRow, "1", strSrc, prcpInptFlag );
- }
- return 0;
- }
- //20090528 마정민 추가. 6세미만 경구약 자동 powdflag전환 때문에 처방복사시 powdflag체크로직 추가. 단 전처방복사는제외.
- var vAge = lf_getDsValue(oTrgtObj.ds_paminfo, 0, "age" );
- if ( vAge < 6 && prcpClsCd == "A2" && prcpInptFlag != "01" ) {
- if ( lf_getArrayData ( drugmastspec + "^", 0, 19, "^", "|" ) == "2" ) { //산제불가
- if ( objFlag == "child" ) {
- oTrgtObj.lf_altDrug ( sendRow, "child", strSrc, prcpInptFlag, "4" );
- if ( oTrgtObj.frmf_getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- oTrgtObj.frmf_clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- } else {
- lf_altDrug ( sendRow, "4", strSrc, prcpInptFlag );
- if ( frmf_getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- frmf_clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- }
- //20090602 배성미선생님 요청으로 산제불가 취소해도 복사되게 수정
- } else if ( lf_getArrayData ( drugmastspec + "^", 0, 19, "^", "|" ) == "1" ) { //산제주의
- if ( objFlag == "child" ) {
- oTrgtObj.lf_altDrug ( sendRow, "child", strSrc, prcpInptFlag, "5" );
- if ( oTrgtObj.frmf_getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- oTrgtObj.frmf_clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- } else {
- lf_altDrug ( sendRow, "5", strSrc, prcpInptFlag );
- if ( frmf_getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- frmf_clearParameter ( "SPMMB10100_chkyn" );
- return 0; //대체약을 선택했다면 복사시키지 않는다.
- }
- }
- }
- }
- }
- //대체처방체크
- var altcdinfo = ds_src.getColumn(sendRow, "tempcol16" );
- var prcpinptflag = ds_src.getColumn(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") {
- sysf_messageBox ( "[" + prcpnm + "]: 수가 또는 검사실 사용종료 되어 처방을 복사 할 수 없습니다.\n\n상단메뉴 기본정보관리->약속Set 메뉴에서 약속처방을 재구성 하시기 바랍니다.", "E999" );
- } else {
- sysf_messageBox ( "[" + prcpnm + "]: 수가 또는 검사실 사용종료 되어 처방을 복사", "E001" );
- }
- return 0;
- }
-
- if (prcpinptflag !="35") { // 자가보유처방은 복사 가능 20100504 by LYJ
- sysf_messageBox ( "[" + prcpnm + "]: 수가 또는 검사실 사용종료 되어 처방을 복사", "E001" );
- return 0;
- }
- }
- if (altcdinfo.substring( 0, 1 ) == "X" ) {
- if ( objFlag == "child" ) {
- oTrgtObj.lf_altPrcpCd ( sendRow, "child", strSrc, prcpInptFlag );
- } else {
- lf_altPrcpCd ( sendRow, "1", strSrc, prcpInptFlag );
- }
- return 0;
- }
- }
- //-- CP, 항암프로토콜 처방의 품절약 체크 제외 끝 --//
- if (!lf_prmsSaveCheck ( usge, prcpKindCd, prcpnm )) {
- return 0;
- }
- if ( prcpInptFlag == "01" ) { //전회처방
- //반환요청된 처방, D/C된 처방 모두 처방 복사 불가, CHC, 2009-08-03
- //if ( ds_src.getColumn(sendRow, "prcphistcd" ) == "E" ) {
- if ( ds_src.getColumn(sendRow, "prcphistcd" ) == "E" || ds_src.getColumn(sendRow, "prcphistcd" ) == "C") {
- sysf_messageBox ( "반납처방은 처방복사", "E001" );
- return 0;
- }
- //종속처방 자처방 복사 불가
- var inclprcpno = ds_src.getColumn(sendRow, "inclprcpno" );
- if ( !utlf_isNull(inclprcpno) && inclprcpno != "-" ) {
- if ( eval(inclprcpno) > 0 ) {
- if ( ds_src.getColumn(sendRow, "grupsnglflag" ) != "M" ) {
- return 0;
- }
- }
- }
- //20080731: 마정민 수정 hsct 자처방 복사 불가
- var hsctlnkno = ds_src.getColumn(sendRow, "hsctlnkno" );
- if ( !utlf_isNull(hsctlnkno) && hsctlnkno != "-" ) {
- if ( eval(hsctlnkno) > 0 ) {
- if ( ds_src.getColumn(sendRow, "prcpsetcd" ) != "-" ) {
- return 0;
- }
- }
- }
- }
- if ( ds_src.getColumn(sendRow, "grupsnglflag" ) == "M" ) { //그룹코드 M을 찾아낸다. 처방검색일때만 풀린다.
- var grupCond1 = ds_src.getColumn(sendRow, "prcpcd" );
- var inclprcpno = "";
- var grupCond3 = oTrgtObj.ds_init.getColumn(0, "prcpdd");
- var grupCond4 = oTrgtObj.ds_paminfo.getColumn(0, "insukind");
- if ( usge == "prcp" ) { //처방화면에만 종속처방이 적용된다.
- inclprcpno = eval(oTrgtObj.ds_init.getColumn(0, "inclprcpno")) + 1; //종속처방번호를 받아온다.
- }
-
- prcpGroupSrch ( grupCond1, grupCond3, grupCond4 );
- if ( utlf_isNull(grupSrc) ) grupSrc = "ds_prcpgroup_prcplist";
- var ds_groupSrc = this.objects[grupSrc];
- if ( ds_groupSrc.rowcount > 0 ) {
- var ds_dest = oTrgtObj.objects[strDest];
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_groupSrc, sendRow);
- if (!oTrgtObj.lf_addPrcpSetValue ( "main", strDest, srchRow, prcpInptFlag, "N", inclprcpno )) {
- return 0;
- }
- srchRow ++;
-
- if ( usge == "prcp" ) {
- for (var i = 0; i < ds_groupSrc.rowcount; i++) {
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_groupSrc, i);
- if (!oTrgtObj.lf_addPrcpSetValue ( "main", strDest, srchRow, prcpInptFlag, "N", inclprcpno )) {
- return 0;
- }
-
- srchRow = oTrgtObj.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- srchRow ++;
- }
- }
- }
- } else if ( ds_src.getColumn(sendRow, "grupsnglflag" ) == "J" ) { //그룹지시처방 J을 찾아낸다.
- //조회조건
- var direcCond1 = ds_src.getColumn(sendRow, "srchcondcnts" );
- var direcCond5 = ds_src.getColumn(sendRow, "prcpcd" );
- var direcCond3 = "";
- var direcCond4 = "";
- if ( prcpClsCd == "04" ) {
- hsctflag = "Y";
- }
- direcCond3 = oTrgtObj.ds_init.getColumn(0, "prcpdd" );
- direcCond4 = oTrgtObj.ds_paminfo.getColumn(0, "insukind");
- lf_prcpDirecSrch ( direcCond1, direcCond3, direcCond4, direcCond5 );
- if ( utlf_isNull(direcSrc) ) direcSrc = "ds_prcpdirec_prcplist";
- var ds_direcSrc = this.objects[direcSrc];
- if ( ds_direcSrc.rowcount > 0 ){ //그룹지시처방 J는 종속하는 수가 코드가 있을 때만 추가.
- //HSCT 모코드는 HSCTTEMPFLAG 가 N이다.
- var ds_dest = oTrgtObj.objects[strDest];
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_direcSrc, sendRow);
- //종속처방번호 Setting ( hsctlnkno )
- var hsctlnkno = eval( oTrgtObj.ds_init.getColumn(0, "hsctlnkno" )) + 1;
- oTrgtObj.ds_init.getColumn(0, "hsctlnkno", hsctlnkno );
- if (!oTrgtObj.lf_addPrcpSetValue ( "main", strDest, srchRow, prcpInptFlag, "M" )) {
- return 0;
- }
-
- //CP 약속셋 생성 시에는 자코드가 풀리면 안된다. CP배치를 통해 실처방 저장시 풀린다! (2008.01.22)
- if( oTrgtObj.ds_root.getColumn(0, "cp") == "S" || ds_root.getColumn(0, "cp") == "S" ){
- return;
- }
-
- srchRow = oTrgtObj.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- srchRow ++;
- for (var k = 0; k < ds_direcSrc.rowcount; k++) {
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_direcSrc, k);
- if (!oTrgtObj.lf_addPrcpSetValue ( "main", strDest, srchRow, prcpInptFlag, hsctflag )) {
- return 0;
- }
-
- srchRow = oTrgtObj.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- srchRow ++;
- }
- }
- } else if ( (prcpClsCd == "B2" || prcpClsCd == "B4" || prcpClsCd == "B6") && (lf_getArrayData (drugmastspec, 0, 2, "^", "|" ) == "0" || lf_getArrayData (drugmastspec, 0, 2, "^", "|" ) == "-")){
- //검사대분류유형(testlrgkind) 그룹: 0, 1
- //-일 때는 검체와 상관없는 그룹코드
- var grupCond1 = ds_src.getColumn(sendRow, "prcpcd" );
- var grupCond3 = "";
- var grupCond4 = "";
- var popflag = "group"
- if ( objFlag == "child" ) {
- popflag = "child";
- }
- grupCond3 = oTrgtObj.ds_init.getColumn(0, "prcpdd" );
- grupCond4 = oTrgtObj.ds_paminfo.getColumn(0, "insukind");
-
- //구수가코드일 경우
- if ( oldprcpflag == "Y" ) {
- popflag = "oldprcp";
- }
- var drugmthdspccd = ds_src.getColumn(sendRow, "drugmthdspccd" );
- var spccd = "";
- var spcnm = "";
- fGetSpc ( sendRow, popflag, objFlag )
- if ( drugmthdspccd == "998" ) {
- if ( frmf_getParameter ("SPMMO03500_rtn_useyn") == "Y" ) {
- spccd = frmf_getParameter ( "SPMMO03500_rtn_spccd" );
- spcnm = frmf_getParameter ( "SPMMO03500_rtn_spcscrnnm" );
- }
- frmf_clearParameter ( "SPMMO03500_rtn_useyn" );
- frmf_clearParameter ( "SPMMO03500_rtn_spccd" );
- frmf_clearParameter ( "SPMMO03500_rtn_spcscrnnm" );
- } else if ( drugmthdspccd == "999" ) {
- if ( frmf_getParameter ("SPMMO03400_rtn_useyn") == "Y" ) {
- spccd = frmf_getParameter ( "SPMMO03400_rtn_spccd" );
- spcnm = frmf_getParameter ("SPMMO03400_rtn_spcscrnnm" );
- }
- frmf_clearParameter ( "SPMMO03400_rtn_useyn" );
- frmf_clearParameter ( "SPMMO03400_rtn_spccd" );
- frmf_clearParameter ( "SPMMO03400_rtn_spcscrnnm" );
- } else { //팝업이 뜨지 않을 때는 본체의 검체코드로 검색한다.
- spccd = drugmthdspccd;
- spcnm = ds_src.getColumn(sendRow, "drugmthdspccdnm" );
- }
-
- prcpGroupSrch ( grupCond1, grupCond3, grupCond4, spccd, lf_getArrayData (drugmastspec, 0, 2, "^", "|" ), "getLisPrcpGroupInfo" );
- var ds_dest = oTrgtObj.objects[strDest];
- if ( utlf_isNull(grupSrc) ) grupSrc = "ds_prcpgroup_prcplist";
- var ds_grupSrc = this.objects[grupSrc];
-
- for (var i = 0; i < ds_grupSrc.rowcount; i++) {
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_grupSrc, i);
- if (!oTrgtObj.lf_addPrcpSetValue ( "main", strDest, srchRow, prcpInptFlag )) {
- return 0;
- }
- if (!utlf_isNull(spccd)) {
- if ( lfgetArrayData (drugmastspec, 0, 2, "^", "|" ) != "-" ) {
- oTrgtObj.ds_main_prcplist.setColumn(srchRow, "drugmthdspccd", spccd );
- oTrgtObj.ds_main_prcplist.setColumn(srchRow, "drugmthdspccdnm", spcnm );
- }
- }
-
- srchRow ++;
- }
- } else { //그룹코드 M, J 가 아닐 경우
- var ds_dest = oTrgtObj.objects[strDest];
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_src, sendRow);
- //전처방 때문에 duplicate => addPrcpSetValue 하는 것으로 수정
- //먼저 set 하면 전처방 화면 내용이 수정되고 그로인해 처방키 초기화로 인해 D/C 시 에러
- if (!oTrgtObj.lf_addPrcpSetValue ( "main", strDest, srchRow, prcpInptFlag )) {
- return 0;
- }
-
- srchRow = oTrgtObj.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- srchRow ++;
- }
- //model.addLog(" ***************** End Of addPrcpDetl()");
-
- return srchRow; //검색 row 값을 넘겨준다.
- }
- /***************************************************************************************************
- * Function : lf_addPrcpSetValue
- * Description : 처방main에 넘긴 후에 기본값을 setting한다.
- * Argument : objFlag => child or ...
- * : strSrc => setting할 source node
- * : sendRow => setting할 row
- * : prcpInptFlag => 처방입력구분 00 처방검색, 01 전회처방, 02 약속처방, 03 약속수술.. M0034
- * : hsctflag => hsct 인지 표시
- * : inclprcpcd => 종속처방코드
- * return type : true, false
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_addPrcpSetValue(objFlag, strSrc , sendRow, prcpInptFlag, hsctflag, inclprcpno) {
- var oTrgtObj = lf_getFormObject(objFlag);
- //
- var ds_src = oTrgtObj.objects[strSrc];
- var prcpdd = ""; //처방일
- var prcpkindcd = ""; //처방종류변수
- var pamInfoNode = "/root/paminfo/list";
- var pid = ""; //환자번호
- var indd = ""; //진료일자
- var cretno = ""; //생성번호
- var orddeptcd = ""; //담당부서
- var orddrid = ""; //담당교수
- var prcpgenrflag = ""; //외래입원구분
- var prcpclscd = ds_src.getColumn(sendRow, "prcpclscd" );
- var orddeptcd = "";
- var org_prcpInptFlag = prcpInptFlag;
-
- if ( utlf_isNull(prcpInptFlag)){
- prcpInptFlag = ds_src.getColumn(sendRow, "prcpinptflag" );
- }
-
- if( (org_prcpInptFlag != "05" || (org_prcpInptFlag == "05" && ds_src.getColumn(sendRow, "prcpinptflag") == "00")) && ds_src.getColumn(sendRow, "prcpinptflag") != "35"){ //20100426 자가보유약일 때 prcpinptflag 35 로 지정한다 LYJ
- ds_src.setColumn(sendRow, "prcpinptflag", prcpInptFlag ); //처방입력구분
- prcpInptFlag = org_prcpInptFlag;
- }
-
- ds_src.setColumn(sendRow, "prcphistcd", "O" ); //처방이력코드:O
- ds_src.setColumn(sendRow, "prcpsignflag", "2" ); //처방이력구분:2
- ds_src.setColumn(sendRow, "prcprefseq", "0" ); //처방순서(전처방에 넘어올때도 있기때문에 0으로 클리어)
- ds_src.setColumn(sendRow, "etcprcpflag", "-" ); //디폴트세팅.
- //-- CP, 항암프로토콜일 경우 추가되는 saveflaginfo 값 셋팅 --//
- if( prcpInptFlag == "05" || prcpInptFlag == "06" ){
- if( ds_src.getColumn(sendRow, "prcpcd") != "000000000033" ){
- //처방명의 구분이 2개가 중복되어 저장되는 문제 -> 원처방명을 저장, 공통 지시처방의 원처방명은 "전달사항" 이므로, 공통 지시처방만 제외
- ds_src.setColumn(sendRow, "prcpnm", ds_src.getColumn(sendRow, "orgprcpnm") ); //makePrcpNm() 때문에 prcpnm->orgprcpnm
- }
-
- if( prcpInptFlag == "06" ){
- ds_save_saveflaginfo.setColumn(0, "cpgappno", appNo_SMMMO00110 ); //CP처방 or 프로토콜처방 no
- ds_save_saveflaginfo.setColumn(0, "prtlprcpstatus", prtlprcpstatus_SMMMO00110 ); //CP처방 or 프로토콜처방 저장 status
- ds_save_saveflaginfo.setColumn(0, "prtlflag", "10" ); //프로토콜구분
- }
- }else{
- ds_src.setColumn(sendRow, "status", "I" );
- }
- //-- 셋팅 끝 --//
- var drugmastspec = ds_src.getColumn(sendRow, "drugmastspec") + "^";
- var usge = ds_root.getColumn(0, "usge" );
- var spcldrug = lf_getArrayData ( drugmastspec + "^", 0, 23, "^", "|" );
- //가정간호일때 시작일,종료일 바꿔준다.
- if (usge == "home") {
- ds_src.setColumn(sendRow, "tempcol6", ds_init.getColumn(0, "prcpfromdd")); //시작일자
- ds_src.setColumn(sendRow, "tempcol7", ds_init.getColumn(0, "prcptodd")); //종료일자
- //20080825 마정민 수정 가정간호처방 주사일 경우 자동으로 home 체크. 단 마약이 아닐경우. TPN일 경우 추가 20081013 by Moonsh
- if ( prcpclscd == "A6" && spcldrug != "M" && lf_getArrayData (drugmastspec , 0, 14, "^", "|" ) == "Y" ) {
- ds_src.setColumn(sendRow, "selfprcpflag","Y"); //종료일자
- }
- }
- ds_src.setColumn(sendRow, "prcpauthflag", lf_getDsValue(ds_init, 0, "prcpauthflag" )); //처방권한구분
- //수술예약번호 setting
- if( !utlf_isNull (ds_operation.getColumn(0, "oprsrvno"))){
- ds_src.setColumn(sendRow, "oprsrvno", ds_operation.getColumn(0, "oprsrvno"));
- //by sonjy 20091120 심야가산 check 마취료처방 추가
- if ( prcpclscd == "H2" || ds_src.getColumn(sendRow, "tempcol2" ) == "13|01|00" ) { //수술처방인경우
- //응급으로 수술예약정보가 있다면 erprcpflag를 Y로 setting 한다.
- var opflagcd = ds_operation.getColumn(0, "opflagcd"); // opflagcd 1:정규, 2:응급, 3:추가
- if(opflagcd == "2"){
- //model.setValue("/root/main/prcp/prcplist/erprcpflag", "Y");
- ds_src.setColumn(sendRow, "erprcpflag", "Y");
- }
- //수술시작시간이 오후 5시 이후에는 야간으로 체크한다.
- var opfromtmcd = ds_operation.getColumn(0, "opfromtmcd"); //opfromtmcd 수술시작시간
- //if(eval(opfromtmcd) > 170000 ) { //야간 시간 기준을 물어볼 것
- //수술및 마취료처방시 심야기준 08시이전, 18시 이후 by sonjy 20081211
- if(eval(opfromtmcd) >= 180000 || eval(opfromtmcd) < 80000 ) {
- ds_src.setColumn(sendRow, "nigtprcpflag", "Y");
- }
-
- //수술액팅일자 = 확정수술일자
- ds_src.setColumn(sendRow, "tempcol22", ds_operation.getColumn(0, "opcnfmdd"));
- }
- } else {
- // CP 에서는 수동으로 수술예약번호를 mapping 한다.
- if( ds_root.getColumn(0, "cp") != "Y" ){
- ds_src.setColumn(sendRow, "oprsrvno", "0");
- }else{
- if( utlf_isNull (ds_src.getColumn(sendRow, "oprsrvno")))
- ds_src.setColumn(sendRow, "oprsrvno", "0" );
- }
- }
-
- if ( ds_paminfo.rowcount == 0 ){
- sysf_messageBox ( "환자정보가", "E014" );
- return false;
- }
-
- prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag");
- pid = lf_getDsValue(ds_paminfo, 0, "pid");
- orddeptcd = lf_getDsValue(ds_paminfo, 0, "orddeptcd");
-
- //by sonjy 2008-08-25 건진일 경우 check추가.
- if ( prcpgenrflag == "O" || prcpgenrflag == "S" ) {
- indd = lf_getDsValue(ds_paminfo, 0, "orddd");
- orddrid = lf_getDsValue(ds_paminfo, 0, "orddrid");
- } else {
- indd = lf_getDsValue(ds_paminfo, 0, "indd");
- orddrid = lf_getDsValue(ds_paminfo, 0, "medispclid");
- }
- cretno = lf_getDsValue(ds_paminfo, 0, "cretno");
- orddeptcd = lf_getDsValue(ds_paminfo, 0, "orddeptcd");
-
- //2011.11.07 엄영만 선택진료여부 및 선택진료의사 셋팅
- if (prcpclscd != "D2" || usge != "prcp") { // 처방시에 병리처방은 의뢰지 팝업후 검체코드설정되면 선택의사 설정 함.(의뢰지 작성후 팝업 되도록) 2011.11.25 엄영만.
- lf_setPrcpSpecValue(strSrc, sendRow, prcpInptFlag);
- }
-
- //-- CP,항암프로토콜일 경우, 처방일과 처방종류가 일률적으로 입력되지 않는다 --//
- if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
- prcpdd = ds_init.getColumn(0, "prcpdd"); //처방일
- prcpkindcd = lf_getDsValue(ds_init, 0, "prcpkindcd"); //처방종류(정규,추가...)
-
- //외래이고 약속 set/전처방 copy시 입원전 검사일 경우 prcpkindcd를 20으로 초기화하지 않는다.
- //by sonjy 김민선 선생님 요청사항 20080925
- if( prcpgenrflag == "O" &&
- (ds_src.getColumn(sendRow, "prcpkindcd") == "90" ||
- ds_src.getColumn(sendRow, "prcpkindcd") == "95" ) ){
- prcpkindcd = ds_src.getColumn(sendRow, "prcpkindcd") ;
- }
- }else{
- //JJE-
- prcpdd = ds_src.getColumn(sendRow, "prcpdd");
- prcpkindcd = ds_src.getColumn(sendRow, "prcpkindcd");
- if(utlf_isNull(prcpdd)){
- prcpdd = ds_init.getColumn(0, "prcpdd");
- }
- //JJE root/init/prcpdd 를 해당 미래일자로 변경... (2008.09.11)
- if( prcpdd != ds_init.getColumn(0, "prcpdd") && prcpdd > ds_init.getColumn(0, "prcpdd") ){
- ds_init.setColumn(0, "prcpdd", prcpdd);
- }
-
- var prcpsetcd = ds_src.getColumn(sendRow, "prcpsetcd");
- if(prcpsetcd != "-"){
- //풀린 자코드에 처방종류 및 처방입력구분을 모코드와 동일하게 넣어줌
- var prcpddNode = ds_main_prcplist.lookup("prcpcd", prcpsetcd, "prcpdd");
- var prcpkindcdNode = ds_main_prcplist.lookup("prcpcd", prcpsetcd, "prcpkindcd");
- var etclnkspecNode = ds_main_prcplist.lookup("prcpcd", prcpsetcd, "etclnkspec");
- var prcpinptflagNode = ds_main_prcplist.lookup("prcpcd", prcpsetcd, "prcpinptflag");
- if( !utlf_isNull(prcpddNode) ){
- prcpdd = prcpddNode;
- }
- if( !utlf_isNull(prcpkindcdNode) ) prcpkindcd = prcpkindcdNode;
- if( !utlf_isNull(etclnkspecNode) ){
- ds_src.setColumn(sendRow, "etclnkspec", etclnkspecNode);
- }
- if( !utlf_isNull(prcpinptflagNode) ){
- ds_src.setColumn(sendRow, "prcpinptflag", prcpinptflagNode);
- }
- }
-
- ds_src.setColumn(sendRow, "prcphopedd", prcpdd);
- //-JJE
- }
-
- //마취기록화면에서 처방화면을 띄우면
- //마취처방일 경우 필수입력구분이 1이면 수술시간과, 수술구분을 넣어준다. 넣어지는 기준은 마취처방상세팝업과 동일하다.
- if ( ds_anst.getColumn(0, "paramyn") == "Y" ) {
- ds_src.setColumn(sendRow, "prcpinptflag", "27");
- if ( prcpclscd == "I2" || prcpclscd == "I4"){ //마취
- if ( ds_src.getColumn(sendRow, "prcpessninptflag") == "1" ) { // 필수입력구분이 1
- var earncls = ds_src.getColumn(sendRow, "tempcol2");
- if ( earncls != "04|01|00" && earncls != "05|01|00" ) { //마취구분
- ds_src.setColumn(sendRow, "opansflagcd", ds_anst.getColumn(0, "opansflagcd"));
- }
- ds_src.setColumn(sendRow, "ansttm", ds_anst.getColumn(0, "ansttm"));//마취시간
- ds_src.setColumn(sendRow, "clinccmtcnts", ds_anst.getColumn(0, "anstfromdt") + "|" + ds_anst.getColumn(0, "ansttodt"));
- }
- }
- } else {
- if ( prcpclscd == "I2" || prcpclscd == "I4" ){ //마취
- ds_src.setColumn(sendRow, "clinccmtcnts", "-");
- }
- }
- ds_src.setColumn(sendRow, "prcphopedd", prcpdd); //처방희망일자
- //전처방이나 약속처방에서 시행부서가 현재 존재 하는 부서인지 체크 2012.10.29 엄영만
- if ( prcpInptFlag == "01" || prcpInptFlag == "02" ) {
- var bfprcpexecdeptcd = ds_src.getColumn(sendRow, "prcpexecdeptcd");
- var CheckExecdeptcdNode = oTrgtObj.ds_orddept.findRow("deptcd", bfprcpexecdeptcd);
- if(CheckExecdeptcdNode == -1) {
- ds_src.setColumn(sendRow, "prcpexecdeptcd", "-");
- }
- }
-
- //전처방 clear
- if ( prcpInptFlag == "01" ) {
- // 전처방 복사시 초기화해야 할 것 ( PAMPKSpec, PrcpKindCd 등은 처방 복사시 다시 setting 해줌 )
- if ( prcpclscd == "B2" ) { // 진검 전처방에서 응급 체크되어 있는 것은 복사 시에도 응급 체크되어지도록 요청 - 20081127 by MoonSH
- var erprcpflag = ds_src.getColumn(sendRow, "erprcpflag");
- if ( erprcpflag == "Y" ) {
- ds_src.setColumn(sendRow, "erprcpflag", "Y");
- } else {
- ds_src.setColumn(sendRow, "erprcpflag", "N");
- }
- } else {
- ds_src.setColumn(sendRow, "erprcpflag", "N"); //2008-01-28 약국요청 응급은 복사되면 안됨
- }
- ds_src.setColumn(sendRow, "rgstdt", ""); //rgstdt: 등록일시
- ds_src.setColumn(sendRow, "rgstridnm", ""); //rgstridnm: 등록자명
- ds_src.setColumn(sendRow, "tempprcpflag", "N"); //tempprcpflag: 임시처방구분
- ds_src.setColumn(sendRow, "etcprcpresncd", "-"); //etcprcpresncd: 응급의학관리료 사유 (코드정의서 M0012 참조), 수혈반납 및 폐기사유코드 (코드정의서 M0037, M0038 참조), 재활처방 마감일자
- ds_src.setColumn(sendRow, "ordreqlnkno", "0"); //ordreqlnkno: 진료의뢰연결번호
- ds_src.setColumn(sendRow, "testreqlnkno", "0"); //testreqlnkno: 검사의뢰연결번호
- ds_src.setColumn(sendRow, "prcplnkdd", "00000000"); //prcplnkdd: 임시처방에 대한 연계 일자
- ds_src.setColumn(sendRow, "prcplnkno", "0"); //prcplnkno: 임시처방에 대한 연계 번호
- ds_src.setColumn(sendRow, "prtlno", "0"); //prtlno: 프로토콜SET에 대한 코드로 일련번호 형태로 관리
- ds_src.setColumn(sendRow, "contprcpspec", "-"); //contprcpspec: 연속처방내역
- ds_src.setColumn(sendRow, "etclnkspec", "-"); //etclnkspec: 항암프로토콜번호|CP번호
- ds_src.setColumn(sendRow, "tempcol6", ""); //전처방 화면 display clear
- ds_src.setColumn(sendRow, "tempcol7", ""); //전처방 화면 display clear
-
- var antibiotics = lf_getArrayData ( ds_src.getColumn(sendRow, "tempcol8") + "^", 0, 0, "^", "|" );
- if ( antibiotics != "antibiotics" ){ //20081020: 마정민수정. 전처방에 항생제 값이 setting 되어 있다면 클리어 시키지 않는다.
- ds_src.setColumn(sendRow, "tempcol8", ""); //전처방 화면 display clear
- }
-
- ds_src.setColumn(sendRow, "tempcol9", ""); //전처방 화면 display clear
- ds_src.setColumn(sendRow, "tempcol12", ""); //전처방 화면 display clear
- ds_src.setColumn(sendRow, "tempcol13", ""); //전처방 화면 display clear
- ds_src.setColumn(sendRow, "tempcol14", ""); //전처방 화면 display clear
- ds_src.setColumn(sendRow, "tempcol15", ""); //전처방 화면 display clear
-
- ds_src.setColumn(sendRow, "drprcpetc1", ""); //건진 SET처방
- ds_src.setColumn(sendRow, "drprcpetc3", ""); //OCR출력정보
- ds_src.setColumn(sendRow, "drprcpetc4", ""); //귀가유치용물품여부
- ds_src.setColumn(sendRow, "drprcpetc5", ""); //multi-day no
- ds_src.setColumn(sendRow, "druglnkno", "0");
- ds_src.setColumn(sendRow, "drgacptflag", "-"); // DRG인정 전처방 복사시 clear
- if ( prcpclscd == "B2" || prcpclscd == "B6") {
-
- var contyn = lf_getArrayData ( drugmastspec, 0, 5, "^", "|" );
- if ( contyn == "Y" ) {
- var conttestintvlflag = ds_src.getColumn(sendRow, "diagtestconttestintvlflag");
- if ( conttestintvlflag == "N" ) {
- ds_src.setColumn(sendRow, "diagtestconttestcdspec", "-");
- ds_src.setColumn(sendRow, "drugrateqty", "-");
- ds_src.setColumn(sendRow, "diagtestconttestorgtims", "1");
- } else {
- var cdnm = ds_M0545.lookup("cdid", conttestintvlflag, "cdnm");
- var diagtestconttestbasetm = ds_src.getColumn(sendRow, "diagtestconttestbasetm");
- ds_src.setColumn(sendRow, "diagtestconttestcdspec", diagtestconttestbasetm + cdnm);
- ds_src.setColumn(sendRow, "drugrateqty", diagtestconttestbasetm);
- ds_src.setColumn(sendRow, "diagtestconttestorgtims", "1");
- }
- }
- }
- }
- //-- CP,항암프로토콜일 경우 etclnkspec 컬럼 값 셋팅 --//
- else if( prcpInptFlag == "05" ){
- //Hsct 처방일 경우, 조회해 온 자코드들에 값을 setting
- ds_src.setColumn(sendRow, "status", "I");
- //model.setValue(strSrc + "[" + sendRow + "]/prcphopedd", model.getValue ( "/root/init/prcpdd" )); //JJE(-)
-
- //cp는 이미 인스턴스에 값이 들어있음
- if( utlf_isNull(ds_src.getColumn(sendRow, "etclnkspec")) ){
- ds_src.setColumn(sendRow, "etclnkspec", "-"); //CP처방 or 프로토콜처방 no
- }
- }
- else if( prcpInptFlag == "06" ){
- //항암은 이미 인스턴스에 값이 들어있음
- ds_src.setColumn(sendRow, "etclnkspec", etclnkspecValue_SMMMO00110); //CP처방 or 프로토콜처방 no
- //model.makeValue ( strSrc + "[" + sendRow + "]/cpno", ds_src.getColumn(sendRow, "prtldg") ); //CpNo 에 프로토콜 차수 저장
- }
- else if( prcpInptFlag == "07" ){ //임상시험 프로토콜에서 불러올때.
- if(prcpgenrflag == "I" || prcpgenrflag == "D"){
- ds_src.setColumn(sendRow, "subcretno", ds_init.getColumn(0, "subjsubcretno")); // 임상프로토콜에서 처방시 임상유형의 cretno를 subcretno로 세팅
- }
- }
- //-- CP,항암프로토콜일 경우 etclnkspec 컬럼 값 셋팅 끝 --//
-
- ds_src.setColumn(sendRow, "inclprcpcd", "-"); //종속처방
- ds_src.setColumn(sendRow, "inclprcpno", "0");//종속처방번호
- //20090518 마정민수정. 입원일 경우 전처방, 약속처방 복사처방의 선처치를 제외한다.
- if( prcpgenrflag != "O" && prcpgenrflag != "S" ) {
- if ( prcpInptFlag == "01" || prcpInptFlag == "02" ) {
- if ( ds_src.getColumn(sendRow, "precureprcpflag") == "Y" ) {
- if( prcpclscd.substring(0,1) == "A" || prcpclscd == "M2" ) ds_src.setColumn(sendRow, "precureprcpflag", "N");
- }
- }
- }
- if ( prcpclscd == "F2" && prcpgenrflag == "O") {
- ds_src.setColumn(sendRow, "rehbprcpenddd", prcpdd); //재활마감일
- } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) { //약처방
- // 원내처방사유 SETTING
- lf_hosinPrcpResncdSed( objFlag, strSrc, sendRow );
-
- //2010. 12. 29 김영학 약처방 원외일 경우 시행부서가 셋팅되어 있지 않으면 기본 외래약국으로 셋팅해준다.
- if( prcpgenrflag != "O" && prcpgenrflag != "S" ) {
- if ( ds_src.getColumn(sendRow, "hosinhosoutflag") == "O"
- && (ds_src.getColumn(sendRow, "prcpexecdeptcd" ) == "-" || ds_src.getColumn(sendRow, "prcpexecdeptcd" ) == "D")) {
- ds_src.setColumn(sendRow, "prcpexecdeptcd", lf_getHardCDList("Y", 260, 3))
- }
- }
- //AST 검사 체크
- var astyn = lf_getArrayData ( drugmastspec, 0, 22, "^", "|" );
- if ( astyn == "Y" ) {
- ds_src.setColumn(sendRow, "asttestflag", "Y");
- }
-
- //응급 flag 가 Y인 경우는 1회만 가능
- if ( ds_src.getColumn(sendRow, "erprcpflag") == "Y" ||
- ds_src.getColumn(sendRow, "prnprcpflag") == "Y") {
- var prcptims = ds_src.getColumn(sendRow, "prcptims");
- if ( prcptims != "1" ) {
- //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
- ds_src.setColumn(sendRow, "prcptims", "1");
- var prcpqty = ds_src.getColumn(sendRow, "prcpqty");
- var prcpvol = ds_src.getColumn(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));
- ds_src.setColumn(sendRow, "prcpqty", Math.round ( prcpqty ) / 1000);
- ds_src.setColumn(sendRow, "prcpvol", Math.round ( prcpvol ) / 1000);
- }
- }
- }
- }
-
- //by sonjy 20081216 외래일경우 전처방/약속처방에서 copy시 약/주사에 한해 수행부서를 마스터의 부서로 초기화
- //영수증의 환자 가야할곳이 병동약국으로 찍혀 나오는 오류 때문.
- //20081230 마정민수정 변환조건을 병동약국으로 축소함
- if( ds_src.getColumn(sendRow, "prcpexecdeptcd") == "3240300000" && prcpgenrflag == "O" && ( prcpInptFlag == "01" || prcpInptFlag == "02" )) {
- var sTmp23 = ds_src.getColumn(sendRow, "tempcol23");
- if( !isNull(sTmp23) && sTmp23 != "-" ){
- ds_src.setColumn(sendRow, "prcpexecdeptcd", sTmp23);
- }
- }
- } else if ( prcpclscd == "03" ) { //보호자식일 때는 procerdietflag 을 Y로 바꿈
- if ( ds_src.getColumn(sendRow, "prcpcd") == "Q4131004" ) {
- ds_src.setColumn(sendRow, "procerdietflag", "Y");
- }
- } else if ( prcpclscd == "B4" ){
- if ( prcpgenrflag == "O" ) {
- ds_src.setColumn(sendRow, "prepprcpflag", "N");
- } else {
- ds_src.setColumn(sendRow, "prepprcpflag", "Y");
- }
- }
-
- // hsct 체크
- if ( hsctflag == "Y" ) {
- ds_src.setColumn(sendRow, "hsctlnkno", ds_init.getColumn(0, "hsctlnkno")); //HSCT
- ds_src.setColumn(sendRow, "hscttempprcpflag", "Y"); //HSCT
- } else if ( hsctflag == "M" ){
- ds_src.setColumn(sendRow, "hsctlnkno", ds_init.getColumn(0, "hsctlnkno")); //HSCT
- ds_src.setColumn(sendRow, "hscttempprcpflag", "N"); //HSCT
- }
- if ( !utlf_isNull(inclprcpno) && inclprcpno != "0" ) { //종속처방 처리
- var prcpcd = ds_src.getColumn(sendRow, "prcpcd" );
- //initsrch에서 가져온 종속처방 instance에 값이 있으면 종속처방 코드와 번호를 박아준다.
- var prcpsetcd = ds_src.getColumn(sendRow, "prcpsetcd" );
- var findRow = ds_initsrch_inclprcpcnts.findRowExpr("snglcd == '" + prcpcd + "' && calcscorcdgrup == '" + prcpsetcd + "'");
- var inclprcpcd = ds_initsrch_inclprcpcnts.getColumn(findRow, "inclprcpcd");
- var calcscorcdgrup = "";
- if ( utlf_isNull(inclprcpcd)) {
- //본체에도 코드를 박아준다.
- calcscorcdgrup = ds_initsrch_inclprcpcnts.lookup("calcscorcdgrup", prcpcd, "inclprcpcd"); // GROUP 처방
- } else {
- if ( prcpgenrflag == "O" ) {
- //외래일경우 약, 주사 에 원내처방사유 검사 수술처리에 사용
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
- ds_src.setColumn(sendRow, "hosinhosoutflag", "I");//원내
- ds_src.setColumn(sendRow, "hosinprcpresncd", "55");//원내처방사유(원내처방사유 검사 수술처리에 사용)
- }
- }
- }
- if ( !utlf_isNull(inclprcpcd) || !utlf_isNull(calcscorcdgrup)) {
- ds_src.setColumn(sendRow, "inclprcpno", inclprcpno ); //종속처방번호
- if ( utlf_isNull(inclprcpcd)){
- ds_src.setColumn(sendRow, "inclprcpcd", calcscorcdgrup ); //종속처방
- } else {
- ds_src.setColumn(sendRow, "inclprcpcd", inclprcpcd ); //종속처방
- }
- ds_init.setColumn(0, "inclprcpno", inclprcpno);
- var remainder = inclprcpno % 2;
- // "child 로 구분 하는데 TF소스가 둘다 model.setValue 이다(opener.model.setValue 아님) 확인필요
- // if ( objFlag == "child" ){
- if ( remainder == 1 ) {
- oTrgtObj.ds_src.setColumn(sendRow, "tempcol10", "#eaeaea");
- } else {
- oTrgtObj.ds_src.setColumn(sendRow, "tempcol10", "#ffffcc");
- }
- // } else {
- // if ( remainder == 1 ) {
- // ds_src.setColumn(sendRow, "tempcol10", "#eaeaea" );
- // } else {
- // ds_src.setColumn(sendRow, "tempcol10", "#ffffcc" );
- // }
- // }
- }
- }
-
- /* by sonjy 20091019 요청번호:3667
- * 전처방(01)과 약속처방(02)을 복사하여 처방시 처방일수가 1일로 수정이 되도록
- * => 무조건 1로 SETTING처리
- */
- var calcmthdcd = lf_getArrayData ( drugmastspec , 0, 26, "^", "|" );
- if ( //model.getValue(strSrc + "[" + sendRow + "]/prcpinptflag") == "01" && model.getValue(strSrc + "[" + sendRow + "]/prcpinptflag") == "02" &&
- prcpclscd.substring(0,1) == "A" && calcmthdcd == "4" && ds_src.getColumn(sendRow, "prcpdayno") > 1 ) {
- ds_src.setColumn(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" &&
- ( ds_patflag.getColumn(0, "prcpgenrflag") == "O" || ds_init.getColumn(0, "prcpkindcd") == "50" ||
- ds_init.getColumn(0, "prcpkindcd") == "60" || ds_init.getColumn(0, "prcpkindcd") == "70" ) ) {
-
- if( ds_src.getColumn(sendRow, "inclprcpno") == "0" || ds_src.getColumn(sendRow, "inclprcpno") == "-" ) {
- ds_src.setColumn(sendRow, "prcpdayno", "0");
- }
- }
-
- ds_src.setColumn(sendRow, "prcpgenrflag", prcpgenrflag ); //처방발생구분
- ds_src.setColumn(sendRow, "prcpkindcd", prcpkindcd ); //처방종류
- //20131105 Start 이정택(마취에서 처방이동시에 수익부서와 수익의를 자동으로 세팅하도록 수정)
- if(ds_src.getColumn(sendRow, "prcpinptflag") == "27"){
- var orddeptcd = "2090000000";
- var orddrid = ds_anst.getColumn(0, "anst_drid");
- var anstdrnm = ds_anst.getColumn(0, "anst_anstdrnm");
- ds_src.setColumn(sendRow, "pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
- ds_src.setColumn(sendRow, "tempcol20", "[마취통증의학과]["+anstdrnm+"]"); //처방창의 주진료과/진료의를 세팅
- }else{
- ds_src.setColumn(sendRow, "pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
- }
- // 20131105 End
- //ds_src.setColumn(sendRow, "pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid ); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
- ds_src.setColumn(sendRow, "prcppkspec", prcpdd + "|0|0|" + sysf_getUserInfo("dutplceinstcd")); //처방키: 처방일자|처방번호|처방이력번호|기관코드
- //20081007 마정민 수정
- //원래 회처방 불가
- //수혈, 영상, Angio, 핵의학영상, 병리, 기능, RT, 수술, 마취, 마취약제, 재료, 기타 이고 마이그레이션 데이터는 1로 setting
- //추가 처치 H4
- //20090514 마정민추가 K2 치과
- if ( ds_src.getColumn(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")) {
- ds_src.setColumn(sendRow, "prcptims", "1"); //처방발생구분
- }
- //20090122 마정민수정: 변경요청번호 670. 단순 방사선 예약 자동 팝업요청
- //20090709 CHC, 단순방사선예약자동팝업 병원별 적용
- var raypopwndcheckyn = ds_initsrch_raypopwndcheckyn.getColumn(0, "trgtcd");
- if ( prcpgenrflag == "O" && lf_getDsValue(ds_src, sendRow, "tempcol2").length > 2 && ds_src.getColumn(sendRow, "tempcol2").substring( 0, 2 ) == "18" && usge == "prcp" ) {
- var msgTitle = "[영상]" + "[" + ds_src.getColumn(sendRow, "prcpcd") + ":" + ds_src.getColumn(sendRow, "prcpnm") + "]";
- if (raypopwndcheckyn != "Y") {
- if(!confirm("단순 방사선 검사를 당일 시행 하시겠습니까? [예:당일,아니요:예약]", msgTitle)) {
- ds_src.setColumn(sendRow, "prcphopedd", "99991231");
- }
- }
- }
-
- //20090827 차현철, 치료내시경예약 지시처방일 경우 처방명 선택 팝업창 호출
- var escopedirecprcpcd = ds_initsrch_escopedirecprcpcd.getColumn(0, "trgtcd");
- if ( escopedirecprcpcd == ds_src.getColumn(sendRow, "prcpcd") ) {
- frmf_setParameter ( "SPMMB02200_cond2", "5" );
- lf_prcpModal ( "SPMMB02200", 50, 50 );
- ds_src.setColumn(sendRow, "prcpnm", frmf_getParameter ( "SPMMB02200_clinccmt" ));
- frmf_clearParameter("SPMMB02200_clinccmt");
- }
- //SON0919 G3아닌 응급일경우 원내사유 PRCPKINDCD에 의해 움직이므로 PRCPKINDCD가 설정된 후 다시 호출 start
- //퇴원처방 전처방에서 추가처방모드에서 복사시 퇴원처방 원내사유가 적용되는것을 막기 위함임.
- var g3flag = lf_getDsValue(oTrgtObj.ds_init, 0, "erresn");
- if( (prcpgenrflag == "E" && g3flag!= "G3") || prcpgenrflag == "D" ){
- if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) { //약처방
- // 원내처방사유 SETTING
- lf_hosinPrcpResncdSed ( objFlag, strSrc, sendRow );
- }
- }
- //SON0919 end
-
- if ( (prcpkindcd == "50" || prcpkindcd == "60" ) && lf_getArrayData (drugmastspec, 0, 20, "^", "|") == "Y" ) {
- //2008-01-18 김은희 약사 모든처방 자가주사가 가능하게 수정
- if ( prcpclscd == "A6") {
- ds_src.setColumn(sendRow, "selfprcpflag", "Y");
- }
- }
- //20080721 마정민 임상처방에서 넘어오는 것은 clincstdyflag를 Y로 처리
- if ( prcpInptFlag == "07" ) {
- ds_src.setColumn(sendRow, "clincstdyflag", "Y"); //
- }
- var chkprcpcd = ds_src.getColumn(sendRow, "prcpcd")
- /******************** 선처치, 과내검사 시행부서처리 *******************/
- var iFind = -1;
- var precureexecdeptchk = utlf_isNull(this.objects["ds_initsrchprcp_prcpetccnts"]) ? "" : lf_getDsValue(ds_initsrchprcp_prcpetccnts, 0, "precureprcpcd");
- // 기존 search함수에서 무결성이 어긋나 개별 체크 변경 - 20081008 by MoonSH
- var precureprcpflag = "";
- var prcpexecdeptcd = "";
- if( chkprcpcd.charAt(0) != "*" ){
- var firStage = precureexecdeptchk.split("^");
- for( var 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" ) ds_src.setColumn(sendRow, "precureprcpflag", "Y");
- } else {
- ds_src.setColumn(sendRow, "precureprcpflag", "Y");
- }
- }
- if ( prcpexecdeptcd != "X" && !utlf_isNull ( prcpexecdeptcd ) ) {
- ds_src.setColumn(sendRow, "prcpexecdeptcd", prcpexecdeptcd);
- }
- }
-
- if ( lf_getDsValue(ds_root, 0, "addprcp") == "Y" && ds_src.getColumn(sendRow, "inclprcpno") == "0" ) {
- //시행부서 수혈, 식이, 재활, 마취, 치과, 방사선치료, 기타를 제외한 처방은 자동 선처치. 단 m-set은 예외
- if ((ds_src.getColumn(sendRow, "prcpclscd") == "A2" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "A4" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "A6" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "B2" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "B6" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "C2" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "C4" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "C6" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "D2" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "E2" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "H2" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "H4" ||
- ds_src.getColumn(sendRow, "prcpclscd") == "M2" ) &&
- lf_getDsValue(ds_root, 0, "admininfo").substring (0,1) != "Y" ) {
- ds_src.setColumn(sendRow, "precureprcpflag", "Y");
- }
- }
-
- // 시행부서 처방 가퇴원 누락처방 사유 및 일시 셋팅 - 20081221 by MoonSH
- if ( lf_getDsValue(ds_root, 0, "addprcp") == "Y" && !utlf_isNull(ds_prcpresn.getColumn(0, "prcpdd")) ) {
- ds_src.setColumn(sendRow, "tempcol19", ds_prcpresn.getColumn(0, "resncnt"));
- ds_src.setColumn(sendRow, "tempcol12", ds_prcpresn.getColumn(0, "prcptime")); // tempcol24를 사용하던것을 tempcol12로 변경 처리 2013.11.28 엄영만
- }
-
- /******************** 선처치, 과내검사 시행부서 처리 끝 ********************/
- //시행부서, 발행부서 SETTING
- lf_prcpExecIssDeptCdSet( strSrc, sendRow )
-
- if (!utlf_isNull(lf_getDsValue(ds_init, 0, "prcpinptflag" ))){ //27: 마취기록, 28: 시행부서처방
- ds_src.setColumn(sendRow, "prcpinptflag", ds_init.getColumn(0, "prcpinptflag"));
- }
- //추가컬럼 test
- ds_src.setColumn(sendRow, "aftcertflag", "-");
- ds_src.setColumn(sendRow, "aftcertdrid", "-");
- ds_src.setColumn(sendRow, "prcpvalidd", "00000000");
- if ( utlf_isNull(ds_src.getColumn(sendRow, "anticncrdayno"))) {
- ds_src.setColumn(sendRow, "anticncrdayno", "0");
- }
- if ( utlf_isNull(ds_src.getColumn(sendRow, "druglnkno"))) {
- ds_src.setColumn(sendRow, "druglnkno", "0");
- }
-
- if (ds_src.getColumn(sendRow, "prcpcd") == "FE6541" ) {
- var prcpdelivefact = lf_getDsValue(ds_src, sendRow, "prcpdelivefact");
- var iFind1 = prcpdelivefact.indexOf( "Long Stream" );
- var iFind2 = prcpdelivefact.indexOf( "Routine" );
- //전달사항에 값이 있으면 "-" 로처리
- if ( eval( iFind1) <= 0 && eval(iFind2) <= 0 ) {
- if ( prcpdelivefact == "-" ) {
- ds_src.setColumn(sendRow, "prcpdelivefact", "[Routine]");
- } else {
- ds_src.setColumn(sendRow, "prcpdelivefact", "[Routine] " + prcpdelivefact);
- }
- }
- }
- if ( ds_src.getColumn(sendRow, "tempcol18") == "Y" ) {
- var len = 0;
-
- if (utlf_isNull(this.objects["ds_migdrugmthdlist"])) {
- dsf_createDs("ds_migdrugmthdlist", [{col:"prcpcd", type:"string", size:256},
- {col:"prcpnm", type:"string", size:256},
- {col:"migdrugmthdspccdnm", type:"string", size:256},
- {col:"drugmthdspccd", type:"string", size:256},
- {col:"drugmthdspccdnm", type:"string", size:256}]);
- }
-
- len = ds_migdrugmthdlist.addRow();
-
- ds_migdrugmthdlist.setColumn(len, "prcpcd", ds_src.getColumn(sendRow, "prcpcd"));
- ds_migdrugmthdlist.setColumn(len, "prcpnm", ds_src.getColumn(sendRow, "prcpnm"));
- if ( ds_src.getColumn(sendRow, "rateprcpflag") == "Y" ) {
- ds_migdrugmthdlist.setColumn(len, "migdrugmthdspccdnm", "[비율처방불가] 투약량이 다른 처방을 분리해서 처방하셔야 합니다.\n\n" + ds_src.getColumn(sendRow, "exptmthdfact") + ".");
- ds_src.setColumn(sendRow, "rateprcpflag", "N");
- ds_src.setColumn(sendRow, "drugrateqty", "-");
- } else {
- ds_migdrugmthdlist.setColumn(len, "migdrugmthdspccdnm", ds_src.getColumn(sendRow, "exptmthdfact"));
- }
-
- ds_migdrugmthdlist.setColumn(len, "drugmthdspccd", ds_src.getColumn(sendRow, "drugmthdspccd"));
- ds_migdrugmthdlist.setColumn(len, "drugmthdspccdnm", ds_src.getColumn(sendRow, "drugmthdspccdnm"));
- ds_src.setColumn(sendRow, "exptmthdfact", "-");
- }
-
- //수술예방적 항생제 CHECK SON0926 START 사유입력 대상자일 경우
- //경구약은 cdss항생제 에서 제외. 따라서 외용/주사일 경우 cdss항생제 화면이 뜬 후에 check로직이 뜨도록..
- if ( prcpgenrflag == "I" && usge == "prcp" && ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" )) { //약처방
- if( !lf_chkOpDrug(objFlag , strSrc , sendRow) ) return 0;
- }
- //수술예방적 항생제 CHECK SON0926 END
- //20090520 마정민수정
- //저장시 체크하던 ocrprnt 여부를 search 함수의 문제로 처방복사시 tempcol13에 값을 넣어놨다가 저장시 tempcol13을 읽는 방법으로 수정
- var ocrprnt = utlf_isNull(this.objects["ds_initsrchprcp_prcpetccnts"]) ? "" : ds_initsrchprcp_prcpetccnts.getColumn(0, "ocrprnt");
- if (utlf_isNull(ocrprnt)) {
- ocrprnt = ds_initsrch_prcpetccnts.getColumn(0, "ocrprnt");
- }
- var ocrprntArray = ocrprnt.split("|");
- var ocrprcpcd = "OCR" + ds_src.getColumn(sendRow, "prcpcd");
- for( var m = 0; m < ocrprntArray.length; m++ ){
- if( ocrprcpcd == ocrprntArray[m]) {
- ds_src.setColumn(sendRow, "tempcol13", "Y");
- break;
- }
- }
- // 20100108 한재상 - 유전자검사 동의서 출력방식 변경 (OCR -> REX)
- var ocrprogprnt = utlf_isNull(this.objects["ds_initsrchprcp_prcpetccnts"]) ? "" : ds_initsrchprcp_prcpetccnts.getColumn(0, "ocrprogprnt");
- var ocrprogprntArray = ocrprogprnt.split("|");
- var ocrprogprcpcd = "OCRPROG" + ds_src.getColumn(sendRow, "prcpcd");
- for( var m = 0; m < ocrprogprntArray.length; m++ ){
- if( ocrprogprcpcd == ocrprogprntArray[m]) {
- ds_src.setColumn(sendRow, "tempcol13", "A");
- break;
- }
- }
- //20090521 마정민추가 외래수술프로세스의 추가로 외래수술탭에서 처방을 낼 경우 자동선처치로 수정
- if (!utlf_isNull(ds_operation.getColumn(0, "oprsrvno")) && prcpgenrflag == "O"
- && ds_src.getColumn(sendRow, "prnprcpflag") != "Y"
- && ds_src.getColumn(sendRow, "prcpclscd") != "B4"
- ) {
- ds_src.setColumn(sendRow, "precureprcpflag", "Y"); //
- }
- if ( ds_src.getColumn(sendRow, "prcpflag") != "2" ) { //지시처방이 아니면 이름을 다시 만들어 준다.
- lf_makePrcpNm( "ds_main_prcplist", sendRow );
- }
- // 2010. 10. 19 약속처방이나 전처방에서 처방 복사시 1회 용량에 값이 없을 경우 용량 계산하는 로직 수행
- if ( ds_src.getColumn(sendRow, "drprcpetc7") == "-" ) {
- if (lf_ContainsHardCD("420", "Y") && ds_src.getColumn(sendRow, "prcpinptflag") == "02") { // 2013.02.21 엄영만 약속처방 1회 용량 없을 시 메세지 팝업.
- var sPrcpcd = ds_src.getColumn(sendRow, "prcpcd");
- var sPrcpnm = ds_src.getColumn(sendRow, "prcpnm");
- sysf_messageBox ( sPrcpnm +"["+ sPrcpcd + "] 처방의 1회용량값이 존재하지 않습니다.\n약속처방 구성을 확인 하시기 바랍니다.", "E999" );
- } else {
- DrugCalc2( "prcpqty" , sendRow);
- }
- }
- // 2011.07.05 엄영만 수익분류 의료영상복사-CD 복사-CD copy 처방, 산재/자보 환자 디폴트 비급여 셋팅 원무 최인영(5069) 요청
- if (ds_src.getColumn(sendRow, "tempcol2") == "24|01|01" && (ds_paminfo.getColumn(0, "insukind") == "31" || ds_paminfo.getColumn(0, "insukind") == "41")) {
- ds_src.setColumn(sendRow, "payflagcd", "1");
- }
-
- // 2013.09.26 엄영만 수익분류 초음파 처방이고 수가정보의 급비가 급여(0), 급여불가 보조유형일 경우 디폴트 비급여 설정
- if (ds_src.getColumn(sendRow, "tempcol2").length > 2 && ds_src.getColumn(sendRow, "tempcol2" ).substring( 0, 2 ) == "21" && ds_src.getColumn(sendRow, "spynpy1") == "0" ) {
- var insukind = ds_paminfo.getColumn(0, "insukind");
- if ( (insukind != "11" && insukind != "21" && insukind != "22") // 보험 유형이 건강보험 또는 의료급여 1,2종이 아니면 비급여 처리
- || (!lf_ContainsHardCD("442", ds_paminfo.getColumn(0, "suppkind"))) ) { // 급여가능 보조유형이 아닐경우
- ds_src.setColumn(sendRow, "payflagcd", "2"); // 디폴트 비급여 처리
- }
- }
- //model.addLog(" ************* End Of addPrcpSetValue()");
-
- return true;
- }
- /**
- * @desc : 처방 코드 정보를 조회 하는 함수 addPrcpSetValue()에서 값을 셋팅 할때 처방 코드별 참조자료를 셋팅 한다.
- * @param : sPrcpCodes - 처방 편집 화면으로 복사되는 처방 코드
- * @return : 처방화면(SMMO00100) /root/prcpcodeinfo 셋팅
- * @authur : 엄영만 2011. 10. 13
- * 변환OK
- * @---------------------------------------------------
- */
- function lf_getPrcpCodeInfo(sPrcpCodes) {
- var pamInfoNode = "/root/paminfo/list";
- var prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag" ); //입력구분
- var prcpdd = ds_init.getColumn(0, "prcpdd" ); //처방일
- var pid = ds_paminfo.getColumn(0, "pid" );
- var ioflag = ds_paminfo.getColumn(0, "ioflag" );
- var cretno = ds_paminfo.getColumn(0, "cretno" );
- var orddeptcd = ds_paminfo.getColumn(0, "orddeptcd" );
- var orddd = "";
- var orddrid = "";
- //건진일 경우 check추가.
- if ( prcpgenrflag == "O" || prcpgenrflag == "S" ) {
- orddd = ds_paminfo.getColumn(0, "orddd" );
- orddrid = ds_paminfo.getColumn(0, "orddrid" );
- } else {
- orddd = ds_paminfo.getColumn(0, "indd" );
- orddrid = ds_paminfo.getColumn(0, "medispclid" );
- }
- ds_TRMMO00143.clearData();
- ds_TRMMO00143.addRow();
-
- if(!utlf_isNull(sPrcpCodes)){
- ds_TRMMO00143.setColumn(0, "prcpcds", sPrcpCodes); //처방코드
- ds_TRMMO00143.setColumn(0, "prcpdd", prcpdd); //처방일
- ds_TRMMO00143.setColumn(0, "ioflag", ioflag); //외래입원구분
- ds_TRMMO00143.setColumn(0, "pid", pid); //등록번호
- ds_TRMMO00143.setColumn(0, "orddd", orddd); //진료일자
- ds_TRMMO00143.setColumn(0, "cretno", cretno); //생성번호
- ds_TRMMO00143.setColumn(0, "orddeptcd", orddeptcd); //진료과
- ds_TRMMO00143.setColumn(0, "orddrid", orddrid); //진료의
-
- var oParam = {};
- oParam.id = "TRMMO00143";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpCodeInfo";
- oParam.inds = "req=ds_TRMMO00143";
- oParam.outds = "ds_prcpcodelist=prcpcodelist";
- oParam.async = false;
- oParam.callback = "cf_TRMMO00143";
- tranf_submit(oParam);
- }
- }
- function cf_TRMMO00143(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) {
- // 테스트 메세지 팝업 여부 추후 삭제 해야 함. 엄영만 2011.11.19
- var sChkMsgPopYn = lf_getHardCDList("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
- * 변환OK
- * @---------------------------------------------------
- */
- function lf_setPrcpSpecValue( strSrc, sendRow, prcpInptFlag ) {
- var ds_src = this.objects[strSrc];
-
- //2011.01.12 MJM수정. 선택진료 가능처방은 일괄위임일 경우 무조건 선택진료처리.
- //2011.10.01 고시관련 수정 일괄위임의 경우 선택진료 처리.
- //선택진료여부처리는 결정(검사,영상진단) 무조건 선택진료가능항목으로 처리
- var sChoiordFlag = "N";
- var sOrdDrId = "";
- var sPrcpClsCd = ds_src.getColumn(sendRow, "prcpclscd"); // 처방종류
- var sPrcpCd = ds_src.getColumn(sendRow, "prcpcd"); // 처방코드
- var sDrugMthdSpcCd = ds_src.getColumn(sendRow, "drugmthdspccd"); // 처방 검체코드(병리 처방은 검체코드가 있을때만 선택진료 설정함.)
- var sPrcpGenrFlag = ds_patflag.getColumn(0, "prcpgenrflag"); // 처방입력구분(외래, 입원, 응급..)
- var sSpecOrdType = lf_getDsValue(ds_paminfo, 0, "specordtype"); // 선택진료 타입 (B:일괄 위임)
- var sSpcspifYn = ""; // 부분 선택진료 위임 여부
- var sSpecCls = ""; // 선택진료처방 분류
- var sTodaySpcDrId = ""; // 오늘 선택진료의
- var sAllSpcDrId = ""; // 가능 선택진료의
- var sPreSpecDrId = ""; // 기존 선택진료의
- var sPrcpSpecDrId = "";
- var sChkSpecDrId = "";
- sSpcspifYn = ds_prcpcodelist.lookup("prcpcd", sPrcpCd, "spcspifyn");
- if(utlf_isNull(sSpcspifYn)) { // 처방 코드 정보가 없으면 -- App 처방 복사 로직
- sSpcspifYn = lf_getDsValue(ds_src, sendRow, "spcspifyn"); // 부분 선택진료 위임 여부
- sSpecCls = lf_getDsValue(ds_src, sendRow, "speccls"); // 선택진료처방 분류
- sTodaySpcDrId = lf_getDsValue(ds_src, sendRow, "todayspcdrid"); // 오늘 선택진료의
- sAllSpcDrId = lf_getDsValue(ds_src, sendRow, "allspcdrid"); // 가능 선택진료의
- } else { // 처방 코드 정보가 있으면 -- Web 처방 복사 로직
- sSpcspifYn = ds_prcpcodelist.lookup("prcpcd", sPrcpCd, "spcspifyn"); // 부분 선택진료 위임 여부
- sSpecCls = ds_prcpcodelist.lookup("prcpcd", sPrcpCd, "speccls"); // 선택진료처방 분류
- sTodaySpcDrId = ds_prcpcodelist.lookup("prcpcd", sPrcpCd, "todayspcdrid"); // 오늘 선택진료의
- sAllSpcDrId = ds_prcpcodelist.lookup("prcpcd", sPrcpCd, "allspcdrid"); // 가능 선택진료의
- }
- if (ds_src.getColumn(sendRow, "tempcol24") == "Y") { //선택진료가능처방
- if (sPrcpGenrFlag == "E") { // 응급실에서 발행 하는 처방일경우 선택진료 자동 셋팅 하지 않도록 수정. 심사실 윤순길팀장님 요청. 엄영만 2011.11.23
- if ( sSpecOrdType == "B" || sSpcspifYn == "Y" ) {// 일괄선택진료 위임 일 경우 또는 부분선택진료 위임 일 경우(처방 항목에 위임)
- sChoiordFlag = "Y";
- ds_src.setColumn(sendRow, "choiordflag", "Y");
- }
- } else { // 응급실에서 발행 하는 처방이 아닐 경우
- if ( ds_paminfo.getColumn(0, "specordyn") == "Y" // 선택진료의사(교수님 진료)
- || sSpecOrdType == "B" // 일괄선택진료 위임 일 경우
- || sSpcspifYn == "Y" // 부분선택진료 위임 일 경우(처방 항목에 위임)
- || sSpecCls == "02" // 선택진료 분류가 검사인것
- || sSpecCls == "03" // 선택진료 분류가 영상진단인것
- || (sPrcpClsCd == "C6" && ds_paminfo.getColumn(0, "insukind") == "11") // 건강보험이면서 처방분류가 핵의학체내 일 경우는 무조건 선택진료가 발생하도록 수정 (의사가 체크 해제 할 수 있음): 2011. 02.07 김영학
- || (sPrcpClsCd == "D2" && ds_paminfo.getColumn(0, "insukind") == "11") // 건강보험이면서 처방분류가 병리 처방은 선택진료 가능 처방은 무조건 선택진료로 한다. 김영학
- || (prcpInptFlag == '02' && ds_src.getColumn(sendRow, "choiordflag") == "Y") ) { //약속처방이고 선택진료 체크 되어 있는경우
-
- sChoiordFlag = "Y";
- ds_src.setColumn(sendRow, "choiordflag", "Y");
- }
- }
- }
- if ( sChoiordFlag == "Y" ) {
- if ( sPrcpGenrFlag == "O" ) {
- sOrdDrId = ds_paminfo.getColumn(0, "orddrid");
- } else {
- sOrdDrId = ds_paminfo.getColumn(0, "medispclid");
- }
-
- sPreSpecDrId = ds_src.getColumn(sendRow, "specdrid"); // 기존 선택진료의
- if (sPreSpecDrId == "-") {
- sPreSpecDrId = "";
- }
- if (sPrcpClsCd == "D2" && (!utlf_isNull(sDrugMthdSpcCd) || sDrugMthdSpcCd != "-")) { // 병리처방은 검체 코드로 조회 한다.
- var sPrcpDd = ds_init.getColumn(0, "prcpdd");
-
- ds_TRMMO00144.clearData();
- ds_TRMMO00144.addRow();
-
- ds_TRMMO00144.setColumn(0, "codeflag", "G" ); //코드구분(S 수가코드, G 검체)
- ds_TRMMO00144.setColumn(0, "prcpdd", sPrcpDd ); //처방일
- ds_TRMMO00144.setColumn(0, "calcscorcd", sDrugMthdSpcCd ); //검체코드
-
- var oParam = {};
- oParam.id = "TRMMO00144";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpSpcDrInfo";
- oParam.inds = "req=ds_TRMMO00144";
- oParam.outds = "ds_spcdrinfo=info";
- oParam.async = false;
- oParam.callback = "cf_TRMMO00144";
- tranf_submit(oParam);
-
- sTodaySpcDrId = ds_spcdrinfo.getColumn(0, "todayspcdrid"); // 오늘 선택진료의
- sAllSpcDrId = ds_spcdrinfo.getColumn(0, "allspcdrid"); // 가능 선택진료의
- }
-
- if( prcpInptFlag == '02' && !utlf_isNull(sPreSpecDrId) && utlf_isSearchString(sAllSpcDrId, sPreSpecDrId)) { // 약속처방 선택의가 가능선택의일 경우 약속처방 선택의 설정
- ds_src.setColumn(sendRow, "specdrid", sPreSpecDrId);
- } else if (utlf_isSearchString(sAllSpcDrId, sOrdDrId) ){ // 가능선택의에 진료의가 포함 될 경우
- ds_src.setColumn(sendRow, "specdrid", sOrdDrId);
- } else {
- switch(sTodaySpcDrId) {
- case "NO_DATA_FOUND": // 오늘 선택진료의사가 없는경우
- if ( sAllSpcDrId == "NO_DATA_FOUND" ) { // 가능한 선택의가 없을경우
- if ( prcpInptFlag == '02' && !utlf_isNull(sPreSpecDrId) ) { // 약속처방의사가 있으면
- ds_src.setColumn(sendRow, "specdrid", sPreSpecDrId);
- } else if ( ds_paminfo.getColumn(0, "specordyn") == "Y" ) { // 교수진료이고, 시행부서가 없거나 진료과랑 같으면 진료의로 설정
- if ( ds_paminfo.getColumn(0, "orddeptcd") == ds_src.getColumn(sendRow, "prcpexecdeptcd")
- || ds_src.getColumn(sendRow, "prcpexecdeptcd") == ""
- || ds_src.getColumn(sendRow, "prcpexecdeptcd") == "-") {
- ds_src.setColumn(sendRow, "specdrid", sOrdDrId ); // 진료의를 선택의로 설정
- } else {
- ds_src.setColumn(sendRow, "specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- }
- } else {
- ds_src.setColumn(sendRow, "specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- }
- } else if (utlf_isSearchString(sAllSpcDrId, ",")) { // 가능의사가 2명 이상일경우
- ds_src.setColumn(sendRow, "specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- } else if (sAllSpcDrId == "ERROR") { // 가능의사 정보 조회시 에러
- alert("선택진료 가능의사 정보 조회시 에러가 발생 하였습니다. 전산실(6598)로 문의 하세요.");
- ds_src.setColumn(sendRow, "specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- } else { // 가능의사가 1명일 경우
- ds_src.setColumn(sendRow, "specdrid", sAllSpcDrId); // 가능의사 셋팅
- }
- break;
- case "TOO_MANY_ROWS": // 오늘 선택진료의사가 2명이상인경우
- ds_src.setColumn(sendRow, "specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- break;
-
- case "ERROR": // 오늘 선택진료의사정보를 가져오는중 에러
- alert("오늘 선택진료 의사정보 조회시 에러가 발생 하였습니다. 전산실(6598)로 문의 하세요.");
- ds_src.setColumn(sendRow, "specdrid", ""); // 선택진료의사 설정 안함 선택창 팝업
- break;
-
- default: // 오늘 선택진료의사가 1명인경우
- ds_src.setColumn(sendRow, "specdrid", sTodaySpcDrId); // 오늘 선택진료의 설정
- break;
- }
- }
-
- sPrcpSpecDrId = ds_src.getColumn(sendRow, "specdrid")
- sChkSpecDrId = ds_specdrinfo.lookup("userid", sPrcpSpecDrId, "userid");
- if (utlf_isNull(sChkSpecDrId)) {
- ds_src.setColumn(sendRow, "choiordflag", "" );
- lf_chgChoiDr ( "auto", sendRow );
- }
- } else {
- ds_src.setColumn(sendRow, "choiordflag", "N" );
- ds_src.setColumn(sendRow, "specdrid", "-" );
- }
-
- //이은영 과장 요청 마취의 setting by sonjy 20081010 start
- if ( ds_anst.getColumn(0, "paramyn" ) == "Y" ) {
- if ( sPrcpClsCd == "I2" || sPrcpClsCd == "I4" ) {
- //마취의 ID가 있을 경우 만 setting
- if( !utlf_isNull( ds_anst.getColumn(0, "anst_drid") ) ){
- //특진처방 이나 의사가 특진의사가 아닌경우 일반진료처방으로 설정
- if( sChoiordFlag == "Y" ) {
- if( ds_anst.getColumn(0, "anst_specordflag") != "A" ){
- ds_src.setColumn(sendRow, "choiordflag", "N" );
- }
- }
- ds_src.setColumn(sendRow, "specdrid", ds_anst.getColumn(0, "anst_drid") ) ;
- }
- }
- }
- //마취의 setting by sonjy 20081010 end
- //20110517_김영학 /선택진료 처방이지만 선택진료의가 비선택진료의 일 경우에는 선택진료여부를 기본값으로 변경한다.
- // 선택진료 체크가 되어 있으면서 의사가 비선택의사 일 경우에는 선택진료 여부를 -으로 처리한다.
- if (sChoiordFlag == "Y" ) {
- var chkChoiSpcldrid = ds_src.getColumn(sendRow, "specdrid" );
- var ds_usercombo = emr_getOrderBaseInfo("usercombo")
- var choiSpclDrid = ds_usercombo.lookup("userid", chkChoiSpcldrid, "userid");
-
- if ( utlf_isNull(choiSpclDrid)) {
- ds_src.setColumn(sendRow, "choiordflag", "N" );
- ds_src.setColumn(sendRow, "specdrid", "-" );
- }
- }
- //20110517 선택진료 처방이지만 선택진료의가 비선택진료의 일 경우에는 선택진료여부를 기본값으로 변경한다. END
- }
- function cf_TRMMO00144(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0)
- alert("병리검체 선택진료의사 조회시 에러가 발생 하였습니다. 전산실(6598)로 문의 하세요.");
- }
- /***************************************************************************************************
- * Function : lf_clearEMRLoadingInfo
- * Description : 상단의 로딩 Instance Clear
- * Argument :
- * return type : void
- * Creator :
- ***************************************************************************************************/
- function lf_clearEMRLoadingInfo()
- {
- var viewerObj = frmf_getViewer("patientInfo");
- viewerObj.ds_loadinginfo.clearData();
- }
- /***************************************************************************************************
- * Function : lf_setEMRLoadingInfo
- * Description : 처방 기록 환자정보 setting
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_setEMRLoadingInfo()
- {
- sysf_setGlobalVariable("OrderMainRefresh", "Y");// 처방 메인 refresh 단일화를 위한 글로벌 변수 셋팅 - 20081212 by Moonsh
- ds_reqdata.clearData("/root/send/reqdata");
- var sysMessageobj = frmf_getViewer("sysMessage");
- var srchtabflag = sysMessageobj.frmf_getParameter("PATLIST_TABFLAG");
- var OPERATIONINFO_NODE = "/root/properties/patient/operationinfo";
- if (ds_operationinfo.instances(0).selectNodes("/root/properties/patient/operationinfo").rowcount == 0) {
- OPERATIONINFO_NODE = "/root/initdata/oppatopscheinfo";
- }
- var sPid = fGetPatientInfo("pid");
- var sCretno = fGetPatientInfoDetail("cretno");
- var sOrdtype = srchtabflag;
- var sOrddeptcd = fGetPatientInfoDetail("orddeptcd");
- var sInsukind = fGetPatientInfoDetail("insukind");
- var sOrddrid = "";
- var sOrddd = "";
- var sSrchdd = "";
- var sPrcpdd = "";
- if (sOrdtype == "O" || sOrdtype == "S") {
- sOrddrid = fGetPatientInfoDetail("orddrid");
- sOrddd = fGetPatientInfoDetail("orddd");
- sSrchdd = "";
- sPrcpdd = sOrddd;
- }
- else if (sOrdtype == "T") {
- sOrddd = OPERATIONINFO_NODE.getColumn(0, "opcnfmdd");
- sOrddrid = OPERATIONINFO_NODE.getColumn(0, "perfdrid");
- sOrddeptcd = OPERATIONINFO_NODE.getColumn(0, "perfdeptcd");
- ds_reqdata.setColumn(0, "/root/send/reqdata/patflag" , OPERATIONINFO_NODE.getColumn(0, "oppatflagcd")); //실제 ioflag는 patflag로 설정
- ds_reqdata.setColumn(0, "/root/send/reqdata/procflag" , "F");
- ds_reqdata.setColumn(0, "/root/send/reqdata/oprsrvno" , OPERATIONINFO_NODE.getColumn(0, "oprsrvno"));
- ds_reqdata.setColumn(0, "/root/send/reqdata/ophistno" , OPERATIONINFO_NODE.getColumn(0, "ophistno"));
- sSrchdd = ds_patinfo.getColumn(0, "/root/main/patinfo/prcpdd"); //조회일자
- if (!utlf_isNull(sSrchdd) && sSrchdd != "-")
- sPrcpdd = sSrchdd;
- else
- sPrcpdd = utlf_getCurrentDate();
- }
- else {
- sOrddrid = fGetPatientInfoDetail("medispclid");
- sOrddd = fGetPatientInfoDetail("indd");
- sPrcpdd = fGetPatientInfo("prcpdd");
- }
- var sHngnm = "";
- ds_reqdata.setColumn(0, "/root/send/reqdata/pid" , sPid);
- ds_reqdata.setColumn(0, "/root/send/reqdata/orddd" , sOrddd);
- ds_reqdata.setColumn(0, "/root/send/reqdata/cretno" , sCretno);
- ds_reqdata.setColumn(0, "/root/send/reqdata/hngnm" , sHngnm);
- ds_reqdata.setColumn(0, "/root/send/reqdata/prcpgenrflag" , sOrdtype);
- ds_reqdata.setColumn(0, "/root/send/reqdata/orddeptcd" , sOrddeptcd);
- ds_reqdata.setColumn(0, "/root/send/reqdata/orddrid" , sOrddrid);
- ds_reqdata.setColumn(0, "/root/send/reqdata/instcd" , sysf_getUserInfo("dutplceinstcd"));
- ds_reqdata.setColumn(0, "/root/send/reqdata/prcpdd" , sPrcpdd);
- ds_reqdata.setColumn(0, "/root/send/reqdata/srchtabflag" , sOrdtype );//대상자리스트탭 구분
- ds_reqdata.setColumn(0, "/root/send/reqdata/insukind" , sInsukind);
- //입원
- ds_reqdata.setColumn(0, "/root/send/reqdata/srchdd" , sSrchdd);
- //후인증 count start
- ds_reqdata.setColumn(0, "/root/send/reqdata/userdeptcd" , sysf_getUserInfo("dutplcecd"));
- ds_reqdata.setColumn(0, "/root/send/reqdata/userkind" , "D");
- ds_reqdata.setColumn(0, "/root/send/reqdata/execkind" , "patlist");
- ds_reqdata.setColumn(0, "/root/send/reqdata/aftcertorddrid", sysf_getUserInfo("userid"));
- //후인증 count end
- //전처방 개인별 조회 option 추가
- var bfprcpviewflag = sysMessageobj.ds_orderbasicinfo.getColumn(0, "/root/properties/orderbasicinfo/envinfo[qestcd='018']/answcnt");
- ds_reqdata.setColumn(0, "/root/send/reqdata/bfprcpviewflag", bfprcpviewflag);
- if (sOrdtype == "O" || sOrdtype == "S") {
- if (!tranf_submit("TRMMO04310", false)) {
- }
- }
- else if (sOrdtype == "I" || sOrdtype == "E" || sOrdtype == "D" || sOrdtype == "W") { //병동현황판(W) 조건 추가 2012.06.22 kskim
- //입원 base 첫 로딩은 정규처방
- if (sOrdtype != "W") {
- ds_reqdata.setColumn(0, "/root/send/reqdata/tabprcpkindcd" ,"10");
- }
- if (!tranf_submit("TRMMO04311", false)) {
- }
- }
- else if (sOrdtype == "T") {
- if (!tranf_submit("TRMMO04312")) {
- }
- }
- ds_initdata.setColumn(0, "/root/initdata/loadflag", "Y" );
- ds_initdata.setColumn(0, "/root/initdata/loaddate", utlf_getCurrentDate());
- ds_initdata.setColumn(0, "/root/initdata/loadtime", utlf_getCurrentTime());
- var viewerObj = frmf_getViewer("patientInfo");
- viewerObj.ds_loadinginfo.clearData("/root/loadinginfo");
- viewerObj.ds_loadinginfo.setColumn(0, "/root/loadinginfo");
- viewerObj.ds_loadinginfo.copyData(ds_initdata);
- }
- /***************************************************************************************************
- * Function : lf_getEMRLoadingInfo
- * Description : 환자리스트에서 환자 선택 시 호출되는 처방, 기록, 환자정보 등 조회하는 함수
- * Argument : sOrdtype [String : 외래(O),건진(S),입원(I),응급(E),수술(T), 병동현황판(W) 구분]
- * return type : void
- * Creator :
- ***************************************************************************************************/
- var lgv_ioFlag = "";
- //동기 dataset
- var arrInitDataDsList = ["getdata","opprcpinfo","dscprcpinfo","resnyn"];
- function lf_getEMRLoadingInfo(sOrdtype)
- {
- var sRef = dsf_createDsRow("ds_cond_reqdata", [{col:"patflag", type:"string", size:256, val:""},
- {col:"procflag", type:"string", size:256, val:""},
- {col:"oprsrvno", type:"string", size:256, val:""},
- {col:"ophistno", type:"string", size:256, val:""},
- {col:"pid", type:"string", size:256, val:""},
- {col:"orddd", type:"string", size:256, val:""},
- {col:"cretno", type:"string", size:256, val:""},
- {col:"hngnm", type:"string", size:256, val:""},
- {col:"prcpgenrflag", type:"string", size:256, val:""},
- {col:"orddeptcd", type:"string", size:256, val:""},
- {col:"orddrid", type:"string", size:256, val:""},
- {col:"instcd", type:"string", size:256, val:""},
- {col:"prcpdd", type:"string", size:256, val:""},
- {col:"srchtabflag", type:"string", size:256, val:""},
- {col:"insukind", type:"string", size:256, val:""},
- {col:"srchdd", type:"string", size:256, val:""},
- {col:"userdeptcd", type:"string", size:256, val:""},
- {col:"userkind", type:"string", size:256, val:""},
- {col:"execkind", type:"string", size:256, val:""},
- {col:"aftcertorddrid", type:"string", size:256, val:""},
- {col:"bfprcpviewflag", type:"string", size:256, val:""},
- {col:"ioflag", type:"string", size:256, val:""},
- {col:"stnddd", type:"string", size:256, val:""},
- {col:"callvisityn", type:"string", size:256, val:""},
- {col:"tabprcpkindcd", type:"string", size:256, val:""},
- {col:"async", type:"string", size:256, val:""},
- {col:"ordtype", type:"string", size:256, val:""}]);
- var oRef = this.objects[sRef];
- // frmf_setParameter("SMMMO04100_reqptype", reqptype);
- var currow = "";
- var sPATLIST_PATH = "";
- var sOrddd = "";
- var sOrddrid = "";
- var sOrddeptcd = "";
- var sSrchdd = "";
- var sPrcpdd = utlf_getCurrentDate();
- var sDschdd = "";
- var oPatientInfo = frmf_getViewer("patientInfo");
- lgv_ioFlag = sOrdtype;
- var tabidx = parent.parent.tab_list.tabindex;
-
- if(tabidx == 0){//외래
- sPATLIST_PATH = this.objects[this.grd_outpatlist.binddataset];
- currow = grd_outpatlist.currentrow;
-
- } else if(tabidx == 1){//입원
- sPATLIST_PATH = this.objects[this.grd_inpatlist.binddataset];
- currow = grd_inpatlist.currentrow;
-
- } else if(tabidx == 2){//응급
- sPATLIST_PATH = this.objects[this.grd_erpatlist.binddataset];
- currow = grd_erpatlist.currentrow;
-
- } else if(tabidx == 3){//수술
- sPATLIST_PATH = this.objects[this.grd_oppatlist.binddataset];;
- currow = grd_oppatlist.currentrow;
-
- } else if(tabidx == 4){//환자검색
- sPATLIST_PATH = this.objects[this.grd_srchpatlist.binddataset];
- currow = grd_srchpatlist.currentrow;
- }
-
- if (sOrdtype == "O" || sOrdtype == "S") {
- sOrddd = sPATLIST_PATH.getColumn(currow, "orddd");
- sOrddrid = sPATLIST_PATH.getColumn(currow, "orddrid");
- sPrcpdd = sOrddd;
- }
- else if (sOrdtype == "I" || sOrdtype == "E" || sOrdtype == "D") {
- if (sOrdtype == "E") {
- sOrddrid = ds_grid_grd_erpatlist.getColumn(currow, "orddoctid");
- sOrddd = ds_grid_grd_erpatlist.getColumn(currow, "indd");
- sDschdd = ds_grid_grd_erpatlist.getColumn(currow, "dschdd");
- } else {
- sOrddrid = ds_grid_grd_inpatlist.getColumn(currow, "medispclid");
- sOrddd = ds_grid_grd_inpatlist.getColumn(currow, "indd");
- sDschdd = ds_grid_grd_inpatlist.getColumn(currow, "dschdd");
- }
- sSrchdd = ds_condition.getColumn(0, "srchdd");
- //oPatientInfo = frmf_getViewer("patientInfo");
- if (sDschdd != "99991231" && !utlf_isNull(sDschdd) && sDschdd != "-") {
- sPrcpdd = sDschdd;
- } else if (oPatientInfo.ds_patinfo.getColumn(0, "prcpdd") != "" && oPatientInfo.ds_patinfo.getColumn(0, "prcpdd") != undefined) {
- sPrcpdd = oPatientInfo.ds_patinfo.getColumn(0, "prcpdd");
- } else {
- sPrcpdd = utlf_getCurrentDate();
- }
- }
- else if (sOrdtype == "T") {
- sOrddd = sPATLIST_PATH.getColumn(currow, "opcnfmdd");
- sOrddrid = sPATLIST_PATH.getColumn(currow, "perfdrid");
- sOrddeptcd = sPATLIST_PATH.getColumn(currow, "perfdeptcd");
- var patflag = sPATLIST_PATH.getColumn(currow, "ioflag");
- oRef.setColumn(0, "patflag", patflag); // 실제 ioflag는 patflag로 설정
- // 최초조회:F , 재조회:R
- oRef.setColumn(0, "procflag", "F");
- oRef.setColumn(0, "oprsrvno", sPATLIST_PATH.getColumn(currow, "oprsrvno"));
- oRef.setColumn(0, "ophistno", sPATLIST_PATH.getColumn(currow, "ophistno"));
- sSrchdd = ds_condition.getColumn(0, "opcnfmdd"); // 조회일자
- if (!utlf_isNull(sSrchdd) && sSrchdd != "-")
- sPrcpdd = sSrchdd;
- else
- sPrcpdd = utlf_getCurrentDate();
- }
- else if (sOrdtype == "W") { // 병동현황판
- var selGridObj = fGetCurGridObj(); // SMMMO04600.js에 정의
- if (selGridObj == null)
- return;
- sPATLIST_PATH = this.objects[selGridObj.binddataset];
- currow = fGetCurRow(); // SMMMO04600.js에 정의
- sOrddrid = sPATLIST_PATH.getColumn(currow, "medispclid");
- sOrddd = sPATLIST_PATH.getColumn(currow, "indd");
- sSrchdd = ds_condition.getColumn(0, "indd");
- lgv_ioFlag = "I";
- sDschdd = sPATLIST_PATH.getColumn(currow, "dschdd");
- if (sDschdd != "99991231" && !utlf_isNull(sDschdd) && sDschdd != "-")
- sPrcpdd = sDschdd;
- else
- sPrcpdd = utlf_getCurrentDate();
- }
- if (sOrdtype != "T") {
- sOrddeptcd = sPATLIST_PATH.getColumn(currow, "orddeptcd");
- if (!utlf_isNull(sPATLIST_PATH.getColumnInfo("ordtype")) && !utlf_isNull(sPATLIST_PATH.getColumn(currow, "ordtype"))) {
- sOrdtype = sPATLIST_PATH.getColumn(currow, "ordtype");
- }
- }
- var sPid = sPATLIST_PATH.getColumn(currow, "pid");
- var sCretno = lf_getDsValue(sPATLIST_PATH, currow, "cretno");
- var sHngnm = sPATLIST_PATH.getColumn(currow, "hngnm");
- var sInsukind = lf_getDsValue(sPATLIST_PATH, currow, "insukind");
- var sInstCD = sPATLIST_PATH.getColumn(currow, "instcd");
- if (utlf_isNull (sInstCD)) {
- sInstCD = sysf_getUserInfo("dutplceinstcd");
- }
- oRef.setColumn(0, "pid" , sPid);
- oRef.setColumn(0, "orddd" , sOrddd);
- oRef.setColumn(0, "cretno" , sCretno);
- oRef.setColumn(0, "hngnm" , sHngnm);
- oRef.setColumn(0, "prcpgenrflag" , sOrdtype);
- oRef.setColumn(0, "ioflag" , sOrdtype);
- oRef.setColumn(0, "stnddd" , sSrchdd);
- oRef.setColumn(0, "orddeptcd" , sOrddeptcd);
- oRef.setColumn(0, "orddrid" , sOrddrid);
- oRef.setColumn(0, "instcd" , sInstCD);
- oRef.setColumn(0, "prcpdd" , sPrcpdd);
- oRef.setColumn(0, "srchtabflag" , sOrdtype); // 대상자리스트탭 구분
- oRef.setColumn(0, "insukind" , sInsukind);
- oRef.setColumn(0, "srchdd" , sSrchdd); // 입원
- oRef.setColumn(0, "userdeptcd" , sysf_getUserInfo("dutplcecd")); // 후인증 count start
- oRef.setColumn(0, "userkind" , "D");
- oRef.setColumn(0, "execkind" , "patlist");
- oRef.setColumn(0, "aftcertorddrid", sysf_getUserInfo("userid"));
- oRef.setColumn(0, "bfprcpviewflag", lf_mmbfGetUserEnvQuestValue("018")); // 전처방 개인별 조회 option
- oRef.setColumn(0, "ordtype" , sOrdtype);
- var mainObj = frmf_getMainViewer();
- var sysMessageobj = frmf_getViewer("sysMessage");
- sysMessageobj.frmf_setParameter("PATLIST_TABFLAG", sOrdtype);
- var oParam = {};
- if (sOrdtype == "O" || sOrdtype == "S") {
- oParam.id = "TRMMO04310"; // transaction을 구분하기 위한 ID
- }
- else if (sOrdtype == "I" || sOrdtype == "E" || sOrdtype == "D" || sOrdtype == "W") { // 병동현황판(W) 조건 추가 2012.06.22 kskim
- oParam.id = "TRMMO04311"; // transaction을 구분하기 위한 ID
- // 입원 base 첫 로딩은 정규처방
- if (sOrdtype != "W" )
- oRef.setColumn(0, "tabprcpkindcd" ,"10");
- }
- else if (sOrdtype == "T") {
- oParam.id = "TRMMO04312"; // transaction을 구분하기 위한 ID
- }
-
- //조회조건이 된 dataset도 copy 해서 비동기 데이터 조회시 사용하도록 함
- var sDsNm = oPatientInfo.dsf_createDs("ds_cond_reqdata");
- oPatientInfo.objects[sDsNm].clearData();
- oPatientInfo.objects[sDsNm].copyData(this.objects[sDsNm]);
-
- //동기 data조회
- oRef.setColumn(0, "async", "N");
- oParam.service = "prcpmngtapp.EmrInitDataMngt"; // service ID
- oParam.method = "reqGetEMRLoadingInfo_NEW1"; // method ID
- oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- oParam.async = false;
- oParam.outds = "";
- for (var i=0 ; i<arrInitDataDsList.length ; i++) {
- var sDsNm = "ds_"+arrInitDataDsList[i];
- var oDs = this.objects[sDsNm];
- if (oDs == null) {
- dsf_createDs(sDsNm);
- }
- this.objects[sDsNm].clearData();
- oParam.outds += sDsNm+"="+arrInitDataDsList[i]+" ";
- }
- // for (var i=0 ; i<arrInitDataDsList.length ; i++) {
- // var sDsNm = dsf_createDs("ds_"+arrInitDataDsList[i]);
- // oParam.outds += sDsNm+"="+arrInitDataDsList[i]+" ";
- // }
- oPatientInfo.lv_sSpeedTestText += "\n" + "속도체크2. reqGetEMRLoadingInfo(동기) 호출 전: " + lf_getCurrentDateString();
- tranf_submit(oParam);
- oPatientInfo.lv_sSpeedTestText += "\n" + "속도체크3. reqGetEMRLoadingInfo(동기) 호출 후: " + lf_getCurrentDateString();
-
- // [TFT] moon 20120522 : 환자 정보에 의한 디폴트 서식 조회 후 화면(서식) open에 따른 후처리
- lf_aftGetEMRLoadingInfo(lgv_ioFlag);
-
- oPatientInfo.lv_sSpeedTestText += "\n" + "속도체크4. lf_aftGetEMRLoadingInfo 종료: " + lf_getCurrentDateString();
-
- }
- /***************************************************************************************************
- * Function : lf_focusMain
- * Description : 포커스를 메인으로 한다.(처방화면 으로 포커스 옮기는 함수)
- * Argument : curRow => 메인의 검색 row
- * : flag => child
- * : prcpNmClearFlag => 검색명을 클리어 시킬건지 여부
- * return type :
- * Creator :
- * @---------------------------------------------------
- */
- function lf_focusMain( curRow, flag, prcpNmClearFlag){
- var enableevent; // enableevent 가 false 일때는 rowposition이 제대로 안바뀐다. 잠시 켜놓고 함수 끝날때 원래 상태로 다시 되돌림
-
- if (flag == "child") {
- var oTrgtObj = lf_getFormObject(flag);
-
- if ( prcpNmClearFlag != "N" ) {
- oTrgtObj.ds_main_prcplist.setColumn(curRow, "prcpnm", "");
- oTrgtObj.ds_main_prcplist.setColumn(curRow, "prcpcd", "");
- }
-
- enableevent = oTrgtObj.ds_main_prcplist.enableevent;
- if(!enableevent)
- oTrgtObj.ds_main_prcplist.enableevent = true;
-
- var bfRow = curRow - 1;
- var sPrcpClsCd = oTrgtObj.ds_main_prcplist.getColumn(bfRow, "prcpclscd");
-
- if(sPrcpClsCd == "A2" || sPrcpClsCd == "A4" || sPrcpClsCd == "A6"){
- oTrgtObj.ds_main_prcplist.selectRow(bfRow);
- oTrgtObj.ds_main_prcplist.rowposition = bfRow;
- oTrgtObj.div_all.grd_prcplist.setCellPos(oTrgtObj.div_all.grd_prcplist.getBindCellIndex("body", "drprcpetc7"));
- }else{
- oTrgtObj.ds_main_prcplist.selectRow(curRow);
- oTrgtObj.ds_main_prcplist.rowposition = curRow;
- if(oTrgtObj.ds_send.getColumn(0, "cond99") == "getPrcpCdOldSrchInfo") {
- oTrgtObj.div_all.grd_prcplist.setCellPos(prcpcdCol);
- oTrgtObj.ds_send.setColumn(0, "cond99", "");
- } else {
- oTrgtObj.div_all.grd_prcplist.setCellPos(prcpnmCol);
- }
- }
-
- if( oTrgtObj.ds_root.getColumn(0, "cp") == "Y" ){
- //CP에서 저장 시 AddPrcp()를 수행 시, 마지막 라인에 포커스가 남아있는 상태에서 저장 수행 과정에 "onendedit" 이번트 동시 수행하면서 윈도우 에러 발생 -> 이 경우 막음처리 (2008.10.02 JJE)
- if( !utlf_isNull(curSavePrcpFlag_SMMMO00110) && (curSavePrcpFlag_SMMMO00110 == "N" || curSavePrcpFlag_SMMMO00110 == "T") ){
- if(!enableevent)
- oTrgtObj.ds_main_prcplist.enableevent = false;
- return;
- }
- }
-
- // 항생제에서 데이타 추가 후 dispatch 시엔 Focus가 안 가서 setFocus 사용 20080925 by Moonsh
- var cdssFlag = oTrgtObj.frmf_getParameter( "SPMMD01600_flag");
- var sAltDrugFlag = oTrgtObj.frmf_getParameter( "SPMMB10100_flag"); // 대체약 선택으로 호출시
- if ( cdssFlag == "Y" ) {
- oTrgtObj.div_all.grd_prcplist.setFocus();
- } else if (sAltDrugFlag == "Y") {
- } else {
- //by sonjy 20090923 성공적으로 copy햇을 경우 ...
- //iviewer에서 addprcp호출시 grid edit 안되는 bug 수정
- oTrgtObj.div_all.grd_prcplist.setFocus();
- oTrgtObj.div_all.grd_prcplist.showEditor(true);
- //oTrgtObj.div_all.btn_editcell.onclick.fireEvent(oOpener.div_all.btn_editcell, new ClickEventInfo());
- }
-
- if(!enableevent)
- oTrgtObj.ds_main_prcplist.enableevent = false;
-
- // bold 처리 확인필요
- // opener.grd_prcplist.allstyle( "all", "font-weight" ) = ""; //기존 focus cell bold체 해제 (2010.01.27 JJE)
- } else {
- ds_prcpsrch_prcplist.clearData();
- ds_prcpgroup_prcplist.clearData();
- ds_prcpdirec_prcplist.clearData();
-
- if (prcpNmClearFlag != "N") {
- ds_main_prcplist.setColumn(curRow, "prcpnm", "");
- ds_main_prcplist.setColumn(curRow, "prcpcd", "");
- }
-
- enableevent = ds_main_prcplist.enableevent;
- if(!enableevent)
- ds_main_prcplist.enableevent = true;
-
- var bfRow = curRow - 1;
- var sPrcpClsCd = ds_main_prcplist.getColumn(bfRow, "prcpclscd");
- if(sPrcpClsCd == "A2" || sPrcpClsCd == "A4" || sPrcpClsCd == "A6"){
- ds_main_prcplist.selectRow(bfRow);
- ds_main_prcplist.rowposition = bfRow;
- div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "drprcpetc7"));
- }else{
- ds_main_prcplist.selectRow(curRow);
- ds_main_prcplist.rowposition = curRow ;
-
- if(ds_send.getColumn(0, "cond99") == "getPrcpCdOldSrchInfo") {
- div_all.grd_prcplist.setCellPos(prcpcdCol);
- ds_send.setColumn(0, "cond99", "");
- } else {
- div_all.grd_prcplist.setCellPos(prcpnmCol);
- }
- }
-
- if( ds_root.getColumn(0, "cp") == "Y" ){ //CP에서 저장 시 AddPrcp()를 수행 시, 마지막 라인에 포커스가 남아있는 상태에서 저장 수행 과정에 "onendedit" 이번트 동시 수행하면서 윈도우 에러 발생 -> 이 경우 막음처리 (2008.10.02 JJE)
- if( !utlf_isNull(curSavePrcpFlag_SMMMO00110) && (curSavePrcpFlag_SMMMO00110 == "N" || curSavePrcpFlag_SMMMO00110 == "T") ){
- if(!enableevent)
- ds_main_prcplist.enableevent = false;
- return;
- }
-
- if (prtlprcpstatus_SMMMO00110 != "U" ) {
- div_all.grd_prcplist.showEditor(true);
- }
- } else {
- div_all.grd_prcplist.showEditor(true);
- }
-
- if(!enableevent)
- ds_main_prcplist.enableevent = false;
-
- //기존 focus cell bold체 해제 (2010.01.27 JJE)
- // bold 처리 확인필요
- // grd_prcplist.allstyle( "all", "font-weight" ) = "";
- }
- }
- /****************************************************************************************
- * Argument : curRow: 호출 row
- * : flag: 처방복사시 호출하면 refresh 시켜주면서 어느 row의 팝업인지 알게함
- * Description : 새로운 빈줄 한줄 생성
- ****************************************************************************************/
- function lf_newPrcpRow(nTrgtRow){
- if(nTrgtRow != 0){
- nTrgtRow = nTrgtRow - 1;
- }
- ds_grid_prcplist.insertRow(nTrgtRow);
- }
- /********************************************************************************************************************************************
- * Argument : sQuery - 검색명
- * sPrcpds - 결과 저장할 데이터셋(String)
- * sSrchflag - 검색구분 : null(처방명, 처방코드 모두로 검색), "prcpcd"(처방코드로 검색), "prcpnm"(처방명으로 검색)
- * sPrcpdd - 처방검색기준일자(null이면 현재일자)
- * Description : 처방정보 간단 조회(처방마스터 코드 또는 명칭으로만 조회)
- ********************************************************************************************************************************************/
- function lf_SimplePrcpSrch(sQuery, sPrcpds, sSrchflag, sPrcpdd){
- var mSrchFlag = sSrchflag;
- var mPrcpdd = sPrcpdd;
-
-
- // Dataset NULL 체크
- if(utlf_isNull(sPrcpds)){
- return false; // 데이터셋이 없을 경우 리턴처리
- }
-
- var mQuery = sQuery.trim();
-
- // 검색명 NULL 체크
- if(utlf_isNull(mQuery)){
- sysf_messageBox("검색명을 입력하세요", "E");
- return false;
- }
-
- //질의어 사이즈 체크
- var sIsHangul = utlf_isHangul(sQuery);
- if(sIsHangul == "E" && mQuery.length < 2){
- sysf_messageBox("검색명은 2글자 이상", "C001");
- return false;
- }
-
- //처방검색 기준일자 세팅
- if(utlf_isNull(sPrcpdd))
- mPrcpdd = utlf_getCurrentDate();
- if(utlf_isNull(sSrchflag))
- mSrchFlag = null;
-
- dsf_createDsRow("ds_cond_req_simpleprcpnfo",
- [{col:"prcpdd", val:mPrcpdd},
- {col:"srchflag", val:mSrchFlag},
- {col:"srchnm", val:mQuery}]);
-
-
- var objParam = new Object();
- objParam.id = "reqGetSimplePrcpInfo";
- objParam.service = "prcpmngtapp.PrcpMngt";
- objParam.method = "reqGetSimplePrcpInfo";
- objParam.inds = "req=ds_cond_req_simpleprcpnfo";
- objParam.outds = sPrcpds + "=prcpinfolist";
- tranf_submit(objParam);
- }
- /***************************************************************************************************
- * Function : lf_addDrChk
- * Description : 가산의 체크
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_addDrChk(srcNode, indx, msgyn)
- {
- var addfg = "";
- if (indx < 0) {
- return addfg;
- }
- var calcscormastspec = srcNode.getColumn(indx, "calcscormastspec");
- if (utlf_isNull(calcscormastspec))
- return addfg ;
- var calcspecArr = calcscormastspec.split("|");
- if (calcspecArr != null && calcspecArr.length > 4) {
- if (calcspecArr[4] == "A") addfg = "GS";
- else if (calcspecArr[4] == "B") addfg = "ALL"; // CS
- else if (calcspecArr[4] == "C") addfg = "CS";
- else if (calcspecArr[4] == "D") addfg = "GS";
- if (utlf_isNull(addfg)) {
- if (calcspecArr[5] == "A"){
- addfg = "GS";
- }else if (calcspecArr[5] == "B"){
- addfg = "ALL";
- }else if (calcspecArr[5] == "C"){
- addfg = "CS";
- }else if (calcspecArr[5] == "D"){
- addfg = "GS";
- }
- }
- if (utlf_isNull(addfg)) {
- if (msgyn == "Y") {
- sysf_messageBox("가산의 지정이 불가한 처방입니다.", "E");
- }
- }
- }
- return addfg;
- }
- /***************************************************************************************************
- * Function : lf_chngAddDr
- * Description : 가산의 변경
- * Argument :
- * return type :
- * Creator :
- ***************************************************************************************************/
- function lf_chngAddDr(objPrcpList, indx, addfg, grdObj, objPaminfoDS )
- {
- if(utlf_isNull(objPaminfoDS)){
- objPaminfoDS = ds_data_paminfo;
- }
- var ordtype = objPaminfoDS.getColumn(0, "ioflag");
-
- var oParamObj = new Object();
- oParamObj.plgv_orddeptcd = addfg;
- oParamObj.plgv_ioflag = ordtype;
- oParamObj.plgv_flag = "adddr";
- oParamObj.plgv_specdrid = objPrcpList.getColumn(indx, "specdrid");
- var scrid = frmf_getScreenID();
- var xpt = 400;
- var ypt = 300;
- if (!utlf_isNull(scrid) && scrid.length > 5) {
- if (scrid.substring(0,5) == "SPMMO") {
- ypt = 10 ;
- }
- }
- var objRtnVal = lf_prcpModal("SPMMB08300", oParamObj);
-
- var sUseyn = objRtnVal.prv_sUseyn;
- var userid = objRtnVal.prv_sUserid;
- if (sUseyn == "Y") {
- objPrcpList.setColumn(indx, "tempcol30", userid);
- return true ;
- }
- return false ;
- }
- /****************************************************************************************
- * Argument : nRow 포커스를 이동시킬 row
- * : nCol 포커스를 이동시킬 column
- * Description : 엔터키를 칠때 다음셀로 이동시킨다.
- ****************************************************************************************/
- function lf_setCellFocus(nRow, nCol, oTrgtObj){
- //trace("focus move event Target" + ", row : " + nRow + ", nCol : " + nCol);
-
- if(utlf_isNull(oTrgtObj)){
- oTrgtObj = this;
- }
-
- oTrgtObj.ds_grid_prcplist.rowposition = nRow;
- oTrgtObj.grp_prcp.grd_prcplist.setCellPos(-1);
-
-
- if(utlf_isNull(oTrgtObj.grp_prcp.grd_prcplist.getCellProperty("body", nCol, "edittype") )){
-
- oTrgtObj.grp_prcp.grd_prcplist.showEditor(false);
- oTrgtObj.grp_prcp.grd_prcplist.setCellPos(nCol);
- }
- else{
- oTrgtObj.grp_prcp.grd_prcplist.setCellPos(nCol);
- oTrgtObj.grp_prcp.grd_prcplist.showEditor(true);
- }
- oTrgtObj.ds_grid_prcplist.selectRow(nRow, true);
-
- }
- /********************************************************************************************************************************************
- * Argument : objDataset : 해당 dataset
- * Description : grid 검색ROW 추가
- ********************************************************************************************************************************************/
- function lf_addSearchRow(objDataset:Dataset){
- if(objDataset.findRow("status", "S") > -1) {
- objDataset.deleteRow(objDataset.findRow("status", "S"));
- }
- objDataset.addRow();
- objDataset.setColumn(objDataset.rowcount-1, "status", "S");
- }
- /********************************************************************************************************************************************
- * Argument :
- * Description : 처방 전달사항
- ********************************************************************************************************************************************/
- function lf_setPrcpdelivefact(){
- ds_grid_prcplist.enableevent = false;
- var nCurrow = grp_prcp.grd_prcplist.currentrow ;
- if(nCurrow < 0 || nCurrow >= grp_prcp.grd_prcplist.rowcount){
- return;
- }
- var sStatus = ds_grid_prcplist.getColumn(nCurrow, "status");
- var sTempcol1 = ds_grid_prcplist.getColumn(nCurrow, "tempcol1" );
- if(utlf_isNull(sTempcol1)) {
- sTempcol1 = "000" ;
- }
- if(sStatus != "S") {
- if(sStatus == "B" && sTempcol1 != "000") {
- return ;
- }
-
- var sAftprcpdelivefact = grp_prcp.grp_prcp_bottom.switch_delivefact.case_dr.txt_prcpdelivefact.value;
- var sBfprcpdelivefact = ds_grid_prcplist.getColumn(nCurrow, "prcpdelivefact");
- if(sAftprcpdelivefact != sBfprcpdelivefact){
- ds_grid_prcplist.setColumn(nCurrow, "prcpdelivefact", sAftprcpdelivefact);
- grp_prcp.grp_prcp_bottom.switch_delivefact.case_dr.text = "■전달";
- if((sStatus == "B" && sTempcol1== "000") || sStatus == "-") {
- ds_grid_prcplist.setColumn(nCurrow, "status", "U" );
- }
-
- if(utlf_isNull(sAftprcpdelivefact) || sAftprcpdelivefact == "-") {
- ds_grid_prcplist.setColumn(nCurrow, "remyn", "N");
- } else {
- ds_grid_prcplist.setColumn(nCurrow, "remyn", "Y" );
- }
-
- lf_setPrcpGridColor('EMR', 'E', grp_prcp.grd_prcplist, ds_grid_prcplist); //그리드 색 처리
- }
- }
- ds_grid_prcplist.enableevent = true;
- }
- /********************************************************************************************************************************************
- * Argument :
- * Description : 처방 진료기타 화면 확장/축소
- ********************************************************************************************************************************************/
- function lf_prcpEtcDivSizeControl(obj:Button) {
- if(obj.name == "btn_expansion") { //확장
-
- ///////////////오른쪽 DIV 사이즈 조절/////////////
- div_prcpetc.move(this.position.right - 400, div_prcpetc.position.top);
- div_prcpetc.position.right = this.position.right-20;
- //////////////////////////////////////////////////
-
- ///////////////버튼 및 line 위치 조절/////////////
- Static00.move(div_prcpetc.position.left-4,Static00.position.top);
-
- obj.visible = false;
- btn_default.visible = true;
- btn_default.move(Static00.position.right-btn_default.position.width,btn_default.position.top);
- //////////////////////////////////////////////////
-
- //미니모드 or 숨김모드 일 경우 진료기타 div변경
- if(div_prcpetc.pDIv_mode.btn_defaultMode.class != "btn_ScreenSelect") {
- div_prcpetc.visible = true;
-
- div_prcpetc.div_mini.visible = false;
- div_prcpetc.div_normal.visible = true;
- }
-
- } else if(obj.name == "btn_default") { //축소
- var e = new ClickEventInfo;
-
- if(div_prcpetc.pDIv_mode.btn_miniMode.class == "btn_ScreenSelect") { //미니모드일 떄는 축소 버튼 클릭 시 미니모드로
- div_prcpetc.pDIv_mode.btn_miniMode.onclick.fireEvent(div_prcpetc.pDIv_mode.btn_miniMode, e);
- } else if(div_prcpetc.pDIv_mode.btn_hideMode.class == "btn_ScreenSelect") { //숨김일 떄는 축소 버튼 클릭 시 숨김모드로
- div_prcpetc.pDIv_mode.btn_hideMode.onclick.fireEvent(div_prcpetc.pDIv_mode.btn_hideMode, e);
- } else {
- ///////////////오른쪽 DIV 사이즈 조절/////////////
- div_prcpetc.move(this.position.right - 200, div_prcpetc.position.top);
- div_prcpetc.position.right = this.position.right-20;
- //////////////////////////////////////////////////
-
- ///////////////버튼 및 line 위치 조절/////////////
- Static00.move(div_prcpetc.position.left-4,Static00.position.top);
-
- obj.visible = false;
- btn_expansion.visible = true;
- btn_expansion.move(Static00.position.right-btn_expansion.position.width,btn_expansion.position.top);
- //////////////////////////////////////////////////
-
- /////////////////처방 DIV 사이즈 조절/////////////
- grp_prcp.position.width = Static00.position.left-15;
- //////////////////////////////////////////////////
- }
-
- } else if(obj.name == "btn_miniMode") { //미니모드
-
- ///////////////오른쪽 DIV 사이즈 조절/////////////
- div_prcpetc.move(this.position.right - 70, div_prcpetc.position.top);
- div_prcpetc.position.right = this.position.right-20;
- //////////////////////////////////////////////////
-
- ///////////////버튼 및 line 위치 조절/////////////
- //Static00.position.left = 1182;
- //Static00.position.right = 1186;
- Static00.move(div_prcpetc.position.left-4,Static00.position.top);
-
- //btn_expansion.position.left = 1170;
- //btn_expansion.position.right = 1186;
-
- //btn_default.position.left = 1170;
- //btn_default.position.right = 1186;
- btn_default.move(Static00.position.right-btn_default.position.width,btn_default.position.top);
- btn_expansion.move(Static00.position.right-btn_expansion.position.width,btn_expansion.position.top);
-
- btn_expansion.visible = true;
- btn_default.visible = false;
- //////////////////////////////////////////////////
-
- ///////////////DIV_MINI 위치 조정/////////////////
- div_prcpetc.div_mini.position.left = 00;
- div_prcpetc.div_mini.position.right = 51;
- //////////////////////////////////////////////////
-
- /////////////////처방 DIV 사이즈 조절/////////////
- grp_prcp.position.width = this.position.right-80;
- //////////////////////////////////////////////////
- } else if(obj.name == "btn_hideMode") { //숨김모드
-
- ///////////////오른쪽 DIV 숨김/////////////
- div_prcpetc.visible = false;
- ///////////////////////////////////////////
-
- ///////////////버튼 및 line 위치 조절/////////////
- //Static00.position.left = 1252;
- //Static00.position.right = 1256;
- Static00.move(this.position.right-Static00.position.width-20,Static00.position.top);
-
- /*btn_expansion.position.left = 1240;
- btn_expansion.position.right = 1256;
-
- btn_default.position.left = 1240;
- btn_default.position.right = 1256;*/
- btn_default.move(Static00.position.right-btn_default.position.width,btn_default.position.top);
- btn_expansion.move(Static00.position.right-btn_expansion.position.width,btn_expansion.position.top);
-
- btn_expansion.visible = true;
- btn_default.visible = false;
- //////////////////////////////////////////////////
-
- /////////////////처방 DIV 사이즈 조절/////////////
- grp_prcp.position.width = this.position.right - 30;
- //////////////////////////////////////////////////
- }
- }
- /********************************************************************************************************************************************
- * Argument :
- * Description : 선택한 처방 전달사항 표시
- ********************************************************************************************************************************************/
- function lf_setPrcpDelivefactCellClick(obj:Grid, e:GridClickEventInfo) {
- if( e.cell >= 0 ) {
- var nCurRow = ds_grid_prcplist.rowposition;
- var sPrcpdelivefact = ds_grid_prcplist.getColumn(nCurRow, "prcpdelivefact");
- var sNursdelivefact = ds_grid_prcplist.getColumn(nCurRow, "nursdelivefact");
- var sSuppdeptdelivefact = ds_grid_prcplist.getColumn(nCurRow, "suppdeptdelivefact");
-
-
- grp_prcp.grp_prcp_bottom.switch_delivefact.case_dr.txt_prcpdelivefact.value = sPrcpdelivefact;
- grp_prcp.grp_prcp_bottom.switch_delivefact.case_nr.txt_nursdelivefact.value = sNursdelivefact;
- grp_prcp.grp_prcp_bottom.switch_delivefact.case_supp.txt_suppdeptdelivefact.value = sSuppdeptdelivefact;
- }
-
- var sRemyn = ds_grid_prcplist.getColumn(ds_grid_prcplist.rowposition, "remyn");
- if(sRemyn == "Y"){
- if(grp_prcp.grp_prcp_bottom.switch_delivefact.case_dr.text != "■ 전달 ") {
- grp_prcp.grp_prcp_bottom.btn_prcpdelivefact.move(grp_prcp.grp_prcp_bottom.btn_prcpdelivefact.position.left + 6, grp_prcp.grp_prcp_bottom.btn_prcpdelivefact.position.top);
- grp_prcp.grp_prcp_bottom.switch_delivefact.case_dr.text = "■ 전달 ";
- }
- } else {
- if(grp_prcp.grp_prcp_bottom.switch_delivefact.case_dr.text != "전달 ") {
- grp_prcp.grp_prcp_bottom.btn_prcpdelivefact.move(grp_prcp.grp_prcp_bottom.btn_prcpdelivefact.position.left - 6, grp_prcp.grp_prcp_bottom.btn_prcpdelivefact.position.top);
- grp_prcp.grp_prcp_bottom.switch_delivefact.case_dr.text = "전달 ";
- }
- }
- }
- /**
- * @desc : 경구약 투약일수 일괄 변경
- */
- function lf_setDrugPrcpdayno(sDayno,objflag){
- if(utlf_isNull(sDayno) || sDayno == "0") {
- return ;
- }
- var sPrcpclscd = "";
- var sPrcpstatcd = "";
- var sStatus = "";
- var sSNodeList = null;
- if(objflag == "child"){
- for(var i = 0 ; i < opener.ds_grid_prcplist.rowcount ; i++) {
- sPrcpclscd = opener.ds_grid_prcplist.getColumn(i, "prcpclscd");
- sPrcpstatcd = opener.ds_grid_prcplist.getColumn(i, "tempcol1");
- sStatus = opener.ds_grid_prcplist.getColumn(i, "status");
- if(utlf_isNull(sPrcpstatcd)) {
- sPrcpstatcd = "000";
- }
- if(sPrcpclscd == "A2" && sPrcpstatcd == "000" && sStatus != "D" ) {
- opener.ds_grid_prcplist.setColumn(i, "prcpdayno", sDayno);
- if(sStatus != "I" && sStatus != "U") {
- opener.ds_grid_prcplist.setColumn(i, "status", "U");
- }
- }
- }
- opener.ds_init_data.setColumn(0, "initprcpdayno", sDayno);
- }else{
- for(var i = 0 ; i < ds_grid_prcplist.rowcount ; i++) {
- sPrcpclscd = ds_grid_prcplist.getColumn(i, "prcpclscd");
- sPrcpstatcd = ds_grid_prcplist.getColumn(i, "tempcol1");
- sStatus = ds_grid_prcplist.getColumn(i, "status");
- if(utlf_isNull(sPrcpstatcd)) {
- sPrcpstatcd = "000";
- }
- if(sPrcpclscd == "A2" && sPrcpstatcd == "000" && sStatus != "D" ) {
- ds_grid_prcplist.setColumn(i, "prcpdayno", sDayno);
- if(sStatus != "I" && sStatus != "U") {
- ds_grid_prcplist.setColumn(i, "status", "U");
- }
- }
- }
- ds_init_data.setColumn(0, "initprcpdayno", sDayno);
- }
- }
- /****************************************************************************************
- * Components : dataGrid
- * Components ID : ds_data_prcplist
- * Event : oncolumnchanged
- * Argument :
- * Description : 처방상세 - 이중유형 체크
- ****************************************************************************************/
- function lf_setAnamneFlagOnColumnChanged(e, oPamDs, objPrcpDs ){
- if(e.columnid != "anamneflag"){
- return;
- }
-
- var sPrcpgenrflag = oPamDs.getColumn(0, "ioflag");
- var sAnamneflag = objPrcpDs.getColumn(0, "anamneflag");
- if(sPrcpgenrflag == "I" || sPrcpgenrflag == "D"){
- if(sAnamneflag == "Y"){ //기왕증이 Y로 처리된 경우에만 보조유형선택 팝업 open
- var sPid = oPamDs.getColumn(0, "pid");
- var sIndd = oPamDs.getColumn(0, "indd");
-
-
- dsf_createDsRow("ds_temp_req",
- [{col:"pid", val:sPid}
- ,{col:"indd", val:sIndd}]);
-
- var objParam = new Object();
- objParam.id = "TRMMO15701";
- objParam.service = "prcpmngtapp.PatPrcpSrchMngt";
- objParam.method = "reqGetPatSupKind";
- objParam.inds = "req=ds_temp_req";
- objParam.outds ="ds_temp_patsupkind=patsupkind";
- objParam.callback = "cbf_TRMMO15701";
- tranf_submit(objParam);
- var objDs = this.removeChild("ds_temp_req");
- delete objDs;
- objDs = null;
-
- if(!utlf_isNull(ds_temp_patsupkind)) {
- if(ds_temp_patsupkind.rowcount > 0){
-
- var nXpt = system.clientToScreenX(grd_prcplist, 0);
- var nYpt = system.clientToScreenY(grd_prcplist, 0);
- var oRtnVal = frmf_modal("SPMMO15700", "SPMMO15700", null, false, null, nXpt,nYpt, null, null, "title=true");
-
- var nSubCretNo = oRtnVal.nSubCretNo
- objPrcpDs.setColumn(0, "subcretno", nSubCretNo);
- }
- }
- }else{ //기왕증이 N로 처리된 경우에는 subcretno 0로 처리
- objPrcpDs.setColumn(0, "subcretno", "0");
- }
- }
- }
- function cbf_TRMMO15701(strSvcID, nErrorCode, strErrorMsg){
- //에러 처리
- if(nErrorCode != 0){
- sysf_messageBox ("임상시험 보험유형을 가져오는데 실패했습니다.", "C");
- return -1;
- }
- }
- /* 컨설트 화면 오픈 함수 */
- function lf_openCnst(sSendflag) {
- var sCnststatflag = "all";
- if(sSendflag == "S"){ //의뢰의 경우
- sSendflag = "pidreq";//환자별 의뢰한 건
- }else{
- sSendflag = "userrecv";//해당의사가 의뢰받은 건
- }
-
- var objArg = new Object();
-
- objArg.plgv_paramyn = "Y";
- objArg.plgv_condflag = sSendflag;
- objArg.plgv_cnststatflag = sCnststatflag;
- objArg.plgv_orddeptcd = sysf_getUserInfo("dutplcecd");
- objArg.plgv_orddrid = sysf_getUserId();
- objArg.plgv_userdept = "doctor";
-
- var sIoflag = ds_data_paminfo.getColumn(0, "ioflag");
- if(sIoflag == "I" || sIoflag == "D" || sIoflag == "E"){ //입원
- frmf_modal("SMMMR05100", "SMMMR05100", objArg, 10, 10, null, null, null, null, null, null, null, "M"); // 병동 컨설트 화면
-
- }
- else if(patflag == "O" || patflag == "S"){ //외래
- frmf_modal("SMMMR05110", "SMMMR05110", objArg, 10, 10, null, null, null, null, null, null, null, "M"); // 외래 컨설트 화면
-
- }
- }
- /**
- * @desc : 처방 이동 (위로 or 아래로 버튼을 통한 이동)
- * @param : btnFlag 버튼구분(top or bottom)
- * @return : void
- * @authur : 전지은 2009.11.18
- * @---------------------------------------------------
- */
- function lf_movePrcpList ( btnFlag ) {
- var selectedRows = grd_prcplist.selectedRows;
- var frstRow = 0;
- if( btnFlag == "top" ) frstRow = grd_prcplist.selectedRow(0);
- else if( btnFlag == "bottom" ) frstRow = grd_prcplist.selectedRow(selectedRows - 1);
- var allRows = grd_prcplist.rows - 2; //caption, search row
- var addChkRow = 0;
- //var cnt = 0;
- var chngYN = 0; //선택된 row인지 체크
- var rowNum = 0;
- var chkNum = 0; //위, 아래 row의 mset여부에 따라 달라지는 +/- row
- var moveCnt = 0;
- var iRow = 0;
- var addNum = 0; //추가해야할 num
- //var pmFlag = 0; //rowNum + - 여부 : 0 or else
- var selInclprcpno = "";
- var chkInclprcpno = "";
- //var inclprcpnoExistYN = "N";
- var inclprcpnoCVS = "";
- var inclprcpnoItem = "";
- var printRow = new Array();
- var printRow2 = new Array();
- var selRows = new Array();
- if( !(selectedRows > 0) ) return;
- model.makeNode("/root/tmp_moveprcp");
- for(var i=selectedRows-1; i>=0; i--){
- if(model.getValue("/root/main/prcp/prcplist["+ grd_prcplist.selectedrow(i) +"]/inclprcpno") > "0" && model.getValue("/root/main/prcp/prcplist["+ grd_prcplist.selectedrow(i) +"]/prcpsetcd") == "-")
- inclprcpnoCVS = inclprcpnoCVS + model.getValue("/root/main/prcp/prcplist["+ grd_prcplist.selectedrow(i) +"]/inclprcpno") + "|";
- }
- inclprcpnoItem = inclprcpnoCVS.split("|");
- //전체 row를 보면서 rowSeq를 설정해 줌 , rowseq순으로 /root/tmp_moveprcp => /root/main/prcp 로 이동
- if( btnFlag == "top" ){
- for( var i=grd_prcplist.rows-1; i>0; i-- ){
- iRow = i;
- chkNum = 0;
- chngYN = 0;
- addNum = 0;
- //pmFlag = 0;
- if( iRow > 1 ){
- chkInclprcpno = model.getValue("/root/main/prcp/prcplist["+ iRow +"]/inclprcpno");
- if( inclprcpnoItem.length-1 > 0 ){
- for(var k=0; k<inclprcpnoItem.length-1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- chngYN = 1;
- }
- }
- }
- if( chngYN == 0 && grd_prcplist.isselected(iRow) == true && chkInclprcpno == "0" ) chngYN = 1;
- if( chngYN == 1 ){ //선택된 row이면(선택된모코드의 자코드도 포함)
- addChkRow = iRow - 1;
- selInclprcpno = "";
- if( addChkRow > 0 && addChkRow < grd_prcplist.rows ){
- for(var j=addChkRow; j>=1; j--){
- addYN = "N";
- chkInclprcpno = model.getValue("/root/main/prcp/prcplist["+ j +"]/inclprcpno");
- if( inclprcpnoItem.length-1 > 0 ){
- for(var k=0; k<inclprcpnoItem.length-1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- //addNum++;
- addYN = "Y";
- }
- }
- }
- if( addYN != "Y" && grd_prcplist.isselected(j) == true && chkInclprcpno == "0" ){
- //addNum++;
- addYN = "Y";
- }
- if( addYN != "Y" ){
- if( chkInclprcpno != "0" ){ // && chkInclprcpno != inclprcpnoItem[k]
- if( isNull(selInclprcpno) ) selInclprcpno = model.getValue("/root/main/prcp/prcplist["+ j +"]/inclprcpno");
- if( !isNull(selInclprcpno) && selInclprcpno == chkInclprcpno && isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- else{
- if( printRow.length <= 0 ){
- if( isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- break;
- }
- }
- }
- }
- }
- }
- if( chngYN > 0 ){
- rowNum = i - printRow.length;
- moveCnt++;
- selRows[selRows.length] = rowNum;
- //임시처방은 순서변경 시 수정모드로 상태를 세팅해줌
- if( model.getValue ( prcpNode + "[" + i + "]/status") == "-") model.setValue ( prcpNode + "[" + i + "]/status", "U" );
- }else{
- if( printRow.length > 0 ){
- for( var p=0; p<printRow.length; p++ ){
- if( printRow[p] == i ) addNum = moveCnt;
- }
- }
- rowNum = i + addNum;
- if( printRow.length == 0 || (printRow.length > 0 && i == printRow[printRow.length-1]) ){
- moveCnt = 0;
- printRow = new Array();
- }
- }
- //검색 row는 rowseq 변동 없음
- if( model.getValue(prcpNode + "["+ i +"]/status") == "S" ) rowNum = i;
- model.makeValue(prcpNode + "[" + i + "]/rowseq", rowNum);
- printRow2[i-1] = rowNum;
- }
- }
- else{
- for( var i=1; i<grd_prcplist.rows; i++ ){
- iRow = i;
- chkNum = 0;
- chngYN = 0;
- addNum = 0;
- //pmFlag = 0;
- if( iRow < grd_prcplist.rows ){
- chkInclprcpno = model.getValue("/root/main/prcp/prcplist["+ iRow +"]/inclprcpno");
- if( inclprcpnoItem.length-1 > 0 ){
- for(var k=0; k<inclprcpnoItem.length-1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- chngYN = 1;
- }
- }
- }
- if( chngYN == 0 && grd_prcplist.isselected(iRow) == true && chkInclprcpno == "0" ) chngYN = 1;
- if( chngYN == 1 ){ //선택된 row이면(선택된모코드의 자코드도 포함)
- addChkRow = iRow + 1;
- selInclprcpno = "";
- if( addChkRow > 0 && addChkRow < grd_prcplist.rows ){
- for(var j=addChkRow; j<=allRows; j++){
- addYN = "N";
- chkInclprcpno = model.getValue("/root/main/prcp/prcplist["+ j +"]/inclprcpno");
- if( inclprcpnoItem.length-1 > 0 ){
- for(var k=0; k<inclprcpnoItem.length-1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- //addNum++;
- addYN = "Y";
- }
- }
- }
- if( addYN != "Y" && grd_prcplist.isselected(j) == true && chkInclprcpno == "0" ){
- //addNum++;
- addYN = "Y";
- }
- if( addYN != "Y" ){
- if( chkInclprcpno != "0" ){ // && chkInclprcpno != inclprcpnoItem[k]
- if( isNull(selInclprcpno) ) selInclprcpno = model.getValue("/root/main/prcp/prcplist["+ j +"]/inclprcpno");
- if( !isNull(selInclprcpno) && selInclprcpno == chkInclprcpno && isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- else{
- if( printRow.length <= 0 ){
- if( isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- break;
- }
- }
- }
- }
- }
- }
- if( chngYN > 0 ){
- rowNum = i + printRow.length;
- moveCnt++;
- selRows[selRows.length] = rowNum;
- //임시처방은 순서변경 시 수정모드로 상태를 세팅해줌
- if( model.getValue(prcpNode + "[" + i + "]/status") == "-") model.setValue ( prcpNode + "[" + i + "]/status", "U" );
- }else{
- if( printRow.length > 0 ){
- for( var p=0; p<printRow.length; p++ ){
- if( printRow[p] == i ) addNum = moveCnt;
- }
- }
- rowNum = i - addNum;
- if( printRow.length == 0 || (printRow.length > 0 && i == printRow[printRow.length-1]) ){
- moveCnt = 0;
- printRow = new Array();
- }
- }
- //검색 row는 rowseq 변동 없음
- if( model.getValue(prcpNode + "["+ i +"]/status") == "S" ) rowNum = i;
- model.makeValue(prcpNode + "[" + i + "]/rowseq", rowNum);
- printRow2[i-1] = rowNum;
- }
- }
- //alert( printRow2 );
- copyNodeListType ( "/root/tmp_moveprcp", "/root/main/prcp/prcplist" , "replace", model, model);
- //처방 인스턴스로 이동 후 refresh
- model.removeNodeset(prcpNode);
- for( var i=1; i<grd_prcplist.rows; i++ ){
- copyNodeListType ( "/root/main/prcp", "/root/tmp_moveprcp/prcplist[rowseq='" + i + "']" , "after", model, model);
- model.removenode(prcpNode + "[" + i + "]/rowseq");
- }
- model.removeNodeset("/root/tmp_moveprcp/prcplist");
- grd_prcplist.rebuild();
- //grd_prcplist.refresh();
- model.recalculate();
- fPrcpColor();
- //이동된 row를 select 처리함
- if( selRows.length > 0 ){
- for(var i=0; i<selRows.length; i++){
- grd_prcplist.AddListSelect(selRows[i]);
- }
- }
- }
- // function lf_createEssDs() {
- //
- // for(var i = 0 ; i < lgds_arrEssentialDsList.length ; i++) {
- // var sDatasetNm = lgds_arrEssentialDsList[i];
- // if(utlf_isNull(this.objects[sDatasetNm])) {
- // var objDs = new Dataset(sDatasetNm);
- // this.addChild(sDatasetNm, objDs);
- // objDs.name = sDatasetNm;
- // }
- // }
- // }
- /**
- * @desc : 하드코드 리스트에 해당 파라미터의 코드 값이 존재 하는지 여부를 체크 한다.
- * @param : sHardCdNo : 하드코드 번호
- * sCheckCode : 체크 할 하드코드
- * lf_ContainsHardCD("339", "LIR112");
- * @return : true : 값이 존재 함.
- false : 값이 존재하지 않음.
- * @author : 엄영만 2012.11.26
- * 변환 OK
- * @---------------------------------------------------
- */
- function lf_ContainsHardCD(sHardCdNo, sCheckCode) {
- var bRtn = false; // 반환값
- //var sChekPath = "/root/temp/mmo001/fcontainshardcd"; // 체크할 임시 노드 경로
- dsf_createDs("ds_chekPath"); //체크용 DS 생성
-
- try {
- //model.removeNodeset(sChekPath);
- lf_getHardCDList("N", sHardCdNo, null, ds_chekPath);
- if(!utlf_isNull(ds_chekPath.getColumn(ds_chekPath.findRow("hardcd",sCheckCode),"hardcd"))) { //if(!isNull(model.getValue(sChekPath + "/hardcd[hardcd='"+sCheckCode+"']/hardcd"))) {
- bRtn = true;
- } else {
- bRtn = false;
- }
- } catch(err) {
- sysf_messageBox ( "lf_ContainsHardCD() 실행 중 오류가 발생 하였습니다. sHardCdNo:" + sHardCdNo + " sCheckCode:"+ sCheckCode, "E" );
- } finally {
- //model.removeNodeset(sChekPath);
- dsf_deleteDs("ds_chekPath"); //체크용 DS 삭제
- }
-
- return bRtn;
- }
- /**
- * @desc : 공통 상세보기
- * @param : flag: 상세보기를 호출하는 화면 구분
- * @return : void
- * @authur : 마정민 2007. 6. 12
- * @---------------------------------------------------
- */
- function fIvwDetlVwCom ( grdObj ) {
- var grdLeft = 382;
- var minGrdLeft = 898;
- var grdnm = ds_init.getColumn(0, "grdnm" );
- var oGrid = this.components[grdnm];
-
- // 속도 향상을 위해 이벤트 끔
- oGrid.enableevent = false;
- oGrid.enableredraw = false;
-
- oOpener.div_all.grd_prcplist.enableevent = false;
- oOpener.div_all.grd_prcplist.enableredraw = false;
-
- oOpener.div_all.Splitter00.enableevent = false;
- oOpener.div_all.Splitter00.enableredraw = false;
-
- oOpener.div_all.Tab_prcp.enableevent = false;
- oOpener.div_all.Tab_prcp.enableredraw = false;
- if ( ds_init.getColumn(0, "detlvw") == "p") {
- if (oOpener.ds_patflag.getColumn(0, "prcpgenrflag") != "O" && !utlf_isNull(oOpener.ds_patflag.getColumn(0, "prcpgenrflag"))){
- oOpener.div_all.grd_prcplist.setFormatColProperty(3, "size", 0);
- }
- if (typeof(oOpener.div_all.grd_prcplist) != "undefined") {
- oOpener.div_all.grd_prcplist.setFormatColProperty(4, "size", 0);
- oOpener.div_all.Splitter00.position.x = minGrdLeft;
- }
-
- ds_init.setColumn(0, "detlvw", "m");
- oOpener.ds_init.setColumn(0, "detlivw", "m");
-
- if(!utlf_isNull(oGrid)) {
- if ( grdObj == "bf" ) {
- oGrid.setFormatColProperty(oGrid.getBindCellIndex("body", "tempcol6"), "size", ds_init.getColumn(0, "tempcol6exwd"));
- oGrid.setFormatColProperty(oGrid.getBindCellIndex("body", "tempcol7"), "size", ds_init.getColumn(0, "tempcol7exwd"));
-
- //20081031 마정민 수정 전처방에 지정일을 추가하면서 상세보기시 word 추가. word일때는 아래와 같이
- oGrid.extendsizetype = "row";
- oGrid.autosizingtype = "row";
- } else if(grdObj == "prom") {
- oGrid.setFormatColProperty(oGrid.getBindCellIndex("body", "prcpdelivefact"), "size", ds_init.getColumn(0, "prcpdelivefactexwd"));
- }
- }
- } else {
- if (oOpener.ds_patflag.getColumn(0, "prcpgenrflag") != "O" && !utlf_isNull(oOpener.ds_patflag.getColumn(0, "prcpgenrflag"))){
- oOpener.div_all.grd_prcplist.setFormatColProperty(3, "size", 55);
- }
- if (typeof(oOpener.div_all.grd_prcplist) != "undefined") {
- oOpener.div_all.grd_prcplist.setFormatColProperty(4, "size", 80);
- oOpener.div_all.Splitter00.position.x = grdLeft;
- }
-
- ds_init.setColumn(0, "detlvw", "p");
- oOpener.ds_init.setColumn(0, "detlivw", "p");
- if(!utlf_isNull(oGrid)) {
- if ( grdObj == "bf" ) {
- oGrid.setFormatColProperty(oGrid.getBindCellIndex("body", "tempcol6"), "size", ds_init.getColumn(0, "tempcol6wd"));
- oGrid.setFormatColProperty(oGrid.getBindCellIndex("body", "tempcol7"), "size", ds_init.getColumn(0, "tempcol7wd"));
- //20081031 마정민 수정 전처방에 지정일을 추가하면서 상세보기시 word 추가. none일때는 autoResize = false;
- oGrid.extendsizetype = "none";
- oGrid.autosizingtype = "none";
- } else if(grdObj == "prom") {
- oGrid.setFormatColProperty(oGrid.getBindCellIndex("body", "prcpdelivefact"), "size", ds_init.getColumn(0, "prcpdelivefactwd"));
- }
- }
- }
-
- // 속도 향상을 위해 꺼놨던 이벤트 다시 켬
- oGrid.enableevent = true;
- oGrid.enableredraw = true;
-
- oOpener.div_all.grd_prcplist.enableevent = true;
- oOpener.div_all.grd_prcplist.enableredraw = true;
-
- oOpener.div_all.Splitter00.enableevent = true;
- oOpener.div_all.Splitter00.enableredraw = true;
-
- oOpener.div_all.Tab_prcp.enableevent = true;
- oOpener.div_all.Tab_prcp.enableredraw = true;
-
- //CP일 경우, viewer안의 컨트롤 height 사이즈를 모두 조정해야 함 (2008.08.28 JJE)
- //전처방 상세보기 모드일 경우 타 버튼 클릭시 전처방 축소시 오류 발생으로 조건 추가(2008.10.21 JJE)
- if ( oOpener.ds_root.getColumn(0, "cp" ) == "Y" && grdObj != "bf" ) {
- oOpener.fResizeControls();
- }
- }
- /**
- * @desc : 인증 암호화 전 데이터 생성
- * @param : sFlag: 인증정보 구분 ("1":처방정보, "2":진단정보)
- : sRegpath : 접수정보 인스턴스노드 패스
- : sSrcPath : 정보 인스턴스노드 패스
- * @return : void
- * @authur : 엄영만 2013. 05. 29
- */
- function lf_getSignBfConts (sFlag, sRegpath, sSrcPath) {
- var sRtn = "";
- var sRegConts = ""; // 환자 등록정보
- var sSrcConts = ""; // 처방및 진단 암호화전 데이터
-
- var regNodeList = this.objects[sRegpath];
- var srcNodeList = this.objects[sSrcPath];
- if ( !regNodeList.rowcount > 0 || !srcNodeList.rowcount > 0) { return sRtn; }
-
- var sOrdType = regNodeList.getColumn(0, "ioflag");
-
- sRegConts = "$환자진료정보";
- sRegConts = sRegConts + "@등록번호:" + regNodeList.getColumn(0, "pid");
- sRegConts = sRegConts + "@이름:" + regNodeList.getColumn(0, "hngnm");
- sRegConts = sRegConts + "@성별/나이:" + regNodeList.getColumn(0, "sex") + "/" + regNodeList.getColumn(0, "age");
- sRegConts = sRegConts + "@진료과:" + regNodeList.getColumn(0, "orddeptnm") + "(" + regNodeList.getColumn(0, "orddeptcd") + ")";
-
- if ("O" == sOrdType || "S" == sOrdType) { // 외래
- sRegConts = sRegConts + "@진료의:" + regNodeList.getColumn(0, "orddrnm") + "(" + regNodeList.getColumn(0, "orddrid") + ")";
- sRegConts = sRegConts + "@진료일자:" + regNodeList.getColumn(0, "orddd").toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일");
- } else { // 입원
- sRegConts = sRegConts + "@진료의:" + regNodeList.getColumn(0, "orddrnm") + "(" + regNodeList.getColumn(0, "medispclid") + ")";
- sRegConts = sRegConts + "@입원일자:" + regNodeList.getColumn(0, "indd").toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일");
- }
- switch (sFlag) {
- case "1": // 처방정보
- var sStatus = "";
- var sPrcpflag = "";
- var sPrcpclscd = "";
- var sPrcpdd = "";
- sSrcConts = "$환자처방정보";
- for(var i = 0; i < srcNodeList.rowcount; i++) {
- sStatus = srcNodeList.getColumn(i, "status");
- sPrcpflag = srcNodeList.getColumn(i, "prcpflag");
- sPrcpclscd = srcNodeList.getColumn(i, "prcpclscd");
- sPrcpdd = lf_getDsValue(srcNodeList, i, "prcppkspec").substring(0,8);
-
- // 20100210 한재상 수정 - 사망환자 사망등록이후 처방시 처방일자를 사망일자로 변경
- if ("I" == sOrdType || "E" == sOrdType || "D" == sOrdType) {
- if ("I" == sStatus || "-" == sStatus || "U" == sStatus) {
- var sDethdd = regNodeList.getColumn(0, "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" == srcNodeList.getColumn(i, "prcphistcd")) { sSrcConts = sSrcConts + "@처리구분:후인증"; }
- else if ("D" == srcNodeList.getColumn(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 + "@처방코드:" + srcNodeList.getColumn(i, "prcpcd");
- sSrcConts = sSrcConts + "@처방명:" + srcNodeList.getColumn(i, "prcpnm");
- sSrcConts = sSrcConts + "@처방내역:" + srcNodeList.getColumn(i, "prcpqty") + " * #" + srcNodeList.getColumn(i, "prcptims") + " * " + srcNodeList.getColumn(i, "prcpdayno");
-
- if ("1" == sPrcpflag && "A" == sPrcpclscd.substring(0,1)) { // 복용방법, 비율처방
- sSrcConts = sSrcConts + "@복용방법:" + srcNodeList.getColumn(i, "drugmthdspccdnm") + "(" + srcNodeList.getColumn(i, "drugmthdspccd") + ")";
- if ( "-" != srcNodeList.getColumn(i, "drugrateqty")) {
- sSrcConts = sSrcConts + "@투여비율적용:" + srcNodeList.getColumn(i, "drugrateqty").replaceAll("\\|", ",");
- }
- }
-
- if ("1" == sPrcpflag && ( "B" == sPrcpclscd.substring(0,1) || "D2" == sPrcpclscd)) { // 진단검사, 병리 검체명
- sSrcConts = sSrcConts + "@검체:" + srcNodeList.getColumn(i, "drugmthdspccdnm") + "(" + srcNodeList.getColumn(i, "drugmthdspccd") + ")";
- }
- sSrcConts = sSrcConts + "@전달사항:" + srcNodeList.getColumn(i, "prcpdelivefact");
-
- if ("1" == sPrcpflag && "C2" == sPrcpclscd) { // 임상소견
- sSrcConts = sSrcConts + "@임상소견:" + srcNodeList.getColumn(i, "clinccmtcnts")
- }
- if ("I" == sStatus || "-" == sStatus || "U" == sStatus) {
- sSrcConts = sSrcConts + "@등록일시:" + (new Date()).getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@등록자:" + sysf_getUserInfo("usernm") + "(" + sysf_getUserInfo("userid") + ")";
- } else {
- sSrcConts = sSrcConts + "@수정일시:" + (new Date()).getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@수정자:" + sysf_getUserInfo("usernm") + "(" + sysf_getUserInfo("userid") + ")";
- }
- }
- break;
-
- case "2": // 진단정보
- var sStatus = "";
- var sDiagKindcd = "";
- var sDiagKindcdFlag = "";
- var sDiagHistCd = "";
-
- sSrcConts = "$환자진단정보";
- for(var i = 0; i < srcNodeList.rowcount; i++) {
- sStatus = srcNodeList.getColumn(i, "status");
- sDiagKindcd = srcNodeList.getColumn(i, "diagkindcd");
- sDiagKindcdFlag = srcNodeList.getColumn(i, "diagkindcdflag");
- sDiagHistCd = srcNodeList.getColumn(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 + "@진단코드:" + srcNodeList.getColumn(i, "diagcd");
- sSrcConts = sSrcConts + "@진단영문명:" + srcNodeList.getColumn(i, "diagengnm");
- sSrcConts = sSrcConts + "@진단한글명:" + srcNodeList.getColumn(i, "diaghngnm");
-
- if ("I" == sStatus || "T" == sStatus || ("U" == sStatus && "T" == sDiagHistCd)) {
- sSrcConts = sSrcConts + "@등록일시:" + (new Date()).getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@등록자:" + sysf_getUserInfo("usernm") + "(" + sysf_getUserInfo("userid") + ")";
- } else {
- sSrcConts = sSrcConts + "@수정일시:" + (new Date()).getDateFormat("YYYY년 MM월 DD일 hh시 mm분 ss초");
- sSrcConts = sSrcConts + "@수정자:" + sysf_getUserInfo("usernm") + "(" + sysf_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(utlf_isNull(sType)) { if (0 == sType ) sType = sType.toString(); else sType = "-"; }
- if(utlf_isNull(sItem01)) { if (0 == sItem01) sItem01 = sItem01.toString(); else sItem01 = "-"; }
- if(utlf_isNull(sItem02)) { if (0 == sItem02) sItem02 = sItem02.toString(); else sItem02 = "-"; }
- if(utlf_isNull(sItem03)) { if (0 == sItem03) sItem03 = sItem03.toString(); else sItem03 = "-"; }
- if(utlf_isNull(sItem04)) { if (0 == sItem04) sItem04 = sItem04.toString(); else sItem04 = "-"; }
- if(utlf_isNull(sItem05)) { if (0 == sItem05) sItem05 = sItem05.toString(); else sItem05 = "-"; }
- if(utlf_isNull(sItem06)) { if (0 == sItem06) sItem06 = sItem06.toString(); else sItem06 = "-"; }
- if(utlf_isNull(sItem07)) { if (0 == sItem07) sItem07 = sItem07.toString(); else sItem07 = "-"; }
- if(utlf_isNull(sItem08)) { if (0 == sItem08) sItem08 = sItem08.toString(); else sItem08 = "-"; }
- if(utlf_isNull(sItem09)) { if (0 == sItem09) sItem09 = sItem09.toString(); else sItem09 = "-"; }
- if(utlf_isNull(sItem10)) { if (0 == sItem10) sItem10 = sItem10.toString(); else sItem10 = "-"; }
- if(utlf_isNull(sItem11)) { if (0 == sItem11) sItem11 = sItem11.toString(); else sItem11 = "-"; }
- if(utlf_isNull(sItem12)) { if (0 == sItem12) sItem12 = sItem12.toString(); else sItem12 = "-"; }
- if(utlf_isNull(sItem13)) { if (0 == sItem13) sItem13 = sItem13.toString(); else sItem13 = "-"; }
- if(utlf_isNull(sItem14)) { if (0 == sItem14) sItem14 = sItem14.toString(); else sItem14 = "-"; }
- if(utlf_isNull(sItem15)) { if (0 == sItem15) sItem15 = sItem15.toString(); else sItem15 = "-"; }
- if(utlf_isNull(sItem16)) { if (0 == sItem16) sItem16 = sItem16.toString(); else sItem16 = "-"; }
- if(utlf_isNull(sItem17)) { if (0 == sItem17) sItem17 = sItem17.toString(); else sItem17 = "-"; }
- if(utlf_isNull(sItem18)) { if (0 == sItem18) sItem18 = sItem18.toString(); else sItem18 = "-"; }
- if(utlf_isNull(sItem19)) { if (0 == sItem19) sItem19 = sItem19.toString(); else sItem19 = "-"; }
- if(utlf_isNull(sItem20)) { if (0 == sItem20) sItem20 = sItem20.toString(); else sItem20 = "-"; }
-
- var sRef = dsf_createDsRow("ds_monitoringlog_reqdata", [{col:"type", type:"string", size:256, val:sType},
- {col:"item01", type:"string", size:256, val:sItem01},
- {col:"item02", type:"string", size:256, val:sItem02},
- {col:"item03", type:"string", size:256, val:sItem03},
- {col:"item04", type:"string", size:256, val:sItem04},
- {col:"item05", type:"string", size:256, val:sItem05},
- {col:"item06", type:"string", size:256, val:sItem06},
- {col:"item07", type:"string", size:256, val:sItem07},
- {col:"item08", type:"string", size:256, val:sItem08},
- {col:"item09", type:"string", size:256, val:sItem09},
- {col:"item10", type:"string", size:256, val:sItem10},
- {col:"item11", type:"string", size:256, val:sItem11},
- {col:"item12", type:"string", size:256, val:sItem12},
- {col:"item13", type:"string", size:256, val:sItem13},
- {col:"item14", type:"string", size:256, val:sItem14},
- {col:"item15", type:"string", size:256, val:sItem15},
- {col:"item16", type:"string", size:256, val:sItem16},
- {col:"item17", type:"string", size:256, val:sItem17},
- {col:"item18", type:"string", size:256, val:sItem18},
- {col:"item19", type:"string", size:256, val:sItem19},
- {col:"item20", type:"string", size:256, val:sItem20}]);
-
- var oParam = {};
- oParam.id = "TXMMO00120";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqSetMonitoringLog";
- oParam.inds = "req=" + sRef;
- oParam.async = false;
- tranf_submit(oParam);
- } catch(err) {
- sysf_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 (utlf_isNull(str)) { str = ""; }
- this.buffer.push(str);
- return this;
- }
- StringBuffer.prototype.toString = function(str) {
- if (utlf_isNull(str)) { str = ""; }
- return this.buffer.join(str);
- }
- function lf_setDatasetEvent(oDsSrc, oDsDest, enable) {
- oDsSrc.enableevent = enable;
- oDsDest.enableevent = enable;
- }]]></Script>
|