12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644 |
- <?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 ocrcalcscorcd = ""; // 2016.01.26 OCR print
- var ocrpayflagcd = ""; // 2018.11.05 OCR 급여구분
- var arErrorCode = new HashArray();
- // 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 {
- if(this.getOwnerFrame().form.name == "SMADB01100") {
- lf_addPrcp_Web(sObjFlag, strSrc, strDest, sMultiFlag, sCheckNM, sCheckFlag, grdObj, sPrcpNmClearFlag, 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; // 복사 갯수
- // 허만호 추가 START
- var oOpener = this.getOwnerFrame().form
- if( oOpener.name == "SMMMP00800" ) var sScreenID = oOpener.name; // CP화면에서 호출
- else var sScreenID = frmf_getScreenID(); // 호출 화면 아이디
- // 허만호 추가 END
-
- 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)
- var sPRNSetInfo = "";
- if(ds_src.getColumn(0, "prnprcpflag") == "Y"){
- sPRNSetInfo = ((ds_src.getColumn(0, "drprcpetc6")).split("▩"))[0]; //20190419 이돈희 : PRN 설정 정보
- }
- // 16.01.06 추가
- if( sCopyInptFlag == "05" ) { // cp 적용이면
- if( oOpener.ds_tempPrcpsrch.rowcount > 0 ) {
- ds_src.copyData(oOpener.ds_tempPrcpsrch);
- }
- }
- if ( multiFlag == "Y" ){
- var sb = new StringBuffer();
- for( var i = 0; i < ds_src.rowcount; i++ ) {
- if ( ds_src.getColumn(i, checkNM) == checkFlag || ( utlf_isNull(ds_src.getColumn(i, checkNM)) && utlf_isNull(checkFlag) ) ) { // 허만호, ( utlf_isNull(ds_src.getColumn(i, checkNM)) && utlf_isNull(checkFlag) ) 추가
- sRowKey = ds_src.getColumn(i, "rowkey"); // ds_src.getColumn(i, checkNM)가 undefined 이고 checkFlag가 빈값일 때 조건 추가
- 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);
-
- // cp 추가
- if( oTrgtObj.name == "SMMMP00800" ) { // TF는 CP에 ds_main_prcplist가 없으면 처방에 ds_main_prcplist를 보는데 XP는 에러남
- oTrgtObj = grp_biz.grp_prcp.imp_prcp; // 처방화면의 ds_main_prcplist
- }
-
- var ds_dest = oTrgtObj.objects[strDest];
-
- // 처리 속도 향상을 위해 잠시 데이타셋 이벤트 끔
- // -----------------------------------------------------------------------------------------
- lf_setDatasetEvent(ds_src, ds_dest, false);
- oTrgtObj.lf_addPrcpDetl_App(strDest, sCopyInptFlag, sScreenID, sCopykeys, sCopyIoFlag, sPRNSetInfo);
- 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_prcplist");
-
- // 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);
- }
- }
-
- if(!utlf_isNull(oDatasetDest)){
- 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"); //투여속도
- 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 = this.objects["ds_M0046"] == null ? '' : ds_M0046.lookup("cdid", rehbprcpcurepartcd, "cdnm");
- }
- } else if ( prcpclscd == "H2" || prcpclscd == "K2" ) { // 15.05.19 현행화
- opansflagcd = ds_src.getColumn(nRow, "opansflagcd" );
- if ( opansflagcd != "-" && !utlf_isNull(opansflagcd)) {
- opansflagcd = this.objects["ds_M0007"] == null ? '' : 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 fasttrackflag = dsf_getColumnNullToEmpty(ds_src, nRow, "fasttrackflag"); //FastTrackFlag
- var drprcpetc11 = dsf_getColumnNullToEmpty(ds_src, nRow, "drprcpetc11"); //제2시술
- var drprcpetc12 = dsf_getColumnNullToEmpty(ds_src, nRow, "drprcpetc12"); //F/U
- var prcpmixno = ds_src.getColumn(nRow, "prcpmixno"); //처방 믹스번호
- var cnt = 0;
- if ( erprcpflag == "Y") prcpnmbf = prcpnmbf + "[응급] ";
- if ( fasttrackflag == "Y") prcpnmbf = prcpnmbf + "[FT] ";
- if ( clincstdyflag == "Y") prcpnmbf = prcpnmbf + "[임상] ";
- if ( precureprcpflag == "Y") prcpnmbf = prcpnmbf + "[선] ";
- if ( drprcpetc11 == "Y") prcpnmbf = prcpnmbf + "[제2시술] ";
- if ( drprcpetc12 == "Y") prcpnmbf = prcpnmbf + "[F/U] ";
-
- if ( prcpclscd == "A2" || prcpclscd == "A4" ) {
- //약
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- if ( selfprcpflag == "Y") prcpnmbf = prcpnmbf + "[home] ";
- if ( selfdrugflag == "Y") prcpnmbf = prcpnmbf + "[self] ";
-
- prcpnm = prcpnmbf + prcpnm;
- if ( powdflag == "Y") prcpnm = prcpnm + "[powder] ";
- } else if ( prcpclscd == "A6" ) {
- //주사
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- if ( selfprcpflag == "Y") prcpnmbf = prcpnmbf + "[home] ";
- if ( selfdrugflag == "Y") prcpnmbf = prcpnmbf + "[self] "; // 주사일때도 셀프 표시 2013.07.10 엄영만
- //if ( !utlf_isNull(prcpmixno) && prcpmixno != "-" && prcpmixno != "0") prcpnmbf = prcpnmbf + "(" + prcpmixno + ") "; // Mix 번호 표시 2018.04.17 엄영만
-
- prcpnm = prcpnmbf + prcpnm;
-
- if ( !utlf_isNull(drugspd) && drugspd != "0" ) {
- var drugspdunitflag = ds_src.getColumn(nRow, "drugspdunitflag"); //투여속도 단위 M0040
- if ( drugspdunitflag != "-" && !utlf_isNull(drugspdunitflag)) {
- drugspdunitflag = this.objects["ds_M0040"] == null ? '' : ds_M0040.lookup("cdid", drugspdunitflag, "cdnm");
- } else {
- drugspdunitflag = "";
- }
-
- prcpnm = prcpnm + " [" + drugspd + drugspdunitflag + "] ";
- }
- } else if ( prcpclscd == "D2" ) {
- //주사
- if ( prnprcpflag == "Y") prcpnmbf = prcpnmbf + "[prn] ";
- prcpnm = prcpnmbf + prcpnm;
- } else if ( prcpclscd == "B4" ) {
- //수혈 (혈액수혈)
- if ( prepprcpflag == "Y") prcpnmbf = prcpnmbf + "[prep] ";
- // 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++;
- }
- // 15.05.19 현행화 START
- //if ( rehbprcpenddd != "" && rehbprcpenddd != "-" ) { // 요청번호 20141118006 재활처방 마감일자 표시하지 않기로 함. 2014.12.26 엄영만
- // 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++;
- //}
- // 15.05.19 현행화 END
- 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, sDsPrcp )
- {
- var ds_temp_prcplist = utlf_isNull(sDsPrcp) ? this.objects["ds_main_prcplist"] : this.objects[sDsPrcp];
-
- //2017.01.05 (약속)처방 복사시 그리드에 복사된 행 미표현 현상
- var bEvent = ds_temp_prcplist.enableevent;
- if( bEvent == false ){
- ds_temp_prcplist.enableevent = true;
- ds_temp_prcplist.enableevent = false;
- }
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt;
- var ypt;
-
- if(!utlf_isNull(sXpt) && !utlf_isNull(sYpt)) {
- xpt = system.clientToScreenX(this.getOwnerFrame(), 0) + sXpt;
- ypt = system.clientToScreenY(this.getOwnerFrame(), 0) + 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_temp_prcplist.getColumn(0, "prcpgenrflag" );
- prcpcd = ds_temp_prcplist.getColumn(0, "prcpcd" );
- prcpnm = ds_temp_prcplist.getColumn(0, "prcpnm" );
- prcpexecdeptcd = ds_temp_prcplist.getColumn(0, "prcpexecdeptcd" );
- prcpclscd = ds_temp_prcplist.getColumn(0, "prcpclscd" );
- drugmthdspccd = ds_temp_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_temp_prcplist.getColumn(currow, "prcpcd" );
- prcpnm = ds_temp_prcplist.getColumn(currow, "prcpnm" );
- prcpexecdeptcd = ds_temp_prcplist.getColumn(currow, "prcpexecdeptcd" );
- prcpclscd = ds_temp_prcplist.getColumn(currow, "prcpclscd" );
- drugmthdspccd = ds_temp_prcplist.getColumn(currow, "drugmthdspccd" );
- } else {
- ordtype = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpgenrflag" );
- prcpcd = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpcd" );
- prcpnm = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpnm" );
- prcpexecdeptcd = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpexecdeptcd" );
- prcpclscd = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpclscd" );
- drugmthdspccd = ds_temp_prcplist.getColumn(ds_temp_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 orddeptcd = "";
-
- var oTrgtObj = lf_getFormObject(mode);
- orddeptcd = oTrgtObj.ds_paminfo.getColumn(0, "orddeptcd");
- 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_prcpexecdeptcd" );
- frmf_clearParameter ( "SPMMB08600_orddeptcd" );
- frmf_clearParameter ( "SPMMB08600_orddrid" );
- 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_prcpexecdeptcd", prcpexecdeptcd);
- frmf_setParameter("SPMMB08600_prcpclscd", prcpclscd);
- frmf_setParameter("SPMMB08600_orddeptcd", orddeptcd);
- frmf_setParameter("SPMMB08600_orddrid", orddrid);
- 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_temp_prcplist.enableevent = false;
-
- if(useyn == "Y"){
- if ( mode == "pop" ) {
- if ( ds_temp_prcplist.getColumn(0, "tempcol24" ) == "Y" ) {
- ds_temp_prcplist.setColumn(0, "choiordflag", "Y" );
- ds_temp_prcplist.setColumn(0, "specdrid", userid );
- } else {
- ds_temp_prcplist.setColumn(0, "choiordflag", "N" );
- ds_temp_prcplist.setColumn(0, "specdrid", "-");
- }
- } else if ( mode == "auto" ) {
- if ( ds_temp_prcplist.getColumn(currow, "tempcol24" ) == "Y" ) {
- ds_temp_prcplist.setColumn(currow, "choiordflag", "Y" );
- ds_temp_prcplist.setColumn(currow, "specdrid", userid );
- } else {
- ds_temp_prcplist.setColumn(currow, "choiordflag", "N" );
- ds_temp_prcplist.setColumn(currow, "specdrid", "-");
- }
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- if ( ds_temp_prcplist.getColumn(selectedRows[i], "tempcol24") == "Y" ) {
- ds_temp_prcplist.setColumn(selectedRows[i], "choiordflag", "Y");
- ds_temp_prcplist.setColumn(selectedRows[i], "specdrid", userid);
- } else {
- ds_temp_prcplist.setColumn(selectedRows[i], "choiordflag", "N");
- ds_temp_prcplist.setColumn(selectedRows[i], "specdrid", "-");
- }
- }
- }
- } else {
- if ( mode == "pop" ) {
- ds_temp_prcplist.setColumn(0, "choiordflag", "N" );
- ds_temp_prcplist.setColumn(0, "specdrid", "-");
- } else if ( mode == "auto" ) {
- ds_temp_prcplist.setColumn(currow, "choiordflag", "N" );
- ds_temp_prcplist.setColumn(currow, "specdrid", "-");
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- ds_temp_prcplist.setColumn(selectedRows[i], "choiordflag", "N" );
- ds_temp_prcplist.setColumn(selectedRows[i], "specdrid", "-");
- }
- }
- }
-
- // 선택진료의사가 아닐 경우 는 기본값으로 셋팅한다.
- var ds_usercombo = emr_getOrderBaseInfo("usercombo");
- ds_usercombo.filter("");
- if (mode =="pop") {
- var chkChoiSpcldrid = ds_temp_prcplist.getColumn(0, "specdrid");
- var nFindRow = ds_usercombo.findRowExpr("refseq == 'A' && userid =='" + chkChoiSpcldrid + "'");
- if (nFindRow == -1) {
- ds_temp_prcplist.setColumn(0, "choiordflag", "N");
-
- // 현행화 rev.71108
- if (chkChoiSpcldrid == sysf_getUserInfo("userid")) {
- ds_temp_prcplist.setColumn(0, "specdrid", chkChoiSpcldrid);
- } else {
- ds_temp_prcplist.setColumn(0, "specdrid", "-");
- }
-
- }
- } else if (mode == "auto") {
- var chkChoiSpcldrid = ds_temp_prcplist.getColumn(currow, "specdrid");
- var nFindRow = ds_usercombo.findRowExpr("refseq == 'A' && userid =='" + chkChoiSpcldrid + "'"); //ds_usercombo.filter("refseq = 'A' && userid ='" + chkChoiSpcldrid + "'");
-
- if (nFindRow == -1) { // utlf_isNull(choiSpclDrid)
- ds_temp_prcplist.setColumn(currow, "choiordflag", "N" );
-
- // 현행화 rev.71108
- if(chkChoiSpcldrid == sysf_getUserInfo("userid")) {
- ds_temp_prcplist.setColumn(currow, "specdrid", chkChoiSpcldrid);
- } else {
- ds_temp_prcplist.setColumn(currow, "specdrid", "-");
- }
-
- }
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- var chkChoiSpcldrid = ds_temp_prcplist.getColumn(selectedRows[i], "specdrid");
- var nFindRow = ds_usercombo.findRowExpr("refseq == 'A' && userid =='" + chkChoiSpcldrid + "'");
-
- if (nFindRow == -1) {
- ds_temp_prcplist.setColumn(selectedRows[i], "choiordflag", "N" );
-
- // 현행화 rev.71108
- if(chkChoiSpcldrid == sysf_getUserInfo("userid")) {
- ds_temp_prcplist.setColumn(selectedRows[i], "specdrid", chkChoiSpcldrid);
- } else {
- ds_temp_prcplist.setColumn(selectedRows[i], "specdrid", "-");
- }
-
- }
- }
- }
-
- ds_temp_prcplist.enableevent = true;
- }
- /***************************************************************************************************
- * Function : lf_chgTestDr
- * Description : 검사의사 변경
- * Argument : sMode [String : ]
- * : nCurRow [Number : ]
- * return type :
- * Creator :
- * 변환OK
- ***************************************************************************************************/
- function lf_chgTestDr( mode, currow, sXpt, sYpt, sDsPrcp )
- {
- var ds_temp_prcplist = utlf_isNull(sDsPrcp) ? this.objects["ds_main_prcplist"] : this.objects[sDsPrcp];
-
- //2017.01.05 (약속)처방 복사시 그리드에 복사된 행 미표현 현상
- var bEvent = ds_temp_prcplist.enableevent;
- if( bEvent == false ){
- ds_temp_prcplist.enableevent = true;
- ds_temp_prcplist.enableevent = false;
- }
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt;
- var ypt;
-
- if(!utlf_isNull(sXpt) && !utlf_isNull(sYpt)) {
- xpt = system.clientToScreenX(this.getOwnerFrame(), 0) + sXpt;
- ypt = system.clientToScreenY(this.getOwnerFrame(), 0) + sYpt;
- } else {
- xpt = this.getOwnerFrame().position.x + 400;
- ypt = this.getOwnerFrame().position.y + 98;
- }
-
- var sIoFlag = "";
- var sPrcpClscd = "";
- var sPrcpCd = "";
- var sPrcpNm = "";
- var sTestOrdFlag = "";
- var sDrPrcpEtc13 = ""; // 검사부서(수익부서)
- var sDrPrcpEtc14 = ""; // 검사의사(수익의사)
-
- var sUseYn = "";
- var sUserId = "";
- var sUserNm = "";
- var sDeptCd = "";
- var sDeptNm = "";
- //default 선택진료과 설정
- if ( mode == "pop" ) {
- sIoFlag = ds_temp_prcplist.getColumn(0, "prcpgenrflag" );
- sPrcpClscd = ds_temp_prcplist.getColumn(0, "prcpclscd" );
- sPrcpCd = ds_temp_prcplist.getColumn(0, "prcpcd" );
- sPrcpNm = ds_temp_prcplist.getColumn(0, "prcpnm" );
- sTestOrdFlag = ds_temp_prcplist.getColumn(0, "testordflag" );
- sDrPrcpEtc13 = ds_temp_prcplist.getColumn(0, "drprcpetc13" ); // 검사부서(수익부서)
- sDrPrcpEtc14 = ds_temp_prcplist.getColumn(0, "drprcpetc14" ); // 검사의사(수익의사)
- } else if ( mode == "auto" ) {
- sIoFlag = ds_patflag.getColumn(0, "prcpgenrflag" ); //입력구분
- sPrcpClscd = ds_temp_prcplist.getColumn(currow, "prcpclscd" );
- sPrcpCd = ds_temp_prcplist.getColumn(currow, "prcpcd" );
- sPrcpNm = ds_temp_prcplist.getColumn(currow, "prcpnm" );
- sTestOrdFlag = ds_temp_prcplist.getColumn(currow, "testordflag" );
- sDrPrcpEtc13 = ds_temp_prcplist.getColumn(currow, "drprcpetc13" ); // 검사부서(수익부서)
- sDrPrcpEtc14 = ds_temp_prcplist.getColumn(currow, "drprcpetc14" ); // 검사의사(수익의사)
- } else {
- sIoFlag = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpgenrflag" );
- sPrcpClscd = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpclscd" );
- sPrcpCd = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpcd" );
- sPrcpNm = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "prcpnm" );
- sTestOrdFlag = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "testordflag" );
- sDrPrcpEtc13 = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "drprcpetc13" ); // 검사부서(수익부서)
- sDrPrcpEtc14 = ds_temp_prcplist.getColumn(ds_temp_prcplist.rowposition, "drprcpetc14" ); // 검사의사(수익의사)
- }
-
- if(utlf_isNull(sTestOrdFlag)) { // sTestOrdFlag 검사의사 자동 팝업 여부 (Y:자동팝업, S:선택팝업, N:팝업하지 않음)
- sTestOrdFlag = "N";
- }
-
- if (sTestOrdFlag == "Y" || sTestOrdFlag == "S") { // 검사의사 지정 가능 처방
- frmf_clearParameter("SPMMB08800_useyn");
- frmf_clearParameter("SPMMB08800_userid");
- frmf_clearParameter("SPMMB08800_usernm");
- frmf_clearParameter("SPMMB08800_deptcd");
- frmf_clearParameter("SPMMB08800_deptnm");
- frmf_clearParameter("SPMMB08800_prcpclscd");
- frmf_clearParameter("SPMMB08800_prcpcd");
- frmf_clearParameter("SPMMB08800_prcpnm");
- frmf_clearParameter("SPMMB08800_drprcpetc13"); // 검사부서(수익부서)
- frmf_clearParameter("SPMMB08800_drprcpetc14"); // 검사의사(수익의사)
-
- frmf_setParameter("SPMMB08800_ioflag", sIoFlag);
- frmf_setParameter("SPMMB08800_prcpclscd", sPrcpClscd);
- frmf_setParameter("SPMMB08800_prcpcd", sPrcpCd);
- frmf_setParameter("SPMMB08800_prcpnm", sPrcpNm);
- frmf_setParameter("SPMMB08800_drprcpetc13", sDrPrcpEtc13); // 검사부서(수익부서)
- frmf_setParameter("SPMMB08800_drprcpetc14", sDrPrcpEtc14); // 검사의사(수익의사)
-
- frmf_modal("SPMMB08800", "SPMMB08800", null, false, mon, xpt, ypt, null, null, null, null, null, "P");
-
- sUseYn = frmf_getParameter("SPMMB08800_useyn");
-
- ds_temp_prcplist.enableevent = false;
-
- if(sUseYn == "Y"){
- sUserId = frmf_getParameter("SPMMB08800_userid");
- sUserNm = frmf_getParameter("SPMMB08800_usernm");
- sDeptCd = frmf_getParameter("SPMMB08800_deptcd");
- sDeptNm = frmf_getParameter("SPMMB08800_deptnm");
-
- if ( mode == "pop" ) {
- ds_temp_prcplist.setColumn(0, "drprcpetc13", sDeptCd);
- ds_temp_prcplist.setColumn(0, "drprcpetc13nm", sDeptNm);
- ds_temp_prcplist.setColumn(0, "drprcpetc14", sUserId);
- ds_temp_prcplist.setColumn(0, "drprcpetc14nm", sUserNm);
- } else if ( mode == "auto" ) {
- ds_temp_prcplist.setColumn(currow, "drprcpetc13", sDeptCd);
- ds_temp_prcplist.setColumn(currow, "drprcpetc13nm", sDeptNm);
- ds_temp_prcplist.setColumn(currow, "drprcpetc14", sUserId);
- ds_temp_prcplist.setColumn(currow, "drprcpetc14nm", sUserNm);
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc13", sDeptCd);
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc13nm", sDeptNm);
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc14", sUserId);
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc14nm", sUserNm);
- }
- }
- } else {
- if ( mode == "pop" ) {
- ds_temp_prcplist.setColumn(0, "drprcpetc13", "-");
- ds_temp_prcplist.setColumn(0, "drprcpetc13nm", "");
- ds_temp_prcplist.setColumn(0, "drprcpetc14", "-");
- ds_temp_prcplist.setColumn(0, "drprcpetc14nm", "");
- } else if ( mode == "auto" ) {
- ds_temp_prcplist.setColumn(currow, "drprcpetc13", "-");
- ds_temp_prcplist.setColumn(currow, "drprcpetc13nm", "");
- ds_temp_prcplist.setColumn(currow, "drprcpetc14", "-");
- ds_temp_prcplist.setColumn(currow, "drprcpetc14nm", "");
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc13", "-");
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc13nm", "");
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc14", "-");
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc14nm", "");
- }
- }
- }
- } else { // 검사의사 지정 불가 처방
- if ( mode == "pop" ) {
- ds_temp_prcplist.setColumn(0, "drprcpetc13", "");
- ds_temp_prcplist.setColumn(0, "drprcpetc13nm", "");
- ds_temp_prcplist.setColumn(0, "drprcpetc14", "");
- ds_temp_prcplist.setColumn(0, "drprcpetc14nm", "");
- } else if ( mode == "auto" ) {
- ds_temp_prcplist.setColumn(currow, "drprcpetc13", "");
- ds_temp_prcplist.setColumn(currow, "drprcpetc13nm", "");
- ds_temp_prcplist.setColumn(currow, "drprcpetc14", "");
- ds_temp_prcplist.setColumn(currow, "drprcpetc14nm", "");
- } else {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- for (var i = 0; i < selectedRows.length; i++) {
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc13", "");
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc13nm", "");
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc14", "");
- ds_temp_prcplist.setColumn(selectedRows[i], "drprcpetc14nm", "");
- }
- }
- }
-
- ds_temp_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;
- }
- }
-
- //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")) {
- fBaseMthd(nRow, objSrcDs); // lf_baseMthd -> fBaseMthd
- }
- }
- }
- // 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);
- fBaseMthd(nRow, objSrcDs); // lf_baseMthd -> fBaseMthd
- }
- 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 oTrgtObj = lf_getFormObject("pop");
-
- var prcpgenrflag;
- var clincstdyflag;
- var pid;
- var indd;
- var subcretno;
-
- if (prcpinptflag == "0" ) { // 상세팝업에서...
- prcpgenrflag = oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag");
- clincstdyflag = ctrlnm.getColumn(0, "clincstdyflag");
-
- if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
- if(clincstdyflag == "Y"){ //임상연구가 Y로 처리된 경우에만 보조유형세팅
- pid = oTrgtObj.ds_paminfo.getColumn(0, "pid");
- indd = oTrgtObj.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" && oTrgtObj.ds_paminfo.getColumn(0, "insukind") != "71") {
- ctrlnm.setColumn(0, "clincstdyflag", "N");
- sysf_messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- }
- }
- } else if (prcpinptflag == "1") { // 일괄입력에서...
- var prcpgenrflag = oTrgtObj.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 = oTrgtObj.ds_paminfo.getColumn(0, "pid");
- var indd = oTrgtObj.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" && oTrgtObj.ds_paminfo.getColumn(0, "insukind") != "71") {
- sysf_messageBox ("보험유형이 임상시험이 아닙니다. 보험유형을", "I007");
- return -1;
- }
- }
- } else if (prcpinptflag == "2") { // 전처방, 약속처방에서, 임상시험 부유형 자동세팅, cHc, 2009-07-21
- var prcpgenrflag = oTrgtObj.ds_patflag.getColumn(0, "prcpgenrflag");
- var clincstdyflag = ctrlnm;
-
- if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E") {
- if(clincstdyflag == "Y"){ //임상연구가 Y로 처리된 경우에만 보조유형세팅
-
- var pid = oTrgtObj.ds_paminfo.getColumn(0, "pid");
- var indd = oTrgtObj.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로 처리
- oTrgtObj.oDsSrc.setColumn(sendRow, "subcretno", "0");
- }
- } else { //외래, 건진의 경우는 subcretno 0로 처리
- oDsSrc.setColumn(sendRow, "subcretno", "0");
- if ( clincstdyflag == "Y" && oTrgtObj.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 ); // "SPMMB10100", "220", "150" 팝업창 뜨나 모니터에 보이지 않는 위치에 떠서 수정 2015.07.31
-
- 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;
- }
-
- 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++) {
- reqparm = ""; // 선택일자 초기화
- 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);
- frmf_setParameter ("paramcalflag", "multi");
- frmf_setParameter ("defaultday", prcpdd);
- 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( k = 0; k < actorddArray.length; k++) { //내용 붙히기
- actordd = actorddArray[k];
- contPrcpSpec = contPrcpSpec + "^" + status + "|" + actordd + "|" + execprcpstatcd + "|" + prcpdd + "|" + execprcpno;
- if ( eval(enddd) < eval(actordd) ) {
- enddd = actordd;
- }
- }
- if ( actorddArray.length == 1 && actordd == prcpdd ) { // 날짜가 1 이고 처방일과 같을 경우는 - 처리
- 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사용구분
- : isOnlyDrug : 약품만 조회 유무
- * @return : void
- * @authur : 마정민 2007. 6. 21
- * 변환OK
- */
- function lf_prcpSrchCom ( prcpnm, prcpdd, insukind, trnm, ioflag, mthdnm, isHangul, containflag, isOnlyDrug) {
- 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 ); //검색구분
-
- //20191220 이돈희 : 약품만 검색할 수 있도록 옵션 추가
- if(!utlf_isNull(isOnlyDrug)){
- if(utlf_isNull(ds_send.getColumnInfo("isOnlyDrug"))){
- ds_send.addColumn("isOnlyDrug", "string");
- }
- ds_send.setColumn(0, "isOnlyDrug", isOnlyDrug);
- }
-
- 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, sDelyn)
- {
- if (utlf_isNull(sTrnm)) sTrnm = "TRMMO00100";
- if (utlf_isNull(sPrcpauthflag)) sPrcpauthflag = "0";
- if (utlf_isNull(sDelyn)) sDelyn = "N"; // 삭제 처방 검색 여부 2017.12.12 엄영만
-
- var oTrgtObj;
- // oOpener 선언 되지 않은 곳은 모두 this를 사용하도록 함(여기는 flag가 없어 lf_getFormObject() 함수 적용하지 않음)
- try {
- oTrgtObj = oOpener; // 현재 화면이 전처방인경우
- } catch(e) {
- oTrgtObj = this; // 현재 화면이 미수행처방DC인 경우
- }
- var curprcpdd = oTrgtObj.objects["ds_init"] == null ? "" : lf_getDsValue(oTrgtObj.ds_init, 0, "prcpdd");
- if (utlf_isNull(curprcpdd)) {
- curprcpdd = this.objects["ds_init"] == null ? "" : 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:"cond15", type:"string", size:256, val:sDelyn}, // 삭제 처방 검색 여부
- {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가 없다면 자동 생성한다.
- utlf_addLog("전회처방 검색 시작, lf_bfPrcpSrchCom()");
- 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);
-
- utlf_addLog("전회처방 검색 종료, lf_bfPrcpSrchCom()");
- 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 {
- // 사전심사 임시저장인경우 제외 2015.09.08 엄영만
- if(ds_main_prcplist.getColumn(i, "prcphistcd") == "T" && ds_main_prcplist.getColumn(i, "drprcpetc9") != "-") { // model.getValue("/root/main/prcp/prcplist[" + i + "]/prcphistcd" ) == "T" && model.getValue("/root/main/prcp/prcplist[" + i + "]/drprcpetc9" ) != "-"
- continue;
- }
-
- 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, "▩", "▦" );
- //20191015 이돈희 : 4주기 상급종합병원 지정 평가를 위한 경증 정보 추가
- var lightcase = lf_getArrayData ( diagInfo, i, 10, "▩", "▦" );
- 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" ) {
- //하겠다고 하면 주상병으로 고침
- 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");
- }
- }
- }
- }
- }
- }
- }
- }
- 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", "-");
- //20191015 이돈희 : 4주기 상급종합병원 지정 평가를 위한 경증 정보 추가
- ds_src.setColumn(srchRow, "lightcase", lightcase);
-
- 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(nSendRow, "drugmastspec" ) + "^";
- var prcpcd = ds_src.getColumn(nSendRow, "prcpcd" ) ;
- var prcpnm = ds_src.getColumn(nSendRow, "prcpnm" ) ;
- var msg = "[" + prcpcd + ":" + prcpnm + "]";
- if( ds_src.getColumn(nSendRow, "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(nSendRow, "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(nSendRow);
- 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(nSendRow, "tempcol19" ,resncnts);
- }
- return true ;
- }
- /**
- * @desc : 화면타이틀을 설정한다
- * @ : 형식 : 기관명 + 화면명 + 로그인과 + 로그인한 사용자 + 로그인일시
- * @param :
- * @return :
- * @author : 김영학 2008-11-19
- * @---------------------------------------------------
- */
- function lf_InitWndTitle(sTitleText) {
- //if (!utlf_isNull(sysf_getUserInfos())) {
- try {
- var scrnTitle = sysf_getUserInfo("systeminstnm") + " " ;
- scrnTitle += sTitleText + " " ;
- scrnTitle += sysf_getUserInfo("dutplcenm") + " ";
- scrnTitle += sysf_getUserName() + " ";
- scrnTitle += sysf_getTitleLoginDate() + " ";
- this.titletext = scrnTitle;
- } catch(e) {}
- //}
- }
- /***************************************************************************************************
- * 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";
- }
- // div 같은 곳에서 실행될때를 위해 분기
- if( utlf_isNull(opener) || opener.objects["ds_data_paminfo"] == null ) {
- var oOpener = this.getOwnerFrame().form;
- var prcpgenrflag = lf_getDsValue(oOpener.ds_paminfo, 0, "ioflag");
- if (utlf_isNull(prcpgenrflag)) {
- prcpgenrflag = "-";
- }
-
- //진료과 추가
- var orddeptcd = lf_getDsValue(oOpener.ds_paminfo, 0, "orddeptcd");
- if (utlf_isNull(orddeptcd)) {
- orddeptcd = "*";
- }
- } else {
- 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, "cond1", sCond1); //처방명, 수가코드
- oRef.setColumn(0, "cond2", prcpgenrflag); // 외래, 입원, 응급 구분
- oRef.setColumn(0, "cond3", sCond3); // 처방일
- oRef.setColumn(0, "cond4", sCond4); // 환자보험유형
- oRef.setColumn(0, "cond5", sCond5); //진단검사 그룹처방일 때 검체코드정보
- oRef.setColumn(0, "cond6", sCond6); //진단검사 검사분류유형
- 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";
- 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"){
- if( opener != null && opener.objects["ds_initsrch_selspecordyn"] != null )
- sSelSpeCordYN = opener.ds_initsrch_selspecordyn.lookup("trgtcd","Y","trgtcd");
- }else
- sSelSpeCordYN = ds_init_selspecordyn.lookup("hardcd","Y","hardcd"); //"/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_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);
- fBaseMthd("oldprcp"); // lf_baseMthd -> fBaseMthd
- }
- }
- 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 tmp_opener = opener;
- if( opener.name == "ivw_detail" ){
- tmp_opener = opener.parent.parent;
- }
- var objPrcpDs = this.objects[objPrcpGrd.binddataset];
- var prcpdd = lf_getDsValue(tmp_opener.ds_paminfo, 0, "orddd");
- var contPrcpSpec = objPrcpDs.getColumn(0, "contprcpspec");
- var contPrcpSpecArray1;
- var contPrcpSpecArray2;
- var contPrcpDd = "";
- var value = '';
- try{
- value = tmp_opener.ds_patflag.getColumn(0, "prcpgenrflag");
- }
- catch(err){
- }
-
- if (value != "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, sPRNSetInfo) {
- 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;
- }
-
- //20190419 이돈희 PRN 설정 정보 없는 경우 기본 셋팅
- if(utlf_isNull(sPRNSetInfo)){
- sPRNSetInfo = "-";
- }
-
-
- //20191125 이돈희 : 처방 추가시에 "화면에서 체크해야 할 항목 체크" 수행 여부
- var bAddPrcpPop_AppCheck = true;
-
- //복사 화면정보(copyFlagInfo)
- dsf_createDs("ds_copyflag");
- ds_copyflag.addColumn("subprcp", "string");
- ds_copyflag.addColumn("instcd", "string");
- ds_copyflag.addColumn("copyinptflag", "string");
- ds_copyflag.addColumn("pageinptflag", "string");
- ds_copyflag.addColumn("copykeys", "string");
- ds_copyflag.addColumn("copyioflag", "string");
- ds_copyflag.addColumn("screenid", "string");
- ds_copyflag.addColumn("usge", "string");
- ds_copyflag.addColumn("prcpgenrflag", "string");
- ds_copyflag.addColumn("prcpdd", "string");
- ds_copyflag.addColumn("prcpmixno", "string");
- ds_copyflag.addColumn("addprcp", "string");
- ds_copyflag.addColumn("admininfo", "string");
- ds_copyflag.addColumn("cp", "string");
- ds_copyflag.addColumn("cpgappno", "string");
- ds_copyflag.addColumn("cpgstartstepno", "string"); // cp시작 스텝번호 2017.12.20 엄영만 추가
- ds_copyflag.addColumn("issdept", "string");
- ds_copyflag.addColumn("anstrecno", "string");
- ds_copyflag.addColumn("anstfromdt", "string");
- ds_copyflag.addColumn("ansttm", "string");
- ds_copyflag.addColumn("ansttodt", "string");
- ds_copyflag.addColumn("opansflagcd", "string");
- ds_copyflag.addColumn("paramyn", "string");
- ds_copyflag.addColumn("anst_drid", "string");
- ds_copyflag.addColumn("anst_specordflag", "string");
- ds_copyflag.addColumn("anst_anstdrnm", "string");
- ds_copyflag.addColumn("erresn", "string");
- ds_copyflag.addColumn("hosinprcpresncd", "string");
- ds_copyflag.addColumn("hsctlnkno", "string");
- ds_copyflag.addColumn("inclprcpno", "string");
- ds_copyflag.addColumn("prcpauthflag", "string");
- ds_copyflag.addColumn("prcpfromdd", "string");
- ds_copyflag.addColumn("prcpkindcd", "string");
- ds_copyflag.addColumn("prcptodd", "string");
- ds_copyflag.addColumn("bfprcpviewflag", "string");
- ds_copyflag.addColumn("bfinoutsetflag", "string");
- ds_copyflag.addColumn("subjsubcretno", "string");
- ds_copyflag.addColumn("opcnfmdd", "string");
- ds_copyflag.addColumn("opflagcd", "string");
- ds_copyflag.addColumn("opfromtmcd", "string");
- ds_copyflag.addColumn("oprsrvno", "string");
- ds_copyflag.addColumn("prcpdd_prcpresn", "string");
- ds_copyflag.addColumn("prcptime_prcpresn", "string");
- ds_copyflag.addColumn("resncnt_prcpresn", "string");
-
- ds_copyflag.addColumn("drprcpetc6", "string");
-
- 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적용번호
- ds_copyflag.setColumn(0, "cpgstartstepno", ds_main_steppath_info.getColumn(ds_main_steppath_info.findRow("startendflag","S"),"stepno")); // cp시작 스텝번호 2017.12.20 엄영만 추가
- } else {
- ds_copyflag.setColumn(0, "cpgappno", "0");
- ds_copyflag.setColumn(0, "cpgstartstepno", "1");
- }
-
- 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, "bfinoutsetflag", ds_initsrch_envinfo.lookup("qestcd", '075', "answcnt")); // 전처방 복사시 약품 원내/원외 개인설정 2016.06.28 엄영만
-
- 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"));
- }
-
- ds_copyflag.setColumn(0, "drprcpetc6", sPRNSetInfo);
- 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:-,fasttrackflag:N,drprcpetc17:N");
-
- // 리턴 된 화면 설정값 셋팅 , 15.10.05, 빠떼리처방 두개 연속으로 검색하면 구분이 안되서 수정
- dsf_makeValue(ds_init, "inclprcpno", "string", ds_copyflag_src.getColumn(0, "inclprcpno"));
- dsf_makeValue(ds_init, "prcpmixno", "string", ds_copyflag_src.getColumn(0, "prcpmixno"));
- dsf_makeValue(ds_init, "hsctlnkno", "string", 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];
- var nCurRow = ds_dest.rowposition;
- 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;
- }
- // 20190419 이돈희 : 1. PRN MIX용 수액의 경우 해당 처방 아래에 추가
- // 2. 원 처방에 MIX 번호 적용
- else if(sCopyInptFlag == "46" && !utlf_isNull(ds_copyflag.getColumn(0, "drprcpetc6")) && ds_copyflag.getColumn(0, "drprcpetc6") != "-" ){
- nSrchRow = nCurRow + i + 1;
- ds_dest.setColumn(nCurRow, "prcpmixno", ds_copyprcp_src.getColumn(i, "prcpmixno"));
- }
- //20191125 이돈희 : 복합 수술료와 연계된 일반 수술료 처방을 입력시 연계된 복합 수술료 처방으로 값 복사
- // : H2 : 수술처방 drprcpetc18 : 복합 수술료 처방 사유
- else if(ds_copyprcp_src.getColumn(0, "prcpclscd") == "H2" &&
- ds_dest.getColumn(nCurRow, "prcpclscd") == "H2" && !utlf_isNull(ds_dest.getColumn(nCurRow, "drprcpetc18"))){
-
- ds_copyprcp_src.addColumn("drprcpetc18", "string");
- ds_copyprcp_src.setColumn(i, "erprcpflag", ds_dest.getColumn(nCurRow, "erprcpflag"));
- ds_copyprcp_src.setColumn(i, "drprcpetc17", ds_dest.getColumn(nCurRow, "drprcpetc17"));
- ds_copyprcp_src.setColumn(i, "nigtprcpflag", ds_dest.getColumn(nCurRow, "nigtprcpflag"));
- ds_copyprcp_src.setColumn(i, "precureprcpflag", ds_dest.getColumn(nCurRow, "precureprcpflag"));
- ds_copyprcp_src.setColumn(i, "opansflagcd", ds_dest.getColumn(nCurRow, "opansflagcd"));
- ds_copyprcp_src.setColumn(i, "drprcpetc14nm", ds_dest.getColumn(nCurRow, "drprcpetc14nm"));
- ds_copyprcp_src.setColumn(i, "prcpexecdeptcd", ds_dest.getColumn(nCurRow, "prcpexecdeptcd"));
- ds_copyprcp_src.setColumn(i, "clincstdyflag", ds_dest.getColumn(nCurRow, "clincstdyflag"));
- ds_copyprcp_src.setColumn(i, "drgacptflag", ds_dest.getColumn(nCurRow, "drgacptflag"));
- ds_copyprcp_src.setColumn(i, "anamneflag", ds_dest.getColumn(nCurRow, "anamneflag"));
- ds_copyprcp_src.setColumn(i, "prcpdelivefact", ds_dest.getColumn(nCurRow, "prcpdelivefact"));
- ds_copyprcp_src.setColumn(i, "drprcpetc18", ds_dest.getColumn(nCurRow, "drprcpetc18"));
-
- //20191129 이돈희 : 단순행위 수술료 처방 삭제 메시지 필요없으므로 주석처리함(from 심사과 김순애과장)
- //if(sysf_messageBox("복잡행위 수술료 처방(" + ds_copyprcp_src.getColumn(i, "prcpcd") + ")이 추가되었습니다. " + "기존 처방("
- // + ds_dest.getColumn(nCurRow, "prcpcd") + ")은 삭제하시겠습니까?", "Q") == "6"){
- nSrchRow = nCurRow + i;
- ds_dest.deleteRow(nSrchRow);
- //} else {
- // nSrchRow = nCurRow + i + 1;
- //}
-
- bAddPrcpPop_AppCheck = false;
- }
- 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 );
-
- if("01" == sCopyInptFlag || "02" == sCopyInptFlag) { // 전처방 또는 약속처방일 경우
- var sOpt079 = ds_initsrch_envinfo.lookup("qestcd", '079', "answcnt"); // 품절약 복사 개인 설정 옵션 (001:대체약품의 기본 횟수(용법), 수량으로 설정, 002:기존약품의 횟수(용법), 수량, 일수로 설정)
- if(sOpt079 == "002" && !utlf_isNull(ds_dest.getColumn(nSrchRow, "prcpcd"))) { // 기존약품의 횟수(용법), 수량, 일수로 설정 이고 품절약을 선택한경우
- ds_dest.setColumn(nSrchRow, "drugmthdspccdnm", ds_copyprcp_src.getColumn(i, "drugmthdspccdnm"));
- ds_dest.setColumn(nSrchRow, "drugmthdspccd", ds_copyprcp_src.getColumn(i, "drugmthdspccd"));
- ds_dest.setColumn(nSrchRow, "prcpdayno", ds_copyprcp_src.getColumn(i, "prcpdayno"));
-
- bfDrugCalc("prcptims" , nSrchRow);
- ds_dest.setColumn(nSrchRow, "prcptims", ds_copyprcp_src.getColumn(i, "prcptims"));
- DrugCalc("prcptims" , nSrchRow);
-
- bfDrugCalc("drprcpetc8" , nSrchRow);
- ds_dest.setColumn(nSrchRow, "drprcpetc8", ds_copyprcp_src.getColumn(i, "drprcpetc8"));
- DrugCalc("drprcpetc8" , nSrchRow);
- } // End of 기존약품의 횟수(용법), 수량, 일수로 설정 이고 품절약을 선택한경우
- } // End of 전처방 또는 약속처방일 경우
- } 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);
-
- // 허만호, 컬럼추가 prcpdd
- var oOpener = this.getOwnerFrame().form;
- if( oOpener.name == "SMMMP00800" && ds_dest.getColumnInfo("prcpdd") == null) {
- ds_dest.addColumn("prcpdd", "string");
- }
- ds_dest.copyRow(nSrchRow, ds_copyprcp_src, i);
- if(bAddPrcpPop_AppCheck == true){
- addPrcpPop_App(nSrchRow, sUsge); // 화면에서 체크해야 할 항목 체크
- }
- //20191125 이돈희 문제 : 연계된 복잡 수술료를 자동으로 입력한 경우 상세창에서 입력된 설정 값들이 prcpnm에 반영이 안됨
- // 해결 : 일반 수술료와 연계된 복잡 수술료를 자동으로 입력시 bAddPrcpPop_AppCheck 는 false 이며, lf_makePrcpNm을 통하여 처방명 변경
- else {
- lf_makePrcpNm(strDest, nSrchRow)
- }
- }
- } // End of 복사 처방 건별 화면 복사
- // 투석원내처방사유처리
-
- // 15.11.05, 가정간호 처방이고, ds_init 에 hosinprcpresncd이면 "" 입력
- var usge = ds_root.getColumn(0, "usge");
- if( usge == "home" && ds_init.getColumn(0, "hosinprcpresncd") == undefined ) {
- ds_init.setColumn(0, "hosinprcpresncd", "");
- }
-
- 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_prcplist");
- // 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);
- oTrgtObj.reqSetMonitoringLog("addPrcpDetl", "WEB", oTrgtObj.frmf_getScreenID(), objFlag, prcpInptFlag); // 2017.12.20 사용여부를 체크 하기 위해 추가 엄영만
- //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 -> lf_prcpSrchCom 으로 변경 2015.07.29
- lf_prcpSrchCom ( bfprcpcd.substring( 1, bfprcpcd.length ), oTrgtObj.ds_init.getColumn(0, "prcpdd" ), oTrgtObj.ds_paminfo.getColumn(0, "insukind"), "TRMMO02101", "", "getOldPrcpCdChngInfo", "E" );
- } else {
- // fPrcpSrchCom -> lf_prcpSrchCom 으로 변경 2015.07.29
- lf_prcpSrchCom ( bfprcpcd, oTrgtObj.ds_init.getColumn(0, "prcpdd"), ds_paminfo.getColumn(0, "insukind"), "TRMMO02101", "", "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 = utlf_transNullToEmpty(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" ){
- sysf_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" || ds_src.getColumn(sendRow, "prcphistcd" ) == "L") {
- 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; //종속처방번호를 받아온다.
- }
- lf_prcpGroupSrch ( ds_prcpgroup_prcplist, 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_src, 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.setColumn(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" );
- }
-
- lf_prcpGroupSrch ( ds_prcpgroup_prcplist, 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);
-
- oTrgtObj.reqSetMonitoringLog("addPrcpSetValue", "WEB", oTrgtObj.frmf_getScreenID(), objFlag, prcpInptFlag); // 2017.12.20 사용여부를 체크 하기 위해 추가 엄영만
-
- 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 = utlf_transNullToEmpty(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 ); //처방종류
-
- if( ds_src.getColumnInfo("pampkspec") == null ) ds_src.addColumn("pampkspec", "string");
- if( ds_src.getColumnInfo("prcppkspec") == null ) ds_src.addColumn("prcppkspec", "string");
- //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{
- var sOldPamPkSpec = ds_src.getColumn(sendRow, "pampkspec");
- //trace(sOldPamPkSpec);
- if(utlf_isNull(sOldPamPkSpec) || sOldPamPkSpec.length < 30) { // 2017.10.16 엄영만 CP에서 처방의 변경 기능 안되는 오류 수정(기존 설정된 값이 있으면 그대로 적용)
- 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");
- }
- }
- }
-
- // 허만호 추가 START
- // var oOpener = this.getOwnerFrame().form;
- // if( oOpener.name == "SMMMP00800" ) {
- // dsf_createDs("ds_initsrch_prcpetccnts");
- // dsf_createDs("ds_initsrch_escopedirecprcpcd");
- // ds_initsrch_escopedirecprcpcd.copyData(oOpener.grp_biz.swt_formatt.incompletion_tab.ivw_invalprcp.ds_initsrch_escopedirecprcpcd); // 미완성처방 데이터셋
- // ds_initsrch_prcpetccnts.copyData(oOpener.grp_biz.swt_formatt.incompletion_tab.ivw_invalprcp.ds_initsrch_prcpetccnts); // 미완성처방 데이터셋
- // }
- // 허만호 추가 END
-
- //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 = utlf_transNullToEmpty(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로직이 뜨도록..
- //trace("sendRow : " + sendRow);
- 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"]) ? "" : utlf_transNullToEmpty(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), 급여불가 보조유형일 경우 디폴트 비급여 설정
- /*
- var sTempcol2 = utlf_transNullToEmpty(ds_src.getColumn(sendRow, "tempcol2"));
- if (sTempcol2.length > 2 && sTempcol2.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 = "";
- var sUserID = sysf_getUserInfo("userid");
- 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' || prcpInptFlag == '05') && 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"); // 가능 선택진료의
- }
-
- // 현행화, rev.71108
- // 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);
-
- // 현행화, rev.71108
- if (utlf_isSearchString(sAllSpcDrId, sOrdDrId) ){ // 가능선택의에 진료의가 포함 될 경우
- ds_src.setColumn(sendRow, "specdrid", sOrdDrId);
- } else if( (prcpInptFlag == '02' || prcpInptFlag == '05') && !utlf_isNull(sPreSpecDrId) && utlf_isSearchString(sAllSpcDrId, sPreSpecDrId)) { // 약속처방 선택의가 가능선택의일 경우 약속처방 선택의 설정
- ds_src.setColumn(sendRow, "specdrid", sPreSpecDrId);
- } else {
- switch(sTodaySpcDrId) {
- case "NO_DATA_FOUND": // 오늘 선택진료의사가 없는경우
- if ( sAllSpcDrId == "NO_DATA_FOUND" ) { // 가능한 선택의가 없을경우
- if ( (prcpInptFlag == '02' || prcpInptFlag == '05') && !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) && (sPrcpSpecDrId != sUserID) ) { // 진료의가 선택진료의와 같은경우 선택진료 가능여부 체크 하지 않도록 수정 2015.09.21 엄영만
- 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")
-
- // 현행화, rev.71108
- ds_usercombo.filter("refseq == 'A' && userid =='" + chkChoiSpcldrid + "'");
- var choiSpclDrid = ds_usercombo.getColumn(0, "userid");
- ds_usercombo.filter("");
-
- if ( utlf_isNull(choiSpclDrid)) {
- if(chkChoiSpcldrid == sUserID) {
- ds_src.setColumn(sendRow, "choiordflag", "N" ); // 현행화, rev.71373
- ds_src.setColumn(sendRow, "specdrid", chkChoiSpcldrid );
- } else {
- 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_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);
-
- // cp 추가
- if( oTrgtObj.name == "SMMMP00800" ) { // TF는 CP에 ds_main_prcplist가 없으면 처방에 ds_main_prcplist를 보는데 XP는 에러남
- oTrgtObj = grp_biz.grp_prcp.imp_prcp; // 처방화면의 ds_main_prcplist
- }
- if( oTrgtObj.name == "SMMMR04200" ) {
- oTrgtObj = sw_left.case_prcpmast;
- }
-
- 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" ){
- try {
- //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;
- }
- } catch(e) {
- sysf_catchTrace(e);
- }
- }
-
- // 항생제에서 데이타 추가 후 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);
- if( oTrgtObj.name == "SMMMR04200" ) {
- oTrgtObj.btn_editcell.click();
- }
- //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();
-
- enableevent = ds_main_prcplist.enableevent;
-
- var oTrgtObj = lf_getFormObject(flag);
- if (prcpNmClearFlag != "N") {
- if( oTrgtObj.name == "SMMMR04200" ) {
- if(enableevent)
- ds_main_prcplist.enableevent = false;
- }
- ds_main_prcplist.setColumn(curRow, "prcpnm", "");
- ds_main_prcplist.setColumn(curRow, "prcpcd", "");
- if( oTrgtObj.name == "SMMMR04200" ) {
- if(enableevent)
- ds_main_prcplist.enableevent = true;
- }
- }
-
-
- 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)
- try {
- if( !utlf_isNull(curSavePrcpFlag_SMMMO00110) && (curSavePrcpFlag_SMMMO00110 == "N" || curSavePrcpFlag_SMMMO00110 == "T") ){
- if(!enableevent)
- ds_main_prcplist.enableevent = false;
- return;
- }
- } catch(e) {
- sysf_catchTrace(e);
- }
- if (prtlprcpstatus_SMMMO00110 != "U" ) {
- div_all.grd_prcplist.showEditor(true);
- }
- } else {
- div_all.grd_prcplist.showEditor(true);
-
- if( oTrgtObj.name == "SMMMR04200" ) {
- oTrgtObj = sw_left.case_prcpmast;
- oTrgtObj.btn_editcell.click();
- }
- }
-
- 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; // 반환값
- dsf_createDs("ds_chekPath"); //체크용 DS 생성
-
- try {
- lf_getHardCDList("N", sHardCdNo, null, ds_chekPath);
- if(ds_chekPath.rowcount > 0) {
- if(!utlf_isNull(ds_chekPath.getColumn(ds_chekPath.findRow("hardcd",sCheckCode),"hardcd"))) {
- bRtn = true;
- }
- }
- } 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
- * 변환OK
- * @---------------------------------------------------
- */
- 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;
-
- if( oOpener.name == "SMMMP00800" ) {
- oOpener = import_prcp;
- }
- 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" ) {
- fResizeControls(); // 허만호, oOpener 삭제
- }
- }
- /**
- * @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());
- * @---------------------------------------------------
- */
- var StringBuffer = function() { 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;
- }
- /**
- * @desc : EMR부서콤보 조회
- * @
- * @param : ref - reference path
- * rsltref - result reference path
- * orddeptflag- 진료과구분
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function mmbfGetDeptCodeComboList(rsltref, orddeptflag, stnddd){
- if( !utlf_isNull(stnddd) && stnddd.length == 8) { // 기준일자를 입력하는경우 DB에서 신규로 조회 하도록 수정. 2014.04.03 엄영만
- dsf_createDsRow("ds_cond_deptCode", [{col:"orddeptflag", type:"string", size:256, val:orddeptflag},
- {col:"stnddd", type:"string", size:256, val:stnddd}]);
-
- var oParam = {};
- oParam.id = "TRMMB04101";
- oParam.service = "prcpbaseapp.EnvInfoMngt";
- oParam.method = "reqGetDeptComboList";
- oParam.inds = "req=ds_cond_deptCode";
- oParam.outds = rsltref+"=dept";
- oParam.async = false;
- tranf_submit(oParam);
- } else { // 기준일자가 없는경우 KNUH_20110208, 진료속도개선 수정, TRMMB04101 submit을 안하고 로그인시 가져온 데이터를 copy하는것으로 변경, 주희경
- var srcref = "";
- if ( orddeptflag == "A" || utlf_isNull(orddeptflag) ){
- srcref = "alldeptinfo";
- } else if ( orddeptflag == "C"){
- srcref = "centdeptinfo";
- } else if ( orddeptflag == "D"){
- srcref = "dscdeptinfo";
- } else if ( orddeptflag == "W"){
- srcref = "warddeptinfo";
- } else if ( orddeptflag == "O"){
- srcref = "otptdeptinfo";
- } else if ( orddeptflag == "I"){
- srcref = "inptdeptinfo";
- } else if ( orddeptflag == "T" ){
- srcref= "deptinfoinall";
- }
-
- var objOrderBasicInfoDs = emr_getOrderBaseInfo(srcref);
-
- if ( objOrderBasicInfoDs.rowcount > 0 ) { // 복사할 원본 데이터가 존재하면 복사
- this.objects[rsltref].assign(objOrderBasicInfoDs);
- } else { //KNUH_20110208, 주희경 복사할 데이터가 없을 시 (비정상 로딩) 강제 로그아웃
- dsf_createDsRow("ds_cond_deptCode", [{col:"orddeptflag", type:"string", size:256, val:orddeptflag}]);
-
- var oParam = {};
- oParam.id = "TRMMB04101";
- oParam.service = "prcpbaseapp.EnvInfoMngt";
- oParam.method = "reqGetDeptComboList";
- oParam.inds = "req=ds_cond_deptCode";
- oParam.outds = rsltref+"=dept";
- oParam.async = false;
- tranf_submit(oParam);
- }
- }
- }
- /**
- * @desc : 콤보박스에 원하는 instance node와 value를 설정
- * @
- * @param :
- * @event :
- * @return :
- * @---------------------------------------------------
- */
- function addComboInstance(combopath, nodename, nodeval, parentnode){
-
- if( this.objects[combopath+"_"+parentnode].rowcount == 0 ){
- return;
- }
- nodename = nodename.split("^");
- nodeval = nodeval.split("^");
- if(nodename.length != nodeval.length){
- return;
- }
-
- this.objects[combopath+"_"+parentnode].insertRow(0);
- this.objects[combopath+"_"+parentnode].setColumn(0, nodename[0], nodeval[0]);
- this.objects[combopath+"_"+parentnode].setColumn(0, nodename[1], nodeval[1]);
- }
- /****************************************************************************************
- * Argument :
- * Description : 환자메모 창 종료
- * return type :
- ****************************************************************************************/
- function lf_ClosePatMemo() {
-
- var curPatMemotObj = frmf_findPopup("SPMMR05600"); //활성화된 환자메모 화면 object
-
- if( !utlf_isNull(curPatMemotObj) && lf_mmbfGetUserEnvQuestValue("072") == "001" ){
- curPatMemotObj.close();
- }
- }
- /****************************************************************************************
- * Function : lf_RecPrnt
- * Description : 퇴원통지서 기록 출력
- * Argument :
- * retrun type :
- * Creator :
- ****************************************************************************************/
- function lf_RecPrnt(nFormrecseq){
-
- if( utlf_isNull(nFormrecseq) ){
- sysf_messageBox("작성된 기록이 존재하지 않습니다.");
- return;
- }
-
- // Step1. 기록 내용 조회
- dsf_createDsRow("ds_cond_recdatareq",
- [{col:"formrecseq", val:nFormrecseq}]);
- dsf_createDs("ds_data_formrec");
- dsf_createDs("ds_data_recitem");
-
- var objParam = new Object();
- objParam.id = "TRMMR01301";
- objParam.service = "medirecapp.ComnMediRec";
- objParam.method = "reqGetFormRecInfo";
- objParam.inds = "req=ds_cond_recdatareq";
- objParam.outds ="ds_data_formrec=formrec ds_data_recitem=recitem";
- objParam.async = false;
- objParam.progress = false;
- //objParam.callback = "cbf_TRMMR01301";
-
- tranf_submit(objParam);
-
- var objDOM = rptf_createDOM(); // DOM 객체 설정
- rptf_setNodeListToDOM(objDOM, "/root/main/recinfo/recitem", ds_data_recitem); // 데이터셋 1
-
- var objParam = new Object();
- objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
-
- //0900005261
- var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
- rptf_exeReportPreview30(["RFM1719126"],[objParam], option);
-
-
- dsf_deleteDs("ds_cond_recdatareq");
- dsf_deleteDs("ds_data_formrec");
- dsf_deleteDs("ds_data_recitem");
-
- }
- /**
- * @desc : 환자정보 조회
- * @param : paramFlag - 등록번호/환자명 구분(pid/hngnm)
- * : param - 등록번호/환자명
- : param2 - 외래/입원일자
- * : tblFlag - 테이블구분(환자기본/외래/입원, ptbs/otpt/inpt)
- * @return : void
- * @authur : 오지훈 2007. 6. 14
- */
- function reqPatInfo(paramFlag, tblFlag, param, param2){
- ds_send_reqdata.clearData();
- ds_send_reqdata.addRow();
-
- if(paramFlag == "pid"){ //등록번호 검색
- ds_send_reqdata.setColumn(0, "pid" , param);
- ds_send_reqdata.setColumn(0, "hngnm", "");
- }else if(paramFlag == "hngnm"){ //환자명 검색
- ds_send_reqdata.setColumn(0, "pid" , "");
- ds_send_reqdata.setColumn(0, "hngnm", param);
- }
- ds_send_reqdata.setColumn(0, "orddd" , param2);
- ds_send_reqdata.setColumn(0, "queryflag", tblFlag);
- ds_send_reqdata.setColumn(0, "srchflag" , paramFlag);
-
- var oParam = {};
- oParam.id = "TRMMO04105";
- oParam.service = "prcpmngtapp.EtcPrcpMngt";
- oParam.method = "reqGetPatNM";
- oParam.inds = "req=ds_send_reqdata";
- oParam.outds = "ds_init_patnm_patnm=patnm";
- oParam.async = false;
- //oParam.callback = "cf_TRMMO04105";
- tranf_submit(oParam);
-
- var Node = ds_init_patnm_patnm.getColumn(0, "hngnm");
- if( utlf_isNull(Node) && paramFlag == "pid" ){
- sysf_messageBox("등록번호 [" + param + "] 환자를 찾을 수 ", "I004");
- return false;
- }else if( utlf_isNull(Node) && paramFlag == "hngnm" ){
- sysf_messageBox("환자명 [" + param + "] 환자를 찾을 수 ", "I004");
- return false;
- }
- return true;
- }
- function fPrcpExecDeptSrch(flag) {
- var prcpcd = "";
-
- if( !utlf_isNull(this.objects["ds_main_prcp_prcplist"]) ){
- prcpcd = ds_main_prcp_prcplist.getColumn(0, "prcpcd" );
- }else{
- prcpcd = ds_main_prcplist.getColumn(0, "prcpcd" );
- }
-
- var prcpdd = "";//opener.ds_init.getColumn(0, "prcpdd" );
- if ( utlf_isNull(opener.ds_init) || utlf_isNull(opener.ds_init.getColumn(0, "prcpdd" ))) {
- prcpdd = ds_init.getColumn(0, "prcpdd" );
- if (utlf_isNull(prcpdd)) {
- prcpdd = utlf_getCurrentDate();
- }
- }else{
- prcpdd = opener.ds_init.getColumn(0, "prcpdd" );
- }
-
- if( utlf_isNull(this.objects["ds_send"]) ){
- dsf_createDs("ds_send", [{col:"cond1", type:"string", size:256}, {col:"cond2", type:"string", size:256}, {col:"cond3", type:"string", size:256}]);
- }
-
- dsf_makeValue(ds_send, "cond1", "string", prcpcd, 0);
- dsf_makeValue(ds_send, "cond2", "string", prcpdd, 0);
- dsf_makeValue(ds_send, "cond3", "string", flag, 0);
-
- //KNUH_20110208, 주희경, 진료 속도 개선을 위해 로그인 시 미리 데이터를 조회해 놓고 copy해서 쓰는 방식으로 변경
- //flag가 all이면 이미 조회 해 놓은 데이터 카피
- if ( flag == "all" ) {
- dsf_createDs("ds_orddept");
- var viewerObj = frmf_getViewer("sysMessage");
- var srcNodes = emr_getOrderBaseInfo("dept");
- var targetNodes = ds_orddept;
-
- if ( srcNodes.rowcount > 0 ) {
- ds_orddept.copyData(srcNodes);
- ds_orddept.clearData();
-
- for(var i=0; i<srcNodes.rowcount; i++) {
- var nRow = ds_orddept.addRow();
- ds_orddept.copyRow(nRow, srcNodes, i);
- }
- } else { //KNUH_20110208, 주희경 복사할 데이터가 없을 시 (비정상 로딩) 강제 로그아웃
- var oParam = {};
- oParam.id = "TRMMO00100";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpExecDeptSrch";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_orddept=dept";
- oParam.async = false;
- oParam.callback = "cf_TRMMO00100";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMO00100") > -1){
- return true;
- } else {
- return false;
- }
- }
- } else { //all이 아니면 해당 데이터 조회
- var oParam = {};
- oParam.id = "TRMMO00100";
- oParam.service = "prcpmngtapp.PrcpMngt";
- oParam.method = "reqGetPrcpExecDeptSrch";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_orddept=dept";
- oParam.async = false;
- oParam.callback = "cf_TRMMO00100";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMO00100") > -1){
- return true;
- }else{
- return false;
- }
- }
- }
- function cf_TRMMO00100(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /****************************************************************************************
- * Function : lf_PopPrcpRsen
- * Description : 처방 사유입력 화면을 팝업 한다.
- * Argument :
- * retrun type :
- * Creator : 2017.12.29 엄영만
- ****************************************************************************************/
- function lf_PopPrcpRsen(sRsenFlag, sAutoYn, sOrdType, sPid, sOrdDd, sCretNo, sOrdDeptCd, sPrcpDd, sPrcpNo, sPrcpHistNo, sPrcpCd, sPrcpNm, sResnCd, sResnCnts){
- if(utlf_isNull(sRsenFlag)){
- sysf_messageBox("사유 구분 정보가 없습니다.", "E999");
- return;
- }
- if(utlf_isNull(sOrdType)){
- sysf_messageBox("입원/외래 구분자 정보가 없습니다.", "E999");
- return;
- }
- if(utlf_isNull(sPid)){
- sysf_messageBox("환자번호가 없습니다.", "E999");
- return;
- }
- if(utlf_isNull(sOrdDd)){
- sysf_messageBox("진료일자가 없습니다.", "E999");
- return;
- }
- if(utlf_isNull(sCretNo)){
- sysf_messageBox("접수번호가 없습니다.", "E999");
- return;
- }
- if(utlf_isNull(sAutoYn)) { sAutoYn = "N"; }
- if(utlf_isNull(sPrcpDd)) { sPrcpDd = "00000000"; }
- if(utlf_isNull(sPrcpNo)) { sPrcpNo = "0"; }
- if(utlf_isNull(sPrcpHistNo)){ sPrcpHistNo = "0"; }
-
- frmf_clearParameter("SPMMO90800_rtn");
-
- dsf_createDsRow("ds_pop_resninfo", [{col:"resnflag", type:"string", size:256, val:sRsenFlag},
- {col:"autoyn", type:"string", size:256, val:sAutoYn},
- {col:"ordtype", type:"string", size:256, val:sOrdType},
- {col:"pid", type:"string", size:256, val:sPid},
- {col:"orddd", type:"string", size:256, val:sOrdDd},
- {col:"cretno", type:"string", size:256, val:sCretNo},
- {col:"orddeptcd", type:"string", size:256, val:sOrdDeptCd},
- {col:"prcpdd", type:"string", size:256, val:sPrcpDd},
- {col:"prcpno", type:"string", size:256, val:sPrcpNo},
- {col:"prcphistno", type:"string", size:256, val:sPrcpHistNo},
- {col:"prcpcd", type:"string", size:256, val:sPrcpCd},
- {col:"prcpnm", type:"string", size:256, val:sPrcpNm},
- {col:"resncd", type:"string", size:256, val:sResnCd},
- {col:"resncnts", type:"string", size:256, val:sResnCnts}]);
- var objArg = new Object();
- objArg.arg_ds_resninfo = ds_pop_resninfo;
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt = this.getOwnerFrame().position.x + 400;
- var ypt = this.getOwnerFrame().position.y + 90;
-
- frmf_modal("SPMMO90800", "SPMMO90800", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M");
- }
- /****************************************************************************************
- * Function : lf_getCheckRecExist
- * Description : 작성된(유효한) 기록이 있는지 확인 한다. 임시저장 포함.
- * - 기록창 오픈시 신규 오픈 할지 기존 기록 오픈 할지 결정 하기 위해 사용
- * Argument :
- * retrun type : 기록이 없으면 'N', 기록이 있는경우 최근 기록의 formrecseq
- * Creator : 2018.06.11 엄영만
- ****************************************************************************************/
- function lf_getCheckRecExist(sFormCd, sPid, sOrdDd, sCretNo) {
- var sRtn = "";
-
- if(utlf_isNull(sFormCd)) {
- sysf_messageBox("서식코드가 없습니다.", "E999");
- return "N";
- }
-
- if(utlf_isNull(sPid)) {
- sysf_messageBox("환자번호가 없습니다.", "E999");
- return "N";
- }
-
- dsf_createDsRow("ds_req_checkrecexist", [ {col:"formcd", type:"string", size:256, val:sFormCd}
- , {col:"pid", type:"string", size:256, val:sPid}
- , {col:"orddd", type:"string", size:256, val:sOrdDd}
- , {col:"cretno", type:"string", size:256, val:sCretNo} ]);
-
- dsf_createDsRow("ds_rtn_checkrecexist", [ {col:"existyn", type:"string", size:256, val:""}
- , {col:"formrecseq", type:"string", size:256, val:""} ]);
-
- var oParam = {};
- oParam.id = "getCheckRecExist";
- oParam.service = "prcpmngtapp.EtcPrcpMngt";
- oParam.method = "reqGetCheckRecExist";
- oParam.inds = "req=ds_req_checkrecexist";
- oParam.outds = "ds_rtn_checkrecexist=rtndata";
- oParam.async = false;
-
- tranf_submit(oParam);
-
- var sExistYn = ds_rtn_checkrecexist.getColumn(0,"existyn");
- var sFormRecSeq = ds_rtn_checkrecexist.getColumn(0,"formrecseq");
-
- dsf_deleteDs("ds_req_checkrecexist");
- dsf_deleteDs("ds_rtn_checkrecexist");
-
- if(!utlf_isNull(sExistYn) && sExistYn == "Y") {
- sRtn = sFormRecSeq;
- } else {
- sRtn = "N";
- }
- return sRtn;
- }
- /****************************************************************************************
- * Function : lf_DrugInfo
- * Description : 약품 편람 팝업
- * Argument :
- * retrun type :
- * Creator : 2018.11.22 엄영만
- ****************************************************************************************/
- function lf_DrugInfo(sDrugCd) {
- dsf_createDsRow("ds_req_druginfo", [{col:"srchdrugcd", type:"string", size:256, val:sDrugCd}]);
-
- var objArg = new Object(); //약품편람 조회 화면 open시 약코드 parameter기본 설정
- objArg.arg_ds_hidden_receivedata = ds_req_druginfo;
-
- if(lf_ContainsHardCD("619", "Y")) { // Kims 약품정보 사용여부
- var curPopupObj = frmf_findPopup("SPMMO50800"); //활성화된 화면 object loading
- if(!utlf_isNull(curPopupObj)) {
- curPopupObj.fGetDrugInfo(objArg.arg_ds_hidden_receivedata);
- curPopupObj.setFocus();
- } else {
- frmf_open("SPMMO50800", "SPMMO50800", objArg, null, 0, 0, 0, null, null, null, null, null, "M");
- }
- } else {
- frmf_open("SMADB01900", "SMADB01900", objArg, null, 0, 0, 0, null, null, null, null, null, "M");
- }
-
- dsf_deleteDs("ds_req_druginfo");
- }
- // 20200401 김현석, 예약 CP인 경우 적용일자를 가져오기, 20200310998
- function fGetAppdd()
- {
- var sAppdd = utlf_getCurrentDate();
- var sIndd = utlf_transNullToEmpty(ds_paminfo.getColumn(0, "indd"));
- var sIoflag = utlf_transNullToEmpty(ds_paminfo.getColumn(0, "ioflag"));
-
- var cphrcd = lf_getHardCDList("Y", "1800000001", 3);
- if (cphrcd == "Y")
- {
- if (sAppdd < sIndd && !utlf_isNull(sIndd))
- {
- sAppdd = sIndd;
- }
- }
-
- if ( !utlf_isNull(this.objects["ds_temp1_getdata"]) )
- {
- dsf_makeValue(ds_temp1_getdata, "appdd", "string", sAppdd); //model.makeValue("/root/temp1/getdata/appdd", getCurrentDate());
- }
-
- return sAppdd;
- }]]></Script>
|