SMPIJ00700.xjs 310 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 화면 초기화 : lf_fInitialize
  4. 등록번호 + 엔터 시 대상자 조회 : lf_fGetOutDayJudgTrgtManPidSrch
  5. 종료 : lf_fClear
  6. 심사버튼 초기화 : lf_fSetJudgStatBtnAuth
  7. 화면권한 초기화 : lf_fCheckAuth
  8. 등록번호, 접수일자 변경시 화면 초기화 : lf_fInitSrchData
  9. 등록번호 + 엔터 시 화면 초기화 : lf_fInitSrchData2
  10. 진료달력 초기화 : lf_finitCalendar
  11. 심사대상자 정보 조회 : lf_fGetOutDayJudgMngt
  12. 상병위로이동 : lf_fDiagSeqUp
  13. 상병아래로이동 : lf_fDiagSeqDown
  14. 상병 소트 : lf_fSortDiagNo
  15. 상병 행추가 : lf_fDiagGridInsertRow
  16. ---------------------------
  17. UX Studio
  18. ---------------------------
  19. Cannot find the string 'n lf_fSaveOutDayJudg'.
  20. ---------------------------
  21. 확인
  22. ---------------------------
  23. 특정 소트 : lf_fSortSpclNo
  24. 특정 행추가 : lf_fSpclGridInsertRow
  25. 특정 행삭제 : lf_fSpclGridDeleteRow
  26. 사용자 환경저장 조회 : lf_fSetOrderInfoOfCol
  27. 처방 필터링 : lf_fGetSelectedOrderData
  28. 심사화면 환자 메세지 여부확인: lf_fGetPatMsgYn
  29. 환자기준 전송메세지작성 : lf_fPatJudgPatMsgTrsm
  30. 처방기준 전송메세지작성 : lf_fOrderJudgPatMsgTrsm
  31. 해당건 환자 전체 메세지 보기 : lf_fJudgPatMsgTrsmRef
  32. SPPIZ00700_심사Comment조회 : lf_fGetJudgEdiComment
  33. MT004 특정내역 한줄 추가 : lf_fSetSpclMT004
  34. 소명자료 특정내역 추가 : lf_fGetAttachedDataList
  35. 소명자료 특정내역 추가 : lf_fDisplayAttachedDataList
  36. 특정환자 심사자메모, 청구메모 내역 조회 : lf_fGetMemoHistList
  37. 특정내역 저장 : lf_fSaveClcjList
  38. 특정내역 및 메모 탭 색 변경 : lf_fSetTapListSetting
  39. 심사자메모 저장 : lf_fSaveMeMo
  40. 심사자메모 저장 : lf_fSaveMeMoList
  41. 상병이력 조회 및 전달 : lf_fGetDiagHistList
  42. 상병 및 처방 치식 입력 호출 : lf_fDiagOrderToothInput
  43. MT004, 소명자료 버튼 색상 : lf_fCheckSpclSpecData
  44. 특정내역 탭 특정코드 변경 : lf_fChangeSpclCd
  45. 확인코드 입력 : lf_fOrderGridInsertCnfmCd
  46. 처방 T필드 더블클릭 (특정내역 입력) : lf_fSetLnUnitSpclSpec
  47. 특정내역상세관리화면에서 '결과조회' 팝업 띄움 : lf_fOrderRsltSrch
  48. 보험인정기준조회 : lf_fOrderInsuRcogBase
  49. 수가조회 : lf_fOrderCalcScorSrch
  50. 약품편람 : lf_fOrderDrugHBook
  51. 산정코드조회 : lf_fSrchEstmCd
  52. 기존 조회 내역 중 수정 사항 저장 체크 : lf_fCheckChangeSave
  53. 일일심사대상자 조회 후 처리 : lf_fSetDayJudgTrgtManSrchData
  54. 심사대상자의 특이인적사항, 보조/요율 계산 : lf_fGetPersonalData
  55. 대상자에 대한진료기록을 달력에 표기 : lf_fSetOrdCalendar
  56. 이전ㆍ다음 월/년의 일자, 해당년월에 진료한 일자 : lf_fSetOrdSrchCalendar
  57. 상병 색 표시 : lf_fSetDiagGridColor
  58. 기타메모(JX999) 설정 : lf_fSetSpclSpecJX999
  59. 문자환자 색상표기 변경 : lf_fSetProbJudgColor
  60. "심사완료"~"보류" 처리 후 다음 심사대상자 조회 : lf_fGetNextDayJudgTrgtMan
  61. 처방 항목 구분 및 선별심사 처방 색깔 구분 : lf_fSetOrderData
  62. 선별심사 항목구분 색 표시 : lf_fSetItemBold
  63. 처방그리드 필터용 조회조건 초기화 : lf_fInitOrderFilter
  64. 심사자메모, EDI청구메모 설정 : lf_fSetJudgEDIMemo
  65. 원외처방 특정내역 JX999 설정 : lf_fSetOprcSpclSpecJX999
  66. 원외처방 T필드 더블클릭 : lf_fSetOprcpSpclSpec
  67. 명세서단위 특정내역 수정/입력 : lf_fSetDocRefLnSpclSpec
  68. 줄단위 특정내역 수정/입력 : lf_fSetCnfmCdSpclSpec
  69. 현자 상병, 치식을 리스트 형태로 만듬 : lf_fSetToothPop
  70. 치식결과 반영 : lf_fGetToothPop
  71. 특정내역 탭 특정코드 외 다른필드 변경 : lf_fChangeOtherCd
  72. 저장 버튼 클릭 : lf_fSaveOutDayJudg
  73. CLBS 테이블에 저장할 정보가 올바른지 확인 : lf_fCheckSaveOutDayJudgCLBS
  74. CLDI 테이블에 저장할 정보가 올바른지 확인 : lf_fCheckSaveOutDayJudgInfoCLDI
  75. CLOD 테이블에 저장할 정보가 올바른지 확인 : lf_fCheckSaveOutDayJudgInfoCLOD
  76. CLOP 테이블에 저장할 정보가 올바른지 확인 : lf_fCheckSaveOutDayJudgInfoCLOP
  77. 특정내역 검사 : lf_fCheckSaveOutDayJudgInfoCLSP
  78. 계산처방시행조회(코드별 처방 hx.보기) : lf_fOpenSMPIS00500Detail_O
  79. 청구삭감조회(코드별 청구 hx.보기) : lf_fOpenSMPIS00600Detail
  80. 처방사유조회 : lf_fPrcpResnRef
  81. 재행/급여/항목구분에 따라 처방내역 보여줌 : lf_fGetSelectedOrderData2
  82. 상병코드 조회 : lf_fSearchSPPIZ00400
  83. 상병순서 부여 : lf_fChangeDiagNo
  84. 상병코드에 해당하는 정보 조회 : lf_fSearchDiageCode
  85. 상병삭제 취소 : lf_fDiagGridDeleteCancel
  86. 상병 행 삭제 : lf_DiagGridDeleteRow
  87. 이전월/년, 다음월/년에 해당하는 일자를 표시 : lf_fSetCalendar
  88. 처방주석입력 : lf_fOrderGridInsertCmt
  89. */
  90. //=======================================================================================
  91. // Function
  92. //---------------------------------------------------------------------------------------
  93. /****************************************************************************************
  94. * Argument :
  95. * Description : 심사대상자 정보 조회
  96. ****************************************************************************************/
  97. function lf_fGetOutDayJudgMngt()
  98. {
  99. var pid = ds_rslt_smpij00600.getColumn(0, "pid");
  100. var orddd = ds_rslt_smpij00600.getColumn(0, "orddd");
  101. var cretno = ds_rslt_smpij00600.getColumn(0, "cretno");
  102. var acptseqno = ds_rslt_smpij00600.getColumn(0, "acptseqno");
  103. var insukindcd = ds_rslt_smpij00600.getColumn(0, "insukindcd");
  104. var opyn = ds_rslt_smpij00600.getColumn(0, "opyn");
  105. var suppkindcd = ds_rslt_smpij00600.getColumn(0, "suppkindcd"); // 본인부담율 조회 구분에서 보조유형이 필요함
  106. var patage = ds_rslt_smpij00600.getColumn(0, "patage");
  107. var dschjudgprcsstat = ds_rslt_smpij00600.getColumn(0, "dschjudgprcsstat");
  108. var judgmdlid = ds_rslt_smpij00600.getColumn(0, "judgmdlid");
  109. var lastjudgdt = ds_rslt_smpij00600.getColumn(0, "lastjudgdt");
  110. var acptuniqno = ds_rslt_smpij00600.getColumn(0, "acptuniqno");
  111. var judgstatyn = ds_hidden.getColumn(0, "judgstatyn");
  112. // 0. 전환자료이므로 1회량 등 정보가 틀릴수 있습니다. 정확한 처방정보는 환자진료정보 조회를 참고하세요(오픈 임시 메세지 처리)
  113. if (orddd < "20081003") {
  114. sysf_messageBox("전환자료이므로 1회량 등 정보가 틀릴수 있습니다. 정확한 처방정보는 환자진료정보 조회를", "I007");
  115. }
  116. // 1. 기존에 조회된 대상자의 심사상태를 이전으로 되돌린다.
  117. if ( judgstatyn != "N" && utlf_isNull(judgstatyn) ) {
  118. var cretno2 = ds_item1_otpt.getColumn(0, "cretno");
  119. var dschjudgprcsstat2 = ds_item1_otpt.getColumn(0, "dschjudgprcsstat");
  120. if ( !utlf_isNull(cretno2) && dschjudgprcsstat2 == "B" ) {
  121. // 1-1. 이전 row 의 심사상태 되돌리기 시작
  122. var oldpid = ds_hidden_list8.getColumn(0, "pid");
  123. var oldorddd = ds_hidden_list8.getColumn(0, "orddd");
  124. var oldcretno = ds_hidden_list8.getColumn(0, "cretno");
  125. var oldacptseqno = ds_hidden_list8.getColumn(0, "acptseqno");
  126. var olddschjudgprcsstat = ds_hidden_list8.getColumn(0, "dschjudgprcsstat");
  127. var oldjudgmdlid = ds_hidden_list8.getColumn(0, "judgmdlid");
  128. var oldlastjudgdt = ds_hidden_list8.getColumn(0, "lastjudgdt");
  129. if ( olddschjudgprcsstat == "A" || utlf_isNull(olddschjudgprcsstat) || olddschjudgprcsstat == "D" || olddschjudgprcsstat == "E" ) {
  130. ds_send_list8.clearData();
  131. ds_send_list8.addRow();
  132. ds_send_list8.setColumn(0, "pid", oldpid);
  133. ds_send_list8.setColumn(0, "orddd", oldorddd);
  134. ds_send_list8.setColumn(0, "cretno", oldcretno);
  135. ds_send_list8.setColumn(0, "acptseqno", oldacptseqno);
  136. ds_send_list8.setColumn(0, "dschjudgprcsstat", olddschjudgprcsstat);
  137. ds_send_list8.setColumn(0, "judgmdlid", oldjudgmdlid);
  138. ds_send_list8.setColumn(0, "lastjudgdt", oldlastjudgdt);
  139. tranf_submit({
  140. id : "TXPIJ00604"
  141. , service : "bfjudgapp.OutDayJudg"
  142. , method : "reqBackDschJudgPrcsStat"
  143. , inds : "req=ds_send_list8"
  144. , async : false
  145. });
  146. }
  147. }
  148. }
  149. // 1-2. 심사상태 자동 해제를 위한 데이터를 담아두기 시작
  150. ds_hidden_list8.clearData();
  151. ds_hidden_list8.addRow();
  152. ds_hidden_list8.setColumn(0, "pid", pid);
  153. ds_hidden_list8.setColumn(0, "orddd", orddd);
  154. ds_hidden_list8.setColumn(0, "cretno", cretno);
  155. ds_hidden_list8.setColumn(0, "acptseqno", acptseqno);
  156. ds_hidden_list8.setColumn(0, "dschjudgprcsstat", dschjudgprcsstat);
  157. ds_hidden_list8.setColumn(0, "judgmdlid", judgmdlid);
  158. ds_hidden_list8.setColumn(0, "lastjudgdt", lastjudgdt);
  159. ds_hidden.setColumn(0, "judgstatyn", "Y");
  160. // 2. 대상자 조회를 한다.
  161. var selectedRow = ds_rslt_smpij00600.getColumn(0, "selectedRow");
  162. if ( !utlf_isNull(pid) && !utlf_isNull(orddd) && !utlf_isNull(cretno) && !utlf_isNull(acptseqno) && !utlf_isNull(insukindcd) ) {
  163. // 2-1. 화면을 초기화한다.
  164. var rslt = lf_fInitSrchData();
  165. if ( rslt == false ) {
  166. return false;
  167. }
  168. // ds_send_item1_otpt.clearData();
  169. // ds_send_item1_otpt.addRow();
  170. ds_send_item1_otpt.setColumn(0, "pid", pid);
  171. ds_send_item1_otpt.setColumn(0, "orddd", orddd);
  172. ds_send_item1_otpt.setColumn(0, "cretno", cretno);
  173. ds_send_item1_otpt.setColumn(0, "acptseqno", acptseqno);
  174. ds_send_item1_otpt.setColumn(0, "insukindcd", insukindcd);
  175. ds_send_item1_otpt.setColumn(0, "opyn", opyn); // 대상자화면에 표시된 수술여부를 전달한 경우, oscl 검색없이 수술여부를 구할 수 있다.
  176. ds_send_item1_otpt.setColumn(0, "suppkindcd", suppkindcd); // 본인부담율 조회 구분에서 보조유형이 필요함
  177. ds_send_item1_otpt.setColumn(0, "patage", patage);
  178. ds_send_item1_otpt.setColumn(0, "acptuniqno", acptuniqno);
  179. // 초기화
  180. ds_list1_diag.clearData();
  181. ds_list2_oscl.clearData();
  182. ds_list3_clcj.clearData();
  183. ds_list7_clop.clearData();
  184. ds_list8_judgmemo.clearData();
  185. ds_list9_edimemo.clearData();
  186. tranf_submit({
  187. id : "TRPIJ00701"
  188. , service : "bfjudgapp.OutDayJudg"
  189. , method : "reqGetOutDayJudgTrgtMan"
  190. , inds : "req=ds_send_item1_otpt"
  191. , outds : "ds_item1_otpt=otpt ds_item3_supp=supp ds_list1_diag=diag ds_list2_oscl=oscl ds_list3_clcj=clcj ds_list7_clop=clop ds_ordddlist=list ds_item7_kopg=kopg ds_item8_asrtjudg=asrtjudg ds_list8_judgmemo=judgmemo ds_list9_edimemo=edimemo"
  192. , async : false
  193. });
  194. if (utlf_isNull(ds_item1_otpt.getColumn(0, "pid") || utlf_isNull(ds_item1_otpt.getColumn(0, "cretno")))) {
  195. ds_item1_otpt.appendData(ds_rslt_smpij00600, true, true);
  196. }
  197. ds_item1_otpt.setColumn(0, "dschjudgprcsstat", dschjudgprcsstat);
  198. ds_list4_otpt.copyData(ds_item1_otpt);
  199. // 데이타셋 매핑
  200. ds_grid_grd_cldihist.copyData(ds_list1_diag); // 상병
  201. ds_grid_grd_cldihist.addColumn("status", "STRING");
  202. ds_grid_grd_clodhist.copyData(ds_list2_oscl); // 처방
  203. // TODO : 일시 '-' 일때 null 처리 추가
  204. ds_grid_grd_clsphist.copyData(ds_list3_clcj); // 특정내역
  205. ds_grid_grd_oprcphist.copyData(ds_list7_clop); // 원외처방
  206. ds_grid_grd_judgmemo.copyData(ds_list8_judgmemo); // 심사자메모
  207. if (ds_grid_grd_judgmemo.rowcount > 0) {
  208. ds_grid_grd_judgmemo.updatecontrol = false;
  209. for (var i=0; i<ds_grid_grd_judgmemo.rowcount; i++) { // 심사자 입력일시 수정
  210. ds_grid_grd_judgmemo.setColumn(i, "fstrgstdt", urlf_getStrDate(ds_grid_grd_judgmemo.getColumn(i, "fstrgstdt").substr(0,14)));
  211. }
  212. ds_grid_grd_judgmemo.updatecontrol = true;
  213. }
  214. ds_grid_grd_edimemo.copyData(ds_list9_edimemo); // edi메모
  215. // 체크박스 변환 설정
  216. lf_changecheck1(ds_grid_grd_cldihist, "diagkindcd", "C", 0);
  217. // 2-2. 조회 이후의 작업을 한다.
  218. lf_fSetDayJudgTrgtManSrchData();
  219. lf_fSetOrderData();
  220. // 상병
  221. if (ds_grid_grd_cldihist.rowcount > 0) {
  222. ds_grid_grd_cldihist.rowposition = 0;
  223. ds_grid_grd_cldihist.rowposition = -1;
  224. }
  225. // 처방
  226. if (ds_grid_grd_clodhist.rowcount > 0) {
  227. ds_grid_grd_clodhist.rowposition = 0;
  228. ds_grid_grd_clodhist.rowposition = -1;
  229. }
  230. // 특정내역
  231. if (ds_grid_grd_clsphist.rowcount > 0) {
  232. ds_grid_grd_clsphist.rowposition = 0;
  233. ds_grid_grd_clsphist.rowposition = -1;
  234. }
  235. // 원외처방
  236. if (ds_grid_grd_oprcphist.rowcount > 0) {
  237. ds_grid_grd_oprcphist.rowposition = 0;
  238. ds_grid_grd_oprcphist.rowposition = -1;
  239. }
  240. // edi메모
  241. if (ds_grid_grd_edimemo.rowcount > 0) {
  242. ds_grid_grd_edimemo.rowposition = 0;
  243. ds_grid_grd_edimemo.rowposition = -1;
  244. }
  245. ds_send.setColumn(0, "unitflag", "-");
  246. //lf_fGetPatMsgYn(pid, orddd, cretno);
  247. appf_delPatientInfos();
  248. fSetOutPatPamInfo();
  249. // open 화면 [통합결과조회,통합기록조회,통합처방조회] 리프레시
  250. var tot_rslt = frmf_findPopup("SMMMI00100");
  251. var tot_rec = frmf_findPopup("SMMRI00400");
  252. var tot_prcp = frmf_findPopup("SMMMO02500");
  253. // 통합결과조회 SMMMI00100
  254. if(tot_rslt != null){
  255. tot_rslt.ds_singdata.setColumn(0, "srchpid", ds_item1_otpt.getColumn(0, "pid"));
  256. tot_rslt.grp_sea.cp_patientInfo00.edt_pid.value = ds_item1_otpt.getColumn(0, "pid");
  257. tot_rslt.fReqGetPatComnInfo();
  258. tot_rslt.grp_sea_btn_sea_onclick();
  259. }
  260. // 통합기록조회 SMMRI00400
  261. if(tot_rec != null){
  262. tot_rec.cp_patientInfo00.edt_pid.value = ds_item1_otpt.getColumn(0, "pid");
  263. tot_rec.fPidKeyPress();
  264. }
  265. // 통합처방조회 SMMMO02500
  266. if(tot_prcp != null){
  267. tot_prcp.ds_cond.setColumn(0, "prcpall", "N");
  268. tot_prcp.grp_cond.edt_pid.value = ds_item1_otpt.getColumn(0, "pid");
  269. tot_prcp.tab_main.page_ord.cmb_bfprcpdd.value = utlf_getCurrentDate();
  270. tot_prcp.lf_reqGetPatComnInfo(ds_item1_otpt.getColumn(0, "pid"), utlf_getCurrentDate());
  271. }
  272. }
  273. }
  274. //=======================================================================================
  275. // Function
  276. //---------------------------------------------------------------------------------------
  277. /****************************************************************************************
  278. * Argument :
  279. * Description : 화면 초기화
  280. ****************************************************************************************/
  281. function lf_fInitialize()
  282. {
  283. // 1. 데이타셋 초기화
  284. ds_list1_diag.clearData();
  285. ds_list2_oscl.clearData();
  286. ds_list3_clcj.clearData();
  287. ds_list4_otpt.clearData();
  288. ds_list5_oscl.clearData();
  289. ds_list6_delclod.clearData();
  290. ds_list7_clop.clearData();
  291. ds_hidden_list4_otpt.clearData();
  292. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoPay", "-");
  293. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoItem", "-");
  294. ds_hidden_list2_osclsrch.setColumn(0, "actflag", "all");
  295. ds_hidden_list7_clop.setColumn(0, "selectedRdoPay", "-");
  296. ds_send.setColumn(0, "unitflag", "-");
  297. ds_send.setColumn(0, "clamfromdd", utlf_getCurrentDate());
  298. ds_send.setColumn(0, "clamtodd", utlf_getCurrentDate());
  299. // 히든 컨트롤
  300. cap_grptemp.visible = false; // 이전 명세서 목록
  301. grp_predoculist.visible = false;
  302. grp_delclodlist.visible = false;
  303. grp_delorderlist.visible = false;
  304. // 완료 ~ 삭제 Btn
  305. //btn_end.class = "btn7";
  306. btn_end.style.color = "#cc3333"; // 심사완료
  307. btn_end.style.font = "Dotum,9,bold";
  308. //btn_unjudg.class = "btn7";
  309. btn_unjudg.style.color = "#cc3333ff"; // 완료해제
  310. btn_unjudg.style.font = "Dotum,9,bold";
  311. //btn_clear.class = "btn7";
  312. btn_rete.style.color = "#cc3333"; // 보류 [F6]
  313. btn_rete.style.font = "Dotum,9,bold";
  314. //btn_save.class = "btn7";
  315. btn_save.style.font = "Dotum,9,bold"; // 저장 [F3]
  316. // 특정내역 탭
  317. grp_clsphist.swt_spclmemo.tabindex = 0; // case_spclspec
  318. // 특정내역 행추가 버튼
  319. grp_clsphist.swt_spclmemo.case_spclspec.btn_addspec.enable = false;
  320. }
  321. //=======================================================================================
  322. // Function
  323. //---------------------------------------------------------------------------------------
  324. /****************************************************************************************
  325. * Argument :
  326. * Description : 등록번호, 접수일자 변경시 화면 초기화
  327. ****************************************************************************************/
  328. function lf_fInitSrchData()
  329. {
  330. // 기존 조회 내역 중 수정 사항이 있는 경우 저장할 것인지를 물어본다.
  331. var rslt = lf_fCheckChangeSave();
  332. if ( rslt == false ) { // 저장이 완료되지 않아 초기화할 수 없는 경우
  333. return false;
  334. }
  335. lf_fSetJudgStatBtnAuth(); // 심사완료여부 상태에 따라 "저장 / 재계산 / 완료 / 미심 / 보류 / 삭제" Btn 권한을 설정한다.
  336. // 조회 조건의 초기값을 설정한다.
  337. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoPay", "-"); // 급여구분
  338. grp_ordsrch.rdo_payflag.value = "-";
  339. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoItem", "-"); // 항목구분
  340. grp_ordsrch.rdo_item1.value = "-";
  341. ds_hidden_list2_osclsrch.setColumn(0, "actflag", "all"); // 시행구분
  342. grp_ordsrch.rdo_actingflag.value = "all";
  343. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoMatrAct", "-"); // 재료행위구분
  344. grp_ordsrch.rdo_actmatflag.value = "-";
  345. // 항목구분 Radio item의 굵은 표시를 취소한다.
  346. // 급여구분
  347. for (var i=0; i<ds_init_rdo_payflag.rowcount; i++ ) {
  348. ds_init_rdo_payflag.setColumn(i, "color", "");
  349. ds_init_rdo_payflag.setColumn(i, "font", "");
  350. }
  351. // 재료행위구분
  352. for (var i=0; i<ds_init_rdo_actmatflag.rowcount; i++ ) {
  353. ds_init_rdo_actmatflag.setColumn(i, "color", "");
  354. ds_init_rdo_actmatflag.setColumn(i, "font", "");
  355. }
  356. // 시행구분
  357. for (var i=0; i<ds_init_rdo_actingflag.rowcount; i++ ) {
  358. ds_init_rdo_actingflag.setColumn(i, "color", "");
  359. ds_init_rdo_actingflag.setColumn(i, "font", "");
  360. }
  361. // 항목구분
  362. for (var i=0; i<ds_init_rdo_item1.rowcount; i++ ) {
  363. ds_init_rdo_item1.setColumn(i, "color", "");
  364. ds_init_rdo_item1.setColumn(i, "font", "");
  365. }
  366. // 원외처방 - 항목구분 (기본값 : 급여)
  367. ds_hidden_list7_clop.setColumn(0, "selectedRdoPay", "-"); // 전체
  368. // 진료달력 배경색과 굵은 표시를 취소한다.(onload 위 전역변수 sFormats에 초기화 그리드 포맷 저장)
  369. // grd_calendar.formats = "<Formats>" + sFormats.replace('<Formats','').replace('</Formats','') + "</Formats>";
  370. return true;
  371. }
  372. //=======================================================================================
  373. // Function
  374. //---------------------------------------------------------------------------------------
  375. /****************************************************************************************
  376. * Argument :
  377. * Description : 등록번호 입력후 엔터 처리시에만 동작 (lf_fInitSrchData + 이전심사되돌리기) 기능
  378. ****************************************************************************************/
  379. function lf_fInitSrchData2()
  380. {
  381. // 기존 조회 내역 중 수정 사항이 있는 경우 저장할 것인지를 물어본다.
  382. var rslt = lf_fCheckChangeSave();
  383. if ( rslt == false ) { // 저장이 완료되지 않아 초기화할 수 없는 경우
  384. return false;
  385. }
  386. // 1. 심사상태를 이전으로 되돌린다
  387. // 심사해제 시작(심사중일 경우 미심사상태로)
  388. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  389. var dschjudgprcsstat = ds_item1_otpt.getColumn(0, "dschjudgprcsstat");
  390. if ( cretno != "" && dschjudgprcsstat == "A" ) {
  391. // 이전 row 의 심사상태 되돌리기 시작
  392. var oldpid = ds_hidden_list8.getColumn(0, "pid");
  393. var oldorddd = ds_hidden_list8.getColumn(0, "orddd");
  394. var oldcretno = ds_hidden_list8.getColumn(0, "cretno");
  395. var oldacptseqno = ds_hidden_list8.getColumn(0, "acptseqno");
  396. var olddschjudgprcsstat = ds_hidden_list8.getColumn(0, "dschjudgprcsstat");
  397. var oldjudgmdlid = ds_hidden_list8.getColumn(0, "judgmdlid");
  398. var oldlastjudgdt = ds_hidden_list8.getColumn(0, "lastjudgdt");
  399. if ( olddschjudgprcsstat == "A" || olddschjudgprcsstat == "" || olddschjudgprcsstat == "D" || olddschjudgprcsstat == "E" ) {
  400. ds_hidden_list8.clearData();
  401. ds_hidden_list8.addRow();
  402. ds_send_list8.setColumn(0, "pid", oldpid);
  403. ds_send_list8.setColumn(0, "orddd", oldorddd);
  404. ds_send_list8.setColumn(0, "cretno", oldcretno);
  405. ds_send_list8.setColumn(0, "acptseqno", oldacptseqno);
  406. ds_send_list8.setColumn(0, "dschjudgprcsstat", olddschjudgprcsstat);
  407. ds_send_list8.setColumn(0, "judgmdlid", oldjudgmdlid);
  408. ds_send_list8.setColumn(0, "lastjudgdt", oldlastjudgdt);
  409. tranf_submit({
  410. id: "TXPIJ00604"
  411. , service: "bfjudgapp.OutDayJudg"
  412. , method: "reqBackDschJudgPrcsStat"
  413. , inds : "req=ds_send_list8"
  414. , async: false
  415. });
  416. }
  417. // 이전 row 의 심사상태 되돌리기 끝
  418. }
  419. // 심사해제 끝
  420. var arrPopList = frmf_getChildPopList(this);
  421. for (var i in arrPopList ) {
  422. if ( arrPopList[i] != "SMPIJ00600" ) { // SMPIJ00600_외래일일심사대상자조회
  423. application.popupframes[arrPopList[i]].form.close();
  424. } else {
  425. }
  426. }
  427. lf_fSetJudgStatBtnAuth(); // 심사완료여부 상태에 따라 "저장 / 재계산 / 완료 / 미심 / 보류 / 삭제" Btn 권한을 설정한다.
  428. // 조회 조건의 초기값을 설정한다.
  429. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoPay", "-"); // 급여구분
  430. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoItem", "-"); // 항목구분
  431. ds_hidden_list2_osclsrch.setColumn(0, "actflag", "all"); // 시행구분
  432. // 처방 항목구분 Radio item의 굵은 표시를 취소한다.
  433. for (var i=0; i<ds_init_rdo_item1.rowcount; i++ ) {
  434. ds_init_rdo_item1.setColumn(i, "font", "");
  435. }
  436. // 원외처방 - 항목구분 (기본값 : 급여)
  437. ds_hidden_list7_clop.setColumn(0, "selectedRdoPay", "-"); // 전체
  438. // 진료달력 배경색과 굵은 표시를 취소한다.
  439. // grd_calendar.formats = "<Formats>" + sFormats.replace('<Formats','').replace('</Formats','') + "</Formats>";
  440. return true;
  441. }
  442. //=======================================================================================
  443. // Function
  444. //---------------------------------------------------------------------------------------
  445. /****************************************************************************************
  446. * Argument :
  447. * Description : 종료
  448. ****************************************************************************************/
  449. function lf_fClear()
  450. {
  451. // 1. 심사상태 변경
  452. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  453. var dschjudgprcsstat = ds_item1_otpt.getColumn(0, "dschjudgprcsstat");
  454. // 이전 row 의 심사상태 되돌리기 시작
  455. var oldpid = ds_hidden_list8.getColumn(0, "pid");
  456. var oldorddd = ds_hidden_list8.getColumn(0, "orddd");
  457. var oldcretno = ds_hidden_list8.getColumn(0, "cretno");
  458. var oldacptseqno = ds_hidden_list8.getColumn(0, "acptseqno");
  459. var olddschjudgprcsstat = ds_hidden_list8.getColumn(0, "dschjudgprcsstat");
  460. var oldjudgmdlid = ds_hidden_list8.getColumn(0, "judgmdlid");
  461. var oldlastjudgdt = ds_hidden_list8.getColumn(0, "lastjudgdt");
  462. if ( !utlf_isNull(cretno) && dschjudgprcsstat == "A" ) {
  463. if ( olddschjudgprcsstat == "A" || utlf_isNull(olddschjudgprcsstat) || olddschjudgprcsstat == "D" || olddschjudgprcsstat == "E" ) {
  464. ds_send_list8.clearData();
  465. ds_send_list8.addRow();
  466. ds_send_list8.setColumn(0, "pid", oldpid);
  467. ds_send_list8.setColumn(0, "orddd", oldorddd);
  468. ds_send_list8.setColumn(0, "cretno", oldcretno);
  469. ds_send_list8.setColumn(0, "acptseqno", oldacptseqno);
  470. ds_send_list8.setColumn(0, "dschjudgprcsstat", olddschjudgprcsstat);
  471. ds_send_list8.setColumn(0, "judgmdlid", oldjudgmdlid);
  472. ds_send_list8.setColumn(0, "lastjudgdt", oldlastjudgdt);
  473. tranf_submit({
  474. id: "TXPIJ00604"
  475. , service: "bfjudgapp.OutDayJudg"
  476. , method: "reqBackDschJudgPrcsStat"
  477. , inds : "req=ds_send_list8"
  478. , async: false
  479. });
  480. }
  481. // 이전 row 의 심사상태 되돌리기 끝
  482. }
  483. // 2. 대상자 조회화면에서 심사상태 이전값으로 보여주도록 함
  484. var trgtManWindow = frmf_getChildWindow("SMPIJ00600");
  485. if ( !utlf_isNull(trgtManWindow) ) {
  486. var selectedRow = ds_rslt_smpij00600.getColumn(0, "selectedRow");
  487. if ( selectedRow ) {
  488. // 대상자조회 화면에 심사상태 변경
  489. var prevRow = parseInt(selectedRow, 10);
  490. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "dschjudgprcsstat", olddschjudgprcsstat);
  491. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "judgnm", trgtManWindow.ds_hidden_oldotpt.getColumn(0, "oldjudgnm"));
  492. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "lastupdtdt", olddschjudgprcsstat);
  493. }
  494. // 대상자조회화면에서 갖고 있는 이전row 정보를 삭제해 준다. (같은행 더블클릭시 이미 조회된 심사대상자임이 아니어야 하므로)
  495. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldrow", "");
  496. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldpid", "");
  497. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldorddd", "");
  498. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldcretno", "");
  499. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldacptseqno", "");
  500. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "olddschjudgprcsstat", "");
  501. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldjudgmdlid", "");
  502. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldjudgnm", "");
  503. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldlastjudgdt", "");
  504. }
  505. // 3. 화면 초기화
  506. lf_fInitialize();
  507. ds_item1_otpt.clearData();
  508. ds_item1_otpt.addRow();
  509. ds_cond_smpij00700.clearData();
  510. ds_cond_smpij00700.addRow();
  511. ds_grid_grd_cldihist.clearData(); // 상병
  512. ds_grid_grd_clsphist.clearData(); // 특정내역
  513. ds_grid_grd_clodhist.clearData(); // 처방
  514. ds_grid_grd_oprcphist.clearData(); // 원외처방
  515. ds_hidden_item1_otpt.clearData();
  516. ds_hidden_item1_otpt.addRow();
  517. // 그리드 확대 축소에 따른
  518. grp_cldihist.position.height = 139;
  519. grd_cldihist.position.height = 114;
  520. grd_oprcphist.position.top = 660;
  521. cap_clop.position.top = 640;
  522. rdo_cloppayflag.position.top = 640;
  523. grd_oprcphist.position.height = 109
  524. cap_clop.position.height = 20;
  525. rdo_cloppayflag.position.height = 20;
  526. // 4. 버튼 초기화
  527. lf_fSetJudgStatBtnAuth();
  528. // 5. 진료달력 초기화
  529. // for (var i=1; i <= 42; i++ ) {
  530. // grd_calendar.setCellProperty("body", i, "background", "white");
  531. // grd_calendar.setCellProperty("body", i, "background2", "white");
  532. // }
  533. lf_finitCalendar();
  534. lf_fSetOrdSrchCalendar();
  535. // 상단에 환자정보 초기화하고 기입하기
  536. appf_delPatientInfos();
  537. }
  538. //=======================================================================================
  539. // Function
  540. //---------------------------------------------------------------------------------------
  541. /****************************************************************************************
  542. * Argument :
  543. * Description : 진료달력 초기화
  544. ****************************************************************************************/
  545. function lf_finitCalendar()
  546. {
  547. var curDate = utlf_getCurrentDate();
  548. ds_hidden_calendar.setColumn(0, "year", utlf_getYear());
  549. ds_hidden_calendar.setColumn(0, "month", utlf_getMonth());
  550. //var isDate = (utlf_getYear() + utlf_getMonth()).toDate();
  551. var isDate = utlf_getCurrentDate();
  552. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  553. if (!utlf_isNull(cretno)) { // 조회된 심사대상자가 있으면
  554. lf_fSetOrdSrchCalendar();
  555. }
  556. else {
  557. lf_fSetCalendar(isDate);
  558. }
  559. }
  560. // 이전월/년, 다음월/년에 해당하는 일자를 표시한다.
  561. function lf_fSetCalendar(dateObj)
  562. {
  563. //var firstDay = dateObj.getDateFormat("YYYY") + dateObj.getDateFormat("MM") +"01";
  564. var firstDay = utlf_getCurrentDate().substring(0, 6) + "01";
  565. dateObj = firstDay.toDate();
  566. ds_grid_grd_calendar.clearData();
  567. ds_grid_grd_calendar.addRow()
  568. var startDay = dateObj.getDay(); // 요일
  569. var days = dateObj.getMonthDay(); // 마지막 일
  570. var colIndex = startDay;
  571. for ( var i=1; i <= days; i++ ) {
  572. var sDay = "";
  573. if (String(i).length == 1) {
  574. sDay = "0"+i;
  575. } else {
  576. sDay = i;
  577. }
  578. ds_grid_grd_calendar.setColumn(0, colIndex, sDay);
  579. colIndex++;
  580. }
  581. for (var j=0; j<42; j++ ) {
  582. grd_calendar.setFormatColProperty(j, "size", 23);
  583. if (utlf_isNull(ds_grid_grd_calendar.getColumn(0, j)) ) {
  584. grd_calendar.setFormatColProperty(j, "size", 0);
  585. }
  586. }
  587. grd_calendar.position.width = 713;
  588. }
  589. //=======================================================================================
  590. // Function
  591. //---------------------------------------------------------------------------------------
  592. /****************************************************************************************
  593. * Argument :
  594. * Description : 대상자에 대한 진료기록을 달력에 표기
  595. ****************************************************************************************/
  596. function lf_fSetOrdCalendar()
  597. {
  598. var isDate = ds_item1_otpt.getColumn(0, "orddd");
  599. if (utlf_isNull(isDate)) {
  600. if (ds_item1_otpt.rowcount < 1 ) {
  601. ds_item1_otpt.addRow();
  602. }
  603. ds_item1_otpt.setColumn(0, "orddd", ds_rslt_smpij00600.getColumn(0,"orddd"));
  604. isDate = ds_item1_otpt.getColumn(0, "orddd");
  605. }
  606. var YYYY = isDate.substr(0, 4);
  607. var MM = isDate.substr(4, 2);
  608. ds_hidden_calendar.setColumn(0, "year", YYYY);
  609. ds_hidden_calendar.setColumn(0, "month", MM);
  610. // 이전 명세서 팝업의 경우, 바뀐 날짜의 시작일자가 적용되지 않으므로 설정함
  611. ds_hidden_calendar_ordddlist.setColumn(0, "fromdd", YYYY + MM +"01");
  612. ds_hidden_calendar_ordddlist.setColumn(0, "todd", YYYY + MM + utlf_getLastDate(ds_hidden_calendar.getColumn(0, "month")) ); // 현재월의 마지막일
  613. lf_fSetOrdSrchCalendar();
  614. }
  615. //=======================================================================================
  616. // Function
  617. //---------------------------------------------------------------------------------------
  618. /****************************************************************************************
  619. * Argument :
  620. * Description : 이전월/년, 다음월/년에 해당하는 일자와 해당년월에 진료한 일자를 표시
  621. ****************************************************************************************/
  622. function lf_fSetOrdSrchCalendar()
  623. {
  624. // 진료달력을 표시한다.
  625. var isMonth = ds_hidden_calendar.getColumn(0, "month");
  626. var isYear = ds_hidden_calendar.getColumn(0, "year");
  627. var isDate = isYear+isMonth+"01";
  628. var YYYY = isDate.substr(0, 4);
  629. var MM = isDate.substr(4, 2);
  630. var DD = isDate.substr(6, 2);
  631. // 이전명세서 팝업의 경우 fromdd 로 계산시 바뀐 날짜가 아님
  632. var dateObj = ds_hidden_calendar_ordddlist.getColumn(0, "fromdd");
  633. // 그리드 초기화
  634. ds_grid_grd_calendar.clearData();
  635. ds_grid_grd_calendar.addRow(); // 날짜
  636. ds_grid_grd_calendar.addRow(); // 날짜별 카운터
  637. var startDay = utlf_getDay(isDate); // 요일 3:수요일
  638. var days = utlf_lastDateNum(isDate); //dateObj.getMonthDay(); // 마지막 일
  639. var colIndex = startDay;
  640. for ( var i=1; i<=days; i++ ) { // 한달의 일수만큼
  641. var sDay = "";
  642. if (String(i).length == 1) {
  643. sDay = "0"+i;
  644. } else {
  645. sDay = i;
  646. }
  647. ds_grid_grd_calendar.setColumn(0, colIndex, sDay);
  648. ds_grid_grd_calendar.setColumn(1, colIndex, 0);
  649. colIndex++;
  650. }
  651. grd_calendar.position.width = parseInt(days)*23;
  652. lf_TRPIJ00708(); // 해당 달의 진료 달력 조회
  653. for (var i=0; i<ds_ordddlist.rowcount; i++ ) {
  654. var dd = parseInt(ds_ordddlist.getColumn(i, "orddd").substr(6, 2), 10);
  655. for (var k = 0; k < grd_calendar.getFormatColCount(); k++ ) {
  656. if ( dd == ds_grid_grd_calendar.getColumn(0, k) ) {
  657. ds_grid_grd_calendar.setColumn(1, k, parseInt(ds_grid_grd_calendar.getColumn(1, k)) + 1 ); // 일별 진료 카운트
  658. }
  659. }
  660. }
  661. for (var k = 0; k < grd_calendar.getFormatColCount(); k++ ) {
  662. if ( utlf_isNull(ds_grid_grd_calendar.getColumn(0, k)) ) {
  663. grd_calendar.setFormatColProperty(k, "size", 0);
  664. }
  665. else {
  666. var sColor = "";
  667. // 횟수별 색상 세팅
  668. var cCount = ds_grid_grd_calendar.getColumn(1, k);
  669. if (cCount >= 6) sColor = "deepskyblue";
  670. else if (cCount >= 5) sColor = "lightgreen";
  671. else if (cCount >= 4) sColor = "lightblue";
  672. else if (cCount >= 3) sColor = "aquamarine";
  673. else if (cCount >= 2) sColor = "gold";
  674. else if (cCount >= 1) sColor = "bisque";
  675. else sColor = "white";
  676. grd_calendar.setCellProperty('Body', k, "background", sColor);
  677. grd_calendar.setCellProperty('Body', k, "background2", sColor);
  678. grd_calendar.setFormatColProperty(k, "size", 23);
  679. var orddd = ds_item1_otpt.getColumn(0, "orddd");
  680. if (!utlf_isNull(orddd)) {
  681. orddd = ds_item1_otpt.getColumn(0, "orddd").substr(6, 2);
  682. }
  683. // 현재 날짜 강조
  684. if (orddd == ds_grid_grd_calendar.getColumn(0, k) ) {
  685. grd_calendar.setCellProperty('Body', k, "font", "Dotum,9,bold");
  686. } else {
  687. grd_calendar.setCellProperty('Body', k, "font", "Dotum,9");
  688. }
  689. }
  690. }
  691. ds_grid_grd_calendar.rowposition = -1;
  692. }
  693. //=======================================================================================
  694. // Function
  695. //---------------------------------------------------------------------------------------
  696. /****************************************************************************************
  697. * Argument :
  698. * Description : 해당 달의 진료 달력 조회
  699. ****************************************************************************************/
  700. function lf_TRPIJ00708()
  701. {
  702. var year = ds_hidden_calendar.getColumn(0, "year");
  703. var month = ds_hidden_calendar.getColumn(0, "month");
  704. var isDate = year+month;
  705. ds_cond_ordddlist.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  706. ds_cond_ordddlist.setColumn(0, "fromdd", isDate+"01");
  707. ds_cond_ordddlist.setColumn(0, "todd", isDate+utlf_lastDateNum(isDate));
  708. ds_cond_ordddlist.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
  709. tranf_submit({
  710. id : "TRPIJ00708"
  711. , service : "bfjudgapp.OutDayJudg"
  712. , method : "reqGetOutDayJudgPreDocuList"
  713. , inds : "req=ds_cond_ordddlist"
  714. , outds : "ds_ordddlist=list"
  715. , async : false
  716. });
  717. }
  718. //=======================================================================================
  719. // Function
  720. //---------------------------------------------------------------------------------------
  721. /****************************************************************************************
  722. * Argument :
  723. * Description : 상병 행 추가
  724. ****************************************************************************************/
  725. function lf_fDiagGridInsertRow(flag)
  726. {
  727. if (utlf_isNull(flag)) {
  728. var iRow = ds_grid_grd_cldihist.addRow();
  729. } else {
  730. var iRow = ds_grid_grd_cldihist.insertRow(ds_grid_grd_cldihist.rowposition+1);
  731. }
  732. var diagseq = 0;
  733. if ( utlf_isNum(ds_grid_grd_cldihist.getMax("diagseq")) == true ) {
  734. diagseq = parseInt(ds_grid_grd_cldihist.getMax("diagseq"))+1;
  735. }
  736. //diagseq = parseInt(diagseq)+1;
  737. ds_grid_grd_cldihist.setColumn(iRow, "diagseq", diagseq);
  738. // 청구과, 진료개시일은 주상병을 기준으로 부여한다.
  739. var diagorddeptcd = ds_grid_grd_cldihist.getColumn(iRow, "diagorddeptcd");
  740. if ( utlf_isNull(diagorddeptcd) ) { // 주상병의 진료과가 입력되지 않은 경우 인적사항의 진료과를 입력한다.
  741. diagorddeptcd = ds_item1_otpt.getColumn(0, "orddeptcd");
  742. }
  743. ds_grid_grd_cldihist.setColumn(iRow, "diagorddeptcd", diagorddeptcd);
  744. ds_grid_grd_cldihist.setColumn(iRow, "ordfromdd", ds_item1_otpt.getColumn(0, "orddd"));
  745. ds_grid_grd_cldihist.setColumn(iRow, "toot", "-");
  746. ds_grid_grd_cldihist.setColumn(iRow, "toot1", "-");
  747. // 추가구분, 의사입력여부
  748. ds_grid_grd_cldihist.setColumn(iRow, "addflag", "Y");
  749. ds_grid_grd_cldihist.setColumn(iRow, "drinptyn", "N");
  750. ds_grid_grd_cldihist.setColumn(iRow, "pid", ds_item1_otpt.getColumn(0, "pid"));
  751. ds_grid_grd_cldihist.setColumn(iRow, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  752. ds_grid_grd_cldihist.setColumn(iRow, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  753. ds_grid_grd_cldihist.setColumn(iRow, "diagkindcd", "0");
  754. }
  755. //=======================================================================================
  756. // Function
  757. //---------------------------------------------------------------------------------------
  758. /****************************************************************************************
  759. * Argument :
  760. * Description : 상병 색 표시
  761. ****************************************************************************************/
  762. function lf_fSetDiagGridColor()
  763. {
  764. for (var j = 0; j < grd_cldihist.getCellCount("body"); j++) {
  765. // 030:희귀난치 060:경증 021,022,025:중증
  766. grd_cldihist.setCellProperty("body", j, "background", 'EXPR(spclflag == "030" ? "#ccffcc" : spclflag == "060" ? "#ccffff" : (spclflag == "021" || spclflag == "022" || spclflag == "025" || spclflag == "041") ? "#ffc4eb" : (spclflag == "999") ? "#ff0000" : "#ffffff")');
  767. grd_cldihist.setCellProperty("body", j, "background2",'EXPR(spclflag == "030" ? "#ccffcc" : spclflag == "060" ? "#ccffff" : (spclflag == "021" || spclflag == "022" || spclflag == "025" || spclflag == "041") ? "#ffc4eb" : (spclflag == "999") ? "#ff0000" : "#ffffff")');
  768. }
  769. }
  770. //=======================================================================================
  771. // Function
  772. //---------------------------------------------------------------------------------------
  773. /****************************************************************************************
  774. * Argument :
  775. * Description : 상병 행 삭제
  776. ****************************************************************************************/
  777. function lf_DiagGridDeleteRow()
  778. {
  779. // 1. 선택된 행의 rowstat = 'D' 로 만든다.
  780. var rtnval = false;
  781. var row;
  782. var rowstatus;
  783. var diagcd;
  784. var diagnm;
  785. var diagseq;
  786. var rowtext;
  787. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++ ) {
  788. if (ds_grid_grd_cldihist.getSelect(i)) {
  789. rowstatus = ds_grid_grd_cldihist.getRowType(i);
  790. diagcd = ds_list1_diag.getColumn(i, "diagcd");
  791. diagnm = ds_list1_diag.getColumn(i, "diagnm");
  792. diagseq = ds_list1_diag.getColumn(i, "diagseq");
  793. if (rowstatus != 8 && utlf_isNull(diagcd) && utlf_isNull(diagnm)) {
  794. }
  795. else {
  796. if (rowstatus == 2) {
  797. ds_grid_grd_cldihist.setRowType(i, "D");
  798. ds_grid_grd_cldihist.setColumn(i, "rowstat", "D");
  799. }
  800. else {
  801. ds_grid_grd_cldihist.setRowType(i, "D");
  802. ds_grid_grd_cldihist.setColumn(i, "rowstat", "D");
  803. ds_grid_grd_cldihist.setColumn(i, "diagseq", "D" + diagseq);
  804. }
  805. }
  806. rtnval = true;
  807. }
  808. }
  809. if (rtnval == true) {
  810. // 2. 기리드의 row 가 'I' 모드이고 rowstat가 "D"이면 그리드에서 삭제한다.
  811. for (i = 0; i < ds_grid_grd_cldihist.rowcount; i++ ) {
  812. rowstatus = ds_grid_grd_cldihist.getRowType(i);
  813. rowtext = ds_grid_grd_cldihist.getColumn(i, "rowstat");
  814. if (rowstatus == 2) {
  815. if (rowstat == "D") ds_grid_grd_cldihist.deleteRow(i);
  816. }
  817. }
  818. // 3. 정렬한다. (삭제된 row는 맨 밑으로
  819. lf_fSortDiagNo();
  820. // 4. seq를 다시 매긴다.
  821. var seq = 1;
  822. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  823. diagseq = ds_list1_diag.getColumn(i, "diagseq");
  824. if (diagseq > "D0") {
  825. }
  826. else {
  827. if (diagseq != seq) {
  828. ds_list1_diag.setColumn(i, "diagseq", seq);
  829. ds_grid_grd_cldihist.setRowType(i, "U");
  830. ds_grid_grd_cldihist.setColumn(i, "rowstat", "U");
  831. }
  832. seq++;
  833. }
  834. }
  835. // 5. 빈줄을 추가한다.
  836. lf_fDiagGridInsertRow();
  837. }
  838. }
  839. //=======================================================================================
  840. // Function
  841. //---------------------------------------------------------------------------------------
  842. /****************************************************************************************
  843. * Argument :
  844. * Description : 상병 삭제 취소
  845. ****************************************************************************************/
  846. function lf_fDiagGridDeleteCancel()
  847. {
  848. var rowstatus;
  849. var no;
  850. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  851. if (ds_grid_grd_cldihist.getSelect(i)) {
  852. rowstatus = ds_grid_grd_cldihist.getRowType(i);
  853. if (rowstatus == 8) {
  854. ds_grid_grd_cldihist.setRowType(i, "U");
  855. no = ds_grid_grd_cldihist.getColumn(i, "diagseq");
  856. no = no.replace("D", "");
  857. ds_grid_grd_cldihist.setColumn(i, "diagseq", no);
  858. ds_grid_grd_cldihist.setRowType(i, "U");
  859. ds_grid_grd_cldihist.setColumn(i, "rowstat", "U");
  860. }
  861. }
  862. }
  863. // 정렬한다. (삭제된 row는 맨 밑으로)
  864. lf_fSortDiagNo();
  865. // seq를 다시 매긴다.
  866. var seq = 1;
  867. var diagseq;
  868. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  869. diagseq = ds_grid_grd_cldihist.getColumn(i, "diagseq");
  870. if (diagseq > "D0") {
  871. }
  872. else {
  873. ds_grid_grd_cldihist.setColumn(i, "diagseq", seq);
  874. seq++;
  875. }
  876. }
  877. // 빈줄을 추가한다.
  878. lf_fDiagGridInsertRow();
  879. }
  880. //=======================================================================================
  881. // Function
  882. //---------------------------------------------------------------------------------------
  883. /****************************************************************************************
  884. * Argument :
  885. * Description : 상병코드 입력 후, 해당 상병코드에 해당되는 정보 조회
  886. ****************************************************************************************/
  887. function lf_fSearchDiageCode()
  888. {
  889. var row = ds_grid_grd_cldihist.rowposition;
  890. var diagcd = ds_grid_grd_cldihist.getColumn(row, "diagcd");
  891. if (diagcd) {
  892. ds_cond_sppiz00400.setColumn(0, "basedd", ds_item1_otpt.getColumn(0, "orddd"));
  893. ds_cond_sppiz00400.setColumn(0, "diagcd", diagcd);
  894. ds_cond_sppiz00400.setColumn(0, "diagnm", "");
  895. ds_cond_sppiz00400.setColumn(0, "selectedrdodiagkind", 1);
  896. // 1. 입력된 상병코드로 emr.mrtmicd10 테이블을 조회한다.
  897. tranf_submit({
  898. id : "TRPIJ00706"
  899. , service : "bfjudgapp.OutDayJudg"
  900. , method : "reqGetSickAndWounded"
  901. , inds : "req=ds_cond_sppiz00400"
  902. , outds : "ds_rslt_sppiz00400=rslt"
  903. , async : false
  904. });
  905. if (ds_rslt_sppiz00400.rowcount != 0 && ds_rslt_sppiz00400.rowcount == 1) {
  906. // 1-1. 조회된 결과가 1건이면
  907. lf_fSetDiagCdNm();
  908. }
  909. else {
  910. // 1-2. 조회된 결과가 없거나 여러 건이면 상병코드 조회를 위해 SPPIZ00400_상병코드조회.xfdl 를 호출한다.
  911. lf_fSearchSPPIZ00400();
  912. if (ds_grid_grd_cldihist.getColumn(row, "diagnm") == null && ds_grid_grd_cldihist.getColumn(row, "diagengnm") == null) {
  913. lf_fSetDiagRowStatus();
  914. return;
  915. }
  916. }
  917. }
  918. }
  919. //=======================================================================================
  920. // Function
  921. //---------------------------------------------------------------------------------------
  922. /****************************************************************************************
  923. * Argument :
  924. * Description : 상병코드 조회 팝업 호출
  925. ****************************************************************************************/
  926. function lf_fSearchSPPIZ00400()
  927. {
  928. // SPPIZ00400_상병코드조회
  929. var cur_row = ds_grid_grd_cldihist.rowposition;
  930. ds_rslt_sppiz00400.clearData();
  931. ds_rslt_sppiz00400.addRow();
  932. var objArg = new Object();
  933. objArg.sDiagcd = ds_grid_grd_cldihist.getColumn(cur_row, "diagcd");
  934. objArg.sSelectedrdodiagkind = 1;
  935. objArg.sSingleFlag = "M";
  936. var objDs = frmf_modal("SPPIZ00400","SPPIZ00400", objArg,"","","","","","","","","","M");
  937. ds_rslt_sppiz00400.copyData(objDs);
  938. var diagcd = ds_rslt_sppiz00400.getColumn(0, "diagcd");
  939. if (utlf_isNull(diagcd)) { // 선택한 코드가 없는 경우
  940. sysf_messageBox("상병조회 화면에서 선택한 결과가", "I004"); //상병조회 화면에서 선택한 결과가 없습니다.
  941. return;
  942. }
  943. else {
  944. ds_grid_grd_cldihist.setColumn(cur_row, "diagcd", ds_rslt_sppiz00400.getColumn(0, "diagcd"));
  945. ds_grid_grd_cldihist.setColumn(cur_row, "diagnm", ds_rslt_sppiz00400.getColumn(0, "diaghngnm"));
  946. for (var i = 1; i < ds_rslt_sppiz00400.rowcount; i++) {
  947. lf_fDiagGridInsertRow("i");
  948. var insertrow = ds_grid_grd_cldihist.rowposition;
  949. ds_grid_grd_cldihist.setColumn(insertrow, "diagcd", ds_rslt_sppiz00400.getColumn(i, "diagcd"));
  950. ds_grid_grd_cldihist.setColumn(insertrow, "diagnm", ds_rslt_sppiz00400.getColumn(i, "diaghngnm"));
  951. }
  952. }
  953. }
  954. //=======================================================================================
  955. // Function
  956. //---------------------------------------------------------------------------------------
  957. /****************************************************************************************
  958. * Argument :
  959. * Description : 상병코드 조회에서 넘어온 상병을 입력
  960. ****************************************************************************************/
  961. function lf_fSetDiagCdNm()
  962. {
  963. var cur_row = ds_grid_grd_cldihist.rowposition;
  964. if (cur_row > -1) {
  965. // 1. 상병코드, 상병명(한글), 상병명(영문)을 입력한다.
  966. var diagcd = ds_rslt_sppiz00400.getColumn(0, "diagcd");
  967. var diaghngnm = ds_rslt_sppiz00400.getColumn(0, "diaghngnm");
  968. var diagengnm = ds_rslt_sppiz00400.getColumn(0, "diagengnm");
  969. ds_grid_grd_cldihist.setColumn(cur_row, "diagcd", diagcd);
  970. ds_grid_grd_cldihist.setColumn(cur_row, "diagnm", diaghngnm);
  971. ds_grid_grd_cldihist.setColumn(cur_row, "diagengnm", diagengnm);
  972. // 2. 해당 상병의 한글상병명과 영문상병명이 Message 용 output 컨트롤에 표시된다.
  973. ds_hidden_list3.setColumn(0, "msgspclformat", "상병코드 - "+ diagcd +" / "+ diaghngnm +" / "+ diagengnm);
  974. var addval1 = ds_grid_grd_cldihist.getColumn(cur_row, "rowstat");
  975. var addval2 = ds_grid_grd_cldihist.getRowType(cur_row);
  976. // 3. 그리드 row 상태를 준다.
  977. var rowstatus = ds_grid_grd_cldihist.getRowType(cur_row);
  978. if (rowstatus != 8) {
  979. if (rowstatus == 2) {
  980. ds_grid_grd_cldihist.setRowType(cur_row, "I");
  981. ds_grid_grd_cldihist.setColumn(cur_row, "rowstat", "I");
  982. }
  983. else {
  984. ds_grid_grd_cldihist.setRowType(cur_row, "U");
  985. ds_grid_grd_cldihist.setColumn(cur_row, "rowstat", "U");
  986. }
  987. }
  988. // 4. 빈 row에 대한 입력은 행 추가를 발생시킨다. (그외에는 행추가가 일어나지 않는다.)
  989. if (utlf_isNull(addval1) && addval2 == 2) lf_fDiagGridInsertRow();
  990. }
  991. }
  992. //=======================================================================================
  993. // Function
  994. //---------------------------------------------------------------------------------------
  995. /****************************************************************************************
  996. * Argument :
  997. * Description : 상병순서 부여
  998. ****************************************************************************************/
  999. function lf_fChangeDiagNo()
  1000. {
  1001. var cur_row = ds_grid_grd_cldihist.rowposition;
  1002. var newseq = ds_grid_grd_cldihist.getColumn(cur_row, "diagseq");
  1003. var oldseq = ds_list1_diag.getColumn(0," oldseq");
  1004. if (newseq) {
  1005. // 1. seq번호를 매긴다.
  1006. if (ds_grid_grd_cldihist.getRowType(cur_row) != 2) {
  1007. ds_grid_grd_cldihist.setRowType(cur_row, "U");
  1008. ds_grid_grd_cldihist.setColumn(cur_row, "U");
  1009. }
  1010. // 2. '09' 와 같은 형식으로 입력한 경우 -> 9로 처리
  1011. newseq = parseInt(ds_grid_grd_cldihist.getColumn(cur_row, "diagseq"), 10);
  1012. // 3. 삭제상태가 아닌 중복된 번호가 있는지 체크한다.
  1013. var sameRow = 0;
  1014. var diagseq = 0;
  1015. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  1016. diagseq = ds_grid_grd_cldihist.getColumn(i, "diagseq");
  1017. if (cur_row != i && diagseq == newseq) {
  1018. sameRow = i;
  1019. i = ds_grid_grd_cldihist.rowcount;
  1020. }
  1021. }
  1022. // 3-1. seq번호 중복
  1023. if (sameRow > 0) {
  1024. // 이전보다 앞번호를 입력한 경우
  1025. if (newseq < oldseq) {
  1026. var rowstatus;
  1027. var curseq;
  1028. for (var i = sameRow; i < cur_row; i++) {
  1029. rowstatus = ds_grid_grd_cldihist.getRowType(i);
  1030. if (rowstatus != 8) {
  1031. curseq = parseInt(ds_grid_grd_cldihist.getColumn(i, "diagseq"), 10);
  1032. if (rowstatus != 2) {
  1033. if (ds_grid_grd_cldihist.getColumn(i, "diagseq") != curseq + 1) {
  1034. ds_grid_grd_cldihist.setRowType(i, "U");
  1035. ds_grid_grd_cldihist.setColumn(i, "rowstat", "U");
  1036. }
  1037. }
  1038. ds_grid_grd_cldihist.setColumn(i, "diagseq", curseq + 1);
  1039. }
  1040. }
  1041. }
  1042. // 이전보다 뒷번호를 입력한 경우
  1043. else {
  1044. var rowstatus;
  1045. var curseq;
  1046. for (var i = cur_row; i < sameRow; i++) {
  1047. if (rowstatus != 8) {
  1048. curseq = parseInt(ds_grid_grd_cldihist.getColumn(i, "diagseq"), 10);
  1049. if (rowstatus != 2) {
  1050. if (ds_grid_grd_cldihist.getColumn(i, "diagseq") != curseq - 1) {
  1051. ds_grid_grd_cldihist.setRowType(i, "U");
  1052. ds_grid_grd_cldihist.setColumn(i, "rowstat", "U");
  1053. }
  1054. }
  1055. ds_grid_grd_cldihist.setColumn(i, "diagseq", curseq - 1);
  1056. }
  1057. }
  1058. }
  1059. // 정렬한다. (삭제된 row는 맨 밑으로)
  1060. lf_fSortDiagNo();
  1061. // seq를 다시 매긴다.
  1062. var seq = 1;
  1063. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  1064. diagseq = ds_grid_grd_cldihist.getColumn(i, "diagseq");
  1065. if (diagseq <= "D0") {
  1066. ds_grid_grd_cldihist.setColumn(i, "diagseq", seq);
  1067. seq++;
  1068. }
  1069. }
  1070. // 빈줄을 추가한다.
  1071. lf_fDiagGridInsertRow();
  1072. }
  1073. // 3-2. seq번호 중복안됨
  1074. else {
  1075. // 정렬한다. (삭제된 row는 맨 밑으로)
  1076. lf_fSortDiagNo();
  1077. // seq를 다시 매긴다.
  1078. var seq = 1;
  1079. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  1080. diagseq = ds_grid_grd_cldihist.getColumn(i, "diagseq");
  1081. if (diagseq <= "D0") {
  1082. ds_grid_grd_cldihist.setColumn(i, "diagseq", seq);
  1083. seq++;
  1084. }
  1085. }
  1086. // 빈줄을 추가한다.
  1087. lf_fDiagGridInsertRow();
  1088. }
  1089. }
  1090. else {
  1091. ds_grid_grd_cldihist.setColumn(cur_row, "diagseq", oldseq);
  1092. ds_grid_grd_cldihist.setRowType(cur_row, ds_list1_diag.getColumn(0," oldrowstat"));
  1093. }
  1094. }
  1095. //=======================================================================================
  1096. // Function
  1097. //---------------------------------------------------------------------------------------
  1098. /****************************************************************************************
  1099. * Argument :
  1100. * Description : 특정내역 행추가
  1101. ****************************************************************************************/
  1102. function lf_fSpclGridInsertRow()
  1103. {
  1104. // ds_grid_grd_clsphist.updatecontrol = false;
  1105. var aRow = ds_grid_grd_clsphist.addRow();
  1106. ds_grid_grd_clsphist.setColumn(aRow, "unitflag", "M");
  1107. ds_grid_grd_clsphist.setColumn(aRow, "edicd", "-");
  1108. ds_grid_grd_clsphist.setColumn(aRow, "currowstat", "1");
  1109. // ds_grid_grd_clsphist.updatecontrol = true;
  1110. ds_grid_grd_clsphist.rowposition = aRow;
  1111. }
  1112. //=======================================================================================
  1113. // Function
  1114. //---------------------------------------------------------------------------------------
  1115. /****************************************************************************************
  1116. * Argument :
  1117. * Description : 특정내역 행삭제
  1118. ****************************************************************************************/
  1119. function lf_fSpclGridDeleteRow()
  1120. {
  1121. var rowstatus;
  1122. var spclcd;
  1123. var spclspec;
  1124. var unitflag;
  1125. var basecd;
  1126. var osclEdicd;
  1127. var cnt = 0;
  1128. var spclEdicd;
  1129. var clopEdicd;
  1130. var rowtext;
  1131. // 여러 row를 동시에 선택하고 삭제하는 기능을 부여한다.
  1132. // for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  1133. for (var i = ds_grid_grd_clsphist.rowcount - 1; i >= -1; i--) {
  1134. if (ds_grid_grd_clsphist.getSelect(i)) {
  1135. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  1136. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  1137. spclspec = ds_grid_grd_clsphist.getColumn(i, "spclspec");
  1138. ds_grid_grd_clodhist.updatecontrol = false;
  1139. if (rowstatus != 8 && utlf_isNull(spclcd) && utlf_isNull(spclspec)) {
  1140. unitflag = ds_grid_grd_clsphist.getColumn(i, "unitflag");
  1141. if (unitflag == "J") {
  1142. for (var j = 0; j < ds_grid_grd_clodhist.rowcount; j++) {
  1143. osclEdicd = ds_grid_grd_clsphist.getColumn(i, "basecd");
  1144. if (basecd == osclEdicd) {
  1145. ds_grid_grd_clodhist.setColumn(j, "cnfmcd", "");
  1146. }
  1147. }
  1148. } else {
  1149. cnt = 0;
  1150. for (var j = 0; j < ds_grid_grd_clsphist.rowcount; j++) {
  1151. spclEdicd = ds_grid_grd_clsphist.getColumn(j, "edicd");
  1152. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(j, "unitflag") == "J") {
  1153. if (ds_grid_grd_clsphist.getColumn(j, "spclcd") != "JT001" && ds_grid_grd_clsphist.getRowType(j) != 8) {
  1154. cnt++;
  1155. }
  1156. }
  1157. }
  1158. if (cnt < 1) {
  1159. for (var k = 0; k < ds_grid_grd_clodhist.rowcount; k++) {
  1160. osclEdicd = ds_grid_grd_clodhist.getColumn(k, "basecd");
  1161. if (basecd == osclEdicd) {
  1162. ds_grid_grd_clodhist.setColumn(k, "lnunitspclspecyn", "");
  1163. ds_grid_grd_clodhist.setColumn(k, "jx999lnunitspclspecyn", "");
  1164. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1165. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1166. }
  1167. }
  1168. }
  1169. }
  1170. ds_grid_grd_clodhist.updatecontrol = true;
  1171. } else if (unitflag == "O") {
  1172. basecd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  1173. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  1174. cnt = 0;
  1175. for (var j = 0; j < ds_grid_grd_clsphist.rowcount; j++) {
  1176. spclEdicd = ds_grid_grd_clsphist.getColumn(j, "edicd");
  1177. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(j, "unitflag") == "O") {
  1178. if (ds_grid_grd_clsphist.getColumn(j, "spclcd") != "JT001" && ds_grid_grd_clsphist.getRowType(j) != 8) {
  1179. cnt++;
  1180. }
  1181. }
  1182. }
  1183. if (cnt < 1) {
  1184. for (var k = 0; k < ds_grid_grd_oprcphist.rowcount; k++) {
  1185. clopEdicd = ds_grid_grd_oprcphist.getColumn(k, "edicd");
  1186. if (basecd == clopEdicd) {
  1187. ds_grid_grd_oprcphist.setColumn(k, "spclspecyn", "");
  1188. ds_grid_grd_oprcphist.setColumn(k, "jx999spclspecyn", "");
  1189. grd_oprcphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "edicd"), "background", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1190. grd_oprcphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "edicd"), "background2", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1191. }
  1192. }
  1193. }
  1194. }
  1195. // 줄을 삭제한다.
  1196. ds_grid_grd_clsphist.updatecontrol = false;
  1197. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  1198. if (rowstatus == 2) {
  1199. ds_grid_grd_clsphist.deleteRow(i);
  1200. } else {
  1201. ds_grid_grd_clsphist.setRowType(i, "D");
  1202. ds_grid_grd_clsphist.setColumn(i, "rowstat", "D");
  1203. }
  1204. ds_grid_grd_clsphist.updatecontrol = true;
  1205. ds_hidden_list3.setColumn(0, "msgspclformat", "");
  1206. }
  1207. }
  1208. for (var i = ds_grid_grd_clsphist.rowcount - 1; i >= -1; i--) {
  1209. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  1210. rowtext = ds_grid_grd_clsphist.getColumn(i, "rowstat");
  1211. if (rowstatus == 2) {
  1212. if (rowtext == "D") {
  1213. ds_grid_grd_clsphist.deleteRow(i);
  1214. }
  1215. }
  1216. }
  1217. // 특정코드 MT015, MT016, MT004 정보가 입력된 환자인지를 확인한다.
  1218. lf_fCheckSpclSpecData();
  1219. }
  1220. //=======================================================================================
  1221. // Function
  1222. //---------------------------------------------------------------------------------------
  1223. /****************************************************************************************
  1224. * Argument :
  1225. * Description : 처방주석입력 줄단위메모
  1226. ****************************************************************************************/
  1227. function lf_fOrderGridInsertCmt()
  1228. {
  1229. ds_cond_sppiz00500.clearData();
  1230. ds_cond_sppiz00500.addRow();
  1231. ds_rslt_sppiz00500.clearData();
  1232. //ds_rslt_sppiz00500.addRow();
  1233. // 1. 특정내역 입력을 위한 팝업을 띄운다.
  1234. var cur_row = ds_grid_grd_clodhist.rowposition;
  1235. var basecd = ds_grid_grd_clodhist.getColumn(cur_row, "basecd");
  1236. var hngnm = ds_grid_grd_clodhist.getColumn(cur_row, "hngnm");
  1237. var edicdflag = ds_grid_grd_clodhist.getColumn(cur_row, "edicdflag");
  1238. var basecd = ds_grid_grd_clodhist.getColumn(cur_row, "basecd");
  1239. if (!utlf_isNull(basecd)) {
  1240. var lnunitspclspecyn = ds_grid_grd_clodhist.getColumn(cur_row, "lnunitspclspecyn");
  1241. // 1-1. 신규 특정내역 입력
  1242. if (utlf_isNull(lnunitspclspecyn)) {
  1243. ds_cond_sppiz00500.setColumn(0, "flag", "I");
  1244. ds_cond_sppiz00500.setColumn(0, "snglcalcscorcd", basecd);
  1245. ds_cond_sppiz00500.setColumn(0, "hngnm", hngnm);
  1246. ds_cond_sppiz00500.setColumn(0, "edilnno", "-");
  1247. ds_cond_sppiz00500.setColumn(0, "spclcd", "JX999");
  1248. ds_cond_sppiz00500.setColumn(0, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  1249. ds_cond_sppiz00500.setColumn(0, "spclspec", "");
  1250. ds_cond_sppiz00500.setColumn(0, "spclformat", "X(700)");
  1251. ds_cond_sppiz00500.setColumn(0, "rownum", "");
  1252. ds_cond_sppiz00500.setColumn(0, "cdnm", "기타내역");
  1253. ds_cond_sppiz00500.setColumn(0, "unitflag", "J");
  1254. }
  1255. // 1-2. 기존 특정내역 수정
  1256. else {
  1257. var rowcnt = 0;
  1258. var setrow = 0;
  1259. var spclEdicd;
  1260. var calcscorcdnm;
  1261. var spclcd;
  1262. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  1263. spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  1264. calcscorcdnm = ds_grid_grd_clsphist.getColumn(i, "calcscorcdnm");
  1265. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(i, "unitflag") == "J") {
  1266. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  1267. // 확인코드가 아닌 경우
  1268. if (spclcd != "JT001" && ds_grid_grd_clsphist.getRowType(i) != 8) {
  1269. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "");
  1270. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", i);
  1271. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", spclEdicd);
  1272. ds_cond_sppiz00500.setColumn(rowcnt, "hngnm", calcscorcdnm);
  1273. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "-");
  1274. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  1275. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  1276. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", ds_grid_grd_clsphist.getColumn(i, "spclformat"));
  1277. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", ds_grid_grd_clsphist.getColumn(i, "cdnm"));
  1278. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", ds_grid_grd_clsphist.getColumn(i, "detldesc"));
  1279. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  1280. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  1281. setrow = i;
  1282. rowcnt = ds_cond_sppiz00500.addRow();
  1283. }
  1284. }
  1285. }
  1286. // 특정내역 상세관리에 띄워줄 특정내역 담기
  1287. if (ds_grid_grd_clsphist.getColumn(setrow, "spclcd") == "JX999") {
  1288. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "");
  1289. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", basecd);
  1290. ds_cond_sppiz00500.setColumn(rowcnt, "hngnm", hngnm);
  1291. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "-");
  1292. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  1293. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", ds_grid_grd_clsphist.getColumn(i, "detldesc"));
  1294. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  1295. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", ds_grid_grd_clsphist.getColumn(i, "spclformat"));
  1296. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", setrow);
  1297. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", ds_grid_grd_clsphist.getColumn(i, "cdnm"));
  1298. ds_cond_sppiz00500.setColumn(rowcnt, "unitflag", "J");
  1299. }
  1300. else {
  1301. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "I");
  1302. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", basecd);
  1303. ds_cond_sppiz00500.setColumn(rowcnt, "hngnm", hngnm);
  1304. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "-");
  1305. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", "JX999");
  1306. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  1307. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", "");
  1308. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", "X(700)");
  1309. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", "");
  1310. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", "기타내역");
  1311. ds_cond_sppiz00500.setColumn(rowcnt, "unitflag", "J");
  1312. }
  1313. }
  1314. var rtnDs = frmf_modal("SPPIZ00500","SPPIZ00500", {objDs:ds_cond_sppiz00500},"","","","","","","","","","M");// SPPIZ00500_특정내역상세관리
  1315. if (rtnDs.rowcount > 0) {
  1316. ds_rslt_sppiz00500.copyData(rtnDs);
  1317. }
  1318. // 2. 특정내역 결과를 화면에 보여준다.
  1319. var rsltcnt = ds_rslt_sppiz00500.rowcount;
  1320. if (rsltcnt > 0) {
  1321. var clsprow = ds_rslt_sppiz00500.rowcount - 1;
  1322. var addcnt = 0;
  1323. var rowstatus;
  1324. var flag;
  1325. var rownum;
  1326. var newspclcd;
  1327. var newcdnm;
  1328. var newspclspec;
  1329. var newspclformat;
  1330. var newdetldesc;
  1331. var oldspclcd;
  1332. var oldspclspec;
  1333. ds_grid_grd_clsphist.enableevent = false;
  1334. for (var i=clsprow; i > -1; i--) {
  1335. flag = ds_rslt_sppiz00500.getColumn(i, "flag");
  1336. rownum = ds_rslt_sppiz00500.getColumn(i, "rownum");
  1337. newspclcd = ds_rslt_sppiz00500.getColumn(i, "spclcd");
  1338. newcdnm = ds_rslt_sppiz00500.getColumn(i, "cdnm");
  1339. newspclspec = ds_rslt_sppiz00500.getColumn(i, "spclspec");
  1340. newspclformat = ds_rslt_sppiz00500.getColumn(i, "spclformat");
  1341. newdetldesc = ds_rslt_sppiz00500.getColumn(i, "detldesc");
  1342. // 2-1. 특정내역 추가
  1343. if (flag == "I") {
  1344. var cRow = ds_grid_grd_clsphist.addRow();
  1345. ds_grid_grd_clsphist.setRowType(cRow, "I");
  1346. ds_grid_grd_clsphist.setColumn(cRow, "rowstat", "I");
  1347. ds_grid_grd_clsphist.setColumn(cRow, "unitflag", "J");
  1348. ds_grid_grd_clsphist.setColumn(cRow, "edicd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1349. ds_grid_grd_clsphist.setColumn(cRow, "spclcd", newspclcd);
  1350. ds_grid_grd_clsphist.setColumn(cRow, "cdnm", newcdnm);
  1351. ds_grid_grd_clsphist.setColumn(cRow, "spclspec", newspclspec);
  1352. ds_grid_grd_clsphist.setColumn(cRow, "spclformat", newspclformat);
  1353. ds_grid_grd_clsphist.setColumn(cRow, "detldesc", newdetldesc);
  1354. ds_grid_grd_clsphist.setColumn(cRow, "calcscorcd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1355. ds_grid_grd_clsphist.setColumn(cRow, "calcscorcdnm", ds_grid_grd_clodhist.getColumn(cur_row, "hngnm"));
  1356. ds_grid_grd_clsphist.setColumn(cRow, "oldspclcd", newspclcd);
  1357. ds_grid_grd_clsphist.setColumn(cRow, "seqno", "");
  1358. ds_grid_grd_clsphist.setColumn(cRow, "prcpdd", ds_grid_grd_clodhist.getColumn(cur_row, "prcpdd"));
  1359. ds_grid_grd_clsphist.setColumn(cRow, "prcpno", ds_grid_grd_clodhist.getColumn(cur_row, "prcpno"));
  1360. ds_grid_grd_clsphist.setColumn(cRow, "prcphistno", ds_grid_grd_clodhist.getColumn(cur_row, "prcphistno"));
  1361. ds_grid_grd_clsphist.setColumn(cRow, "execprcpseqno", ds_grid_grd_clodhist.getColumn(cur_row, "execprcpseqno"));
  1362. ds_grid_grd_clsphist.setColumn(cRow, "currowstat", "");
  1363. ds_grid_grd_clsphist.setColumn(cRow, "edicdflag", ds_grid_grd_clodhist.getColumn(cur_row, "edicdflag"));
  1364. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  1365. addcnt++;
  1366. }
  1367. // 2-2. 특정내역 수정
  1368. else if (flag == "U") {
  1369. if (utlf_isNull(rownum)) {
  1370. rownum = 0;
  1371. }
  1372. ds_grid_grd_clsphist.setRowType(rownum, "U");
  1373. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  1374. ds_grid_grd_clsphist.setColumn(rownum, "edicd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1375. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1376. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcdnm", ds_rslt_sppiz00500.getColumn(0, "hngnm"));
  1377. ds_grid_grd_clsphist.setColumn(rownum, "spclcd", newspclcd);
  1378. ds_grid_grd_clsphist.setColumn(rownum, "cdnm", newcdnm);
  1379. ds_grid_grd_clsphist.setColumn(rownum, "spclspec", newspclspec);
  1380. ds_grid_grd_clsphist.setColumn(rownum, "spclformat", newspclformat);
  1381. ds_grid_grd_clsphist.setColumn(rownum, "detldesc", newdetldesc);
  1382. ds_grid_grd_clsphist.setColumn(rownum, "oldspclcd", newspclcd);
  1383. rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  1384. if (rowstatus == 2) {
  1385. ds_grid_grd_clsphist.setRowType(rownum, "I");
  1386. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "I");
  1387. }
  1388. else{
  1389. ds_grid_grd_clsphist.setRowType(rownum, "U");
  1390. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  1391. }
  1392. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  1393. oldspclcd = ds_rslt_sppiz00500.getColumn(i, "oldspclcd");
  1394. oldspclspec = ds_rslt_sppiz00500.getColumn(i, "oldspclspec");
  1395. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  1396. }
  1397. // 2-3. 특정내역 삭제
  1398. else if (flag == "D" && !utlf_isNull(rownum)) {
  1399. rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  1400. if (rowstatus == 2) {
  1401. ds_grid_grd_clsphist.deleteRow(rownum);
  1402. }
  1403. else {
  1404. ds_grid_grd_clsphist.setRowType(rownum, "D");
  1405. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "D");
  1406. }
  1407. ds_hidden_list3.setColumn(0, "msgspclformat", "입력된 줄단위 특정내역이 없습니다.");
  1408. }
  1409. }
  1410. var cnt = 0;
  1411. var spclEdicd;
  1412. for (var i = 0 ; i < ds_grid_grd_clsphist.rowcount; i++) {
  1413. spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  1414. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(i, "unitflag") == "J") {
  1415. if (ds_grid_grd_clsphist.getRowType(i) != 8) {
  1416. cnt++;
  1417. }
  1418. }
  1419. }
  1420. ds_grid_grd_clodhist.enableevent = false;
  1421. // ds_grid_grd_clodhist.updatecontrol = false;
  1422. if (cnt > 0) {
  1423. if (utlf_isNull(lnunitspclspecyn)) { // 기존에는 입력된 내역이 없다가 추가된 경우임
  1424. var osclEdicd;
  1425. var spclEdicd;
  1426. for (var j = 0; j < ds_grid_grd_clodhist.rowcount; j++) {
  1427. osclEdicd = ds_grid_grd_clodhist.getColumn(j, "basecd");
  1428. if (basecd == osclEdicd) {
  1429. ds_grid_grd_clodhist.setColumn(j, "lnunitspclspecyn", "*");
  1430. for (var k = 0 ; k < ds_grid_grd_clsphist.rowcount; k++) {
  1431. spclEdicd = ds_grid_grd_clsphist.getColumn(k, "edicd");
  1432. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(k, "spclcd") == "JX999") {
  1433. ds_grid_grd_clodhist.setColumn(j, "jx999lnunitspclspecyn", "*");
  1434. }
  1435. }
  1436. // ds_grid_grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + i +' ? "#ffff00" : "")');
  1437. // ds_grid_grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + i +' ? "#ffff00" : "")');
  1438. }
  1439. }
  1440. }
  1441. }
  1442. else { // 특정내역이 한건도 없게 된 경우
  1443. if (!utlf_isNull(lnunitspclspecyn)) { // 기존에는 입력된 내역이 있다가 삭제된 경우임
  1444. var osclEdicd;
  1445. for (var i = 0; i < ds_grid_grd_clodhist.rowcount; i++) {
  1446. osclEdicd = ds_grid_grd_clodhist.getColumn(i, "basecd");
  1447. if (basecd == osclEdicd) {
  1448. ds_grid_grd_clodhist.setColumn(i, "lnunitspclspecyn", "");
  1449. ds_grid_grd_clodhist.setColumn(i, "jx999lnunitspclspecyn", "");
  1450. // ds_grid_grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1451. // ds_grid_grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1452. }
  1453. }
  1454. }
  1455. }
  1456. // ds_grid_grd_clodhist.updatecontrol = true;
  1457. ds_grid_grd_clodhist.enableevent = true;
  1458. ds_grid_grd_clsphist.enableevent = true;
  1459. } // 처리건수 if end
  1460. // 3. 특정내역을 소팅한다. - 특정내역을 소트해야 하는 시기는 특정내역이 추가된 경우 뿐이다.
  1461. if (addcnt > 0) {
  1462. lf_fSortSpclNo();
  1463. // lf_fSpclGridInsertRow();
  1464. }
  1465. }
  1466. else {
  1467. sysf_messageBox("EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이", "I004"); ///EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이 없습니다.
  1468. }
  1469. }
  1470. /****************************************************************************************
  1471. * Argument :
  1472. * Description : 원외처방 줄단위메모
  1473. ****************************************************************************************/
  1474. function lf_fOrderrcpGridInsertCmt()
  1475. {
  1476. ds_cond_sppiz00500.clearData();
  1477. ds_cond_sppiz00500.addRow();
  1478. ds_rslt_sppiz00500.clearData();
  1479. //ds_rslt_sppiz00500.addRow();
  1480. // 1. 특정내역 입력을 위한 팝업을 띄운다.
  1481. var cur_row = ds_grid_grd_oprcphist.rowposition;
  1482. var basecd = ds_grid_grd_oprcphist.getColumn(cur_row, "snglcalcscorcd");
  1483. var hngnm = ds_grid_grd_oprcphist.getColumn(cur_row, "hngnm");
  1484. var edicdflag = ds_grid_grd_oprcphist.getColumn(cur_row, "edicdflag");
  1485. var basecd = ds_grid_grd_oprcphist.getColumn(cur_row, "edicd");
  1486. if (!utlf_isNull(basecd)) {
  1487. var lnunitspclspecyn = ds_grid_grd_oprcphist.getColumn(cur_row, "lnunitspclspecyn");
  1488. // 1-1. 신규 특정내역 입력
  1489. if (utlf_isNull(lnunitspclspecyn)) {
  1490. ds_cond_sppiz00500.setColumn(0, "flag", "I");
  1491. ds_cond_sppiz00500.setColumn(0, "snglcalcscorcd", basecd);
  1492. ds_cond_sppiz00500.setColumn(0, "hngnm", hngnm);
  1493. ds_cond_sppiz00500.setColumn(0, "edilnno", "-");
  1494. ds_cond_sppiz00500.setColumn(0, "spclcd", "JX999");
  1495. ds_cond_sppiz00500.setColumn(0, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  1496. ds_cond_sppiz00500.setColumn(0, "spclspec", "");
  1497. ds_cond_sppiz00500.setColumn(0, "spclformat", "X(700)");
  1498. ds_cond_sppiz00500.setColumn(0, "rownum", "");
  1499. ds_cond_sppiz00500.setColumn(0, "cdnm", "기타내역");
  1500. ds_cond_sppiz00500.setColumn(0, "unitflag", "J");
  1501. }
  1502. // 1-2. 기존 특정내역 수정
  1503. else {
  1504. var rowcnt = 0;
  1505. var setrow = 0;
  1506. var spclEdicd;
  1507. var calcscorcdnm;
  1508. var spclcd;
  1509. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  1510. spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  1511. calcscorcdnm = ds_grid_grd_clsphist.getColumn(i, "calcscorcdnm");
  1512. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(i, "unitflag") == "J") {
  1513. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  1514. // 확인코드가 아닌 경우
  1515. if (spclcd != "JT001" && ds_grid_grd_clsphist.getRowType(i) != 8) {
  1516. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "");
  1517. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", i);
  1518. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", spclEdicd);
  1519. ds_cond_sppiz00500.setColumn(rowcnt, "hngnm", calcscorcdnm);
  1520. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "-");
  1521. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  1522. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  1523. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", ds_grid_grd_clsphist.getColumn(i, "spclformat"));
  1524. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", ds_grid_grd_clsphist.getColumn(i, "cdnm"));
  1525. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", ds_grid_grd_clsphist.getColumn(i, "detldesc"));
  1526. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  1527. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  1528. setrow = i;
  1529. rowcnt = ds_cond_sppiz00500.addRow();
  1530. }
  1531. }
  1532. }
  1533. // 특정내역 상세관리에 띄워줄 특정내역 담기
  1534. if (ds_grid_grd_clsphist.getColumn(setrow, "spclcd") == "JX999") {
  1535. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "");
  1536. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", basecd);
  1537. ds_cond_sppiz00500.setColumn(rowcnt, "hngnm", hngnm);
  1538. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "-");
  1539. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  1540. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", ds_grid_grd_clsphist.getColumn(i, "detldesc"));
  1541. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  1542. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", ds_grid_grd_clsphist.getColumn(i, "spclformat"));
  1543. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", setrow);
  1544. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", ds_grid_grd_clsphist.getColumn(i, "cdnm"));
  1545. ds_cond_sppiz00500.setColumn(rowcnt, "unitflag", "J");
  1546. }
  1547. else {
  1548. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "I");
  1549. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", basecd);
  1550. ds_cond_sppiz00500.setColumn(rowcnt, "hngnm", hngnm);
  1551. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "-");
  1552. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", "JX999");
  1553. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  1554. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", "");
  1555. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", "X(700)");
  1556. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", "");
  1557. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", "기타내역");
  1558. ds_cond_sppiz00500.setColumn(rowcnt, "unitflag", "J");
  1559. }
  1560. }
  1561. var rtnDs = frmf_modal("SPPIZ00500","SPPIZ00500", {objDs:ds_cond_sppiz00500},"","","","","","","","","","M");// SPPIZ00500_특정내역상세관리
  1562. if (rtnDs.rowcount > 0) {
  1563. ds_rslt_sppiz00500.copyData(rtnDs);
  1564. }
  1565. // 2. 특정내역 결과를 화면에 보여준다.
  1566. var rsltcnt = ds_rslt_sppiz00500.rowcount;
  1567. if (rsltcnt > 0) {
  1568. var clsprow = ds_rslt_sppiz00500.rowcount - 1;
  1569. var addcnt = 0;
  1570. var rowstatus;
  1571. var flag;
  1572. var rownum;
  1573. var newspclcd;
  1574. var newcdnm;
  1575. var newspclspec;
  1576. var newspclformat;
  1577. var newdetldesc;
  1578. var oldspclcd;
  1579. var oldspclspec;
  1580. ds_grid_grd_clsphist.enableevent = false;
  1581. for (var i=clsprow; i > -1; i--) {
  1582. flag = ds_rslt_sppiz00500.getColumn(i, "flag");
  1583. rownum = ds_rslt_sppiz00500.getColumn(i, "rownum");
  1584. newspclcd = ds_rslt_sppiz00500.getColumn(i, "spclcd");
  1585. newcdnm = ds_rslt_sppiz00500.getColumn(i, "cdnm");
  1586. newspclspec = ds_rslt_sppiz00500.getColumn(i, "spclspec");
  1587. newspclformat = ds_rslt_sppiz00500.getColumn(i, "spclformat");
  1588. newdetldesc = ds_rslt_sppiz00500.getColumn(i, "detldesc");
  1589. // 2-1. 특정내역 추가
  1590. if (flag == "I") {
  1591. var cRow = ds_grid_grd_clsphist.addRow();
  1592. ds_grid_grd_clsphist.setRowType(cRow, "I");
  1593. ds_grid_grd_clsphist.setColumn(cRow, "rowstat", "I");
  1594. ds_grid_grd_clsphist.setColumn(cRow, "unitflag", "J");
  1595. ds_grid_grd_clsphist.setColumn(cRow, "edicd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1596. ds_grid_grd_clsphist.setColumn(cRow, "spclcd", newspclcd);
  1597. ds_grid_grd_clsphist.setColumn(cRow, "cdnm", newcdnm);
  1598. ds_grid_grd_clsphist.setColumn(cRow, "spclspec", newspclspec);
  1599. ds_grid_grd_clsphist.setColumn(cRow, "spclformat", newspclformat);
  1600. ds_grid_grd_clsphist.setColumn(cRow, "detldesc", newdetldesc);
  1601. ds_grid_grd_clsphist.setColumn(cRow, "calcscorcd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1602. ds_grid_grd_clsphist.setColumn(cRow, "calcscorcdnm", ds_grid_grd_oprcphist.getColumn(cur_row, "hngnm"));
  1603. ds_grid_grd_clsphist.setColumn(cRow, "oldspclcd", newspclcd);
  1604. ds_grid_grd_clsphist.setColumn(cRow, "seqno", "");
  1605. ds_grid_grd_clsphist.setColumn(cRow, "prcpdd", ds_grid_grd_oprcphist.getColumn(cur_row, "prcpdd"));
  1606. ds_grid_grd_clsphist.setColumn(cRow, "prcpno", ds_grid_grd_oprcphist.getColumn(cur_row, "prcpno"));
  1607. ds_grid_grd_clsphist.setColumn(cRow, "prcphistno", ds_grid_grd_oprcphist.getColumn(cur_row, "prcphistno"));
  1608. ds_grid_grd_clsphist.setColumn(cRow, "execprcpseqno", ds_grid_grd_oprcphist.getColumn(cur_row, "execprcpseqno"));
  1609. ds_grid_grd_clsphist.setColumn(cRow, "currowstat", "");
  1610. ds_grid_grd_clsphist.setColumn(cRow, "edicdflag", ds_grid_grd_oprcphist.getColumn(cur_row, "edicdflag"));
  1611. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  1612. addcnt++;
  1613. }
  1614. // 2-2. 특정내역 수정
  1615. else if (flag == "U") {
  1616. if (utlf_isNull(rownum)) {
  1617. rownum = 0;
  1618. }
  1619. ds_grid_grd_clsphist.setRowType(rownum, "U");
  1620. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  1621. ds_grid_grd_clsphist.setColumn(rownum, "edicd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1622. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcd", ds_rslt_sppiz00500.getColumn(0, "snglcalcscorcd"));
  1623. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcdnm", ds_rslt_sppiz00500.getColumn(0, "hngnm"));
  1624. ds_grid_grd_clsphist.setColumn(rownum, "spclcd", newspclcd);
  1625. ds_grid_grd_clsphist.setColumn(rownum, "cdnm", newcdnm);
  1626. ds_grid_grd_clsphist.setColumn(rownum, "spclspec", newspclspec);
  1627. ds_grid_grd_clsphist.setColumn(rownum, "spclformat", newspclformat);
  1628. ds_grid_grd_clsphist.setColumn(rownum, "detldesc", newdetldesc);
  1629. ds_grid_grd_clsphist.setColumn(rownum, "oldspclcd", newspclcd);
  1630. rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  1631. if (rowstatus == 2) {
  1632. ds_grid_grd_clsphist.setRowType(rownum, "I");
  1633. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "I");
  1634. }
  1635. else{
  1636. ds_grid_grd_clsphist.setRowType(rownum, "U");
  1637. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  1638. }
  1639. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  1640. oldspclcd = ds_rslt_sppiz00500.getColumn(i, "oldspclcd");
  1641. oldspclspec = ds_rslt_sppiz00500.getColumn(i, "oldspclspec");
  1642. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  1643. }
  1644. // 2-3. 특정내역 삭제
  1645. else if (flag == "D" && !utlf_isNull(rownum)) {
  1646. rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  1647. if (rowstatus == 2) {
  1648. ds_grid_grd_clsphist.deleteRow(rownum);
  1649. }
  1650. else {
  1651. ds_grid_grd_clsphist.setRowType(rownum, "D");
  1652. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "D");
  1653. }
  1654. ds_hidden_list3.setColumn(0, "msgspclformat", "입력된 줄단위 특정내역이 없습니다.");
  1655. }
  1656. }
  1657. var cnt = 0;
  1658. var spclEdicd;
  1659. for (var i = 0 ; i < ds_grid_grd_clsphist.rowcount; i++) {
  1660. spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  1661. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(i, "unitflag") == "J") {
  1662. if (ds_grid_grd_clsphist.getRowType(i) != 8) {
  1663. cnt++;
  1664. }
  1665. }
  1666. }
  1667. ds_grid_grd_oprcphist.enableevent = false;
  1668. // ds_grid_grd_oprcphist.updatecontrol = false;
  1669. if (cnt > 0) {
  1670. if (utlf_isNull(lnunitspclspecyn)) { // 기존에는 입력된 내역이 없다가 추가된 경우임
  1671. var osclEdicd;
  1672. var spclEdicd;
  1673. for (var j = 0; j < ds_grid_grd_oprcphist.rowcount; j++) {
  1674. osclEdicd = ds_grid_grd_oprcphist.getColumn(j, "basecd");
  1675. if (basecd == osclEdicd) {
  1676. ds_grid_grd_oprcphist.setColumn(j, "lnunitspclspecyn", "*");
  1677. for (var k = 0 ; k < ds_grid_grd_clsphist.rowcount; k++) {
  1678. spclEdicd = ds_grid_grd_clsphist.getColumn(k, "edicd");
  1679. if (basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(k, "spclcd") == "JX999") {
  1680. ds_grid_grd_oprcphist.setColumn(j, "jx999lnunitspclspecyn", "*");
  1681. }
  1682. }
  1683. // ds_grid_grd_oprcphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + i +' ? "#ffff00" : "")');
  1684. // ds_grid_grd_oprcphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + i +' ? "#ffff00" : "")');
  1685. }
  1686. }
  1687. }
  1688. }
  1689. else { // 특정내역이 한건도 없게 된 경우
  1690. if (!utlf_isNull(lnunitspclspecyn)) { // 기존에는 입력된 내역이 있다가 삭제된 경우임
  1691. var osclEdicd;
  1692. for (var i = 0; i < ds_grid_grd_oprcphist.rowcount; i++) {
  1693. osclEdicd = ds_grid_grd_oprcphist.getColumn(i, "basecd");
  1694. if (basecd == osclEdicd) {
  1695. ds_grid_grd_oprcphist.setColumn(i, "lnunitspclspecyn", "");
  1696. ds_grid_grd_oprcphist.setColumn(i, "jx999lnunitspclspecyn", "");
  1697. // ds_grid_grd_oprcphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1698. // ds_grid_grd_oprcphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  1699. }
  1700. }
  1701. }
  1702. }
  1703. // ds_grid_grd_oprcphist.updatecontrol = true;
  1704. ds_grid_grd_oprcphist.enableevent = true;
  1705. ds_grid_grd_clsphist.enableevent = true;
  1706. } // 처리건수 if end
  1707. // 3. 특정내역을 소팅한다. - 특정내역을 소트해야 하는 시기는 특정내역이 추가된 경우 뿐이다.
  1708. if (addcnt > 0) {
  1709. lf_fSortSpclNo();
  1710. // lf_fSpclGridInsertRow();
  1711. }
  1712. }
  1713. else {
  1714. sysf_messageBox("EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이", "I004"); ///EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이 없습니다.
  1715. }
  1716. }
  1717. //=======================================================================================
  1718. // Function
  1719. //---------------------------------------------------------------------------------------
  1720. /****************************************************************************************
  1721. * Argument :
  1722. * Description : 확인코드 입력
  1723. ****************************************************************************************/
  1724. function lf_fOrderGridInsertCnfmCd()
  1725. {
  1726. var cur_row = ds_grid_grd_clodhist.rowposition;
  1727. var basecd = ds_grid_grd_clodhist.getColumn(cur_row, "basecd");
  1728. if (!utlf_isNull(basecd)) {
  1729. // 1. 확인코드 조회 팝업을 호출한다.
  1730. var objArg = new Object();
  1731. objArg.sCode = ds_grid_grd_clodhist.getColumn(cur_row, "cnfmcd");
  1732. var rtn = frmf_modal("SPPIZ01100","SPPIZ01100", objArg,"","","","","","","","","","M");
  1733. // 2. 확인코드 조회 결과를 처리한다.
  1734. if (!utlf_isNull(rtn)) {
  1735. var cnfmcd = rtn.sCode; //ds_rslt_sppiz01100.getColumn(0, "code");
  1736. if (!utlf_isNull(cnfmcd)) {
  1737. // 2-1. 처방그리드 확인코드 값을 넣는다.
  1738. var osclEdicd;
  1739. for (var i = 0; i < ds_grid_grd_clodhist.rowcount; i++) {
  1740. osclEdicd = ds_grid_grd_clodhist.getColumn(i, "basecd");
  1741. if (basecd == osclEdicd) {
  1742. ds_grid_grd_clodhist.updatecontrol = false;
  1743. ds_grid_grd_clodhist.setColumn(i, "cnfmcd", cnfmcd);
  1744. ds_grid_grd_clodhist.updatecontrol = true;
  1745. // ds_grid_grd_clodhist.setColumn(i, "cnfmcd", ds_grid_grd_clsphist.getColumn(ds_grid_grd_clsphist.rowposition, "spclspec"));
  1746. }
  1747. }
  1748. // 2-2. 기존에 특정내역에 존재하는 확인코드일 경우, 확인코드를 수정한다.
  1749. var isFind = false;
  1750. var unitflag;
  1751. var spclEdicd;
  1752. var spclSpclcd;
  1753. var rowstatus;
  1754. ds_grid_grd_clsphist.enableevent = false;
  1755. for (var i = 0; i < ds_grid_grd_clsphist.rowcount && isFind != true; i++) {
  1756. unitflag = ds_grid_grd_clsphist.getColumn(i, "unitflag");
  1757. if (unitflag == "J") {
  1758. spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  1759. spclSpclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  1760. if (spclEdicd == basecd && spclSpclcd == "JT001") {
  1761. ds_grid_grd_clsphist.setColumn(i, "rowstat", "U");
  1762. ds_grid_grd_clsphist.setColumn(i, "edicd", basecd);
  1763. ds_grid_grd_clsphist.setColumn(i, "spclcd", "JT001");
  1764. ds_grid_grd_clsphist.setColumn(i, "cdnm", "확인코드");
  1765. ds_grid_grd_clsphist.setColumn(i, "spclspec", cnfmcd);
  1766. ds_grid_grd_clsphist.setColumn(i, "remfact", "X(5)");
  1767. ds_grid_grd_clsphist.setColumn(i, "spclformat", "X(5)");
  1768. ds_grid_grd_clsphist.setColumn(i, "detldesc", "진료행위에 대한 추가기술 사항을 구분하는 코드로서 확인코드가 여러개 발생할 경우 '/'로 구분하여 기재");
  1769. ds_grid_grd_clsphist.setColumn(i, "calcscorcd", basecd);
  1770. ds_grid_grd_clsphist.setColumn(i, "calcscorcdnm", ds_grid_grd_clodhist.getColumn(cur_row, "hngnm"));
  1771. ds_grid_grd_clsphist.setColumn(i, "oldspclcd", "JT001");
  1772. ds_grid_grd_clsphist.setColumn(i, "prcpdd", ds_grid_grd_clodhist.getColumn(cur_row, "prcpdd"));
  1773. ds_grid_grd_clsphist.setColumn(i, "prcpno", ds_grid_grd_clodhist.getColumn(cur_row, "prcpno"));
  1774. ds_grid_grd_clsphist.setColumn(i, "prcphistno", ds_grid_grd_clodhist.getColumn(cur_row, "prcphistno"));
  1775. ds_grid_grd_clsphist.setColumn(i, "execprcpseqno", ds_grid_grd_clodhist.getColumn(cur_row, "execprcpseqno"));
  1776. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  1777. if (rowstatus == 2) {
  1778. ds_grid_grd_clsphist.setColumn(i, "rowstat", "I");
  1779. ds_grid_grd_clsphist.setRowType(i, "I");
  1780. }
  1781. else {
  1782. ds_grid_grd_clsphist.setColumn(i, "rowstat", "U");
  1783. ds_grid_grd_clsphist.setRowType(i, "U");
  1784. }
  1785. isFind = true;
  1786. }
  1787. }
  1788. }
  1789. // 2-3. 신규 입력 확인코드일 경우, 확인코드를 추가한다.
  1790. if (isFind == false) {
  1791. var clspRow = ds_grid_grd_clsphist.addRow(); //ds_grid_grd_clsphist.rowcount - 1;
  1792. ds_grid_grd_clsphist.setRowType(clspRow, "I");
  1793. ds_grid_grd_clsphist.setColumn(clspRow, "rowstat", "I");
  1794. ds_grid_grd_clsphist.setColumn(clspRow, "unitflag", "J");
  1795. ds_grid_grd_clsphist.setColumn(clspRow, "edicd", basecd);
  1796. ds_grid_grd_clsphist.setColumn(clspRow, "spclcd", "JT001");
  1797. ds_grid_grd_clsphist.setColumn(clspRow, "cdnm", "확인코드");
  1798. ds_grid_grd_clsphist.setColumn(clspRow, "spclspec", cnfmcd);
  1799. ds_grid_grd_clsphist.setColumn(clspRow, "remfact", "X(5)");
  1800. ds_grid_grd_clsphist.setColumn(clspRow, "spclformat", "X(5)");
  1801. ds_grid_grd_clsphist.setColumn(clspRow, "detldesc", "진료행위에 대한 추가기술 사항을 구분하는 코드로서 확인코드가 여러개 발생할 경우 '/'로 구분하여 기재");
  1802. ds_grid_grd_clsphist.setColumn(clspRow, "calcscorcd", basecd);
  1803. ds_grid_grd_clsphist.setColumn(clspRow, "calcscorcdnm", ds_grid_grd_clodhist.getColumn(cur_row, "hngnm"));
  1804. ds_grid_grd_clsphist.setColumn(clspRow, "oldspclcd", "JT001");
  1805. ds_grid_grd_clsphist.setColumn(clspRow, "seqno", "");
  1806. ds_grid_grd_clsphist.setColumn(clspRow, "prcpdd", ds_grid_grd_clodhist.getColumn(cur_row, "prcpdd"));
  1807. ds_grid_grd_clsphist.setColumn(clspRow, "prcpno", ds_grid_grd_clodhist.getColumn(cur_row, "prcpno"));
  1808. ds_grid_grd_clsphist.setColumn(clspRow, "prcphistno", ds_grid_grd_clodhist.getColumn(cur_row, "prcphistno"));
  1809. ds_grid_grd_clsphist.setColumn(clspRow, "execprcpseqno", ds_grid_grd_clodhist.getColumn(cur_row, "execprcpseqno"));
  1810. ds_grid_grd_clsphist.setColumn(clspRow, "currowstat", "");
  1811. lf_fSortSpclNo();
  1812. // lf_fSpclGridInsertRow();
  1813. }
  1814. ds_grid_grd_clsphist.enableevent = true;
  1815. }
  1816. }
  1817. }
  1818. }
  1819. //=======================================================================================
  1820. // Function
  1821. //---------------------------------------------------------------------------------------
  1822. /****************************************************************************************
  1823. * Argument :
  1824. * Description : 특정내역상세관리화면에서 '결과조회' 팝업 띄움
  1825. ****************************************************************************************/
  1826. function lf_fOrderRsltSrch()
  1827. {
  1828. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  1829. if (!utlf_isNull(cretno)) {
  1830. if (grp_dropdownmenu.visible == true) {
  1831. grp_dropdownmenu.visible = false;
  1832. }
  1833. ds_cond_smaer00800.setColumn(0, "srchdate1", ds_item1_otpt.getColumn(0, "orddd"));
  1834. ds_cond_smaer00800.setColumn(0, "srchdate2", utlf_getCurrentDate());
  1835. ds_cond_smaer00800.setColumn(0, "srchpid", ds_item1_otpt.getColumn(0, "pid"));
  1836. ds_cond_smaer00800.setColumn(0, "wardcd", "");
  1837. ds_cond_smaer00800.setColumn(0, "roomcd", "");
  1838. ds_cond_smaer00800.setColumn(0, "listflag", "P");
  1839. ds_cond_smaer00800.setColumn(0, "deptcd", ds_item1_otpt.getColumn(0, "orddd"));
  1840. ds_cond_smaer00800.setColumn(0, "drid", ds_item1_otpt.getColumn(0, "orddd"));
  1841. ds_cond_smaer00800.setColumn(0, "chkcheck", "");
  1842. ds_cond_smaer00800.setColumn(0, "chkcheck1", "A");
  1843. ds_cond_smaer00800.setColumn(0, "chkcheck2", "B");
  1844. ds_cond_smaer00800.setColumn(0, "chkcheck3", "C");
  1845. ds_cond_smaer00800.setColumn(0, "chkcheck4", "D");
  1846. ds_cond_smaer00800.setColumn(0, "chkcheck5", "E");
  1847. ds_cond_smaer00800.setColumn(0, "chkcheck6", "F");
  1848. ds_cond_smaer00800.setColumn(0, "chkcheck7", "G");
  1849. ds_cond_smaer00800.setColumn(0, "chkcheck8", "");
  1850. ds_cond_smaer00800.setColumn(0, "tabflag", "");
  1851. ds_cond_smaer00800.setColumn(0, "mdlcd", "");
  1852. ds_cond_smaer00800.setColumn(0, "examgubun", "");
  1853. ds_cond_smaer00800.setColumn(0, "srchflag", "B");
  1854. ds_cond_smaer00800.setColumn(0, "hlaflag", "N");
  1855. ds_cond_smaer00800.setColumn(0, "prntfrmflag", "");
  1856. frmf_open("SMAER00800", "SMAER00800", {ds_cond_smaer00800:ds_cond_smaer00800}, "", "", "", "", "", "", "", "", "", "M");
  1857. }
  1858. }
  1859. //=======================================================================================
  1860. // Function
  1861. //---------------------------------------------------------------------------------------
  1862. /****************************************************************************************
  1863. * Argument :
  1864. * Description : 처방보험인정기준조회
  1865. ****************************************************************************************/
  1866. function lf_fOrderInsuRcogBase()
  1867. {
  1868. var objArg = new Object();
  1869. objArg.sCalcscorcd = ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "snglcalcscorcd");
  1870. objArg.sCalcscorcdnm = ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "hngnm");
  1871. objArg.sLimtcd = "";
  1872. objArg.sAppdd = "";
  1873. objArg.prcpcd = "";
  1874. objArg.sPreviewyn = "Y";
  1875. objArg.sBhviewyn = "Y";
  1876. // SPPIZ01600_보험인정기준조회 팝업 연결 (선택된 row의 처방코드를 넘겨준다.)
  1877. frmf_modal("SPPIZ01600","SPPIZ01600", objArg,"","","","","","","","","","M");
  1878. }
  1879. /****************************************************************************************
  1880. * Argument :
  1881. * Description : 원외보험인정기준조회
  1882. ****************************************************************************************/
  1883. function lf_fOrderrcpInsuRcogBase()
  1884. {
  1885. var objArg = new Object();
  1886. objArg.sCalcscorcd = ds_grid_grd_oprcphist.getColumn(ds_grid_grd_oprcphist.rowposition, "snglcalcscorcd");
  1887. objArg.sCalcscorcdnm = ds_grid_grd_oprcphist.getColumn(ds_grid_grd_oprcphist.rowposition, "hngnm");
  1888. objArg.sLimtcd = "";
  1889. objArg.sAppdd = "";
  1890. objArg.prcpcd = "";
  1891. objArg.sPreviewyn = "Y";
  1892. objArg.sBhviewyn = "Y";
  1893. // SPPIZ01600_보험인정기준조회 팝업 연결 (선택된 row의 처방코드를 넘겨준다.)
  1894. frmf_modal("SPPIZ01600","SPPIZ01600", objArg,"","","","","","","","","","M");
  1895. }
  1896. //=======================================================================================
  1897. // Function
  1898. //---------------------------------------------------------------------------------------
  1899. /****************************************************************************************
  1900. * Argument :
  1901. * Description : 처방수가조회
  1902. ****************************************************************************************/
  1903. function lf_fOrderCalcScorSrch()
  1904. {
  1905. var objArg = new Object();
  1906. objArg.instcd = sysf_getUserInfo("systeminstcd");
  1907. if (grd_clodhist.currentcol == grd_clodhist.getBindCellIndex("body", "grupcalcscorcd")) {
  1908. objArg.calcscorcd = ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "grupcalcscorcd");
  1909. frmf_open("SMPIC00300", "SMPIC00300", objArg, "", "", "", "", "", "", "", "", "", "M");
  1910. }
  1911. else {
  1912. objArg.calcscorcd = ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "snglcalcscorcd");
  1913. objArg.judgflag = "Y"
  1914. frmf_open("SMPIC00100", "SMPIC00100", objArg, "", "", "", "", "", "", "", "", "", "M");
  1915. }
  1916. }
  1917. /****************************************************************************************
  1918. * Argument :
  1919. * Description : 원외처방수가조회
  1920. ****************************************************************************************/
  1921. function lf_fOprcpOrderCalcScorSrch()
  1922. {
  1923. var objArg = new Object();
  1924. objArg.instcd = sysf_getUserInfo("systeminstcd");
  1925. if (grd_oprcphist.currentcol == grd_oprcphist.getBindCellIndex("body", "edicd")) {
  1926. objArg.calcscorcd = ds_grid_grd_oprcphist.getColumn(ds_grid_grd_oprcphist.rowposition, "edicd");
  1927. frmf_open("SMPIC00300", "SMPIC00300", objArg, "", "", "", "", "", "", "", "", "", "M");
  1928. }
  1929. else {
  1930. objArg.calcscorcd = ds_grid_grd_oprcphist.getColumn(ds_grid_grd_oprcphist.rowposition, "edicd");
  1931. objArg.judgflag = "Y"
  1932. frmf_open("SMPIC00100", "SMPIC00100", objArg, "", "", "", "", "", "", "", "", "", "M");
  1933. }
  1934. }
  1935. //=======================================================================================
  1936. // Function
  1937. //---------------------------------------------------------------------------------------
  1938. /****************************************************************************************
  1939. * Argument :
  1940. * Description : 약품편람
  1941. ****************************************************************************************/
  1942. function lf_fOrderDrugHBook()
  1943. {
  1944. var objArg = new Object();
  1945. objArg.calcscorcd = ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "snglcalcscorcd");
  1946. frmf_modal("SMADB01900", "SMADB01900", objArg, "", "", "", "", "", "", "", "", "", "M");
  1947. }
  1948. //=======================================================================================
  1949. // Function
  1950. //---------------------------------------------------------------------------------------
  1951. /****************************************************************************************
  1952. * Argument : 01.pid : 등록번호
  1953. 02.orddd : 진료일자
  1954. 03.cretno : 생성번호
  1955. * Description : 대상자조회에서 대상자 선택하여 넘어올때 메세지 여부 확인
  1956. ****************************************************************************************/
  1957. function lf_fGetPatMsgYn(pid, orddd, cretno ) {
  1958. // 1. 환자의 작성된 메세지를 조회한다.
  1959. if ( !utlf_isNull(pid) && !utlf_isNull(orddd) && !utlf_isNull(cretno) ) {
  1960. ds_cond_msg01.clearData();
  1961. ds_cond_msg01.addRow();
  1962. ds_cond_msg01.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  1963. ds_cond_msg01.setColumn(0, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  1964. ds_cond_msg01.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  1965. ds_cond_msg01.setColumn(0, "mskind", "M");
  1966. ds_cond_msg01.setColumn(0, "ordtype", "O");
  1967. tranf_submit({
  1968. id : "TRPIZ01903"
  1969. , service : "insucomapp.JudgMsgTrsm"
  1970. , method : "reqGetJudgMainMsgRef"
  1971. , inds : "req=ds_cond_msg01"
  1972. , outds : "ds_data_msglist=list"
  1973. , async : false
  1974. });
  1975. if (ds_data_msglist.rowcount > 0) {
  1976. btn_ptbsmemo.style.color = "#ff0000ff";
  1977. }
  1978. else {
  1979. btn_ptbsmemo.style.color = "#002e5c";
  1980. }
  1981. }
  1982. }
  1983. //=======================================================================================
  1984. // Function
  1985. //---------------------------------------------------------------------------------------
  1986. /****************************************************************************************
  1987. * Argument :
  1988. * Description : 환자기준 전송메세지작성
  1989. ****************************************************************************************/
  1990. function lf_fPatJudgPatMsgTrsm()
  1991. {
  1992. if (!utlf_isNull(ds_item1_otpt.getColumn(0, "pid"))) {
  1993. // 세션값 받기
  1994. var userid = sysf_getUserInfos("userid");
  1995. var usernm = sysf_getUserInfos("usernm");
  1996. var posinstcd = sysf_getUserInfos("posinstcd");
  1997. var posinstnm = sysf_getUserInfos("posinstnm");
  1998. var posdeptcd = sysf_getUserInfos("posdeptcd");
  1999. var posdeptnm = sysf_getUserInfos("posdeptnm");
  2000. if (utlf_isNull(userid) || userid == " " || userid == "-") userid = "pam";
  2001. ds_cond_SPPIZ01900.setColumn(0, "instcd", sysf_getUserInfo("systeminstcd")); // ""
  2002. ds_cond_SPPIZ01900.setColumn(0, "msgwrtedd", utlf_getCurrentDate());
  2003. ds_cond_SPPIZ01900.setColumn(0, "msgwrteno", "");
  2004. ds_cond_SPPIZ01900.setColumn(0, "msgwrtehistno", "");
  2005. ds_cond_SPPIZ01900.setColumn(0, "histstat", "Y");
  2006. ds_cond_SPPIZ01900.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  2007. ds_cond_SPPIZ01900.setColumn(0, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  2008. ds_cond_SPPIZ01900.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  2009. ds_cond_SPPIZ01900.setColumn(0, "mskind", "M");
  2010. ds_cond_SPPIZ01900.setColumn(0, "orddeptcd", ds_item1_otpt.getColumn(0, "orddeptcd"));
  2011. ds_cond_SPPIZ01900.setColumn(0, "orddrid", ds_item1_otpt.getColumn(0, "orddrid"));
  2012. ds_cond_SPPIZ01900.setColumn(0, "orddrnm", ds_init_orddridlist.getColumn(ds_init_orddridlist.findRowAs("cd", ds_item1_otpt.getColumn(0, "orddrid")), "nm"));
  2013. ds_cond_SPPIZ01900.setColumn(0, "ordtype", "O"); // 외래기본 'O', chk
  2014. ds_cond_SPPIZ01900.setColumn(0, "kindflag", "P"); // 환자기준 'P', chk
  2015. ds_cond_SPPIZ01900.setColumn(0, "grupcalcscorcd", "-");
  2016. ds_cond_SPPIZ01900.setColumn(0, "snglcalcscorcd", "-");
  2017. ds_cond_SPPIZ01900.setColumn(0, "ordqty", 0);
  2018. ds_cond_SPPIZ01900.setColumn(0, "ordtims", 0);
  2019. ds_cond_SPPIZ01900.setColumn(0, "orddays", 0);
  2020. ds_cond_SPPIZ01900.setColumn(0, "prcpdd", "-");
  2021. ds_cond_SPPIZ01900.setColumn(0, "prcpno", 0);
  2022. ds_cond_SPPIZ01900.setColumn(0, "prcppayflag", "-");
  2023. ds_cond_SPPIZ01900.setColumn(0, "rgstrid", "-");
  2024. ds_cond_SPPIZ01900.setColumn(0, "rgstdd", "-");
  2025. ds_cond_SPPIZ01900.setColumn(0, "rgsttm", "-");
  2026. ds_cond_SPPIZ01900.setColumn(0, "sendphone", "");
  2027. ds_cond_SPPIZ01900.setColumn(0, "anybodyyn", "N");
  2028. ds_cond_SPPIZ01900.setColumn(0, "sendflag", "O");
  2029. ds_cond_SPPIZ01900.setColumn(0, "senddate", "");
  2030. ds_cond_SPPIZ01900.setColumn(0, "deliveid", "-");
  2031. ds_cond_SPPIZ01900.setColumn(0, "recvdate", "");
  2032. ds_cond_SPPIZ01900.setColumn(0, "recvid", "");
  2033. ds_cond_SPPIZ01900.setColumn(0, "recvcnfmyn", "N");
  2034. ds_cond_SPPIZ01900.setColumn(0, "recvcnfmid", userid);
  2035. ds_cond_SPPIZ01900.setColumn(0, "sendmsg", "");
  2036. ds_cond_SPPIZ01900.setColumn(0, "recvmsg", "");
  2037. ds_cond_SPPIZ01900.setColumn(0, "fstrgstrid", "");
  2038. ds_cond_SPPIZ01900.setColumn(0, "fstrgstdt", "");
  2039. ds_cond_SPPIZ01900.setColumn(0, "lastupdtrid", "");
  2040. ds_cond_SPPIZ01900.setColumn(0, "lastupdtdt", "");
  2041. ds_msgtrsm_info.copyData(ds_cond_SPPIZ01900);
  2042. }
  2043. else {
  2044. sysf_messageBox("기본정보가 ", "I004");
  2045. }
  2046. frmf_modal("SPPIZ01900","SPPIZ01900", {ds_cond_SMPIJ02600:ds_cond_SMPIJ02600},"","","","","","","","","","M");
  2047. }
  2048. //=======================================================================================
  2049. // Function
  2050. //---------------------------------------------------------------------------------------
  2051. /****************************************************************************************
  2052. * Argument :
  2053. * Description : 처방기준 전송메세지작성
  2054. ****************************************************************************************/
  2055. function lf_fOrderJudgPatMsgTrsm()
  2056. {
  2057. if (!utlf_isNull(ds_item1_otpt.getColumn(0, "pid"))) {
  2058. //처방이므로 처방row선택여부 확인
  2059. if (ds_grid_grd_clodhist.rowposition < 0) {
  2060. return;
  2061. }
  2062. // 세션값 받기
  2063. var userid = sysf_getUserInfos("userid");
  2064. var usernm = sysf_getUserInfos("usernm");
  2065. var posinstcd = sysf_getUserInfos("posinstcd");
  2066. var posinstnm = sysf_getUserInfos("posinstnm");
  2067. var posdeptcd = sysf_getUserInfos("posdeptcd");
  2068. var posdeptnm = sysf_getUserInfos("posdeptnm");
  2069. if (utlf_isNull(userid) || userid == " " || userid == "-") userid = "pam";
  2070. ds_cond_SPPIZ01900.setColumn(0, "instcd", sysf_getUserInfo("systeminstcd")); // ""
  2071. ds_cond_SPPIZ01900.setColumn(0, "msgwrtedd", utlf_getCurrentDate());
  2072. ds_cond_SPPIZ01900.setColumn(0, "msgwrteno", "");
  2073. ds_cond_SPPIZ01900.setColumn(0, "msgwrtehistno", "");
  2074. ds_cond_SPPIZ01900.setColumn(0, "histstat", "Y");
  2075. ds_cond_SPPIZ01900.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  2076. ds_cond_SPPIZ01900.setColumn(0, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  2077. ds_cond_SPPIZ01900.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  2078. ds_cond_SPPIZ01900.setColumn(0, "mskind", "M");
  2079. ds_cond_SPPIZ01900.setColumn(0, "orddeptcd", ds_item1_otpt.getColumn(0, "orddeptcd"));
  2080. ds_cond_SPPIZ01900.setColumn(0, "orddrid", ds_item1_otpt.getColumn(0, "orddrid"));
  2081. ds_cond_SPPIZ01900.setColumn(0, "orddrnm", ds_init_orddridlist.getColumn(ds_init_orddridlist.findRowAs("cd", ds_item1_otpt.getColumn(0, "orddrid")), "nm"));
  2082. ds_cond_SPPIZ01900.setColumn(0, "ordtype", "O"); // 외래기본 'O', chk
  2083. ds_cond_SPPIZ01900.setColumn(0, "kindflag", "O"); // 처방기준 'O', chk
  2084. ds_cond_SPPIZ01900.setColumn(0, "grupcalcscorcd", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "grupcalcscorcd"));
  2085. ds_cond_SPPIZ01900.setColumn(0, "snglcalcscorcd", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "snglcalcscorcd"));
  2086. ds_cond_SPPIZ01900.setColumn(0, "ordqty", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "ordqty"));
  2087. ds_cond_SPPIZ01900.setColumn(0, "ordtims", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "ordtims"));
  2088. ds_cond_SPPIZ01900.setColumn(0, "orddays", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "orddays"));
  2089. ds_cond_SPPIZ01900.setColumn(0, "prcpdd", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "prcpdd"));
  2090. ds_cond_SPPIZ01900.setColumn(0, "prcpno", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "prcpno"));
  2091. ds_cond_SPPIZ01900.setColumn(0, "prcppayflag", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "prcppayflag"));
  2092. ds_cond_SPPIZ01900.setColumn(0, "rgstrid", "-");
  2093. ds_cond_SPPIZ01900.setColumn(0, "rgstdd", "-");
  2094. ds_cond_SPPIZ01900.setColumn(0, "rgsttm", "-");
  2095. ds_cond_SPPIZ01900.setColumn(0, "sendphone", "");
  2096. ds_cond_SPPIZ01900.setColumn(0, "anybodyyn", "N");
  2097. ds_cond_SPPIZ01900.setColumn(0, "sendflag", "O");
  2098. ds_cond_SPPIZ01900.setColumn(0, "deliveid", "-");
  2099. ds_cond_SPPIZ01900.setColumn(0, "recvdate", "");
  2100. ds_cond_SPPIZ01900.setColumn(0, "recvid", "");
  2101. ds_cond_SPPIZ01900.setColumn(0, "recvcnfmyn", "N");
  2102. ds_cond_SPPIZ01900.setColumn(0, "recvcnfmid", userid);
  2103. ds_cond_SPPIZ01900.setColumn(0, "sendmsg", "");
  2104. ds_cond_SPPIZ01900.setColumn(0, "recvmsg", "");
  2105. ds_cond_SPPIZ01900.setColumn(0, "fstrgstrid", "");
  2106. ds_cond_SPPIZ01900.setColumn(0, "fstrgstdt", "");
  2107. ds_cond_SPPIZ01900.setColumn(0, "lastupdtrid", "");
  2108. ds_cond_SPPIZ01900.setColumn(0, "lastupdtdt", "");
  2109. ds_msgtrsm_info.copyData(ds_cond_SPPIZ01900);
  2110. }
  2111. else {
  2112. sysf_messageBox("기본정보가 ", "I004");
  2113. }
  2114. frmf_modal("SPPIZ01900","SPPIZ01900", {ds_cond_SMPIJ02600:ds_cond_SMPIJ02600},"","","","","","","","","","M");
  2115. }
  2116. //=======================================================================================
  2117. // Function
  2118. //---------------------------------------------------------------------------------------
  2119. /****************************************************************************************
  2120. * Argument :
  2121. * Description : 환자 전체 메세지 내용 조회하여 하나씩 보기
  2122. ****************************************************************************************/
  2123. function lf_fJudgPatMsgTrsmRef()
  2124. {
  2125. // ds_cond_SMPIJ02600.setColumn(0, "refyn", "Y");
  2126. // ds_cond_SMPIJ02600.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  2127. // ds_cond_SMPIJ02600.setColumn(0, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  2128. // ds_cond_SMPIJ02600.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  2129. // ds_cond_SMPIJ02600.setColumn(0, "mskind", "M");
  2130. // ds_cond_SMPIJ02600.setColumn(0, "orddeptcd", ds_item1_otpt.getColumn(0, "orddeptcd"));
  2131. // ds_cond_SMPIJ02600.setColumn(0, "orddrid", ds_item1_otpt.getColumn(0, "orddrid"));
  2132. // ds_cond_SMPIJ02600.setColumn(0, "ordtype", "O");
  2133. // ds_cond_SMPIJ02600.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  2134. //
  2135. // frmf_modal("SMPIJ02600", "SMPIJ02600", {ds_cond_SMPIJ02600:ds_cond_SMPIJ02600});
  2136. var pid = ipt_pid.value; // 메세지 현황에 등록번호반환
  2137. var objArg = new Object();
  2138. objArg.sPid = pid;
  2139. frmf_modal("SMPIJ02600","SMPIJ02600", objArg,"","","","","","","","","","M");
  2140. }
  2141. //=======================================================================================
  2142. // Function
  2143. //---------------------------------------------------------------------------------------
  2144. /****************************************************************************************
  2145. * Argument :
  2146. * Description : 산정코드조회
  2147. ****************************************************************************************/
  2148. function lf_fSrchEstmCd()
  2149. {
  2150. ds_cond_sppiz00800.clearData();
  2151. ds_cond_sppiz00800.addRow();
  2152. var cur_row = ds_grid_grd_clodhist.rowcount;
  2153. var estmcls = ds_grid_grd_clodhist.getColumn(cur_row, "estmcls");
  2154. var insukindcd = ds_item1_otpt.getColumn(0, "insukindcd");
  2155. if (utlf_isNull(insukindcd)) {
  2156. sysf_messageBox("심사대상자의 보험유형이", "I004"); ///심사대상자의 보험유형이 없습니다
  2157. return false;
  2158. }
  2159. ds_cond_sppiz00800.setColumn(0, "name" , this.name);
  2160. ds_cond_sppiz00800.setColumn(0, "calcscorcd", ds_grid_grd_clodhist.getColumn(cur_row, "snglcalcscorcd"));
  2161. ds_cond_sppiz00800.setColumn(0, "insukind" , insukindcd);
  2162. ds_cond_sppiz00800.setColumn(0, "estmcls" , estmcls);
  2163. ds_cond_sppiz00800.setColumn(0, "estmmncd" , ds_grid_grd_clodhist.getColumn(cur_row, "ordtodd"));
  2164. //ds_cond_sppiz00800.setColumn(0, "todd" , todd);
  2165. ds_cond_sppiz00800.setColumn(0, "todd" , "");
  2166. frmf_modal("SPPIZ00800", "SPPIZ00800", {objDs:ds_cond_sppiz00800}, "", "", "", "", "", "", "", "", "", "M"); // SPPIZ00800_산정코드조회.xfdl
  2167. return true;
  2168. }
  2169. //=======================================================================================
  2170. // Function
  2171. //---------------------------------------------------------------------------------------
  2172. /****************************************************************************************
  2173. * Argument :
  2174. * Description : 특정내역 소트
  2175. ****************************************************************************************/
  2176. function lf_fSortSpclNo()
  2177. {
  2178. var rowstatus;
  2179. var spclcd;
  2180. var spclspec;
  2181. if (ds_grid_grd_clsphist.rowcount > 0) {
  2182. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  2183. // row 초기화
  2184. ds_grid_grd_clsphist.filter("");
  2185. // 삭제시킨 특정내역은 소트 시 맨 뒤로 위치하도록 설정
  2186. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  2187. ds_grid_grd_clsphist.updatecontrol = false;
  2188. if (rowstatus == 8) { // 삭제상태
  2189. ds_grid_grd_clsphist.setColumn(i, "currowstat", parseInt(rowstatus, 10 ) + 10);
  2190. }
  2191. else {
  2192. ds_grid_grd_clsphist.setColumn(i, "currowstat", rowstatus);
  2193. }
  2194. ds_grid_grd_clsphist.updatecontrol = true;
  2195. // 특정코드, 특정내역 없는 줄 삭제
  2196. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  2197. spclspec = ds_grid_grd_clsphist.getColumn(i, "spclspec");
  2198. if (rowstatus != 8 && utlf_isNull(spclcd) && utlf_isNull(spclspec)) {
  2199. ds_grid_grd_clsphist.deleteRow(i);
  2200. i--;
  2201. }
  2202. }
  2203. // 소트 수행
  2204. ds_grid_grd_clsphist.keystring = "";
  2205. ds_grid_grd_clsphist.keystring = "S:-currowstat-unitflag+edicd+spclcd";
  2206. // ds_grid_grd_clsphist.keystring = "S:-unitflag-currowstat+edicd+spclcd";
  2207. }
  2208. }
  2209. //=======================================================================================
  2210. // Function
  2211. //---------------------------------------------------------------------------------------
  2212. /****************************************************************************************
  2213. * Argument :
  2214. * Description : 상병 위로 이동
  2215. ****************************************************************************************/
  2216. function lf_fDiagSeqUp()
  2217. {
  2218. var row = ds_grid_grd_cldihist.rowposition;
  2219. // 1. 삭제된 row의 경우 이동 불가
  2220. var rowstatus = ds_grid_grd_cldihist.getRowType(row);
  2221. if ( rowstatus == 8 ) return;
  2222. // 2. 빈 row의 경우 이동 불가
  2223. var diagnm = ds_grid_grd_cldihist.getColumn(row, "diagnm");
  2224. if ( utlf_isNull(diagnm) ) return;
  2225. // 3. row 위로 이동
  2226. //if ( !utlf_isNull(ds_grid_grd_cldihist.getColumn(row, "diagseq")) && ds_grid_grd_cldihist.rowcount > 1) { // row 가 2개 이상일때만
  2227. var diagseq = parseInt(ds_grid_grd_cldihist.getColumn(row, "diagseq"));
  2228. if ( diagseq > 1 ) {
  2229. ds_grid_grd_cldihist.setColumn(row, "diagseq", --diagseq);
  2230. //alert(--diagseq);
  2231. if ( rowstatus == 1 || rowstatus == 4 ) {
  2232. ds_grid_grd_cldihist.updatecontrol = false;
  2233. ds_grid_grd_cldihist.setRowType(row, "U");
  2234. ds_grid_grd_cldihist.setColumn(row, "rowstat", "U");
  2235. ds_grid_grd_cldihist.updatecontrol = true;
  2236. }
  2237. // 바로 위 상병순서와 중복되는 경우
  2238. var nextrow = row - 1;
  2239. var nextdiagseq = ds_grid_grd_cldihist.getColumn(nextrow, "diagseq");
  2240. //diagseq = ds_grid_grd_cldihist.getColumn(nextrow, "diagseq");
  2241. if ( diagseq == nextdiagseq ) {
  2242. ds_grid_grd_cldihist.setColumn(nextrow, "diagseq", ++diagseq);
  2243. //alert(++diagseq);
  2244. rowstatus = ds_grid_grd_cldihist.getRowType(nextrow);
  2245. if ( rowstatus == 1 || rowstatus == 4 ) {
  2246. ds_grid_grd_cldihist.updatecontrol = false;
  2247. ds_grid_grd_cldihist.setRowType(nextrow, "U");
  2248. ds_grid_grd_cldihist.setColumn(nextrow, "rowstat", "U");
  2249. ds_grid_grd_cldihist.updatecontrol = true;
  2250. }
  2251. }
  2252. //lf_fSortDiagNo(); // 상병내역 소트
  2253. //lf_fDiagGridInsertRow(); // 상병 행 추가
  2254. }
  2255. //}
  2256. }
  2257. //=======================================================================================
  2258. // Function
  2259. //---------------------------------------------------------------------------------------
  2260. /****************************************************************************************
  2261. * Argument :
  2262. * Description : 상병 아래로 이동
  2263. ****************************************************************************************/
  2264. function lf_fDiagSeqDown()
  2265. {
  2266. var row = ds_grid_grd_cldihist.rowposition;
  2267. // 1. 삭제된 row의 경우 이동 불가
  2268. var rowstatus = ds_grid_grd_cldihist.getRowType(row);
  2269. if ( rowstatus == 8 ) return;
  2270. // 2. 빈 row의 경우 이동 불가
  2271. var diagnm = ds_grid_grd_cldihist.getColumn(row, "diagnm");
  2272. if ( utlf_isNull(diagnm) ) return;
  2273. var diagseq = parseInt(ds_grid_grd_cldihist.getColumn(row, "diagseq")); // 선택된 줄의 NO
  2274. ds_grid_grd_cldihist.setColumn(row, "diagseq", ++diagseq); //diagseq+1
  2275. //alert(++diagseq);
  2276. if ( rowstatus == 1 || rowstatus == 4 ) {
  2277. ds_grid_grd_cldihist.updatecontrol = false;
  2278. ds_grid_grd_cldihist.setRowType(row, "U");
  2279. ds_grid_grd_cldihist.setColumn(row, "rowstat", "U");
  2280. ds_grid_grd_cldihist.updatecontrol = true;
  2281. }
  2282. // 바로 아래 상병순서와 중복되는 경우
  2283. var nextrow = ds_grid_grd_cldihist.rowposition + 1;
  2284. var nextdiagseq = ds_grid_grd_cldihist.getColumn(nextrow, "diagseq");
  2285. //diagseq = ds_grid_grd_cldihist.getColumn(row, "diagseq");
  2286. if ( diagseq == nextdiagseq ) {
  2287. ds_grid_grd_cldihist.setColumn(nextrow, "diagseq", --diagseq); //nextdiagseq-1
  2288. //alert(--diagseq);
  2289. rowstatus = ds_grid_grd_cldihist.getRowType(nextrow);
  2290. if ( rowstatus == 1 || rowstatus == 4 ) {
  2291. ds_grid_grd_cldihist.updatecontrol = false;
  2292. ds_grid_grd_cldihist.setRowType(nextrow, "U");
  2293. ds_grid_grd_cldihist.setColumn(nextrow, "rowstat", "U");
  2294. ds_grid_grd_cldihist.updatecontrol = true;
  2295. }
  2296. }
  2297. // lf_fSortDiagNo(); // 상병내역 소트
  2298. // lf_fDiagGridInsertRow(); // 상병 행 추가
  2299. }
  2300. //=======================================================================================
  2301. // Function
  2302. //---------------------------------------------------------------------------------------
  2303. /****************************************************************************************
  2304. * Argument :
  2305. * Description : 상병내역 소트
  2306. ****************************************************************************************/
  2307. function lf_fSortDiagNo()
  2308. {
  2309. if ( ds_grid_grd_cldihist.rowcount > 1 ) { //0
  2310. //for (var j = ds_grid_grd_cldihist.rowcount-1; j >= 0; j--) {
  2311. for (var j = ds_grid_grd_cldihist.rowcount-1; j >= 1; j--) {
  2312. // 상병코드, 상병명 없는 줄 삭제
  2313. var rowstatus = ds_grid_grd_cldihist.getRowType(j);
  2314. var diagcd = ds_grid_grd_cldihist.getColumn(j, "diagcd");
  2315. var diagnm = ds_grid_grd_cldihist.getColumn(j, "diagnm");
  2316. //alert(j + " : diagcd = " + diagcd + " / diagnm = " + diagnm);
  2317. if ( rowstatus != 8 && utlf_isNull(diagcd) && utlf_isNull(diagnm) ) {
  2318. ds_grid_grd_cldihist.deleteRow(j);
  2319. }
  2320. }
  2321. var cldino = 1;
  2322. ds_grid_grd_cldihist.updatecontrol = false;
  2323. for (var i=0; i<ds_grid_grd_cldihist.rowcount; i++) {
  2324. if (ds_grid_grd_cldihist.getRowType(i) != 8) {
  2325. //ds_grid_grd_cldihist.setColumn(i, "diagseq", i+1);
  2326. ds_grid_grd_cldihist.setColumn(i, "diagseq", cldino++);
  2327. ds_grid_grd_cldihist.setColumn(i, "status", "u");
  2328. ds_grid_grd_cldihist.setRowType(i, Dataset.ROWTYPE_UPDATE);
  2329. }
  2330. }
  2331. for (var i=0; i<ds_grid_grd_cldihist.rowcount; i++) {
  2332. if (ds_grid_grd_cldihist.getRowType(i) == 8) {
  2333. ds_grid_grd_cldihist.setColumn(i, "diagseq", cldino++);
  2334. ds_grid_grd_cldihist.setColumn(i, "status", "d");
  2335. ds_grid_grd_cldihist.setRowType(i, Dataset.ROWTYPE_DELETE);
  2336. }
  2337. }
  2338. ds_grid_grd_cldihist.updatecontrol = true;
  2339. // 소트 수행
  2340. ds_grid_grd_cldihist.keystring = "S:+diagseq";
  2341. }
  2342. }
  2343. //=======================================================================================
  2344. // Function
  2345. //---------------------------------------------------------------------------------------
  2346. /****************************************************************************************
  2347. * Argument :
  2348. * Description : 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 삭제"
  2349. ****************************************************************************************/
  2350. function lf_fDiagGridDeleteRow()
  2351. {
  2352. dsf_deleteSelectedRows(grd_cldihist, true); // 멀티 삭제
  2353. for (var i=0; i<ds_grid_grd_cldihist.rowcount; i++) {
  2354. if ( ds_grid_grd_cldihist.getSelect(i) == true ) {
  2355. ds_grid_grd_cldihist.updatecontrol = false;
  2356. ds_grid_grd_cldihist.setColumn(i, "rowstat", "D");
  2357. //ds_grid_grd_cldihist.setColumn(i, "diagseq", "D"+String(i));
  2358. ds_grid_grd_cldihist.setColumn(i, "diagseq", ds_grid_grd_cldihist.getColumn(i, "seqno"));
  2359. ds_grid_grd_cldihist.setRowType(i, "D");
  2360. ds_grid_grd_cldihist.updatecontrol = true;
  2361. }
  2362. }
  2363. lf_fSortDiagNo(); // 상병내역 소트
  2364. lf_fDiagGridInsertRow();
  2365. }
  2366. //=======================================================================================
  2367. // Function
  2368. //---------------------------------------------------------------------------------------
  2369. /****************************************************************************************
  2370. * Argument :
  2371. * Description : 이전명세서 목록에서 선택한 청구키의 명세서를 이미 열려있는 Popup 화면으로 조회시에 호출
  2372. ****************************************************************************************/
  2373. function lf_fActivatePreDocuWindow()
  2374. {
  2375. var rslt = lf_fInitSrchData(); // 화면을 초기화한다.
  2376. if (rslt == false) { // 수정사항 저장이 완료되지 않아 초기화할 수 없는 경우
  2377. return false;
  2378. }
  2379. var pid = opener.ds_cond_smpij00700.getColumn(0, "pid");
  2380. var orddd = opener.ds_cond_smpij00700.getColumn(0, "orddd");
  2381. var cretno = opener.ds_cond_smpij00700.getColumn(0, "cretno");
  2382. var acptseqno = opener.ds_cond_smpij00700.getColumn(0, "acptseqno");
  2383. var insukindcd = opener.ds_cond_smpij00700.getColumn(0, "insukindcd");
  2384. if ( !utlf_isNull(pid) && !utlf_isNull(orddd) && !utlf_isNull(cretno) && !utlf_isNull(acptseqno) && !utlf_isNull(insukindcd) ) {
  2385. ds_send_item1_otpt.setColumn(0, "pid", pid);
  2386. ds_send_item1_otpt.setColumn(0, "orddd", orddd);
  2387. ds_send_item1_otpt.setColumn(0, "cretno", cretno);
  2388. ds_send_item1_otpt.setColumn(0, "acptseqno", acptseqno);
  2389. ds_send_item1_otpt.setColumn(0, "insukindcd", insukindcd);
  2390. //document.title = "이전 명세서 상병/처방 조회";
  2391. tranf_submit({
  2392. id : "TRPIJ00701"
  2393. , service : "bfjudgapp.OutDayJudg"
  2394. , method : "reqGetOutDayJudgTrgtMan"
  2395. , inds : "req=ds_send_item1_otpt"
  2396. , outds : "ds_item1_otpt=otpt ds_item3_supp=supp ds_list1_diag=diag ds_list2_oscl=oscl ds_list3_clcj=clcj ds_patinfo=patinfolist ds_ordddlist=list ds_item7_kopg=kopg ds_item8_asrtjudg=asrtjudg ds_list8_judgmemo=judgmemo ds_list9_edimemo=edimemo"
  2397. , async : false
  2398. });
  2399. if (utlf_isNull(ds_item1_otpt.getColumn(0, "pid") || utlf_isNull(ds_item1_otpt.getColumn(0, "cretno")))) {
  2400. ds_item1_otpt.appendData(ds_rslt_smpij00600, true, true);
  2401. }
  2402. ds_item1_otpt.setColumn(0, "dschjudgprcsstat", dschjudgprcsstat);
  2403. // 데이타셋 매핑
  2404. ds_grid_grd_cldihist.copyData(ds_list1_diag); // 상병
  2405. ds_grid_grd_cldihist.addColumn("status", "STRING");
  2406. ds_grid_grd_clodhist.copyData(ds_list2_oscl); // 처방
  2407. // TODO : 일시 '-' 일때 null 처리 추가
  2408. ds_grid_grd_clsphist.copyData(ds_list3_clcj); // 특정내역
  2409. ds_grid_grd_oprcphist.copyData(ds_list7_clop); // 원외처방
  2410. ds_grid_grd_judgmemo.copyData(ds_list8_judgmemo); // 심사자메모
  2411. if (ds_grid_grd_judgmemo.rowcount > 0) {
  2412. ds_grid_grd_judgmemo.updatecontrol = false;
  2413. for (var i=0; i<ds_grid_grd_judgmemo.rowcount; i++) { // 심사자 입력일시 수정
  2414. ds_grid_grd_judgmemo.setColumn(i, "fstrgstdt", urlf_getStrDate(ds_grid_grd_judgmemo.getColumn(i, "fstrgstdt").substr(0,14)));
  2415. }
  2416. ds_grid_grd_judgmemo.updatecontrol = true;
  2417. }
  2418. ds_grid_grd_edimemo.copyData(ds_list9_edimemo); // edi메모
  2419. // 체크박스 변환 설정
  2420. lf_changecheck1(ds_grid_grd_cldihist, "diagkindcd", "C", 0);
  2421. lf_fSetDayJudgTrgtManSrchData();
  2422. }
  2423. else {
  2424. lf_fCheckAuth(); // 화면 권한을 설정한다.
  2425. }
  2426. }
  2427. //=======================================================================================
  2428. // Function
  2429. //---------------------------------------------------------------------------------------
  2430. /****************************************************************************************
  2431. * Argument :
  2432. * Description : 화면 권한을 설정한다.
  2433. ****************************************************************************************/
  2434. function lf_fCheckAuth()
  2435. {
  2436. var judgendyn = ds_item1_otpt.getColumn(0, "dschjudgprcsstat");
  2437. if ( judgendyn == "E" || judgendyn == "D" ) {
  2438. // 외래사전심사상태 (P0379) - A: 미심사, B: 심사중, D: 보류, E: 통합심사완료
  2439. ds_properties.setColumn(0, "auth", "10100000"); // 송신된 경우 처리권한을 부여하지 않는다.
  2440. }
  2441. else {
  2442. ds_properties.setColumn(0, "auth", "11100000");
  2443. }
  2444. var xAuth = frmf_checkAuth("X"); // 처리권한(입력, 수정, 삭제 등)
  2445. btn_save.enable = xAuth; // 저장
  2446. var pAuth = frmf_checkAuth("P"); // 출력권한(보고서 출력, 엑셀 내려받기 등)
  2447. btn_excelsave.enable = pAuth; // 엑셀
  2448. btn_print.enable = pAuth; // 출력
  2449. }
  2450. //=======================================================================================
  2451. // Function
  2452. //---------------------------------------------------------------------------------------
  2453. /****************************************************************************************
  2454. * Argument :
  2455. * Description : 기존 조회 내역 중 수정 사항이 있는 경우 저장할 것인지를 물어본다.
  2456. ****************************************************************************************/
  2457. function lf_fCheckChangeSave()
  2458. {
  2459. var initclbs = ds_hidden_item1_initotpt.getColumn(0, "pid");
  2460. var isChange = 0;
  2461. if ( !utlf_isNull(initclbs) ) {
  2462. var clbsupdatadata = false;
  2463. if (ds_hidden_item1_initotpt.getColumn(0, "suppkindcd") != ds_item1_otpt.getColumn(0, "suppkindcd")) {
  2464. clbsupdatadata = true;
  2465. }
  2466. else if (ds_hidden_item1_initotpt.getColumn(0, "ordfildcd") != ds_item1_otpt.getColumn(0, "ordfildcd")) {
  2467. clbsupdatadata = true;
  2468. }
  2469. else if (ds_hidden_item1_initotpt.getColumn(0, "orddeptcd") != ds_item1_otpt.getColumn(0, "orddeptcd")) {
  2470. clbsupdatadata = true;
  2471. }
  2472. else if (ds_hidden_item1_initotpt.getColumn(0, "orddrid") != ds_item1_otpt.getColumn(0, "orddrid")) {
  2473. clbsupdatadata = true;
  2474. }
  2475. else if (ds_hidden_item1_initotpt.getColumn(0, "ordrsltcd") != ds_item1_otpt.getColumn(0, "ordrsltcd")) {
  2476. clbsupdatadata = true;
  2477. }
  2478. else if (ds_hidden_item1_initotpt.getColumn(0, "insuno") != ds_item1_otpt.getColumn(0, "insuno")) {
  2479. clbsupdatadata = true;
  2480. }
  2481. else if (ds_hidden_item1_initotpt.getColumn(0, "certno") != ds_item1_otpt.getColumn(0, "certno")) {
  2482. clbsupdatadata = true;
  2483. }
  2484. if (clbsupdatadata == false) {
  2485. var clspupdtdata = grdf_getGridUpdateData(grp_clsphist.swt_spclmemo.case_spclspec.grd_clsphist); // 그리드 업데이트 데이터 반환, 업데이트 정보가 없을경우 "" 반환
  2486. var clodupdtdata = grdf_getGridUpdateData(grd_clodhist);
  2487. var clopupdtdata = grdf_getGridUpdateData(grd_oprcphist);
  2488. if (clodupdtdata.rowcount > 0 || clopupdtdata.rowcount > 0) {
  2489. isChange++;
  2490. } else { // 처방, 원외처방의 수정사항이 없는 경우
  2491. for (var i = ds_grid_grd_cldihist.rowcount - 1; i > -1; i-- ) {
  2492. var rowstatus = ds_grid_grd_cldihist.getRowType(i);
  2493. var diagcd = ds_list1_diag.getColumn(i, "diagcd");
  2494. // 상병코드와 진료개시일이 입력되지 않은 경우 1:insert 3:insert & new
  2495. if ( rowstatus == 2 ) {
  2496. if ( utlf_isNull(diagcd) ) {
  2497. // 줄을 삭제한다.
  2498. ds_grid_grd_cldihist.deleteRow(i);
  2499. delcldiCheck = true;
  2500. }
  2501. }
  2502. }
  2503. // 상병의 경우 기본적으로 추가된 줄을 삭제한 후 체크한다.
  2504. var cldiupdtdata = grdf_getGridUpdateData(grd_cldihist);
  2505. if ( cldiupdtdata.rowcount > 0 ) {
  2506. isChange++;
  2507. }
  2508. for (var i=ds_grid_grd_clsphist.rowcount-1; i>-1; i-- ) {
  2509. var rowstatus = ds_grid_grd_clsphist.getRowType(i);
  2510. var spclcd = ds_list3_clcj.getColumn(i, "spclcd");
  2511. // 구분코드가 입력되지 않은 경우
  2512. if ( rowstatus == 2 ) { // 1 : insert, 3 : insert & new
  2513. if ( utlf_isNull(spclcd) ) {
  2514. // 줄을 삭제한다.
  2515. ds_grid_grd_clsphist.deleteRow(i);
  2516. delclcjCheck = true;
  2517. }
  2518. }
  2519. }
  2520. // 특정내역의 경우 기본적으로 추가된 줄을 삭제한 후 체크한다.
  2521. var clspupdtdata = grdf_getGridUpdateData(grp_clsphist.swt_spclmemo.case_spclspec.grd_clsphist);
  2522. if ( clspupdtdata.rowcount > 0 ) {
  2523. isChange++;
  2524. }
  2525. }
  2526. } else {
  2527. isChange++;
  2528. }
  2529. }
  2530. // // // if (isChange > 0) {
  2531. // // // var ans = sysf_messageBox("수정사항이 있습니다. 저장", "S001"); ///수정사항이 있습니다. 저장하시려면 예(Yes)\n아니면 아니오(No)
  2532. // // // if ( ans == 6 ) { // 6: yes
  2533. // // // var rslt = lf_fSaveOutDayJudg("A"); // 저장
  2534. // // // if ( rslt != true ) {
  2535. // // // return false;
  2536. // // // }
  2537. // // // }
  2538. // // // else if ( ans == 2 ) { // 6: yes, 7:no, 2:cancel
  2539. // // // return false;
  2540. // // // }
  2541. // // // }
  2542. return true;
  2543. }
  2544. //=======================================================================================
  2545. // Function
  2546. //---------------------------------------------------------------------------------------
  2547. /****************************************************************************************
  2548. * Argument :
  2549. * Description : 등록번호 + 엔터 시 대상자화면 호출
  2550. ****************************************************************************************/
  2551. function lf_fGetOutDayJudgTrgtManPidSrch()
  2552. {
  2553. // 대상자 조회화면을 띄운다.
  2554. //var trgtManWindow = frmf_findChildWindow("SMPIJ00600"); // SMPIJ00600_외래일일심사대상자조회.xfdl
  2555. var trgtManWindow = frmf_getChildWindow("SMPIJ00600");
  2556. var patunitsrch1 = ds_item1_otpt.getColumn(0, "pid");
  2557. if ( trgtManWindow == null ) {
  2558. // pid가 변경되었는데 조회창을 여는 경우 기존 조회된 data 초기화를 위해 저장해둔다.
  2559. ds_cond_smpij00600.setColumn(0, "pid", patunitsrch1);
  2560. ds_rslt_smpij00600.setColumn(0, "pid", patunitsrch1);
  2561. var rtn = frmf_open("SMPIJ00600", "SMPIJ00600", {objDs:ds_cond_smpij00600}, "", "", "", "", "", "", "", "", "", "M"); // SMPIJ00600_외래일일심사대상자조회.xfdl
  2562. }
  2563. else {
  2564. // 대상자조회화면에 붙어있는 old 값 초기화
  2565. //trgtManWindow.model.resetInstanceNode("/root/hidden/oldotpt");
  2566. var oldPid = ds_rslt_smpij00600.getColumn(0, "oldPid");
  2567. ds_cond_smpij00600.setColumn(0, "pid", patunitsrch1);
  2568. ds_rslt_smpij00600.setColumn(0, "oldPid", patunitsrch1);
  2569. if ( utlf_isNull(oldPid) ) {
  2570. if ( utlf_isNull(patunitsrch1) ) { // 환자번호 입력 없이 대상자를 조회하는 경우
  2571. trgtManWindow.grp_judgmemo.visible = false; // 대상자 Grid의 메모 필드의 Btn 클릭시 보여지는 메모 저장용 Group을 감춘다.
  2572. frmf_setFocusPop("SMPIJ00600");
  2573. } else { // 기존 심사대상자는 없는데 pid가 입력된 경우 또는 변경된 정보를 저장 후에 조회하는 경우
  2574. trgtManWindow.lf_fSetPatUnitSrch1pidSrch();
  2575. }
  2576. } else {
  2577. if ( patunitsrch1 != oldPid ) { // 조회된 pid가 변경된 상태에서 조회하는 경우
  2578. ds_item1_otpt.setColumn(0,"pid", patunitsrch1);
  2579. ds_cond_smpij00600.setColumn(0,"pid", patunitsrch1);
  2580. trgtManWindow.lf_fSetPatUnitSrch1pidSrch();
  2581. } else { // 기존 심사대상자는 있는데 pid가 변경되지 않은 경우
  2582. trgtManWindow.grp_judgmemo.visible = false; // 대상자 Grid의 메모 필드의 Btn 클릭시 보여지는 메모 저장용 Group을 감춘다.
  2583. frmf_setFocusPop("SMPIJ00600");
  2584. }
  2585. }
  2586. }
  2587. }
  2588. //=======================================================================================
  2589. // Function
  2590. //---------------------------------------------------------------------------------------
  2591. /****************************************************************************************
  2592. * Argument :
  2593. * Description : 상단에 환자정보 기입하기
  2594. ****************************************************************************************/
  2595. function fSetOutPatPamInfo()
  2596. {
  2597. var pid = ds_item1_otpt.getColumn(0, "pid");
  2598. var orddd = ds_item1_otpt.getColumn(0, "orddd");
  2599. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  2600. var instcd = ds_item1_otpt.getColumn(0, "instcd");
  2601. // param 첫번째 붙는 값은 외래 : O, 입원 : I, 지원부서 : S, 수술 : T, 응급 : E, 의뢰 : C
  2602. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  2603. frmf_setParameter("condparam", param);
  2604. frmf_setParameter("errflag", "Y");
  2605. var useyn = appf_initPatientInfo(param);
  2606. if(useyn == "Y") {
  2607. frmf_setParameter("SPMMO08900_rtn_useyn", "");
  2608. }
  2609. }
  2610. //=======================================================================================
  2611. // Function
  2612. //---------------------------------------------------------------------------------------
  2613. /****************************************************************************************
  2614. * Argument :
  2615. * Description : 일일 심사 대상자를 조회한 이후의 처리를 한다.
  2616. ****************************************************************************************/
  2617. function lf_fSetDayJudgTrgtManSrchData()
  2618. {
  2619. // 화면 권한을 설정한다.
  2620. lf_fCheckAuth();
  2621. // 심사완료여부 상태에 따라 "저장 / 재계산 / 완료 / 미심 / 보류 / 삭제" Btn 권한을 설정한다.
  2622. lf_fSetJudgStatBtnAuth();
  2623. // 조회된 심사대상자의 특이 인적사항, 보조/요율 등을 계산하여 보여준다.
  2624. lf_fGetPersonalData();
  2625. // 조회된 심사대상자의 실제진료일과 그달의 진료일자를 진료달력에 표시한다.
  2626. lf_fSetOrdCalendar();
  2627. //자보일때만 사고접수번호, 지급보증번호 보이도록
  2628. if ( ds_item1_otpt.getColumn(0, "insukindcd") == "31" ) {
  2629. // 사고접수번호
  2630. cap_mngtno.visible = true;
  2631. opt_mngtno.visible = true;
  2632. // 지급보증번호
  2633. cap_autmbinsuseqno.visible = true;
  2634. opt_autmbinsuseqno.visible = true;
  2635. } else {
  2636. // 사고접수번호
  2637. cap_mngtno.visible = false;
  2638. opt_mngtno.visible = false;
  2639. // 지급보증번호
  2640. cap_autmbinsuseqno.visible = false;
  2641. opt_autmbinsuseqno.visible = false;
  2642. }
  2643. // 2015.12.15 구미병원 특성화 - 보훈환자 표시
  2644. if( !utlf_isNull(ds_item1_otpt.getColumn(0, "bohuncd")) ) {
  2645. cap_bohun.text = ds_item1_otpt.getColumn(0, "bohunnm");
  2646. cap_bohun.visible = true;
  2647. } else {
  2648. cap_bohun.text = "";
  2649. cap_bohun.visible = false;
  2650. }
  2651. // *특정내역
  2652. // 특정코드 줄단위 였던 row가 명세서 단위 row로 바뀌는 경우, 특정코드 값이 표시되지 않으므로 다시 확인한다.
  2653. for (var i=0; i<ds_grid_grd_clsphist.rowcount; i++ ) {
  2654. // 특정내역 자동생성 처리 (자동생성되는 특정내역에 대해 stat 를 'I' 해주도록 한다.
  2655. var stat = ds_list3_clcj.getColumn(i, "currowstat");
  2656. if ( stat == "3" ) { // 3:신규 -> 2:신규
  2657. ds_grid_grd_clsphist.setRowType(i, "I");
  2658. }
  2659. }
  2660. // 특정내역 빈줄 추가
  2661. // lf_fSpclGridInsertRow();
  2662. // 특정내역 및 메모 탭 색 변경
  2663. lf_fSetTapListSetting("all");
  2664. // *상병내역
  2665. // 상병내역 빈줄 추가
  2666. lf_fDiagGridInsertRow();
  2667. // 상병 색 표시
  2668. lf_fSetDiagGridColor();
  2669. // 원외처방 그리드 상태를 급여구분 기본값인 "급여"로 필터링한다.
  2670. rdo_cloppayflag.value = "1";
  2671. ds_grid_grd_oprcphist.filterstr = "";
  2672. var selectedRdoPay = rdo_cloppayflag.value;
  2673. if(selectedRdoPay == "1") {
  2674. ds_grid_grd_oprcphist.filterstr = "calcpayflag == '0'";
  2675. }
  2676. // 처방그리드, 항목구분 색표시
  2677. grp_ordsrch.rdo_payflag.value = "-";
  2678. grp_ordsrch.rdo_actingflag.value = "all";
  2679. grp_ordsrch.rdo_item1.value = "-";
  2680. grp_ordsrch.rdo_actmatflag.value = "-";
  2681. ds_hidden_list4_otpt.setColumn(0, "calcpayflag", "");
  2682. ds_hidden_list4_otpt.setColumn(0, "actingflag", "");
  2683. ds_hidden_list4_otpt.setColumn(0, "ediitem", "");
  2684. ds_hidden_list4_otpt.setColumn(0, "matractflag", "");
  2685. lf_fGetSelectedOrderData2();
  2686. lf_fSetOrderData();
  2687. // "저장" Btn 클릭시에 인적사항이 변경되었는지 여부를 알기 위해 조회한 항목을 임시로 저장해두고 추후에 비교한다.
  2688. ds_hidden_item1_initotpt.copyData(ds_item1_otpt);
  2689. ds_init_orddridlist.filter("dp=='" + ds_item1_otpt.getColumn(0, "orddeptcd") + "'");
  2690. // 제한규정 버튼 색 표시
  2691. if (utlf_isNull(ds_item1_otpt.getColumn(0, "patlimt"))) {
  2692. // btn_limt.enable = false;
  2693. } else {
  2694. btn_limt.color = "#ff0000";
  2695. btn_limt.enable = true;
  2696. }
  2697. //장애환자 여부 추가
  2698. var hndcyn = ds_item1_otpt.getColumn(0, "hndcyn");
  2699. if (hndcyn == "Y") {
  2700. btn_hndc.visible = true;
  2701. } else {
  2702. btn_hndc.visible = false;
  2703. }
  2704. }
  2705. //=======================================================================================
  2706. // Function
  2707. //---------------------------------------------------------------------------------------
  2708. /****************************************************************************************
  2709. * Argument :
  2710. * Description : 심사완료여부 상태에 따라 "저장 / 재계산 / 완료 / 미심 / 보류 / 삭제" Btn 권한을 설정한다.
  2711. ****************************************************************************************/
  2712. function lf_fSetJudgStatBtnAuth()
  2713. {
  2714. var judgendyn = ds_item1_otpt.getColumn(0, "dschjudgprcsstat"); // 심사상태
  2715. var judgrid = ds_item1_otpt.getColumn(0, "judgmdlid"); // 심사중 심사자ID
  2716. var judgnm = ds_item1_otpt.getColumn(0, "judgmdlnm"); // 심사중 심사자ID
  2717. var userid = sysf_getUserInfo("userid");
  2718. if ( judgendyn == "A" || judgendyn == "D" ) { // 심사상태 : 심사중, 보류
  2719. btn_save.enable = true;
  2720. btn_end.enable = true;
  2721. btn_unjudg.enable = true;
  2722. btn_rete.enable = true;
  2723. } else if ( judgendyn == "E" ) { // 심사상태 : 심사완료
  2724. btn_save.enable = false;
  2725. btn_end.enable = false;
  2726. btn_unjudg.enable = true;
  2727. btn_rete.enable = true;
  2728. } else if ( judgendyn == "A" ) { // 심사상태 : 미심사
  2729. btn_save.enable = true;
  2730. btn_end.enable = true;
  2731. btn_unjudg.enable = false;
  2732. btn_rete.enable = true;
  2733. } else {
  2734. btn_save.enable = true;
  2735. btn_end.enable = true;
  2736. btn_unjudg.enable = true;
  2737. btn_rete.enable = true;
  2738. }
  2739. // 보험유형이 자보 또는 산재일 경우
  2740. var insukindcd = ds_item1_otpt.getColumn(0, "insukindcd");
  2741. if ( insukindcd == "31" || insukindcd == "41" ) {
  2742. //opt_insukindcd.style.background = "darksalmon";
  2743. } else {
  2744. //opt_insukindcd.style.background = "lightgrey";
  2745. }
  2746. // 유형보조가 정상(00)이 아닐 경우
  2747. var suppkindcd = ds_item1_otpt.getColumn(0, "suppkindcd");
  2748. if ( !utlf_isNull(suppkindcd) && suppkindcd != "00" ) {
  2749. //opt_suppkind.style.background = "darksalmon"; //"#f7a08b";
  2750. //opt_payownbrate.style.background = "darksalmon"; //"#f7a08b";
  2751. } else {
  2752. //opt_suppkind.style.background = "lightgrey"; //"#f2f2f2";
  2753. //opt_payownbrate.style.background = "lightgrey";
  2754. }
  2755. // 문제환자일 경우
  2756. lf_fSetProbJudgColor();
  2757. // 수술환자의 경우 수술(유) 버튼을 설정한다.
  2758. if (ds_item1_otpt.getColumn(0, "opyn") == "Y") {
  2759. //btn_opyn.visible = true;
  2760. //btn_opynclass") = "btn5_letter4";
  2761. //btn_opyncolor") = "#cc3333"; //#ff0066"; // 해당 정보가 있는 경우 버튼 색 변경
  2762. } else {
  2763. // btn_opyn.visible = false;
  2764. // btn_opyn.class = "btn2_letter4"; // 표준에서 정한 기본 버튼으로 설정
  2765. }
  2766. // 상병이력 버튼 설정
  2767. if (ds_item1_otpt.getColumn(0, "diaghist") == "Y") {
  2768. //grp_cldihist.btn_diagHist.class = "btn5_letter4";
  2769. //grp_cldihist.btn_diagHist.style.font = "Dotum,9,bold";
  2770. //grp_cldihist.btn_diagHist.color = "#cc3333"; //#ff0066"; // 해당 정보가 있는 경우 버튼 색 변경
  2771. } else {
  2772. //grp_cldihist.btn_diagHist.class = "btn2_letter4"; // 표준에서 정한 기본 버튼으로 설정
  2773. }
  2774. // 메모이력 버튼 설정
  2775. var memohist = ds_item1_otpt.getColumn(0, "memohist");
  2776. if (memohist == "Y") {
  2777. //grp_clsphist.btn_memohist.class = "btn5_letter4";
  2778. // grp_clsphist.btn_memohist.color = "#cc0000"; //#ff0066"; // 해당 정보가 있는 경우 버튼 색 변경
  2779. // grp_clsphist.btn_memohist.style.font = "Dotum,9,bold";
  2780. } else {
  2781. //grp_clsphist.btn_memohist.class = "btn2_letter4"; // 표준에서 정한 기본 버튼으로 설정
  2782. }
  2783. // 미시행처방 버튼 설정
  2784. if (ds_item1_otpt.getColumn(0, "unexecord") == "Y") {
  2785. btn_unexecord.class = "btn5";
  2786. btn_unexecord.color = "#cc3333"; //#ff0066"; // 해당 정보가 있는 경우 버튼 색 변경
  2787. btn_unexecord.style.font = "Dotum,9,bold";
  2788. } else {
  2789. btn_unexecord.color = "#006176ff";
  2790. btn_unexecord.style.font = "Dotum,9";
  2791. btn_unexecord.class = "btn2"; // 표준에서 정한 기본 버튼으로 설정
  2792. }
  2793. // 특정코드 MT015, MT016, MT004 정보가 입력된 환자인지를 확인한다.
  2794. lf_fCheckSpclSpecData();
  2795. // 특정내역 탭버튼 초기화
  2796. if (grp_clsphist.btn_case_spclspec.class == "btn_tab") {
  2797. grp_clsphist.btn_case_spclspec.click();
  2798. }
  2799. }
  2800. //=======================================================================================
  2801. // Function
  2802. //---------------------------------------------------------------------------------------
  2803. /****************************************************************************************
  2804. * Argument :
  2805. * Description : 문제환자일 경우, 색상표기 변경
  2806. ****************************************************************************************/
  2807. function lf_fSetProbJudgColor()
  2808. {
  2809. var probjudgflag = ds_item1_otpt.getColumn(0, "probjudgflag");
  2810. if ( probjudgflag == "Y" ) {
  2811. //opt_probjudgflag.style.background = "darksalmon";//"#f7a08b";
  2812. } else {
  2813. //opt_probjudgflag.style.background = "lightgrey";//"#f2f2f2"; // output_fix 클래스의 background-color
  2814. }
  2815. }
  2816. //=======================================================================================
  2817. // Function
  2818. //---------------------------------------------------------------------------------------
  2819. /****************************************************************************************
  2820. * Argument : 01.judgendyn : 심사마감구분
  2821. * Description : "심사완료"~"보류" 처리 후 다음 심사대상자를 조회한다.
  2822. ****************************************************************************************/
  2823. function lf_fGetNextDayJudgTrgtMan(judgendyn)
  2824. {
  2825. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  2826. if ( !utlf_isNull(cretno) ) { // 조회된 심사대상자가 있으면
  2827. var trgtManWindow = frmf_getChildWindow("SMPIJ00600"); // SMPIJ00600_외래일일심사대상자조회.xfdl
  2828. if (utlf_isNull(trgtManWindow)) {
  2829. lf_fGetOutDayJudgTrgtManPidSrch();
  2830. trgtManWindow = frmf_getChildWindow("SMPIJ00600");
  2831. }
  2832. // alert(judgendyn);
  2833. var selectedRow = trgtManWindow.ds_grid_grd_otptmast.rowposition;
  2834. var pid = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "pid");
  2835. var orddd = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "orddd");
  2836. var cretno = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "cretno");
  2837. var acptseqno = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "acptseqno");
  2838. var insukindcd = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "insukindcd");
  2839. var dschjudgprcsstat = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "dschjudgprcsstat");
  2840. var judgmdlid = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "judgmdlid");
  2841. var judgnm = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "judgnm");
  2842. var lastupdtdt = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "lastupdtdt");
  2843. lf_fSaveOutDayJudg(judgendyn);
  2844. //alert(rslt);
  2845. // if ( utlf_isNull(rslt) ) {
  2846. // return;
  2847. // }
  2848. // else {
  2849. // if ( rslt == false ) { // 변경된 데이터가 없는 경우
  2850. // ds_cond_item4_endotpt.addrow();
  2851. // ds_cond_item4_endotpt.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  2852. // ds_cond_item4_endotpt.setColumn(0, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  2853. // ds_cond_item4_endotpt.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  2854. // ds_cond_item4_endotpt.setColumn(0, "acptseqno", ds_item1_otpt.getColumn(0, "acptseqno"));
  2855. // ds_cond_item4_endotpt.setColumn(0, "dschjudgprcsstat", judgendyn);
  2856. ds_item1_otpt.setColumn(0, "dschjudgprcsstat", judgendyn);
  2857. tranf_submit({
  2858. id: "TXPIJ00702"
  2859. , service: "bfjudgapp.OutDayJudg"
  2860. , method: "reqExeSaveOutDayJudgEndYN"
  2861. , inds : "endotpt=ds_item1_otpt"
  2862. , async: false
  2863. });
  2864. // }
  2865. // ds_item1_otpt.setColumn(0, "dschjudgprcsstat", judgendyn);
  2866. lf_fGetPersonalData();
  2867. lf_fCheckAuth(); // 화면 권한을 설정한다.
  2868. lf_fSetJudgStatBtnAuth(); // 심사완료여부 상태에 따라 "저장 / 재계산 / 완료 / 미심 / 보류" Btn 권한을 설정한다.
  2869. // }
  2870. // 다음 심사대상자로 넘어간다.
  2871. if ( !utlf_isNull(trgtManWindow) ) {
  2872. var selectedRow = ds_rslt_smpij00600.getColumn(0, "selectedRow");
  2873. if ( !utlf_isNull(selectedRow) ) {
  2874. var maxRow = trgtManWindow.ds_grid_grd_otptmast.rowcount;
  2875. if ( selectedRow < maxRow ) {
  2876. // 1. 환자단위 대상자이동 시작
  2877. if ( trgtManWindow.grd_otptmast.visible == true ) {
  2878. var prevRow = selectedRow;
  2879. selectedRow++;
  2880. ds_rslt_smpij00600.setColumn(0, "selectedRow", selectedRow);
  2881. var tdayinflag = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "tdayinflag");
  2882. // if ( tdayinflag != "N" ) {
  2883. // sysf_messageBox("입원등록한", "I005");
  2884. // }
  2885. // 당일입원환자 메세지 처리 끝
  2886. // 퇴원후 외래접수일 경우 메세지 처리
  2887. var dschrsrvyn = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "dschrsrvyn");
  2888. // if ( dschrsrvyn == "Y" ) {
  2889. // sysf_messageBox("퇴원후 외래접수된", "I005");
  2890. // }
  2891. // 퇴원후 외래접수 메세지 처리 끝
  2892. // // // // 심사상태 변경 처리 (더블클릭한 row가 심사상태가 A, D이면 B로 변경처리)
  2893. // // // if ( dschjudgprcsstat == "A" || dschjudgprcsstat == "D" || utlf_isNull(dschjudgprcsstat) ) {
  2894. // // // ds_cond_item7.setColumn(0, "pid", pid);
  2895. // // // ds_cond_item7.setColumn(0, "orddd", orddd);
  2896. // // // ds_cond_item7.setColumn(0, "cretno", cretno);
  2897. // // // ds_cond_item7.setColumn(0, "acptseqno", acptseqno);
  2898. // // // ds_cond_item7.setColumn(0, "dschjudgprcsstat", "A");
  2899. // // //
  2900. // // // tranf_submit({
  2901. // // // id: "TXPIJ00602"
  2902. // // // , service: "bfjudgapp.OutDayJudg"
  2903. // // // , method: "reqSetDschJudgPrcsStat"
  2904. // // // , inds : "req=ds_cond_item7"
  2905. // // // , async: false
  2906. // // // });
  2907. // // // var userid = sysf_getUserInfo("userid");
  2908. // // // var usernm = sysf_getUserInfo("usernm");
  2909. // // // var currentdate = utlf_getCurrentDate();
  2910. // // // trgtManWindow.ds_grid_grd_otptmast.setColumn(selectedRow, "dschjudgprcsstat", "A");
  2911. // // // trgtManWindow.ds_grid_grd_otptmast.setColumn(selectedRow, "judgnm", usernm);
  2912. // // // trgtManWindow.ds_grid_grd_otptmast.setColumn(selectedRow, "judgmdlid", userid);
  2913. // // // trgtManWindow.ds_grid_grd_otptmast.setColumn(selectedRow, "lastupdtdt", currentdate);
  2914. // // //
  2915. // // // // old 값 기억 시작
  2916. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldrow", selectedRow);
  2917. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldpid", pid);
  2918. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldorddd", orddd);
  2919. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldcretno", cretno);
  2920. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldacptseqno", acptseqno);
  2921. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "olddschjudgprcsstat", dschjudgprcsstat);
  2922. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldjudgmdlid", judgmdlid);
  2923. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldjudgnm", judgnm);
  2924. // // // trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldlastjudgdt", lastjudgdt);
  2925. // // // // old 값 기억 끝
  2926. // // // }
  2927. // 대상자조회 화면에 심사상태 변경
  2928. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "dschjudgprcsstat", judgendyn);
  2929. // 대상자조회화면에서 row 앞으로 이동
  2930. trgtManWindow.ds_grid_grd_otptmast.rowposition = selectedRow;
  2931. // 미심사버튼이 클릭되면 대상자 조회화면에서 미심사로 바꾸고, 심사자, 심사일시를 삭제한다.
  2932. if ( judgendyn == "A" ) {
  2933. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "judgnm", "");
  2934. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "lastupdtdt", "");
  2935. }
  2936. if ( !utlf_isNull(pid) && !utlf_isNull(orddd) && !utlf_isNull(cretno) && !utlf_isNull(acptseqno) && !utlf_isNull(insukindcd) ) {
  2937. ds_rslt_smpij00600.setColumn(0, "pid", pid);
  2938. ds_rslt_smpij00600.setColumn(0, "orddd", orddd);
  2939. ds_rslt_smpij00600.setColumn(0, "cretno", cretno);
  2940. ds_rslt_smpij00600.setColumn(0, "acptseqno", acptseqno);
  2941. ds_rslt_smpij00600.setColumn(0, "insukindcd", insukindcd);
  2942. ds_rslt_smpij00600.setColumn(0, "opyn", trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "opyn"));
  2943. ds_rslt_smpij00600.setColumn(0, "dschjudgprcsstat", trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "olddschjudgprcsstat"));
  2944. ds_rslt_smpij00600.setColumn(0, "judgmdlid", trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "oldjudgmdlid"));
  2945. lf_fGetOutDayJudgMngt();
  2946. }
  2947. else {
  2948. sysf_messageBox("필수정보가 입력되지 않은", "I005"); ///필수정보가 입력되지 않은 환자입니다.
  2949. }
  2950. }
  2951. // 1. 환자단위 대상자이동 끝
  2952. // 2. 처방별 대상자이동 시작 - 다음행의 pid, orddd, cretno, acptseqno 가 같으면 넘어간다.
  2953. else if ( trgtManWindow.grd_specotpt.visible == true ) {
  2954. var curpid = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "pid");
  2955. var curorddd = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "orddd");
  2956. var curcretno = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "cretno");
  2957. var curacptseqno = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "acptseqno");
  2958. var curpid = trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "pid");
  2959. var nextpid;
  2960. var nextorddd;
  2961. var nextcretno;
  2962. var nextacptseqno;
  2963. // 현재 선택된 row 의 다음행부터 loop 돌면서 다른 대상자를 찾는다.
  2964. for ( var i = selectedRow; i < grd_specotpt.rowcount; i++ ) {
  2965. nextpid = trgtManWindow.ds_grid_grd_otptmast.getColumn(i, "pid");
  2966. nextorddd = trgtManWindow.ds_grid_grd_otptmast.getColumn(i, "orddd");
  2967. nextcretno = trgtManWindow.ds_grid_grd_otptmast.getColumn(i, "cretno");
  2968. nextacptseqno = trgtManWindow.ds_grid_grd_otptmast.getColumn(i, "acptseqno");
  2969. if ( curpid == nextpid && curorddd == nextorddd && curcretno == nextcretno && curacptseqno == nextacptseqno ) {
  2970. trgtManWindow.ds_grid_grd_otptmast.setColumn(i, "dschjudgprcsstat", judgendyn);
  2971. }
  2972. else {
  2973. ds_rslt_smpij00600.setColumn(0, "selectedRow", i);
  2974. // 당일입원환자일 경우 메세지 처리
  2975. var tdayinflag = trgtManWindow.ds_grid_grd_otptmast.getColumn(i, "tdayinflag");
  2976. // if ( tdayinflag != "N" ) {
  2977. // sysf_messageBox("입원등록한", "I005");
  2978. // }
  2979. // 당일입원환자 메세지 처리 끝
  2980. // 퇴원후 외래접수일 경우 메세지 처리
  2981. var dschrsrvyn = trgtManWindow.ds_grid_grd_otptmast.getColumn(i, "dschrsrvyn");
  2982. // if (dschrsrvyn == "Y" ) {
  2983. // sysf_messageBox("퇴원후 외래접수된", "I005");
  2984. // }
  2985. // 퇴원후 외래접수 메세지 처리 끝
  2986. // 심사상태 변경 처리 (더블클릭한 row가 심사상태가 A, D이면 B로 변경처리)
  2987. if ( dschjudgprcsstat == "A" || utlf_isNull(dschjudgprcsstat) || dschjudgprcsstat == "D" || dschjudgprcsstat == "E" ) {
  2988. ds_cond_item7.setColumn(0, "pid", pid);
  2989. ds_cond_item7.setColumn(0, "orddd", orddd);
  2990. ds_cond_item7.setColumn(0, "cretno", cretno);
  2991. ds_cond_item7.setColumn(0, "acptseqno", acptseqno);
  2992. ds_cond_item7.setColumn(0, "dschjudgprcsstat", "A");
  2993. tranf_submit({
  2994. id: "TXPIJ00602"
  2995. , service: "bfjudgapp.OutDayJudg"
  2996. , method: "reqSetDschJudgPrcsStat"
  2997. , inds : "req=ds_cond_item7"
  2998. , async: false
  2999. });
  3000. var userid = sysf_getUserInfo("userid");
  3001. var usernm = sysf_getUserInfo("usernm");
  3002. var currentdate = utlf_getCurrentDate();
  3003. trgtManWindow.ds_grid_grd_otptmast.setColumn(i, "dschjudgprcsstat", "A");
  3004. trgtManWindow.ds_grid_grd_otptmast.setColumn(i, "judgnm", usernm);
  3005. trgtManWindow.ds_grid_grd_otptmast.setColumn(i, "judgmdlid", userid);
  3006. trgtManWindow.ds_grid_grd_otptmast.setColumn(i, "lastupdtdt", currentdate);
  3007. // old 값 기억 시작
  3008. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldrow", i);
  3009. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldpid", pid);
  3010. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldorddd", orddd);
  3011. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldcretno", cretno);
  3012. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldacptseqno", acptseqno);
  3013. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "olddschjudgprcsstat", dschjudgprcsstat);
  3014. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldjudgmdlid", judgmdlid);
  3015. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldjudgnm", judgnm);
  3016. trgtManWindow.ds_hidden_oldotpt.setColumn(0, "oldlastjudgdt", lastjudgdt);
  3017. // old 값 기억 끝
  3018. }
  3019. // 대상자조회 화면에 심사상태 변경
  3020. trgtManWindow.ds_grid_grd_otptmast.setColumn(selectedRow, "dschjudgprcsstat", judgendyn);
  3021. // 대상자조회화면에서 row 앞으로 이동
  3022. trgtManWindow.ds_grid_grd_otptmast.rowposition = i;
  3023. // 미심사버튼이 클릭되면 대상자 조회화면에서 미심사로 바꾸고, 심사자, 심사일시를 삭제한다.
  3024. if ( judgendyn == "A" ) {
  3025. trgtManWindow.ds_grid_grd_otptmast.setColumn(selectedRow, "judgnm", "");
  3026. trgtManWindow.ds_grid_grd_otptmast.setColumn(selectedRow, "lastupdtdt", "");
  3027. }
  3028. if ( !utlf_isNull(pid) && !utlf_isNull(orddd) && !utlf_isNull(cretno) && !utlf_isNull(acptseqno) && !utlf_isNull(insukindcd) ) {
  3029. ds_rslt_smpij00600.setColumn(0, "pid", pid);
  3030. ds_rslt_smpij00600.setColumn(0, "orddd", orddd);
  3031. ds_rslt_smpij00600.setColumn(0, "cretno", cretno);
  3032. ds_rslt_smpij00600.setColumn(0, "acptseqno", acptseqno);
  3033. ds_rslt_smpij00600.setColumn(0, "insukindcd", insukindcd);
  3034. ds_rslt_smpij00600.setColumn(0, "opyn", trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "opyn"));
  3035. ds_rslt_smpij00600.setColumn(0, "dschjudgprcsstat", trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "olddschjudgprcsstat"));
  3036. ds_rslt_smpij00600.setColumn(0, "judgmdlid", trgtManWindow.ds_grid_grd_otptmast.getColumn(selectedRow, "oldjudgmdlid"));
  3037. lf_fGetOutDayJudgMngt();
  3038. }
  3039. else {
  3040. sysf_messageBox("필수정보가 입력되지 않은", "I005"); ///필수정보가 입력되지 않은 환자입니다.
  3041. }
  3042. i = grd_specotpt.rowcount;
  3043. }
  3044. }
  3045. }
  3046. // 2. 처방별 대상자이동 끝
  3047. }
  3048. else {
  3049. //sysf_messageBox("조회된 마지막 심사대상자 입니다. 이후 심사 대상자가", "I004"); ///조회된 마지막 심사대상자 입니다. 이후 심사 대상자가 없습니다.
  3050. // 대상자 조회화면 심사상태 변경
  3051. prevRow = selectedRow;
  3052. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "dschjudgprcsstat", judgendyn);
  3053. // 미심사버튼이 클릭되면 대상자 조회화면에서 미심사로 바꾸고, 심사자, 심사일시를 삭제한다.
  3054. if ( judgendyn == "A" ) {
  3055. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "judgnm", "");
  3056. trgtManWindow.ds_grid_grd_otptmast.setColumn(prevRow, "lastupdtdt", "");
  3057. }
  3058. }
  3059. }
  3060. else {
  3061. sysf_messageBox("대상자조회 화면이 변경되었으므로 다음 대상자를 다시", "C002");
  3062. }
  3063. }
  3064. }
  3065. }
  3066. //=======================================================================================
  3067. // Function
  3068. //---------------------------------------------------------------------------------------
  3069. /****************************************************************************************
  3070. * Argument :
  3071. * Description : 처방 항목 구분 및 선별심사 처방 색깔 구분
  3072. ****************************************************************************************/
  3073. function lf_fSetOrderData()
  3074. {
  3075. //선별심사, 항목구분, 야간가산, 인정기준 색표시
  3076. lf_fSetItemBold();
  3077. }
  3078. //=======================================================================================
  3079. // Function
  3080. //---------------------------------------------------------------------------------------
  3081. /****************************************************************************************
  3082. * Argument :
  3083. * Description : 처방 필터링
  3084. ****************************************************************************************/
  3085. function lf_fGetSelectedOrderData()
  3086. {
  3087. var selectedRdoPay = ds_hidden_list2_osclsrch.getColumn(0, "selectedRdoPay");
  3088. var selectedRdoItem = ds_hidden_list2_osclsrch.getColumn(0, "selectedRdoItem");
  3089. var selectedActflag = ds_hidden_list2_osclsrch.getColumn(0, "actflag");
  3090. // 초기화
  3091. for (var i=0; i < ds_init_rdo_item1.rowcount; i++)
  3092. {
  3093. ds_init_rdo_item1.setColumn(i, "color", "");
  3094. ds_init_rdo_item1.setColumn(i, "font", "");
  3095. }
  3096. // "전체" 항목은 default 로 굵게 표시
  3097. ds_init_rdo_item1.setColumn(0, "color", "#ff0000");
  3098. ds_init_rdo_item1.setColumn(0, "font", "Dotum,9,bold");
  3099. for (var i=grd_clodhist.fixedRows; i<grd_clodhist.rows; i ++ ) {
  3100. ds_grid_grd_clodhist.filter("");
  3101. /*
  3102. if ( utlf_isNull(selectedRdoPay) || selectedRdoPay == "-" ) { // 전체
  3103. }
  3104. else if ( selectedRdoPay == "1" ) { // 급여인 경우
  3105. if ( ds_grid_grd_clodhist.getColumn(i, "calcpayflag") != "0" ) { // 급여구분1(P0104 -:해당사항없음, 0:급여, 1:전액본인부담, 2:일반)
  3106. grd_clodhist.rowHidden(i) = true;
  3107. }
  3108. }
  3109. else if ( selectedRdoPay == "2" ) { // 전액본인인 경우
  3110. if ( ds_grid_grd_clodhist.getColumn(i, "calcpayflag") != "1" ) {
  3111. grd_clodhist.rowHidden(i) = true;
  3112. }
  3113. } else if ( selectedRdoPay == "3" ) { // 비급여(일반)인 경우
  3114. if ( ds_grid_grd_clodhist.getColumn(i, "calcpayflag") != "2" ) {
  3115. grd_clodhist.rowHidden(i) = true;
  3116. }
  3117. } else { // 0원인 경우
  3118. if ( ds_grid_grd_clodhist.getColumn(i, "calcamt") != "0" ) {
  3119. grd_clodhist.rowHidden(i) = true;
  3120. }
  3121. }
  3122. if ( selectedActflag == "all" ) { //전체
  3123. grd_clodhist.rowHidden(i) = false;
  3124. }
  3125. else if ( selectedActflag == "act" ) { //시행
  3126. if ( ds_grid_grd_clodhist.getColumn(i, "execprcpstatcd") != "Y" ) {
  3127. grd_clodhist.rowHidden(i) = true;
  3128. } else {
  3129. grd_clodhist.rowHidden(i) = false;
  3130. }
  3131. } else { //미시행
  3132. if ( ds_grid_grd_clodhist.getColumn(i, "execprcpstatcd") != "N" ) {
  3133. grd_clodhist.rowHidden(i) = true;
  3134. } else {
  3135. grd_clodhist.rowHidden(i) = false;
  3136. }
  3137. }
  3138. if ( utlf_isNull(selectedRdoItem) || selectedRdoItem == "-" ) { // 전체
  3139. } else {
  3140. if ( ds_grid_grd_clodhist.getColumn(i, "ediitem1") != selectedRdoItem ) {
  3141. grd_clodhist.rowHidden(i) = true;
  3142. }
  3143. else {
  3144. grd_clodhist.rowHidden(i) = false;
  3145. }
  3146. }
  3147. */
  3148. // 처방 조회부 항목구분 Radio에서 해당 처방이 있는 item을 굵게 표시한다.
  3149. var item1 = ds_grid_grd_clodhist.getColumn(i, "ediitem1"); //항목구분 에 Bold처리하기 위한 체크
  3150. var old_item1 = "";
  3151. if ( item1 != old_item1 ) {
  3152. if ( item1 == "01" ) {
  3153. ds_init_rdo_item1.setColumn(1, "color", "#ff0000");
  3154. ds_init_rdo_item1.setColumn(1, "font", "Dotum,9,bold");
  3155. }
  3156. else if ( item1 == "03" ) {
  3157. ds_init_rdo_item1.setColumn(2, "color", "#ff0000");
  3158. ds_init_rdo_item1.setColumn(2, "font", "Dotum,9,bold");
  3159. }
  3160. else if ( item1 == "04" ) {
  3161. ds_init_rdo_item1.setColumn(3, "color", "#ff0000");
  3162. ds_init_rdo_item1.setColumn(3, "font", "Dotum,9,bold");
  3163. }
  3164. else if ( item1 == "05" ) {
  3165. ds_init_rdo_item1.setColumn(4, "color", "#ff0000");
  3166. ds_init_rdo_item1.setColumn(4, "font", "Dotum,9,bold");
  3167. }
  3168. else if ( item1 == "06" ) {
  3169. ds_init_rdo_item1.setColumn(5, "color", "#ff0000");
  3170. ds_init_rdo_item1.setColumn(5, "font", "Dotum,9,bold");
  3171. }
  3172. else if ( item1 == "07" ) {
  3173. ds_init_rdo_item1.setColumn(6, "color", "#ff0000");
  3174. ds_init_rdo_item1.setColumn(6, "font", "Dotum,9,bold");
  3175. }
  3176. else if ( item1 == "08" ) {
  3177. ds_init_rdo_item1.setColumn(7, "color", "#ff0000");
  3178. ds_init_rdo_item1.setColumn(7, "font", "Dotum,9,bold");
  3179. }
  3180. else if ( item1 == "09" ) {
  3181. ds_init_rdo_item1.setColumn(8, "color", "#ff0000");
  3182. ds_init_rdo_item1.setColumn(8, "font", "Dotum,9,bold");
  3183. }
  3184. else if ( item1 == "10" ) {
  3185. ds_init_rdo_item1.setColumn(9, "color", "#ff0000");
  3186. ds_init_rdo_item1.setColumn(9, "font", "Dotum,9,bold");
  3187. }
  3188. else if ( item1 == "SS" ) {
  3189. ds_init_rdo_item1.setColumn(10, "color", "#ff0000");
  3190. ds_init_rdo_item1.setColumn(10, "font", "Dotum,9,bold");
  3191. }
  3192. else if ( item1 == "TT" ) {
  3193. ds_init_rdo_item1.setColumn(11, "color", "#ff0000");
  3194. ds_init_rdo_item1.setColumn(11, "font", "Dotum,9,bold");
  3195. }
  3196. // else if ( item1 == "UU" ) {
  3197. // ds_init_rdo_item1.setColumn(12, "color", "#ff0000");
  3198. // ds_init_rdo_item1.setColumn(12, "font", "Dotum,9,bold");
  3199. // }
  3200. // else if ( item1 == "WW" ) {
  3201. // ds_init_rdo_item1.setColumn(13, "color", "#ff0000");
  3202. // ds_init_rdo_item1.setColumn(13, "font", "Dotum,9,bold");
  3203. // }
  3204. old_item1 = item1;
  3205. }
  3206. }
  3207. }
  3208. //=======================================================================================
  3209. // Function
  3210. //---------------------------------------------------------------------------------------
  3211. /****************************************************************************************
  3212. * Argument :
  3213. * Description : 처방 Grid 필터용 조회조건을 초기화
  3214. ****************************************************************************************/
  3215. function lf_fInitOrderFilter()
  3216. {
  3217. // 처방Grid용 조회부의 Radio 초기값을 "전체"로 설정한다.
  3218. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoPay", "-");
  3219. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoItem", "-");
  3220. ds_hidden_list2_osclsrch.setColumn(0, "actflag", "all"); // 시행구분
  3221. ds_hidden_list2_osclsrch.setColumn(0, "selectedRdoMatrAct", "-"); // 재료행위구분
  3222. ds_hidden_list2_osclsrch.setColumn(0, "chkChoiOrdTotAmt", "");
  3223. ds_grid_grd_clodhist.filter("");
  3224. }
  3225. //=======================================================================================
  3226. // Function
  3227. //---------------------------------------------------------------------------------------
  3228. /****************************************************************************************
  3229. * Argument :
  3230. * Description : 조회된 심사대상자의 특이 인적사항, 보조/요율 등을 계산하여 보여준다.
  3231. ****************************************************************************************/
  3232. function lf_fGetPersonalData()
  3233. {
  3234. var srchrslt = "";
  3235. if ( ds_item1_otpt.getColumn(0, "dethyn") == "Y" ) {
  3236. srchrslt = " [사망환자입니다.]";
  3237. }
  3238. //중증,희귀번호 동시 존재 시 추가 시작
  3239. var sdoamsg = ds_item1_otpt.getColumn(0, "sdoamsg"); //중증번호
  3240. var rooamsg = ds_item1_otpt.getColumn(0, "rooamsg"); //희귀번호
  3241. // 중증번호만 존재시..sdoamsg
  3242. if ( !utlf_isNull(sdoamsg) && utlf_isNull(rooamsg) ) {
  3243. opt_srchrslt.visible = true;
  3244. // roundrect1.visible = true;
  3245. cmb_itemraremsg.visible = false;
  3246. // 희귀번호만 존재시.. rooamsg
  3247. } else if ( utlf_isNull(sdoamsg) && !utlf_isNull(rooamsg) ) {
  3248. opt_srchrslt.visible = true;
  3249. // roundrect1.visible = true;
  3250. cmb_itemraremsg.visible = false;
  3251. // 희귀난치성 산정특례환자의 등록번호를 보여준다.
  3252. var rooamsg = ds_item1_otpt.getColumn(0, "rooamsg");
  3253. if ( !utlf_isNull(rooamsg) ) {
  3254. ds_item1_otpt.setColumn(0, "sdoamsg", rooamsg);
  3255. }
  3256. // 두번호 모두 존재시.. sdoamsg, rooamsg
  3257. } else if ( !utlf_isNull(sdoamsg) && !utlf_isNull(rooamsg) ) {
  3258. opt_srchrslt.visible = false;
  3259. // roundrect1.visible = false;
  3260. cmb_itemraremsg.visible = true;
  3261. ds_hidden_itemraremsg.clearData();
  3262. ds_hidden_itemraremsg.addRow();
  3263. ds_hidden_itemraremsg.setColumn(0, "cd", "중증번호");
  3264. ds_hidden_itemraremsg.setColumn(0, "nm", sdoamsg);
  3265. ds_hidden_itemraremsg.addRow();
  3266. ds_hidden_itemraremsg.setColumn(1, "cd", "희귀번호");
  3267. ds_hidden_itemraremsg.setColumn(1, "nm", rooamsg);
  3268. // 기본 중증 셋팅
  3269. cmb_itemraremsg.value = "sdoamsg";
  3270. } else {
  3271. opt_srchrslt.visible = true;
  3272. // roundrect1.visible = true;
  3273. cmb_itemraremsg.visible = false;
  3274. }
  3275. //중증,희귀번호 동시 존재 시 추가 끝_2009/10/26
  3276. // 보조유형ID과 요율%로 combo 의 value
  3277. var suppkindcd = ds_item1_otpt.getColumn(0, "suppkindcd");
  3278. var payownbrate = ds_item1_otpt.getColumn(0, "payownbrate");
  3279. var supprate = suppkindcd+"/"+payownbrate; // 보조유형ID과 요율%로 combo 의 value
  3280. ds_hidden_item1_otpt.setColumn(0, "patsupprate", supprate);
  3281. }
  3282. //=======================================================================================
  3283. // Function
  3284. //---------------------------------------------------------------------------------------
  3285. /****************************************************************************************
  3286. * Argument :
  3287. * Description : 특정 환자에 대해 그동안 작성된 심사자메모, 청구메모 내역을 조회한다.
  3288. ****************************************************************************************/
  3289. function lf_fGetMemoHistList()
  3290. {
  3291. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  3292. if ( !utlf_isNull(cretno) ) {
  3293. // 1. 메모이력조회 화면을 호출한다.
  3294. var objArg = new Object();
  3295. objArg.sPid = ds_item1_otpt.getColumn(0, "pid");
  3296. objArg.sOrddeptcd = ds_item1_otpt.getColumn(0, "orddeptcd");
  3297. objArg.sIoflag = "O";
  3298. objArg.sRefterm = "2";
  3299. objArg.sAnofildinclyn = "Y";
  3300. objArg.sFromdd = "";
  3301. objArg.sTodd = "";
  3302. objArg.sOrdfildcd = ds_item1_otpt.getColumn(0, "ordfildcd");
  3303. var objRetVal = frmf_modal("SPPIZ00300","SPPIZ00300", objArg,"","","","","","","","","","M");
  3304. // 2. 조회 후 작업을 처리한다.
  3305. var selectMemo = ds_rslt_sppiz00300.rowcount;
  3306. if (selectMemo > 0) {
  3307. for( i = 0 ; i < ds_rslt_sppiz00300.rowcount; i++) {
  3308. var choimemo = utlf_trim(ds_rslt_sppiz00300.getColumn(i, "choimemo"));
  3309. var choiedicd = ds_rslt_sppiz00300.getColumn(i, "edicd");
  3310. if (!utlf_isNull(choimemo)) {
  3311. ds_rslt_sppiz00300.setColumn(i, "choimemo", choimemo);
  3312. var destRef = ds_rslt_sppiz00300.getColumn(i, "destRef");
  3313. // 2-1. 심사메모로 전달한다.
  3314. // 2-2. 청구메모로 전달한다.
  3315. // 2-3. 처방별주석(JX999)으로 전달한다.
  3316. if (destRef == "prcpmemo") {
  3317. var clsprow = ds_grid_grd_clsphist.rowposition;
  3318. var addcnt = 0;
  3319. var oscledicd;
  3320. var lnunitspclspecyn;
  3321. var rowNum;
  3322. var edicd;
  3323. var ans;
  3324. var spclspec;
  3325. var rowstatus;
  3326. for (var i = 0; i < ds_grid_grd_clodhist.rowcount; i++) {
  3327. oscledicd = ds_grid_grd_clodhist.getColumn(i, "basecd");
  3328. if (choiedicd == oscledicd) {
  3329. lnunitspclspecyn = ds_grid_grd_clodhist.getColumn(i, "lnunitspclspecyn");
  3330. rowNum = -1;
  3331. if (lnunitspclspecyn) {
  3332. // 기존에 입력한 JX999가 존재하는지 확인
  3333. for (var j = 0; j < ds_grid_grd_clsphist.rowcount; j++) {
  3334. edicd = ds_grid_grd_clsphist.getColumn(j, "edicd");
  3335. if (oscledicd ==edicd) {
  3336. if (ds_grid_grd_clsphist.getColumn(j, "spclcd") == "JX999" && ds_grid_grd_clsphist.getRowType(j) != 8) {
  3337. rowNum = j;
  3338. j = ds_grid_grd_clsphist.rowcount;
  3339. }
  3340. }
  3341. }
  3342. // 기존에 존재하는 경우
  3343. if (rowNum > -1) {
  3344. ans = sysf_messageBox(oscledicd + "(EDI코드) 에 등록된 메모가 있습니다. 기존 내역에 추가할 경우 예(Yes)\n 새로운 내역으로 변경하시려면 아니오(No)", "S003");
  3345. if (ans == 6) { // 6: yes
  3346. spclspec = ds_grid_grd_clsphist.getColumn(rowNum, "spclspec");
  3347. ds_grid_grd_clsphist.setColumn(rowNum, "spclspec", spclspec + "\n" + choimemo);
  3348. rowstatus = ds_grid_grd_clsphist.getRowType(rowNum);
  3349. if (rowstatus == 2) {
  3350. ds_grid_grd_clsphist.setRowType(rowNum, "I");
  3351. }
  3352. else {
  3353. ds_grid_grd_clsphist.setRowType(rowNum, "U");
  3354. }
  3355. }
  3356. else if (ans == 7) { // 7: no
  3357. ds_grid_grd_clsphist.setColumn(rowNum, "spclspec", choimemo);
  3358. rowstatus = ds_grid_grd_clsphist.getRowType(rowNum);
  3359. if (rowstatus == 2) {
  3360. ds_grid_grd_clsphist.setRowType(rowNum, "I");
  3361. }
  3362. else {
  3363. ds_grid_grd_clsphist.setRowType(rowNum, "U");
  3364. }
  3365. }
  3366. }
  3367. // 기존에 존재하지 않는 경우
  3368. else {
  3369. clsprow = clsprow.addRow();
  3370. ds_grid_grd_clsphist.setRowType(clsprow, "I");
  3371. ds_grid_grd_clsphist.setColumn(clsprow, "unitflag", "J");
  3372. ds_grid_grd_clsphist.setColumn(clsprow, "edicd", oscledicd);
  3373. ds_grid_grd_clsphist.setColumn(clsprow, "spclcd", "JX999");
  3374. ds_grid_grd_clsphist.setColumn(clsprow, "cdnm", "기타내역");
  3375. ds_grid_grd_clsphist.setColumn(clsprow, "spclspec", choimemo);
  3376. ds_grid_grd_clsphist.setColumn(clsprow, "spclformat", "X(700)");
  3377. ds_grid_grd_clsphist.setColumn(clsprow, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  3378. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcd", oscledicd);
  3379. ds_grid_grd_clsphist.setColumn(clsprow, "oldspclcd", "JX999");
  3380. ds_grid_grd_clsphist.setColumn(clsprow, "seqno", "");
  3381. // 처방 그리드에서 추가할 데이터를 불러온다.
  3382. for (var j = 0; j < ds_grid_grd_clodhist.rowcount; j++) {
  3383. basecd = ds_grid_grd_clodhist.getColumn(j, "basecd");
  3384. if (choiedicd == basecd) {
  3385. ds_grid_grd_clsphist.setColumn(clsprow, "prcpdd", ds_grid_grd_clodhist.getColumn(j, "prcpdd"));
  3386. ds_grid_grd_clsphist.setColumn(clsprow, "prcpno", ds_grid_grd_clodhist.getColumn(j, "prcpno"));
  3387. ds_grid_grd_clsphist.setColumn(clsprow, "prcphistno", ds_grid_grd_clodhist.getColumn(j, "prcphistno"));
  3388. ds_grid_grd_clsphist.setColumn(clsprow, "execprcpseqno", ds_grid_grd_clodhist.getColumn(j, "execprcpseqno"));
  3389. ds_grid_grd_clsphist.setColumn(clsprow, "edicdflag", ds_grid_grd_clodhist.getColumn(j, "edicdflag"));
  3390. j = ds_grid_grd_clsphist.rowcount;
  3391. }
  3392. }
  3393. ds_grid_grd_clsphist.setColumn(clsprow, "currowstat", "");
  3394. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ oscledicd +" / 특정내역명칭: "+ "기타내역" +" / 기재내역: "+ choimemo +" / 기재형식: "+ "X(700)");
  3395. addcnt++;
  3396. }
  3397. }
  3398. // 기존에 JX999가 없는 경우
  3399. else {
  3400. clsprow = clsprow.addRow();
  3401. ds_grid_grd_clsphist.setRowType(clsprow, "I");
  3402. ds_grid_grd_clsphist.setColumn(clsprow, "unitflag", "J");
  3403. ds_grid_grd_clsphist.setColumn(clsprow, "edicd", basecd);
  3404. ds_grid_grd_clsphist.setColumn(clsprow, "spclcd", "JX999");
  3405. ds_grid_grd_clsphist.setColumn(clsprow, "cdnm", "기타내역");
  3406. ds_grid_grd_clsphist.setColumn(clsprow, "spclspec", choimemo);
  3407. ds_grid_grd_clsphist.setColumn(clsprow, "spclformat", "X(700)");
  3408. ds_grid_grd_clsphist.setColumn(clsprow, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  3409. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcd", basecd);
  3410. ds_grid_grd_clsphist.setColumn(clsprow, "oldspclcd", "JX999");
  3411. ds_grid_grd_clsphist.setColumn(clsprow, "seqno", "");
  3412. // 처방 그리드에서 추가할 데이터를 불러온다.
  3413. for (var j = 0; j < ds_grid_grd_clodhist.rowcount; j++) {
  3414. basecd = ds_grid_grd_clodhist.getColumn(j, "basecd");
  3415. if (basecd == choiedicd) {
  3416. ds_grid_grd_clsphist.setColumn(clsprow, "prcpdd", ds_grid_grd_clodhist.getColumn(j, "prcpdd"));
  3417. ds_grid_grd_clsphist.setColumn(clsprow, "prcpno", ds_grid_grd_clodhist.getColumn(j, "prcpno"));
  3418. ds_grid_grd_clsphist.setColumn(clsprow, "prcphistno", ds_grid_grd_clodhist.getColumn(j, "prcphistno"));
  3419. ds_grid_grd_clsphist.setColumn(clsprow, "execprcpseqno", ds_grid_grd_clodhist.getColumn(j, "execprcpseqno"));
  3420. ds_grid_grd_clsphist.setColumn(clsprow, "edicdflag", ds_grid_grd_clodhist.getColumn(j, "edicdflag"));
  3421. ds_grid_grd_clsphist.setColumn(clsprow, "lnunitspclspecyn", "*");
  3422. ds_grid_grd_clsphist.setColumn(clsprow, "jx999lnunitspclspecyn", "*");
  3423. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", "#ffff00");
  3424. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", "#ffff00");
  3425. }
  3426. }
  3427. ds_grid_grd_clsphist.setColumn(clsprow, "currentstat", "");
  3428. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ basecd +" / 특정내역명칭: "+ "기타내역" +" / 기재내역: "+ choimemo +" / 기재형식: "+ "X(700)");
  3429. addcnt++;
  3430. }
  3431. }
  3432. }
  3433. } else if (destRef == "judgmemo") {
  3434. // 심사메모로 전달
  3435. var judgmemo = ds_grid_grd_judgmemo.getColumn(0, "spclspec");
  3436. var userid = sysf_getUserInfo("usernm");
  3437. var objDate = new Date();
  3438. var fstrgstdt;
  3439. fstrgstdt = objDate.toFormatString("%Y%m%d%H%M%S"); // YYYYMMDD HHMMSS
  3440. if (judgmemo) {
  3441. // 기존 심사메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  3442. var insrow = ds_grid_grd_judgmemo.rowcount;
  3443. var iRow = ds_grid_grd_judgmemo.insertRow(insrow++);
  3444. ds_grid_grd_judgmemo.setColumn(iRow, "unitflag" , "M");
  3445. ds_grid_grd_judgmemo.setColumn(iRow, "spclcd" , "MX999");
  3446. ds_grid_grd_judgmemo.setColumn(iRow, "usermemoyn" , "Y");
  3447. ds_grid_grd_judgmemo.setColumn(iRow, "spclspec" , choimemo);
  3448. ds_grid_grd_judgmemo.setColumn(iRow, "userid" , userid);
  3449. ds_grid_grd_judgmemo.setColumn(iRow, "fstrgstdt" , fstrgstdt);
  3450. ds_grid_grd_judgmemo.setColumn(iRow, "pid" , ds_item1_otpt.getColumn(0, "pid"));
  3451. ds_grid_grd_judgmemo.setColumn(iRow, "cretno" , ds_item1_otpt.getColumn(0, "cretno"));
  3452. ds_grid_grd_judgmemo.setColumn(iRow, "orddd" , ds_item1_otpt.getColumn(0, "orddd"));
  3453. ds_grid_grd_judgmemo.setColumn(iRow, "spclmemoflag", "U");
  3454. } else {
  3455. if (choiedicd) {
  3456. // 처방별 메모를 전달하는 경우임
  3457. // 동일한 EDI 코드가 있을 경우만 추가
  3458. for (var j = 0; j < ds_list2_clod.rowcount; j++) {
  3459. var clodedicd = ds_list2_clod.getColumn(j, "basecd");
  3460. if (choiedicd == clodedicd) {
  3461. var insrow = ds_grid_grd_judgmemo.rowcount;
  3462. var iRow = ds_grid_grd_judgmemo.insertRow(insrow++);
  3463. ds_grid_grd_judgmemo.setColumn(iRow, "unitflag" , "M");
  3464. ds_grid_grd_judgmemo.setColumn(iRow, "spclcd" , "MX999");
  3465. ds_grid_grd_judgmemo.setColumn(iRow, "usermemoyn" , "Y");
  3466. ds_grid_grd_judgmemo.setColumn(iRow, "spclspec" , choimemo);
  3467. ds_grid_grd_judgmemo.setColumn(iRow, "userid" , userid);
  3468. ds_grid_grd_judgmemo.setColumn(iRow, "fstrgstdt" , fstrgstdt);
  3469. ds_grid_grd_judgmemo.setColumn(iRow, "pid" , ds_item1_otpt.getColumn(0, "pid"));
  3470. ds_grid_grd_judgmemo.setColumn(iRow, "cretno" , ds_item1_otpt.getColumn(0, "cretno"));
  3471. ds_grid_grd_judgmemo.setColumn(iRow, "orddd" , ds_item1_otpt.getColumn(0, "orddd"));
  3472. ds_grid_grd_judgmemo.setColumn(iRow, "spclmemoflag", "U");
  3473. j = ds_list2_clod.rowcount;
  3474. }
  3475. }
  3476. } else {
  3477. var insrow = ds_grid_grd_judgmemo.rowcount;
  3478. var iRow = ds_grid_grd_judgmemo.insertRow(insrow++);
  3479. ds_grid_grd_judgmemo.setColumn(iRow, "unitflag" , "M");
  3480. ds_grid_grd_judgmemo.setColumn(iRow, "spclcd" , "MX999");
  3481. ds_grid_grd_judgmemo.setColumn(iRow, "usermemoyn" , "Y");
  3482. ds_grid_grd_judgmemo.setColumn(iRow, "spclspec" , choimemo);
  3483. ds_grid_grd_judgmemo.setColumn(iRow, "userid" , userid);
  3484. ds_grid_grd_judgmemo.setColumn(iRow, "fstrgstdt" , fstrgstdt);
  3485. ds_grid_grd_judgmemo.setColumn(iRow, "pid" , ds_item1_otpt.getColumn(0, "pid"));
  3486. ds_grid_grd_judgmemo.setColumn(iRow, "cretno" , ds_item1_otpt.getColumn(0, "cretno"));
  3487. ds_grid_grd_judgmemo.setColumn(iRow, "orddd" , ds_item1_otpt.getColumn(0, "orddd"));
  3488. ds_grid_grd_judgmemo.setColumn(iRow, "spclmemoflag", "U");
  3489. }
  3490. }
  3491. grp_clsphist.swt_spclmemo.tabindex = 1;
  3492. } else if (destRef == "edimemo") {
  3493. // 청구메모로 전달
  3494. var edimemo = utlf_trim(ds_grid_grd_edimemo.getColumn(0, "edimemo"));
  3495. if (edimemo) {
  3496. // 기존 청구메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  3497. var insrow = ds_grid_grd_edimemo.rowcount;
  3498. var iRow = ds_grid_grd_edimemo.insertRow(insrow++);
  3499. ds_grid_grd_edimemo.setColumn(iRow, "unitflag", "M");
  3500. ds_grid_grd_edimemo.setColumn(iRow, "spclcd", "MX999");
  3501. ds_grid_grd_edimemo.setColumn(iRow, "usermemoyn", "N");
  3502. ds_grid_grd_edimemo.setColumn(iRow, "spclspec", choimemo);
  3503. } else {
  3504. if (choiedicd) {
  3505. // 처방별 메모를 전달하는 경우임
  3506. // 동일한 EDI 코드가 있을 경우 * 표시
  3507. for (var j = 0; j < ds_list2_clod.rowcount; j++) {
  3508. var clodedicd = ds_list2_clod.getColumn(j, "basecd");
  3509. if (choiedicd == clodedicd) {
  3510. var insrow = ds_grid_grd_edimemo.rowcount;
  3511. var iRow = ds_grid_grd_edimemo.insertRow(insrow++);
  3512. ds_grid_grd_edimemo.setColumn(iRow, "unitflag", "M");
  3513. ds_grid_grd_edimemo.setColumn(iRow, "spclcd", "MX999");
  3514. ds_grid_grd_edimemo.setColumn(iRow, "usermemoyn", "N");
  3515. ds_grid_grd_edimemo.setColumn(iRow, "spclspec", choimemo);
  3516. j = ds_list2_clod.rowcount;
  3517. }
  3518. }
  3519. } else {
  3520. var insrow = ds_grid_grd_edimemo.rowcount;
  3521. var iRow = ds_grid_grd_edimemo.insertRow(insrow++);
  3522. ds_grid_grd_edimemo.setColumn(iRow, "unitflag", "M");
  3523. ds_grid_grd_edimemo.setColumn(iRow, "spclcd", "MX999");
  3524. ds_grid_grd_edimemo.setColumn(iRow, "usermemoyn", "N");
  3525. ds_grid_grd_edimemo.setColumn(iRow, "spclspec", choimemo);
  3526. }
  3527. }
  3528. grp_clsphist.swt_spclmemo.tabindex = 2;
  3529. }
  3530. // 특정내역을 sort한다. - 특정내역을 소트해야 하는 시기는 특정내역이 추가된 경우 뿐이다.
  3531. if (addcnt > 0) {
  3532. lf_fSortSpclNo();
  3533. // lf_fSpclGridInsertRow();
  3534. }
  3535. }
  3536. }
  3537. }
  3538. }
  3539. }
  3540. //=======================================================================================
  3541. // Function
  3542. //---------------------------------------------------------------------------------------
  3543. /****************************************************************************************
  3544. * Argument : 01. spclmemo : 특정메모
  3545. 02. usermemoyn 사용자메모여부
  3546. * Description : 심사자메모, EDI청구메모를 특정내역 형식에 맞춰 설정한다.
  3547. ****************************************************************************************/
  3548. function lf_fSetJudgEDIMemo(spclmemo, usermemoyn)
  3549. {
  3550. // 쓰이는지 안쓰이는지 확인해야함
  3551. var delclspNode = instance1.selectSingleNode("/root/send/item3/delclsp");
  3552. var max = 1;
  3553. if (delclspNode != null) {
  3554. max = delclspNode.childNodes.length + 1;
  3555. }
  3556. model.makeValue("/root/send/item3/delclsp/delmemo["+ max +"]/delunitflag", "M");
  3557. model.makeValue("/root/send/item3/delclsp/delmemo["+ max +"]/delspclcd", "MX999");
  3558. model.makeValue("/root/send/item3/delclsp/delmemo["+ max +"]/delspclmemoflag", usermemoyn);
  3559. model.makeValue("/root/send/item3/delclsp/delmemo["+ max +"]/deledicd", "MX999");
  3560. var item3Path = "";
  3561. var item3Node = "";
  3562. if (usermemoyn == "U") {
  3563. item3Path = "/root/send/item3/judgmemo[";
  3564. item3Node = "judg";
  3565. } else {
  3566. item3Path = "/root/send/item3/edimemo[";
  3567. item3Node = "edi";
  3568. }
  3569. var iSpclCdCnt = 0; // DB에 저장될 MX999 코드 개수
  3570. var iSpclCdTotLength = getStringLength(spclmemo); // (stringHelper.js) 문자열의 길이를 구한다.
  3571. var insCharTotCnt = 0; // 특정내역으로 잘라진 총 글자 수
  3572. if (iSpclCdTotLength > 350) { // 새로 입력된 특정코드가 700byte를 넘는다.
  3573. // 영문(700자), 한글(350자) 길이로 잘라서 n개의 특정코드를 만든다.
  3574. var iLen = 0; // 특정내역 길이가 700 byte가 되었는지 계산
  3575. var iStartInx = 0; // 특정내역 시작 index
  3576. var iCharCnt = 0; // 몇글자로 구성되는지 계산
  3577. for (var i=0; i < spclmemo.length; i++) {
  3578. var sBit = spclmemo.charAt(i);
  3579. iCharCnt++;
  3580. if (escape(sBit).length > 4) {
  3581. iLen = iLen + 2;
  3582. } else {
  3583. iLen = iLen + 1;
  3584. }
  3585. if (iLen == 350 || iLen > 350) { // 영문(700자), 한글(350자)
  3586. iSpclCdCnt++;
  3587. //model.makeValue(item3Path + iSpclCdCnt +"]/"+ item3Node +"usermemoyn", usermemoyn);
  3588. if (iLen == 350) { // 700byte로 길이가 끝난 경우
  3589. model.makeValue(item3Path + iSpclCdCnt +"]/"+ item3Node +"spclspec", spclmemo.substr(iStartInx, iCharCnt));
  3590. iStartInx += iCharCnt;
  3591. insCharTotCnt += 350;
  3592. }
  3593. else if (iLen > 350) { // 영문(700자), 한글(350자)를 넘는 경우
  3594. model.makeValue(item3Path + iSpclCdCnt +"]/"+ item3Node +"spclspec", spclmemo.substr(iStartInx, iCharCnt - 1));
  3595. iStartInx += (iCharCnt - 1);
  3596. i--;
  3597. insCharTotCnt += 349;
  3598. }
  3599. iCharCnt = 0;
  3600. iLen = 0;
  3601. }
  3602. }
  3603. if (iSpclCdTotLength != insCharTotCnt) {
  3604. iSpclCdCnt++;
  3605. model.makeValue(item3Path + iSpclCdCnt +"]/"+ item3Node +"spclspec", spclmemo.substring(iStartInx, spclmemo.length));
  3606. }
  3607. }
  3608. else if (iSpclCdTotLength > 0) { // 새로 추가된 내용이 있다.
  3609. iSpclCdCnt++;
  3610. //model.makeValue(item3Path + iSpclCdCnt +"]/"+ item3Node +"usermemoyn", usermemoyn);
  3611. model.makeValue(item3Path + iSpclCdCnt +"]/"+ item3Node +"spclspec", spclmemo);
  3612. //}
  3613. }
  3614. }
  3615. //=======================================================================================
  3616. // Function
  3617. //---------------------------------------------------------------------------------------
  3618. /****************************************************************************************
  3619. * Argument :
  3620. * Description : 상병이력 조회 및 전달
  3621. ****************************************************************************************/
  3622. function lf_fGetDiagHistList()
  3623. {
  3624. ds_hidden_smpiz00100_rslt.clearData();
  3625. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  3626. if (!utlf_isNull(cretno)) {
  3627. // 1. 상병이력조회 화면을 호출한다.
  3628. var objArg = new Object();
  3629. objArg.sPid = ds_item1_otpt.getColumn(0, "pid");
  3630. objArg.sOrdfromdd = ds_item1_otpt.getColumn(0, "orddd");
  3631. objArg.sOrdtodd = "";
  3632. frmf_modal("SMPIZ00100","SMPIZ00100",objArg,"","","","","","","","","","M");
  3633. var cnt = ds_hidden_smpiz00100_rslt.rowcount;
  3634. // 2. 심사상병전달 처리한다.
  3635. if ( cnt > 0 ) {
  3636. var insrow = ds_grid_grd_cldihist.rowcount;
  3637. var addcnt = 0;
  3638. var diagcd;
  3639. var isSame = false;
  3640. var diagorddeptcd;
  3641. var diagseq;
  3642. for (var i = 0; i < ds_hidden_smpiz00100_rslt.rowcount; i++) {
  3643. diagcd = ds_hidden_smpiz00100_rslt.getColumn(i, "diagcd");
  3644. isSame = false;
  3645. // 2-1. 동일 상병이 존재하면 입력하지 않는다.
  3646. for (var j = 0; j < ds_grid_grd_cldihist.rowcount; j++) {
  3647. if (diagcd == ds_grid_grd_cldihist.getColumn(j, "diagcd")) {
  3648. // 동일한 상병이 존재하는 경우
  3649. isSame = true;
  3650. j = ds_grid_grd_cldihist.rowcount;
  3651. }
  3652. }
  3653. // 2-2. 동일 상병이 존재하지 않으면 추가한다.
  3654. if (isSame == false) {
  3655. insrow = ds_grid_grd_cldihist.rowcount-1;
  3656. ds_grid_grd_cldihist.setRowType(insrow, "I");
  3657. ds_grid_grd_cldihist.setColumn(insrow, "rowstat", "I");
  3658. ds_grid_grd_cldihist.setColumn(insrow, "diagkindcd", ds_hidden_smpiz00100_rslt.getColumn(i, "diagkindcd"));
  3659. ds_grid_grd_cldihist.setColumn(insrow, "diagkindcd", "0");
  3660. ds_grid_grd_cldihist.setColumn(insrow, "diagseq", insrow+1);
  3661. ds_grid_grd_cldihist.setColumn(insrow, "diagcd", ds_hidden_smpiz00100_rslt.getColumn(i, "diagcd"));
  3662. ds_grid_grd_cldihist.setColumn(insrow, "diagnm", ds_hidden_smpiz00100_rslt.getColumn(i, "diaghngnm"));
  3663. ds_grid_grd_cldihist.setColumn(insrow, "diagengnm", ds_hidden_smpiz00100_rslt.getColumn(i, "diagengnm"));
  3664. diagorddeptcd = ds_grid_grd_cldihist.getColumn(0, "diagorddeptcd");
  3665. if (utlf_isNull(diagorddeptcd)) {
  3666. diagorddeptcd = ds_item1_otpt.getColumn(0, "orddeptcd");
  3667. }
  3668. ds_grid_grd_cldihist.setColumn(insrow, "diagorddeptcd", diagorddeptcd);
  3669. ds_grid_grd_cldihist.setColumn(insrow, "ordfromdd", ds_grid_grd_cldihist.getColumn(0, "ordfromdd"));
  3670. ds_grid_grd_cldihist.setColumn(insrow, "toot", "-");
  3671. ds_grid_grd_cldihist.setColumn(insrow, "toot1", "-");
  3672. ds_grid_grd_cldihist.setColumn(insrow, "seqno", insrow);
  3673. ds_grid_grd_cldihist.setColumn(insrow, "addflag", "Y");
  3674. ds_grid_grd_cldihist.setColumn(insrow, "drinptyn", "N");
  3675. ds_grid_grd_cldihist.setColumn(insrow, "pid", ds_item1_otpt.getColumn(0, "pid"));
  3676. ds_grid_grd_cldihist.setColumn(insrow, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  3677. ds_grid_grd_cldihist.setColumn(insrow, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  3678. addcnt++;
  3679. }
  3680. }
  3681. // 3. 추가가 된 경우에만 소트한다.
  3682. if (addcnt > 0) {
  3683. // 3-1. 소트
  3684. //lf_fSortDiagNo();
  3685. // 정렬 함수 변경으로 심사상병 전달시
  3686. // 3-3. seq 재부여
  3687. var seq = 1;
  3688. for (var j = 0; j < ds_grid_grd_cldihist.rowcount; j++) {
  3689. diagseq = ds_grid_grd_cldihist.getColumn(j, "diagseq");
  3690. if (diagseq <= "D0") {
  3691. ds_grid_grd_cldihist.setColumn(j, "diagseq", seq);
  3692. seq++;
  3693. }
  3694. }
  3695. // 3-2. 빈줄 추가
  3696. lf_fDiagGridInsertRow();
  3697. }
  3698. }
  3699. }
  3700. }
  3701. //=======================================================================================
  3702. // Function
  3703. //---------------------------------------------------------------------------------------
  3704. /****************************************************************************************
  3705. * Argument :
  3706. * Description : 줄단위 특정내역 중 기타메모(JX999)를 특정내역 형식에 맞춰 설정한다.
  3707. ****************************************************************************************/
  3708. function lf_fSetSpclSpecJX999()
  3709. {
  3710. var iTotSpclCdCnt = 0; // DB에 저장될 JX999 코드 개수
  3711. var rowstatus;
  3712. var spclcd;
  3713. var edicd;
  3714. var calcscorcd;
  3715. var edicdflag;
  3716. var spclmemo;
  3717. var iSpclCdCnt = 0;
  3718. var iSpclCdTotLength = 0;
  3719. var insCharTotCnt = 0;
  3720. var iLen = 0; // 특정내역 길이가 700 byte가 되었는지 계산
  3721. var iStartInx = 0; // 특정내역 시작 index
  3722. var iCharCnt = 0; // 몇글자로 구성되는지 계산
  3723. var sBit;
  3724. var delclsp = ds_send_item3_delclsp.rowcount;
  3725. var max = 0;
  3726. for (var i=0; i<ds_grid_grd_clsphist.rowcount; i++) {
  3727. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  3728. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  3729. edicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  3730. calcscorcd = ds_grid_grd_clsphist.getColumn(i, "calcscorcd");
  3731. edicdflag = ds_grid_grd_clsphist.getColumn(i, "edicdflag");
  3732. if (rowstatus != 1 && spclcd == "JX999") {
  3733. // if (delclsp == 0) {
  3734. max = ds_send_item3_delclsp.addRow();
  3735. // }
  3736. ds_send_item3_delclsp.setColumn(max, "unitflag", "J");
  3737. ds_send_item3_delclsp.setColumn(max, "spclmemoflag", "E");
  3738. ds_send_item3_delclsp.setColumn(max, "edicd", edicd);
  3739. ds_send_item3_delclsp.setColumn(max, "spclcd", "JX999");
  3740. }
  3741. // 해당 EDI코드의 JX999는 모두 삭제하고 새로 추가하므로 "삭제" 상태가 아닌 모든 경우를 전송한다.
  3742. if (rowstatus != 1 && rowstatus != 8 && spclcd == "JX999") { // 0 : new, 8: delete
  3743. spclmemo = ds_grid_grd_clsphist.getColumn(i, "spclspec");
  3744. iSpclCdCnt = 0;
  3745. iSpclCdTotLength = utlf_getStringLength(spclmemo);
  3746. insCharTotCnt = 0;
  3747. if (iSpclCdTotLength > 350) { // 새로 입력된 특정코드가 700byte를 넘는다.
  3748. // 영문(700자), 한글(350자) 길이로 잘라서 n개의 특정코드를 만든다.
  3749. iLen = 0; // 특정내역 길이가 700 byte가 되었는지 계산
  3750. iStartInx = 0; // 특정내역 시작 index
  3751. iCharCnt = 0; // 몇글자로 구성되는지 계산
  3752. for (var j = 0; j < iSpclCdTotLength; j++) {
  3753. sBit = spclmemo.charAt(j);
  3754. iCharCnt++;
  3755. if (escape(sBit).length > 4) {
  3756. iLen += 2;
  3757. }
  3758. else {
  3759. iLen += 1;
  3760. }
  3761. if (iLen >= 350) { // 영문(700자), 한글(350자)
  3762. // iTotSpclCdCnt++;
  3763. iTotSpclCdCnt = ds_send_item3_lnunitmemo.addRow();
  3764. iSpclCdCnt++;
  3765. if (iLen == 350) { // 700byte로 길이가 끝난 경우
  3766. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo.substr(iStartInx, iCharCnt));
  3767. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3768. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", ds_grid_grd_clsphist.getColumn(i, "prcpdd"));
  3769. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", ds_grid_grd_clsphist.getColumn(i, "prcpno"));
  3770. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", ds_grid_grd_clsphist.getColumn(i, "prcphistno"));
  3771. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", ds_grid_grd_clsphist.getColumn(i, "execprcpseqno"));
  3772. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "calcscorcd", calcscorcd);
  3773. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3774. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclmemoflag", "E");
  3775. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "J");
  3776. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclcd", "JX999");
  3777. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "remfact", "X(700)");
  3778. iStartInx += iCharCnt;
  3779. insCharTotCnt += 350;
  3780. }
  3781. else if (iLen > 350) { // 영문(700자), 한글(350자)를 넘는 경우
  3782. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo.substr(iStartInx, iCharCnt -1));
  3783. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3784. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", ds_grid_grd_clsphist.getColumn(i, "prcpdd"));
  3785. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", ds_grid_grd_clsphist.getColumn(i, "prcpno"));
  3786. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", ds_grid_grd_clsphist.getColumn(i, "prcphistno"));
  3787. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", ds_grid_grd_clsphist.getColumn(i, "execprcpseqno"));
  3788. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "calcscorcd", calcscorcd);
  3789. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3790. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclmemoflag", "E");
  3791. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "J");
  3792. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclcd", "JX999");
  3793. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "remfact", "X(700)");
  3794. iStartInx += iCharCnt -1;
  3795. i--;
  3796. insCharTotCnt += 349;
  3797. }
  3798. iCharCnt = 0;
  3799. iLen = 0;
  3800. }
  3801. }
  3802. if (iSpclCdTotLength != insCharTotCnt) {
  3803. // iTotSpclCdCnt++;
  3804. iTotSpclCdCnt = ds_send_item3_lnunitmemo.addRow();
  3805. iSpclCdCnt++;
  3806. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo.substring(iStartInx, spclmemo.length));
  3807. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3808. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", ds_grid_grd_clsphist.getColumn(i, "prcpdd"));
  3809. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", ds_grid_grd_clsphist.getColumn(i, "prcpno"));
  3810. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", ds_grid_grd_clsphist.getColumn(i, "prcphistno"));
  3811. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", ds_grid_grd_clsphist.getColumn(i, "execprcpseqno"));
  3812. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "calcscorcd", calcscorcd);
  3813. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3814. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclmemoflag", "E");
  3815. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "J");
  3816. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclcd", "JX999");
  3817. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "remfact", "X(700)");
  3818. }
  3819. }
  3820. else if (iSpclCdTotLength > 0) { // 새로 추가된 내용이 있다.
  3821. // iTotSpclCdCnt++;
  3822. iTotSpclCdCnt = ds_send_item3_lnunitmemo.addRow();
  3823. iSpclCdCnt++;
  3824. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo);
  3825. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3826. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", ds_grid_grd_clsphist.getColumn(i, "prcpdd"));
  3827. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", ds_grid_grd_clsphist.getColumn(i, "prcpno"));
  3828. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", ds_grid_grd_clsphist.getColumn(i, "prcphistno"));
  3829. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", ds_grid_grd_clsphist.getColumn(i, "execprcpseqno"));
  3830. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "calcscorcd", calcscorcd);
  3831. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3832. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclmemoflag", "E");
  3833. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "J");
  3834. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclcd", "JX999");
  3835. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "remfact", "X(700)");
  3836. }
  3837. }
  3838. }
  3839. }
  3840. //=======================================================================================
  3841. // Function
  3842. //---------------------------------------------------------------------------------------
  3843. /****************************************************************************************
  3844. * Argument :
  3845. * Description : 원외처방 특정내역 중 JX999를 특정내역 형식에 맞춰 설정한다.
  3846. ****************************************************************************************/
  3847. function lf_fSetOprcSpclSpecJX999()
  3848. {
  3849. var iTotSpclCdCnt = 0; // DB에 저장될 JX999 코드 개수
  3850. var rowstatus;
  3851. var spclcd;
  3852. var edicd;
  3853. var calcscorcd;
  3854. var edicdflag;
  3855. var delclsp = ds_cond_item3_delclsp.rowcount;
  3856. var max = 0;
  3857. ds_send_item3_lnunitmemo.clearData();
  3858. for (var i = 0; i < ds_grid_grd_oprcphist.rowcount; i++) {
  3859. rowstatus = ds_grid_grd_oprcphist.getRowType(i);
  3860. spclspec = ds_grid_grd_oprcphist.getColumn(i, "spclspec");
  3861. edicd = ds_grid_grd_oprcphist.getColumn(i, "edicd");
  3862. edicdflag = ds_grid_grd_oprcphist.getColumn(i, "edicdflag");
  3863. if (rowstatus != 1 && !utlf_isNull(spclspec)) {
  3864. // if (delclsp != null) {
  3865. max = ds_send_item3_delclsp.addRow();
  3866. // }
  3867. if (max > -1) {
  3868. ds_send_item3_delclsp.setColumn(max, "unitflag", "O");
  3869. ds_send_item3_delclsp.setColumn(max, "spclmemoflag", "E");
  3870. ds_send_item3_delclsp.setColumn(max, "edicd", edicd);
  3871. ds_send_item3_delclsp.setColumn(max, "spclcd", "JX999");
  3872. }
  3873. }
  3874. // 해당 EDI코드의 JX999는 모두 삭제하고 새로 추가하므로 "삭제" 상태가 아닌 모든 경우를 전송한다.
  3875. if (rowstatus != 0 && rowstatus != 8 && utlf_isNull(spclspec)) {
  3876. var spclspec = ds_grid_grd_oprcphist.getColumn(i, "spclspec");
  3877. var prcpdd = ds_grid_grd_oprcphist.getColumn(i, "prcpdd");
  3878. var prcpno = ds_grid_grd_oprcphist.getColumn(i, "prcpno");
  3879. var prcphistno = ds_grid_grd_oprcphist.getColumn(i, "prcphistno");
  3880. var execprcpseqno = ds_grid_grd_oprcphist.getColumn(i, "execprcpseqno");
  3881. var iSpclCdCnt = 0;
  3882. var iSpclCdTotLength = utlf_getStringLength(spclmemo); // (stringHelper.js) 문자열의 길이를 구한다.
  3883. var insCharTotCnt = 0; // 특정내역으로 잘라진 총 글자 수
  3884. if (iSpclCdTotLength > 350) { // 새로 입력된 특정코드가 700byte를 넘는다.
  3885. // 영문(700자), 한글(350자) 길이로 잘라서 n개의 특정코드를 만든다.
  3886. var iLen = 0; // 특정내역 길이가 700 byte가 되었는지 계산
  3887. var iStartInx = 0; // 특정내역 시작 index
  3888. var iCharCnt = 0; // 몇글자로 구성되는지 계산
  3889. for (var j = 0; j < iSpclCdTotLength; j++) {
  3890. var sBit = spclmemo.charAt(j);
  3891. iCharCnt++;
  3892. if (escape(sBit).length > 4) {
  3893. iLen = iLen + 2;
  3894. } else {
  3895. iLen = iLen + 1;
  3896. }
  3897. if (iLen == 350 || iLen > 350) { // 영문(700자), 한글(350자)
  3898. iTotSpclCdCnt = ds_send_item3_lnunitmemo.addRow();
  3899. iSpclCdCnt++;
  3900. if (iLen == 350) { // 700byte로 길이가 끝난 경우
  3901. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo.substr(iStartInx, iCharCnt));
  3902. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3903. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "O");
  3904. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", prcpdd);
  3905. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", prcpno);
  3906. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", prcphistno);
  3907. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", execprcpseqno);
  3908. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3909. iStartInx += iCharCnt;
  3910. insCharTotCnt += 350;
  3911. }
  3912. else if (iLen > 350) { // 영문(700자), 한글(350자)를 넘는 경우
  3913. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo.substr(iStartInx, iCharCnt - 1));
  3914. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3915. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "O");
  3916. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", prcpdd);
  3917. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", prcpno);
  3918. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", prcphistno);
  3919. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", execprcpseqno);
  3920. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3921. iStartInx += (iCharCnt - 1);
  3922. j--;
  3923. insCharTotCnt += 349;
  3924. }
  3925. iCharCnt = 0;
  3926. iLen = 0;
  3927. }
  3928. }
  3929. if (iSpclCdTotLength != insCharTotCnt) {
  3930. iTotSpclCdCnt = ds_send_item3_lnunitmemo.addRow();
  3931. iSpclCdCnt++;
  3932. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo.substring(iStartInx, spclmemo.length));
  3933. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3934. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "O");
  3935. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", prcpdd);
  3936. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", prcpno);
  3937. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", prcphistno);
  3938. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", execprcpseqno);
  3939. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3940. }
  3941. }
  3942. else if (iSpclCdTotLength > 0) { // 새로 추가된 내용이 있다.
  3943. iTotSpclCdCnt = ds_send_item3_lnunitmemo.addRow();
  3944. iSpclCdCnt++;
  3945. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "spclspec", spclmemo.substring(iStartInx, spclmemo.length));
  3946. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicd", edicd);
  3947. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "unitflag", "O");
  3948. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpdd", prcpdd);
  3949. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcpno", prcpno);
  3950. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "prcphistno", prcphistno);
  3951. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "execprcpseqno", execprcpseqno);
  3952. ds_send_item3_lnunitmemo.setColumn(iTotSpclCdCnt, "edicdflag", edicdflag);
  3953. }
  3954. }
  3955. }
  3956. }
  3957. //=======================================================================================
  3958. // Function
  3959. //---------------------------------------------------------------------------------------
  3960. /****************************************************************************************
  3961. * Argument :
  3962. * Description : 처방 T필드 더블클릭 (특정내역 입력)
  3963. ****************************************************************************************/
  3964. function lf_fSetLnUnitSpclSpec()
  3965. {
  3966. // 1. 특정내역 상세관리 화면으로 데이터를 전달한다.
  3967. ds_cond_sppiz00500.clearData();
  3968. ds_cond_sppiz00500.addRow();
  3969. ds_rslt_sppiz00500.clearData();
  3970. // ds_rslt_sppiz00500.addRow();
  3971. var cur_row = ds_grid_grd_clodhist.rowposition;
  3972. var basecd = ds_grid_grd_clodhist.getColumn(cur_row, "basecd");
  3973. var hngnm = ds_grid_grd_clodhist.getColumn(cur_row, "hngnm");
  3974. if ( !utlf_isNull(basecd) ) {
  3975. var lnunitspclspecyn = ds_grid_grd_clodhist.getColumn(cur_row, "lnunitspclspecyn");
  3976. if ( utlf_isNull(lnunitspclspecyn) ) {
  3977. ds_cond_sppiz00500.addRow();
  3978. ds_cond_sppiz00500.setColumn(0, "flag", "I");
  3979. ds_cond_sppiz00500.setColumn(0, "snglcalcscorcd", basecd);
  3980. ds_cond_sppiz00500.setColumn(0, "hngnm", hngnm);
  3981. ds_cond_sppiz00500.setColumn(0, "edilnno", "-");
  3982. ds_cond_sppiz00500.setColumn(0, "spclcd" , "JX999");
  3983. ds_cond_sppiz00500.setColumn(0, "detldesc", "");
  3984. ds_cond_sppiz00500.setColumn(0, "spclspec", "");
  3985. ds_cond_sppiz00500.setColumn(0, "spclformat", "");
  3986. ds_cond_sppiz00500.setColumn(0, "rownum", "");
  3987. ds_cond_sppiz00500.setColumn(0, "cdnm", "");
  3988. ds_cond_sppiz00500.setColumn(0, "unitflag", "J");
  3989. } else { // 기존에 입력된 줄단위 특정내역이 있는 경우
  3990. var rowcnt = 0;
  3991. var setrow = 0;
  3992. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  3993. var spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  3994. var calcscorcdnm = ds_grid_grd_clsphist.getColumn(i, "calcscorcdnm");
  3995. if ( basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(i, "unitflag") == "J" ) {
  3996. var spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  3997. if ( spclcd != "JT001" && ds_grid_grd_clsphist.getRowType(i) != 4 ) {
  3998. var rowcnt = ds_cond_sppiz00500.addRow();
  3999. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "");
  4000. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", i);
  4001. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", spclEdicd);
  4002. ds_cond_sppiz00500.setColumn(rowcnt, "hngnm", calcscorcdnm);
  4003. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "-");
  4004. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", spclcd);
  4005. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  4006. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", ds_grid_grd_clsphist.getColumn(i, "spclformat"));
  4007. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", ds_grid_grd_clsphist.getColumn(i, "cdnm"));
  4008. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", ds_grid_grd_clsphist.getColumn(i, "detldesc"));
  4009. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclcd", spclcd);
  4010. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  4011. setrow = i;
  4012. }
  4013. }
  4014. }
  4015. var aRow = ds_cond_sppiz00500.addRow();
  4016. ds_cond_sppiz00500.setColumn(aRow, "flag", "");
  4017. ds_cond_sppiz00500.setColumn(aRow, "snglcalcscorcd", basecd);
  4018. ds_cond_sppiz00500.setColumn(aRow, "hngnm", hngnm);
  4019. ds_cond_sppiz00500.setColumn(aRow, "edilnno", "-");
  4020. ds_cond_sppiz00500.setColumn(aRow, "spclcd", ds_grid_grd_clsphist.getColumn(setrow, "spclcd"));
  4021. ds_cond_sppiz00500.setColumn(aRow, "detldesc", ds_grid_grd_clsphist.getColumn(setrow, "detldesc"));
  4022. ds_cond_sppiz00500.setColumn(aRow, "spclspec", ds_grid_grd_clsphist.getColumn(setrow, "spclspec"));
  4023. ds_cond_sppiz00500.setColumn(aRow, "spclformat", ds_grid_grd_clsphist.getColumn(setrow, "spclformat"));
  4024. ds_cond_sppiz00500.setColumn(aRow, "cdnm", ds_grid_grd_clsphist.getColumn(setrow, "cdnm"));
  4025. ds_cond_sppiz00500.setColumn(aRow, "rownum", setrow);
  4026. ds_cond_sppiz00500.setColumn(aRow, "unitflag", "J");
  4027. }
  4028. frmf_modal("SPPIZ00500", "SPPIZ00500", {objDs:ds_cond_sppiz00500}, "", "", "", "", "", "", "", "", "", "M"); // SPPIZ00500_특정내역상세관리.xfdl
  4029. // 2. 넘어온 특정내역 데이터를 처리한다.
  4030. var rsltcnt = ds_rslt_sppiz00500.rowcount;
  4031. if ( rsltcnt > 0 ) {
  4032. var addcnt = 0;
  4033. for (var i=rsltcnt; i > 0; i-- ) {
  4034. var flag = ds_rslt_sppiz00500.getColumn(i, "flag");
  4035. var rownum = ds_rslt_sppiz00500.getColumn(i, "rownum");
  4036. var newspclcd = ds_rslt_sppiz00500.getColumn(i, "spclcd");
  4037. var newcdnm = ds_rslt_sppiz00500.getColumn(i, "cdnm");
  4038. var newspclspec = ds_rslt_sppiz00500.getColumn(i, "spclspec");
  4039. var newspclformat = ds_rslt_sppiz00500.getColumn(i, "spclformat ");
  4040. var newdetldesc = ds_rslt_sppiz00500.getColumn(i, "detldesc");
  4041. // 2-1. 특정내역 추가
  4042. if ( flag == "I" ) {
  4043. var clsprow = ds_grid_grd_clsphist.addRow();
  4044. ds_grid_grd_clsphist.setColumn(clsprow, "rowstat", "I");
  4045. ds_grid_grd_clsphist.setColumn(clsprow, "unitflag", "J");
  4046. ds_grid_grd_clsphist.setColumn(clsprow, "edicd", ds_cond_sppiz00500.getColumn(0, "snglcalcscorcd"));
  4047. ds_grid_grd_clsphist.setColumn(clsprow, "spclcd", newspclcd);
  4048. ds_grid_grd_clsphist.setColumn(clsprow, "cdnm", newcdnm);
  4049. ds_grid_grd_clsphist.setColumn(clsprow, "spclspec", newspclspec);
  4050. ds_grid_grd_clsphist.setColumn(clsprow, "spclformat", newspclformat);
  4051. ds_grid_grd_clsphist.setColumn(clsprow, "detldesc", newdetldesc);
  4052. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcd", ds_cond_sppiz00500.getColumn(0, "snglcalcscorcd"));
  4053. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcdnm", ds_cond_sppiz00500.getColumn(0, "hngnm"));
  4054. ds_grid_grd_clsphist.setColumn(clsprow, "oldspclcd", newspclcd);
  4055. ds_grid_grd_clsphist.setColumn(clsprow, "seqno", "");
  4056. ds_grid_grd_clsphist.setColumn(clsprow, "currowstat", "");
  4057. ds_grid_grd_clsphist.setColumn(clsprow, "prcpdd", ds_list2_oscl.getColumn(row, "prcpdd"));
  4058. ds_grid_grd_clsphist.setColumn(clsprow, "prcpno", ds_list2_oscl.getColumn(row, "prcpno"));
  4059. ds_grid_grd_clsphist.setColumn(clsprow, "prcphistno", ds_list2_oscl.getColumn(row, "prcphistno"));
  4060. ds_grid_grd_clsphist.setColumn(clsprow, "execprcpseqno", ds_list2_oscl.getColumn(row, "execprcpseqno"));
  4061. ds_grid_grd_clsphist.setColumn(clsprow, "edicdflag", ds_list2_oscl.getColumn(row, "edicdflag"));
  4062. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  4063. addcnt++;
  4064. // 2-2. 특정내역 수정
  4065. } else if ( flag == "U" ) {
  4066. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  4067. ds_grid_grd_clsphist.setColumn(rownum, "edicd", ds_cond_sppiz00500.getColumn(0, "snglcalcscorcd"));
  4068. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcd", ds_cond_sppiz00500.getColumn(0, "snglcalcscorcd"));
  4069. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcdnm", ds_cond_sppiz00500.getColumn(0, "hngnm"));
  4070. ds_grid_grd_clsphist.setColumn(rownum, "spclcd", newspclcd);
  4071. ds_grid_grd_clsphist.setColumn(rownum, "cdnm", newcdnm);
  4072. ds_grid_grd_clsphist.setColumn(rownum, "spclspec", newspclspec);
  4073. ds_grid_grd_clsphist.setColumn(rownum, "spclformat", newspclformat);
  4074. ds_grid_grd_clsphist.setColumn(rownum, "detldesc", newdetldesc);
  4075. ds_grid_grd_clsphist.setColumn(rownum, "oldspclcd", newspclcd);
  4076. var rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  4077. if ( rowstatus == 2 ) {
  4078. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "I");
  4079. ds_grid_grd_clsphist.setRowType(rownum, "I");
  4080. } else {
  4081. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  4082. ds_grid_grd_clsphist.setRowType(rownum, "U");
  4083. }
  4084. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  4085. var oldspclcd = ds_rslt_sppiz00500.getColumn(i, "oldspclcd");
  4086. var oldspclspec = ds_rslt_sppiz00500.getColumn(i, "oldspclspec");
  4087. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  4088. // 2-3. 특정내역 삭제
  4089. } else if ( flag == "D" && rownum != "" ) {
  4090. var rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  4091. if ( rowstatus == 2 ) {
  4092. ds_grid_grd_clsphist.deleteRow(rownum);
  4093. } else {
  4094. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "D");
  4095. }
  4096. ds_hidden_list3.setColumn(0, "msgspclformat", "입력된 줄단위 특정내역이 없습니다.");
  4097. }
  4098. }
  4099. var cnt = 0;
  4100. for (var j=0; j<ds_grid_grd_clsphist.rowcount; j++ ) {
  4101. var spclEdicd = ds_grid_grd_clsphist.getColumn(j, "edicd");
  4102. if ( basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(j, "unitflag") == "J" ) {
  4103. if ( ds_grid_grd_clsphist.getRowType(rownum) != 8 ) {
  4104. cnt++;
  4105. }
  4106. }
  4107. }
  4108. if ( cnt > 0 ) {
  4109. if ( utlf_isNull(lnunitspclspecyn) ) { // 기존에는 입력된 내역이 없다가 추가된 경우임
  4110. for (var j=0; j<ds_grid_grd_clsphist.rowcount; j++ ) {
  4111. var osclEdicd = ds_grid_grd_clsphist.getColumn(j, "basecd");
  4112. if ( basecd == osclEdicd ) {
  4113. ds_grid_grd_clsphist.setColumn(j, "lnunitspclspecyn", "*");
  4114. for (var k=0; k<ds_grid_grd_clsphist.rowcount; k++ ) {
  4115. var spclEdicd = ds_grid_grd_clsphist.getColumn(k, "edicd");
  4116. if ( basecd == spclEdicd && ds_grid_grd_clsphist.getColumn(k, "spclcd") == "JX999" ) {
  4117. ds_grid_grd_clsphist.setColumn(j, "jx999lnunitspclspecyn", "*");
  4118. }
  4119. }
  4120. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + j +' ? "#ffff00" : "")');
  4121. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + j +' ? "#ffff00" : "")');
  4122. }
  4123. }
  4124. }
  4125. } else { // 특정내역이 한건도 없게 된 경우
  4126. if ( lnunitspclspecyn ) { // 기존에는 입력된 내역이 있다가 삭제된 경우임
  4127. for (var j=0; j<ds_grid_grd_clsphist.rowcount; j++ ) {
  4128. var osclEdicd = ds_grid_grd_clsphist.getColumn(j, "basecd");
  4129. if ( basecd == osclEdicd ) {
  4130. ds_grid_grd_clsphist.setColumn(j, "lnunitspclspecyn", "");
  4131. ds_grid_grd_clsphist.setColumn(j, "jx999lnunitspclspecyn", "");
  4132. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + j +' ? "#ffffff" : "")');
  4133. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + j +' ? "#ffffff" : "")');
  4134. }
  4135. }
  4136. }
  4137. }
  4138. }
  4139. // 3. 특정내역을 소팅한다. - 특정내역을 소트해야 하는 시기는 특정내역이 추가된 경우 뿐이다.
  4140. if ( addcnt > 0 ) {
  4141. lf_fSortSpclNo();
  4142. // lf_fSpclGridInsertRow();
  4143. }
  4144. } else {
  4145. sysf_messageBox("EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이", "I004"); ///EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이 없습니다.
  4146. }
  4147. }
  4148. //=======================================================================================
  4149. // Function
  4150. //---------------------------------------------------------------------------------------
  4151. /****************************************************************************************
  4152. * Argument :
  4153. * Description : 원외처방 T필드 더블클릭 (특정내역 입력)
  4154. ****************************************************************************************/
  4155. function lf_fSetOprcpSpclSpec()
  4156. {
  4157. // 1. 원외처방 특정내역 상세관리 화면을 호출한다.
  4158. ds_cond_sppiz01700.clearData();
  4159. ds_cond_sppiz01700.addRow();
  4160. ds_rslt_sppiz01700.clearData();
  4161. var row = ds_grid_grd_oprcphist.rowposition;
  4162. var edicd = ds_grid_grd_oprcphist.getColumn(row, "edicd");
  4163. var hngnm = ds_grid_grd_oprcphist.getColumn(row, "hngnm");
  4164. var clopdd = ds_grid_grd_oprcphist.getColumn(row, "clopdd");
  4165. var clopno = ds_grid_grd_oprcphist.getColumn(row, "clopno");
  4166. if ( !utlf_isNull(edicd) ) {
  4167. var spclspecyn = ds_grid_grd_oprcphist.getColumn(row, "spclspecyn");
  4168. if ( utlf_isNull(spclspecyn)) {
  4169. ds_cond_sppiz01700.setColumn(0, "flag", "I");
  4170. ds_cond_sppiz01700.setColumn(0, "snglcalcscorcd", edicd);
  4171. ds_cond_sppiz01700.setColumn(0, "hngnm", hngnm);
  4172. ds_cond_sppiz01700.setColumn(0, "clopdd", clopdd);
  4173. ds_cond_sppiz01700.setColumn(0, "clopno", clopno);
  4174. ds_cond_sppiz01700.setColumn(0, "edilnno", "-");
  4175. ds_cond_sppiz01700.setColumn(0, "spclcd" , "JX999");
  4176. ds_cond_sppiz01700.setColumn(0, "detldesc", "");
  4177. ds_cond_sppiz01700.setColumn(0, "spclspec", "");
  4178. ds_cond_sppiz01700.setColumn(0, "spclformat", "");
  4179. ds_cond_sppiz01700.setColumn(0, "rownum", row);
  4180. ds_cond_sppiz01700.setColumn(0, "cdnm", "");
  4181. ds_cond_sppiz01700.setColumn(0, "unitflag", "J");
  4182. } else { // 기존에 입력된 줄단위 원외처방특정내역이 있는 경우
  4183. var rowcnt = 0;
  4184. var setrow = 0;
  4185. for (var i=0; i<ds_grid_grd_oprcphist.rowcount; i++ ) {
  4186. var edicd2 = ds_grid_grd_clsphist.getColumn(i, "edicd");
  4187. var calcscorcdnm = ds_grid_grd_clsphist.getColumn(i, "calcscorcdnm");
  4188. if ( edicd == edicd2 && ds_grid_grd_clsphist.getColumn(i, "unitflag") == "O" ) {
  4189. var spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  4190. if ( spclcd != "JT001" && ds_grid_grd_clsphist.getRowType(i) != 4 ) {
  4191. var rowcnt = ds_cond_sppiz01700.addRow();
  4192. ds_cond_sppiz01700.setColumn(rowcnt, "flag", "");
  4193. ds_cond_sppiz01700.setColumn(rowcnt, "rownum", i);
  4194. ds_cond_sppiz01700.setColumn(rowcnt, "snglcalcscorcd", edicd2);
  4195. ds_cond_sppiz01700.setColumn(rowcnt, "hngnm", calcscorcdnm);
  4196. ds_cond_sppiz01700.setColumn(rowcnt, "clopdd", clopdd);
  4197. ds_cond_sppiz01700.setColumn(rowcnt, "clopno", clopno);
  4198. ds_cond_sppiz01700.setColumn(rowcnt, "edilnno", "-");
  4199. ds_cond_sppiz01700.setColumn(rowcnt, "spclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  4200. ds_cond_sppiz01700.setColumn(rowcnt, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  4201. ds_cond_sppiz01700.setColumn(rowcnt, "spclformat", ds_grid_grd_clsphist.getColumn(i, "spclformat"));
  4202. ds_cond_sppiz01700.setColumn(rowcnt, "cdnm", ds_grid_grd_clsphist.getColumn(i, "cdnm"));
  4203. ds_cond_sppiz01700.setColumn(rowcnt, "detldesc", ds_grid_grd_clsphist.getColumn(i, "detldesc"));
  4204. ds_cond_sppiz01700.setColumn(rowcnt, "oldspclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  4205. ds_cond_sppiz01700.setColumn(rowcnt, "oldspclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  4206. setrow = i;
  4207. }
  4208. }
  4209. }
  4210. ds_cond_sppiz01700.setColumn(0, "flag", "");
  4211. ds_cond_sppiz01700.setColumn(0, "snglcalcscorcd", edicd);
  4212. ds_cond_sppiz01700.setColumn(0, "hngnm", hngnm);
  4213. ds_cond_sppiz01700.setColumn(0, "clopdd", clopdd);
  4214. ds_cond_sppiz01700.setColumn(0, "clopno", clopno);
  4215. ds_cond_sppiz01700.setColumn(0, "edilnno", "-");
  4216. ds_cond_sppiz01700.setColumn(0, "spclcd", ds_grid_grd_clsphist.getColumn(setrow, "spclcd"));
  4217. ds_cond_sppiz01700.setColumn(0, "detldesc", ds_grid_grd_clsphist.getColumn(setrow, "detldesc"));
  4218. ds_cond_sppiz01700.setColumn(0, "spclspec", ds_grid_grd_clsphist.getColumn(setrow, "spclspec"));
  4219. ds_cond_sppiz01700.setColumn(0, "spclformat", ds_grid_grd_clsphist.getColumn(setrow, "spclformat"));
  4220. ds_cond_sppiz01700.setColumn(0, "cdnm", ds_grid_grd_clsphist.getColumn(setrow, "cdnm"));
  4221. ds_cond_sppiz01700.setColumn(0, "rownum", setrow);
  4222. ds_cond_sppiz01700.setColumn(0, "unitflag", "J");
  4223. }
  4224. var objArg = new Object();
  4225. objArg.sSnglcalcscorcd = ds_cond_sppiz01700.getColumn(0, "snglcalcscorcd");
  4226. objArg.sClopdd = ds_cond_sppiz01700.getColumn(0, "clopdd");
  4227. objArg.sClopno = ds_cond_sppiz01700.getColumn(0, "clopno");
  4228. objArg.sEdilnno = ds_cond_sppiz01700.getColumn(0, "edilnno");
  4229. objArg.sSpclformat = ds_cond_sppiz01700.getColumn(0, "spclformat");
  4230. objArg.sSpclcd = ds_cond_sppiz01700.getColumn(0, "spclcd");
  4231. objArg.sSpclspec = ds_cond_sppiz01700.getColumn(0, "spclspec");
  4232. objArg.sDetldesc = ds_cond_sppiz01700.getColumn(0, "detldesc");
  4233. objArg.ds_cond_sppiz01700 = ds_cond_sppiz01700;
  4234. objArg.objDs = ds_grid_grd_clsphist;
  4235. var rtn = frmf_modal("SPPIZ01700","SPPIZ01700", objArg,"","","","","","","","","","M"); // SPPIZ01700_원외처방특정내역상세관리.xfdl
  4236. // 2. 넘어온 원외처방 특정내역을 처리한다.
  4237. var rsltcnt = ds_rslt_sppiz01700.rowcount;
  4238. if ( rsltcnt > 0 ) {
  4239. var clsprow = 0;
  4240. var addcnt = 0;
  4241. for (var i=rsltcnt-1; i>-1; i--){
  4242. var flag = ds_rslt_sppiz01700.getColumn(i, "flag");
  4243. var rownum = ds_rslt_sppiz01700.getColumn(i, "rownum");
  4244. var newspclcd = ds_rslt_sppiz01700.getColumn(i, "spclcd");
  4245. var newcdnm = ds_rslt_sppiz01700.getColumn(i, "cdnm");
  4246. var newspclspec = ds_rslt_sppiz01700.getColumn(i, "spclspec");
  4247. var newspclformat = ds_rslt_sppiz01700.getColumn(i, "spclformat");
  4248. var newdetldesc = ds_rslt_sppiz01700.getColumn(i, "detldesc");
  4249. // 2-1. 특정내역 추가
  4250. if ( flag == "I" ) {
  4251. clsprow = ds_grid_grd_clsphist.addRow();
  4252. ds_grid_grd_clsphist.setColumn(clsprow, "rowstat", "I");
  4253. ds_grid_grd_clsphist.setColumn(clsprow, "unitflag", "O");
  4254. ds_grid_grd_clsphist.setColumn(clsprow, "edicd", ds_cond_sppiz01700.getColumn(0, "snglcalcscorcd"));
  4255. ds_grid_grd_clsphist.setColumn(clsprow, "spclcd", newspclcd);
  4256. ds_grid_grd_clsphist.setColumn(clsprow, "cdnm", newcdnm);
  4257. ds_grid_grd_clsphist.setColumn(clsprow, "spclspec", newspclspec);
  4258. ds_grid_grd_clsphist.setColumn(clsprow, "spclformat", newspclformat);
  4259. ds_grid_grd_clsphist.setColumn(clsprow, "detldesc", newdetldesc);
  4260. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcd", ds_grid_grd_oprcphist.getColumn(row, "snglcalcscorcd"));
  4261. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcdnm", ds_grid_grd_oprcphist.getColumn(row, "hngnm"));
  4262. ds_grid_grd_clsphist.setColumn(clsprow, "oldspclcd", newspclcd);
  4263. ds_grid_grd_clsphist.setColumn(clsprow, "seqno", "");
  4264. ds_grid_grd_clsphist.setColumn(clsprow, "prcpdd", ds_grid_grd_oprcphist.getColumn(row, "prcpdd"));
  4265. ds_grid_grd_clsphist.setColumn(clsprow, "prcpno", ds_grid_grd_oprcphist.getColumn(row, "prcpno"));
  4266. ds_grid_grd_clsphist.setColumn(clsprow, "prcphistno", ds_grid_grd_oprcphist.getColumn(row, "prcphistno"));
  4267. ds_grid_grd_clsphist.setColumn(clsprow, "execprcpseqno", ds_grid_grd_oprcphist.getColumn(row, "execprcpseqno"));
  4268. ds_grid_grd_clsphist.setColumn(clsprow, "currowstat", "");
  4269. ds_grid_grd_clsphist.setColumn(clsprow, "edicdflag", ds_grid_grd_oprcphist.getColumn(row, "edicdflag"));
  4270. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  4271. addcnt++;
  4272. // 2-2. 특정내역 수정
  4273. } else if ( flag == "U" ) {
  4274. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  4275. ds_grid_grd_clsphist.setColumn(rownum, "edicd", ds_cond_sppiz01700.getColumn(0, "snglcalcscorcd"));
  4276. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcd", ds_cond_sppiz01700.getColumn(0, "snglcalcscorcd"));
  4277. ds_grid_grd_clsphist.setColumn(rownum, "calcscorcdnm", ds_cond_sppiz01700.getColumn(0, "hngnm"));
  4278. ds_grid_grd_clsphist.setColumn(rownum, "spclcd", newspclcd);
  4279. ds_grid_grd_clsphist.setColumn(rownum, "cdnm", newcdnm);
  4280. ds_grid_grd_clsphist.setColumn(rownum, "spclspec", newspclspec);
  4281. ds_grid_grd_clsphist.setColumn(rownum, "spclformat", newspclformat);
  4282. ds_grid_grd_clsphist.setColumn(rownum, "detldesc", newdetldesc);
  4283. ds_grid_grd_clsphist.setColumn(rownum, "oldspclcd", newspclcd);
  4284. var rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  4285. if ( rowstatus == 2 ) {
  4286. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "I");
  4287. ds_grid_grd_clsphist.setRowType(rownum, "I");
  4288. } else {
  4289. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  4290. ds_grid_grd_clsphist.setRowType(rownum, "U");
  4291. }
  4292. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  4293. var oldspclcd = ds_rslt_sppiz01700.getColumn(i, "oldspclcd");
  4294. var oldspclspec = ds_rslt_sppiz01700.getColumn(i, "oldspclspec");
  4295. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  4296. // 2-3. 특정내역 삭제
  4297. } else if ( flag == "D" && rownum != "" ) {
  4298. var rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  4299. if ( rowstatus == 2 ) {
  4300. ds_grid_grd_clsphist.deleteRow(rownum);
  4301. } else {
  4302. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "D");
  4303. }
  4304. ds_hidden_list3.setColumn(0, "msgspclformat", "입력된 줄단위 특정내역이 없습니다.");
  4305. }
  4306. }
  4307. lf_fSetClcjRowStatus();
  4308. var cnt = 0;
  4309. for (var j=0; j<ds_grid_grd_clsphist.rowcount; j++ ) {
  4310. var clopEdicd = ds_grid_grd_clsphist.getColumn(j, "edicd");
  4311. if ( edicd == clopEdicd && ds_grid_grd_clsphist.getColumn(j, "unitflag") == "O" ) {
  4312. if ( ds_grid_grd_clsphist.getRowType(j) != 8 ) {
  4313. cnt++;
  4314. }
  4315. }
  4316. }
  4317. if ( cnt > 0 ) {
  4318. if ( utlf_isNull(spclspecyn) ) { // 기존에는 입력된 내역이 없다가 추가된 경우임
  4319. for (var j=0; j< ds_grid_grd_oprcphist.rowcount; j++ ) {
  4320. var clopEdicd = ds_grid_grd_oprcphist.getColumn(j, "edicd");
  4321. if ( edicd == clopEdicd ) {
  4322. ds_grid_grd_oprcphist.setColumn(j, "spclspecyn", "*");
  4323. for (var k=0; k<ds_grid_grd_clsphist.rowcount; k++ ) {
  4324. var spclEdicd = ds_grid_grd_clsphist.getColumn(k, "edicd");
  4325. if ( clopEdicd == spclEdicd && ds_grid_grd_clsphist.getColumn(k, "spclcd") == "JX999" ) {
  4326. ds_grid_grd_oprcphist.setColumn(j, "jx999spclspecyn", "*");
  4327. }
  4328. }
  4329. // ds_grid_grd_oprcphist.setCellProperty("body", ds_grid_grd_oprcphist.getBindCellIndex("body", "edicd"), "background", 'EXPR(currow == ' + j +' ? "#ffff00" : "")');
  4330. // ds_grid_grd_oprcphist.setCellProperty("body", ds_grid_grd_oprcphist.getBindCellIndex("body", "edicd"), "background2", 'EXPR(currow == ' + j +' ? "#ffff00" : "")');
  4331. }
  4332. }
  4333. }
  4334. } else { // 특정내역이 한건도 없게 된 경우
  4335. if ( spclspecyn ) { // 기존에는 입력된 내역이 있다가 삭제된 경우임
  4336. for (var j=0; j<ds_grid_grd_clsphist.rowcount; j++ ) {
  4337. var clopEdicd = ds_grid_grd_oprcphist.getColumn(j, "edicd");
  4338. if ( edicd == clopEdicd ) {
  4339. ds_grid_grd_clsphist.setColumn(j, "spclspecyn", "");
  4340. ds_grid_grd_clsphist.setColumn(j, "jx999specyn", "");
  4341. // ds_grid_grd_oprcphist.setCellProperty("body", ds_grid_grd_oprcphist.getBindCellIndex("body", "edicd"), "background", 'EXPR(currow == ' + j +' ? "#ffffff" : "")');
  4342. // ds_grid_grd_oprcphist.setCellProperty("body", ds_grid_grd_oprcphist.getBindCellIndex("body", "edicd"), "background2", 'EXPR(currow == ' + j +' ? "#ffffff" : "")');
  4343. }
  4344. }
  4345. }
  4346. }
  4347. }
  4348. // 3. 특정내역을 소팅한다. - 특정내역을 소트해야 하는 시기는 특정내역이 추가된 경우 뿐이다.
  4349. if ( addcnt > 0 ) {
  4350. lf_fSortSpclNo();
  4351. // lf_fSpclGridInsertRow();
  4352. }
  4353. } else {
  4354. sysf_messageBox("EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이", "I004"); ///EDI코드가 입력되지 않았으며 해당 줄단위 특정내역이 없습니다.
  4355. }
  4356. }
  4357. // 특정내역 rowstatus 세팅
  4358. function lf_fSetClcjRowStatus()
  4359. {
  4360. for (var k=ds_grid_grd_clsphist.rowcount-1; k>=1; k--) {
  4361. var rowstatus = ds_grid_grd_clsphist.getColumn(k, "rowstat");
  4362. if (rowstatus == "I") ds_grid_grd_clsphist.setRowType(k, "I");
  4363. else if (rowstatus == "U") ds_grid_grd_clsphist.setRowType(k, "U")
  4364. else if (rowstatus == "D") ds_grid_grd_clsphist.setRowType(k, "D")
  4365. else if (rowstatus == "R") ds_grid_grd_clsphist.deleteRow(k);
  4366. }
  4367. }
  4368. //=======================================================================================
  4369. // Function
  4370. //---------------------------------------------------------------------------------------
  4371. /****************************************************************************************
  4372. * Argument :
  4373. * Description : 특정내역 Grid 에서 선택한 줄단위 특정내역을 조회하고, 명세서단위 특정내역을 수정/입력한다.
  4374. ****************************************************************************************/
  4375. function lf_fSetDocRefLnSpclSpec()
  4376. {
  4377. // 1. 특정내역 상세관리 화면을 호출한다.
  4378. ds_cond_sppiz00500.clearData();
  4379. ds_cond_sppiz00500.addRow();
  4380. ds_rslt_sppiz00500.clearData();
  4381. var row = ds_grid_grd_clsphist.rowposition;
  4382. var edicd = ds_grid_grd_clsphist.getColumn(row, "edicd");
  4383. var unitflag = ds_grid_grd_clsphist.getColumn(row, "unitflag");
  4384. if ( unitflag == "J" ) {
  4385. // 삭제상태인 경우 처방Grid에서 입력,수정은 가능하지만 특정내역Grid에서는 편집할 수 없다.
  4386. var rowstatus = ds_grid_grd_clsphist.getRowType(row);
  4387. if ( rowstatus == 8 ) { // delete
  4388. sysf_messageBox("삭제된 특정내역은 수정할 수", "I004"); ///삭제된 특정내역은 수정할 수 없습니다.
  4389. return;
  4390. }
  4391. }
  4392. var rowcnt = 0;
  4393. for (var i=0; i<ds_grid_grd_clsphist.rowcount; i++ ) {
  4394. var spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  4395. if ( edicd == spclEdicd && ds_grid_grd_clsphist.getColumn(i, "unitflag") == unitflag ) {
  4396. var spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  4397. if ( spclcd != "JT001" && ds_grid_grd_clsphist.getRowType(i) != 4 ) { // 확인코드가 아닌 경우
  4398. rowcnt = ds_cond_sppiz00500.addRow();
  4399. ds_cond_sppiz00500.setColumn(rowcnt, "flag", "");
  4400. ds_cond_sppiz00500.setColumn(rowcnt, "rownum", i);
  4401. ds_cond_sppiz00500.setColumn(rowcnt, "snglcalcscorcd", spclEdicd);
  4402. ds_cond_sppiz00500.setColumn(rowcnt, "edilnno", "0");
  4403. ds_cond_sppiz00500.setColumn(rowcnt, "spclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  4404. ds_cond_sppiz00500.setColumn(rowcnt, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  4405. ds_cond_sppiz00500.setColumn(rowcnt, "spclformat", ds_grid_grd_clsphist.getColumn(i, "spclformat"));
  4406. ds_cond_sppiz00500.setColumn(rowcnt, "cdnm", ds_grid_grd_clsphist.getColumn(i, "cdnm"));
  4407. ds_cond_sppiz00500.setColumn(rowcnt, "detldesc", ds_grid_grd_clsphist.getColumn(i, "detldesc"));
  4408. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  4409. ds_cond_sppiz00500.setColumn(rowcnt, "oldspclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  4410. }
  4411. }
  4412. }
  4413. ds_cond_sppiz00500.setColumn(0, "flag", "");
  4414. ds_cond_sppiz00500.setColumn(0, "snglcalcscorcd", edicd);
  4415. ds_cond_sppiz00500.setColumn(0, "edilnno", "0");
  4416. ds_cond_sppiz00500.setColumn(0, "spclcd", ds_grid_grd_clsphist.getColumn(row, "spclcd"));
  4417. ds_cond_sppiz00500.setColumn(0, "detldesc", ds_grid_grd_clsphist.getColumn(row, "detldesc"));
  4418. ds_cond_sppiz00500.setColumn(0, "spclspec", ds_grid_grd_clsphist.getColumn(row, "spclspec"));
  4419. ds_cond_sppiz00500.setColumn(0, "spclformat", ds_grid_grd_clsphist.getColumn(row, "spclformat"));
  4420. ds_cond_sppiz00500.setColumn(0, "rownum", row);
  4421. ds_cond_sppiz00500.setColumn(0, "cdnm", ds_grid_grd_clsphist.getColumn(row, "cdnm"));
  4422. ds_cond_sppiz00500.setColumn(0, "unitflag", unitflag);
  4423. frmf_modal("SPPIZ00500", "SPPIZ00500", {objDs:ds_cond_sppiz00500});//, "", "", "", "", "", "", "", "", "", "M"); // SPPIZ00500_특정내역상세관리.xfdl
  4424. // 2. 넘어온 데이터를 처리한다.
  4425. var rsltcnt = ds_rslt_sppiz00500.rowcount;
  4426. if ( rsltcnt > 0 ) {
  4427. var clsprow = 0;
  4428. var addcnt = 0;
  4429. for (var i=rsltcnt; i > 0; i-- ) {
  4430. var flag = ds_rslt_sppiz00500.getColumn(i, "flag");
  4431. var rownum = ds_rslt_sppiz00500.getColumn(i, "rownum");
  4432. var newspclcd = ds_rslt_sppiz00500.getColumn(i, "spclcd");
  4433. var newcdnm = ds_rslt_sppiz00500.getColumn(i, "cdnm");
  4434. var newspclspec = ds_rslt_sppiz00500.getColumn(i, "spclspec");
  4435. var newspclformat = ds_rslt_sppiz00500.getColumn(i, "spclformat ");
  4436. var newdetldesc = ds_rslt_sppiz00500.getColumn(i, "detldesc");
  4437. // 2-1. 특정내역을 추가한다.
  4438. if ( flag == "I" ) {
  4439. clsprow = ds_grid_grd_clsphist.addRow();
  4440. ds_grid_grd_clsphist.setColumn(clsprow, "rowstat", "I");
  4441. ds_grid_grd_clsphist.setColumn(clsprow, "unitflag", unitflag);
  4442. ds_grid_grd_clsphist.setColumn(clsprow, "edicd", ds_cond_sppiz00500.getColumn(0, "snglcalcscorcd"));
  4443. ds_grid_grd_clsphist.setColumn(clsprow, "spclcd", newspclcd);
  4444. ds_grid_grd_clsphist.setColumn(clsprow, "cdnm", newcdnm);
  4445. ds_grid_grd_clsphist.setColumn(clsprow, "spclspec", newspclspec);
  4446. ds_grid_grd_clsphist.setColumn(clsprow, "spclformat", newspclformat);
  4447. ds_grid_grd_clsphist.setColumn(clsprow, "detldesc", newdetldesc);
  4448. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcd", ds_cond_sppiz00500.getColumn(0, "snglcalcscorcd"));
  4449. ds_grid_grd_clsphist.setColumn(clsprow, "oldspclcd", newspclcd);
  4450. ds_grid_grd_clsphist.setColumn(clsprow, "seqno", "");
  4451. ds_grid_grd_clsphist.setColumn(clsprow, "prcpdd", ds_grid_grd_clsphist.getColumn(row, "prcpdd"));
  4452. ds_grid_grd_clsphist.setColumn(clsprow, "prcpno", ds_grid_grd_clsphist.getColumn(row, "prcpno"));
  4453. ds_grid_grd_clsphist.setColumn(clsprow, "prcphistno", ds_grid_grd_clsphist.getColumn(row, "prcphistno"));
  4454. ds_grid_grd_clsphist.setColumn(clsprow, "execprcpseqno", ds_grid_grd_clsphist.getColumn(row, "execprcpseqno"));
  4455. ds_grid_grd_clsphist.setColumn(clsprow, "currowstat", "");
  4456. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  4457. addcnt++;
  4458. // 2-2. 특정내역을 수정한다.
  4459. } else if ( flag == "U" ) {
  4460. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  4461. ds_grid_grd_clsphist.setColumn(rownum, "edicd", ds_cond_sppiz00500.getColumn(0, "snglcalcscorcd"));
  4462. ds_grid_grd_clsphist.setColumn(rownum, "spclcd", newspclcd);
  4463. ds_grid_grd_clsphist.setColumn(rownum, "cdnm", newcdnm);
  4464. ds_grid_grd_clsphist.setColumn(rownum, "spclspec", newspclspec);
  4465. ds_grid_grd_clsphist.setColumn(rownum, "spclformat", newspclformat);
  4466. ds_grid_grd_clsphist.setColumn(rownum, "detldesc", newdetldesc);
  4467. ds_grid_grd_clsphist.setColumn(rownum, "oldspclcd", newspclcd);
  4468. var rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  4469. if ( rowstatus == 2 ) {
  4470. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "I");
  4471. ds_grid_grd_clsphist.setRowType(rownum, "I");
  4472. } else {
  4473. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "U");
  4474. ds_grid_grd_clsphist.setRowType(rownum, "U");
  4475. }
  4476. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  4477. var oldspclcd = ds_rslt_sppiz00500.getColumn(i, "oldspclcd");
  4478. var oldspclspec = ds_rslt_sppiz00500.getColumn(i, "oldspclspec");
  4479. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ newcdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ newspclformat);
  4480. // 2-3. 특정내역을 삭제한다.
  4481. } else if ( flag == "D" && rownum != "" ) {
  4482. var rowstatus = ds_grid_grd_clsphist.getRowType(rownum);
  4483. if ( rowstatus == 2 ) {
  4484. ds_grid_grd_clsphist.deleteRow(rownum);
  4485. } else {
  4486. ds_grid_grd_clsphist.setColumn(rownum, "rowstat", "D");
  4487. }
  4488. ds_hidden_list3.setColumn(0, "msgspclformat", "입력된 줄단위 특정내역이 없습니다.");
  4489. }
  4490. }
  4491. if ( unitflag == "M" ) { // 명세서 단위
  4492. // 특정코드 MT015, MT016, MT004 정보가 입력된 환자인지를 확인한다.
  4493. lf_fCheckSpclSpecData();
  4494. } else { // 줄단위인 경우
  4495. var cnt = 0;
  4496. for (var j=0; j<ds_grid_grd_clsphist.rowcount; j++ ) {
  4497. var spclEdicd = ds_grid_grd_clsphist.getColumn(j, "edicd");
  4498. if ( edicd == spclEdicd && ds_grid_grd_clsphist.getColumn(j, "unitflag") == "J" ) {
  4499. if ( ds_grid_grd_clsphist.getRowType(j) != 8 ) {
  4500. cnt++;
  4501. }
  4502. }
  4503. }
  4504. if ( cnt > 0 ) {
  4505. for (var j = 0; j < ds_grid_grd_clsphist.rowcount; j++ ) {
  4506. var osclEdicd = ds_grid_grd_clsphist.getColumn(j, "basecd");
  4507. if ( edicd == osclEdicd ) {
  4508. ds_grid_grd_clsphist.setColumn(j, "lnunitspclspecyn", "*");
  4509. for (var k = 0; k< ds_grid_grd_clsphist.rowcount; k++ ) {
  4510. var spclEdicd = ds_grid_grd_clsphist.getColumn(k, "edicd");
  4511. if ( osclEdicd == spclEdicd && ds_grid_grd_clsphist.getColumn(k, "spclcd") == "JX999" ) {
  4512. ds_grid_grd_clsphist.setColumn(j, "jx999lnunitspclspecyn", "*");
  4513. }
  4514. }
  4515. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + j +' ? "#ffff00" : "")');
  4516. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + j +' ? "#ffff00" : "")');
  4517. }
  4518. }
  4519. } else { // 특정내역이 한건도 없게 된 경우
  4520. for (var j = 0; j < ds_grid_grd_clsphist.rowcount; j++ ) {
  4521. var osclEdicd = ds_grid_grd_clsphist.getColumn(j, "basecd");
  4522. if ( edicd == osclEdicd ) {
  4523. ds_grid_grd_clsphist.setColumn(j, "lnunitspclspecyn", "");
  4524. ds_grid_grd_clsphist.setColumn(j, "jx999lnunitspclspecyn", "");
  4525. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + j +' ? "#ffffff" : "")');
  4526. // ds_grid_grd_clsphist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + j +' ? "#ffffff" : "")');
  4527. }
  4528. }
  4529. }
  4530. }
  4531. // 3. 특정내역을 소팅한다. - 특정내역을 소트해야 하는 시기는 특정내역이 추가된 경우 뿐이다.
  4532. if ( addcnt > 0 ) {
  4533. lf_fSortSpclNo();
  4534. // lf_fSpclGridInsertRow();
  4535. }
  4536. }
  4537. }
  4538. //=======================================================================================
  4539. // Function
  4540. //---------------------------------------------------------------------------------------
  4541. /****************************************************************************************
  4542. * Argument :
  4543. * Description : 특정내역 Grid 에서 선택한 확인코드를 조회하고 줄단위 특정내역을 수정/입력한다.
  4544. ****************************************************************************************/
  4545. function lf_fSetCnfmCdSpclSpec()
  4546. {
  4547. var cur_row = ds_grid_grd_clsphist.rowposition;
  4548. // 1. 확인코드 조회 화면을 호출한다.
  4549. // ds_cond_sppiz01100.clearData();
  4550. // ds_cond_sppiz01100.addRow();
  4551. // ds_cond_sppiz01100.setColumn(0, "code", ds_grid_grd_clsphist.getColumn(cur_row, "spclspec"));
  4552. // frmf_modal("SPPIZ01100", "SPPIZ01100", {ds_init_sppiz01100:ds_cond_sppiz01100});//, "", "", "", "", "", "", "", "", "", "M");
  4553. // 1. 확인코드 조회 팝업을 호출한다.
  4554. var objArg = new Object();
  4555. objArg.sCode = ds_grid_grd_clsphist.getColumn(cur_row, "spclspec");
  4556. var rtn = frmf_modal("SPPIZ01100","SPPIZ01100", objArg,"","","","","","","","","","M");
  4557. // 2. 조회 결과를 처리한다.
  4558. if (!utlf_isNull(rtn)) {
  4559. var cnfmcd = rtn.sCode; // ds_rslt_sppiz01100.getColumn(0, "code");
  4560. var basecd = ds_grid_grd_clsphist.getColumn(cur_row, "edicd");
  4561. var osclEdicd;
  4562. // 2-1. 처방그리드 확인코드를 수정한다.
  4563. for (var i = 0; i < ds_grid_grd_clodhist.rowcount; i++) {
  4564. osclEdicd = ds_grid_grd_clodhist.getColumn(i, "basecd");
  4565. if (basecd == osclEdicd) {
  4566. ds_grid_grd_clodhist.updatecontrol = false;
  4567. ds_grid_grd_clodhist.setColumn(i, "cnfmcd", cnfmcd);
  4568. ds_grid_grd_clodhist.updatecontrol = true;
  4569. }
  4570. }
  4571. // 2-2. 특정내역 그리드 확인코드를 수정한다.
  4572. var rowstatus = ds_grid_grd_clsphist.getRowType(cur_row);
  4573. if (!utlf_isNull(cnfmcd)) {
  4574. if (rowstatus != 8) {
  4575. ds_grid_grd_clsphist.setColumn(cur_row, "spclspec", cnfmcd);
  4576. if (rowstatus != 2) {
  4577. ds_grid_grd_clsphist.setRowType(cur_row, "U");
  4578. }
  4579. ds_hidden_list3.setColumn(0, "msgspclformat", "확인코드 - JT001 / 입력코드내역 : "+ cnfmcd +" / 기재형식 : X(5)");
  4580. }
  4581. }
  4582. else {
  4583. if (rowstatus == 2) {
  4584. ds_grid_grd_clsphist.deleteRow(cur_row);
  4585. }
  4586. else {
  4587. ds_grid_grd_clsphist.setRowType(cur_row, "D");
  4588. ds_grid_grd_clsphist.setColumn(cur_row, "rowstat", "D");
  4589. ds_grid_grd_clsphist.setColumn(cur_row, "spclspec", cnfmcd);
  4590. }
  4591. ds_hidden_list3.setColumn(0, "msgspclformat", "입력된 확인코드 내역이 없습니다.");
  4592. }
  4593. }
  4594. }
  4595. //=======================================================================================
  4596. // Function
  4597. //---------------------------------------------------------------------------------------
  4598. /****************************************************************************************
  4599. * Argument :
  4600. * Description : SPPIZ00700_심사Comment조회.xfdl 호출(심사자메모,EDI메모)
  4601. ****************************************************************************************/
  4602. function lf_fGetJudgEdiComment(memocls, mflag)
  4603. {
  4604. var ordfildcd = ds_item1_otpt.getColumn(0, "ordfildcd");
  4605. var insukind = ds_item1_otpt.getColumn(0, "insukindcd");
  4606. var objArg = new Object();
  4607. objArg.sMemoflag = "O";
  4608. objArg.sMemocls = memocls;
  4609. objArg.sOrdfildcd = ordfildcd;
  4610. objArg.sInsukind = insukind;
  4611. objArg.sIoflag = "O";
  4612. objArg.sJudgrid = "";
  4613. objArg.sEdiitem1 = "";
  4614. var rtnObj = frmf_modal("SPPIZ00700","SPPIZ00700", objArg,"","","","","","","","","","M");
  4615. for ( var i = 0; i < rtnObj.rowcount; i++ )
  4616. {
  4617. var pid = ds_item1_otpt.getColumn(0, "pid");
  4618. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  4619. var orddd = ds_item1_otpt.getColumn(0, "orddd");
  4620. var userid = sysf_getUserInfo("usernm");
  4621. var fstrgstdt = urlf_getStrDate(utlf_getCurrentDateTime().replace(" ",""));
  4622. if (mflag == "judg") {
  4623. var nRow = ds_grid_grd_judgmemo.addRow();
  4624. ds_grid_grd_judgmemo.setColumn(nRow, "pid", pid);
  4625. ds_grid_grd_judgmemo.setColumn(nRow, "cretno", cretno);
  4626. ds_grid_grd_judgmemo.setColumn(nRow, "orddd", orddd);
  4627. ds_grid_grd_judgmemo.setColumn(nRow, "unitflag", "M");
  4628. ds_grid_grd_judgmemo.setColumn(nRow, "spclcd", "");
  4629. ds_grid_grd_judgmemo.setColumn(nRow, "spclmemoflag", "U");
  4630. ds_grid_grd_judgmemo.setColumn(nRow, "userid", userid);
  4631. ds_grid_grd_judgmemo.setColumn(nRow, "fstrgstdt", fstrgstdt);
  4632. ds_grid_grd_judgmemo.setColumn(nRow, "spclspec", rtnObj.getColumn(i, "memo"));
  4633. } else if (mflag == "edi") {
  4634. var nRow = ds_grid_grd_edimemo.addRow();
  4635. ds_grid_grd_edimemo.setColumn(nRow, "pid", pid);
  4636. ds_grid_grd_edimemo.setColumn(nRow, "cretno", cretno);
  4637. ds_grid_grd_edimemo.setColumn(nRow, "orddd", orddd);
  4638. ds_grid_grd_edimemo.setColumn(nRow, "unitflag", "M");
  4639. ds_grid_grd_edimemo.setColumn(nRow, "spclcd", "MX999");
  4640. ds_grid_grd_edimemo.setColumn(nRow, "spclmemoflag", "E");
  4641. ds_grid_grd_edimemo.setColumn(nRow, "userid", userid);
  4642. ds_grid_grd_edimemo.setColumn(nRow, "fstrgstdt", fstrgstdt);
  4643. ds_grid_grd_edimemo.setColumn(nRow, "spclspec", rtnObj.getColumn(i, "memo"));
  4644. }
  4645. }
  4646. }
  4647. //=======================================================================================
  4648. // Function
  4649. //---------------------------------------------------------------------------------------
  4650. /****************************************************************************************
  4651. * Argument :
  4652. * Description : MT004 특정내역 한줄 추가
  4653. ****************************************************************************************/
  4654. function lf_fSetSpclMT004()
  4655. {
  4656. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  4657. if (!utlf_isNull(cretno)) {
  4658. // 1. 특정내역에 MT004가 존재하면 이를 삭제한다.
  4659. var spclcd;
  4660. var gridrowstatus;
  4661. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  4662. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  4663. gridrowstatus = ds_grid_grd_clsphist.getRowType(i);
  4664. if (spclcd == "MT004" && gridrowstatus != 8) {
  4665. if (gridrowstatus == 2) {
  4666. ds_grid_grd_clsphist.deleteRow(i);
  4667. }
  4668. else {
  4669. ds_grid_grd_clsphist.setRowType(i, "D");
  4670. ds_grid_grd_clsphist.setColumn(i, "rowstat", "D");
  4671. }
  4672. }
  4673. }
  4674. // 2. 특정내역에 MT004가 없으면 이를 추가한다.
  4675. var clspRow = ds_grid_grd_clsphist.addRow();
  4676. ds_grid_grd_clsphist.setColumn(clspRow, "rowstat", "I");
  4677. ds_grid_grd_clsphist.setColumn(clspRow, "unitflag", "M");
  4678. ds_grid_grd_clsphist.setColumn(clspRow, "edicd", "-");
  4679. ds_grid_grd_clsphist.setColumn(clspRow, "spclcd", "MT004");
  4680. ds_grid_grd_clsphist.setColumn(clspRow, "cdnm", "소명자료 구분");
  4681. ds_grid_grd_clsphist.setColumn(clspRow, "spclspec", "Y");
  4682. ds_grid_grd_clsphist.setColumn(clspRow, "spclformat", "X(1)");
  4683. ds_grid_grd_clsphist.setColumn(clspRow, "detldesc", "소명자료를 첨부하는 경우 'Y'를 기재");
  4684. ds_grid_grd_clsphist.setColumn(clspRow, "calcscorcd", "-");
  4685. ds_grid_grd_clsphist.setColumn(clspRow, "oldspclcd", "MT004");
  4686. ds_grid_grd_clsphist.setColumn(clspRow, "seqno", "");
  4687. ds_grid_grd_clsphist.setColumn(clspRow, "prcpdd", "");
  4688. ds_grid_grd_clsphist.setColumn(clspRow, "prcpno", "");
  4689. ds_grid_grd_clsphist.setColumn(clspRow, "prcphistno", "");
  4690. ds_grid_grd_clsphist.setColumn(clspRow, "execprcpseqno", "");
  4691. ds_grid_grd_clsphist.setColumn(clspRow, "currowstat", "1");
  4692. ds_grid_grd_clsphist.setColumn(clspRow, "edicdflag", "-");
  4693. ds_hidden_list3.setColumn(0, "msgspclformat", "");
  4694. lf_fSortSpclNo();
  4695. // lf_fSpclGridInsertRow();
  4696. grp_clsphist.btn_case_spclspec.click();
  4697. }
  4698. }
  4699. //=======================================================================================
  4700. // Function
  4701. //---------------------------------------------------------------------------------------
  4702. /****************************************************************************************
  4703. * Argument :
  4704. * Description : 소명자료 특정내역 추가
  4705. ****************************************************************************************/
  4706. function lf_fGetAttachedDataList()
  4707. {
  4708. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  4709. if (!utlf_isNull(cretno)) {
  4710. // 1. 첨부물자료관리 팝업을 호출한다.
  4711. ds_cond_sppiz00200.clearData();
  4712. var index = -1;
  4713. var spclcd;
  4714. var gridrowstatus;
  4715. for (var i = 0 ; i < ds_grid_grd_clsphist.rowcount; i++) {
  4716. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  4717. gridrowstatus = ds_grid_grd_clsphist.getRowType(i);
  4718. if (spclcd == "MT015" || spclcd == "MT016") {
  4719. index = ds_cond_sppiz00200.addRow();
  4720. ds_cond_sppiz00200.setColumn(index, "spclcd", ds_grid_grd_clsphist.getColumn(i, "spclcd"));
  4721. ds_cond_sppiz00200.setColumn(index, "seqno", ds_grid_grd_clsphist.getColumn(i, "seqno"));
  4722. ds_cond_sppiz00200.setColumn(index, "spclspec", ds_grid_grd_clsphist.getColumn(i, "spclspec"));
  4723. // 특정내역 Grid에서 "행 삭제"한 경우 MT015 / MT016 자료를 표시하지 않도록 하도록 rowstatus를 전달함
  4724. ds_cond_sppiz00200.setColumn(index, "rowstat", gridrowstatus);
  4725. }
  4726. }
  4727. var objArg = new Object();
  4728. objArg.sOpenflag = "M";
  4729. objArg.sSpclcd = ds_grid_grd_clsphist.getColumn(ds_grid_grd_clsphist.rowposition, "spclcd");
  4730. var rtn = frmf_modal("SPPIZ00200","SPPIZ00200", objArg,"","","","","","","","","","M");
  4731. // if (!utlf_isNull(rtn)) {
  4732. if (rtn > 0) {
  4733. // 오프너에서 ds_rslt_sppiz00200 로 넣어줌
  4734. // ds_rslt_sppiz00200.copyData(rtn);
  4735. // 2. 넘어온 데이터를 입력한다.
  4736. lf_fDisplayAttachedDataList();
  4737. } else {
  4738. ds_rslt_sppiz00200.clearData();
  4739. }
  4740. grp_clsphist.btn_case_spclspec.click();
  4741. }
  4742. }
  4743. //=======================================================================================
  4744. // Function
  4745. //---------------------------------------------------------------------------------------
  4746. /****************************************************************************************
  4747. * Argument :
  4748. * Description : 소명자료 특정내역 추가
  4749. ****************************************************************************************/
  4750. function lf_fDisplayAttachedDataList()
  4751. {
  4752. var cSrcNode = ds_rslt_sppiz00200.rowcount;
  4753. if ( cSrcNode < 1 ) {
  4754. return;
  4755. }
  4756. if ( utlf_isNull(ds_rslt_sppiz00200.getColumn(0, "unitflag")) ) { // "취소" 선택시에 버튼 색이 변경되지 않도록
  4757. return;
  4758. }
  4759. // var cSrcChildNodeList = cSrcNode.childNodes;
  4760. var clsprow = 0;
  4761. var addcnt = 0;
  4762. ds_grid_grd_clsphist.updatecontrol = false;
  4763. // 1. 소명자료를 추가,수정,삭제한다.
  4764. for (var i=0; i <ds_rslt_sppiz00200.rowcount; i++ ) {
  4765. var spclcd = ds_rslt_sppiz00200.getColumn(i, "spclcd");
  4766. var spclspec = ds_rslt_sppiz00200.getColumn(i, "spclspec");
  4767. if ( spclcd == "MT015" || spclcd == "MT016" ) {
  4768. var rowstat = ds_rslt_sppiz00200.getColumn(i, "rowstat");
  4769. if ( rowstat == "I" ) {
  4770. clsprow = ds_grid_grd_clsphist.addRow();
  4771. ds_grid_grd_clsphist.setRowType(clsprow, "I");
  4772. ds_grid_grd_clsphist.setColumn(clsprow, "rowstat", "I");
  4773. ds_grid_grd_clsphist.setColumn(clsprow, "unitflag", "M");
  4774. ds_grid_grd_clsphist.setColumn(clsprow, "edicd", "-");
  4775. ds_grid_grd_clsphist.setColumn(clsprow, "spclcd", spclcd);
  4776. ds_grid_grd_clsphist.setColumn(clsprow, "spclspec", spclspec);
  4777. if ( spclcd == "MT015" ) {
  4778. ds_grid_grd_clsphist.setColumn(clsprow, "cdnm", "제출자료 목록표");
  4779. ds_grid_grd_clsphist.setColumn(clsprow, "spclformat", "X(2)");
  4780. ds_grid_grd_clsphist.setColumn(clsprow, "detldesc", "제출자료코드/제출자료코드/... 형태로 입력");
  4781. } else {
  4782. ds_grid_grd_clsphist.setColumn(clsprow, "cdnm", "제출자료 목록표(기타)");
  4783. ds_grid_grd_clsphist.setColumn(clsprow, "spclformat", "X(200)");
  4784. ds_grid_grd_clsphist.setColumn(clsprow, "detldesc", "영문(200자), 한글(100자)");
  4785. }
  4786. ds_grid_grd_clsphist.setColumn(clsprow, "calcscorcd", "-");
  4787. ds_grid_grd_clsphist.setColumn(clsprow, "oldspclcd", spclcd);
  4788. ds_grid_grd_clsphist.setColumn(clsprow, "seqno", "");
  4789. ds_grid_grd_clsphist.setColumn(clsprow, "prcpdd", "");
  4790. ds_grid_grd_clsphist.setColumn(clsprow, "prcpno", "");
  4791. ds_grid_grd_clsphist.setColumn(clsprow, "prcphistno", "");
  4792. ds_grid_grd_clsphist.setColumn(clsprow, "execprcpseqno", "");
  4793. ds_grid_grd_clsphist.setColumn(clsprow, "currowstat", "");
  4794. ds_grid_grd_clsphist.setColumn(clsprow, "edicdflag", "-");
  4795. addcnt++;
  4796. } else if ( rowstat == "U" ) {
  4797. for (var j = 0; j <ds_grid_grd_clsphist.rowcount; j++ ) {
  4798. var gridspclcd = ds_grid_grd_clsphist.getColumn(j, "spclcd");
  4799. var gridspclspec = ds_grid_grd_clsphist.getColumn(j, "spclspec");
  4800. var gridrowstatus = ds_grid_grd_clsphist.getRowType(j);
  4801. if ( gridspclcd == spclcd ) {
  4802. ds_grid_grd_clsphist.setColumn(j, "spclspec", spclspec);
  4803. if ( gridrowstatus == 2 ) {
  4804. ds_grid_grd_clsphist.setColumn(j, "rowstat", "I");
  4805. } else {
  4806. ds_grid_grd_clsphist.setColumn(j, "rowstat", "U");
  4807. ds_grid_grd_clsphist.setRowType(j, "U");
  4808. }
  4809. }
  4810. }
  4811. // 1-3. 삭제한다.
  4812. } else if ( rowstat == "D" ) {
  4813. for (var j = 0; j < ds_grid_grd_clsphist.rowcount; j++ ) {
  4814. var gridspclcd = ds_grid_grd_clsphist.getColumn(j, "spclcd");
  4815. var gridspclspec = ds_grid_grd_clsphist.getColumn(j, "spclspec");
  4816. var gridrowstatus = ds_grid_grd_clsphist.getRowType(j);
  4817. if ( gridspclcd == spclcd ) {
  4818. if ( gridrowstatus == 2 ) {
  4819. ds_grid_grd_clsphist.setColumn(j, "rowstat", "R");
  4820. } else {
  4821. ds_grid_grd_clsphist.setRowType(j, "D");
  4822. ds_grid_grd_clsphist.setColumn(j, "rowstat", "D");
  4823. }
  4824. }
  4825. }
  4826. }
  4827. }
  4828. }
  4829. ds_grid_grd_clsphist.updatecontrol = true;
  4830. // 2. 소명자료가 추가되었을 경우에만 특정내역을 소트한다.
  4831. if ( addcnt > 0 ) {
  4832. lf_fSortSpclNo();
  4833. // lf_fSpclGridInsertRow();
  4834. }
  4835. // 3. 소명자료 버튼 색을 변경한다.
  4836. var isAttachedDataList = false;
  4837. for (var m=0; m<ds_grid_grd_clsphist.rowcount && isAttachedDataList != true; m++ ) {
  4838. var spclcd = ds_grid_grd_clsphist.getColumn(m, "spclcd");
  4839. if ( spclcd == "MT015" || spclcd == "MT016") isAttachedDataList = true;
  4840. }
  4841. if ( isAttachedDataList ) {
  4842. grp_clsphist.btn_attData.class = "btn5_letter4";
  4843. grp_clsphist.btn_attData.style.color = "#cc3333";
  4844. } else {
  4845. grp_clsphist.btn_attData.class = "btn2_letter4";
  4846. }
  4847. }
  4848. //=======================================================================================
  4849. // Function
  4850. //---------------------------------------------------------------------------------------
  4851. /****************************************************************************************
  4852. * Argument :
  4853. * Description : MT004, 소명자료 버튼 색상
  4854. ****************************************************************************************/
  4855. function lf_fCheckSpclSpecData()
  4856. {
  4857. // 삭제된 상태가 아닌 소명자료 내역이 있는지 파악하여 "소명자료" Btn 색을 설정한다.
  4858. // 특정코드 MT004 가 있는지를 파악하여 "MT004" Btn 색을 설정한다.
  4859. var isAttachedDataList = false;
  4860. var isMT004DataList = false;
  4861. for (var i=0; i<ds_grid_grd_clsphist.rowcount; i++ ) {
  4862. var spclcd = ds_list3_clcj.getColumn(i, "spclcd");
  4863. var spclspec = ds_list3_clcj.getColumn(i, "spclspec");
  4864. if ( spclcd == "MT015" || spclcd == "MT016" ) {
  4865. if ( ds_grid_grd_clsphist.getRowType(i) != 8 ) { // 삭제
  4866. isAttachedDataList = true;
  4867. }
  4868. } else if ( spclcd == "MT004" ) {
  4869. if ( ds_grid_grd_clsphist.getRowType(i) != 8 ) { // 삭제
  4870. isMT004DataList = true;
  4871. }
  4872. }
  4873. }
  4874. if ( isAttachedDataList ) {
  4875. grp_clsphist.btn_attData.class = "btn7";
  4876. grp_clsphist.btn_attData.style.color = "#cc3333";
  4877. } else {
  4878. grp_clsphist.btn_attData.class = "btn2";
  4879. }
  4880. if ( isMT004DataList ) {
  4881. grp_clsphist.btn_mt0004.class = "btn7";
  4882. grp_clsphist.btn_mt0004.style.color = "#cc3333";
  4883. } else {
  4884. grp_clsphist.btn_mt0004.class = "btn2";
  4885. }
  4886. }
  4887. //=======================================================================================
  4888. // Function
  4889. //---------------------------------------------------------------------------------------
  4890. /****************************************************************************************
  4891. * Argument : 01.flag : 구분
  4892. * Description : 상병 및 처방 치식 입력 호출
  4893. ****************************************************************************************/
  4894. function lf_fDiagOrderToothInput(flag)
  4895. {
  4896. if (flag == "Diag") {
  4897. var cur_row = ds_grid_grd_cldihist.rowposition;
  4898. var diagcd = ds_grid_grd_cldihist.getColumn(cur_row, "diagcd");
  4899. if (!utlf_isNull(diagcd)) {
  4900. ds_cond_sppiz00600_toothapplist.clearData();
  4901. ds_cond_sppiz00600.clearData();
  4902. ds_cond_sppiz00600.addRow();
  4903. ds_cond_sppiz00600.setColumn(0, "clamym", "");
  4904. ds_cond_sppiz00600.setColumn(0, "clamdg", "");
  4905. ds_cond_sppiz00600.setColumn(0, "pid" , ds_item1_otpt.getColumn(0, "pid"));
  4906. ds_cond_sppiz00600.setColumn(0, "pidsn" , "");
  4907. ds_cond_sppiz00600.setColumn(0, "indd" , ds_item1_otpt.getColumn(0, "indd"));
  4908. ds_cond_sppiz00600.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  4909. ds_cond_sppiz00600.setColumn(0, "toot" , ds_grid_grd_cldihist.getColumn(cur_row, "toot"));
  4910. // ds_cond_sppiz00600.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  4911. // ds_cond_sppiz00600.setColumn(0, "toot", ds_grid_grd_cldihist.getColumn(cur_row, "toot"));
  4912. // ds_cond_sppiz00600.setColumn(0, "clamym", "");
  4913. // ds_cond_sppiz00600.setColumn(0, "clamdg", "");
  4914. // ds_cond_sppiz00600.setColumn(0, "pidsn", "");
  4915. lf_fSetToothPop(cur_row, "1");
  4916. ds_rslt_sppiz00600.clearData();
  4917. ds_rslt_sppiz00600.addRow();
  4918. var rtn = frmf_modal("SPPIZ00600","SPPIZ00600", {objDs:ds_cond_sppiz00600, objDs2:ds_cond_sppiz00600_toothapplist},"","","","","","","","","","M");// SPPIZ00600_상병및처방별치식
  4919. lf_fGetToothPop();
  4920. }
  4921. }
  4922. else if (flag = "Order") {
  4923. var cur_row = ds_grid_grd_clodhist.rowposition;
  4924. var basecd = ds_grid_grd_clodhist.getColumn(cur_row, "basecd");
  4925. if (!utlf_isNull(basecd)) {
  4926. ds_cond_sppiz00600_toothapplist.clearData();
  4927. ds_cond_sppiz00600.clearData();
  4928. ds_cond_sppiz00600.addRow();
  4929. ds_cond_sppiz00600.setColumn(0, "clamym", "");
  4930. ds_cond_sppiz00600.setColumn(0, "clamdg", "");
  4931. ds_cond_sppiz00600.setColumn(0, "pid" , ds_item1_otpt.getColumn(0, "pid"));
  4932. ds_cond_sppiz00600.setColumn(0, "pidsn" , "");
  4933. ds_cond_sppiz00600.setColumn(0, "indd" , ds_item1_otpt.getColumn(0, "indd"));
  4934. ds_cond_sppiz00600.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  4935. ds_cond_sppiz00600.setColumn(0, "toot" , ds_grid_grd_cldihist.getColumn(cur_row, "toot"));
  4936. // ds_cond_sppiz00600.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  4937. // ds_cond_sppiz00600.setColumn(0, "toot", ds_grid_grd_cldihist.getColumn(cur_row, "toot"));
  4938. // ds_cond_sppiz00600.setColumn(0, "clamym", "");
  4939. // ds_cond_sppiz00600.setColumn(0, "clamdg", "");
  4940. // ds_cond_sppiz00600.setColumn(0, "pidsn", "");
  4941. lf_fSetToothPop(cur_row, "2");
  4942. ds_rslt_sppiz00600.clearData();
  4943. ds_rslt_sppiz00600.addRow();
  4944. var rtn = frmf_modal("SPPIZ00600","SPPIZ00600", {objDs:ds_cond_sppiz00600, objDs2:ds_cond_sppiz00600_toothapplist},"","","","","","","","","","M");// SPPIZ00600_상병및처방별치식
  4945. lf_fGetToothPop();
  4946. }
  4947. }
  4948. }
  4949. //=======================================================================================
  4950. // Function
  4951. //---------------------------------------------------------------------------------------
  4952. /****************************************************************************************
  4953. * Argument : 01.row : 줄
  4954. 02.flag : 구분
  4955. * Description : 현재 상병, 처방 Grid 상에서 입력상태의 치식을 팝업 화면에 전달하기 위해 리스트 형태로 만든다.
  4956. ****************************************************************************************/
  4957. function lf_fSetToothPop(row, flag)
  4958. {
  4959. // ds_cond_sppiz00600.clearData();
  4960. // ds_cond_sppiz00600.addRow();
  4961. // 상병
  4962. var cldiRows = ds_grid_grd_cldihist.rowcount;
  4963. // 처방
  4964. var clodRows = ds_grid_grd_clodhist.rowcount;
  4965. var cd = "";
  4966. var cdnm = "";
  4967. var orddd = "";
  4968. var toot = "";
  4969. var rowcnt = 0;
  4970. var milktoothstr = "";
  4971. var subTootStr = "";
  4972. var tootnum = 0;
  4973. var tmpStr = "";
  4974. for (var i = 0; i < cldiRows; i++) {
  4975. cd = ds_grid_grd_cldihist.getColumn(i, "diagcd");
  4976. cdnm = ds_grid_grd_cldihist.getColumn(i, "diagnm");
  4977. orddd = ds_grid_grd_cldihist.getColumn(i, "ordfromdd");
  4978. toot = ds_grid_grd_cldihist.getColumn(i, "toot");
  4979. if (toot != "-" && !utlf_isNull(toot)) {
  4980. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 0);
  4981. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "flag", "");
  4982. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cd", "");
  4983. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cdnm", "");
  4984. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightupper", "");
  4985. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftupper", "");
  4986. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightlower", "");
  4987. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftlower", "");
  4988. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "orddd", "");
  4989. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "toot", "");
  4990. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "row", "");
  4991. milktoothstr = "ABCDE000";
  4992. for (var inx = 0; inx < 32; inx++) {
  4993. tootnum = toot.substr(inx,1);
  4994. if (tootnum == "*") { // 선택된 영구치의 경우 1~8 사이 숫자로 표시한다.
  4995. if (inx < 8) {
  4996. subTootStr += (8 - inx);
  4997. }
  4998. else if (inx > 7 && inx < 16) {
  4999. subTootStr += (inx - 7);
  5000. }
  5001. else if (inx > 15 && inx < 24) {
  5002. subTootStr += (24 - inx);
  5003. }
  5004. else {
  5005. subTootStr += (inx - 23);
  5006. }
  5007. }
  5008. else if (tootnum == "#") { // 선택된 유치의 경우 A~E 사이 알파벳으로 표시한다.
  5009. if (inx < 8) {
  5010. subTootStr += milktoothstr.charAt(7 - inx);
  5011. }
  5012. else if (inx > 7 && inx < 16) {
  5013. subTootStr += milktoothstr.charAt(inx - 8);
  5014. }
  5015. else if (inx > 15 && inx < 24) {
  5016. subTootStr += milktoothstr.charAt(23 - inx);
  5017. }
  5018. else {
  5019. subTootStr += milktoothstr.charAt(inx - 24);
  5020. }
  5021. }
  5022. else { // if (tootnum == "0") 선택되지 않은 경우 공백으로 처리한다.
  5023. subTootStr += " ";
  5024. }
  5025. }
  5026. //치식 표기를 설정한다.
  5027. if (row == i && flag == 1) {
  5028. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 1);
  5029. }
  5030. else {
  5031. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 0);
  5032. }
  5033. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "flag", "상병");
  5034. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cd", cd);
  5035. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cdnm", cdnm);
  5036. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightupper", subTootStr.substr(0, 8));
  5037. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftupper", subTootStr.substr(8, 8));
  5038. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightlower", subTootStr.substr(16, 8));
  5039. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftlower", subTootStr.substr(24, 8));
  5040. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "orddd", orddd);
  5041. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "toot", toot);
  5042. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "row", i);
  5043. rowcnt++;
  5044. }
  5045. else {
  5046. if (row == i && flag == 1) {
  5047. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 1);
  5048. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "flag", "상병");
  5049. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cd", cd);
  5050. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cdnm", cdnm);
  5051. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightupper", "");
  5052. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftupper", "");
  5053. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightlower", "");
  5054. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftlower", "");
  5055. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "orddd", orddd);
  5056. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "toot", "");
  5057. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "row", i);
  5058. rowcnt++;
  5059. }
  5060. }
  5061. }
  5062. for (var i = 0; i < clodRows; i++) {
  5063. cd = ds_grid_grd_clodhist.getColumn(i, "snglcalcscorcd");
  5064. cdnm = ds_grid_grd_clodhist.getColumn(i, "hngnm");
  5065. orddd = ds_grid_grd_clodhist.getColumn(i, "orddd");
  5066. tootfact = ds_grid_grd_clodhist.getColumn(i, "tootfact");
  5067. estmcls = ds_grid_grd_clodhist.getColumn(i, "estmcls");
  5068. if ((toot != "-" && !utlf_isNull(toot)) || estmcls == "U") {
  5069. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 0);
  5070. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "flag", "");
  5071. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cd", "");
  5072. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cdnm", "");
  5073. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightupper", "");
  5074. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftupper", "");
  5075. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightlower", "");
  5076. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftlower", "");
  5077. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "orddd", "");
  5078. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "toot", "");
  5079. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "row", "");
  5080. milktoothstr = "ABCDE000";
  5081. subTootStr = "";
  5082. for (var inx = 0; inx < 32; inx++) {
  5083. tootnum = toot.substr(inx,1);
  5084. if (tootnum == "*") { // 선택된 영구치의 경우 1~8 사이 숫자로 표시한다.
  5085. if (inx < 8) {
  5086. subTootStr += (8 - inx);
  5087. }
  5088. else if (inx > 7 && inx < 16) {
  5089. subTootStr += (inx - 7);
  5090. }
  5091. else if (inx > 15 && inx < 24) {
  5092. subTootStr += (24 - inx);
  5093. } else {
  5094. subTootStr += (inx - 23);
  5095. }
  5096. }
  5097. else if (tootnum == "#") { // 선택된 유치의 경우 A~E 사이 알파벳으로 표시한다.
  5098. if (inx < 8) {
  5099. subTootStr += milktoothstr.charAt(7 - inx);
  5100. }
  5101. else if (inx > 7 && inx < 16) {
  5102. subTootStr += milktoothstr.charAt(inx - 8);
  5103. }
  5104. else if (inx > 15 && inx < 24) {
  5105. subTootStr += milktoothstr.charAt(23 - inx);
  5106. }
  5107. else {
  5108. subTootStr += milktoothstr.charAt(inx - 24);
  5109. }
  5110. }
  5111. else { // if (tootnum == "0") 선택되지 않은 경우 공백으로 처리한다.
  5112. subTootStr += " ";
  5113. }
  5114. }
  5115. //치식 표기를 설정한다.
  5116. if (row == i && flag == 2) {
  5117. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 1);
  5118. }
  5119. else {
  5120. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 0);
  5121. }
  5122. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "flag", "처방");
  5123. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cd", cd);
  5124. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cdnm", cdnm);
  5125. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightupper", subTootStr.substr(0, 8));
  5126. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftupper", subTootStr.substr(8, 8));
  5127. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightlower", subTootStr.substr(16, 8));
  5128. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftlower", subTootStr.substr(24, 8));
  5129. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "orddd", orddd);
  5130. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "toot", toot);
  5131. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "row", i);
  5132. rowcnt++;
  5133. }
  5134. else {
  5135. if (row == i && flag == 2) {
  5136. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "chos", 1);
  5137. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "flag", "처방");
  5138. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cd", cd);
  5139. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "cdnm", cdnm);
  5140. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightupper", "");
  5141. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftupper", "");
  5142. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "rightlower", "");
  5143. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "leftlower", "");
  5144. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "orddd", orddd);
  5145. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "toot", "");
  5146. ds_cond_sppiz00600_toothapplist.setColumn(rowcnt, "row", i);
  5147. rowcnt++;
  5148. }
  5149. }
  5150. }
  5151. }
  5152. //=======================================================================================
  5153. // Function
  5154. //---------------------------------------------------------------------------------------
  5155. /****************************************************************************************
  5156. * Argument :
  5157. * Description : 치식결과 반영
  5158. ****************************************************************************************/
  5159. function lf_fGetToothPop()
  5160. {
  5161. var tootRows = ds_rslt_sppiz00600.rowcount;
  5162. var flag = "";
  5163. var row = "";
  5164. var toot = "";
  5165. var rslttoot;
  5166. var rslttoot1;
  5167. var cldistatus;
  5168. for (var i = 0; i < tootRows; i++) {
  5169. flag = ds_rslt_sppiz00600.getColumn(i, "flag");
  5170. row = ds_rslt_sppiz00600.getColumn(i, "row");
  5171. rslttoot = ds_rslt_sppiz00600.getColumn(i, "toot");
  5172. rslttoot1 = ds_rslt_sppiz00600.getColumn(i, "toot1");
  5173. if (utlf_isNull(rslttoot)) {
  5174. rslttoot = "-";
  5175. }
  5176. if (utlf_isNull(rslttoot1)) {
  5177. rslttoot1 = "-";
  5178. }
  5179. if (flag == "1") {
  5180. toot = ds_grid_grd_cldihist.getColumn(row, "toot");
  5181. ds_grid_grd_cldihist.setColumn(row, "toot", rslttoot);
  5182. ds_grid_grd_cldihist.setColumn(row, "toot", rslttoot1);
  5183. if (rslttoot != toot) { // 치식번호가 변경된 경우
  5184. cldistatus = ds_grid_grd_cldihist.getRowType(i);
  5185. if (cldistatus == 2) {
  5186. ds_grid_grd_cldihist.setRowType(i, "u");
  5187. }
  5188. }
  5189. }
  5190. else if (flag == "2") {
  5191. toot = ds_grid_grd_clodhist.getColumn(row, "tootfact");
  5192. ds_grid_grd_clodhist.setColumn("tootfact", rslttoot);
  5193. ds_grid_grd_clodhist.setColumn("tootfact1", rslttoot1);
  5194. if (rslttoot != toot) { // 치식번호가 변경된 경우
  5195. // 처방의 수정된 row 상태를 표시한다.
  5196. lf_fSetOrderChangeRowStat(row);
  5197. }
  5198. }
  5199. }
  5200. }
  5201. //=======================================================================================
  5202. // Function
  5203. //---------------------------------------------------------------------------------------
  5204. /****************************************************************************************
  5205. * Argument :
  5206. * Description : 특정내역 저장
  5207. ****************************************************************************************/
  5208. function lf_fSaveClcjList()
  5209. {
  5210. var isValidCheck = true;
  5211. var saveNoMsg = "";
  5212. var saveOkMsg = "";
  5213. // model.removeNodeset("/root/send/item2");
  5214. // model.removeNodeset("/root/send/item3");
  5215. // model.removeNodeset("/root/send/item4");
  5216. // model.removeNodeset("/root/send/item5");
  5217. // model.removeNodeset("/root/send/list1");
  5218. // model.removeNodeset("/root/send/list2");
  5219. // model.removeNodeset("/root/send/list3");
  5220. // model.removeNodeset("/root/send/list7");
  5221. ds_send_item3_delclsp.clearData();
  5222. ds_send_item3_lnunitmemo.clearData();
  5223. // 1.특정내역에 저장할 정보가 올바른지 확인한다.
  5224. var rtn = lf_fCheckSaveOutDayJudgInfoCLSP();
  5225. if (rtn == 3) {
  5226. // var updtdata = grdf_getGridUpdateData(grp_clsphist.swt_spclmemo.case_spclspec.grd_clsphist);
  5227. lf_save_grd_ds(ds_grid_grd_clsphist, ds_send_list3_clcj);
  5228. if (ds_send_list3_clcj.rowcount > 0) {
  5229. // ds_send_list3_clcj.clearData();
  5230. // ds_send_list3_clcj.appendData(updtdata, true, true);
  5231. for (var i=0; i<ds_send_list3_clcj.rowcount; i++) {
  5232. if (utlf_isNull(ds_send_list3_clcj.getColumn(i, "spclmemoflag"))) {
  5233. ds_send_list3_clcj.setColumn(i, "spclmemoflag", "E");
  5234. }
  5235. if (utlf_isNull(ds_send_list3_clcj.getColumn(i, "calcscorcd"))) {
  5236. ds_send_list3_clcj.setColumn(i, "calcscorcd", "-");
  5237. }
  5238. if (utlf_isNull(ds_send_list3_clcj.getColumn(i, "edicdflag"))) {
  5239. ds_send_list3_clcj.setColumn(i, "edicdflag", "-");
  5240. }
  5241. ds_send_list3_clcj.setColumn(i, "remfact", ds_send_list3_clcj.getColumn(i, "spclformat"));
  5242. }
  5243. }
  5244. if (ds_send_list3_clcj.rowcount > 0 ) {
  5245. saveOkMsg += "[특정내역] ";
  5246. } else {
  5247. saveNoMsg += "[특정내역] ";
  5248. }
  5249. } else if (rtn == 1) {
  5250. isValidCheck = false;
  5251. } else if (rtn == 2) {
  5252. // lf_fSpclGridInsertRow();
  5253. return;
  5254. }
  5255. if ( isValidCheck ) {
  5256. if ( !utlf_isNull(saveOkMsg) ) {
  5257. if ( ds_send_list3_clcj.rowcount > 0 ) {
  5258. // 줄단위 특정내역 중 기타메모(JX999)를 특정내역 형식에 맞춰 설정한다.
  5259. lf_fSetSpclSpecJX999();
  5260. }
  5261. ds_send_item1_otpt.clearData();
  5262. ds_send_item1_otpt.addRow();
  5263. ds_send_item1_otpt.setColumn(0, "pid", ds_item1_otpt.getColumn(0,"pid"));
  5264. ds_send_item1_otpt.setColumn(0, "orddd", ds_item1_otpt.getColumn(0,"orddd"));
  5265. ds_send_item1_otpt.setColumn(0, "cretno", ds_item1_otpt.getColumn(0,"cretno"));
  5266. lf_save_grd_ds(ds_grid_grd_judgmemo, ds_cond_grd_judgmemo);
  5267. lf_save_grd_ds(ds_grid_grd_edimemo, ds_cond_grd_edimemo);
  5268. var sInds = "otpt=ds_send_item1_otpt";
  5269. sInds = sInds + " delmemo=ds_send_item3_delclsp";
  5270. sInds = sInds + " judgmemo=ds_cond_grd_judgmemo";
  5271. sInds = sInds + " edimemo=ds_cond_grd_edimemo";
  5272. sInds = sInds + " lnunitmemo=ds_send_item3_lnunitmemo";
  5273. sInds = sInds + " clcj=ds_send_list3_clcj";
  5274. tranf_submit({
  5275. id: "TXPIJ00703"
  5276. , service: "bfjudgapp.OutDayJudg"
  5277. , method: "reqExeSaveSpclSpec"
  5278. , inds : sInds
  5279. , outds : "ds_grid_grd_clsphist=clcj"
  5280. , async: false
  5281. });
  5282. ds_grid_grd_clsphist.rowposition = 0;
  5283. ds_grid_grd_clsphist.rowposition = -1;
  5284. } else if ( !utlf_isNull(saveNoMsg) ) {
  5285. sysf_messageBox(saveNoMsg +"변경된 데이터가","I004"); ///변경된 데이터가 없습니다.
  5286. }
  5287. } else {
  5288. sysf_messageBox("변경된 정보를 저장할 특정내역이", "I004");
  5289. }
  5290. // lf_fSpclGridInsertRow();
  5291. }
  5292. //=======================================================================================
  5293. // Function
  5294. //---------------------------------------------------------------------------------------
  5295. /****************************************************************************************
  5296. * Argument :
  5297. * Description : 특정내역 탭 특정코드 변경
  5298. ****************************************************************************************/
  5299. function lf_fChangeSpclCd()
  5300. {
  5301. var cur_row = ds_grid_grd_clsphist.rowposition;
  5302. var newspclcd = ds_grid_grd_clsphist.getColumn(cur_row, "spclcd");
  5303. var newspclspec = ds_grid_grd_clsphist.getColumn(cur_row, "spclspec");
  5304. var unitflag = ds_grid_grd_clsphist.getColumn(cur_row, "unitflag");
  5305. var spclcd;
  5306. var basecd;
  5307. var spclEdicd;
  5308. // 1. 명세서단위 중복 특정코드가 있는지 확인한다.
  5309. if (unitflag == "M" && !utlf_isNull(newspclcd)) {
  5310. if (newspclcd == "MT004" || newspclcd == "MT015" || newspclcd == "MT016" || newspclcd == "MX999") {
  5311. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  5312. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  5313. if (cur_row != i && newspclcd == spclcd) {
  5314. if (ds_grid_grd_clsphist.getRowType(i) != 8) {
  5315. ds_grid_grd_clsphist.setColumn(cur_row, "spclcd", ds_grid_grd_clsphist.getColumn(cur_row, "oldspclcd"));
  5316. ds_hidden_list3.setColumn(0, "msgspclformat", "명세서 단위 특정코드 '"+ newspclcd +"'가 중복되었습니다.");
  5317. return;
  5318. }
  5319. }
  5320. }
  5321. }
  5322. // 특정코드 MT015, MT016, MT004 정보가 입력된 환자인지를 확인한다.
  5323. lf_fCheckSpclSpecData();
  5324. }
  5325. // 2. 줄단위 중복 특정코드가 있는지 확인한다.
  5326. else {
  5327. if (newspclcd == "JX999" || newspclcd == "JT001") {
  5328. basecd = ds_grid_grd_clsphist.getColumn(cur_row, "edicd");
  5329. // 중복된 특정코드가 있는지를 확인한다.
  5330. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  5331. spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  5332. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  5333. if (cur_row != i && basecd == spclEdicd && newspclcd == spclcd) {
  5334. if (ds_grid_grd_clsphist.getRowType(i) != 8) {
  5335. ds_grid_grd_clsphist.setColumn(cur_row, "spclcd", ds_grid_grd_clsphist.getColumn(cur_row, "oldspclcd"));
  5336. ds_hidden_list3.setColumn(0, "msgspclformat", "EDI코드 "+ basecd +"의 줄단위 특정코드 '"+ newspclcd +"'가 중복되었습니다.");
  5337. return;
  5338. }
  5339. }
  5340. }
  5341. }
  5342. }
  5343. // 3. 특정코드에 맞는 특정코드명을 기입한다.
  5344. var p0117Rows = ds_init_P0117.rowcount;
  5345. var cdid;
  5346. var format;
  5347. if (p0117Rows < 1) {
  5348. for (var i = 0; i < p0117Rows; i++) {
  5349. cdid = ds_init_P0117.getColumn(i, "cdid");
  5350. if (cdid == newspclcd) {
  5351. ds_grid_grd_clsphist.setColumn(cur_row, "cdnm", ds_init_P0117.getColumn(i, "cdnm"));
  5352. format = ds_init_P0117.getColumn(i, "cdval").substring(0, 50);
  5353. ds_grid_grd_clsphist.setColumn(cur_row, "spclformat", format);
  5354. ds_grid_grd_clsphist.setColumn(cur_row, "detldesc", ds_init_P0117.getColumn(i, "detldesc"));
  5355. i = p0117.length + 1;
  5356. }
  5357. }
  5358. }
  5359. ds_grid_grd_clsphist.setColumn(cur_row, "rowstat", "I");
  5360. ds_grid_grd_clsphist.setColumn(cur_row, "oldspclcd", newspclcd);
  5361. // 4. 하단 Message 구성
  5362. var cdnm = ds_grid_grd_clsphist.getColumn(cur_row, "cdnm");
  5363. var spclformat = ds_grid_grd_clsphist.getColumn(cur_row, "spclformat");
  5364. ds_hidden_list3.setColumn(0, "msgspclformat", "특정내역코드: "+ newspclcd +" / 특정내역명칭: "+ cdnm +" / 기재내역: "+ newspclspec +" / 기재형식: "+ spclformat);
  5365. // 5. 빈줄 추가
  5366. // lf_fSpclGridInsertRow();
  5367. }
  5368. //=======================================================================================
  5369. // Function
  5370. //---------------------------------------------------------------------------------------
  5371. /****************************************************************************************
  5372. * Argument :
  5373. * Description : 특정내역 탭 특정코드 외 다른 필드 변경
  5374. ****************************************************************************************/
  5375. function lf_fChangeOtherCd()
  5376. {
  5377. var rowstatus;
  5378. var rowtext;
  5379. var cur_row = ds_grid_grd_clsphist.rowposition;
  5380. var newspclcd = ds_grid_grd_clsphist.getColumn(cur_row, "spclcd");
  5381. var newspclspec = ds_grid_grd_clsphist.getColumn(cur_row, "spclspec");
  5382. // 1. 확인코드(jt001)의 경우, spclspec가 빈값이면 삭제
  5383. var unitflag = ds_grid_grd_clsphist.getColumn(cur_row, "unitflag");
  5384. if (unitflag == "J") {
  5385. if (newspclcd == "JT001") {
  5386. var basecd = ds_grid_grd_clsphist.getColumn(cur_row, "edicd");
  5387. var osclEdicd;
  5388. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  5389. osclEdicd = ds_grid_grd_clodhist.getColumn(i, "basecd");
  5390. if (basecd == osclEdicd) {
  5391. ds_grid_grd_clodhist.getColumn(i, "cnfmcd", newspclspec);
  5392. }
  5393. }
  5394. if (utlf_isNull(newspclspec)) {
  5395. var spclEdicd;
  5396. var spclSpclcd;
  5397. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  5398. unitflag = ds_grid_grd_clsphist.getColumn(i, "unitflag");
  5399. if (unitflag == "J") {
  5400. spclEdicd = ds_grid_grd_clsphist.getColumn(i, "edicd");
  5401. spclSpclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  5402. if (spclEdicd == basecd && spclSpclcd == "JT001") {
  5403. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  5404. if (rowstatus == 2) {
  5405. ds_grid_grd_clsphist.setRowType(i, "D");
  5406. ds_grid_grd_clsphist.setColumn(cur_row, "rowstat", "D");
  5407. }
  5408. else {
  5409. ds_grid_grd_clsphist.setRowType(i, "D");
  5410. ds_grid_grd_clsphist.setRowType(i, "D");
  5411. ds_grid_grd_clsphist.setColumn(cur_row, "rowstat", "D");
  5412. }
  5413. }
  5414. }
  5415. }
  5416. ds_hidden_list3.setColumn(0, "msgspclformat", "입력된 확인코드 내역이 없습니다.");
  5417. // 행 삭제
  5418. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  5419. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  5420. rowtext = ds_grid_grd_clsphist.getColumn(i, "rowstat");
  5421. if (rowstatus == 2) {
  5422. if (rowtext == "D") ds_grid_grd_clsphist.deleteRow(i);
  5423. }
  5424. }
  5425. return;
  5426. }
  5427. }
  5428. }
  5429. // 2. row상태 update 처리
  5430. rowstat = ds_grid_grd_clsphist.getColumn(cur_row, "rowstat");
  5431. if (utlf_isNull(rowstat)) {
  5432. ds_grid_grd_clsphist.setColumn(cur_row, "rowstat", "U");
  5433. }
  5434. }
  5435. //=======================================================================================
  5436. // Function
  5437. //---------------------------------------------------------------------------------------
  5438. /****************************************************************************************
  5439. * Argument : 01.judgendyn : 심사마감여부
  5440. * Description : 저장버튼 클릭
  5441. ****************************************************************************************/
  5442. function lf_fSaveOutDayJudg(judgendyn)
  5443. {
  5444. var selectedRow = ds_rslt_smpij00600.getColumn(0, "selectedRow");
  5445. var isValidCheck = true;
  5446. var pid = ds_item1_otpt.getColumn(0, "pid");
  5447. var orddd = ds_item1_otpt.getColumn(0, "orddd");
  5448. var cretno = ds_item1_otpt.getColumn(0, "cretno");
  5449. var acptseqno = ds_item1_otpt.getColumn(0, "acptseqno");
  5450. var insukindcd = ds_item1_otpt.getColumn(0, "insukindcd");
  5451. var opyn = ds_item1_otpt.getColumn(0, "opyn");
  5452. // 초기화
  5453. ds_send_item3_delclsp.clearData();
  5454. ds_cond_grd_judgmemo.clearData();
  5455. ds_cond_grd_edimemo.clearData();
  5456. ds_send_item3_lnunitmemo.clearData();
  5457. ds_cond_grd_cldihist.clearData();
  5458. ds_cond_grd_clsphist.clearData();
  5459. ds_grid_grd_delorder.clearData();
  5460. ds_cond_grd_clodhist.clearData();
  5461. ds_cond_grd_oprcphist.clearData();
  5462. if ( !utlf_isNull(pid) && !utlf_isNull(orddd) && !utlf_isNull(cretno) && !utlf_isNull(acptseqno) && !utlf_isNull(insukindcd) ) { // 조회된 심사대상자가 있으면
  5463. // 처방 Grid 필터용 조회조건을 초기화한다.
  5464. lf_fInitOrderFilter();
  5465. var saveNoMsg = "";
  5466. var saveOkMsg = "";
  5467. // if (lf_fCheckSaveOutDayJudgCLBS()) { // CLBS 테이블에 저장할 정보가 올바른지 확인한다.
  5468. // 인적사항
  5469. //alert(recalcyn);
  5470. var recalcyn = ds_item1_otpt.getColumn(0, "recalcyn");
  5471. var suppkindcd = ds_item1_otpt.getColumn(0, "suppkindcd");
  5472. var patsupprate = ds_item1_otpt.getColumn(0, "patsupprate");
  5473. var payownbrate = ds_item1_otpt.getColumn(0, "payownbrate");
  5474. // 보조요율만 변경된 경우 재계산만 하고, 인적사항 수정은 안하기 위해 초기값과 같게 만든다.
  5475. ds_item1_otpt.setColumn(0,"recalcyn", ds_hidden_item1_initotpt.getColumn(0, "recalcyn"));
  5476. ds_item1_otpt.setColumn(0,"suppkindcd", ds_hidden_item1_initotpt.getColumn(0, "suppkindcd"));
  5477. ds_item1_otpt.setColumn(0,"patsupprate", ds_hidden_item1_initotpt.getColumn(0, "patsupprate"));
  5478. ds_item1_otpt.setColumn(0,"payownbrate", ds_hidden_item1_initotpt.getColumn(0, "payownbrate"));
  5479. //
  5480. // var initclbs = ds_hidden_item1_initotpt.saveXML();
  5481. // var currentclbs = ds_item1_otpt.saveXML();
  5482. //
  5483. // if (initclbs == currentclbs) {
  5484. // saveNoMsg = "[인적사항]";
  5485. // // 인적사항 변경이 없는 경우에도 사용되는 진료과 / 진료의사 정보를 send data에 설정한다.
  5486. // ds_item1_otpt.setColumn(0, "dschjudgprcsstat", ds_item1_otpt.getColumn(0, "orddeptcd"));
  5487. // ds_item1_otpt.setColumn(0, "recalcyn", recalcyn);
  5488. //
  5489. // if (recalcyn == "Y") { // 보조유형, 요율 외에는 변경사항이 없는 경우임
  5490. // saveOkMsg = "[보조유형 및 요율] ";
  5491. // ds_item1_otpt.setColumn(0, "suppkindcd", suppkindcd);
  5492. // }
  5493. // }
  5494. // else {
  5495. // saveOkMsg = "[인적사항] ";
  5496. // ds_item1_otpt.setColumn(0, "payownbrate", payownbrate);
  5497. // ds_item1_otpt.setColumn(0, "suppkindcd", suppkindcd);
  5498. // ds_item1_otpt.setColumn(0, "recalcyn", recalcyn);
  5499. // }
  5500. //
  5501. // // 심사상태를 '저장' 또는 '심사완료' 상태로 저장한다.
  5502. ds_item1_otpt.setColumn(0, "dschjudgprcsstat", judgendyn);
  5503. ds_item1_otpt.setColumn(0, "recalcyn", recalcyn);
  5504. ds_item1_otpt.setColumn(0, "suppkindcd", suppkindcd);
  5505. ds_item1_otpt.setColumn(0, "patsupprate", patsupprate);
  5506. ds_item1_otpt.setColumn(0, "payownbrate", payownbrate);
  5507. // }
  5508. // else {
  5509. // isValidCheck = false;
  5510. // }
  5511. // 메모 저장
  5512. lf_fSaveMeMoList("A");
  5513. // var diag;
  5514. // if (lf_fCheckSaveOutDayJudgInfoCLDI()) { // CLDI 테이블에 저장할 정보가 올바른지 확인한다.
  5515. // 먼저 빈 줄을 삭제한다.
  5516. var delcldiCheck = false;
  5517. var rowstatus;
  5518. var diagcd;
  5519. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  5520. rowstatus = ds_grid_grd_cldihist.getRowType(i);
  5521. diagcd = ds_grid_grd_cldihist.getColumn(i, "diagcd");
  5522. // 상병코드와 진료개시일이 입력되지 않은 경우
  5523. if (rowstatus == 2) {
  5524. if (diagcd == null) {
  5525. // 줄을 삭제한다.
  5526. ds_grid_grd_cldihist.deleteRow(i);
  5527. i--;
  5528. delcldiCheck = true;
  5529. }
  5530. }
  5531. }
  5532. lf_save_grd_ds(ds_grid_grd_cldihist, ds_cond_grd_cldihist);
  5533. //ds_cond_grd_cldihist.copyData(ds_grid_grd_cldihist);
  5534. // if (ds_cond_grd_cldihist.rowcount > 0 && ds_grid_grd_cldihist.rowcount > 0) {
  5535. // saveOkMsg += "[상병] ";
  5536. // } else {
  5537. // saveNoMsg += "[상병] ";
  5538. // }
  5539. // }
  5540. // else {
  5541. // isValidCheck = false;
  5542. // }
  5543. //
  5544. // // 1.특정내역에 저장할 정보가 올바른지 확인한다.
  5545. // var clcj;
  5546. // var rtn = lf_fCheckSaveOutDayJudgInfoCLSP();
  5547. // if (rtn == 3) {
  5548. // lf_save_grd_ds(ds_grid_grd_clsphist, ds_cond_grd_clsphist);
  5549. // // default 값 세팅
  5550. // for (var i=0; i<ds_cond_grd_clsphist.rowcount; i++) {
  5551. // if (utlf_isNull(ds_cond_grd_clsphist.getColumn(i, "spclmemoflag")) ) {
  5552. // ds_cond_grd_clsphist.setColumn(i, "spclmemoflag", "E");
  5553. // }
  5554. // if (utlf_isNull(ds_cond_grd_clsphist.getColumn(i, "calcscorcd")) ) {
  5555. // ds_cond_grd_clsphist.setColumn(i, "calcscorcd", "-");
  5556. // }
  5557. // if (utlf_isNull(ds_cond_grd_clsphist.getColumn(i, "edicdflag")) ) {
  5558. // ds_cond_grd_clsphist.setColumn(i, "edicdflag", "-");
  5559. // }
  5560. // if (utlf_isNull(ds_cond_grd_clsphist.getColumn(i, "prcpdd")) || ds_cond_grd_clsphist.getColumn(i, "prcpdd") = "false") {
  5561. // ds_cond_grd_clsphist.setColumn(i, "prcpdd", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "prcpdd"));
  5562. // }
  5563. // if (utlf_isNull(ds_cond_grd_clsphist.getColumn(i, "prcpno")) || ds_cond_grd_clsphist.getColumn(i, "prcpno") = "false") {
  5564. // ds_cond_grd_clsphist.setColumn(i, "prcpno", 0);
  5565. // }
  5566. // }
  5567. // if (ds_cond_grd_clsphist.rowcount > 0 && ds_grid_grd_clsphist.rowcount > 0) {
  5568. // saveOkMsg += "[특정내역] ";
  5569. // } else {
  5570. // saveNoMsg += "[특정내역] ";
  5571. // }
  5572. // }
  5573. // else if (rtn == 1) {
  5574. // isValidCheck = false;
  5575. // }
  5576. // else if (rtn == 2) {
  5577. // // lf_fSpclGridInsertRow();
  5578. // return;
  5579. // }
  5580. //
  5581. // var oscl;
  5582. // if (lf_fCheckSaveOutDayJudgInfoCLOD()) { // CLOD 테이블에 저장할 정보가 올바른지 확인한다.
  5583. // lf_save_grd_ds(ds_grid_grd_clodhist, ds_cond_grd_clodhist);
  5584. // if (ds_cond_grd_clodhist.rowcount > 0 && ds_grid_grd_clodhist.rowcount > 0) {
  5585. // saveOkMsg += "[처방] ";
  5586. // } else {
  5587. // saveNoMsg += "[처방] ";
  5588. // }
  5589. // }
  5590. // else {
  5591. // isValidCheck = false;
  5592. // }
  5593. //
  5594. // var clop;
  5595. // if (lf_fCheckSaveOutDayJudgInfoCLOP()) { // CLOP 테이블에 저장할 정보가 올바른지 확인한다.
  5596. // lf_save_grd_ds(ds_grid_grd_oprcphist, ds_cond_grd_oprcphist);
  5597. // if (ds_cond_grd_oprcphist.rowcount > 0 && ds_grid_grd_oprcphist.rowcount > 0) {
  5598. // saveOkMsg += "[원외처방] ";
  5599. // } else {
  5600. // saveNoMsg += "[원외처방] ";
  5601. // }
  5602. // }
  5603. // else {
  5604. // isValidCheck = false;
  5605. // }
  5606. isValidCheck = true;
  5607. if (isValidCheck) {
  5608. if (utlf_isNull(saveOkMsg)) {
  5609. if (ds_cond_grd_clsphist.rowcount > 0) {
  5610. // 줄단위 특정내역 중 기타메모(JX999)를 특정내역 형식에 맞춰 설정한다.
  5611. ds_grid_grd_clsphist.addColumn("pid", "string");
  5612. ds_grid_grd_clsphist.addColumn("orddd", "string");
  5613. ds_grid_grd_clsphist.addColumn("cretno", "string");
  5614. ds_grid_grd_clsphist.addColumn("instcd", "string");
  5615. ds_grid_grd_clsphist.setColumn(0, "pid", pid);
  5616. ds_grid_grd_clsphist.setColumn(0, "orddd", orddd);
  5617. ds_grid_grd_clsphist.setColumn(0, "cretno", cretno);
  5618. ds_grid_grd_clsphist.setColumn(0, "instcd", instcd);
  5619. lf_fSetSpclSpecJX999();
  5620. }
  5621. if (ds_cond_grd_oprcphist.rowcount > 0) {
  5622. // 원외처방 특정내역 중 기타메모(JX999)를 특정내역 형식에 맞춰 설정한다.
  5623. ds_grid_grd_clsphist.addColumn("pid", "string");
  5624. ds_grid_grd_clsphist.addColumn("orddd", "string");
  5625. ds_grid_grd_clsphist.addColumn("cretno", "string");
  5626. ds_grid_grd_clsphist.addColumn("instcd", "string");
  5627. ds_grid_grd_clsphist.setColumn(0, "pid", pid);
  5628. ds_grid_grd_clsphist.setColumn(0, "orddd", orddd);
  5629. ds_grid_grd_clsphist.setColumn(0, "cretno", cretno);
  5630. ds_grid_grd_clsphist.setColumn(0, "instcd", instcd);
  5631. lf_fSetOprcSpclSpecJX999();
  5632. }
  5633. ds_list3_clcj.clearData();
  5634. ds_list8_judgmemo.clearData();
  5635. ds_list9_edimemo.clearData();
  5636. //alert("A");
  5637. // tranf_submit({
  5638. // id : "TXPIJ00701"
  5639. // , service : "bfjudgapp.OutDayJudg"
  5640. // , method : "reqExeSaveOutDayJudg"
  5641. // , inds : "otpt=ds_item1_otpt delmemo=ds_send_item3_delclsp judgmemo=ds_grid_grd_judgmemo edimemo=ds_grid_grd_edimemo lnunitmemo=ds_send_item3_lnunitmemo diag=ds_grid_grd_cldihist clcj=ds_grid_grd_clsphist oscl=ds_grid_grd_clodhist"
  5642. // , outds : "ds_list3_clcj=clcj ds_list8_judgmemo=judgmemo ds_list9_edimemo=edimemo"
  5643. // , async : false
  5644. // });
  5645. tranf_submit({
  5646. id : "TXPIJ00701"
  5647. , service : "bfjudgapp.OutDayJudg"
  5648. , method : "reqExeSaveOutDayJudg"
  5649. , inds : "otpt=ds_item1_otpt delmemo=ds_send_item3_delclsp judgmemo=ds_cond_grd_judgmemo edimemo=ds_cond_grd_edimemo lnunitmemo=ds_send_item3_lnunitmemo diag=ds_cond_grd_cldihist clcj=ds_cond_grd_clsphist oscl=ds_cond_grd_clodhist"
  5650. , outds : "ds_list3_clcj=clcj ds_list8_judgmemo=judgmemo ds_list9_edimemo=edimemo"
  5651. , async : false
  5652. });
  5653. // 데이타셋 매핑
  5654. //ds_grid_grd_cldihist.copyData(ds_list1_diag); // 상병
  5655. // ds_grid_grd_clodhist.copyData(ds_list2_oscl); // 처방
  5656. ds_grid_grd_clsphist.copyData(ds_list3_clcj); // 특정내역
  5657. ds_grid_grd_judgmemo.copyData(ds_list8_judgmemo); // 심사자메모
  5658. if (ds_grid_grd_judgmemo.rowcount > 0) {
  5659. ds_grid_grd_judgmemo.updatecontrol = false;
  5660. for (var i=0; i<ds_grid_grd_judgmemo.rowcount; i++) { // 심사자 입력일시 수정
  5661. ds_grid_grd_judgmemo.setColumn(i, "fstrgstdt", urlf_getStrDate(ds_grid_grd_judgmemo.getColumn(i, "fstrgstdt").substr(0,14)));
  5662. }
  5663. ds_grid_grd_judgmemo.updatecontrol = true;
  5664. }
  5665. ds_grid_grd_edimemo.copyData(ds_list9_edimemo); // edi메모
  5666. // 체크박스 변환 설정
  5667. lf_changecheck1(ds_grid_grd_cldihist, "diagkindcd", "C", 0);
  5668. if (judgendyn == "A") { // 외래사전심사상태 (P0379) - A: 미심사, B: 심사중, D: 보류, E: 통합심사완료
  5669. ds_rslt_smpij00600.setColumn(0, "pid", pid);
  5670. ds_rslt_smpij00600.setColumn(0, "orddd", orddd);
  5671. ds_rslt_smpij00600.setColumn(0, "cretno", cretno);
  5672. ds_rslt_smpij00600.setColumn(0, "acptseqno", acptseqno);
  5673. ds_rslt_smpij00600.setColumn(0, "insukindcd", insukindcd);
  5674. ds_rslt_smpij00600.setColumn(0, "opyn", opyn);
  5675. // 대상자조회 화면에서 선택했던 환자의 Row를 기억해 두고, pre/next대상조회 버튼에서 이전, 이후 대상자를 조회한다.
  5676. ds_rslt_smpij00600.setColumn(0, "selectedRow", selectedRow);
  5677. // 저장은 저장일 뿐 심사자 이동이 없으므로, 심사상태 변경 관련 동작은 타지 않도록 구분한다.
  5678. ds_hidden.setColumn(0, "judgstatyn", "N");
  5679. lf_fGetOutDayJudgMngt();
  5680. }
  5681. // E: 심사완료의 경우, 저장 후 결과를 다시 조회하기 위해
  5682. return true;
  5683. }
  5684. else if (saveNoMsg) {
  5685. if (judgendyn != "A") { // 외래사전심사상태 (P0379) - A: 미심사, B: 심사중, D: 보류, E: 통합심사완료
  5686. return false;
  5687. }
  5688. else {
  5689. lf_fDiagGridInsertRow();
  5690. sysf_messageBox(saveNoMsg +"변경된 데이터가","I004"); ///변경된 데이터가 없습니다.
  5691. }
  5692. }
  5693. }
  5694. else { // isValidCheck == false
  5695. // 상병
  5696. var diagseq;
  5697. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  5698. if (ds_grid_grd_cldihist.getRowType(i) == 8) {
  5699. diagseq = ds_grid_grd_cldihist.getColumn(i, "diagseq");
  5700. ds_grid_grd_cldihist.setColumn(i, "diagseq", "D" + diagseq);
  5701. }
  5702. }
  5703. lf_fDiagGridInsertRow();
  5704. }
  5705. }
  5706. else {
  5707. sysf_messageBox("변경된 정보를 저장할 일일심사 대상자가", "I004"); ///변경된 정보를 저장할 일일심사 대상자가 없습니다.
  5708. }
  5709. }
  5710. //=======================================================================================
  5711. // Function
  5712. //---------------------------------------------------------------------------------------
  5713. /****************************************************************************************
  5714. * Argument :
  5715. * Description : CLBS 테이블에 저장할 정보가 올바른지 확인
  5716. ****************************************************************************************/
  5717. function lf_fCheckSaveOutDayJudgCLBS()
  5718. {
  5719. if ( utlf_isNull(ds_item1_otpt.getColumn(0, "pid")) ) {
  5720. sysf_messageBox("등록번호가", "I004"); ///등록번호가 없습니다
  5721. return false;
  5722. }
  5723. if ( utlf_isNull(ds_item1_otpt.getColumn(0, "orddd")) ) {
  5724. sysf_messageBox("접수일자가", "I004"); ///접수일자가 없습니다
  5725. return false;
  5726. }
  5727. if ( utlf_isNull(ds_item1_otpt.getColumn(0, "suppkindcd")) ) {
  5728. sysf_messageBox("보조유형이", "I004"); //보조유형이 없습니다
  5729. return false;
  5730. }
  5731. if ( utlf_isNull(ds_item1_otpt.getColumn(0, "payownbrate")) ) {
  5732. sysf_messageBox("올바른 보조유형을", "C002"); ///올바른 보조유형을 선택하십시오.
  5733. return false;
  5734. }
  5735. return true;
  5736. }
  5737. //=======================================================================================
  5738. // Function
  5739. //---------------------------------------------------------------------------------------
  5740. /****************************************************************************************
  5741. * Argument :
  5742. * Description : CLDI 테이블에 저장할 정보가 올바른지 확인
  5743. ****************************************************************************************/
  5744. function lf_fCheckSaveOutDayJudgInfoCLDI()
  5745. {
  5746. // 먼저 빈 줄을 삭제한다.
  5747. var delcldiCheck = false;
  5748. var rowstatus;
  5749. var diagcd;
  5750. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  5751. rowstatus = ds_grid_grd_cldihist.getRowType(i);
  5752. diagcd = ds_grid_grd_cldihist.getColumn(i, "diagcd");
  5753. // 상병코드와 진료개시일이 입력되지 않은 경우
  5754. if (rowstatus == 2) {
  5755. if (diagcd == null) {
  5756. // 줄을 삭제한다.
  5757. ds_grid_grd_cldihist.deleteRow(i);
  5758. i--;
  5759. delcldiCheck = true;
  5760. }
  5761. }
  5762. }
  5763. // 빈줄을 삭제한 경우 상병순서를 다시 부여한다.
  5764. // 빈줄을 삭제한 경우 상병순서를 다시 부여한다.
  5765. if (delcldiCheck) {
  5766. var seq = 1;
  5767. for (var i = 0; i < ds_grid_grd_cldihist.rowcount; i++) {
  5768. rowstatus = ds_grid_grd_cldihist.getRowType(i);
  5769. if (rowstatus != 8) {
  5770. ds_grid_grd_cldihist.setColumn(i, "diagseq", seq++);
  5771. }
  5772. }
  5773. }
  5774. // 저장할 정보를 체크한다.
  5775. var cldiRows = ds_grid_grd_cldihist.rowcount;
  5776. if (cldiRows < 1) {
  5777. return;
  5778. }
  5779. for (var i = 0; i < cldiRows; i++) {
  5780. var diagcd = ds_grid_grd_cldihist.getColumn(i, "diagcd");
  5781. var ordfromdd = ds_grid_grd_cldihist.getColumn(i, "ordfromdd");
  5782. var diagseq = ds_grid_grd_cldihist.getColumn(i, "diagseq");
  5783. if (utlf_isNull(diagcd) || utlf_isNull(ordfromdd)) {
  5784. sysf_messageBox("상병코드 또는 진료개시일이 입력되지", "E007"); // 상병코드 또는 진료개시일이 입력되지 않았습니다.
  5785. return;
  5786. }
  5787. for (var j = 0; j < i; j++) {
  5788. var prediagseq = ds_grid_grd_cldihist.getColumn(j, "diagseq");
  5789. var prediagcd = ds_grid_grd_cldihist.getColumn(j, "diagcd");
  5790. if (ds_grid_grd_cldihist.getRowType(i) != 8) {
  5791. // 중복된 상병 No가 있을 경우
  5792. if (diagseq == prediagseq) {
  5793. sysf_messageBox("상병순서 '"+ diagseq +"'가", "E006"); // 상병순서 '***'가 중복되었습니다.
  5794. return;
  5795. }
  5796. // 중복된 상병코드가 있는 경우
  5797. if (diagcd == prediagcd) {
  5798. sysf_messageBox("상병코드 '"+ diagcd +"'가", "E006"); // 상병코드 '***'가 중복되었습니다.
  5799. }
  5800. }
  5801. }
  5802. if (utlf_isNull(ds_grid_grd_cldihist.getColumn(i, "toot"))) { // 치식이 입력되지 않은 경우
  5803. ds_grid_grd_cldihist.setColumn(i, "toot", "-");
  5804. }
  5805. }
  5806. return true;
  5807. }
  5808. //=======================================================================================
  5809. // Function
  5810. //---------------------------------------------------------------------------------------
  5811. /****************************************************************************************
  5812. * Argument :
  5813. * Description : 특정내역 데이터 검사
  5814. ****************************************************************************************/
  5815. function lf_fCheckSaveOutDayJudgInfoCLSP()
  5816. {
  5817. var rowstatus;
  5818. var spclcd;
  5819. var spclspec;
  5820. var rowstat;
  5821. var spclspeclen;
  5822. var compminspclspeclen;
  5823. var compmaxspclspeclen;
  5824. // 먼저 빈 줄을 삭제한다.
  5825. for (var i = 0; i < ds_grid_grd_clsphist.rowcount; i++) {
  5826. rowstatus = ds_grid_grd_clsphist.getRowType(i);
  5827. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  5828. spclspec = ds_grid_grd_clsphist.getColumn(i, "spclspec");
  5829. // 특정코드와 특정내역이입력되지 않은 경우
  5830. if (rowstatus != 8 && utlf_isNull(spclcd) && utlf_isNull(spclspec)) {
  5831. // 줄을 삭제한다.
  5832. ds_grid_grd_clsphist.deleteRow(i);
  5833. i--;
  5834. }
  5835. }
  5836. // 저장할 정보를 체크한다.
  5837. var clspRows = ds_grid_grd_clsphist.rowcount;
  5838. var prespclcd;
  5839. if (clspRows < 0) {
  5840. return 1;
  5841. }
  5842. for (var i = 0; i < clspRows; i++) {
  5843. spclcd = ds_grid_grd_clsphist.getColumn(i, "spclcd");
  5844. spclspec = ds_grid_grd_clsphist.getColumn(i, "spclspec");
  5845. rowstat = ds_grid_grd_clsphist.getColumn(i, "rowstat");
  5846. spclspeclen = utlf_getStringLength(spclspec);
  5847. compminspclspeclen = ds_init_P0117.getColumn(ds_init_P0117.findRowAs("cdid", spclcd), "minval");
  5848. compmaxspclspeclen = ds_init_P0117.getColumn(ds_init_P0117.findRowAs("cdid", spclcd), "maxval");
  5849. if (rowstat != "D") {
  5850. if (utlf_isNull(spclcd) || utlf_isNull(spclspec)) {
  5851. sysf_messageBox("특정코드 또는 특정내역이 입력되지", "E007"); // 특정코드 또는 특정내역이 입력되지 않았습니다.
  5852. return 2;
  5853. }
  5854. else if (spclcd == "MX999" || spclcd == "MT015" || spclcd == "MT016" || spclcd == "MT004") {
  5855. for (var j = 0; j < i; j++) {
  5856. prespclcd = ds_grid_grd_clsphist.getColumn(j, "spclcd");
  5857. // 중복된 명세서 단위 특정코드가 있는 경우
  5858. if (ds_grid_grd_clsphist.getRowType(i) != 8 && spclcd == prespclcd) {
  5859. sysf_messageBox("명세서 단위 특정코드 '"+ spclcd +"'가", "E006"); // 명세서 단위 특정코드 '***'가 중복되었습니다.
  5860. return 2;
  5861. }
  5862. }
  5863. }
  5864. //특정내역 길이 체크
  5865. if (!utlf_isNull(compmaxspclspeclen)) {
  5866. if (compminspclspeclen <= spclspeclen && spclspeclen <= compmaxspclspeclen) { //입력한 길이가 최소길이, 최대길이 사이에 있을경우 저장 가능.
  5867. }
  5868. else {
  5869. sysf_messageBox("입력특정내역길이 : " + spclspeclen + " 체크특정내역길이 : " + compmaxspclspeclen + "\n" +"특정코드 [ " + spclcd + " ] 의 특정내역 길이를 확인 후", "C003");
  5870. return 1;
  5871. }
  5872. }
  5873. }
  5874. }
  5875. return 3;
  5876. }
  5877. //=======================================================================================
  5878. // Function
  5879. //---------------------------------------------------------------------------------------
  5880. /****************************************************************************************
  5881. * Argument :
  5882. * Description : CLOD 테이블에 저장할 정보가 올바른지 확인
  5883. ****************************************************************************************/
  5884. function lf_fCheckSaveOutDayJudgInfoCLOD()
  5885. {
  5886. // 저장할 정보를 체크한다.
  5887. // 처방 Grid
  5888. var clodRows = ds_grid_grd_clodhist.rowcount;
  5889. if (clodRows < 1) return;
  5890. var pid;
  5891. var orddd;
  5892. var cretno;
  5893. var calcseqno;
  5894. var calcscorseqno;
  5895. for (var i = 0; i < clodRows; i++) {
  5896. pid = ds_grid_grd_clodhist.getColumn(i, "pid");
  5897. orddd = ds_grid_grd_clodhist.getColumn(i, "orddd");
  5898. cretno = ds_grid_grd_clodhist.getColumn(i, "cretno");
  5899. calcseqno = ds_grid_grd_clodhist.getColumn(i, "calcseqno");
  5900. calcscorseqno = ds_grid_grd_clodhist.getColumn(i, "calcscorseqno");
  5901. if (utlf_isNull(ds_grid_grd_clodhist.getColumn(i, "tootfact"))) { // 치식이 입력되지 않은 경우
  5902. ds_grid_grd_clodhist.setColumn(i, "tootfact", "-");
  5903. }
  5904. }
  5905. return true;
  5906. }
  5907. //=======================================================================================
  5908. // Function
  5909. //---------------------------------------------------------------------------------------
  5910. /****************************************************************************************
  5911. * Argument :
  5912. * Description : CLOP 테이블에 저장할 정보가 올바른지 확인
  5913. ****************************************************************************************/
  5914. function lf_fCheckSaveOutDayJudgInfoCLOP()
  5915. {
  5916. // 저장할 정보를 체크한다.
  5917. // 원외처방 Grid
  5918. var clopRows = ds_grid_grd_oprcphist.rowcount;
  5919. if (clopRows < 1) return;
  5920. var spclspec;
  5921. var rowstat;
  5922. for (var i = 0; i < clopRows; i++) {
  5923. spclspec = ds_grid_grd_oprcphist.getColumn(i, "spclspec");
  5924. stat = ds_grid_grd_oprcphist.getRowType(i);
  5925. if (utlf_isNull(spclspec) && stat != 0) {
  5926. sysf_messageBox("원외처방 특정내역이", "I004"); // 원외처방 특정내역이 없습니다.
  5927. return false;
  5928. }
  5929. }
  5930. return true;
  5931. }
  5932. //=======================================================================================
  5933. // Function
  5934. //---------------------------------------------------------------------------------------
  5935. /****************************************************************************************
  5936. * Argument :
  5937. * Description : 계산처방시행조회(코드별 처방 hx.보기)
  5938. ****************************************************************************************/
  5939. function lf_fOpenSMPIS00500Detail_O()
  5940. {
  5941. var cur_row = ds_grid_grd_clodhist.rowposition;
  5942. ds_cond_SMPIS00500.setColumn(0, "patunitsrch", ds_item1_otpt.getColumn(0, "pid"));
  5943. ds_cond_SMPIS00500.setColumn(0, "code", ds_grid_grd_clodhist.getColumn(cur_row, "snglcalcscorcd"));
  5944. ds_cond_SMPIS00500.setColumn(0, "datecond", "");
  5945. ds_cond_SMPIS00500.setColumn(0, "fromdd", ds_item1_otpt.getColumn(0, "orddd"));
  5946. ds_cond_SMPIS00500.setColumn(0, "todd", ds_item1_otpt.getColumn(0, "orddd"));
  5947. ds_cond_SMPIS00500.setColumn(0, "ioflag", "O");
  5948. ds_cond_SMPIS00500.setColumn(0, "orddeptcd", "");
  5949. ds_cond_SMPIS00500.setColumn(0, "orddrid", "");
  5950. ds_cond_SMPIS00500.setColumn(0, "codecond", "");
  5951. ds_cond_SMPIS00500.setColumn(0, "judgrid", "");
  5952. ds_cond_SMPIS00500.setColumn(0, "cancer", "");
  5953. ds_cond_SMPIS00500.setColumn(0, "large", "");
  5954. ds_cond_SMPIS00500.setColumn(0, "middle", "");
  5955. ds_cond_SMPIS00500.setColumn(0, "small", "");
  5956. ds_cond_SMPIS00500.setColumn(0, "edicd", "");
  5957. frmf_modal("SMPIS00500", "SMPIS00500", {objDs:ds_cond_SMPIS00500}, "", "", "", "", "", "", "", "", "", "M");
  5958. }
  5959. //=======================================================================================
  5960. // Function
  5961. //---------------------------------------------------------------------------------------
  5962. /****************************************************************************************
  5963. * Argument :
  5964. * Description : 청구삭감조회(코드별 청구 hx.보기)
  5965. ****************************************************************************************/
  5966. function lf_fOpenSMPIS00600Detail()
  5967. {
  5968. // var cur_row = ds_grid_grd_clodhist.rowposition;
  5969. //
  5970. // var today = utlf_getCurrentDate();
  5971. //
  5972. // var fromdd = today.toDate().getAddDate(-6,"M").getDateFormat("YYYYMM");
  5973. // ds_cond_SMPIS00600.setColumn(0, "patunitsrch", ds_item1_otpt.getColumn(0, "pid"));
  5974. // ds_cond_SMPIS00600.setColumn(0, "code", ds_grid_grd_clodhist.getColumn(cur_row, "pid"));
  5975. // ds_cond_SMPIS00600.setColumn(0, "clamym", "");
  5976. // ds_cond_SMPIS00600.setColumn(0, "clamymfrom", fromdd);
  5977. // ds_cond_SMPIS00600.setColumn(0, "clamdgfrom", "");
  5978. // ds_cond_SMPIS00600.setColumn(0, "clamymto", today);
  5979. // ds_cond_SMPIS00600.setColumn(0, "clamdgto", "");
  5980. // ds_cond_SMPIS00600.setColumn(0, "clamflag", "");
  5981. // ds_cond_SMPIS00600.setColumn(0, "ioflag", "I");
  5982. // ds_cond_SMPIS00600.setColumn(0, "insukind", ds_item1_otpt.getColumn(0, "insukindcd"));
  5983. // ds_cond_SMPIS00600.setColumn(0, "orddeptcd", "");
  5984. // ds_cond_SMPIS00600.setColumn(0, "orddrid", "");
  5985. // ds_cond_SMPIS00600.setColumn(0, "cutonly", false);
  5986. //
  5987. // frmf_modal("SMPIS00600", "SMPIS00600", {objDs:ds_cond_SMPIS00600}, "", "", "", "", "", "", "", "", "", "M");
  5988. lf_pidfOpenSMPIS00600("O", "M");
  5989. }
  5990. //=======================================================================================
  5991. // Function
  5992. //---------------------------------------------------------------------------------------
  5993. /****************************************************************************************
  5994. * Argument :
  5995. * Description : 처방사유조회
  5996. ****************************************************************************************/
  5997. function lf_fPrcpResnRef()
  5998. {
  5999. var userid = sysf_getUserInfos("userid");
  6000. var usernm = sysf_getUserInfos("usernm");
  6001. var posinstcd = sysf_getUserInfos("posinstcd");
  6002. var posinstnm = sysf_getUserInfos("posinstnm");
  6003. var posdeptcd = sysf_getUserInfos("posdeptcd");
  6004. var posdeptnm = sysf_getUserInfos("posdeptnm");
  6005. ds_cond_SPMMO19000.setColumn(0,"pid", ds_item1_otpt.getColumn(0, "pid")); // 등록번호
  6006. ds_cond_SPMMO19000.setColumn(0,"fromdd", ds_item1_otpt.getColumn(0, "orddd")); // 처방시작일 default orddd
  6007. ds_cond_SPMMO19000.setColumn(0,"todd", ds_item1_otpt.getColumn(0, "orddd")); // 처방종료일 default "99991231"
  6008. ds_cond_SPMMO19000.setColumn(0,"orddeptcd", "-"); // 진료과 : 주진료과
  6009. ds_cond_SPMMO19000.setColumn(0,"orddrid", "-"); // 주치의 : default "-"
  6010. ds_cond_SPMMO19000.setColumn(0,"mainjudgid", "-"); // 심사자 : 현재심사자
  6011. ds_cond_SPMMO19000.setColumn(0,"prcpcd", ds_grid_grd_clodhist.getColumn(ds_grid_grd_clodhist.rowposition, "pid")); // 수가코드 : 그룹코드
  6012. ds_cond_SPMMO19000.setColumn(0,"insukind", ds_item1_otpt.getColumn(0, "insukindcd")); // 보험유형 : 환자보험유형
  6013. ds_cond_SPMMO19000.setColumn(0,"ioflag", "O"); // 내원유형 : default "-"
  6014. ds_cond_SPMMO19000.setColumn(0,"resncd", "FF"); // 사유구분 : default "FF" : 중복처방사유
  6015. ds_cond_SPMMO19000.setColumn(0,"popup", "judg"); // 팝업사용처구분 : judg(심사)
  6016. // alert("20140808 현재 XP에 SPMMO19000_중복처방사유조회 화면이 존재하지 않음");
  6017. // return;
  6018. frmf_modal("SPMMO19000", "SPMMO19000", {ds_cond_SPMMO19000:ds_cond_SPMMO19000}, "", "", "", "", "", "", "", "", "", "M");
  6019. }
  6020. //=======================================================================================
  6021. // Function
  6022. //---------------------------------------------------------------------------------------
  6023. /****************************************************************************************
  6024. * Argument :
  6025. * Description : 선별심사 / 항목구분 색표시
  6026. ****************************************************************************************/
  6027. function lf_fSetItemBold()
  6028. {
  6029. // 초기화
  6030. for (var i=0; i < ds_init_rdo_item1.rowcount; i++)
  6031. {
  6032. ds_init_rdo_item1.setColumn(i, "color", "");
  6033. ds_init_rdo_item1.setColumn(i, "font", "");
  6034. }
  6035. // "전체" 항목은 default 로 굵게 표시
  6036. ds_init_rdo_item1.setColumn(0, "color", "#ff0000");
  6037. ds_init_rdo_item1.setColumn(0, "font", "Dotum,9,bold");
  6038. var rowcnt = ds_grid_grd_clodhist.rowcount; // 필터
  6039. var old_item1 = "";
  6040. for (var i=0; i<rowcnt ; i++ ) {
  6041. //var lnunitspclspecyn = ds_grid_grd_clodhist.getColumn(i, "lnunitspclspecyn");
  6042. // 줄단위 메모 색표시(안쓰는 컬럼인듯?)
  6043. // if ( lnunitspclspecyn == "*" ) {
  6044. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + i +' ? "#ffff00" : "")');
  6045. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + i +' ? "#ffff00" : "")');
  6046. // } else {
  6047. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  6048. // grd_clodhist.setCellProperty("body", grd_clodhist.getBindCellIndex("body", "basecd"), "background2", 'EXPR(currow == ' + i +' ? "#ffffff" : "")');
  6049. // }
  6050. // 처방 조회부 항목구분 Radio에서 해당 처방이 있는 item을 굵게 표시한다.
  6051. var item1 = ds_grid_grd_clodhist.getColumn(i, "ediitem1"); //항목구분 에 Bold처리하기 위한 체크
  6052. var fRow = ds_init_rdo_item1.findRow("codecolumn", item1);
  6053. if ( item1 != old_item1 && fRow > -1 ) {
  6054. ds_init_rdo_item1.setColumn(fRow, "color", "#ff0000");
  6055. ds_init_rdo_item1.setColumn(fRow, "font", "Dotum,9,bold");
  6056. old_item1 = item1;
  6057. }
  6058. }
  6059. }
  6060. //=======================================================================================
  6061. // Function
  6062. //---------------------------------------------------------------------------------------
  6063. /****************************************************************************************
  6064. * Argument : 01.tabflag : 탭구분
  6065. * Description : 특정내역 및 메모 탭 색 변경
  6066. ****************************************************************************************/
  6067. function lf_fSetTapListSetting(tabflag)
  6068. {
  6069. var spclcd = ds_list3_clcj.getColumn(0, "spclcd");
  6070. var judgrmk = ds_grid_grd_judgmemo.getColumn(0, "spclspec");
  6071. var edirmk = ds_list9_edimemo.getColumn(0, "spclspec");
  6072. //특정내역
  6073. if ( tabflag == "1" || tabflag == "all" ) {
  6074. if ( utlf_isNull(spclcd) ) {
  6075. grp_clsphist.btn_case_spclspec.style.color = "dimgray"; // #808080
  6076. } else {
  6077. grp_clsphist.btn_case_spclspec.style.color = "red"; // #ff0000
  6078. }
  6079. }
  6080. //재원심사메모
  6081. if ( tabflag == "2" || tabflag == "all" ) {
  6082. if ( utlf_isNull(judgrmk) ) {
  6083. grp_clsphist.btn_case_judg.style.color = "dimgray"; // #808080
  6084. } else {
  6085. grp_clsphist.btn_case_judg.style.color = "red"; // #ff0000
  6086. }
  6087. }
  6088. //EDI메모
  6089. if ( tabflag == "3" || tabflag == "all" ) {
  6090. if ( utlf_isNull(edirmk) ) {
  6091. grp_clsphist.btn_case_edi.style.color = "dimgray"; // #808080
  6092. } else {
  6093. grp_clsphist.btn_case_edi.style.color = "red"; // #ff0000
  6094. }
  6095. }
  6096. // 콤보 색 변경
  6097. // 초기화
  6098. for (var i=0; i < ds_init_rdo_unitflag.rowcount; i++)
  6099. {
  6100. ds_init_rdo_unitflag.setColumn(i, "color", "");
  6101. ds_init_rdo_unitflag.setColumn(i, "font", "");
  6102. }
  6103. // "전체" 항목은 default 로 굵게 표시
  6104. // ds_init_rdo_unitflag.setColumn(0, "color", "#ff0000");
  6105. // ds_init_rdo_unitflag.setColumn(0, "font", "Dotum,9,bold");
  6106. var fRow = -1;
  6107. ds_grid_grd_clsphist.filterstr = "";
  6108. // 명단위
  6109. ds_grid_grd_clsphist.filterstr = "unitflag == 'M'";
  6110. if (ds_grid_grd_clsphist.rowcount > 0) {
  6111. fRow = ds_init_rdo_unitflag.findRow("codecolumn", "M");
  6112. ds_init_rdo_unitflag.setColumn(fRow, "color", "#ff6600");
  6113. }
  6114. // 줄단위
  6115. ds_grid_grd_clsphist.filterstr = "unitflag == 'J'";
  6116. if (ds_grid_grd_clsphist.rowcount > 0) {
  6117. fRow = ds_init_rdo_unitflag.findRow("codecolumn", "J");
  6118. ds_init_rdo_unitflag.setColumn(fRow, "color", "#ff6600");
  6119. }
  6120. // 처방
  6121. ds_grid_grd_clsphist.filterstr = "spclcd == 'JX999'";
  6122. if (ds_grid_grd_clsphist.rowcount > 0) {
  6123. fRow = ds_init_rdo_unitflag.findRow("codecolumn", "JX999");
  6124. ds_init_rdo_unitflag.setColumn(fRow, "color", "#ff6600");
  6125. }
  6126. ds_grid_grd_clsphist.filterstr = "";
  6127. }
  6128. // 심사자메모, edi메모 만 따로 저장(안쓰나??)
  6129. function lf_fSaveMemo(flag)
  6130. {
  6131. var isValidCheck = true;
  6132. var saveNoMsg = "";
  6133. var saveOkMsg = "";
  6134. // model.removeNodeset("/root/send/item2");
  6135. // model.removeNodeset("/root/send/item3"); // 저장 오류가 난 경우 다시 "저장" Btn 누르면 새로 메모 내역이 생성되어야 하므로
  6136. // model.removeNodeset("/root/send/item4");
  6137. // model.removeNodeset("/root/send/list1");
  6138. // model.removeNodeset("/root/send/list2");
  6139. // model.removeNodeset("/root/send/list3");
  6140. // model.removeNodeset("/root/send/item5");
  6141. // model.removeNodeset("/root/send/list7");
  6142. if (flag == "J") {
  6143. lf_save_grd_ds(ds_grid_grd_judgmemo, ds_cond_grd_judgmemo);
  6144. if (ds_cond_grd_judgmemo.rowcount > 0) {
  6145. lf_fSetJudgEDIMemo(judgmemo, "U");
  6146. saveOkMsg += "[심사메모] ";
  6147. } else {
  6148. saveNoMsg += "[심사메모] ";
  6149. }
  6150. }
  6151. if (flag == "E") {
  6152. lf_save_grd_ds(ds_grid_grd_edimemo, ds_cond_grd_edimemo);
  6153. if (ds_cond_grd_edimemo.rowcount > 0) {
  6154. lf_fSetJudgEDIMemo(edimemo, "E");
  6155. saveOkMsg += "[심사메모] ";
  6156. } else {
  6157. saveNoMsg += "[심사메모] ";
  6158. }
  6159. }
  6160. if (isValidCheck) {
  6161. if (!utlf_isNull(saveOkMsg)) {
  6162. // TODO
  6163. if (submit("TXPIJ00701", false)) {
  6164. }
  6165. }
  6166. else if (!utlf_isNull(saveNoMsg)) {
  6167. sysf_messageBox(saveNoMsg +"변경된 데이터가","I004"); ///변경된 데이터가 없습니다.
  6168. }
  6169. } else { // isValidCheck == false
  6170. sysf_messageBox("변경된 정보를 저장할 심사메모가", "I004");
  6171. }
  6172. }
  6173. // Function
  6174. //=======================================================================================
  6175. //---------------------------------------------------------------------------------------
  6176. /****************************************************************************************
  6177. * Argument : 01.saveflag : 저장구분
  6178. * Description : 메모저장
  6179. ****************************************************************************************/
  6180. function lf_fSaveMeMoList(saveflag)
  6181. {
  6182. ds_send_item3_delclsp.clearData();
  6183. ds_send_item1_otpt.clearData();
  6184. ds_send_item1_otpt.addRow();
  6185. ds_send_item1_otpt.setColumn(0, "pid", ds_item1_otpt.getColumn(0, "pid"));
  6186. ds_send_item1_otpt.setColumn(0, "orddd", ds_item1_otpt.getColumn(0, "orddd"));
  6187. ds_send_item1_otpt.setColumn(0, "cretno", ds_item1_otpt.getColumn(0, "cretno"));
  6188. ds_send_item1_otpt.setColumn(0, "acptseqno", ds_item1_otpt.getColumn(0, "acptseqno"));
  6189. ds_send_item1_otpt.setColumn(0, "insukindcd", ds_item1_otpt.getColumn(0, "insukindcd"));
  6190. ds_send_item1_otpt.setColumn(0, "suppkindcd", ds_item1_otpt.getColumn(0, "suppkindcd"));
  6191. ds_send_item1_otpt.setColumn(0, "patage", ds_item1_otpt.getColumn(0, "patage"));
  6192. ds_send_item1_otpt.setColumn(0, "opyn", ds_item1_otpt.getColumn(0, "opyn"));
  6193. ds_send_item1_otpt.setColumn(0, "dschjudgprcsstat", ds_item1_otpt.getColumn(0, "dschjudgprcsstat"));
  6194. ds_cond_grd_judgmemo.clearData();
  6195. ds_cond_grd_edimemo.clearData();
  6196. // 재원심사메모
  6197. if (saveflag == "J") {
  6198. var judgmemoRows = ds_grid_grd_judgmemo.rowcount;
  6199. var cnt = 0;
  6200. var rowstatus = "i";
  6201. if (judgmemoRows == 0) {
  6202. return;
  6203. }
  6204. else {
  6205. for (var i = 0; i < judgmemoRows; i++) {
  6206. if (ds_grid_grd_judgmemo.getRowType(i) != 1) {
  6207. if (ds_grid_grd_judgmemo.getRowType(i) == 2) {
  6208. rowstatus = "i";
  6209. ds_grid_grd_judgmemo.setColumn(i, "status" , "i");
  6210. }
  6211. else if (ds_grid_grd_judgmemo.getRowType(i) == 4) {
  6212. rowstatus = "u";
  6213. ds_grid_grd_judgmemo.setColumn(i, "status" , "u");
  6214. }
  6215. else if (ds_grid_grd_judgmemo.getRowType(i) == 8) {
  6216. rowstatus = "d";
  6217. ds_grid_grd_judgmemo.setColumn(i, "status" , "d");
  6218. }
  6219. cnt = ds_cond_grd_judgmemo.addRow();
  6220. ds_cond_grd_judgmemo.setColumn(cnt, "judgspclspec", ds_grid_grd_judgmemo.getColumn(i, "spclspec"));
  6221. var seq = ds_grid_grd_judgmemo.getColumn(i, "seqno");
  6222. if (utlf_isNull(seq)) {
  6223. seq = ds_grid_grd_judgmemo.setColumn(i, "seqno", 1);
  6224. }
  6225. ds_cond_grd_judgmemo.setColumn(cnt, "judgseqno", seq);
  6226. ds_cond_grd_judgmemo.setColumn(cnt, "judgstatus", rowstatus);
  6227. }
  6228. }
  6229. ds_send_item3_lnunitmemo.clearData();
  6230. // ds_list1_diag.clearData();
  6231. // ds_list3_clcj.clearData();
  6232. // ds_grid_grd_delorder.clearData();
  6233. tranf_submit({
  6234. id : "TXPIJ00701"
  6235. , service : "bfjudgapp.OutDayJudg"
  6236. , method : "reqExeSaveOutDayJudg"
  6237. , inds : "otpt=ds_send_item1_otpt delmemo=ds_send_item3_delclsp judgmemo=ds_cond_grd_judgmemo edimemo=ds_cond_grd_edimemo lnunitmemo=ds_send_item3_lnunitmemo diag=ds_list1_diag clcj=ds_list3_clcj oscl=ds_grid_grd_delorder"
  6238. , outds : "ds_grid_grd_judgmemo=judgmemo"
  6239. , async : false
  6240. });
  6241. }
  6242. }
  6243. // EDI메모
  6244. else if (saveflag == "E") {
  6245. var edimemoRows = ds_grid_grd_edimemo.rowcount;
  6246. var cnt = -1;
  6247. var rowstatus = "i";
  6248. var status;
  6249. var memo;
  6250. // 저장 전 byte 수 체크
  6251. var allmemo = "";
  6252. for (var i = 0; i < edimemoRows; i++) {
  6253. status = ds_grid_grd_edimemo.getRowType(i);
  6254. memo = ds_grid_grd_edimemo.getColumn(i, "spclspec");
  6255. if (status != 8) {
  6256. allmemo += memo;
  6257. }
  6258. }
  6259. var iSpclCdTotLength = utlf_getStringLength(allmemo);
  6260. // 심사/EDI메모내용이 700byte가 넘을 경우
  6261. if (iSpclCdTotLength == 700 || iSpclCdTotLength > 700){
  6262. sysf_messageBox("심사/EDI메모내용이 700bytes를 초과하여 행추가를","E001");
  6263. return;
  6264. }
  6265. if (edimemoRows == 0) {
  6266. return;
  6267. }
  6268. else {
  6269. for (var i = 0; i < edimemoRows; i++) {
  6270. if (ds_grid_grd_edimemo.getRowType(i) != 1) {
  6271. if (ds_grid_grd_edimemo.getRowType(i) == 2) {
  6272. rowstatus = "i";
  6273. ds_grid_grd_edimemo.setColumn(i, "status" , "i");
  6274. }
  6275. else if (ds_grid_grd_edimemo.getRowType(i) == 4) {
  6276. rowstatus = "u";
  6277. ds_grid_grd_edimemo.setColumn(i, "status" , "u");
  6278. }
  6279. else if (ds_grid_grd_edimemo.getRowType(i) == 8) {
  6280. rowstatus = "d";
  6281. ds_grid_grd_edimemo.setColumn(i, "status" , "d");
  6282. }
  6283. cnt = ds_cond_grd_edimemo.addRow();
  6284. ds_cond_grd_edimemo.setColumn(cnt, "edispclspec", ds_grid_grd_edimemo.getColumn(i, "spclspec"));
  6285. var seq = ds_grid_grd_edimemo.getColumn(i, "seqno");
  6286. if (utlf_isNull(seq)) {
  6287. seq = ds_grid_grd_edimemo.setColumn(i, "seqno", 1);
  6288. }
  6289. ds_cond_grd_edimemo.setColumn(cnt, "ediseqno", seq);
  6290. ds_cond_grd_edimemo.setColumn(cnt, "edistatus", rowstatus);
  6291. }
  6292. }
  6293. for (var k=edimemoRows-1; k>-1; k--){
  6294. if (ds_grid_grd_edimemo.getRowType(k) == 8) {
  6295. ds_grid_grd_edimemo.deleteRow(k); // 삭제
  6296. } else {
  6297. ds_grid_grd_edimemo.updatecontrol = false;
  6298. var aaa = ds_grid_grd_edimemo.setRowType(k, "N");
  6299. ds_grid_grd_edimemo.updatecontrol = true;
  6300. }
  6301. }
  6302. ds_send_item3_lnunitmemo.clearData();
  6303. tranf_submit({
  6304. id : "TXPIJ00701"
  6305. , service : "bfjudgapp.OutDayJudg"
  6306. , method : "reqExeSaveOutDayJudg"
  6307. , inds : "otpt=ds_send_item1_otpt delmemo=ds_send_item3_delclsp judgmemo=ds_cond_grd_judgmemo edimemo=ds_cond_grd_edimemo lnunitmemo=ds_send_item3_lnunitmemo diag=ds_list1_diag clcj=ds_list3_clcj oscl=ds_grid_grd_delorder"
  6308. , outds : "ds_grid_grd_judgmemo=judgmemo"
  6309. , async : false
  6310. });
  6311. // tranf_submit({
  6312. // id : "TXPIJ00701"
  6313. // , service : "bfjudgapp.OutDayJudg"
  6314. // , method : "reqExeSaveOutDayJudg"
  6315. // , inds : "otpt=ds_send_item1_otpt delmemo=ds_grid_grd_clsphist judgmemo=ds_grid_grd_judgmemo edimemo=ds_grid_grd_edimemo lnunitmemo=ds_send_item3_lnunitmemo diag=ds_grid_grd_cldihist clcj=ds_list3_clcj oscl=ds_grid_grd_delorder"
  6316. // // , outds : "ds_grid_grd_edimemo=edimemo"
  6317. // , async : false
  6318. // });
  6319. }
  6320. }
  6321. // 전체저장 할 경우
  6322. else if (saveflag == "A") {
  6323. var judgmemoRows = ds_grid_grd_judgmemo.rowcount;
  6324. var cnt = -1;
  6325. var rowstatus = "i";
  6326. if (judgmemoRows == 0) {
  6327. return;
  6328. }
  6329. else {
  6330. for (var i = 0; i < judgmemoRows; i++) {
  6331. if (ds_grid_grd_judgmemo.getRowType(i) == 2) {
  6332. rowstatus = "i";
  6333. }
  6334. else if (ds_grid_grd_judgmemo.getRowType(i) == 4) {
  6335. rowstatus = "u";
  6336. }
  6337. else if (ds_grid_grd_judgmemo.getRowType(i) == 8) {
  6338. rowstatus = "d";
  6339. }
  6340. cnt++;
  6341. ds_cond_grd_judgmemo.getColumn(cnt, "judgspclspec" , ds_grid_grd_judgmemo.getColumn(i, "spclspec"));
  6342. var seq = ds_grid_grd_judgmemo.getColumn(i, "seqno");
  6343. if (utlf_isNull(seq)) {
  6344. seq = ds_grid_grd_judgmemo.setColumn(i, "seqno", 1);
  6345. }
  6346. ds_cond_grd_judgmemo.setColumn(cnt, "judgseqno", seq);
  6347. ds_cond_grd_judgmemo.getColumn(cnt, "judgstatus" , rowstatus);
  6348. }
  6349. }
  6350. var edimemoRows = ds_grid_grd_edimemo.rowcount;
  6351. var cnt = 0;
  6352. var rowstatus = "i";
  6353. if (edimemoRows == 0) {
  6354. return;
  6355. }
  6356. else {
  6357. for (var i = 0; i < edimemoRows; i++) {
  6358. if (ds_grid_grd_edimemo.getRowType(i) == 2) {
  6359. rowstatus = "i";
  6360. }
  6361. else if (ds_grid_grd_edimemo.getRowType(i) == 4) {
  6362. rowstatus = "u";
  6363. }
  6364. else if (ds_grid_grd_edimemo.getRowType(i) == 8) {
  6365. rowstatus = "d";
  6366. }
  6367. cnt++;
  6368. ds_cond_grd_edimemo.getColumn(cnt, "edispclspec", ds_grid_grd_edimemo.getColumn(i, "spclspec"));
  6369. ds_cond_grd_edimemo.getColumn(cnt, "ediseqno", ds_grid_grd_edimemo.getColumn(i, "seqno"));
  6370. var seq = ds_grid_grd_edimemo.getColumn(i, "seqno");
  6371. if (utlf_isNull(seq)) {
  6372. seq = ds_grid_grd_edimemo.setColumn(i, "seqno", 1);
  6373. }
  6374. ds_cond_grd_edimemo.setColumn(cnt, "ediseqno", seq);
  6375. ds_cond_grd_edimemo.getColumn(cnt, "edistatus", rowstatus);
  6376. }
  6377. }
  6378. }
  6379. }
  6380. //=======================================================================================
  6381. // Function
  6382. //---------------------------------------------------------------------------------------
  6383. /****************************************************************************************
  6384. * Argument :
  6385. * Description : 재행/급여/항목구분 Radio 선택에 따라 처방 내역을 보여준다.
  6386. ****************************************************************************************/
  6387. function lf_fGetSelectedOrderData2()
  6388. {
  6389. ds_grid_grd_clodhist.filterstr = "";
  6390. // 항목구분
  6391. var selectedRdoitem1 = grp_ordsrch.rdo_item1.value;
  6392. var filterstr1 = "";
  6393. if (utlf_isNull(selectedRdoitem1) || selectedRdoitem1 == "-") { // 전체
  6394. filterstr1 = "";
  6395. } else {
  6396. filterstr1 = " && ediitem1=='"+selectedRdoitem1+"'";
  6397. }
  6398. // 급여구분
  6399. var selectedRdoitem2 = grp_ordsrch.rdo_payflag.value;
  6400. var filterstr2 = "";
  6401. //if (utlf_isNull(selectedRdoitem2) || selectedRdoitem2 == "-") { // 전체
  6402. if (selectedRdoitem2 == "0") { // 전체
  6403. filterstr2 = "";
  6404. } else if (selectedRdoitem2 == "1") { // 급여인 경우
  6405. filterstr2 = " && calcpayflag=='0'";
  6406. } else if (selectedRdoitem2 == "2") { // 전액본인인 경우
  6407. filterstr2 = " && calcpayflag=='1'";
  6408. } else if (selectedRdoitem2 == "3") { // 비급여인 경우
  6409. filterstr2 = " && calcpayflag=='2'";
  6410. } else if (selectedRdoitem2 == "4") { // 선택인 경우
  6411. filterstr2 = " && specordyn=='Y'";
  6412. }
  6413. // 재료행위구분
  6414. var selectedRdoitem3 = grp_ordsrch.rdo_actmatflag.value;
  6415. var filterstr3 = "";
  6416. if (utlf_isNull(selectedRdoitem3) || selectedRdoitem3 == "-") { // 전체
  6417. filterstr3 = "";
  6418. } else if (selectedRdoitem3 == "1") { // 재료인 경우
  6419. filterstr3 = " && (matractflag=='0' || matractflag=='1' || matractflag=='6')";
  6420. } else { // 행위인 경우 (2 : 가산있는 행위 / 3 : 가산없는 행위)
  6421. filterstr3 = " && (matractflag=='2' || matractflag=='3')";
  6422. }
  6423. // 시행구분
  6424. var selectedRdoitem4 = grp_ordsrch.rdo_actingflag.value;
  6425. var filterstr4 = "";
  6426. if (utlf_isNull(selectedRdoitem4) || selectedRdoitem4 == "all") { // 전체
  6427. filterstr4 = "";
  6428. } else if (selectedRdoitem4 == "act") {
  6429. filterstr4 = " && execprcpstatcd=='Y'";
  6430. } else if (selectedRdoitem4 == "noact") {
  6431. filterstr4 = " && execprcpstatcd=='N'";
  6432. }
  6433. // 필터
  6434. var filterstr = filterstr1 + filterstr2 + filterstr3 + filterstr4;
  6435. if (filterstr.substr(0, 4) == " && ") {
  6436. filterstr = filterstr.substr(4);
  6437. }
  6438. ds_grid_grd_clodhist.filterstr = filterstr;
  6439. ds_grid_grd_clodhist.rowposition = 0; // 그리드의 첫줄부터 표시되도록 포커스를 0으로 설정한다.
  6440. }
  6441. //=======================================================================================
  6442. // Function
  6443. //---------------------------------------------------------------------------------------
  6444. // /****************************************************************************************
  6445. // * Argument :
  6446. // * Description : 처방그리드의 색을 표시함
  6447. // ****************************************************************************************/
  6448. // function lf_fcolor()
  6449. // {
  6450. // var nGridColCount = grd_clodhist.getCellCount("Body");
  6451. //
  6452. // //grd_clodhist.rowposition = i; // 적용할 행
  6453. // for(var i = 0; i < nGridColCount; i++){
  6454. // var spcljudgflag = ds_grid_grd_clodhist.getColumn(i, "spcljudgflag");
  6455. // var indschacptstat = ds_grid_grd_clodhist.getColumn(i, "indschacptstat");
  6456. // var dschjudgprcsstat = ds_grid_grd_clodhist.getColumn(i, "dschjudgprcsstat");
  6457. //
  6458. // grd_clodhist.setCellProperty("Body",i,"background",'EXPR((judgreqyn=="Y") ? "#cc99ff" : (dschjudgprcsstat == "C" || dschjudgprcsstat == "E" && indschacptstat != "D") ? "#99ccff" : (indschacptstat == "D" || dschjudgprcsstat == "C" && indschacptstat == "D") ? "#fea596" : "#ffffff")');
  6459. // grd_clodhist.setCellProperty("Body",i,"background2",'EXPR((judgreqyn=="Y") ? "#cc99ff" : (dschjudgprcsstat == "C" || dschjudgprcsstat == "E" && indschacptstat != "D") ? "#99ccff" : (indschacptstat == "D" || dschjudgprcsstat == "C" && indschacptstat == "D") ? "#fea596" : "#ffffff")');
  6460. ]]></Script>