SMPIJ00300.xjs 349 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type ="xscript4.0"><![CDATA[// =================================================================================================
  3. // - 2009.04.27 Creation JHP
  4. //==================================================================================================
  5. /* --------------------------------------------------------------------------------------------------
  6. Fucntion Name || Description
  7. -----------------------------------------------------------------------------------------------------
  8. 2009.07.23 JHP
  9. 심사화면 환자 메세지 여부확인: fGetPatMsgYn
  10. 환자기준 전송메세지작성 : fPatJudgPatMsgTrsm
  11. 처방기준 전송메세지작성 : fOrderJudgPatMsgTrsm
  12. 해당건 환자 전체 메세지 보기 : fJudgPatMsgTrsmRef
  13. 2009.08.13 JHP
  14. 처방사유조회 : fPrcpResnRef
  15. 환자번호 첫자리 문자인경우 환자번호로 인식 fChkPidWordNumber
  16. */
  17. // 수정이력 :
  18. // 20090811 수정추가 JHP, 변경요청 858 재원심사에서 계산처방 조회시 진료과는 전체로 넘겨야함. 하여 기존 것. 주석, 빈값 넘김으로 수정
  19. // 20090811 수정추가 JHP, 변경요청 858 재원심사에서 계산처방 조회시 진료과는 전체로 넘겨야함. 진료과별 의사를 보기때문에 의사도 일단 전체로 해놓음.
  20. // 20090817 수정추가 JHP, 수정요청 계산처방시행조회 화면 edicd 조회조건에 존재하기에 추가함. 없으면 singlenode 에러남.
  21. var VAL_today = utlf_getCurrentDate();
  22. var VAL_fromdd = VAL_today.toDate().getAddDate(-6,"M").getDateFormat("YYYYMM");
  23. var VAL_userid = sysf_getUserId();
  24. var VAL_usernm = sysf_getUserName();
  25. function fOpenSMPIS00500Detail() {
  26. dsf_makeValue( ds_hidden_smpis00500_cond, "patunitsrch", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  27. dsf_makeValue( ds_hidden_smpis00500_cond, "code", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  28. dsf_makeValue( ds_hidden_smpis00500_cond, "datecond", "string", "");
  29. dsf_makeValue( ds_hidden_smpis00500_cond, "fromdd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1"));
  30. dsf_makeValue( ds_hidden_smpis00500_cond, "todd", "string", ds_main_item1_iteminfo.getColumn(0, "dschdd"));
  31. dsf_makeValue( ds_hidden_smpis00500_cond, "ioflag", "string", "I");
  32. dsf_makeValue( ds_hidden_smpis00500_cond, "orddeptcd", "string", "");
  33. dsf_makeValue( ds_hidden_smpis00500_cond, "orddrid", "string", "");
  34. dsf_makeValue( ds_hidden_smpis00500_cond, "codecond", "string", "");
  35. dsf_makeValue( ds_hidden_smpis00500_cond, "judgrid", "string", "");
  36. dsf_makeValue( ds_hidden_smpis00500_cond, "cancer", "string", "");
  37. dsf_makeValue( ds_hidden_smpis00500_cond, "large", "string", "");
  38. dsf_makeValue( ds_hidden_smpis00500_cond, "middle", "string", "");
  39. dsf_makeValue( ds_hidden_smpis00500_cond, "small", "string", "");
  40. dsf_makeValue( ds_hidden_smpis00500_cond, "edicd", "string", "");
  41. frmf_modal("SMPIS00500", "SMPIS00500", "ds_hidden_smpis00500_cond""-"ds_send"", "", "1", "10", "10", "", "", "", "", "", "M");
  42. }
  43. function fOpenSMPIS00600Detail() {
  44. fOpenSMPIS00600Call("false");
  45. }
  46. function fOpenSMPIS00600Detail2() {
  47. fOpenSMPIS00600Call("true");
  48. }
  49. function fOpenSMPIS00600Call(cutonly) {
  50. dsf_makeValue( ds_hidden_smpis00600_cond, "patunitsrch", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  51. dsf_makeValue( ds_hidden_smpis00600_cond, "code", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  52. dsf_makeValue( ds_hidden_smpis00600_cond, "clamym", "string", "");
  53. dsf_makeValue( ds_hidden_smpis00600_cond, "clamymfrom", "string", VAL_fromdd);
  54. dsf_makeValue( ds_hidden_smpis00600_cond, "clamdgfrom", "string", "");
  55. dsf_makeValue( ds_hidden_smpis00600_cond, "clamymto", "string", VAL_today);
  56. dsf_makeValue( ds_hidden_smpis00600_cond, "clamdgto", "string", "");
  57. dsf_makeValue( ds_hidden_smpis00600_cond, "clamflag", "string", "");
  58. dsf_makeValue( ds_hidden_smpis00600_cond, "ioflag", "string", "I");
  59. dsf_makeValue( ds_hidden_smpis00600_cond, "insukind", "string", ds_main_item1_iteminfo.getColumn(0, "insukindcd"));
  60. dsf_makeValue( ds_hidden_smpis00600_cond, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  61. dsf_makeValue( ds_hidden_smpis00600_cond, "orddrid", "string", ds_main_item1_iteminfo.getColumn(0, "medispclid"));
  62. dsf_makeValue( ds_hidden_smpis00600_cond, "cutonly", "string", cutonly);
  63. frmf_modal("SMPIS00600", "SMPIS00600", "ds_hidden_smpis00600_cond""-"ds_send"", "", "1", "10", "10", "", "", "", "", "", "M");
  64. }
  65. //화면 open시(와 초기화 버튼 클릭시) 화면 초기화 기능을 수행한다.
  66. function fInitialize() {
  67. // 공통코드를 조회한다.
  68. var arrParam = [ {dsNm: "ds_init_P0111list","ds_init_P0110list","ds_init_P0112list","ds_init_P0008list","ds_init_P0010list","ds_init_P0117list","ds_init_P0506list","ds_init_P0551list",
  69. cdGrpId: "P0111","P0110","P0112","P0008","P0010","P0117","P0506","P0551" } ];
  70. appf_getCodeList(arrParam, , false );
  71. ds_send_listval_uuee.setColumn( 0, "scrnid","SMPIJ00300");
  72. // 2013.02.19 - 부가코드 원무공통코드조회
  73. var arrParam = [ {dsNm: "ds_init_PAM_PK029list"
  74. ,
  75. cdGrpId:
  76. "PK029"
  77. } ];
  78. pamfGetCodeList(arrParam, );
  79. // if ( submit("TRPIJ00407",false) ) {
  80. var oParam = {};
  81. oParam.id = "TRPIJ00407";
  82. oParam.service = "bfjudgapp.InHospJudgDetl";
  83. oParam.method = "reqGetUuee";
  84. oParam.inds = "req=ds_";
  85. oParam.outds = "ds_=uuee";
  86. oParam.async = false;
  87. oParam.callback = "cf_TRPIJ00407";
  88. tranf_submit(oParam);
  89. /*
  90. function cf_TRPIJ00407(sSvcId, nErrorCode, sErrorMsg) {
  91. if(nErrorCode < 0) return;
  92. }
  93. function cf_TRPIJ00407(sSvcId, nErrorCode, sErrorMsg) {
  94. arErrorCode.push(sSvcId, nErrorCode);
  95. }
  96. arErrorCode.pop("TRPIJ00407") > -1
  97. arErrorCode.pop("TRPIJ00407") < 0
  98. */
  99. var grd_name = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grd_ordlist + "'", "compsnm");
  100. var refdata = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grd_ordlist + "'", "compscnts");
  101. var sizedata = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grd_ordlist + "'", "compssizecnts");
  102. var diag_grd_name = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grd_diaglist + "'", "compsnm");
  103. var diag_refdata = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grd_diaglist + "'", "compscnts");
  104. var diag_sizedata = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grd_diaglist + "'", "compssizecnts");
  105. if (grd_name != "") {
  106. setOrderInfoOfCol("grd_ordlist",refdata,sizedata);
  107. }
  108. if (diag_grd_name != "") {
  109. setOrderInfoOfCol("grd_diaglist",diag_refdata,diag_sizedata);
  110. }
  111. }
  112. //
  113. //model.refresh();
  114. - 불필요해서 제거 - 20080731 박창원
  115. fSetRdoReset();
  116. btn_clspcd.selected = true;
  117. // 20091109 JHP 심사메모버튼으로 변경시 case도 심사메모에 해당하는 것으로 변경해야함.
  118. model.toggle("case_spclspec");
  119. ds_send.setColumn( 0, "totalsumflag", "Y");
  120. ds_send.setColumn( 0, "unitflag", "-");
  121. btn_attData.attribute("class") = "btn2_letter4";
  122. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  123. ds_send.setColumn( 0, "indd",indd);
  124. ds_send.setColumn( 0, "curdd",VAL_today);
  125. // submit("TRPIJ00305",false);
  126. var oParam = {};
  127. oParam.id = "TRPIJ00305";
  128. oParam.service = "bfjudgapp.InHospJudg";
  129. oParam.method = "reqGetDeptList";
  130. oParam.inds = "req=ds_";
  131. oParam.outds = "ds_=dept";
  132. oParam.async = false;
  133. oParam.callback = "cf_TRPIJ00305";
  134. tranf_submit(oParam);
  135. /*
  136. function cf_TRPIJ00305(sSvcId, nErrorCode, sErrorMsg) {
  137. if(nErrorCode < 0) return;
  138. }
  139. function cf_TRPIJ00305(sSvcId, nErrorCode, sErrorMsg) {
  140. arErrorCode.push(sSvcId, nErrorCode);
  141. }
  142. arErrorCode.pop("TRPIJ00305") > -1
  143. arErrorCode.pop("TRPIJ00305") < 0
  144. */
  145. // 코딩을 위하여 임사로 모든 권한을 준다.
  146. //ds_hidden_properties.setColumn( 0, "auth", "11100000");
  147. // (common.js) 현재 로그인한 사용자 번호(ID)
  148. dsf_makeValue( ds_hidden, "userid", "string", VAL_userid);
  149. dsf_makeValue( ds_hidden, "usernm", "string", VAL_usernm);
  150. }
  151. /* 대상자조회에서 대상자 선택하여 넘어올때 메세지 여부 확인, JHP. 2009.07.23 */
  152. function fGetPatMsgYn(){
  153. var cnt = ds_main_msglist_list.rowcount;
  154. if(cnt > 0){
  155. img_msg.visible = true;
  156. }else{
  157. img_msg.visible = false;
  158. }
  159. }
  160. /* 환자기준 전송메세지작성, JHP. 2009.07.16 */
  161. function fPatJudgPatMsgTrsm() {
  162. if (!utlf_isNull(ds_main_item1_iteminfo.getColumn(0, "pid"))) {
  163. fMsgTrsmMakeNode("P");
  164. } else {
  165. sysf_messageBox("기본정보가 ", "I004");
  166. }
  167. //model.refresh();
  168. frmf_modal("SPPIZ01900_심사환자메세지작성", "", "ds_tmp_msgtrsm_info""-"ds_main_patinfo"", "", "", "400", "300", "", "", "", "", "", "M");
  169. ds_tmp_msgtrsm.clearData();
  170. }
  171. /* 처방기준 전송메세지작성, JHP. 2009.07.16 */
  172. function fOrderJudgPatMsgTrsm() {
  173. if (!utlf_isNull(ds_main_item1_iteminfo.getColumn(0, "pid"))) {
  174. if(grd_ordlist.row <= 0){
  175. return;
  176. }
  177. fMsgTrsmMakeNode("O");
  178. } else {
  179. sysf_messageBox("기본정보가 ", "I004");
  180. }
  181. //model.refresh();
  182. frmf_modal("SPPIZ01900_심사환자메세지작성", "", "ds_tmp_msgtrsm_info""-"ds_main_patinfo"", "", "", "400", "300", "", "", "", "", "", "M");
  183. ds_tmp_msgtrsm.clearData();
  184. }
  185. function fMsgTrsmMakeNode(kindflag) {
  186. // 인스턴스생성
  187. dsf_makeValue( ds_tmp_msgtrsm_info, "instcd", "string", "");
  188. dsf_makeValue( ds_tmp_msgtrsm_info, "msgwrtedd", "string", VAL_today);
  189. dsf_makeValue( ds_tmp_msgtrsm_info, "msgwrteno", "string", "");
  190. dsf_makeValue( ds_tmp_msgtrsm_info, "msgwrtehistno", "string", "");
  191. dsf_makeValue( ds_tmp_msgtrsm_info, "histstat", "string", "Y");
  192. dsf_makeValue( ds_tmp_msgtrsm_info, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  193. dsf_makeValue( ds_tmp_msgtrsm_info, "orddd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1"));
  194. dsf_makeValue( ds_tmp_msgtrsm_info, "cretno", "string", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  195. dsf_makeValue( ds_tmp_msgtrsm_info, "mskind", "string", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  196. dsf_makeValue( ds_tmp_msgtrsm_info, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  197. dsf_makeValue( ds_tmp_msgtrsm_info, "orddrid", "string", ds_main_item1_iteminfo.getColumn(0, "medispclid"));
  198. dsf_makeValue( ds_tmp_msgtrsm_info, "orddrnm", "string", ds_main_item1_iteminfo.getColumn(0, "medispclnm"));
  199. dsf_makeValue( ds_tmp_msgtrsm_info, "ordtype", "string", "I");
  200. dsf_makeValue( ds_tmp_msgtrsm_info, "ordqty", "string", 0);
  201. dsf_makeValue( ds_tmp_msgtrsm_info, "ordtims", "string", 0);
  202. dsf_makeValue( ds_tmp_msgtrsm_info, "orddays", "string", 0);
  203. dsf_makeValue( ds_tmp_msgtrsm_info, "rgstrid", "string", "-");
  204. dsf_makeValue( ds_tmp_msgtrsm_info, "rgstdd", "string", "-");
  205. dsf_makeValue( ds_tmp_msgtrsm_info, "rgsttm", "string", "-");
  206. dsf_makeValue( ds_tmp_msgtrsm_info, "sendphone", "string", "");
  207. dsf_makeValue( ds_tmp_msgtrsm_info, "anybodyyn", "string", "N");
  208. dsf_makeValue( ds_tmp_msgtrsm_info, "sendflag", "string", "O");
  209. dsf_makeValue( ds_tmp_msgtrsm_info, "senddate", "string", "");
  210. dsf_makeValue( ds_tmp_msgtrsm_info, "sendid", "string", VAL_userid);
  211. dsf_makeValue( ds_tmp_msgtrsm_info, "deliveid", "string", "-");
  212. dsf_makeValue( ds_tmp_msgtrsm_info, "recvdate", "string", "");
  213. dsf_makeValue( ds_tmp_msgtrsm_info, "recvid", "string", "");
  214. dsf_makeValue( ds_tmp_msgtrsm_info, "recvcnfmyn", "string", "N");
  215. dsf_makeValue( ds_tmp_msgtrsm_info, "recvcnfmid", "string", VAL_userid);
  216. dsf_makeValue( ds_tmp_msgtrsm_info, "sendmsg", "string", "");
  217. dsf_makeValue( ds_tmp_msgtrsm_info, "recvmsg", "string", "");
  218. dsf_makeValue( ds_tmp_msgtrsm_info, "fstrgstrid", "string", "");
  219. dsf_makeValue( ds_tmp_msgtrsm_info, "fstrgstdt", "string", "");
  220. dsf_makeValue( ds_tmp_msgtrsm_info, "lastupdtrid", "string", "");
  221. dsf_makeValue( ds_tmp_msgtrsm_info, "lastupdtdt", "string", "");
  222. if (kindflag == "P") {
  223. dsf_makeValue( ds_tmp_msgtrsm_info, "kindflag", "string", kindflag);
  224. dsf_makeValue( ds_tmp_msgtrsm_info, "grupcalcscorcd", "string", "-");
  225. dsf_makeValue( ds_tmp_msgtrsm_info, "snglcalcscorcd", "string", "-");
  226. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpdd", "string", "-");
  227. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpno", "string", 0);
  228. dsf_makeValue( ds_tmp_msgtrsm_info, "prcppayflag", "string", "-");
  229. } else if (kindflag == "O") {
  230. dsf_makeValue( ds_tmp_msgtrsm_info, "kindflag", "string", kindflag); // 처방기준 'O', chk
  231. dsf_makeValue( ds_tmp_msgtrsm_info, "grupcalcscorcd", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("grupcalcscorcd"))); //chk
  232. dsf_makeValue( ds_tmp_msgtrsm_info, "snglcalcscorcd", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));; //chk
  233. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpdd", "string", ""); // 서버단에서 조회하여 가져와야함. chk(입원만)
  234. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpno", "string", ""); // 서버단에서 조회하여 가져와야함. chk(입원만)
  235. dsf_makeValue( ds_tmp_msgtrsm_info, "prcppayflag", "string", ""); // 서버단에서 조회하여 가져와야함. chk (입원만)
  236. }
  237. }
  238. // 환자 전체 메세지 내용 조회하여 하나씩 보기.
  239. function fJudgPatMsgTrsmRef(){
  240. dsf_makeValue( ds_tmp_msgtrsm_info, "refyn", "string", "Y");
  241. dsf_makeValue( ds_tmp_msgtrsm_info, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  242. dsf_makeValue( ds_tmp_msgtrsm_info, "orddd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1"));
  243. dsf_makeValue( ds_tmp_msgtrsm_info, "cretno", "string", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  244. dsf_makeValue( ds_tmp_msgtrsm_info, "mskind", "string", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  245. dsf_makeValue( ds_tmp_msgtrsm_info, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  246. dsf_makeValue( ds_tmp_msgtrsm_info, "orddrid", "string", ds_main_item1_iteminfo.getColumn(0, "medispclid"));
  247. dsf_makeValue( ds_tmp_msgtrsm_info, "ordtype", "string", "I");
  248. frmf_modal("SMPIJ02600_메세지현황", "", "ds_tmp_msgtrsm_info""-"ds_init_openchk"", "", "", "100", "100", "", "", "", "", "", "M");
  249. ds_tmp_msgtrsm.clearData();
  250. }
  251. // 처방사유조회
  252. // history.. 진료에 있는화면 기본조건으로 팝업사용..YS(윤샘)요청
  253. function fPrcpResnRef(){
  254. // 세션값 받기
  255. dsf_makeValue( ds_tmp_prcpresnref_info, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid")); // 등록번호
  256. dsf_makeValue( ds_tmp_prcpresnref_info, "fromdd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1")); // 처방시작일 default indd
  257. dsf_makeValue( ds_tmp_prcpresnref_info, "todd", "string", ds_main_item1_iteminfo.getColumn(0, "dschdd")); // 처방종료일 default dschdd
  258. dsf_makeValue( ds_tmp_prcpresnref_info, "orddeptcd", "string", "-"); // 진료과 : 주진료과
  259. dsf_makeValue( ds_tmp_prcpresnref_info, "orddrid", "string", "-"); // 주치의 : default "-"
  260. dsf_makeValue( ds_tmp_prcpresnref_info, "mainjudgid", "string", "-"); // 심사자 : 현재심사자
  261. dsf_makeValue( ds_tmp_prcpresnref_info, "prcpcd", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("grupcalcscorcd"))); // 수가코드 : 그룹코드
  262. dsf_makeValue( ds_tmp_prcpresnref_info, "insukind", "string", ds_main_item1_iteminfo.getColumn(0, "insukindcd")); // 보험유형 : 환자보험유형
  263. dsf_makeValue( ds_tmp_prcpresnref_info, "ioflag", "string", "I"); // 내원유형 : default "-"
  264. dsf_makeValue( ds_tmp_prcpresnref_info, "resncd", "string", "FF"); // 사유구분 : default "FF" 중복처방
  265. dsf_makeValue( ds_tmp_prcpresnref_info, "popup", "string", "judg"); // 팝업사용처구분 : judg(심사)
  266. frmf_modal("SPMMO19000_중복처방사유조회", "", "ds_tmp_prcpresnref_info""-"ds_tmp_prcpresnref_info"", "", "", "400", "300", "", "", "", "", "", "M");
  267. ds_tmp_prcpresnref.clearData();
  268. }
  269. // 환자번호 문자 숫자 여부 판단. (isNaN 숫자가아닐경우 true, isFinite 숫자일경우 true)
  270. // 성가환자번호중 첫글자가 문자인경우가 있어서 판단함.
  271. // 현재 재원메인은 적용안함. 대상자조회만 따로 화면에 적용함.
  272. function fChkPidWordNumber(pid)
  273. {
  274. if( typeof( this ) == "undefined" ) return false;
  275. if( this.length == 0 ) return false;
  276. var thisSting = pid.toString();
  277. var firstpid = "";
  278. for( var i=0; i < thisSting.length; i++ ){
  279. var thisNumber = thisSting.substring( i, i+1 );
  280. // 숫자가 아니면
  281. if( isNaN( thisNumber ) ) firstpid = firstpid + 'W';
  282. // 숫자면
  283. if( isNaN( thisNumber ) == false ) firstpid = firstpid + 'N';
  284. // 공백이면 FALSE 리턴
  285. if( " " == thisNumber ) firstpid = firstpid + 'L';
  286. }
  287. var firstpidYN = firstpid.substring( 0, 2 );
  288. // 첫번째 두번째 글자 여부
  289. // 문자숫자, 숫자숫자 : pid로 판단 : true
  290. // 문자문자, 숫자문자 : 글자로 판단 : false
  291. // 그외 : 글자로 판단 : false
  292. if ( firstpidYN == "WN"){ return true}
  293. else if ( firstpidYN == "NN"){ return true}
  294. else if ( firstpidYN == "WW"){ return false}
  295. else if ( firstpidYN == "NW"){ return false}
  296. else { return false }
  297. }
  298. //선택된환자 주,부유형에 따른 보험정보 리스트를 갖고 온다. (pmihiphs)
  299. function fGetInsulist(){
  300. //색상 초기화
  301. opt_patientinfo.attribute("background-color") = "transparent";
  302. cmb_itemraremsg.attribute("background-color") = "transparent";
  303. // 기존 Open 되어 있는 윈도우 중 대상자 조회화면을 제외한 모든 창을 닫는다.
  304. var judgOpenWindow = getChildWindow("SPPMC02500"); // SPPMC02500_대상자 조회.xrw
  305. var childCnt = window.children.length;
  306. childCnt = eval(childCnt) + 1;
  307. for( var i = childCnt; i > 1; i-- ) {
  308. var child = window.children.item(i-1);
  309. if (judgOpenWindow != child) {
  310. window.children.item(i-1).close();
  311. }
  312. }
  313. ds_main_list1.clearData();
  314. ds_hidden_sppiz00300_cond.clearData(); ds_hidden_sppiz00300_cond.addRow();
  315. ds_hidden_sppiz00300_rslt.clearData(); ds_hidden_sppiz00300_rslt.addRow();
  316. ds_hidden_smpiz00100_cond.clearData(); ds_hidden_smpiz00100_cond.addRow();
  317. ds_hidden_smpiz00100_rslt.clearData(); ds_hidden_smpiz00100_rslt.addRow();
  318. ds_send.setColumn( 0, "indd1", ds_main_item1_iteminfo.getColumn(0, "indd1"));
  319. ds_send.setColumn( 0, "curdd",VAL_today);
  320. // submit("TRPIJ00309",false);
  321. var oParam = {};
  322. oParam.id = "TRPIJ00309";
  323. oParam.service = "bfjudgapp.InHospJudg";
  324. oParam.method = "reqGetInsuList";
  325. oParam.inds = "req=ds_";
  326. oParam.outds = "ds_=insulist";
  327. oParam.async = false;
  328. oParam.callback = "cf_TRPIJ00309";
  329. tranf_submit(oParam);
  330. /*
  331. function cf_TRPIJ00309(sSvcId, nErrorCode, sErrorMsg) {
  332. if(nErrorCode < 0) return;
  333. }
  334. function cf_TRPIJ00309(sSvcId, nErrorCode, sErrorMsg) {
  335. arErrorCode.push(sSvcId, nErrorCode);
  336. }
  337. arErrorCode.pop("TRPIJ00309") > -1
  338. arErrorCode.pop("TRPIJ00309") < 0
  339. */
  340. }
  341. //대상자 조회에서 선택된환자의 보험정보 리스트를 조회 한 후 최종것을 선택 하여 환자 정보를 자동 조회 환다.
  342. function fSelectInsulist(getinsukind, getmskind, getflag){
  343. var nodecnt = ds_main_list1_insulist.rowcount;
  344. if (nodecnt == 0) { // 보험내역이 없는겨우
  345. return;
  346. }
  347. var mskind = "";
  348. var fromdd = "";
  349. var todd = "";
  350. var insukind = "";
  351. var suppkind = "";
  352. var cretno = "";
  353. var seqno = "";
  354. var row = 0;
  355. // 대상자 조회에서 선택된 내용이 조회되도록 수정 - 박창원
  356. // 유형이 같은 데이타 중 마지막 데이타 선택
  357. var personflag = ds_send.getColumn(0, "personflag");
  358. if (personflag != "9") {
  359. //주석 처리함. 2007.08.22 박도형
  360. //위의 로직 수정. 시작일자가 최종일자로 데이터 가져옴 plet2.
  361. var maxfromdd = model.getXPathValue("max(ds_main_list1_insulist[mskind='"+getmskind+"']_fromdd)");
  362. mskind = model.getValue("ds_main_list1_insulist[mskind='"+getmskind+"' and fromdd='"+maxfromdd+"']_mskind");
  363. fromdd = model.getValue("ds_main_list1_insulist[mskind='"+getmskind+"' and fromdd='"+maxfromdd+"']_fromdd");
  364. todd = model.getValue("ds_main_list1_insulist[mskind='"+getmskind+"' and fromdd='"+maxfromdd+"']_todd");
  365. insukind = model.getValue("ds_main_list1_insulist[mskind='"+getmskind+"' and fromdd='"+maxfromdd+"']_insukind");
  366. suppkind = model.getValue("ds_main_list1_insulist[mskind='"+getmskind+"' and fromdd='"+maxfromdd+"']_suppkind");
  367. cretno = model.getValue("ds_main_list1_insulist[mskind='"+getmskind+"' and fromdd='"+maxfromdd+"']_cretno");
  368. seqno = model.getValue("ds_main_list1_insulist[mskind='"+getmskind+"' and fromdd='"+maxfromdd+"']_seqno");
  369. ds_send.setColumn( 0, "mskind",mskind);
  370. ds_send.setColumn( 0, "fromdd",fromdd);
  371. ds_send.setColumn( 0, "todd",todd);
  372. ds_send.setColumn( 0, "ordfromdd",fromdd);
  373. ds_send.setColumn( 0, "ordtodd",todd);
  374. ds_send.setColumn( 0, "insukind",insukind);
  375. ds_send.setColumn( 0, "suppkind",suppkind);
  376. ds_send.setColumn( 0, "cretno",cretno);
  377. ds_send.setColumn( 0, "seqno",seqno);
  378. }
  379. // 검색조건 초기화
  380. ds_hidden_list1_isclcond.setColumn( 0, "matractflag","");
  381. ds_hidden_list1_isclcond.setColumn( 0, "calcpayflag","");
  382. ds_hidden_list1_isclcond.setColumn( 0, "snglcalcscorcls","");
  383. ds_hidden_list1_isclcond.setColumn( 0, "cpflag","");
  384. ds_hidden_list1_isclcond.setColumn( 0, "edicd","");
  385. ds_hidden_list1_isclcond.setColumn( 0, "snglcalcscorcd","");
  386. ds_hidden_list1_isclcond.setColumn( 0, "actingflag","");
  387. grd_ordlist.attribute("nodeset") = "ds_main_list2_iscllist";
  388. fGetItemInfo(getflag);
  389. }
  390. // 처방 Grid 마우스 오른쪽 "처방주석입력"
  391. function fOrderGridInsertCmt() {
  392. var rdounitflag = ds_send.getColumn(0, "unitflag");
  393. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  394. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  395. var rows = grd_clcjlist.rows;
  396. if (rdounitflag == "M") {
  397. // 줄단위로 셋팅하고 처리
  398. model.setValue(rdo_unitflag.attribute("ref"), "J");
  399. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  400. grd_clcjlist.rebuild();
  401. // 단위에 에 따라 해당 행있는 특정코드 콤보 재설정
  402. for (var i=1; i< rows; i++) {
  403. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  404. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  405. if (status != "") {
  406. grd_clcjlist.rowStatus(i) = status;
  407. }
  408. if (unitflag == "M") {
  409. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M'' and cdid != 'MX999']";
  410. } else if (unitflag == "J") {
  411. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  412. }
  413. }
  414. }
  415. ds_hidden_sppij00500_rslt.clearData(); // SPPIJ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  416. ds_hidden_sppij00500_cond.clearData();
  417. for (var k=0; k < grd_ordlist.selectedRows; k++ ) {
  418. var row = grd_ordlist.selectedRow(k);
  419. var edicd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("edicd"));
  420. var calcscorcd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("snglcalcscorcd"));
  421. if (edicd) {
  422. } else {
  423. sysf_messageBox("EDI코드가 없는 경우 해당 줄단위 특정내역이", "I004"); ///EDI코드가 없는 경우 해당 줄단위 특정내역이 없습니다.
  424. return;
  425. }
  426. }
  427. var rowcnt = 1;
  428. var setrow = 0;
  429. for (var k=0; k < grd_ordlist.selectedRows; k++ ) {
  430. var row = grd_ordlist.selectedRow(k);
  431. var edicd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("edicd"));
  432. var calcscorcd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("snglcalcscorcd"));
  433. if (rows == 1) {
  434. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  435. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  436. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  437. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  438. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  439. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  440. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  441. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  442. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  443. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "X(700)");
  444. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  445. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  446. } else if (getNodesetCount(grd_clcjlist.nodeset+"[calcscorcd='"+calcscorcd+"']") == 0) {
  447. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  448. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  449. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  450. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  451. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  452. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  453. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  454. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  455. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  456. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "X(700)");
  457. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  458. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  459. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  460. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  461. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", edicd);
  462. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", "J");
  463. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "I");
  464. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", "JX999");
  465. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  466. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  467. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", "");
  468. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", "X(700)");
  469. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", "");
  470. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", calcscorcd);
  471. rowcnt = rowcnt+1;
  472. } else {
  473. for (var i=1; i<rows; i++) {
  474. var clcjedicd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd"));
  475. var spclcd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd"));
  476. if ( edicd == clcjedicd) {
  477. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  478. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  479. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  480. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd")));
  481. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("detldesc")));
  482. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  483. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  484. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  485. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("remfact")));
  486. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  487. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", "J")
  488. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  489. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  490. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("calcscorcd")));
  491. rowcnt = rowcnt+1;
  492. // 특정내역 상세 화면에 보여줄 특정내역 선택
  493. setrow = i;
  494. }
  495. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  496. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  497. if ( ds_main_list4_clcjlist.getColumn(setrow, "spclcd")) == "JX999" ) {
  498. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  499. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  500. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "U");
  501. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclcd")));
  502. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  503. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("detldesc")));
  504. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclspec")));
  505. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("remfact")));
  506. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", setrow);
  507. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("calcscorcd")));
  508. } else {
  509. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  510. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  511. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  512. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  513. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  514. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  515. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  516. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "X(700)");
  517. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  518. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  519. }
  520. }
  521. }
  522. }
  523. ds_hidden_sppij00500_rslt.clearData();
  524. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIJ00500_특정내역상세관리.xrw
  525. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  526. // 처리 건수
  527. if (rsltcnt > 0) {
  528. for(var i=rsltcnt; i>0; i--) {
  529. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  530. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  531. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  532. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  533. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  534. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  535. var newremfact = model.getValue("ds_hidden_sppij00500_rslt_list["+ i +"]_remfact ");
  536. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  537. var newdcalcscorcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "calcscorcd");
  538. var oldspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclcd");
  539. var oldspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclspec");
  540. // 특정코드 추가인 경우
  541. if (flag == "I") {
  542. var clcjrow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  543. grd_clcjlist.insertRow(clcjrow++, true,false,false);
  544. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("pid")) = ds_send.getColumn(0, "pid");
  545. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("indd")) = ds_send.getColumn(0, "indd");
  546. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("cretno")) = ds_send.getColumn(0, "cretno");
  547. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("fromdd")) = ds_send.getColumn(0, "fromdd");
  548. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("mskind")) = ds_send.getColumn(0, "mskind");
  549. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("unitflag")) = "J";
  550. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("edicd")) = edicd;
  551. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  552. //grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  553. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  554. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("remfact")) = newremfact;
  555. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  556. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("calcscorcd")) = newdcalcscorcd
  557. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclmemoflag")) = "E";
  558. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("status")) = "3";
  559. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  560. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  561. rowcnt = eval(rowcnt) + 1;
  562. for (var j = 1; j < rowcnt; j++) {
  563. //for (var j = 1; j < grd_ordlist.rows; j++) {
  564. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  565. if (edicd == clcjedicd) {
  566. ds_main_list2.setColumn( j , "text", "*");
  567. //
  568. //model.refresh();
  569. 최적화 문제로 변경 - 20080731 박창원
  570. //model.refreshpart("ds_main_list2_iscllist_text");
  571. }
  572. }
  573. // 특정코드 변경인 경우
  574. } else if (flag == "U") {
  575. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  576. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  577. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  578. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  579. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  580. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("calcscorcd")) = newdcalcscorcd;
  581. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  582. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  583. }
  584. //
  585. //model.refresh();
  586. 최적화 문제로 변경 - 20080731 박창원
  587. model.refreshpart("ds_main_list4_clcjlist");
  588. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  589. if (oldspclcd != newspclcd || oldspclspec != newspclspec || grd_clcjlist.rowstatus(row) == 4) {
  590. var rowstatus = grd_clcjlist.rowstatus(rownum);
  591. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  592. } else {
  593. grd_clcjlist.rowstatus(rownum) = 2; // 2 : update 상태로 stat를 변경한다.
  594. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "2";
  595. }
  596. }
  597. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  598. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  599. rowcnt = eval(rowcnt) + 1;
  600. for (var j = 1; j < rowcnt; j++) {
  601. //for (var j = 1; j < grd_ordlist.rows; j++) {
  602. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  603. if (edicd == clcjedicd) {
  604. ds_main_list2.setColumn( j , "text", "*");
  605. //
  606. //model.refresh();
  607. 최적화 문제로 변경 - 20080731 박창원
  608. model.refreshpart("ds_main_list2_iscllist_text");
  609. }
  610. }
  611. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  612. model.refreshpart("ds_hidden_item1_message");
  613. // 특정코드 삭제인 경우
  614. } else if (flag == "D" && rownum != "" ) {
  615. var cnt = 0;
  616. for (var j = 1; j < grd_clcjlist.rows; j++) {
  617. var clcjedicd = ds_main_list4_clcjlist.getColumn(j, "edicd");
  618. if (edicd == clcjedicd) {
  619. if (grd_clcjlist.rowstatus(j) != 4) {
  620. cnt++;
  621. }
  622. }
  623. }
  624. if (cnt > 0) {
  625. } else {
  626. grd_ordlist.valueMatrix(row, grd_ordlist.colref("text")) = "";
  627. //model.resetInstanceNode("ds_main_list2_iscllist["+ row +"]_text");
  628. }
  629. // 특정내역 Grid에서 삭제
  630. var rowstatus = grd_clcjlist.rowstatus(rownum);
  631. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  632. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  633. } else { // 0 : new, 2 : update
  634. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  635. }
  636. grd_clcjlist.row = rownum;
  637. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  638. rowcnt = eval(rowcnt) + 1;
  639. for (var j = 1; j < rowcnt; j++) {
  640. //for (var j = 1; j < grd_ordlist.rows; j++) {
  641. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  642. if (edicd == clcjedicd) {
  643. ds_main_list2.setColumn( j , "text", "");
  644. //
  645. //model.refresh();
  646. 최적화 문제로 변경 - 20080731 박창원
  647. model.refreshpart("ds_main_list2_iscllist_text");
  648. }
  649. }
  650. } // 특정 코드 상태 따른 if end
  651. } // for end
  652. var rdounitflag = ds_send.getColumn(0, "unitflag");
  653. if (rdounitflag == "-") {
  654. for (var i=1; i<grd_clcjlist.rows; i++) {
  655. var delstatus = grd_clcjlist.rowStatus(i);
  656. var delspclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  657. if (delstatus == 1 || delstatus == 3) { // 0 : new, 3 : insert & new
  658. if (delspclspec == "") {
  659. grd_clcjlist.deleteItem(i);
  660. }
  661. }
  662. }
  663. // 입력행 추가
  664. fSpclGridInsertRow();
  665. } else if (rdounitflag == "M") {
  666. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'M']";
  667. grd_clcjlist.rebuild();
  668. } else if (rdounitflag == "J") {
  669. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  670. grd_clcjlist.rebuild();
  671. }
  672. for (var i=1; i<grd_clcjlist.rows; i++) {
  673. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  674. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  675. if (status != "") {
  676. grd_clcjlist.rowStatus(i) = status;
  677. }
  678. if (unitflag == "M") {
  679. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  680. } else if (unitflag == "J") {
  681. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  682. }
  683. }
  684. //fSaveClcjList();
  685. } // 처리 건수 if end
  686. //
  687. //model.refresh();
  688. 최적화 문제로 변경 - 20080731 박창원
  689. }
  690. //재원심사 인적사항, 보험내역, 상병, 금액내역을 갖고 온다.
  691. function fGetItemInfo(paramFlag){
  692. group9.visible = false;
  693. btn_attData.attribute("class") = "btn2_letter4";
  694. btn_drginfo.visible = "hidden";
  695. // NST 관련버튼 초기화(2015.11.16 LEJ)
  696. btn_nst.enable = false;
  697. btn_nst.attribute("class") = "btn2_letter8";
  698. btn_nst.attribute("text") = "NST";
  699. // 읽기전용을 위한 변수
  700. var readonly = ds_send.getColumn(0, "readonly");
  701. // 오픈일자를 가져옴 - 하드코딩 제거 20090302 박창원, 의정부,여의도,성가,빈센트를 위해서 예외작업함 나중에 제거필요
  702. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  703. if(ipt_pid.text.length >0)
  704. {
  705. ds_main_item1_iteminfo.clearData(); ds_main_item1_iteminfo.addRow();
  706. ds_main_item18_cnstinfo.clearData(); ds_main_item18_cnstinfo.addRow();
  707. ds_main_list1_insulist.clearData();
  708. ds_main_list3_diaglist.clearData();
  709. ds_main_list2_iscllist.clearData();
  710. ds_hidden_item1.setColumn( 0, "vcode","");
  711. //grd_ordlist.refresh();
  712. ds_send.setColumn( 0, "curdd",VAL_today);
  713. dsf_makeValue( ds_send, "paramflag", "string", paramFlag);
  714. asyncSend("TRPIJ00322", "ds_send", "ds_chklist_goso", "responseHandlerTRPIJ00322");
  715. // if(!submit("TRPIJ00301")){
  716. var oParam = {};
  717. oParam.id = "TRPIJ00301";
  718. oParam.service = "bfjudgapp.InHospJudg";
  719. oParam.method = "reqGetInHospJudgInfo";
  720. oParam.inds = "req=ds_";
  721. oParam.outds = "ds_=iteminfo ds_=insulist ds_=iscllist ds_=diaglist ds_=clcjlist ds_=itemcalc ds_=insu ds_=inddlist ds_=patdnorinfo ds_=ownbmaxamt ds_=rareessc ds_=rooa ds_=emrdiagpamdiag ds_=spcldrug ds_=msglist ds_=operstat ds_=outrateinsusuppflag ds_=vcode ds_=drginfo ds_=nbwt ds_=clcjnbwt ds_=rarecancermsg ds_=obgydiag ds_=cnstinfo";
  722. oParam.async = false;
  723. oParam.callback = "cf_TRPIJ00301";
  724. tranf_submit(oParam);
  725. /*
  726. function cf_TRPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  727. if(nErrorCode < 0) return;
  728. }
  729. function cf_TRPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  730. arErrorCode.push(sSvcId, nErrorCode);
  731. }
  732. arErrorCode.pop("TRPIJ00301") > -1
  733. arErrorCode.pop("TRPIJ00301") < 0
  734. */
  735. sysf_messageBox("선택된 환자가","I004");
  736. return;
  737. }
  738. //
  739. //model.refresh();
  740. // 20091109 JHP 빈센트 병원 오류확인, fGetItemInfo에서 상단정보는 환자 정보 조회후에 바로 상단정보셋팅되게 바꾸게 요청함.
  741. // 하여 delPatientInfos(), fSetOutPatPamInfo()를 상단쪽 환자정보조회 이후로 이동시킴. 와 윤영옥, 정승우, 박창원.
  742. // 상단에 환자정보 초기화하고 기입하기 (이미 퇴원환자는 제외)
  743. delPatientInfos();
  744. fSetOutPatPamInfo();
  745. //처방조회조건부분 클리어
  746. fSetRdoReset();
  747. fGetSelectedOrderData();
  748. // 처방내역을 갖고 온다.
  749. fGetIsclList(paramFlag);
  750. // 2009.07.27 기존 상단에 제목줄 무조건 히든.
  751. // grd_insuhistory.rowhidden(0)=true;
  752. // 2009.07.27 4건이상이면 안없애고 4건이하면 없앤다.
  753. var nodecnt = ds_main_list1_insulist.rowcount;
  754. if(nodecnt < 4) {
  755. grd_insuhistory.rowhidden(0)=true;
  756. }
  757. // 수정추가, 2009.07.27 유형정보가 많을경우 스크롤바 생겨서 일수가 안보이기때문에 버튼을 두어서 많이 보게끔했다.
  758. // 다른거 손대면 일이커지니깡. ㅋㅋ
  759. // 일단 먼저 버튼에 초기화형식으로 모두 숨김해놓는다.
  760. btn_insuhistoryup.visible = false;
  761. btn_insuhistorydown.visible = false;
  762. grd_insuhistory.attribute("height") = "77";
  763. // 유형갯수에 따라서 버튼보여주고 길이체크한다.
  764. var nodecnt = ds_main_list1_insulist.rowcount;
  765. if(nodecnt >= 4) {
  766. btn_insuhistorydown.visible = true;
  767. }
  768. //상병이 한건도 없는경우 자동으로 처방상병을 갱신한다.
  769. if(grd_diaglist.rows < 2)
  770. {
  771. if(grd_diaglist.rows == 1){
  772. var chkdiag = ds_main_list3_diaglist.getColumn(1, "diagcd");
  773. if(!chkdiag){
  774. fRefreshDiag();
  775. }
  776. }
  777. }
  778. fSpclGridInsertRow();
  779. // 20080811 자동으로 상병줄추가 제외하기로함
  780. fDiagGridInsertRow();
  781. var lastjudgendid = ds_main_item1_iteminfo.getColumn(0, "lastjudgendid");
  782. var lastjudgendnm = ds_main_item1_iteminfo.getColumn(0, "lastjudgendnm");
  783. var opyn = ds_main_item1_iteminfo.getColumn(0, "opflag");
  784. var age = ds_main_item1_iteminfo.getColumn(0, "age");
  785. ds_send.setColumn( 0, "age",age);
  786. var userid = ds_hidden.getColumn(0, "userid");
  787. btn_save.enable = true;
  788. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  789. ds_hidden_item1.setColumn( 0, "chksave","N");
  790. btn_recalc.enable = true;
  791. btn_sugicalc.enable = true;
  792. btn_dclrtclose.enable = true;
  793. btn_dschclose.enable = true;
  794. btn_totjudgclose.enable = true;
  795. btn_dschclosecancel.enable = true;
  796. btn_midregist.enable = true;
  797. btn_midregistyn.enable = true;
  798. }else
  799. {
  800. sysf_messageBox("환자번호를","C001");
  801. return;
  802. }
  803. // 수술심사상태를 가져온다. -- 수술심사상태는 수술이 있는 사람만 가져온다. - 20080922 박창원
  804. //if (opyn == "Y") {
  805. // fGetOperStat();
  806. //}
  807. // 외래 필수 심사 품목 조회를 위해 요율 칼럼을 불러온다! (2012.06.01 LEJ)
  808. var brateflag = ds_main_item1_iteminfo.getColumn(0, "brateflag");
  809. ds_send.setColumn( 0, "brateflag",brateflag);
  810. fGetPatMsgYn();
  811. // 진료비 계산내역을 갖고 온다.
  812. //fGetCalc();
  813. //항목별소계
  814. //fSetItemSubTotal();
  815. // 특정내역 중 MT015, MT016 정보가 입력된 환자인지를 확인한다.
  816. fCheckSpclSpecData();
  817. // 2008. 01. 27 박지욱 추가 (처방 색깔 항 구분에 따라 흰색-회색 구분되도록 처리)
  818. //fSetOrderColorByEdiitem();
  819. //범례 색깔을 표시한다.
  820. //fSetColorSpclJudgOrder();
  821. //특정내역이 있는 처방에 'T'필드에 *표를 해준다.
  822. //fSetOrdSpclTxt();
  823. //중간청구 등록여부, 심사 마감상태, 문제환자여부를 체크하여 버튼의 색상을 셋팅해준다.
  824. fSetItemInfoSetting();
  825. // 마이그레이션된 중간청구등록이 되지 않은 데이터에 대하여 일괄적으로 중간청구 등록일을 20081003 으로 한다. - 20081003 박창원
  826. var midcflag = ds_main_item1_iteminfo.getColumn(0, "midcflag");
  827. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  828. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  829. if (midcflag == "N" && indd < opendd && fromdd == opendd) {
  830. ds_main_item1_iteminfo.setColumn( 0, "lastmdlclamdd",opendd);
  831. }
  832. // 하단의 희귀난치성 산정특례환자의 등록번호 함수로 대체함. 20091020 JHP (추가작업발생)############################################# 시작
  833. // // 희귀난치성 산정특례환자의 등록번호를 보여준다. - 20090622 박창원
  834. // var raremsg = ds_main_item1_iteminfo.getColumn(0, "raremsg");
  835. //
  836. // if (raremsg != '-') {
  837. // ds_main_item1_iteminfo.setColumn( 0, "itemmsg",raremsg);
  838. //
  839. //model.refresh();
  840. // }
  841. // 중증번호, 희귀난치번호 보여주는 방법 변경에 따른 수정.
  842. fItemRareMsg();
  843. // 하단의 희귀난치성 산정특례환자의 등록번호 함수로 대체함. 20091020 JHP (추가작업발생)############################################# 끝
  844. // 희귀난치여부 표시 - 20080811 박창원 추가
  845. var rareyn = ds_main_item1_iteminfo.getColumn(0, "rareyn");
  846. cap_rare.visible= false;
  847. cap_tb.visible= false;
  848. cap_g1.visible = false;
  849. cap_c1c.visible= false;
  850. cap_c2e.visible= false;
  851. cap_c2f.visible= false;
  852. cap_cp.visible= false;
  853. if (rareyn == "Y") {
  854. cap_rare.visible= true;
  855. }else if(rareyn == "T") {
  856. cap_tb.visible= true;
  857. }
  858. // 차상위 표시
  859. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  860. var dcuc = ds_main_item1_iteminfo.getColumn(0, "dcuc");
  861. if (cfe == "C") {
  862. cap_c1c.visible= true;
  863. } else if (cfe == "E") {
  864. cap_c2e.visible= true;
  865. } else if (cfe == "F") {
  866. cap_c2f.visible= true;
  867. } else if (dcuc =="G") {
  868. cap_g1.visible = true;
  869. }
  870. // 완화의료 시범사업...20091228 정승우 환자구분추가
  871. pm_flag.visible=false;
  872. var calcscorrecalflag = ds_main_item1_iteminfo.getColumn(0, "calcscorrecalflag");
  873. if (calcscorrecalflag == "7" || calcscorrecalflag == "8") {
  874. pm_flag.visible=true;
  875. }
  876. var cpflag = ds_main_item1_iteminfo.getColumn(0, "cpyn");
  877. if (cpflag == "Y") {
  878. cap_cp.visible=true;
  879. }
  880. //메세지 클리어
  881. ds_hidden_item1.setColumn( 0, "message","");
  882. // 20091109 JHP 심사메모버튼으로 변경시 case도 심사메모에 해당하는 것으로 변경해야함.
  883. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  884. if (sixtimyn == "Y"){
  885. btn_clspcd.selected = true;
  886. model.toggle("case_spclspec");
  887. } else {
  888. btn_judgrmk.selected = true;
  889. model.toggle("case_judgrmemo");
  890. }
  891. ds_hidden_item1.setColumn( 0, "snglcalcscorcd", "");
  892. ds_hidden_item1.setColumn( 0, "edicd", "");
  893. //분만정보 체크
  894. fCheckBorn();
  895. //수술여부 체크
  896. fCheckOper();
  897. //퇴원메모여부 체크
  898. fCheckDschMemo();
  899. //공여자 수혜자 체크
  900. fCheckDnorPat();
  901. // 수정추가 20090813 외래요율환자 일경우 보험, 보조유형 정보가 맞는지 확인하여 체크
  902. fOutRateInsuSuppflag();
  903. // 특이환자 버튼 설정 - 20080923 박창원
  904. if (ds_main_item1_iteminfo.getColumn(0, "pamprobjudgflag") == "Y") {
  905. btn_patspcfyn.attribute("background-image") = "../../.._com_commonweb_images_icon_btn_s.gif"; // 주황색
  906. } else {
  907. btn_patspcfyn.attribute("background-image") = "../../.._com_commonweb_images_icon_btn.gif"; // 파란색
  908. }
  909. // 자보한도액 초과자 체크 : 자보환자일때만 자보발생금액 버튼 활성화 초과자는 자보발생금액 버튼 색깔변경 - 20080923 박창원
  910. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  911. var suppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  912. var suppkindflag = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  913. if ( insukind == "31" && suppkind == "18") {
  914. var paylimityn = ds_main_item1_iteminfo.getColumn(0, "paylimityn");
  915. // 자보발생금액 버튼 설정
  916. if (paylimityn == "Y") {
  917. btn_autolimit.attribute("background-image") = "../../.._com_commonweb_images_icon_btn_s.gif"; // 주황색
  918. } else {
  919. btn_autolimit.attribute("background-image") = "../../.._com_commonweb_images_icon_btn.gif"; // 파란색
  920. }
  921. } else { // 자보자손이 아닐경우 파란색으로 - 20081108 박창원
  922. btn_autolimit.attribute("background-image") = "../../.._com_commonweb_images_icon_btn.gif"; // 파란색
  923. }
  924. // 20091016 JHP 요청번호8558 진료상병과심사상병체크 ############################################################################################ 시작
  925. fCheckEmrDiagPamDiag();
  926. // 20091016 JHP 요청번호8558 진료상병과심사상병체크 ############################################################################################ 끝
  927. // 사망환자 메세지 20090602 박창원
  928. var dethdt = ds_main_item1_iteminfo.getColumn(0, "dethdt");
  929. var maxexecdd = ds_main_item1_iteminfo.getColumn(0, "maxexecddt");
  930. var dethdd = dethdt.substr(0,8);
  931. if (dethdt != '-') {
  932. if (maxexecdd > dethdd) {
  933. sysf_messageBox("사망일자 이후 실시처방이 있습니다. 정리 후 ","C003");
  934. }
  935. else {
  936. sysf_messageBox("사망환자[사망시간 "+ dethdt.substr(0,4) + ":" + dethdt.substr(4,2) + ":" + dethdt.substr(6,2) + " " + dethdt.substr(8,2) + ":" + dethdt.substr(10,2) + "]", "I005");
  937. // 20090921 수정추가 : JHP inpt 사망정보 존재하면 진료결과의 값을 사망으로바꾸어서 저장할때 저장되게끔한다..
  938. var dschdd = ds_main_item1_iteminfo.getColumn(0, "dschdd");
  939. var ordrslt = ds_main_item1_iteminfo.getColumn(0, "ordrslt");
  940. // 퇴원일자와 사망일자가 동일할 때만 진료결과 체크한다.
  941. if(dethdd == dschdd && ordrslt != "4"){
  942. ds_main_item1_iteminfo.setColumn( 0, "ordrslt","4");
  943. }
  944. }
  945. }
  946. // 당일외래진료후 입원환자 및 덤프된 원내,원외 약제 체크 알럿 - 20090616 박창원
  947. var todayoutyn = ds_main_item1_iteminfo.getColumn(0, "todayoutyn");
  948. var dumpinyn = ds_main_item1_iteminfo.getColumn(0, "dumpinyn");
  949. var dumpoutyn = ds_main_item1_iteminfo.getColumn(0, "dumpoutyn");
  950. var lastjudgdt = ds_main_item1_iteminfo.getColumn(0, "lastjudgdt");
  951. var dumpclamkeyexistyn = ds_main_item1_iteminfo.getColumn(0, "dumpclamkeyexistyn");
  952. var serdiagfromdd = ds_main_item1_iteminfo.getColumn(0, "serdiagfromdd"); //중증시작일자
  953. if (todayoutyn == "Y" && lastjudgdt == "-") {
  954. if (dumpinyn == "N" && dumpoutyn == "N") {
  955. sysf_messageBox("당일 외래진료 후 입원처리된", "I005");
  956. } else if (dumpinyn == "Y" && dumpoutyn == "N") {
  957. sysf_messageBox("당일 외래진료 후 입원처리되고 원내 약제 덤프처방이 있는", "I005");
  958. } else if (dumpinyn == "N" && dumpoutyn == "Y") {
  959. sysf_messageBox("당일 외래진료 후 입원처리되고 원외 약제 덤프처방이 있는", "I005");
  960. }else if (dumpinyn == "Y" && dumpoutyn == "Y") {
  961. sysf_messageBox("당일 외래진료 후 입원처리되고 원내_원외 약제 덤프처방이 있는", "I005");
  962. }
  963. }
  964. // 6시간미만여부체크 - 20080722 박창원
  965. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  966. if (sixtimyn == "Y" && indd < serdiagfromdd) {
  967. sysf_messageBox("중증등록일과 입원일자가 다르므로 재원 이력 분리 후 중증 적용 바랍니다", "I005");
  968. }
  969. // 본인부담상한제 대상자체크 - 200800808 박창원
  970. var ownbmaxyn = ds_main_item8_ownbmaxamt.getColumn(0, "ownbmaxyn");
  971. if (ownbmaxyn == "Y") {
  972. sysf_messageBox("본인부담상한제 대상", "I005");
  973. }
  974. var ownbmaxgradeflag = ds_main_item1_iteminfo.getColumn(0, "ownbmaxgradeflag");
  975. var ownlimmitamt = ds_main_item1_iteminfo.getColumn(0, "ownlimmitamt"); // 본인부담 상한 구분에 따른 상한기준액
  976. var suppkindflag = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  977. var ownbmaxgrade = ds_main_item1_iteminfo.getColumn(0, "ownbmaxgrade"); // 보험유형과 재원이력의 본인부담 상한 구분 비교
  978. // 수정추가 : 20090820 : JHP : 상한제 차등구분(iphs의 ownbmaxgradeflag)을 확인하여 보조유형 차상위 환자에 대해서는 상한제 차등구분이 200만원 코드인 3인지 확인한다.
  979. // 2011.01.17 경북대병원 차상위 상한금액구분 메시지 삭제요청
  980. /*
  981. if(suppkindflag == '32' ||suppkindflag == '33' ||suppkindflag == '34' ||suppkindflag == '35' ||suppkindflag == '36' ||suppkindflag == '37' ||suppkindflag == '38' ||suppkindflag == '39' ||
  982. suppkindflag == '40' ||suppkindflag == '41' ||suppkindflag == '42' ||suppkindflag == '43' ||suppkindflag == '44' ||suppkindflag == '45' ||suppkindflag == '46'){
  983. if(ownbmaxgradeflag != "3"){
  984. sysf_messageBox("차상위 환자입니다. 현재 상한제금액구분이 200만원이 아니므로 \n원무팀에 요청하시어 상한제금액구분을 변경","I008");
  985. }
  986. }
  987. */
  988. // 응급실을 통하여 소아과로 입원한 6세미만 환자는 유형을 변경할 것인지 알럿을 띄워준다.
  989. // 현재과(PD),입원경로(응급실),6세미만, 보험유형은 보험과 보호만, 재원중인 환자로 보조유형이 6세미만이 아닌 환자를 조건으로함 - 20081007 박창원
  990. // 입원경로 조건을 없앰 - 20081013 박창원
  991. // 신생아 추가 - 20081013 박창원
  992. var age = parseInt(ds_main_item1_iteminfo.getColumn(0, "age"));
  993. var inpath = ds_main_item1_iteminfo.getColumn(0, "inpath");
  994. var orddeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  995. var rrgstno = ds_main_item1_iteminfo.getColumn(0, "rrgstno");
  996. var canceryn = "N"; // 6세미만과 등록암이 공존하지 못하도록 20090602 박창원
  997. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  998. var babyyn ="N";
  999. var end6yn = "N";
  1000. var brthdd = "20" + rrgstno.substr(0,6);
  1001. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  1002. // 신생아를 구별지음
  1003. if (indschacptstat != 'D' && dumpclamkeyexistyn == "Y") {
  1004. sysf_messageBox("외래 자료 수집이 된 재원 내 실시처방이 있습니다. 외래 사후 자료를 생성 삭제한 후 Dump처리","I008");
  1005. }
  1006. //응급실 관리료 여부 체크
  1007. var nog3reasnyn = ds_main_item1_iteminfo.getColumn(0, "nog3reasnyn");
  1008. if (nog3reasnyn == "Y") {
  1009. sysf_messageBox("응급 의료관리료 미발생 환자입니다.","I007");
  1010. }
  1011. if (rrgstno.substr(7,1) == "3" || rrgstno.substr(7,1) == "4" || rrgstno.substr(7,1) == "7" || rrgstno.substr(7,1) == "8" && (cfe != "E" && cfe != "F")) {
  1012. var interval = utlf_getDateInterval(brthdd,indd);
  1013. if (interval < "28") {
  1014. babyyn = "Y";
  1015. }
  1016. }
  1017. // 6세미만 생일 여부를 판단함
  1018. if ((rrgstno.substr(7,1) == "3" || rrgstno.substr(7,1) == "4" || rrgstno.substr(7,1) == "7" || rrgstno.substr(7,1) == "8") && age <= 6) {
  1019. var curdd = VAL_today.substr(2,6);
  1020. brthdd = brthdd.substr(2,6);
  1021. if (age == 6) {
  1022. if (brthdd >= curdd) {
  1023. end6yn = "N";
  1024. } else if (brthdd < curdd) {
  1025. end6yn = "Y";
  1026. }
  1027. } else if(age < 6) {
  1028. end6yn = "N";
  1029. } else if (age > 6) {
  1030. end6yn ="Y";
  1031. }
  1032. }
  1033. //35세 이상 고위험 임신부 관련 메세지 (2015.07.29 LEJ)
  1034. if (orddeptcd == "2100000000" && age >= 35 ){
  1035. if (ds_main_item17_obgydiag.getColumn(0, "obgydiagyn") == "Y"){ //임신 상병 체크 추가 (2015.10.05 LEJ)
  1036. sysf_messageBox("35세 이상 고위험 임신부 입원진료 내역입니다!!","I007");
  1037. }
  1038. }
  1039. if ( (insukind == "11" || insukind == "21" || insukind == "22") && suppkind != "31" && !(insukind == "22" && suppkind == "08") ){ //20100318 정승우 신생아유형은 메세지 뜨지 않도록 적용하고 버튼도 보이지 않도록
  1040. //산정특례여부 체크
  1041. fCheckEssc();
  1042. //산정특례 + 정상요율 + 퇴원확정인 경우는 메시지t처리 한다.
  1043. var chkBtn = "False";
  1044. if(btn_esscdiag.visible){
  1045. chkBtn = "True";
  1046. }else{
  1047. chkBtn = "False";
  1048. }
  1049. // 희귀난치성 산정특례 체크 - 20090622 박창원
  1050. var rareesscyn = ds_main_item12_rareessc.getColumn(0, "rareesscyn");
  1051. //20100318 정승우 메세지 정리 보조유형이 50이면 띄우지 않는다.
  1052. //if (chkBtn == "True" && rareesscyn == "Y" && suppkindflag != "50") {
  1053. // sysf_messageBox("희귀난치성 산정특례", "I005");
  1054. // 희귀난치성 산정특례 환자의 경우 메세지후 return때문에 진행안되는 부분 comment 처리 - 20100221 박창원
  1055. //return;
  1056. //}
  1057. var rare = ds_main_list1_insulist.lookupExpr("rare == 'H'", "rare");
  1058. if (rare.length > 0 && (indschacptstat == 'A' || indschacptstat == 'T') ){
  1059. sysf_messageBox("희귀대불 환자입니다. 자격", "I007");
  1060. }
  1061. if (insukind == "11") {
  1062. if (ownbmaxgrade == 'Y') {
  1063. sysf_messageBox("환자의 본인부담 상한구분이 보험유형 기준자료의 상한구분과 일치하지 않습니다. ", "I007");
  1064. }
  1065. else {
  1066. // 연도별 분리 안 된 이력 중 본인부담 상한액 초과 환자 메세지 발생
  1067. var todd = ds_main_item1_iteminfo.getColumn(0, "todd");
  1068. var dschnotidt = ds_main_item1_iteminfo.getColumn(0, "dschnotidt");
  1069. var curyear = VAL_today.substr(0,4);
  1070. var fromyear = fromdd.substr(0,4);
  1071. var toyear = todd.substr(0,4);
  1072. if ( todd == "99991231" ) {
  1073. if ( dschnotidt.substr(0,8) == "99991231" || dschnotidt.substr(0,8) == "" ) {
  1074. toyear = curyear ;
  1075. }
  1076. else {
  1077. toyear = dschnotidt.substr(0,4) ;
  1078. }
  1079. }
  1080. if ( fromyear != toyear && cfe != 'F' ) {
  1081. if(parseInt(ds_main_item2_itemcalc.getColumn(0, "ownbpayamt")) > ownlimmitamt) {
  1082. sysf_messageBox("연도별 분리 되지 않은 본인부담상한제 환자입니다. \n재원 분리 ", "I007");
  1083. }
  1084. }
  1085. else {
  1086. //본임부담상한제 체크 : 기준 금액 이상이면 메시지 발생.
  1087. if ((indschacptstat == 'A' || indschacptstat == 'T')) {
  1088. if(parseInt(ds_main_item2_itemcalc.getColumn(0, "ownbpayamt")) > ownlimmitamt) {
  1089. sysf_messageBox("본인부담상한제 환자", "I009");
  1090. }
  1091. }
  1092. }
  1093. }
  1094. }
  1095. // 중증수술 처방이 있을경우 상병이 맞지 않으면 Alert - 20080908 박창원
  1096. var chkSuppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  1097. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  1098. var v191prcpyn = ds_main_item1_iteminfo.getColumn(0, "v191prcpyn");
  1099. var v192prcpyn = ds_main_item1_iteminfo.getColumn(0, "v192prcpyn");
  1100. var v191diagyn = ds_main_item1_iteminfo.getColumn(0, "v191diagyn");
  1101. var v192diagyn = ds_main_item1_iteminfo.getColumn(0, "v192diagyn");
  1102. var vcode = ds_hidden_item1.getColumn(0, "vcode");
  1103. // 20090602 개심개두는 입원요율만 적용되게
  1104. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  1105. // 개심개두 상병 메세지 통합 - 20081010 박창원
  1106. var opmessageyn = "N";
  1107. if (v191prcpyn == "Y" && chkSuppkind != "05" && chkSuppkind != "32" && chkSuppkind != "34" && sixtimyn == "N") { // 20090325 차상위 2종추가
  1108. //if (v191diagyn == "N") { // 개심_개두 수술인 경우 상병과 상관없이 보조유형 적용 안 되면 메세지 띄움 (2015.02.10 LEJ)
  1109. sysf_messageBox("중증해당 수술이 있습니다. 상병을", "I007");
  1110. opmessageyn = "Y";
  1111. //}
  1112. }
  1113. if (v192prcpyn == "Y" && chkSuppkind != "05" && chkSuppkind != "32" && chkSuppkind != "34") { // 20090325 차상위 2종추가
  1114. //if (v192diagyn == "N" && opmessageyn == "N") { // 개심_개두 수술인 경우 상병과 상관없이 보조유형 적용 안 되면 메세지 띄움 (2015.02.10 LEJ)
  1115. sysf_messageBox("중증해당 수술이 있습니다. 상병을", "I007");
  1116. //}
  1117. }
  1118. // 개두술 관련 적용 약제 추가에 따른 재원심사 알림 메세지 [입퇴 + 외퇴] : (해당 약제 + 해당 상병)이면서 보조유형이 개두술이 아닌 경우 메세지 (2015.02.10 LEJ)
  1119. if (v191prcpyn == "D" && v191diagyn == "Y" && chkSuppkind != "05" && chkSuppkind != "39") {
  1120. sysf_messageBox("개심_개두 관련 약제가 있습니다. 보조 유형을", "I007");
  1121. opmessageyn = "Y";
  1122. }
  1123. // 개심술 관련 적용 약제 추가에 따른 재원심사 알림 메세지 [입퇴 + 외퇴] : (해당 약제 + 해당 상병)이면서 보조유형이 개심술이 아닌 경우 메세지 (2015.02.10 LEJ)
  1124. if (v192prcpyn == "D" && v192diagyn == "Y" && chkSuppkind != "05" && chkSuppkind != "39") {
  1125. sysf_messageBox("개심_개두 관련 약제가 있습니다. 보조 유형을", "I007");
  1126. opmessageyn = "Y";
  1127. }
  1128. if(insukind == "11" && chkBtn == "True" && chkSuppkind != "05" && chkSuppkind != "06" && chkSuppkind != "32" && chkSuppkind != "39" && cfe != "C" && chkSuppkind != "40" && chkSuppkind != "50" ){ //20090325 차상위 2종추가
  1129. sysf_messageBox("중증정보가 존재하는", "I005");
  1130. canceryn = "Y";
  1131. }
  1132. if( (insukind == "21" || insukind == "22") && chkBtn == "True" && chkSuppkind != "05" && chkSuppkind != "06" && chkSuppkind != "32" && cfe != "C" && chkSuppkind != "39" && chkSuppkind != "40" && chkSuppkind != "50" ){ //20090325 차상위 2종추가
  1133. if (!(sixtimyn == "N" && end6yn == "N" && babyyn == "N" && age <= 6)) {
  1134. sysf_messageBox("중증정보가 존재하는", "I005");
  1135. }
  1136. }
  1137. } else {
  1138. btn_esscdiag.visible= false;
  1139. }
  1140. // 6시간 미만여부 추가 - 20081105 박창원
  1141. // 진료과 제한 조건 삭제 - 20090219 박창원
  1142. // 조건 삭제 20091008 JHP 박창원 요청.( insukind == "21" || insukind == "22" )
  1143. if (sixtimyn == "N" && babyyn == "Y" &&age == 0 && indd >= "20080101" && (insukind == "11") && suppkind != "31" && cfe != "C" && readonly != "Y") {
  1144. var msg = sysf_messageBox("입원한 신생아 입니다. 신생아 유형을 적용","S001");
  1145. if (msg == 6) { // 신생아 요율을 적용한다.
  1146. Insuchange("31");
  1147. }
  1148. }
  1149. // 6시간 미만여부 추가 - 20081105 박창원
  1150. // 진료과 제한조건 삭제 - 20080219 박창원
  1151. // 희귀난치일때 6세미만 메세지 적용안함 - 20100630 박창원
  1152. if (insukind == "11") {
  1153. var opchkyn = ds_main_item11_drginfo.getColumn(0, "opchkyn");
  1154. var drgmchkyn = ds_main_item11_drginfo.getColumn(0, "drgmchkyn");
  1155. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  1156. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  1157. var indaycnt = parseInt(ds_main_list1_insulist.lookupExpr("fromdd == '" + fromdd + "'", "indaycnt"));
  1158. if (opchkyn == "Y" && indaycnt <= 30 ) {
  1159. btn_drginfo.visible = true;
  1160. } else {
  1161. btn_drginfo.visible = "hidden";
  1162. }
  1163. if (opchkyn == "Y" && (indschacptstat == 'A' || indschacptstat == 'T') && indaycnt <= 30 ) {
  1164. sysf_messageBox("DRG 대상입니다.","I");
  1165. } else if ( opchkyn == "Y" && (indschacptstat == 'A' || indschacptstat == 'T') && indaycnt > 30 ) {
  1166. sysf_messageBox("DRG 대상입니다만 재원일수 초과 입니다.","I");
  1167. }
  1168. var zdiagcd = ds_main_list3_diaglist.lookupExpr("diagcd == '" + Z201 + "'", "seqno");
  1169. if (suppkind == "00" && zdiagcd != "") {
  1170. sysf_messageBox("잠복결핵 대상입니다.","I");
  1171. }
  1172. if (sixtimyn == "N" && end6yn == "N" && canceryn == "N" && babyyn == "N" && age <= 6 && suppkind != "08" && suppkind != "41" && suppkind != "06"
  1173. && cfe != "C" && suppkind != "40" && readonly != "Y"
  1174. && suppkind != "46" && suppkind != "50" && suppkind != "51" && dschjudgprcsstat != "C") {
  1175. var msg = sysf_messageBox("6세미만 환자입니다. 6세미만 유형을 적용","S001");
  1176. if (msg == 6) { // 6세미만 요율을 적용한다.
  1177. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  1178. if (cfe == "E" || cfe == "F") {
  1179. var suppkind = "41";
  1180. } else {
  1181. var suppkind = "08";
  1182. }
  1183. Insuchange(suppkind);
  1184. }
  1185. }
  1186. }
  1187. if (insukind == "21" || insukind == "22"){
  1188. if (sixtimyn == "N" && end6yn == "N" && babyyn == "N" && age <= 6 && suppkind != "08" && suppkind != "41" && readonly != "Y" ) {
  1189. var msg = sysf_messageBox("6세미만 환자입니다. 6세미만 유형을 적용","S001");
  1190. if (msg == 6) { // 6세미만 요율을 적용한다.
  1191. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  1192. var suppkind = "08";
  1193. if (cfe == "E" || cfe == "F") {
  1194. suppkind = "41";
  1195. }
  1196. Insuchange(suppkind);
  1197. }
  1198. }
  1199. }
  1200. if (insukind == "31"){
  1201. var paygrntyn = ds_main_item1_iteminfo.getColumn(0, "paygrntyn");
  1202. if (paygrntyn != "Y") {
  1203. sysf_messageBox("자동차보험 지급보증번호 누락입니다.","I007");
  1204. }
  1205. }
  1206. //진료결과 체크 - 중간청구인경우 : 계속, 퇴원인경우 : 퇴원
  1207. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  1208. var ordrslt = ds_main_item1_iteminfo.getColumn(0, "ordrslt");
  1209. if(dschnotiyn == "Y"){
  1210. if(ordrslt == "" || ordrslt == "-" || ordrslt == "1"){
  1211. if(ordrslt != "4"){
  1212. ds_main_item1_iteminfo.setColumn( 0, "ordrslt","9");
  1213. }
  1214. }
  1215. }else{
  1216. if(ordrslt == "" || ordrslt == "-"){
  1217. ds_main_item1_iteminfo.setColumn( 0, "ordrslt","1");
  1218. }
  1219. }
  1220. //응급 6시간 미만 체크를 위하여 넣어 둔다.
  1221. var ordtype = ds_main_item1_iteminfo.getColumn(0, "ordtype");
  1222. var brateflag = ds_main_item1_iteminfo.getColumn(0, "brateflag");
  1223. ds_send.setColumn( 0, "ordtype",ordtype);
  1224. ds_send.setColumn( 0, "brateflag",brateflag);
  1225. //본인부담율이 20%가 아닌 경우 상단정보에 보조유형정보를 붉은 색으로 표시해준다.
  1226. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  1227. var payownbrate = ds_main_item1_iteminfo.getColumn(0, "ownrate");
  1228. //보험인경우 본인부담율 20%가 아니면 붉은색으로 표시해준다.
  1229. if(insukind == "11"){
  1230. if(payownbrate == "20"){
  1231. opt_suppkind.attribute("class") = "output_fix";
  1232. cmb_suppkind.attribute("class") = "combo_default";
  1233. opt_ownrate.attribute("class") = "output_fix";
  1234. }else{
  1235. opt_suppkind.attribute("color") = "#ff0066";
  1236. cmb_suppkind.attribute("color") = "#ff0066";
  1237. opt_ownrate.attribute("color") = "#ff0066";
  1238. }
  1239. //보호 2종인경우 본인부담율 15%가 아니면 붉은색으로 표시해준다.
  1240. }else if(insukind == "22"){
  1241. if(payownbrate == "15"){
  1242. opt_suppkind.attribute("class") = "output_fix";
  1243. cmb_suppkind.attribute("class") = "combo_default";
  1244. opt_ownrate.attribute("class") = "output_fix";
  1245. }else{
  1246. opt_suppkind.attribute("color") = "#ff0066";
  1247. cmb_suppkind.attribute("color") = "#ff0066";
  1248. opt_ownrate.attribute("color") = "#ff0066";
  1249. }
  1250. //나머지는 정상 색깔로 표시해 준다.
  1251. }else{
  1252. opt_suppkind.attribute("class") = "output_fix";
  1253. cmb_suppkind.attribute("class") = "combo_default";
  1254. opt_ownrate.attribute("class") = "output_fix";
  1255. }
  1256. // 마이그레이션 환자는 조회만 되게 한다. - 20080819 박창원
  1257. var mig = ds_main_item1_iteminfo.getColumn(0, "mig");
  1258. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  1259. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  1260. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  1261. var dschdclrtyn = ds_main_item1_iteminfo.getColumn(0, "dschdclrtyn");
  1262. // NST 상태 표시 추가 ( 2015.11.16 LEJ)
  1263. btn_nst.enable = false;
  1264. btn_nst.attribute("class") = "btn2_letter8";
  1265. btn_nst.attribute("text") = "NST";
  1266. var cnststat = ds_main_item18_cnstinfo.getColumn(0, "cnststat");
  1267. var nstcnt = ds_main_item18_cnstinfo.getColumn(0, "nstcnt");
  1268. if (cnststat != "-" && cnststat != ""){
  1269. btn_nst.enable = true;
  1270. if (nstcnt >= "2" && nstcnt != ""){
  1271. btn_nst.attribute("text") = "NST : " + cnststat + "(" + nstcnt + ")" ;
  1272. } else {
  1273. btn_nst.attribute("text") = "NST : " + cnststat;
  1274. }
  1275. if (cnststat == "회신" || cnststat == "회신확정"){
  1276. btn_nst.attribute("color") = "#ff0066";
  1277. }
  1278. }
  1279. // 심사중
  1280. if (readonly == "Y") {
  1281. btn_save.enable = false;
  1282. btn_recalc.enable = false;
  1283. btn_sugicalc.enable = false;
  1284. btn_dclrtclose.enable = false;
  1285. btn_dschclose.enable = false;
  1286. btn_totjudgclose.enable = false;
  1287. btn_dschclosecancel.enable = false;
  1288. btn_midregist.enable = false;
  1289. btn_midregistyn.enable = false;
  1290. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  1291. ds_hidden_item1.setColumn( 0, "chksave","Y");
  1292. }else if (indschacptstat == "D") { // 퇴원이 완료되면 세부계산내역 저장이 안되게 20080911
  1293. sysf_messageBox("퇴원 처리된 환자입니다. 요율변경 및 계산내역 수정은", "E001");
  1294. btn_save.enable = false;
  1295. btn_recalc.enable = false;
  1296. btn_sugicalc.enable = false;
  1297. btn_dclrtclose.enable = false;
  1298. btn_dschclose.enable = false;
  1299. btn_totjudgclose.enable = false;
  1300. btn_dschclosecancel.enable = false;
  1301. btn_midregist.enable = false;
  1302. btn_midregistyn.enable = false;
  1303. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  1304. ds_hidden_item1.setColumn( 0, "chksave","Y");
  1305. } else if (indschacptstat == "T" && (dschjudgprcsstat == "C" || dschjudgprcsstat == "E" || dschjudgprcsstat == "G" ) ) { // 가퇴원 일단추가 가퇴원은 재 판단해서 블로킹 로직을 만든다. - 20081005 박창원
  1306. sysf_messageBox("가퇴원 처리가된 마감 환자입니다. 요율변경 및 계산내역 수정은", "E001");
  1307. btn_save.enable = false;
  1308. btn_recalc.enable = false;
  1309. btn_sugicalc.enable = false;
  1310. btn_dclrtclose.enable = false;
  1311. btn_dschclose.enable = false;
  1312. btn_totjudgclose.enable = false;
  1313. btn_dschclosecancel.enable = true;
  1314. btn_midregist.enable = false;
  1315. btn_midregistyn.enable = false;
  1316. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  1317. ds_hidden_item1.setColumn( 0, "chksave","Y");
  1318. } else if (dschjudgprcsstat == "B" ) {
  1319. if ( lastjudgendid != userid ) {
  1320. sysf_messageBox(lastjudgendnm + "님이 퇴원심사 진행중입니다. 저장은", "E001");
  1321. btn_save.enable = false;
  1322. btn_recalc.enable = false;
  1323. btn_sugicalc.enable = false;
  1324. btn_dclrtclose.enable = false;
  1325. btn_dschclose.enable = false;
  1326. btn_totjudgclose.enable = false;
  1327. btn_dschclosecancel.enable = false;
  1328. btn_midregist.enable = false;
  1329. btn_midregistyn.enable = false;
  1330. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  1331. ds_hidden_item1.setColumn( 0, "chksave","Y");
  1332. } else {
  1333. btn_dschclosecancel.enable = false;
  1334. if (dschnotiyn == "Y") { // 퇴원확정인 경우 예고 심사 비활성
  1335. btn_dclrtclose.enable = false;
  1336. } else if (dschdclrtyn == "Y" && dschnotiyn == "N") { // 퇴원예고인 경우 퇴원마감, 통합마감 비활성
  1337. btn_dschclose.enable = false;
  1338. btn_totjudgclose.enable = false;
  1339. }
  1340. }
  1341. // 심사완료, 통합심사완료
  1342. } else if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E" || dschjudgprcsstat == "G" ) {
  1343. sysf_messageBox("퇴원마감이나 통합심사마감 처리가된 환자입니다. 요율변경 및 계산내역 수정은", "E001");
  1344. btn_save.enable = false;
  1345. btn_recalc.enable = false;
  1346. btn_sugicalc.enable = false;
  1347. btn_dclrtclose.enable = false;
  1348. btn_dschclose.enable = false;
  1349. btn_totjudgclose.enable = false;
  1350. btn_midregist.enable = false;
  1351. btn_midregistyn.enable = false;
  1352. btn_dschclosecancel.enable = true;
  1353. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  1354. ds_hidden_item1.setColumn( 0, "chksave","Y");
  1355. } else if (dschjudgprcsstat == "A" && dschnotiyn == "N") {
  1356. btn_dschclose.enable = false;
  1357. btn_totjudgclose.enable = false;
  1358. btn_dschclosecancel.enable = false;
  1359. if (dschdclrtyn == "N") { // 퇴원예고 안 된 경우 예고심사 비활성
  1360. btn_dclrtclose.enable = false;
  1361. }
  1362. } else if (dschjudgprcsstat == "A" && dschnotiyn == "Y") {
  1363. btn_dschclosecancel.enable = false;
  1364. btn_dclrtclose.enable = false;
  1365. //} else if (orddeptcd == "2280000000" && dschnotiyn == "Y" && sixtimyn == "Y" ) { // 응급실환자의 경고 alert 추가 - 20081003 박창원
  1366. // 20091019 JHP 번호가 하드코딩되어있어서 삭제함 기존("... 응급수납 T.1813으로 연락후...") 번호삭제 - 이미숙 요청
  1367. // var msg = sysf_messageBox("수납이 가능한 상태입니다.(응급실은 무심사 퇴원 가능함),처방수정을 하시려면 반드시 응급수납으로 연락후 처리하시기 바랍니다. 처방 검색만 하시려면(수정불가)","S001");
  1368. // if (msg == 6) {
  1369. // btn_save.enable = false;
  1370. // btn_recalc.enable = false;
  1371. // btn_sugicalc.enable = false;
  1372. // btn_dschclose.enable = false;
  1373. // btn_totjudgclose.enable = false;
  1374. // btn_midregist.enable = false;
  1375. // btn_midregistyn.enable = false;
  1376. // btn_dschclosecancel.enable = true;
  1377. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  1378. // ds_hidden_item1.setColumn( 0, "chksave","Y");
  1379. // }
  1380. }
  1381. //if (indschacptstat == "T" && (dschjudgprcsstat == "A" || dschjudgprcsstat == "B" || dschjudgprcsstat == "F") ) { // 가퇴원 메세지 추가 - 20081005 박창원
  1382. // sysf_messageBox("가퇴원 환자","I009");
  1383. //}
  1384. // AS-IS 데이터가 비정상적인 액팅이 되었을때 alert - 20081013 박창원 - 한시적 루틴
  1385. var abnormalactingyn = ds_main_item1_iteminfo.getColumn(0, "abnormalactingyn");
  1386. var abnormalexip = ds_main_item1_iteminfo.getColumn(0, "abnormalexip");
  1387. var abnormaliscl = ds_main_item1_iteminfo.getColumn(0, "abnormaliscl");
  1388. var indate = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1389. var spcdrugyn = ds_main_item1_iteminfo.getColumn(0, "spcdrugyn") ;
  1390. var dcuc = ds_main_item1_iteminfo.getColumn(0, "dcuc");
  1391. var jinyn = ds_main_item1_iteminfo.getColumn(0, "jinyn");
  1392. var erjinyn = ds_main_item1_iteminfo.getColumn(0, "erjinyn");
  1393. if (abnormalactingyn == "Y" && indate < opendd) {
  1394. sysf_messageBox("AS-IS 처방이 비정상적으로 TO-BE 기간에 시행된 처방이 있습니다.","I007");
  1395. }
  1396. // 특수조제료 발생 처방이 있는데 주사제무균조제료가 발생하지 않았을 경우 메세지 - 20081108 박창원
  1397. // 계산내역에 IJ0041 <> ast.adbmdrug - pcldrug ='D'
  1398. // IJ0042 <> ast.adbmdrug - pcldrug in ('B','T')
  1399. // IJ0043 <> ast.adbmdrug - pcldrug ='C' 계산내역에 주사무균조제료 갯수와 처방갯수가 틀리면 메시지 처리
  1400. if (spcdrugyn == "Y" && dschnotiyn == "Y") {
  1401. sysf_messageBox("주사제 무균조제료 발생 오류입니다.","I007");
  1402. }
  1403. // 실시처방과 계산내역이 맞지 않을경우 Alert - 20081110 박창원
  1404. if ( (abnormaliscl == "Y" || abnormalexip == "Y") && dschnotiyn == "Y")
  1405. {
  1406. sysf_messageBox("실시내역과 계산내역이 일치하지 않습니다. 재계산 후.","I007");
  1407. }
  1408. // 미시행 처방이 있을 경우 alert - 20081013 박창원
  1409. if (dschnotiyn == "Y" && fChkClose() == false) {
  1410. sysf_messageBox("미 시행된 처방이 있습니다.","I007");
  1411. }
  1412. if (dcuc == "G") {
  1413. sysf_messageBox("긴급지원 대상자 입니다.","I007");
  1414. }
  1415. // 동일과 내 1회 이상 진찰료(응급 전문의진찰료 포함) 발생 시 메세지 (2016.01.14 LEJ)
  1416. if (jinyn == "Y") {
  1417. sysf_messageBox("동일과 내 1회 이상 진찰료(응급 전문의진찰료 포함)가 발생했습니다.","I007");
  1418. }
  1419. // KTAS 4,5등급 환자에 응급 전문의진찰료 발생 시 메세지 (2016.01.14 LEJ)
  1420. if (erjinyn == "Y") {
  1421. sysf_messageBox("KTAS 4,5등급 환자에 응급 전문의진찰료가 발생했습니다.","I007");
  1422. }
  1423. // 명단위, 줄단위에 따라 특정코드 콤보 리스트 변경 및 특정코드에 해당하는 상세설명 적용
  1424. var p0117list = instance1.selectSingleNode("ds_init_P0117list");
  1425. for (var i=0; i<grd_clcjlist.rows; i++) {
  1426. var unitflag = ds_main_list4_clcjlist.getColumn(i, "unitflag");
  1427. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  1428. if (unitflag == "M") {
  1429. if (p0117list != null) {
  1430. var p0117 = p0117list.childNodes;
  1431. for (var j = 1; j <= p0117.length; j++) {
  1432. var cdid = ds_init_P0117list_P0117.getColumn(j, "cdid");
  1433. if (cdid == spclcd) {
  1434. ds_main_list4.setColumn( i , "detldesc", ds_init_P0117list_P0117.getColumn(j, "detldesc"));
  1435. j = p0117.length + 1;
  1436. }
  1437. }
  1438. }
  1439. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  1440. } else if (unitflag == "J") {
  1441. if (p0117list != null) {
  1442. var p0117 = p0117list.childNodes;
  1443. for (var j = 1; j <= p0117.length; j++) {
  1444. var cdid = ds_init_P0117list_P0117.getColumn(j, "cdid");
  1445. if (cdid == spclcd) {
  1446. ds_main_list4.setColumn( i , "detldesc", ds_init_P0117list_P0117.getColumn(j, "detldesc"));
  1447. j = p0117.length + 1;
  1448. }
  1449. }
  1450. }
  1451. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  1452. }
  1453. }
  1454. // 최적화 문제로 추가 - 20081015 박창원
  1455. //grd_clcjlist.refresh();
  1456. var orddeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  1457. var erorddeptcd = ds_main_item1_iteminfo.getColumn(0, "erorddeptcd");
  1458. // 의료급여 정신과정액인경우 보조유형 메시지 처리
  1459. if ((insukind == "21" || insukind == "22")
  1460. && (suppkind != "14")
  1461. && (orddeptcd == "2030000000" || erorddeptcd == "2030000000")) {
  1462. sysf_messageBox("의료급여 정신과정액환자입니다. 보조유형을 14. 보호정신과정액으로 변경하세요.","I007");
  1463. }
  1464. //model.refresh();
  1465. }
  1466. // 처방 색깔 항 구분에 따라 흰색-회색 구분되도록 처리한다.
  1467. function fSetOrderColorByEdiitem() {
  1468. var rowcnt = grd_ordlist.rows;
  1469. var ediitem2 = "";
  1470. var color = "#f4f4f4";
  1471. for (var i = 0; i < rowcnt; i++) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  1472. //for (var i = 1; i < grd_ordlist.rows; i++) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  1473. //Color 표시 범례
  1474. //1. 문제처방 : #fcd2c1
  1475. //2. 선별심사 : #ffe79d
  1476. //3. 선별심사 + 문제처방 : #7BE6B7
  1477. //4. 야간, 공휴가산 : #ffff00(밝은노랑)
  1478. var status = grd_ordlist.rowHidden(i);
  1479. if (status == false) {
  1480. var ediitem1 = grd_ordlist.valueMatrix(i, grd_ordlist.colRef("item1"));
  1481. if (ediitem1.length > 0) {
  1482. if (ediitem1 == ediitem2) {
  1483. grd_ordlist.rowStyle(i,"data","background-color") = color;
  1484. } else {
  1485. ediitem2 = ediitem1;
  1486. if (color == "#ffffff") {
  1487. grd_ordlist.setCellProprty("body", i, "background", "#f4f4f4"); grd_ordlist.setCellProperty("body", i, "background2", "#f4f4f4");
  1488. color = "#f4f4f4";
  1489. } else {
  1490. grd_ordlist.setCellProprty("body", i, "background", "#ffffff"); grd_ordlist.setCellProperty("body", i, "background2", "#ffffff");
  1491. color = "#ffffff";
  1492. }
  1493. }
  1494. }
  1495. }
  1496. }
  1497. }
  1498. // 상단에 환자정보 기입하기
  1499. // 수정추가 : 20091006 JHP 상단정보로 파라미터 값 넘길때 기존엔 param 에 첫번재 값이 기준없이 무조건 I였는데 .응급기준을 확인하여 응급일때는 E로 나머지는 I로 셋팅한다.
  1500. function fSetOutPatPamInfo() {
  1501. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  1502. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1503. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  1504. var instcd = ds_main_item1_iteminfo.getColumn(0, "instcd");
  1505. var ordtype = ds_main_item1_iteminfo.getColumn(0, "ordtype");
  1506. // 수정추가 퇴원환자일경우 상단정보 파라미터에 srchdd를 퇴원일자로 넣어주고 아니면 현재일자를 넣어준다. 20090916, JHP,(현대김영학 참조)
  1507. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  1508. var dschdd = ds_main_item1_iteminfo.getColumn(0, "dschdd");
  1509. if(indschacptstat == "D" || indschacptstat == "T"){
  1510. var srchdd = dschdd;
  1511. }else{
  1512. var srchdd = VAL_today;
  1513. }
  1514. // param 첫번째 붙는 값은 외래 : O, 입원 : I, 지원부서 : S, 수술 : T, 응급 : E, 의뢰 : C
  1515. //var param = "I" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  1516. if(ordtype == "E"){
  1517. var param = "E" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  1518. }else{
  1519. var param = "I" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  1520. }
  1521. frmf_setParameter("condparam", param);
  1522. frmf_setParameter("errflag", "Y");
  1523. frmf_modal("SPMMO08900", "", ""-"", "", "1", "0", "0", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden", "", "", "M");
  1524. var useyn = frmf_getParameter("SPMMO08900_rtn_useyn");
  1525. if(useyn == "Y") {
  1526. frmf_setParameter("SPMMO08900_rtn_useyn", "");
  1527. }else{
  1528. }
  1529. }
  1530. function fGetOperStat() {
  1531. // submit("TRPIJ00314",false);
  1532. var oParam = {};
  1533. oParam.id = "TRPIJ00314";
  1534. oParam.service = "bfjudgapp.InHospJudg";
  1535. oParam.method = "reqGetOperStat";
  1536. oParam.inds = "req=ds_";
  1537. oParam.outds = "ds_=operstat";
  1538. oParam.async = false;
  1539. oParam.callback = "cf_TRPIJ00314";
  1540. tranf_submit(oParam);
  1541. /*
  1542. function cf_TRPIJ00314(sSvcId, nErrorCode, sErrorMsg) {
  1543. if(nErrorCode < 0) return;
  1544. }
  1545. function cf_TRPIJ00314(sSvcId, nErrorCode, sErrorMsg) {
  1546. arErrorCode.push(sSvcId, nErrorCode);
  1547. }
  1548. arErrorCode.pop("TRPIJ00314") > -1
  1549. arErrorCode.pop("TRPIJ00314") < 0
  1550. */
  1551. }
  1552. // 처방내역을 갖고 온다.
  1553. function fGetIsclList(paramFlag){
  1554. // 수정추가 paramFlag에따라서 조회조건 놔둔다. 20090728 JHP
  1555. if(paramFlag == "IPHS"){
  1556. // 재원심사메인화면 우측상단 유형에서 더블클릭햇을때...JHP 20090728
  1557. // 더블클릭시 값 지정하기에 따로 값셋팅안한다. ...JHP 20090728
  1558. }else if(paramFlag == "Srch"){
  1559. // 대상자조회에서 퇴원모드시 조회조건의 값이 있으면 이걸로 셋팅한다. ...JHP 20090728
  1560. // 수정추가 JHP 20090427 퇴원모드조회조건 추가.. 신규 시작
  1561. var dschmodesrch = ds_send.getColumn(0, "dschmodesrch"); // 퇴원모드 조회 조건
  1562. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacpstat"); // 입퇴원진행상태
  1563. var lastjudgdt = ds_main_item1_iteminfo.getColumn(0, "lastjudgdt"); // 최종심사일시
  1564. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd"); // 최종중간청구일시
  1565. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1"); // 입원일
  1566. var lastjudgdt2 = "";
  1567. var lastmdlclamdd2 = "";
  1568. if (lastjudgdt != "" && lastjudgdt != "-") {
  1569. // 수정, 최종심사일 다음날이 아니라 해당일부터여서 하루 더하는거 뺌. 20090729 JHP(yyy)요청
  1570. lastjudgdt2 = lastjudgdt.toDate("YYYYMMDD");
  1571. //lastjudgdt2 = lastjudgdt2.getAddDate(1);
  1572. lastjudgdt2 = lastjudgdt2.getDateFormat();
  1573. }
  1574. // lastmdlclamdd 에 하루를 더한다.(중간청구 일자가 있으면)
  1575. if (lastmdlclamdd != "" && lastmdlclamdd != "-" && lastmdlclamdd == null) {
  1576. lastmdlclamdd2 = lastmdlclamdd.toDate("YYYYMMDD");
  1577. lastmdlclamdd2 = lastmdlclamdd2.getAddDate(1);
  1578. lastmdlclamdd2 = lastmdlclamdd2.getDateFormat();
  1579. }
  1580. if(dschmodesrch == "1"){
  1581. if (lastmdlclamdd != "" && lastmdlclamdd != "-" && lastmdlclamdd == null) {
  1582. if(lastmdlclamdd2 >= VAL_today){
  1583. ds_send.setColumn( 0, "ordfromdd",VAL_today);
  1584. } else {
  1585. ds_send.setColumn( 0, "ordfromdd",lastmdlclamdd2);
  1586. }
  1587. ds_send.setColumn( 0, "ordtodd",VAL_today);
  1588. } else {
  1589. ds_send.setColumn( 0, "ordfromdd", indd);
  1590. ds_send.setColumn( 0, "ordtodd", VAL_today);
  1591. }
  1592. }else if(dschmodesrch == "2"){
  1593. if(lastjudgdt != "" && lastjudgdt != "-"){
  1594. if(lastjudgdt2 >= VAL_today){
  1595. ds_send.setColumn( 0, "ordfromdd",VAL_today);
  1596. } else {
  1597. ds_send.setColumn( 0, "ordfromdd",lastjudgdt2);
  1598. }
  1599. ds_send.setColumn( 0, "ordtodd",VAL_today);
  1600. }else{
  1601. ds_send.setColumn( 0, "ordfromdd", indd);
  1602. ds_send.setColumn( 0, "ordtodd", VAL_today);
  1603. }
  1604. }else{
  1605. // 아무것도 아닐때는 (퇴원모드조건아니면...) 처방구분 아무것도 아닌거하고 같다.
  1606. //ds_send.setColumn( 0, "ordfromdd", fromdd);
  1607. //ds_send.setColumn( 0, "ordtodd", todd);
  1608. var ordfromdd = ds_send.getColumn(0, "fromdd");
  1609. var ordtodd = ds_send.getColumn(0, "todd");
  1610. var maxhopedd = ds_main_item1_iteminfo.getColumn(0, "maxhopedd");
  1611. var tmp = ds_main_item1_iteminfo.getColumn(0, "lastjudgdt");
  1612. var lastjudgdt = tmp.substr(0,4) + tmp.substr(4,2) + tmp.substr(6,2);
  1613. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1614. var dschdd = ds_main_item1_iteminfo.getColumn(0, "dschdd");
  1615. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  1616. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  1617. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd");
  1618. // ordfromdd는 기본적으로 입원일로
  1619. ordfromdd = indd;
  1620. // ordtodd가 99991231이면 현재일로 set
  1621. if (ordtodd == "99991231") {
  1622. ordtodd = VAL_today;
  1623. }
  1624. // maxhopedd가 있는 경우에는 ordtodd를 maxhopedd로 set
  1625. if (maxhopedd != "") {
  1626. ordtodd = maxhopedd
  1627. }
  1628. // 최종심사일자가 있는 경우 최종심사일로 부터 시작일을 설정
  1629. if (lastjudgdt != "" && lastjudgdt != "-") {
  1630. ordfromdd = lastjudgdt;
  1631. }
  1632. // 퇴원환자 처리
  1633. if (indschacptstat == "D") {
  1634. ordfromdd = indd;
  1635. ordtodd = dschdd;
  1636. /* if (lastmdlclamdd != "") {
  1637. ordfromdd = lastmdlclamdd;
  1638. } */
  1639. } else if (dschnotiyn == "Y") { // 퇴원확정환자는 디폴트로 입원일부터 중간청구 발생자는 중간청구 이후로
  1640. ordfromdd = indd;
  1641. if (lastmdlclamdd != "" && lastmdlclamdd != "-") {
  1642. ordfromdd = lastmdlclamdd;
  1643. }
  1644. }
  1645. // 시작일이 종료일보다 큰경우 종료일을 시작일과 동일하게 맞추어 준다.
  1646. if (ordfromdd > ordtodd) {
  1647. ordtodd = ordfromdd;
  1648. }
  1649. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  1650. if (ordfromdd < opendd) {
  1651. ordfromdd = opendd;
  1652. }
  1653. ds_send.setColumn( 0, "ordfromdd", ordfromdd);
  1654. ds_send.setColumn( 0, "ordtodd", ordtodd);
  1655. }
  1656. // 수정추가 JHP 20090427 퇴원모드조회조건 추가.. 신규 끝
  1657. }else{
  1658. // 기타는 값을 넣지 않아서 기본적으로 원래것을 타게 한다. ...JHP 20090728
  1659. // 날짜 조회 전면 수정함 - 20081111 박창원
  1660. /* [재원조회기간]
  1661. 1-1. 재원심사 (재원퇴원심사 불문하고)
  1662. default 심사일자~max hopdd(없으면 현재일)까지 조회
  1663. 심사중에 조회기간을 조정시 상세내역 닫힌 후에도 그 환자를 저장하고 나가기 전까지는 그 조회기간으로 조회
  1664. 상세에서 기간을 조회하면 메인화면도 조정됨
  1665. 1-2. 체크박스 체크시(메인화면에서)
  1666. default 입원시작일~max hopdd
  1667. 중간청구시작일~오늘일자(중간청구한 환자-청구생성완료)
  1668. 심사중에 조회기간을 조정시 상세내역 닫힌 후에도 그 환자를 저장하고 나가기 전까지는 그 조회기간으로 조회
  1669. 상세에서 기간을 조회하면 메인화면도 조정됨
  1670. 2. 퇴원 완료된 환자 조회시
  1671. 입원일~퇴원일
  1672. 중간청구시작일~오늘일자(중간청구한 환자-청구생성완료) */
  1673. var ordfromdd = ds_send.getColumn(0, "fromdd");
  1674. var ordtodd = ds_send.getColumn(0, "todd");
  1675. var maxhopedd = ds_main_item1_iteminfo.getColumn(0, "maxhopedd");
  1676. var tmp = ds_main_item1_iteminfo.getColumn(0, "lastjudgdt");
  1677. var lastjudgdt = tmp.substr(0,4) + tmp.substr(4,2) + tmp.substr(6,2);
  1678. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1679. var dschdd = ds_main_item1_iteminfo.getColumn(0, "dschdd");
  1680. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  1681. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  1682. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd");
  1683. // ordfromdd는 기본적으로 입원일로
  1684. ordfromdd = indd;
  1685. // ordtodd가 99991231이면 현재일로 set
  1686. if (ordtodd == "99991231") {
  1687. ordtodd = VAL_today;
  1688. }
  1689. // maxhopedd가 있는 경우에는 ordtodd를 maxhopedd로 set
  1690. if (maxhopedd != "") {
  1691. ordtodd = maxhopedd
  1692. }
  1693. // 최종심사일자가 있는 경우 최종심사일로 부터 시작일을 설정
  1694. if (lastjudgdt != "" && lastjudgdt != "-") {
  1695. ordfromdd = lastjudgdt;
  1696. }
  1697. // 퇴원환자 처리
  1698. if (indschacptstat == "D") {
  1699. ordfromdd = indd;
  1700. ordtodd = dschdd;
  1701. /* if (lastmdlclamdd != "") {
  1702. ordfromdd = lastmdlclamdd;
  1703. } */
  1704. } else if (dschnotiyn == "Y") { // 퇴원확정환자는 디폴트로 입원일부터 중간청구 발생자는 중간청구 이후로
  1705. ordfromdd = indd;
  1706. if (lastmdlclamdd != "" && lastmdlclamdd != "-") {
  1707. ordfromdd = lastmdlclamdd;
  1708. }
  1709. }
  1710. // 시작일이 종료일보다 큰경우 종료일을 시작일과 동일하게 맞추어 준다.
  1711. if (ordfromdd > ordtodd) {
  1712. ordtodd = ordfromdd;
  1713. }
  1714. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  1715. if (ordfromdd < opendd) {
  1716. ordfromdd = opendd;
  1717. }
  1718. ds_send.setColumn( 0, "ordfromdd", ordfromdd);
  1719. ds_send.setColumn( 0, "ordtodd", ordtodd);
  1720. }
  1721. ds_send.setColumn( 0, "mig", ds_main_item1_iteminfo.getColumn(0, "mig"));
  1722. //model.refresh();
  1723. //처방조회 옵션에 항목구분에 처방이 있는 것만 Bold로 보여준다.
  1724. fSetItemBold();
  1725. // 20091126 수정추가 JHP 요청번호 8496, 주사제 4항1목, 마취제 5항 1목에 대해 1회량이 20이 넘으면 메세지 처리요청 ####################시작
  1726. fChkinjanstmsg();
  1727. }
  1728. // 처방내역을 갖고 온다.
  1729. function fGetIsclList_FromTo(){
  1730. //ds_send.clearData(); ds_send.addRow();
  1731. var ordfromdd = ds_send.getColumn(0, "ordfromdd");
  1732. var ordtodd = ds_send.getColumn(0, "ordtodd");
  1733. //처방조회 시작일자와 종료일자가 없는 경우 보험내역 시작 종료일로 셋팅해 준다.
  1734. if(ordfromdd == ""){
  1735. ds_send.setColumn( 0, "ordfromdd", ds_send.getColumn(0, "fromdd"));
  1736. }
  1737. if(ordtodd == ""){
  1738. ds_send.setColumn( 0, "ordtodd", ds_send.getColumn(0, "todd"));
  1739. }
  1740. if(ipt_pid.text.length >0) {
  1741. var row = grd_ordlist.row;
  1742. ds_main_list2_iscllist.clearData();
  1743. //grd_ordlist.refresh();
  1744. // submit("TRPIJ00302");
  1745. var oParam = {};
  1746. oParam.id = "TRPIJ00302";
  1747. oParam.service = "bfjudgapp.InHospJudg";
  1748. oParam.method = "reqGetInHospJudgIscl";
  1749. oParam.inds = "req=ds_";
  1750. oParam.outds = "ds_=iscllist";
  1751. oParam.async = false;
  1752. oParam.callback = "cf_TRPIJ00302";
  1753. tranf_submit(oParam);
  1754. /*
  1755. function cf_TRPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  1756. if(nErrorCode < 0) return;
  1757. }
  1758. function cf_TRPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  1759. arErrorCode.push(sSvcId, nErrorCode);
  1760. }
  1761. arErrorCode.pop("TRPIJ00302") > -1
  1762. arErrorCode.pop("TRPIJ00302") < 0
  1763. */
  1764. //
  1765. //model.refresh();
  1766. 최적화 문제로 대체
  1767. //model.refreshpart("ds_main_list2_iscllist");
  1768. grd_ordlist.row = row;
  1769. grd_ordlist.topRow = row - 3;
  1770. //처방조회 옵션에 항목구분에 처방이 있는 것만 Bold로 보여준다.
  1771. fSetItemBold();
  1772. } else {
  1773. sysf_messageBox("환자번호를","C001");
  1774. return;
  1775. }
  1776. }
  1777. // 진료비 계산내역을 갖고 온다.
  1778. function fGetCalc(){
  1779. if(ipt_pid.text.length >0)
  1780. {
  1781. ds_main_item2_itemcalc.clearData(); ds_main_item2_itemcalc.addRow();
  1782. var totalsumflag = ds_send.getColumn(0, "totalsumflag");
  1783. if(!totalsumflag){
  1784. ds_send.setColumn( 0, "totalsumflag","N");
  1785. }
  1786. // submit("TRPIJ00303");
  1787. var oParam = {};
  1788. oParam.id = "TRPIJ00303";
  1789. oParam.service = "bfjudgapp.InHospJudg";
  1790. oParam.method = "reqGetInHospJudgCalc";
  1791. oParam.inds = "req=ds_";
  1792. oParam.outds = "ds_=itemcalc";
  1793. oParam.async = false;
  1794. oParam.callback = "cf_TRPIJ00303";
  1795. tranf_submit(oParam);
  1796. /*
  1797. function cf_TRPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  1798. if(nErrorCode < 0) return;
  1799. }
  1800. function cf_TRPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  1801. arErrorCode.push(sSvcId, nErrorCode);
  1802. }
  1803. arErrorCode.pop("TRPIJ00303") > -1
  1804. arErrorCode.pop("TRPIJ00303") < 0
  1805. */
  1806. if(!totalsumflag){
  1807. ds_send.setColumn( 0, "totalsumflag","");
  1808. }
  1809. }else
  1810. {
  1811. //sysf_messageBox("환자번호를","C001");
  1812. return;
  1813. }
  1814. }
  1815. //중간청구 등록여부, 심사 마감상태, 문제환자여부, dump 유무 를 체크하여 버튼의 색상을 셋팅해준다.
  1816. function fSetItemInfoSetting(){
  1817. //중간청구 등록 여부
  1818. var midcflag = ds_main_item1_iteminfo.getColumn(0, "midcflag");
  1819. //분할 제외 대상자 여부
  1820. var midregistyn = ds_main_item1_iteminfo.getColumn(0, "midregistyn");
  1821. if(midcflag == "Y"){
  1822. btn_midregist.attribute("class") = "btn2_letter6";
  1823. btn_midregist.attribute("color") = "#ff0066";
  1824. btn_midregist.enable = true;
  1825. btn_midregistyn.enable = false;
  1826. btn_midcomplete.enable = true;
  1827. btn_midcancel.enable = true;
  1828. } else {
  1829. btn_midregist.attribute("class") = "btn2_letter6";
  1830. btn_midregistyn.enable = true;
  1831. btn_midcomplete.enable = false;
  1832. btn_midcancel.enable = false;
  1833. // 분할 제외 대상자 인 경우
  1834. if (midregistyn == "Y") {
  1835. btn_midregistyn.attribute("class") = "btn2_letter6";
  1836. btn_midregistyn.attribute("color") = "#ff0066";
  1837. btn_midregist.enable = false;
  1838. } else {
  1839. btn_midregistyn.attribute("class") = "btn2_letter6";
  1840. //btn_midregistyn.attribute("class") = "btn2_letter6";
  1841. btn_midregist.enable = true;
  1842. }
  1843. }
  1844. //퇴원심사 상태
  1845. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  1846. if(dschjudgprcsstat == "C" ){ //퇴원마감
  1847. btn_dschclose.attribute("class") = "btn5_letter6";
  1848. btn_dschclose.attribute("color") = "#ff0066";
  1849. btn_totjudgclose.attribute("class") = "btn2_letter6";
  1850. btn_midcancel.visible = true;
  1851. }else if(dschjudgprcsstat == "E" ){ //통합심사마감
  1852. btn_totjudgclose.attribute("class") = "btn5_letter6";
  1853. btn_totjudgclose.attribute("color") = "#ff0066";
  1854. btn_dschclose.attribute("class") = "btn2_letter6";
  1855. }else{
  1856. btn_dschclose.attribute("class") = "btn2_letter6";
  1857. btn_totjudgclose.attribute("class") = "btn2_letter6";
  1858. btn_midcancel.visible = false;
  1859. }
  1860. //문제환자 여부
  1861. var probjudgflag = ds_main_item1_iteminfo.getColumn(0, "probjudgflag");
  1862. if(probjudgflag == "G"){
  1863. ds_hidden_item1.setColumn( 0, "probpatgreen","Y");
  1864. ds_hidden_item1.setColumn( 0, "probpatred","");
  1865. }else if(probjudgflag == "R"){
  1866. ds_hidden_item1.setColumn( 0, "probpatred","Y");
  1867. ds_hidden_item1.setColumn( 0, "probpatgreen","");
  1868. }else{
  1869. ds_hidden_item1.setColumn( 0, "probpatgreen","");
  1870. ds_hidden_item1.setColumn( 0, "probpatred","");
  1871. }
  1872. //dump 유무 : 버튼 빨간색 표기
  1873. var dumpexistyn = ds_main_item1_iteminfo.getColumn(0, "dumpexistyn");
  1874. if(dumpexistyn == "Y"){
  1875. btn_dump.attribute("class") = "btn2_letter6";
  1876. btn_dump.attribute("color") = "#ff0066";
  1877. btn_dump.enable = true;
  1878. }else{
  1879. btn_dump.attribute("class") = "btn2_letter6";
  1880. }
  1881. var recalcyn = ds_main_item1_iteminfo.getColumn(0, "recalcyn");
  1882. if(recalcyn == "Y"){
  1883. btn_recalc.attribute("class") = "btn2_letter6";
  1884. btn_recalc.attribute("color") = "#ff0066";
  1885. btn_recalc.enable = true;
  1886. }else{
  1887. btn_recalc.attribute("class") = "btn2_letter6";
  1888. }
  1889. }
  1890. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1891. //상병처리 관련 코딩 시작 //
  1892. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1893. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "상병순서 위로"
  1894. function fDiagSeqUp() {
  1895. var rowstatus = grd_diaglist.rowstatus(grd_diaglist.row);
  1896. if (rowstatus == 4) { // 4 : delete
  1897. return;
  1898. }
  1899. var diagseq = parseInt(ds_main_list3_diaglist.getColumn(grd_diaglist.row, "seqno"))); // 선택된 줄의 NO
  1900. if (diagseq > 1) { // 첫번째 줄이 아닌 경우
  1901. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", --diagseq);
  1902. if (rowstatus == 0 || rowstatus == 2) {
  1903. grd_diaglist.rowstatus(grd_diaglist.row) = 2; // 2 : update
  1904. }
  1905. // 바로 위 상병순서와 중복되는 경우
  1906. var nextrow = grd_diaglist.row - 1;
  1907. var nextdiagseq = ds_main_list3_diaglist.getColumn(nextrow, "seqno"));
  1908. if (diagseq == nextdiagseq) {
  1909. ds_main_list3.setColumn( nextrow , "seqno", ++diagseq);
  1910. // rowstatus = grd_diaglist.rowstatus(nextrow);
  1911. // if (rowstatus == 0 || rowstatus == 2) {
  1912. // grd_diaglist.rowstatus(nextrow) = 2; // 2 : update
  1913. // }
  1914. }
  1915. fSortDiagNo();
  1916. }
  1917. }
  1918. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "상병순서 아래로"
  1919. function fDiagSeqDown() {
  1920. var rowstatus = grd_diaglist.rowstatus(grd_diaglist.row);
  1921. if (rowstatus == 4) { // 4 : delete
  1922. return;
  1923. }
  1924. // 삭제 상태가 아닌 마지막 줄을 찾는다.
  1925. var lastRow = grd_diaglist.rows - 1;
  1926. for (var i = 1; i < grd_diaglist.rows; i++) {
  1927. if (grd_diaglist.rowstatus(i) == 4) { // delete
  1928. lastRow = i - 1;
  1929. i = grd_diaglist.rows;
  1930. }
  1931. }
  1932. var diagseq = parseInt(ds_main_list3_diaglist.getColumn(grd_diaglist.row, "seqno"))); // 선택된 줄의 NO
  1933. if (diagseq < lastRow) { // 마지막 줄이 아닌 경우
  1934. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", ++diagseq);
  1935. if (rowstatus == 0 || rowstatus == 2) {
  1936. grd_diaglist.rowstatus(grd_diaglist.row) = 2; // 2 : update
  1937. }
  1938. // 바로 아래 상병순서와 중복되는 경우
  1939. var nextrow = grd_diaglist.row + 1;
  1940. var nextdiagseq = ds_main_list3_diaglist.getColumn(nextrow, "seqno"));
  1941. if (diagseq == nextdiagseq) {
  1942. ds_main_list3.setColumn( nextrow , "seqno", --diagseq);
  1943. }
  1944. fSortDiagNo();
  1945. }
  1946. }
  1947. // "상병순서 위로_아래로" 순서 변경 후에 상병 순서 NO에 따라 sorting 작업
  1948. function fSortDiag() {
  1949. var maxRow = parseInt(grd_diaglist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다
  1950. grd_diaglist.sort(1, 1, maxRow, 1) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1
  1951. //
  1952. //model.refresh();
  1953. 최적화문제로 대체 20080731 박창원
  1954. model.refreshpart("ds_main_list3_diaglist");
  1955. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  1956. grd_diaglist.gridToInstance();
  1957. }
  1958. // "상병순서 위로_아래로" 순서 변경 후에 상병 순서 NO에 따라 sorting 작업
  1959. function fSortDiagNo2() {
  1960. var delcnt = 0;
  1961. for (var i = 1; i < grd_diaglist.rows; i++) {
  1962. grd_diaglist.rowHidden(i) = false;
  1963. }
  1964. var cldino = 1;
  1965. for (var i = 1; i < grd_diaglist.rows; i++) {
  1966. ds_main_list3.setColumn( i , "seqno", i);
  1967. rowstatus = grd_diaglist.rowstatus(i);
  1968. }
  1969. var maxRow = parseInt(grd_diaglist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다
  1970. grd_diaglist.sort(1, grd_diaglist.colRef("seqno"), maxRow , grd_diaglist.colRef("seqno")) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1 / col = 3 : no
  1971. if (delcnt > 0) {
  1972. grd_diaglist.sort(1, grd_diaglist.colRef("seqno"), maxRow - delcnt, grd_diaglist.colRef("seqno")) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1 / col = 3 : no
  1973. }
  1974. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  1975. grd_diaglist.gridToInstance();
  1976. var rowstatus;
  1977. for (var i = 1; i < grd_diaglist.rows; i++) {
  1978. rowstatus = grd_diaglist.rowstatus(i);
  1979. if (rowstatus > 3) { // 삭제상태
  1980. grd_diaglist.rowHidden(i) = true;
  1981. } else {
  1982. grd_diaglist.rowHidden(i) = false;
  1983. }
  1984. }
  1985. }
  1986. function fSortDiagNo() {
  1987. var maxRow = parseInt(grd_diaglist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다
  1988. grd_diaglist.sort(1, 1, maxRow, 1) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1
  1989. //
  1990. //model.refresh();
  1991. 최적화문제로 대체 20080731 박창원
  1992. model.refreshpart("ds_main_list3");
  1993. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  1994. grd_diaglist.gridToInstance();
  1995. //루핑을 돌면서 순번을 맞춰주고, 모두 insert모드로 바꿔준다.
  1996. //상병은 History를 남기지 않고 그냥 모두 삭제 후 다시 insert로 처리한다.
  1997. //상병 순번이 key라서 update로 하면 바뀐 seq입력시 기존것이 아직 안바뀌었으면 Dup에러 발생함으로.
  1998. for(i =1; i<grd_diaglist.rows;i++){
  1999. ds_main_list3.setColumn( i , "seqno", i);
  2000. grd_diaglist.rowstatus(i) = 1;
  2001. }
  2002. }
  2003. function fDiagGridAddRow(addyn, selectyn) {
  2004. var iInsertRow = 0;
  2005. if (grd_diaglist.rows == 1 || addyn == "Y") {
  2006. iInsertRow = grd_diaglist.row;
  2007. grd_diaglist.addRow(false, false);
  2008. } else {
  2009. iInsertRow = grd_diaglist.row;
  2010. grd_diaglist.insertRow(iInsertRow, "below", false,false);
  2011. }
  2012. var nowRow = 0;
  2013. nowRow = grd_diaglist.row;
  2014. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", grd_diaglist.row);
  2015. // 청구과, 진료개시일은 주상병을 기준으로 부여한다.
  2016. var clamdeptcd = ds_main_list3_diaglist.getColumn(0, "orddeptcd");
  2017. if (clamdeptcd == "") { // 주상병의 진료과가 입력되지 않은 경우 인적사항의 청구과를 입력한다.
  2018. clamdeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  2019. }
  2020. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_orddeptcd", clamdeptcd);
  2021. var ordfromdd = model.getValue("ds_main_list3//diaglist_ordfromdd");
  2022. if (ordfromdd) {
  2023. ds_main.setColumn( 0, "list3//diaglist["+ grd_diaglist.row +"]_ordfromdd", ordfromdd);
  2024. } else {
  2025. ds_main.setColumn( 0, "list3//diaglist["+ grd_diaglist.row +"]_ordfromdd", ds_main_item1_iteminfo.getColumn(0, "indd"));
  2026. }
  2027. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_toot", "-");
  2028. // 상병이력조회에서 호출된 경우가 아니면
  2029. if (selectyn != "Y") {
  2030. fSortDiagNo2(true);
  2031. }
  2032. // edit mode 설정위한것임 절대 지우지 말것.
  2033. //grd_diaglist.refresh();
  2034. if (addyn != "Y") {
  2035. grd_diaglist.row = nowRow;
  2036. grd_diaglist.col = grd_diaglist.colRef("diagcd");
  2037. grd_diaglist.dispatch("onentercell");
  2038. }
  2039. }
  2040. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 추가"
  2041. function fDiagGridInsertRow() {
  2042. // 2008.03.06 박지욱 추가 (상병의 진료개시일은 중간청구최종시작일자, 중간청구등록이 없으면 입원일자 세팅)
  2043. ds_hidden_mdlclamrgst.clearData();
  2044. dsf_makeValue( ds_hidden, "mdlclamrgst", "string", "" );
  2045. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  2046. var deptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  2047. //속도개선 plet2 상병리스트에서 마지막 날짜를 가져오도록.
  2048. //submit("TRPIJ00313");
  2049. var fromdd = model.getXPathValue("ds_main_list3_diaglist[last()]_ordfromdd");
  2050. if (fromdd == "") {
  2051. var indd = ds_send.getColumn(0, "ordfromdd");
  2052. fromdd = indd;
  2053. }
  2054. // 삭제 상태가 아닌 마지막 줄을 찾는다.
  2055. var diagrow = grd_diaglist.rows - grd_diaglist.fixedRows; // 상병 Grid 가장 마지막 줄에 추가한다.
  2056. grd_diaglist.insertRow(diagrow++, true,false,false);
  2057. ds_main_list3.setColumn( diagrow , "seqno", diagrow);
  2058. ds_main_list3.setColumn( diagrow , "ordfromdd", fromdd); // 진료개시일
  2059. ds_main_list3.setColumn( diagrow , "orddeptcd", deptcd); // 진료과
  2060. fSortDiagNo();
  2061. // 행추가 시 맨 밑에 행이 보일 수 있드록 추가 ( 2007.10.09 김건기 )
  2062. grd_diaglist.bottomRow = grd_diaglist.rows;
  2063. // 행추가 후 상병코드 컬럼으로 포커스 이동 ( 2007.10.09 김건기 )
  2064. grd_diaglist.setFocus();
  2065. // edit mode 설정위한것임 절대 지우지 말것.
  2066. //grd_diaglist.refresh();
  2067. grd_diaglist.row = diagrow;
  2068. grd_diaglist.col = grd_diaglist.colref("diagcd");
  2069. //grd_diaglist.dispatch("onentercell");
  2070. //grd_diaglist.editCell();
  2071. }
  2072. // 상병 다섯줄 추가
  2073. function fDiagGridInsertRow5() { // 20080826 박창원 추가
  2074. // 2008.03.06 박지욱 추가 (상병의 진료개시일은 중간청구최종시작일자, 중간청구등록이 없으면 입원일자 세팅)
  2075. ds_hidden_mdlclamrgst.clearData();
  2076. dsf_makeValue( ds_hidden, "mdlclamrgst", "string", "" );
  2077. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  2078. var deptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  2079. var fromdd = model.getXPathValue("ds_main_list3_diaglist[last()]_ordfromdd");
  2080. if (fromdd == "") {
  2081. var indd = ds_send.getColumn(0, "ordfromdd");
  2082. fromdd = indd;
  2083. }
  2084. for (var i = 1; i <= 5; i++) {
  2085. var lastRow = grd_diaglist.rows - 1;
  2086. var diagrow = lastRow; // 상병 Grid 가장 마지막 줄에 추가한다.
  2087. grd_diaglist.insertRow(diagrow++, true,false,false);
  2088. ds_main_list3.setColumn( diagrow , "seqno", diagrow);
  2089. ds_main_list3.setColumn( diagrow , "ordfromdd", fromdd); // 진료개시일
  2090. ds_main_list3.setColumn( diagrow , "orddeptcd", deptcd); // 진료과
  2091. }
  2092. fSortDiagNo();
  2093. // 행추가 시 맨 밑에 행이 보일 수 있드록 추가 ( 2007.10.09 김건기 )
  2094. grd_diaglist.topRow = grd_diaglist.rows - 6;
  2095. // 행추가 후 상병코드 컬럼으로 포커스 이동 ( 2007.10.09 김건기 )
  2096. grd_diaglist.setFocus();
  2097. grd_diaglist.row = diagrow - 5;
  2098. grd_diaglist.col = grd_diaglist.colref("diagcd");
  2099. grd_diaglist.dispatch("onentercell");
  2100. grd_diaglist.editCell();
  2101. }
  2102. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 삭제"
  2103. function fDiagGridDeleteRow() {
  2104. //상병은 삭제시 무조건 삭제를 날려 버린다.
  2105. for( var i = 0; i < grd_diaglist.selectedRows; i++ ){
  2106. var cRrow = grd_diaglist.selectedRow(i);
  2107. grd_diaglist.rowstatus(cRrow) = 4; // 4 : delete 상태로 stat를 변경한다.
  2108. }
  2109. var tmp = grd_diaglist.rows;
  2110. for(var k = tmp; k >= 0;k--){
  2111. if(grd_diaglist.rowstatus(k) == "4"){
  2112. grd_diaglist.deleteRow(k, false);
  2113. }
  2114. }
  2115. //
  2116. //model.refresh();
  2117. 최적회 때문에 20080731 박창원
  2118. model.refreshpart("ds_main_list3_diaglist");
  2119. fSortDiagNo();
  2120. }
  2121. // 상병코드 조회 팝업
  2122. function fSearchDiageCode() {
  2123. var row = grd_diaglist.row;
  2124. var diagcd = ds_main_list3_diaglist.getColumn(row, "diagcd"));
  2125. ds_hidden_sppiz00400_rslt.clearData();
  2126. // 상병 Data가 2007년 이후로 설정되어 있으므로 임시로 현재 날짜를 넘긴다.
  2127. //dsf_makeValue( ds_hidden_sppiz00400_cond, "basedd", "string", ds_main_item1_clbs.getColumn(0, "clamdd"));
  2128. ds_hidden_sppiz00400_cond.clearData(); ds_hidden_sppiz00400_cond.addRow();
  2129. dsf_makeValue( ds_hidden_sppiz00400_cond, "basedd", "string", VAL_today); // (dateHelper.js) 현재날짜 반환
  2130. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagcd", "string", diagcd);
  2131. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagnm", "string", "" );
  2132. dsf_makeValue( ds_hidden_sppiz00400_cond, "selectedrdodiagkind", "string", "1");
  2133. if(diagcd){
  2134. // submit("TRPIJ00308",false); // 입력된 상병코드로 emr.mrtmicd10 테이블을 조회한다.
  2135. var oParam = {};
  2136. oParam.id = "TRPIJ00308";
  2137. oParam.service = "aftjudgapp.OutAftJudg";
  2138. oParam.method = "reqGetSickAndWounded";
  2139. oParam.inds = "req=ds_";
  2140. oParam.outds = "ds_=rslt";
  2141. oParam.async = false;
  2142. oParam.callback = "cf_TRPIJ00308";
  2143. tranf_submit(oParam);
  2144. /*
  2145. function cf_TRPIJ00308(sSvcId, nErrorCode, sErrorMsg) {
  2146. if(nErrorCode < 0) return;
  2147. }
  2148. function cf_TRPIJ00308(sSvcId, nErrorCode, sErrorMsg) {
  2149. arErrorCode.push(sSvcId, nErrorCode);
  2150. }
  2151. arErrorCode.pop("TRPIJ00308") > -1
  2152. arErrorCode.pop("TRPIJ00308") < 0
  2153. */
  2154. var rsltList = instance1.selectSingleNode("ds_hidden_sppiz00400");
  2155. if (rsltList != null && rsltList.childNodes.length == 1) {
  2156. // 조회된 결과가 1건이면
  2157. fSetDiagCdNm();
  2158. } else {
  2159. // 조회된 결과가 없거나 여러 건이면
  2160. // 상병코드 조회를 위해 SPPIZ00400_상병코드조회.xrw 를 호출한다.
  2161. fSearchSPPIZ00400();
  2162. }
  2163. } else {
  2164. // 상병코드 입력 없이 상병명 선택 시
  2165. fSearchSPPIZ00400();
  2166. }
  2167. }
  2168. // 상병코드 조회를 위해 SPPIZ00400_상병코드조회.xrw 를 호출한다.
  2169. function fSearchSPPIZ00400() {
  2170. ds_hidden_sppiz00400_rslt.clearData();
  2171. dsf_makeValue( ds_hidden_sppiz00400_rslt, "diagcd", "string", "" );
  2172. dsf_makeValue( ds_hidden_sppiz00400_rslt, "diaghngnm", "string", "" );
  2173. dsf_makeValue( ds_hidden_sppiz00400_rslt, "diagengnm", "string", "" );
  2174. ds_hidden_sppiz00400_cond.clearData(); ds_hidden_sppiz00400_cond.addRow();
  2175. dsf_makeValue( ds_hidden_sppiz00400_cond, "basedd", "string", VAL_today); // (dateHelper.js) 현재날짜 반환
  2176. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagcd", "string", ds_main_list3_diaglist.getColumn(grd_diaglist.row, "diagcd")));
  2177. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagnm", "string", "" );
  2178. dsf_makeValue( ds_hidden_sppiz00400_cond, "selectedrdodiagkind", "string", "3"); // 사용자가 직접검색하여 입력 할수 있도록 임의의 값(3)을 넣어줌
  2179. frmf_modal("SPPIZ00400", "SPPIZ00400", "ds_hidden_sppiz00400_cond""-"ds_init"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00400_상병코드조회.xrw
  2180. }
  2181. // [SPPIZ00400_상병코드조회.xrw 에서 호출] 상병조회 팝업에서 상병을 더블클릭 했을경우 상병 그리드에 반영
  2182. function fSetDiagCdNm() {
  2183. var diagcd = ds_hidden_sppiz00400_rslt.getColumn(0, "diagcd");
  2184. var diaghngnm = ds_hidden_sppiz00400_rslt.getColumn(0, "diaghngnm");
  2185. var diagengnm = ds_hidden_sppiz00400_rslt.getColumn(0, "diagengnm");
  2186. var spclcd = ds_hidden_sppiz00400_rslt.getColumn(0, "spclcd");
  2187. var currRow = grd_diaglist.row;
  2188. //20090810 JHP 수정추가. 상병 조회팝업에서 상병조회 후 적용하려고 할때 인스턴스 증가(행추가)하여 적용시킨다.
  2189. if(grd_diaglist.row <= 0){
  2190. fDiagGridInsertRow();
  2191. grd_diaglist.endEditCell();
  2192. }else{
  2193. var chkdiagcd = ds_main_list3_diaglist.getColumn(currRow, "diagcd"));
  2194. var chkdiagnm = ds_main_list3_diaglist.getColumn(currRow, "diagnm"));
  2195. if((chkdiagcd != "" || chkdiagcd != " " || chkdiagcd != null) &&
  2196. (chkdiagnm == "" || chkdiagnm == " " || chkdiagnm == null)){
  2197. ;
  2198. }else if((chkdiagcd != "" || chkdiagcd != " " || chkdiagcd != null) &&
  2199. (chkdiagnm != "" || chkdiagnm != " " || chkdiagnm != null)){
  2200. ;
  2201. }else{
  2202. fDiagGridInsertRow();
  2203. grd_diaglist.endEditCell();
  2204. }
  2205. }
  2206. if (diagcd) {
  2207. grd_diaglist.endEditCell();
  2208. ds_main_list3.setColumn( currRow , "diagcd", diagcd);
  2209. }
  2210. if (diaghngnm) {
  2211. ds_main_list3.setColumn( currRow , "diagnm", diaghngnm);
  2212. }
  2213. if(diagengnm){
  2214. ds_main_list3.setColumn( currRow , "diagengnm", diagengnm);
  2215. }
  2216. if(spclcd){
  2217. ds_main_list3.setColumn( currRow , "vcode", spclcd);
  2218. }
  2219. var chk_key = ds_main_list3_diaglist.getColumn(currRow, "pid"));
  2220. //신규로 불러온 입력되는 경우는 Insert시 key값이 없으므로 기본 정보에서 읽어다 넣어 준다.
  2221. if(chk_key){
  2222. return;
  2223. }else{
  2224. //Pid
  2225. ds_main_list3.setColumn( currRow , "pid",ds_send.getColumn(0, "pid"));
  2226. //Indd
  2227. ds_main_list3.setColumn( currRow , "indd",ds_send.getColumn(0, "indd"));
  2228. //Cretno
  2229. ds_main_list3.setColumn( currRow , "cretno",ds_send.getColumn(0, "cretno"));
  2230. //fromdd
  2231. ds_main_list3.setColumn( currRow , "fromdd",ds_send.getColumn(0, "fromdd"));
  2232. //mskind
  2233. ds_main_list3.setColumn( currRow , "mskind",ds_send.getColumn(0, "mskind"));
  2234. //drinptyn
  2235. ds_main_list3.setColumn( currRow , "drinptyn","N");
  2236. //addflag
  2237. ds_main_list3.setColumn( currRow , "addflag","Y");
  2238. if(grd_diaglist.row >1){
  2239. //orddeptcd
  2240. ds_main_list3.setColumn( currRow , "orddeptcd",ds_main_list3_diaglist.getColumn(1, "orddeptcd"));
  2241. //ordfromdd
  2242. ds_main_list3.setColumn( currRow , "ordfromdd",ds_main_list3_diaglist.getColumn(1, "ordfromdd"));
  2243. }
  2244. //저장후 빈행을 추가해 준다.
  2245. //20080811 자동으로 줄추가 되는 기능 제외
  2246. fDiagGridInsertRow();
  2247. }
  2248. //
  2249. //model.refresh();
  2250. 최적화 문제로 대체 20080731 박창원
  2251. model.refreshpart("ds_main_list3_diaglist");
  2252. }
  2253. function fChangeRate() {
  2254. grp_changeownbrate.visible = true;
  2255. }
  2256. function fUpdDiag() {
  2257. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  2258. if(chk){
  2259. //fGetIsclList
  2260. fRefreshDiag(); // 특정 환자에 대한 전상병 내역을 조회한다.
  2261. // 20080811 제외하기로함(상병줄추가(자동)
  2262. //fDiagGridInsertRow();
  2263. }
  2264. }
  2265. function fChangeRate1() {
  2266. // 6시간 미만 환자는 입원에만 해당하는 요율을 적용할 수 없다. - 20081105 박창원
  2267. var suppkind = cmb_suppkindlist.value;
  2268. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  2269. var suppkindcd = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  2270. //20090325 차상위 2종추가 - 박창원
  2271. if (sixtimyn == "Y" && (suppkind == "05" || suppkind == "08" || suppkind == "09" || suppkind == "31" || suppkind == "39" || suppkind == "41" || suppkind == "42" || suppkind == "43")) {
  2272. sysf_messageBox("6시간 미만환자는 입원에만 적용되는 보조유형으로 변경을","E001");
  2273. grp_changeownbrate.visible = false;
  2274. return;
  2275. }
  2276. // 6세미만, 신생아는 조건에 맞지 않으면 Block - 20090103 박창원
  2277. if (suppkind == "08" || suppkind == "31" || suppkind == "41")
  2278. var age = parseInt(ds_main_item1_iteminfo.getColumn(0, "age"));
  2279. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  2280. var insukindcd = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  2281. var inpath = ds_main_item1_iteminfo.getColumn(0, "inpath");
  2282. var orddeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  2283. var rrgstno = ds_main_item1_iteminfo.getColumn(0, "rrgstno");
  2284. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  2285. var babyyn ="N";
  2286. var end6yn = "N";
  2287. var brthdd = "20" + rrgstno.substr(0,6);
  2288. var readonly = ds_send.getColumn(0, "readonly");
  2289. // 신생아를 구별지음
  2290. if (rrgstno.substr(7,1) == "3" || rrgstno.substr(7,1) == "4" || rrgstno.substr(7,1) == "7" || rrgstno.substr(7,1) == "8") {
  2291. var interval = utlf_getDateInterval(brthdd,indd);
  2292. if (interval < "28") {
  2293. babyyn = "Y";
  2294. }
  2295. }
  2296. // 6세미만 생일 여부를 판단함
  2297. if ((rrgstno.substr(7,1) == "3" || rrgstno.substr(7,1) == "4") && age <= 6) {
  2298. if (age == 6) {
  2299. if (brthdd >= VAL_today) {
  2300. end6yn = "Y";
  2301. }
  2302. } else if (age == 6){
  2303. if (brthdd < VAL_today) {
  2304. end6yn = "N";
  2305. }
  2306. } else if(age < 6) {
  2307. end6yn = "Y";
  2308. } else if (age > 6) {
  2309. end6yn ="N";
  2310. }
  2311. }
  2312. var reqdeptno = model.getValue("ds_hidden_list2_dept[deptcd='"+orddeptcd+"']reqdeptno");
  2313. if (sixtimyn == "N" && babyyn == "Y" &&age == 0 && indd >= "20080101" && reqdeptno == "11" && (insukindcd == "11" || insukindcd == "21" || insukindcd == "22")) {
  2314. if (suppkind != "31") {
  2315. sysf_messageBox("신생아 조건에 맞지 않아 변경을","E001");
  2316. grp_changeownbrate.visible = false;
  2317. return;
  2318. }
  2319. }
  2320. if (sixtimyn == "N" && end6yn == "Y" && babyyn == "N" && age <= 6 && reqdeptno == "11" && (insukindcd == "11" || insukindcd == "21" || insukindcd == "22")) {
  2321. if (suppkind != "08" && suppkind != "41") { // 20090325 차상위 2종 조건 추가 - 박창원
  2322. if (suppkind != "31") {
  2323. sysf_messageBox("6세미만 조건에 맞지 않아 변경을","E001");
  2324. grp_changeownbrate.visible = false;
  2325. return;
  2326. }
  2327. }
  2328. }
  2329. var msg = sysf_messageBox("선택하신 요율을 적용","S001");
  2330. if(msg !=6){
  2331. return;
  2332. }else{
  2333. Insuchange(suppkind);
  2334. }
  2335. }
  2336. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2337. //상병조회버튼에 대한 처리 //
  2338. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2339. // 수가 조회
  2340. function fSetSrchCalcScorCdPop(){
  2341. ds_hidden_smpic00100_cond.setColumn( 0, "calcscorcd", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  2342. ds_hidden_smpic00100_cond.setColumn( 0, "judgflag", "Y");
  2343. frmf_modal("SMPIC00100", "SMPIC00100", "ds_hidden_smpic00100_cond""-"ds_temp_item6"", "", "1", "150", "150", "", "", "", "", "", "M");
  2344. }
  2345. // 보험인정기준관리 화면 호출 20091105 수정추가 JHP 요청번호 : 5874
  2346. function fSetSrchInsuRcogBaseMngt(){
  2347. var calcscorcd = grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd"));
  2348. ds_hidden_sppiz01600_cond.setColumn( 0, "calcscorcd", calcscorcd);
  2349. // SPPIZ01600_보험인정기준조회 팝업 연결 (선택된 row의 처방코드를 넘겨준다.)
  2350. frmf_modal("SPPIZ01600", "SPPIZ01600", "ds_hidden_sppiz01600_cond_calcscorcd""-"ds_send_item3_calcscorcd"", "", "1", "150", "150", "", "", "", "", "", "M");
  2351. }
  2352. // 보험인정기준관리 화면 호출 20091105 수정추가 JHP 요청번호 : 5874 호출함수. - 미사용
  2353. function getOpenInsuRcogBaseMngtChk(){
  2354. var temp = getChildWindow("ddd");
  2355. var nodecnt = 0;
  2356. var xPathFunction = "count(ds_main_h_limi_limi)";
  2357. while (nodecnt == 0)
  2358. {
  2359. nodecnt = temp.model.getXPathValue(xPathFunction);
  2360. if (nodecnt >= 500){
  2361. temp.sysf_messageBox("해당코드 인정기준을 확인합니다.","I002");
  2362. temp.ds_main_right_h_limt_limt.setColumn( 0, "limt_calcscorcd" ,grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  2363. temp.ipt_calcscorcd.dispatch("onkeypress");
  2364. //temp.model.refresh();
  2365. break;
  2366. }
  2367. }
  2368. }
  2369. // 약품편람 호출 - 20080930 박창원
  2370. function fOpenDrugDic() {
  2371. frmf_open("SMADB01900", "bbb", ""-"", "", "", "", "", "", "", "", "", "", "M");
  2372. var temp = getChildWindow("bbb");
  2373. // 필터링 할 경우 row값을 제대로 못 가져와서 valueMatrix로 변경함. 2012.02.16 LEJ
  2374. temp.ds_hidden_receivedata.setColumn( 0, "srchdrugcd", grd_ordlist.valueMatrix(grd_ordlist.row,grd_ordlist.colRef("snglcalcscorcd")));
  2375. }
  2376. // 의약품정보 호출 - 20080930 박창원
  2377. function fOpenDruginfo() {
  2378. frmf_open("SMADB00100", "ccc", ""-"", "", "", "", "", "", "", "", "", "", "M");
  2379. var temp = getChildWindow("ccc");
  2380. temp.ds_send_srchinfo.setColumn( 0, "srchcd", grd_ordlist.valueMatrix(grd_ordlist.row,grd_ordlist.colRef("snglcalcscorcd")));
  2381. }
  2382. // 환자단위 메시지 전송
  2383. function fSendMsgPat() {
  2384. dsf_makeValue( ds_temp, "opentab", "string", "pmsg");
  2385. zmifOpenMessagePopup("ds_temp"); // root_temp_opentab 에 receivemsg (받은메세지함) 값을 주고 오픈한다.
  2386. }
  2387. // 처방단위 메시지 전송
  2388. function fSendMsgOrder() {
  2389. dsf_makeValue( ds_temp, "opentab", "string", "pmsg");
  2390. zmifOpenMessagePopup("ds_temp"); // root_temp_opentab 에 pmsg (환자메세지작성창) 값을 주고 오픈한다.
  2391. }
  2392. // 처방상병을 끌고 온다.
  2393. function fRefreshDiag() {
  2394. if(ds_main_item1_iteminfo.getColumn(0, "patnm")){
  2395. // 심사대상자의 등록번호를 조건으로 하여 전체 상병이력을 조회한다.
  2396. var cnt = grd_diaglist.rows;
  2397. // submit("TRPIJ00306");
  2398. var oParam = {};
  2399. oParam.id = "TRPIJ00306";
  2400. oParam.service = "bfjudgapp.InHospJudg";
  2401. oParam.method = "reqGetDiagRefresh";
  2402. oParam.inds = "req=ds_";
  2403. oParam.outds = "ds_=diaglist";
  2404. oParam.async = false;
  2405. oParam.callback = "cf_TRPIJ00306";
  2406. tranf_submit(oParam);
  2407. /*
  2408. function cf_TRPIJ00306(sSvcId, nErrorCode, sErrorMsg) {
  2409. if(nErrorCode < 0) return;
  2410. }
  2411. function cf_TRPIJ00306(sSvcId, nErrorCode, sErrorMsg) {
  2412. arErrorCode.push(sSvcId, nErrorCode);
  2413. }
  2414. arErrorCode.pop("TRPIJ00306") > -1
  2415. arErrorCode.pop("TRPIJ00306") < 0
  2416. */
  2417. //
  2418. //model.refresh();
  2419. 최적화문제로 주석처리 - 20081015 박창원
  2420. for(var i = 1; i < grd_diaglist.rows; i++) {
  2421. var chkflag = ds_main_list3_diaglist.getColumn(i, "chkflag");
  2422. if(chkflag == "2"){
  2423. grd_diaglist.rowstatus(i) = 1;
  2424. }
  2425. }
  2426. }
  2427. }
  2428. // 특정 환자에 대한 청구상병을 조회한다.
  2429. function fGetClamDiagHistList() {
  2430. if(ds_main_item1_iteminfo.getColumn(0, "patnm")){
  2431. // 심사대상자의 등록번호를 조건으로 하여 전체 청구 상병이력을 조회한다.
  2432. ds_hidden_smpiz00100_cond.setColumn( 0, "pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  2433. ds_hidden_smpiz00100_cond.setColumn( 0, "ordfromdd", ds_main_item1_iteminfo.getColumn(0, "indd"));
  2434. ds_hidden_smpiz00100_cond.setColumn( 0, "ordtodd", ds_main_item1_iteminfo.getColumn(0, "dschdd"));
  2435. ds_hidden_smpiz00100_cond.setColumn( 0, "srchflag", "pam"); // 검색구분 Radio : 청구
  2436. frmf_modal("SMPIZ00100", "SMPIZ00100", "ds_hidden_smpiz00100_cond""-"ds_init"", "", "", "10", "10", "", "", "", "", "", "M"); // SMPIZ00100_외래입원상병이력조회.xrw
  2437. //
  2438. //model.refresh();
  2439. 최적화 문제로 20080731 박창원
  2440. var rsltNode = instance1.selectSingleNode("ds_hidden_smpiz00100_rslt");
  2441. var originpid = ds_main_item1_iteminfo.getColumn(0, "pid");
  2442. if (rsltNode != null) {
  2443. for (var i = 1; i <= rsltNode.childNodes.length; i++) {
  2444. var diagcd = ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagcd");
  2445. var isSame = false;
  2446. for (var j = grd_diaglist.fixedRows; j < grd_diaglist.rows; j++) {
  2447. if (diagcd == ds_main_list3_diaglist.getColumn(j, "diagcd")) {
  2448. // 동일한 상병이 존재하는 경우
  2449. isSame = true;
  2450. j = grd_diaglist.rows;
  2451. }
  2452. }
  2453. // 동일한 상병이 없는 경우
  2454. if (isSame == false) {
  2455. grd_diaglist.addRow(false,true);
  2456. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  2457. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  2458. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  2459. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  2460. var mskind = ds_main_item1_iteminfo.getColumn(0, "mskind");
  2461. var ruleoutyn = ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagkindcd");
  2462. if(ruleoutyn == "C"){
  2463. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_ruleoutyn", "false");
  2464. }else{
  2465. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_ruleoutyn", "true");
  2466. }
  2467. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_pid", pid);
  2468. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_indd", indd);
  2469. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_cretno", cretno);
  2470. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_fromdd", fromdd);
  2471. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_mskind", mskind);
  2472. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_addflag", "Y");
  2473. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_drinptyn", "N");
  2474. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", grd_diaglist.row);
  2475. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_diagcd", ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagcd"));
  2476. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_diagnm", ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diaghngnm"));
  2477. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_diagengnm", ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagengnm"));
  2478. // 청구과, 진료개시일은 주상병을 기준으로 부여한다.
  2479. var clamdeptcd = ds_main_list3_diaglist.getColumn(0, "orddeptcd");
  2480. if (clamdeptcd == "") { // 주상병의 진료과가 입력되지 않은 경우 인적사항의 진료과를 입력한다.
  2481. clamdeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  2482. }
  2483. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_orddeptcd", clamdeptcd);
  2484. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_ordfromdd", ds_main_list3_diaglist.getColumn(0, "ordfromdd"));
  2485. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_toot", "-");
  2486. }
  2487. }
  2488. fSortDiagNo(true);
  2489. }
  2490. }
  2491. }
  2492. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2493. //상병처리 관련 코딩 끝 //
  2494. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2495. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2496. //처장 Filter 관련 코딩 //
  2497. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2498. // 처방 조회부 - 재행_급여_항목구분 Radio 선택에 따라 처방 내역을 보여준다.
  2499. function fGetSelectedOrderData() {
  2500. var matractflag = ds_hidden_list1_isclcond.getColumn(0, "matractflag");
  2501. var calcpayflag = ds_hidden_list1_isclcond.getColumn(0, "calcpayflag");
  2502. var snglcalcscorcls = ds_hidden_list1_isclcond.getColumn(0, "snglcalcscorcls");
  2503. var cpflag = ds_hidden_list1_isclcond.getColumn(0, "cpflag");
  2504. var edicd = ds_hidden_list1_isclcond.getColumn(0, "edicd");
  2505. var snglcalcscorcd = ds_hidden_list1_isclcond.getColumn(0, "snglcalcscorcd");
  2506. var actingflag = ds_hidden_list1_isclcond.getColumn(0, "actingflag");
  2507. var calcamtflag = ds_hidden_list1_isclcond.getColumn(0, "calcamtflag");
  2508. var tmp = "ds_main_list2_iscllist["
  2509. var chk = "0";
  2510. //재료행위 구분
  2511. if(matractflag){
  2512. tmp = tmp + matractflag;
  2513. chk = "1";
  2514. }
  2515. //급여구분
  2516. if(calcpayflag){
  2517. if(chk == "1"){
  2518. tmp = tmp + " and " + calcpayflag;
  2519. }else{
  2520. tmp = tmp + calcpayflag;
  2521. chk = "1";
  2522. }
  2523. }
  2524. //항목구분
  2525. if(snglcalcscorcls) {
  2526. if(chk == "1"){
  2527. tmp = tmp + " and (" + snglcalcscorcls + ")";
  2528. }else{
  2529. tmp = tmp + "(" + snglcalcscorcls + ")";
  2530. chk = "1";
  2531. }
  2532. }
  2533. // 시행구분 여부
  2534. if(actingflag) {
  2535. if(chk == "1"){
  2536. tmp = tmp + " and " + actingflag;
  2537. }else{
  2538. tmp = tmp + actingflag;
  2539. chk = "1";
  2540. }
  2541. }
  2542. //CP여부
  2543. if(cpflag) {
  2544. if(chk == "1"){
  2545. tmp = tmp + " and " + cpflag;
  2546. }else{
  2547. tmp = tmp + cpflag;
  2548. chk = "1";
  2549. }
  2550. }
  2551. //수가코드
  2552. if(snglcalcscorcd) {
  2553. if(chk == "1"){
  2554. tmp = tmp + " and " + snglcalcscorcd;
  2555. }else{
  2556. tmp = tmp + snglcalcscorcd;
  2557. chk = "1";
  2558. }
  2559. }
  2560. //항목구분
  2561. if(edicd) {
  2562. if(chk == "1"){
  2563. tmp = tmp + " and " + edicd;
  2564. }else{
  2565. tmp = tmp + edicd;
  2566. chk = "1";
  2567. }
  2568. }
  2569. //zero 수가 제외구분
  2570. if(calcamtflag) {
  2571. if(chk == "1"){
  2572. tmp = tmp + " and " + calcamtflag;
  2573. }else{
  2574. tmp = tmp + calcamtflag;
  2575. chk = "1";
  2576. }
  2577. }
  2578. if(chk == "0")
  2579. {
  2580. tmp = "ds_main_list2_iscllist";
  2581. }else{
  2582. tmp = tmp + "]";
  2583. }
  2584. grd_ordlist.attribute("nodeset") = tmp ;
  2585. grd_ordlist.rebuild();
  2586. grd_ordlist.resizeCells();
  2587. //grd_ordlist.gridToInstance();
  2588. grd_ordlist.row = 0; // 그리드의 첫줄부터 표시되도록 포커스를 0으로 설정한다.
  2589. // 2008. 01. 27 박지욱 추가 (처방 색깔 항 구분에 따라 흰색-회색 구분되도록 처리)
  2590. //fSetOrderColorByEdiitem();
  2591. //항목별소계
  2592. fSetItemSubTotal();
  2593. // 처방 Grid의 내용이 변경된 경우, 선별심사 처방 색깔 구분을 다시 처리한다.
  2594. fSetColorSpclJudgOrder();
  2595. //fSetOrdSpclTxt();
  2596. //
  2597. //model.refresh();
  2598. 최적화 문제로 대체 20080731 박창원
  2599. model.refreshpart("ds_main_list2_iscllist");
  2600. }
  2601. // 처방조회부, 처방 Grid용 Group의 컨트롤 크기를 설정한다.
  2602. function fSetOrderControlSize() {
  2603. if(grp_calc.attribute("top") == "305"){
  2604. //기존위치에 +200한 위치, 처방그리드는 사이즈 +200
  2605. grp_calc.attribute("top") = "105";
  2606. grp_calc.attribute("height") = "640";
  2607. grd_ordlist.attribute("height") = "518";
  2608. cap_paylimamt.attribute("top") = "595";
  2609. opt_paylimamt.attribute("top") = "620";
  2610. swt_spclmemo.visible = "false";
  2611. grd_diaglist.visible = "false";
  2612. }else{
  2613. grp_calc.attribute("top") = "305";
  2614. grp_calc.attribute("height") = "440";
  2615. grd_ordlist.attribute("height") = "318";
  2616. cap_paylimamt.attribute("top") = "395";
  2617. opt_paylimamt.attribute("top") = "420";
  2618. swt_spclmemo.visible = "true";
  2619. grd_diaglist.visible = "true";
  2620. }
  2621. }
  2622. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2623. //처장 Filter 관련 코딩 끝 //
  2624. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2625. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2626. //특정내역 관련 코딩 //
  2627. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2628. // 특정 환자에 대해 그동안 작성된 심사자메모, 청구메모 내역을 조회한다.
  2629. function fGetMemoHistList() {
  2630. if(ds_main_item1_iteminfo.getColumn(0, "patnm")){
  2631. ds_hidden_sppiz00300_rslt.clearData();
  2632. dsf_makeValue( ds_hidden_sppiz00300_cond, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  2633. dsf_makeValue( ds_hidden_sppiz00300_cond, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  2634. dsf_makeValue( ds_hidden_sppiz00300_cond, "ioflag", "string", "I");
  2635. dsf_makeValue( ds_hidden_sppiz00300_cond, "refterm", "string", "2");
  2636. dsf_makeValue( ds_hidden_sppiz00300_cond, "anofildinclyn", "string", "Y");
  2637. dsf_makeValue( ds_hidden_sppiz00300_cond, "fromdd", "string", "");
  2638. dsf_makeValue( ds_hidden_sppiz00300_cond, "todd", "string", "");
  2639. frmf_modal("SPPIZ00300", "SPPIZ00300", "ds_hidden_sppiz00300_cond""-"ds_init"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00300_메모이력조회.xrw
  2640. var SelectMemo = instance1.selectSingleNode("ds_hidden_sppiz00300_rslt");
  2641. if (SelectMemo != null) {
  2642. var choimemo = ds_hidden_sppiz00300_rslt.getColumn(0, "choimemo").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  2643. var choiedicd = ds_hidden_sppiz00300_rslt.getColumn(0, "edicd");
  2644. if (choimemo) {
  2645. ds_hidden_sppiz00300_rslt.setColumn( 0, "choimemo", choimemo);
  2646. var destRef = ds_hidden_sppiz00300_rslt.getColumn(0, "destRef");
  2647. if (destRef == "judgmemo") { // 심사메모로 전달
  2648. var judgmemo = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  2649. if (judgmemo) { // 기존 심사메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  2650. ds_main_item1_iteminfo.setColumn( 0, "judgrmk", judgmemo +" \n"+ choimemo);
  2651. } else {
  2652. if (choiedicd) { // 처방별 메모를 전달하는 경우임
  2653. // 동일한 EDI 코드가 있을 경우만 추가
  2654. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  2655. rowcnt = eval(rowcnt) + 1;
  2656. //for (var j = 1; j < grd_ordlist.rows; j++) {
  2657. for (var j = 1; j < rowcnt; j++) {
  2658. var clodedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  2659. if (choiedicd == clodedicd) {
  2660. ds_main_item1_iteminfo.setColumn( 0, "judgrmk", choimemo);
  2661. j = grd_ordlist.rows;
  2662. }
  2663. }
  2664. } else {
  2665. ds_main_item1_iteminfo.setColumn( 0, "judgrmk", choimemo);
  2666. }
  2667. }
  2668. model.toggle("case_judgrmemo"); // 해당 tab 으로 토글시킨다.
  2669. }
  2670. else if (destRef == "edimemo") { // 청구메모로 전달
  2671. var edimemo = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  2672. if (edimemo) { // 기존 청구메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  2673. ds_main_item1_iteminfo.setColumn( 0, "edirmk", edimemo +" \n"+ choimemo);
  2674. } else {
  2675. if (choiedicd) { // 처방별 메모를 전달하는 경우임
  2676. // 동일한 EDI 코드가 있을 경우 * 표시
  2677. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  2678. rowcnt = eval(rowcnt) + 1;
  2679. //for (var j = 1; j < grd_ordlist.rows; j++) {
  2680. for (var j = 1; j < rowcnt; j++) {
  2681. var clodedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  2682. if (choiedicd == clodedicd) {
  2683. ds_main_item1_iteminfo.setColumn( 0, "edirmk", choimemo);
  2684. //j = grd_ordlist.rows;
  2685. j = rowcnt;
  2686. }
  2687. }
  2688. } else {
  2689. ds_main_item1_iteminfo.setColumn( 0, "edirmk", choimemo);
  2690. }
  2691. }
  2692. model.toggle("case_ediclammemo"); // 해당 tab 으로 토글시킨다.
  2693. }
  2694. else if (destRef == "prcpmemo") { // 처방별 주석로 전달
  2695. // 동일한 EDI 코드가 있을 경우 * 표시
  2696. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  2697. rowcnt = eval(rowcnt) + 1;
  2698. for (var j = 1; j < rowcnt; j++) {
  2699. //for (var j = 1; j < grd_ordlist.rows; j++) {
  2700. var iscledicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  2701. if (choiedicd == iscledicd) {
  2702. ds_main_list2.setColumn( j , "text", "*");
  2703. }
  2704. }
  2705. for (var i=1; i<grd_clcjlist.rows; i++) {
  2706. var edicd = ds_main_list4_clcjlist.getColumn(i, "edicd");
  2707. var spclspec = ds_main_list4_clcjlist.getColumn(i, "spclspec");
  2708. if (choiedicd == edicd) {
  2709. var ans = sysf_messageBox("등록된 메모가 있습니다. 기존 내역에 추가할 경우 예(Yes)\n 새로운 내역으로 변경하시려면 아니오(No) 선택하여 주십시요", "S003"); ///수정사항이 있습니다. 저장하시려면 예(Yes)\n변경하시려면 아니오(No)
  2710. if (ans == 6) { // 6: yes
  2711. // 'JX999' 코드를 추가한다.
  2712. fSpclGridInsertRow(); // 특정내역 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 추가"
  2713. var clsprow = grd_ordlist.row;
  2714. ds_main_list4.setColumn( clsprow , "unitflag", "J");
  2715. ds_main_list4.setColumn( clsprow , "edicd", choiedicd);
  2716. ds_main_list4.setColumn( clsprow , "spclcd", "JX999");
  2717. ds_main_list4.setColumn( clsprow , "spclcdnm", "JX999 기타내역");
  2718. ds_main_list4.setColumn( clsprow , "spclspec", spclspec + "\n"+ choimemo);
  2719. ds_main_list4.setColumn( clsprow , "remfact", "X(700)");
  2720. return;
  2721. }
  2722. else if (ans == 7) { // 7:no
  2723. ds_main_list4.setColumn( i , "spclspec", choimemo);
  2724. return ;
  2725. }
  2726. else if (ans == 2) { // 2:cancel
  2727. return ;
  2728. }
  2729. }
  2730. }
  2731. // 신규로 특정 내역을 추가하는 경우
  2732. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  2733. rowcnt = eval(rowcnt) + 1;
  2734. for (var j = 1; j < rowcnt; j++) {
  2735. //for (var j = 1; j < grd_ordlist.rows; j++) {
  2736. var iscledicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  2737. if (choiedicd == iscledicd) {
  2738. // 'JX999' 코드를 추가한다.
  2739. fSpclGridInsertRow(); // 특정내역 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 추가"
  2740. var clsprow = grd_clsphist.row;
  2741. ds_main_list4.setColumn( clsprow , "unitflag", "J");
  2742. ds_main_list4.setColumn( clsprow , "edicd", choiedicd);
  2743. ds_main_list4.setColumn( clsprow , "spclcd", "JX999");
  2744. ds_main_list4.setColumn( clsprow , "spclcdnm", "JX999 기타내역");
  2745. ds_main_list4.setColumn( clsprow , "spclspec", spclspec + "\n"+ choimemo);
  2746. ds_main_list4.setColumn( clsprow , "remfact", "X(700)");
  2747. return;
  2748. }
  2749. }
  2750. }
  2751. //model.refresh();
  2752. }
  2753. }
  2754. }
  2755. }
  2756. // 특정내역 중 MT015, MT016 내역을 조회하여 "소명자료" Btn (첨부물 자료관리) Popup 화면에 표시한다.
  2757. function fGetAttachedDataList() {
  2758. if(ds_main_item1_iteminfo.getColumn(0, "patnm")){
  2759. //ds_hidden_sppiz00200_cond_clsp.clearData();
  2760. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "rowstat","");
  2761. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "unitflag","");
  2762. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclcd","");
  2763. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclspec", "");
  2764. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "initedilnno", "");
  2765. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "calcscorcd", "");
  2766. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "seqno", "");
  2767. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclformat","");
  2768. // 특정내역 Grid에서 "행 삭제"한 경우 MT015 / MT016 자료를 표시하지 않도록 하는 기능 필요함
  2769. // (작성할 것!!!!!!!!!!!!!!!!!!!!!!!)
  2770. for (var i = 1; i < grd_clcjlist.rows; i++) {
  2771. var tmp = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  2772. if(tmp == "MT015" || tmp == "MT016"){
  2773. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "rowstat","-");
  2774. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "unitflag","M");
  2775. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclcd", ds_main_list4_clcjlist.getColumn(i, "spclcd"));
  2776. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclspec", ds_main_list4_clcjlist.getColumn(i, "spclspec"));
  2777. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "initedilnno", grd_clcjlist.row);
  2778. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "calcscorcd", ds_main_list4_clcjlist.getColumn(i, "edicd"));
  2779. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "seqno", "1");
  2780. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclformat", ds_main_list4_clcjlist.getColumn(i, "remfact"));
  2781. }
  2782. }
  2783. frmf_modal("SPPIZ00200", "SPPIZ00200", ""-"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00200_첨부물자료관리.xrw
  2784. fDisplayAttachedDataList()
  2785. fCheckSpclSpecData();
  2786. }
  2787. }
  2788. // "소명자료" Btn (첨부물 자료관리) Popup 화면에서 특정내역 중 MT015, MT016 정보가 입력된 환자인지를 확인한다.
  2789. // 특정내역 MT004가 입력된 환자인지 체크한다.
  2790. function fDisplayAttachedDataList() {
  2791. var isAttachedDataList = false;
  2792. var cSrcNode = instance1.selectSingleNode("ds_hidden_sppiz00200_rslt_clsp");
  2793. if (cSrcNode == null) { // 특정내역이 없는 경우임
  2794. return;
  2795. }
  2796. if (ds_hidden_sppiz00200_rslt_clsp.getColumn(0, "unitflag") == "") { // "취소" 선택시에 버튼 색이 변경되지 않도록
  2797. return;
  2798. }
  2799. var cSrcChildNodeList = cSrcNode.childNodes;
  2800. for (var i = 1; i <= cSrcChildNodeList.length; i++) {
  2801. var spclcd = ds_hidden_sppiz00200_rslt_clsp.getColumn(i, "spclcd");
  2802. if (spclcd == "MT015" || spclcd == "MT016") {
  2803. var rowstat = ds_hidden_sppiz00200_rslt_clsp.getColumn(i, "rowstat")
  2804. if (rowstat != 'D') {
  2805. var spclspec = ds_hidden_sppiz00200_rslt_clsp.getColumn(i, "spclspec");
  2806. if (spclspec) {
  2807. isAttachedDataList = true;
  2808. }
  2809. // 특정내역 Grid 에서 해당 내용을 삽입 또는 수정한다.
  2810. if (rowstat == "I") { // 삽입
  2811. fSpclGridInsertRow();
  2812. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_spclcd", spclcd);
  2813. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_spclspec", spclspec);
  2814. if (spclcd == "MT015") {
  2815. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_remfact", "X(2)");
  2816. } else {
  2817. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_remfact", "X(200)");
  2818. }
  2819. } else if (rowstat == "U") { // 수정
  2820. for (var j = 1; j < grd_clcjlist.rows; j++) {
  2821. var gridspclcd = ds_main_list4_clcjlist.getColumn(j, "spclcd");
  2822. var gridspclspec = ds_main_list4_clcjlist.getColumn(j, "spclspec");
  2823. var gridrowstatus = grd_clcjlist.rowstatus(j);
  2824. if (gridspclcd == spclcd) {
  2825. ds_main_list4.setColumn( j , "spclspec", spclspec);
  2826. if (gridrowstatus == 1 || gridrowstatus == 3) { // 1 : insert, 3 : insert & new
  2827. } else {
  2828. grd_clcjlist.rowstatus(j) = 2; // 2 : update 상태로 stat를 변경한다.
  2829. }
  2830. }
  2831. }
  2832. }
  2833. } else { // 삭제
  2834. // 특정내역 Grid 에서 해당 내용을 삭제한다.
  2835. for (var j = 1; j < grd_clcjlist.rows; j++) {
  2836. var gridspclcd = ds_main_list4_clcjlist.getColumn(j, "spclcd");
  2837. var gridspclspec = ds_main_list4_clcjlist.getColumn(j, "spclspec");
  2838. var gridrowstatus = grd_clcjlist.rowstatus(j);
  2839. if (gridspclcd == spclcd) {
  2840. if (gridrowstatus == 1 || gridrowstatus == 3) { // 1 : insert, 3 : insert & new
  2841. grd_clcjlist.deleteRow(j, false); // 해당 라인을 Grid에서 삭제한다.
  2842. } else { // 0 : new, 2 : update
  2843. grd_clcjlist.rowstatus(j) = 4; // 4 : delete 상태로 stat를 변경한다.
  2844. }
  2845. }
  2846. }
  2847. }
  2848. }
  2849. }
  2850. if (isAttachedDataList) {
  2851. btn_attData.attribute("class") = "btn5_letter4";
  2852. btn_attData.attribute("color") = "#cc3333";
  2853. } else {
  2854. btn_attData.attribute("class") = "btn2_letter4";
  2855. }
  2856. }
  2857. // DB에서 조회한 특정내역 중 MT015, MT016 정보가 입력된 환자인지를 확인한다.
  2858. // 특정내역 MT004가 입력된 환자인지 체크한다.
  2859. function fCheckSpclSpecData() {
  2860. var cSrcNode = instance1.selectSingleNode("ds_main_list4_clcjlist");
  2861. if (cSrcNode == null) { // 특정내역이 없는 경우임
  2862. return;
  2863. }
  2864. //var cSrcChildNodeList = cSrcNode.childNodes;
  2865. // for (var i = 1; i <= cSrcChildNodeList.length; i++) {
  2866. var spclcdMT015 = model.getValue("ds_main_list4_clcjlist[spclcd='MT015' or spclcd='MT016']_spclcd");
  2867. var spclcdMT004 = ds_main_list4_clcjlist.lookupExpr("spclcd == '" + MT004 + "'", "spclcd");
  2868. if (spclcdMT015.length > 0) {
  2869. btn_attData.attribute("class") = "btn5_letter4";
  2870. btn_attData.attribute("color") = "#ff0066";
  2871. } else {
  2872. btn_attData.attribute("class") = "btn2_letter4";
  2873. }
  2874. if(spclcdMT004 == "MT004") {
  2875. btn_mt004.attribute("class") = "btn5_letter4";
  2876. btn_mt004.attribute("color") = "#ff0066";
  2877. } else {
  2878. btn_mt004.attribute("class") = "btn2_letter4";
  2879. }
  2880. // }
  2881. }
  2882. //줄단위 추가
  2883. function fSpclGridInsertRow() {
  2884. // 특정내역 Grid 상에서 직접 행을 추가하는 경우 : 명세서단위 특정내역만을 추가할 수 있다.
  2885. // 줄단위 특정내역의 경우, 처방 Grid에서 'T' 컬럼을 더블클릭하여 특정내역 상세관리 Popup을 통해 입력한다.
  2886. var clcjrow = 0;
  2887. if(grd_clcjlist.rows > 1){
  2888. clcjrow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  2889. var chkdata = ds_main_list4_clcjlist.getColumn(clcjrow, "spclcd"));
  2890. if(chkdata == ""){
  2891. return;
  2892. }
  2893. }
  2894. grd_clcjlist.insertRow(clcjrow++, true,false,false);
  2895. grd_clcjlist.cellComboNodeset(clcjrow,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  2896. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_pid", ds_send.getColumn(0, "pid"));
  2897. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_indd", ds_send.getColumn(0, "indd"));
  2898. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_cretno", ds_send.getColumn(0, "cretno") );
  2899. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_fromdd", ds_send.getColumn(0, "fromdd"));
  2900. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_mskind", ds_send.getColumn(0, "mskind"));
  2901. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_unitflag", "M");
  2902. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_spclmemoflag","E" );
  2903. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_status", "3");
  2904. grd_clcjlist.row = grd_clcjlist.rows;
  2905. grd_clcjlist.rowstatus(grd_clcjlist.row) = 1;
  2906. // grd_clcjlist.gridToInstance(); 최적화문제로 주석처리 - 20081015 박창원
  2907. }
  2908. // 특정내역 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 삭제"
  2909. function fSpclGridDeleteRow() {
  2910. var rowstatus = grd_clcjlist.rowstatus(grd_clcjlist.row);
  2911. for( var i = grd_clcjlist.selectedRows; i >= 0 ; i-- ){
  2912. var cRrow = grd_clcjlist.selectedRow(i);
  2913. if (rowstatus == 4) { // 4 : delete
  2914. return;
  2915. }
  2916. else if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  2917. grd_clcjlist.deleteRow(cRrow, false); // 해당 라인을 Grid에서 삭제한다.
  2918. } else { // 0 : new, 2 : update
  2919. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_status", 4);
  2920. grd_clcjlist.rowstatus(cRrow) = 4; // 4 : delete 상태로 stat를 변경한다.
  2921. }
  2922. }
  2923. fCheckSpclSpecData();
  2924. //특정내역이 있는 처방에 'T'필드에 *표를 해준다.
  2925. //fSetOrdSpclTxt();
  2926. //
  2927. //model.refresh();
  2928. 최적화 문제로 대체 20080731 박창원
  2929. model.refreshpart("ds_main_list2_iscllist");
  2930. model.refreshpart("ds_main_list4_clcjlist");
  2931. }
  2932. // 특정내역 Grid 에서 선택한 줄단위 특정내역을 조회하고, 명세서단위 특정내역을 수정_입력한다.
  2933. function fSetDocRefLnSpclSpec(){
  2934. ds_hidden_sppij00500_rslt.clearData(); // SPPIJ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  2935. ds_hidden_sppij00500_cond_list.clearData();
  2936. ds_hidden_sppij00500_cond.clearData(); ds_hidden_sppij00500_cond.addRow();
  2937. var row = grd_clcjlist.row;
  2938. var rows = grd_clcjlist.rows;
  2939. var edicd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("edicd"));
  2940. var oldspclcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclcd"));
  2941. var oldspclcdnm = "";
  2942. var oldspclspec = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclspec"));
  2943. var oldremfact = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("remfact"));
  2944. var olddetldesc = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("detldesc"));
  2945. //줄단위 명단위 특정내역 구분.
  2946. var unitflag = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("unitflag"));
  2947. var calcscorcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("calcscorcd"));
  2948. // pid,indd추가 결과조회 팝업호출을 위하여 - 20080922 박창원
  2949. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  2950. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  2951. var rowcnt = 1;
  2952. var setrow =0 ;
  2953. if(unitflag == "J"){
  2954. if (edicd ) {
  2955. for (var i=1; i<rows; i++) {
  2956. var grdedicd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd"));
  2957. if ( edicd == grdedicd) {
  2958. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  2959. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  2960. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  2961. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd")));
  2962. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  2963. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  2964. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  2965. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("detldesc")));
  2966. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("remfact")));
  2967. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag")));
  2968. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  2969. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  2970. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  2971. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("calcscorcd")));
  2972. if (row == i) {
  2973. setrow = i;
  2974. }
  2975. rowcnt = rowcnt+1;
  2976. }
  2977. }
  2978. ds_hidden_sppij00500_cond.setColumn( 0, "pid", pid);
  2979. ds_hidden_sppij00500_cond.setColumn( 0, "indd", indd);
  2980. ds_hidden_sppij00500_cond.setColumn( 0, "flag", "U");
  2981. ds_hidden_sppij00500_cond.setColumn( 0, "edicd", edicd);
  2982. ds_hidden_sppij00500_cond.setColumn( 0, "spclcd", oldspclcd);
  2983. ds_hidden_sppij00500_cond.setColumn( 0, "spclcdnm", oldspclcdnm);
  2984. ds_hidden_sppij00500_cond.setColumn( 0, "detldesc", olddetldesc);
  2985. ds_hidden_sppij00500_cond.setColumn( 0, "spclspec", oldspclspec);
  2986. ds_hidden_sppij00500_cond.setColumn( 0, "remfact", oldremfact);
  2987. ds_hidden_sppij00500_cond.setColumn( 0, "rownum", setrow);
  2988. ds_hidden_sppij00500_cond.setColumn( 0, "unitflag", "J");
  2989. ds_hidden_sppij00500_cond.setColumn( 0, "calcscorcd", calcscorcd);
  2990. //var unitflag = ds_main_list4_clcjlist.getColumn(row, "unitflag"));
  2991. var unitflag = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("unitflag"))
  2992. // 삭제상태인 경우 처방Grid에서 입력,수정은 가능하지만 특정내역Grid에서는 편집할 수 없다.
  2993. var rowstatus = grd_clcjlist.rowstatus(row);
  2994. if (rowstatus == 4) { // 4 : delete
  2995. sysf_messageBox("삭제된 특정내역은 수정할 수", "I004"); ///삭제된 특정내역은 수정할 수 없습니다.
  2996. return;
  2997. }
  2998. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIJ00500_특정내역상세관리.xrw
  2999. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  3000. // 처리 건수
  3001. if (rsltcnt > 0) {
  3002. for(var i=rsltcnt; i>0; i--) {
  3003. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  3004. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  3005. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  3006. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  3007. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  3008. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  3009. var newremfact = ds_hidden_sppij00500_rslt_list.getColumn(i, "remfact");
  3010. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  3011. oldspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclcd");
  3012. oldspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclspec");
  3013. // 특정코드 추가인 경우
  3014. if (flag == "I") {
  3015. var clsprow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  3016. grd_clcjlist.insertRow(clsprow++, true,false,false);
  3017. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("unitflag")) = unitflag;
  3018. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  3019. //grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  3020. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  3021. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("remfact")) = newremfact;
  3022. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  3023. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("edicd")) = edicd;
  3024. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("status")) = "3";
  3025. // 특정코드 변경인 경우
  3026. } else if (flag == "U") {
  3027. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("unitflag")) = unitflag;
  3028. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  3029. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  3030. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  3031. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  3032. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  3033. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("edicd")) = edicd;
  3034. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  3035. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  3036. }
  3037. //model.refresh();
  3038. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  3039. if (oldspclcd != newspclcd || oldspclspec != newspclspec || grd_clcjlist.rowstatus(row) == 4) {
  3040. var rowstatus = grd_clcjlist.rowstatus(rownum);
  3041. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  3042. } else {
  3043. grd_clcjlist.rowstatus(rownum) = 2; // 2 : update 상태로 stat를 변경한다.
  3044. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "2";
  3045. }
  3046. }
  3047. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  3048. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  3049. rowcnt = eval(rowcnt) + 1;
  3050. for (var j = 1; j < rowcnt; j++) {
  3051. //for (var j = 1; j < grd_ordlist.rows; j++) {
  3052. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  3053. if (edicd == clcjedicd) {
  3054. if(newspclcd == "JX999"){
  3055. ds_main_list2.setColumn( j , "text", "#");
  3056. }else{
  3057. ds_main_list2.setColumn( j , "text", "*");
  3058. }
  3059. //
  3060. //model.refresh();
  3061. 최적화 문제로 대체 20080731 박창원
  3062. model.refreshpart("ds_main_list2_iscllist");
  3063. }
  3064. }
  3065. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  3066. // 특정코드 삭제인 경우
  3067. } else if (flag == "D" && rownum != "" ) {
  3068. // 특정내역 Grid에서 삭제
  3069. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  3070. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  3071. } else { // 0 : new, 2 : update
  3072. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  3073. }
  3074. // 처방Grid에서도 해당 줄단위 특정내역의 삭제 처리를 한다.
  3075. // 줄번호가 부여된 줄단위 특정내역이 삭제된 경우, 처방Grid의 'T' 컬럼의 "*" 를 삭제한다.
  3076. //var clcjedicd = ds_main_list4_clcjlist.getColumn(rownum, "edicd")); //root_main_list4_clcjlist_edicd
  3077. var clcjedicd = grd_clcjlist.valueMatrix( rownum,grd_clcjlist.colRef("edicd"));
  3078. if (clcjedicd) {
  3079. var isSameLn = false;
  3080. for (var j = 1; j < grd_clcjlist.rows; j++) {
  3081. if (grd_clcjlist.rowstatus(j) != 4) {
  3082. isSameLn = true; // 같은 줄번호에 여러개의 특정내역이 있는 경우임
  3083. }
  3084. }
  3085. }
  3086. if (isSameLn == false) { // 동일한 줄번호의 특정내역이 없는 경우
  3087. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  3088. rowcnt = eval(rowcnt) + 1;
  3089. for (var j = 1; j < rowcnt; j++) {
  3090. //for (var j = 1; j < grd_ordlist.rows; j++) {
  3091. var iscldicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  3092. if (clcjedicd == iscldicd) {
  3093. model.resetInstanceNode("ds_main_list2_iscllist["+ j +"]_text");
  3094. //
  3095. //model.refresh();
  3096. 최적화 문제로 대체 20080731 박창원
  3097. model.refreshpart("ds_main_list2_iscllist");
  3098. }
  3099. }
  3100. }
  3101. } // 특정코드 비교 if
  3102. } // end for
  3103. var rdounitflag = ds_send.getColumn(0, "unitflag");
  3104. if (rdounitflag == "-") {
  3105. for (var i=1; i<grd_clcjlist.rows; i++) {
  3106. var delstatus = grd_clcjlist.rowStatus(i);
  3107. var delspclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  3108. if (delstatus == 1 || delstatus == 3) { // 0 : new, 3 : insert & new
  3109. if (delspclspec == "") {
  3110. grd_clcjlist.deleteItem(i);
  3111. }
  3112. }
  3113. }
  3114. // 입력행 추가
  3115. fSpclGridInsertRow();
  3116. } else if (rdounitflag == "M") {
  3117. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'M']";
  3118. grd_clcjlist.rebuild();
  3119. } else if (rdounitflag == "J") {
  3120. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  3121. grd_clcjlist.rebuild();
  3122. }
  3123. for (var i=1; i<grd_clcjlist.rows; i++) {
  3124. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  3125. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  3126. if (status != "") {
  3127. grd_clcjlist.rowStatus(i) = status;
  3128. }
  3129. if (unitflag == "M") {
  3130. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M'and cdid != 'MX999']";
  3131. } else if (unitflag == "J") {
  3132. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J' ]";
  3133. }
  3134. }
  3135. } // 처리 건수
  3136. } else {
  3137. sysf_messageBox("EDI코드가 없는 경우 해당 줄단위 특정내역이", "I004"); ///EDI코드가 없는 경우 해당 줄단위 특정내역이 없습니다.
  3138. }
  3139. //명단위 특정내역으르 클릭한경우(unitflag =="M") 또는 빈칸을 클릭한경우는 명단위 특정내역으로 구분한다. 2007.09.23 박도형
  3140. }else{
  3141. ds_hidden_sppij00500_rslt.clearData(); // SPPIZ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  3142. ds_hidden_sppij00500_cond.clearData(); ds_hidden_sppij00500_cond.addRow();
  3143. var edicd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("edicd"));
  3144. var spclcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclcd"));
  3145. var spclcdnm = "";
  3146. var spclspec = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclspec"));
  3147. var remfact = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("remfact"));
  3148. var detldesc = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("detldesc"));
  3149. //줄단위 명단위 특정내역 구분.
  3150. var unitflag = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("unitflag"));
  3151. var calcscorcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("calcscorcd"));
  3152. ds_hidden_sppij00500_cond.setColumn( 0, "pid", pid);
  3153. ds_hidden_sppij00500_cond.setColumn( 0, "indd", indd);
  3154. ds_hidden_sppij00500_cond.setColumn( 0, "edicd", edicd);
  3155. ds_hidden_sppij00500_cond.setColumn( 0, "spclcd", spclcd);
  3156. ds_hidden_sppij00500_cond.setColumn( 0, "spclcdnm", spclcdnm);
  3157. ds_hidden_sppij00500_cond.setColumn( 0, "remfact", remfact);
  3158. ds_hidden_sppij00500_cond.setColumn( 0, "spclspec", spclspec);
  3159. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "M");
  3160. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  3161. // 명단위도 기존 입력된 내역까지 다 보낸다. 2008.01.04 박지욱
  3162. var rowcnt = 1;
  3163. for (var i=1; i<grd_clcjlist.rows; i++) {
  3164. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  3165. var spclcd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd"));
  3166. if (unitflag == "M" && grd_clcjlist.rowstatus(i) != 4 && spclcd != "") {
  3167. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  3168. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  3169. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  3170. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd")));
  3171. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  3172. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcdnm")));
  3173. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  3174. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("detldesc")));
  3175. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("remfact")));
  3176. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag")));
  3177. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  3178. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  3179. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  3180. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", calcscorcd);
  3181. if (row == i) {
  3182. setrow = i;
  3183. }
  3184. rowcnt = rowcnt+1;
  3185. }
  3186. }
  3187. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M");
  3188. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  3189. // 처리 건수
  3190. if (rsltcnt > 0) {
  3191. for(var i=rsltcnt; i>0; i--) {
  3192. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  3193. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  3194. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  3195. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  3196. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  3197. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  3198. var newremfact = ds_hidden_sppij00500_rslt_list.getColumn(i, "remfact");
  3199. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  3200. // 특정코드 추가인 경우
  3201. if (flag == "I") {
  3202. var clsprow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  3203. grd_clcjlist.insertRow(clsprow++, true,false,false);
  3204. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("unitflag")) = unitflag;
  3205. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  3206. //grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  3207. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  3208. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("remfact")) = newremfact;
  3209. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  3210. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("edicd")) = edicd;
  3211. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("status")) = "3";
  3212. // pid, indd, cretno, fromdd, mskind, spclmemoflag, seqno 세팅
  3213. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("pid")) = ds_send.getColumn(0, "pid");
  3214. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("indd")) = ds_send.getColumn(0, "indd");
  3215. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("cretno")) = ds_send.getColumn(0, "cretno");
  3216. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("fromdd")) = ds_send.getColumn(0, "fromdd");
  3217. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("mskind")) = ds_send.getColumn(0, "mskind");
  3218. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclmemoflag")) = "E";
  3219. // 특정코드 변경인 경우
  3220. } else if (flag == "U") {
  3221. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("unitflag")) = unitflag;
  3222. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  3223. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  3224. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  3225. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  3226. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  3227. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("edicd")) = edicd;
  3228. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  3229. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  3230. }
  3231. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  3232. // 특정코드 삭제인 경우
  3233. } else if (flag == "D" && rownum != "" ) {
  3234. // 특정내역 Grid에서 삭제
  3235. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  3236. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  3237. } else { // 0 : new, 2 : update
  3238. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  3239. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "4";
  3240. }
  3241. }
  3242. }
  3243. // 그리드 정렬 & 한줄추가
  3244. //fSortSpclNo();
  3245. //fSaveClcjList();
  3246. } // 처리건수
  3247. }
  3248. }
  3249. // 처방 행 삭제 or 삭제취소 후에 특정내역 sorting 작업
  3250. function fSortSpclNo() {
  3251. // 빈 줄을 삭제한다.
  3252. for (var i = 1; i < grd_clcjlist.rows; i++) {
  3253. var rowstatus = grd_clcjlist.rowstatus(i);
  3254. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  3255. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  3256. if (spclcd == "") {
  3257. // 줄을 삭제한다.
  3258. grd_clcjlist.deleteRow(i, false);
  3259. i--;
  3260. }
  3261. }
  3262. }
  3263. // JS010(특정코드:야간가산)의 hhmm이 야간(18~09시)가 아니면 특정내역 Grid에 빨간색으로 표시
  3264. for(var i = 1; i < grd_clcjlist.rows; i++) {
  3265. grd_clcjlist.rowStyle(i, "data", "color") = "#000000";
  3266. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  3267. var spclspec = ds_main_list4_clcjlist.getColumn(i, "spclspec");
  3268. if (spclcd == "JS010") {
  3269. var js010chk = false;
  3270. if (spclspec.length >= 12) {
  3271. var ccyymmddhhmm = spclspec.substr(0, 12);
  3272. if (utlf_isValidDateTime(ccyymmddhhmm, "YYYYMMDDhhmm")) { // (dateHelper.js) 유효한 날짜, 시간 인지 점검
  3273. var hhmm = parseInt(spclspec.substr(8, 4), 10); // '09' 와 같은 형식으로 입력한 경우 -> 9로 처리
  3274. if (hhmm >= 1800 || hhmm < 900) {
  3275. js010chk = true;
  3276. }
  3277. }
  3278. }
  3279. if (js010chk == false) {
  3280. grd_clcjlist.rowStyle(i, "data", "color") = "#ff3333"; // ff3333=붉은색
  3281. }
  3282. }
  3283. }
  3284. grd_clcjlist.colsort(grd_clcjlist.colRef("unitflag")) = "desc";
  3285. grd_clcjlist.colsort(grd_clcjlist.colRef("edicd")) = "asc";
  3286. grd_clcjlist.colsort(grd_clcjlist.colRef("spclcd")) = "asc";
  3287. grd_clcjlist.colsort(grd_clcjlist.colRef("status")) = "desc";
  3288. var maxRow = parseInt(grd_clcjlist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다.
  3289. var maxCol = parseInt(grd_clcjlist.cols) - 1;
  3290. grd_clcjlist.sort(grd_clcjlist.fixedRows, grd_clcjlist.fixedCols, maxRow, maxCol) = "usersort";
  3291. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  3292. grd_clcjlist.gridToInstance();
  3293. // 빈줄 추가
  3294. fSpclGridInsertRow();
  3295. }
  3296. function fSetLnUnitSpclcjec() { // 'T' 필드 더블클릭시 호출한다.
  3297. var rdounitflag = ds_send.getColumn(0, "unitflag");
  3298. // pid,indd추가 결과조회 팝업호출을 위하여 - 20080922 박창원
  3299. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  3300. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  3301. if (rdounitflag == "M") {
  3302. // 줄단위로 셋팅하고 처리
  3303. rdo_unitflag.value = "J";
  3304. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  3305. grd_clcjlist.rebuild();
  3306. // 단위에 필터에 따라 해당 행있는 특정코드 콤보 재설정
  3307. for (var i=1; i<grd_clcjlist.rows; i++) {
  3308. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  3309. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  3310. if (status != "") {
  3311. grd_clcjlist.rowStatus(i) = status;
  3312. }
  3313. if (unitflag == "M") {
  3314. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M'' and cdid != 'MX999']";
  3315. } else if (unitflag == "J") {
  3316. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  3317. }
  3318. }
  3319. }
  3320. var row = grd_ordlist.row;
  3321. var rows = grd_clcjlist.rows;
  3322. ds_hidden_sppij00500_rslt.clearData(); // SPPIJ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  3323. ds_hidden_sppij00500_cond.clearData();
  3324. // 처방 Grid에서 줄번호가 부여된 경우
  3325. //var edicd = ds_main_list2_iscllist.getColumn(row, "edicd"));
  3326. var edicd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("edicd"));
  3327. var calcscorcd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("snglcalcscorcd")); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  3328. var rowcnt = 1;
  3329. var setrow = 0;
  3330. if (edicd) {
  3331. if (rows == 1) {
  3332. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  3333. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  3334. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  3335. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", indd);
  3336. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  3337. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  3338. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  3339. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  3340. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "");
  3341. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  3342. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "");
  3343. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  3344. } else {
  3345. for (var i=1; i<rows; i++) {
  3346. var clcjcalcscorcd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("calcscorcd"));
  3347. var clcjedicd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd"));
  3348. var spclcd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd"));
  3349. if ( edicd == clcjedicd) {
  3350. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  3351. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("calcscorcd"))); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  3352. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd")));
  3353. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("detldesc")));
  3354. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  3355. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  3356. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  3357. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("remfact")));
  3358. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  3359. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", "J")
  3360. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  3361. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  3362. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  3363. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  3364. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", "");
  3365. rowcnt = rowcnt+1;
  3366. // 특정내역 상세 화면에 보여줄 특정내역 선택
  3367. setrow = i;
  3368. }
  3369. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  3370. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  3371. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  3372. if ( setrow != 0 ) {
  3373. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  3374. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  3375. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "U");
  3376. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclcd")));
  3377. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  3378. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("detldesc")));
  3379. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclspec")));
  3380. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("remfact")));
  3381. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", setrow);
  3382. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", "");
  3383. } else {
  3384. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  3385. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  3386. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  3387. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  3388. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  3389. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "");
  3390. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  3391. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "");
  3392. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  3393. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", "");
  3394. }
  3395. }
  3396. }
  3397. ds_hidden_sppij00500_rslt.clearData();
  3398. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIJ00500_특정내역상세관리.xrw
  3399. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  3400. // 처리 건수
  3401. if (rsltcnt > 0) {
  3402. for(var i=rsltcnt; i>0; i--) {
  3403. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  3404. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  3405. var calcscorcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "calcscorcd");
  3406. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  3407. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  3408. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  3409. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  3410. var newremfact = model.getValue("ds_hidden_sppij00500_rslt_list["+ i +"]_remfact ");
  3411. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  3412. var oldspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclcd");
  3413. var oldspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclspec");
  3414. // 특정코드 추가인 경우
  3415. if (flag == "I") {
  3416. var clcjrow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  3417. grd_clcjlist.insertRow(clcjrow++, true,false,false);
  3418. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("pid")) = ds_send.getColumn(0, "pid");
  3419. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("indd")) = ds_send.getColumn(0, "indd");
  3420. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("cretno")) = ds_send.getColumn(0, "cretno");
  3421. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("fromdd")) = ds_send.getColumn(0, "fromdd");
  3422. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("mskind")) = ds_send.getColumn(0, "mskind");
  3423. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("unitflag")) = "J";
  3424. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("calcscorcd")) = calcscorcd;
  3425. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("edicd")) = edicd;
  3426. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  3427. //grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  3428. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  3429. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("remfact")) = newremfact;
  3430. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  3431. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclmemoflag")) = "E";
  3432. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("status")) = "3";
  3433. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  3434. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  3435. rowcnt = eval(rowcnt) + 1;
  3436. for (var j = 1; j < rowcnt; j++) {
  3437. //for (var j = 1; j < grd_ordlist.rows; j++) {
  3438. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  3439. if (edicd == clcjedicd) {
  3440. ds_main_list2.setColumn( j , "text", "*");
  3441. //
  3442. //model.refresh();
  3443. 최적화 문제로 20080731 박창원
  3444. }
  3445. }
  3446. // 특정코드 변경인 경우
  3447. } else if (flag == "U") {
  3448. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  3449. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  3450. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  3451. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  3452. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  3453. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  3454. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  3455. }
  3456. //model.refresh();
  3457. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  3458. if (oldspclcd != newspclcd || oldspclspec != newspclspec || grd_clcjlist.rowstatus(row) == 4) {
  3459. var rowstatus = grd_clcjlist.rowstatus(rownum);
  3460. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  3461. } else {
  3462. grd_clcjlist.rowstatus(rownum) = 2; // 2 : update 상태로 stat를 변경한다.
  3463. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "2";
  3464. }
  3465. }
  3466. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  3467. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  3468. rowcnt = eval(rowcnt) + 1;
  3469. for (var j = 1; j < rowcnt; j++) {
  3470. //for (var j = 1; j < grd_ordlist.rows; j++) {
  3471. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  3472. if (edicd == clcjedicd) {
  3473. ds_main_list2.setColumn( j , "text", "*");
  3474. //
  3475. //model.refresh();
  3476. 최적화 문제로 20080731 박창원
  3477. }
  3478. }
  3479. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  3480. // 특정코드 삭제인 경우
  3481. } else if (flag == "D" && rownum != "" ) {
  3482. var cnt = 0;
  3483. for (var j = 1; j < grd_clcjlist.rows; j++) {
  3484. var clcjedicd = ds_main_list4_clcjlist.getColumn(j, "edicd");
  3485. if (edicd == clcjedicd) {
  3486. if (grd_clcjlist.rowstatus(j) != 4) {
  3487. cnt++;
  3488. }
  3489. }
  3490. }
  3491. if (cnt > 0) {
  3492. } else {
  3493. grd_ordlist.valueMatrix(row, grd_ordlist.colref("text")) = "";
  3494. //model.resetInstanceNode("ds_main_list2_iscllist["+ row +"]_text");
  3495. }
  3496. // 특정내역 Grid에서 삭제
  3497. var rowstatus = grd_clcjlist.rowstatus(rownum);
  3498. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  3499. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  3500. } else { // 0 : new, 2 : update
  3501. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  3502. }
  3503. grd_clcjlist.row = rownum;
  3504. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  3505. rowcnt = eval(rowcnt) + 1;
  3506. for (var j = 1; j < rowcnt; j++) {
  3507. //for (var j = 1; j < grd_ordlist.rows; j++) {
  3508. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  3509. if (edicd == clcjedicd) {
  3510. ds_main_list2.setColumn( j , "text", "");
  3511. //
  3512. //model.refresh();
  3513. 최적화 문제로 20080731 박창원
  3514. }
  3515. }
  3516. } // 특정 코드 상태 따른 if end
  3517. } // for end
  3518. var rdounitflag = ds_send.getColumn(0, "unitflag");
  3519. if (rdounitflag == "-") {
  3520. for (var i=1; i<grd_clcjlist.rows; i++) {
  3521. var delstatus = grd_clcjlist.rowStatus(i);
  3522. var delspclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  3523. if (delstatus == 1 || delstatus == 3) { // 0 : new, 3 : insert & new
  3524. if (delspclspec == "") {
  3525. grd_clcjlist.deleteItem(i);
  3526. }
  3527. }
  3528. }
  3529. // 입력행 추가
  3530. fSpclGridInsertRow();
  3531. } else if (rdounitflag == "M") {
  3532. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'M']";
  3533. grd_clcjlist.rebuild();
  3534. } else if (rdounitflag == "J") {
  3535. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  3536. grd_clcjlist.rebuild();
  3537. }
  3538. for (var i=1; i<grd_clcjlist.rows; i++) {
  3539. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  3540. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  3541. if (status != "") {
  3542. grd_clcjlist.rowStatus(i) = status;
  3543. }
  3544. if (unitflag == "M") {
  3545. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  3546. } else if (unitflag == "J") {
  3547. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  3548. }
  3549. }
  3550. } // 처리 건수 if end
  3551. //
  3552. //model.refresh();
  3553. 최적화 문제로 대체 20080731 박창원
  3554. model.refreshpart("ds_main_list2_iscllist");
  3555. model.refreshpart("ds_main_list4_clcjlist");
  3556. } else {
  3557. sysf_messageBox("EDI코드가 없는 경우 해당 줄단위 특정내역이", "I004"); ///EDI코드가 없는 경우 해당 줄단위 특정내역이 없습니다.
  3558. }
  3559. }
  3560. function fGetStageTNM(){
  3561. ds_hidden_smpij02000_rslt.clearData(); // SMPIZ02000_환자별암병기분류조회 에서 선택된 결과가 copyNode되는 경로임
  3562. ds_hidden_smpij02000_cond.clearData(); ds_hidden_smpij02000_cond.addRow();
  3563. ds_hidden_smpij02000_cond.setColumn( 0, "pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  3564. ds_hidden_smpij02000_cond.setColumn( 0, "insuflag", "");
  3565. frmf_modal("SMPIJ02000", "SMPIJ02000", "ds_hidden_smpij02000_cond""-"ds_send_list01"", "", "", "10", "10", "", "", "", "", "", "M");
  3566. }
  3567. //심사자 메모 팝업 갱신
  3568. function fSetJudgMemoRefresh(){
  3569. //model.refresh();
  3570. var memo = ds_hidden_sppiz00700_rslt.getColumn(0, "memo");
  3571. var tmp = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  3572. if(tmp){
  3573. tmp = tmp + " ";
  3574. }
  3575. ds_main_item1_iteminfo.setColumn( 0, "judgrmk",tmp + memo);
  3576. //
  3577. //model.refresh();
  3578. 최적화 문제로 대체 20080731 박창원
  3579. //model.refresh();
  3580. }
  3581. //EDI 메모 팝업 갱신
  3582. function fSetEdiMemoRefresh(){
  3583. var memo = ds_hidden_sppiz00700_rslt.getColumn(0, "memo");
  3584. var tmp = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  3585. if(tmp){
  3586. tmp = tmp + " ";
  3587. }
  3588. ds_main_item1_iteminfo.setColumn( 0, "edirmk",tmp + memo);
  3589. //
  3590. //model.refresh();
  3591. 최적화 문제로 대체 20080731 박창원
  3592. //model.refresh();
  3593. }
  3594. //확인코드(JT001) 줄단위 특정내역 입력
  3595. function fCnfmCdInsert(){
  3596. var trgtManWindow = getChildWindow("SPPIJ00500");
  3597. //var edicd = ds_main_list2_iscllist.getColumn(grd_ordlist.row, "edicd"));
  3598. var edicd = grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colref("edicd"));
  3599. var selectededicd = "";
  3600. var row = 0;
  3601. ds_hidden_sppij00500_rslt.clearData(); // SPPIZ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  3602. ds_hidden_sppij00500_cond.clearData(); ds_hidden_sppij00500_cond.addRow();
  3603. if(edicd){
  3604. for (var i = 1; i < grd_clcjlist.rows; i++) {
  3605. if(edicd == ds_main_list4_clcjlist.getColumn(i, "edicd")){
  3606. ds_hidden_sppij00500_cond.setColumn( 0, "edicd", ds_main_list4_clcjlist.getColumn(i, "edicd"));
  3607. ds_hidden_sppij00500_cond.setColumn( 0, "spclcd", ds_main_list4_clcjlist.getColumn(i, "spclcd"));
  3608. ds_hidden_sppij00500_cond.setColumn( 0, "remfact", ds_main_list4_clcjlist.getColumn(i, "remfact"));
  3609. ds_hidden_sppij00500_cond.setColumn( 0, "spclspec", ds_main_list4_clcjlist.getColumn(i, "spclspec"));
  3610. ds_hidden_sppij00500_cond.setColumn( 0, "row", i);
  3611. selectededicd = edicd;
  3612. row = i;
  3613. }
  3614. }
  3615. //이미 등록된 확인코드가 있는경우
  3616. if(selectededicd){
  3617. ds_hidden_sppij00500_cond.setColumn( 0, "unitflag", "J");
  3618. var chk = ds_hidden_sppij00500_cond.getColumn(0, "spclcd");
  3619. if(chk == "JT001"){
  3620. ds_hidden_sppiz01100_rslt.clearData();
  3621. dsf_makeValue( ds_hidden_sppiz01100_cond, "code", "string", ds_hidden_sppij00500_cond.getColumn(0, "spclspec"));
  3622. dsf_makeValue( ds_hidden_sppiz01100, "edicd", "string", edicd);
  3623. frmf_modal("SPPIZ01100", "SPPIZ01100", "ds_hidden_sppiz01100""-"ds_init_sppiz01100"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ01100_확인코드조회
  3624. if (instance1.selectSingleNode("ds_hidden_sppiz01100_rslt")) {
  3625. ds_main_list4.setColumn( row , "spclspec", ds_hidden_sppiz01100_rslt.getColumn(0, "code"));
  3626. //Combo 줄단위 코드로 셋팅
  3627. grd_clcjlist.cellComboNodeset(row,3) = "ds_init_P0117list_P0117[minval = 'J']";
  3628. grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colref("cnfmcd")) = ds_hidden_sppiz01100_rslt.getColumn(0, "code");
  3629. //model.refresh();
  3630. fSpclGridInsertRow() ;
  3631. }
  3632. }
  3633. //등록된 확인코드가 없으면 신규로 발생시켜준다.
  3634. }else{
  3635. ds_hidden_sppiz01100_rslt.clearData();
  3636. dsf_makeValue( ds_hidden_sppiz01100_cond, "code", "string", "");
  3637. frmf_modal("SPPIZ01100", "SPPIZ01100", "ds_hidden_sppiz01100""-"ds_init_sppiz01100"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ01100_확인코드조회
  3638. if (instance1.selectSingleNode("ds_hidden_sppiz01100_rslt")) {
  3639. fSpclGridInsertRow() ;
  3640. var row = grd_clcjlist.rows - 1;
  3641. //Combo 줄단위 코드로 셋팅
  3642. grd_clcjlist.cellComboNodeset(row,3) = "ds_init_P0117list_P0117[minval = 'J']";
  3643. ds_main_list4.setColumn( row , "edicd", edicd);
  3644. ds_main_list4.setColumn( row , "spclcd", "JT001");
  3645. ds_main_list4.setColumn( row , "unitflag","J");
  3646. ds_main_list4.setColumn( row , "spclmemoflag","E" );
  3647. ds_main_list4.setColumn( row , "remfact", "X(5)");
  3648. ds_main_list4.setColumn( row , "spclspec", ds_hidden_sppiz01100_rslt.getColumn(0, "code"));
  3649. grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colref("cnfmcd")) = ds_hidden_sppiz01100_rslt.getColumn(0, "code");
  3650. //ds_main_list2.setColumn( 0, "iscllist[" + grd_ordlist.row + "]_cnfmcd",ds_hidden_sppiz01100_rslt.getColumn(0, "code"));
  3651. fSpclGridInsertRow() ;
  3652. }
  3653. }
  3654. //특정내역이 있는 처방에 'T'필드에 *표를 해준다.
  3655. //fSetOrdSpclTxt();
  3656. }
  3657. }
  3658. ///////////////////////////////////////////////////////////////////////////
  3659. //특정내역 관련 코딩 종료 //
  3660. ///////////////////////////////////////////////////////////////////////////
  3661. ///////////////////////////////////////////////////////////////////////////
  3662. // 조합기호(ipt_cmpyno)를 입력하면 해당 조합명칭을 조회한다.
  3663. function fGetCmpyNm() {
  3664. /*var rrgstno = ds_main_item1_iteminfo.getColumn(0, "rrgstno");
  3665. rrgstno = rrgstno.replace("-","");
  3666. //보험증번호 조회(보험자격조회)
  3667. var parm = rrgstno + "▦" + //주민번호
  3668. ds_main_item1_iteminfo.getColumn(0, "patnm") + "▦" + //이름
  3669. ds_main_item1_iteminfo.getColumn(0, "indd") + "▦";//진료일자
  3670. frmf_setParameter("SPPMC03700_PARM",parm);
  3671. frmf_setParameter("SPPMC03700_RTN","");
  3672. frmf_modal("SPPMC03700", "SPPMC03700", ""-"", "", "1", "400", "400", "", "", "", "", "", "M"); */
  3673. }
  3674. //보조유형이 바뀌는경우
  3675. function fSetPatSuppRate() {
  3676. // 보조유형ID과 요율%로 combo 의 value
  3677. // 보조유형NM과 요율%로 combo 의 label
  3678. //cmb_suppkind.choices.itemset.attribute("nodeset") = "ds_main_item4_insu[suppkind = '"+ cmb_suppkind.value +"']";
  3679. var suppkindcd = ds_main_item4_insu.getColumn(0, "suppkind");
  3680. var payownbrate = ds_main_item4_insu.getColumn(0, "ownbrate");
  3681. ds_main_item1_iteminfo.setColumn( 0, "suppkindcd", suppkindcd);
  3682. ds_main_item1_iteminfo.setColumn( 0, "ownrate", payownbrate);
  3683. if(payownbrate == "20"){
  3684. opt_suppkind.attribute("class") = "output_fix";
  3685. }else{
  3686. opt_suppkind.attribute("color") = "#ff0066";
  3687. }
  3688. //
  3689. //model.refresh();
  3690. 최적화 문제로 대체 20080731 박창원
  3691. model.refreshpart("ds_main_item1_iteminfo");
  3692. }
  3693. ///////////////////////////////////////////////////////////////////////////
  3694. //처방 관련 코딩 시작 //
  3695. ///////////////////////////////////////////////////////////////////////////
  3696. //처방조회 옵션에 항목구분에 처방이 있는 것만 Bold로 보여준다.
  3697. //이건 처음에 로드했을때 한번만 도는것이라서 따로 분리하여 만듬. 2007.09.09 박도형
  3698. // 최적화 문제로 else if를 사용하여 수정 - 20081017 박창원
  3699. function fSetItemBold(){
  3700. rdo_ordfilflag.item(0).attribute("font-weight") = "bold"; // "전체" 항목은 default 로 굵게 표시한다.
  3701. //우선 초기화를 한다.
  3702. rdo_ordfilflag.item(1).attribute("font-weight") = "normal";
  3703. rdo_ordfilflag.item(2).attribute("font-weight") = "normal";
  3704. rdo_ordfilflag.item(3).attribute("font-weight") = "normal";
  3705. rdo_ordfilflag.item(4).attribute("font-weight") = "normal";
  3706. rdo_ordfilflag.item(5).attribute("font-weight") = "normal";
  3707. rdo_ordfilflag.item(6).attribute("font-weight") = "normal";
  3708. rdo_ordfilflag.item(7).attribute("font-weight") = "normal";
  3709. rdo_ordfilflag.item(8).attribute("font-weight") = "normal";
  3710. rdo_ordfilflag.item(9).attribute("font-weight") = "normal";
  3711. rdo_ordfilflag.item(10).attribute("font-weight") = "normal";
  3712. rdo_ordfilflag.item(11).attribute("font-weight") = "normal";
  3713. rdo_ordfilflag.item(12).attribute("font-weight") = "normal";
  3714. // 처방 조회부 항목구분 Radio에서 해당 처방이 있는 item을 굵게 표시한다.
  3715. var item1 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 01 + "'", "item1"); //항목구분 에 Bold처리하기 위한 체크
  3716. var item2 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 02 + "'", "item1");
  3717. var item3 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 03 + "'", "item1");
  3718. var item4 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 04 + "'", "item1");
  3719. var item5 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 05 + "'", "item1");
  3720. var item6 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 06 + "'", "item1");
  3721. var item7 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 07 + "'", "item1");
  3722. var item8 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 08 + "'", "item1");
  3723. var item9 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 09 + "'", "item1");
  3724. var item10 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 10 + "'", "item1");
  3725. var itemSS = ds_main_list2_iscllist.lookupExpr("item1 == '" + SS + "'", "item1");
  3726. var itemAA = ds_main_list2_iscllist.lookupExpr("item1 == '" + AA + "'", "item1");
  3727. var itemBB = ds_main_list2_iscllist.lookupExpr("item1 == '" + BB + "'", "item1");
  3728. if (item1 == "01") {
  3729. rdo_ordfilflag.item(1).attribute("font-weight") = "bold";
  3730. }
  3731. if (item2 == "02") {
  3732. rdo_ordfilflag.item(2).attribute("font-weight") = "bold";
  3733. }
  3734. if (item3 == "03") {
  3735. rdo_ordfilflag.item(3).attribute("font-weight") = "bold";
  3736. }
  3737. if (item4 == "04") {
  3738. rdo_ordfilflag.item(4).attribute("font-weight") = "bold";
  3739. }
  3740. if (item5 == "05") {
  3741. rdo_ordfilflag.item(5).attribute("font-weight") = "bold";
  3742. }
  3743. if (item6 == "06") {
  3744. rdo_ordfilflag.item(6).attribute("font-weight") = "bold";
  3745. }
  3746. if (item7 == "07") {
  3747. rdo_ordfilflag.item(7).attribute("font-weight") = "bold";
  3748. }
  3749. if (item8 == "08") {
  3750. rdo_ordfilflag.item(8).attribute("font-weight") = "bold";
  3751. }
  3752. if (item9 == "09") {
  3753. rdo_ordfilflag.item(9).attribute("font-weight") = "bold";
  3754. }
  3755. if (item10 == "10") {
  3756. rdo_ordfilflag.item(10).attribute("font-weight") = "bold";
  3757. }
  3758. if (itemSS == "SS") {
  3759. rdo_ordfilflag.item(11).attribute("font-weight") = "bold";
  3760. }
  3761. if (itemAA == "AA" || itemBB == "BB" ) {
  3762. rdo_ordfilflag.item(12).attribute("font-weight") = "bold";
  3763. }
  3764. }
  3765. // 20091126 수정추가 JHP 요청번호 8496, 주사제 4항1목, 마취제 5항 1목에 대해 1회량이 20이 넘으면 메세지 처리요청 ####################시작
  3766. function fChkinjanstmsg(){
  3767. var visualcalcscorcd = "-";
  3768. // SNGLEARNCLS - > 05, 04, 09 (처방분류에서 주사제_내분비대사/ Insulin&Antidiabetics 제외) 구현해야함.
  3769. // 20091130 JHP snglearncls값 확인하여 050409값일때는 메세지 처리 제외한다.
  3770. // 처방for 로직 수정 속도개선 plet2
  3771. var nodelist = model.instances(0).selectNodes("ds_main_list2_iscllist[item1='04' and item2='01' and calcqty>= 20 and snglearncls!='050409']_snglcalcscorcd");
  3772. if (nodelist.length > 0) {
  3773. var i=0;
  3774. while(nodelist.nextNode()){
  3775. visualcalcscorcd = visualcalcscorcd + ', ' + nodelist.item(i).value;
  3776. ++i;
  3777. }
  3778. }
  3779. if(visualcalcscorcd != "-"){
  3780. sysf_messageBox("1회량 20이상인 주사제가 존재합니다.(인슐린제외) \n\n(" + visualcalcscorcd + ")\n\n","I007");
  3781. }
  3782. }
  3783. // 항목별소계
  3784. function fSetItemSubTotal() {
  3785. grd_ordlist.rebuildStyle();
  3786. grd_ordlist.rebuild();
  3787. // ****************************************************************************************************************
  3788. // 항목별 소계 subtotal 김상진 20101122
  3789. // ****************************************************************************************************************
  3790. // #ffff0| 밝은노랑
  3791. // #d9e3fe 옅은파랑
  3792. // #eeddff 옅은보라
  3793. // #b9fcf8 밝은하늘
  3794. // #cefcfa 옅은하늘
  3795. var grdobj = document.controls.item("grd_ordlist");
  3796. if (model.getValue(chk_showsubtotal.attribute("ref")) == "Y") {
  3797. var col_hngnm = grdobj.colRef("hngnm");
  3798. var col_item1 = grdobj.colRef("item1");
  3799. var subtot_style = "background-color:#cefcfa; color:#0000ff;font-weight:bold;"
  3800. var subtot_fromat = "format:(-)#,###; roundmode:round; roundposition:0"
  3801. grdobj.subtotalposition= "below";
  3802. grdobj.subtotal("sum", col_item1, grdobj.colRef("hospaddamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  3803. grdobj.subtotal("sum", col_item1, grdobj.colRef("specamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  3804. grdobj.subtotal("sum", col_item1, grdobj.colRef("totordamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  3805. grdobj.subtotal("sum", col_item1, grdobj.colRef("calcamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  3806. var srchnm = "";
  3807. var fild1 = "0";
  3808. var rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_item1, true, true);
  3809. while( rowno > 0){
  3810. var fild1 = "0";
  3811. fild1 = grd_ordlist.valueMatrix(rowno, col_hngnm);
  3812. if(fild1 == "01"){
  3813. grd_ordlist.valueMatrix(rowno, col_hngnm) = "진찰료 소계";
  3814. }else if(fild1== "02"){
  3815. grd_ordlist.valueMatrix(rowno, col_hngnm) = "입원료 소계";
  3816. }else if(fild1 == "03"){
  3817. grd_ordlist.valueMatrix(rowno, col_hngnm) = "투약료 소계";
  3818. }else if(fild1 == "04"){
  3819. grd_ordlist.valueMatrix(rowno, col_hngnm) = "주사료 소계";
  3820. }else if(fild1 == "05"){
  3821. grd_ordlist.valueMatrix(rowno, col_hngnm) = "마취료 소계";
  3822. }else if(fild1 == "06"){
  3823. grd_ordlist.valueMatrix(rowno, col_hngnm) = "이학료 소계";
  3824. }else if(fild1 == "07"){
  3825. grd_ordlist.valueMatrix(rowno, col_hngnm) = "정신료 소계";
  3826. }else if(fild1 == "08"){
  3827. grd_ordlist.valueMatrix(rowno, col_hngnm) = "수술료 소계";
  3828. }else if(fild1 == "09"){
  3829. grd_ordlist.valueMatrix(rowno, col_hngnm) = "검사료 소계";
  3830. }else if(fild1 == "10"){
  3831. grd_ordlist.valueMatrix(rowno, col_hngnm) = "방사선 소계";
  3832. }else if(fild1 == "SS"){
  3833. grd_ordlist.valueMatrix(rowno, col_hngnm) = "특수 소계";
  3834. }
  3835. rowno = grdobj.findRow(srchnm, rowno + 1,col_item1,true,true);
  3836. }
  3837. }
  3838. }
  3839. //범례 색깔을 표시한다.
  3840. function fSetColorSpclJudgOrder() {
  3841. //일단 수정변경 : 20090915 : JHP 필터기능으로 숨김기능이 제어가 되어서 for문을 돌릴때 i의 제어가 어렵다 하여 datagrid의 rows로 for문을 돌리는걸로 변경한다.
  3842. if (model.getValue(chk_showitemcoloryn.attribute("ref")) == "Y") {
  3843. fSetOrderColorByEdiitem();
  3844. }
  3845. //Color 표시 범례
  3846. //1. 문제처방 : #fcd2c1
  3847. //2. 선별심사 : #ffe79d
  3848. //3. 선별심사 + 문제처방 : #7BE6B7
  3849. //4. 야간, 공휴가산 : #ffff00(밝은노랑)
  3850. //선별심사, 문제처방 체크 (기왕증, CP보다 우선시 한다. -심사자가 기왕증 ,CP여부를 확인하고 문제처방을 한경우 임으로)
  3851. var grdobj = document.controls.item("grd_ordlist");
  3852. var col_hngnm = grdobj.colRef("hngnm");
  3853. var col_probordyn = grdobj.colRef("probordyn");
  3854. var srchnm = "Y";
  3855. var spcljudgyn = "";
  3856. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_probordyn, true, true);
  3857. while( rowno > 0){
  3858. grd_ordlist.setCellProprty("body", rowno, "background", "#fcd2c1"); grd_ordlist.setCellProperty("body", rowno, "background2", "#fcd2c1");
  3859. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_probordyn, true, true);
  3860. }
  3861. var col_spcljudgyn = grdobj.colRef("spcljudgyn");
  3862. var probordyn = "";
  3863. var rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_spcljudgyn, true, true);
  3864. while( rowno > 0){
  3865. grd_ordlist.setCellProprty("body", rowno, "background", "#ffe79d"); grd_ordlist.setCellProperty("body", rowno, "background2", "#ffe79d");
  3866. probordyn = grdobj.valueMatrix(rowno, col_probordyn);
  3867. if (probordyn == "Y"){ //둘다 체크된경우
  3868. grd_ordlist.setCellProprty("body", rowno, "background", "#7BE6B7"); grd_ordlist.setCellProperty("body", rowno, "background2", "#7BE6B7");
  3869. }
  3870. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_spcljudgyn, true, true);
  3871. }
  3872. // 야간가산(산정의미 두번째 "1'), 공휴가산(산정의미 두번째자리 "5")
  3873. var col_estmmeancd = grdobj.colRef("estmmeancd");
  3874. var col_pay100 = grdobj.colRef("pay100");
  3875. srchnm = "1";
  3876. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  3877. while( rowno > 0){
  3878. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == srchnm ){
  3879. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  3880. }
  3881. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  3882. }
  3883. // 야간가산(산정의미 두번째 "1'), 공휴가산(산정의미 두번째자리 "5")
  3884. srchnm = "5";
  3885. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  3886. while( rowno > 0){
  3887. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == srchnm ){
  3888. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  3889. }
  3890. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  3891. }
  3892. //응급가산 ( '2','3','P','Q' )
  3893. var erindt = ds_main_item1_iteminfo.getColumn(0, "erindt");
  3894. var eroutdt = ds_main_item1_iteminfo.getColumn(0, "eroutdt");
  3895. var outdate = eroutdt.toDate("YYYYMMDDhhmm").getDateFormat("YYYYMMDDhhmm");
  3896. var in24date = erindt.toDate("YYYYMMDDhhmm").getAddDate(24,"h").getDateFormat("YYYYMMDDhhmm");
  3897. var basedate = "";
  3898. var execddtm = "";
  3899. if (outdate < in24date ) {
  3900. basedate = outdate;
  3901. } else {
  3902. basedate = in24date;
  3903. }
  3904. srchnm = "2";
  3905. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  3906. while( rowno > 0){
  3907. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == srchnm ){
  3908. execddtm =grdobj.valueMatrix(rowno,grdobj.colRef("execddtm")).toDate("YYYYMMDDhhmm").getDateFormat("YYYYMMDDhhmm") ;
  3909. if (execddtm > basedate) {
  3910. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  3911. }
  3912. }
  3913. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  3914. }
  3915. srchnm = "3";
  3916. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  3917. while( rowno > 0){
  3918. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == srchnm ){
  3919. execddtm =grdobj.valueMatrix(rowno,grdobj.colRef("execddtm")).toDate("YYYYMMDDhhmm").getDateFormat("YYYYMMDDhhmm") ;
  3920. if (execddtm > basedate) {
  3921. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  3922. }
  3923. }
  3924. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  3925. }
  3926. srchnm = "P";
  3927. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  3928. while( rowno > 0){
  3929. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == srchnm ){
  3930. execddtm =grdobj.valueMatrix(rowno,grdobj.colRef("execddtm")).toDate("YYYYMMDDhhmm").getDateFormat("YYYYMMDDhhmm") ;
  3931. if (execddtm > basedate) {
  3932. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  3933. }
  3934. }
  3935. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  3936. }
  3937. srchnm = "Q";
  3938. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  3939. while( rowno > 0){
  3940. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == srchnm ){
  3941. execddtm =grdobj.valueMatrix(rowno,grdobj.colRef("execddtm")).toDate("YYYYMMDDhhmm").getDateFormat("YYYYMMDDhhmm") ;
  3942. if (execddtm > basedate) {
  3943. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  3944. }
  3945. }
  3946. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  3947. }
  3948. //DRG 수술구분
  3949. var col_drgopyn = grdobj.colRef("drgopyn");
  3950. srchnm = "Y";
  3951. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_drgopyn, true, true);
  3952. while( rowno > 0){
  3953. grdobj.cellStyle("background-color", rowno, col_pay100, rowno, col_pay100) = "#fec34d";
  3954. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_drgopyn, true, true);
  3955. }
  3956. // 급여구분 본인부담, 일반 색깔구분
  3957. var col_calcpayflag = grdobj.colRef("calcpayflag");
  3958. srchnm = "1";
  3959. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_calcpayflag, true, true);
  3960. while( rowno > 0){
  3961. grdobj.cellStyle("background-color", rowno, col_calcpayflag, rowno, col_calcpayflag) = "#00ff00";
  3962. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_calcpayflag, true, true);
  3963. }
  3964. srchnm = "2";
  3965. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_calcpayflag, true, true);
  3966. while( rowno > 0){
  3967. var pynpy = grdobj.valueMatrix(rowno,grdobj.colRef("pynpy"));
  3968. if (pynpy != 0) {
  3969. grdobj.cellStyle("background-color", rowno, col_calcpayflag, rowno, col_calcpayflag) = "#ccccff";
  3970. } else {
  3971. grdobj.cellStyle("background-color", rowno, col_calcpayflag, rowno, col_calcpayflag) = "#ff99cc";
  3972. }
  3973. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_calcpayflag, true, true);
  3974. }
  3975. // 외래 필수심사 품목 표기
  3976. var col_bfjudgyn = grdobj.colRef("bfjudgyn");
  3977. srchnm = "Y";
  3978. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_bfjudgyn, true, true);
  3979. while( rowno > 0){
  3980. grdobj.cellStyle("background-color", rowno, col_hngnm, rowno, col_hngnm) = "#f7a08b";
  3981. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_bfjudgyn, true, true);
  3982. }
  3983. // 응급수가 표기 : 별표1 (2015.12.30.LEJ)
  3984. var col_pordarcptyn = grdobj.colRef("pordarcptyn");
  3985. srchnm = "1";
  3986. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_pordarcptyn, true, true);
  3987. while( rowno > 0){
  3988. grdobj.cellStyle("background-color", rowno, col_pordarcptyn, rowno, col_pordarcptyn) = "#66CCFF";
  3989. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_pordarcptyn, true, true);
  3990. }
  3991. // 응급수가 표기 : 별표2 (2015.12.30.LEJ)
  3992. var col_pordarcptyn = grdobj.colRef("pordarcptyn");
  3993. srchnm = "2";
  3994. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_pordarcptyn, true, true);
  3995. while( rowno > 0){
  3996. grdobj.cellStyle("background-color", rowno, col_pordarcptyn, rowno, col_pordarcptyn) = "#FF66FF";
  3997. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_pordarcptyn, true, true);
  3998. }
  3999. // 응급수가 표기 : 별표3 (2015.12.30.LEJ)
  4000. var col_pordarcptyn = grdobj.colRef("pordarcptyn");
  4001. srchnm = "3";
  4002. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_pordarcptyn, true, true);
  4003. while( rowno > 0){
  4004. grdobj.cellStyle("background-color", rowno, col_pordarcptyn, rowno, col_pordarcptyn) = "#339933";
  4005. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_pordarcptyn, true, true);
  4006. }
  4007. var spclcnt = grd_clcjlist.rows;
  4008. var col_edicd = grdobj.colRef("edicd");
  4009. var spclcd = "";
  4010. var spclspec = "";
  4011. var spcledicd = "";
  4012. var spclunitflag = "";
  4013. for (var i = 0; i < spclcnt; i++) {
  4014. spclcd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd"));
  4015. spclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  4016. spcledicd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd"));
  4017. spclunitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  4018. if (spclunitflag == 'J') { // 줄단위 특정내역인 경우만 적용한다. (2015.03.30 LEJ)
  4019. rowno = grdobj.findRow(spcledicd,grdobj.fixedrows ,col_edicd, true, true);
  4020. while( rowno > 0){
  4021. if(spclcd == "JT001"){
  4022. grdobj.valueMatrix(rowno,grdobj.colRef("cnfmcd")) = spclspec;
  4023. }else{
  4024. grdobj.valueMatrix(rowno,grdobj.colRef("text")) = "*";
  4025. }
  4026. rowno = grdobj.findRow(spcledicd,rowno + 1 ,col_edicd, true, true);
  4027. }
  4028. }
  4029. }
  4030. }
  4031. //특정내역이 있는 처방에 'T'필드에 *표를 해준다.
  4032. function fSetOrdSpclTxt(){
  4033. var cSrcNode = instance1.selectSingleNode("ds_main_list2_iscllist");
  4034. if (cSrcNode == null) { // 특정내역이 없는 경우임
  4035. return;
  4036. }
  4037. var rowcnt = ds_main_list2_iscllist.rowcount;
  4038. rowcnt = eval(rowcnt) + 1;
  4039. // grd_clcjlist.findRow 로 변경(최적화문제) - 20081017 박창원
  4040. for (var i = 1; i < rowcnt ; i++) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  4041. var edicd = ds_main_list2_iscllist.getColumn(i, "edicd");
  4042. var spcl = grd_clcjlist.rows;
  4043. ds_main_list2.setColumn( i , "text", "");
  4044. if(spcl > 0){
  4045. if (edicd != "") {
  4046. var row = grd_clcjlist.findRow(edicd, 0, grd_clcjlist.colRef("edicd"), false, true);
  4047. if ( row > 0 ) {
  4048. var spclcd = ds_main_list4_clcjlist.getColumn(row, "spclcd"));
  4049. var spclspec = ds_main_list4_clcjlist.getColumn(row, "spclspec"));
  4050. var spcledicd = ds_main_list4_clcjlist.getColumn(row, "spcledicd"));
  4051. if(edicd == spcledicd){
  4052. if(spclcd == "JT001"){
  4053. ds_main_list2.setColumn( i , "cnfmcd", spclspec);
  4054. }else{
  4055. ds_main_list2.setColumn( i , "text", "*");
  4056. }
  4057. }
  4058. }
  4059. }
  4060. }
  4061. }
  4062. //grd_ordlist.refresh();
  4063. }
  4064. // 처방 치식 입력
  4065. function fOrderToothInput() {
  4066. var row = grd_ordlist.mouseRow;
  4067. ds_hidden_sppiz00600_cond.setColumn( 0, "pid", ds_main_item1_clbs.getColumn(0, "pid"));
  4068. ds_hidden_sppiz00600_cond.setColumn( 0, "toot", ds_main_list2_clod.getColumn(row, "toot")));
  4069. ds_hidden_sppiz00600_rslt.clearData(); // SPPIZ00600_상병및처방별치식 에서 선택된 결과가 copyNode되는 경로임
  4070. frmf_modal("SPPIZ00600", "SPPIZ00600", "ds_hidden_sppiz00600_cond""-"ds_hidden_cond"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00600_상병및처방별치식.xrw
  4071. var tootSelect = instance1.selectSingleNode("ds_hidden_sppiz00600_rslt");
  4072. if (tootSelect != null) { // 취소를 누른 경우를 제외시킴
  4073. var toot = ds_hidden_sppiz00600_rslt.getColumn(0, "toot");
  4074. ds_main_list3.setColumn( row , "toothYN", ds_hidden_sppiz00600_rslt.getColumn(0, "toothYN"));
  4075. ds_main_list3.setColumn( row , "toot", toot);
  4076. //model.refresh();
  4077. if (ds_hidden_sppiz00600_cond.getColumn(0, "toot") != toot) { // 치식번호가 변경된 경우
  4078. var diagstatus = grd_diaglist.rowstatus(row);
  4079. if (diagstatus == 0 || diagstatus == 2) { // 0 : new, 2 : update
  4080. grd_diaglist.rowstatus(row) = 2; // 2 : update
  4081. }
  4082. }
  4083. }
  4084. }
  4085. ///////////////////////////////////////////////////////////////////////////
  4086. //처방 관련 코딩 끝 //
  4087. ///////////////////////////////////////////////////////////////////////////
  4088. ///////////////////////////////////////////////////////////////////////////
  4089. //저장로직 관련 코딩 시작 //
  4090. ///////////////////////////////////////////////////////////////////////////
  4091. //저장로직
  4092. function fSaveMain(flag){
  4093. // 1. 기본적인 누락정보를 확인한다.
  4094. if (fCheckSave()){
  4095. } else {
  4096. return false;
  4097. }
  4098. fSaveAll();
  4099. //fGetItemInfo();
  4100. //보험, 급여환자인경우는 중증여부를 체크한다.
  4101. var chkInsukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  4102. if(chkInsukind == "11" || chkInsukind == "21" || chkInsukind == "22"){
  4103. if (flag != "P") {
  4104. //1. 중증, 산정특례 변경 여부 체크
  4105. fUpdtCheckEssc(flag);
  4106. }
  4107. }
  4108. return true;
  4109. }
  4110. function fSaveAll(){
  4111. ds_send_item1.setColumn( 0, "iteminfo",getNodeListCSV(instance1.selectNodes("ds_main_item1_iteminfo")));
  4112. //상병은 전체 삭제 날리고 다시 insert시킨다.
  4113. //빈데이터를 삭제한다.
  4114. var rowcnt = grd_diaglist.rows;
  4115. for (var i = rowcnt; i > 0; i--) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  4116. var diagcd = ds_main_list3_diaglist.getColumn(i, "diagcd");
  4117. if(diagcd == ""){
  4118. grd_diaglist.deleteRow(i, false);
  4119. }else{
  4120. grd_diaglist.rowstatus(i) = 3;
  4121. }
  4122. }
  4123. var updtdiag = getGridUpdateData(grd_diaglist);
  4124. if(updtdiag) {
  4125. ds_send.setColumn( 0, "diaglist",grd_diaglist.getUpdateData());
  4126. }
  4127. if (btn_save.disabled == false) {
  4128. //빈데이터를 삭제한다.
  4129. for (var i = 1; i < grd_clcjlist.rows; i++) { // Grid 필터링 이후 Grid 상에 표시된 특정내역 개수만큼 돌면서
  4130. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  4131. if(spclcd == ""){
  4132. var rowstatus = grd_clcjlist.rowstatus(i);
  4133. if (rowstatus == 4) { // 4 : delete
  4134. return;
  4135. }
  4136. else if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  4137. grd_clcjlist.deleteRow(i, false); // 해당 라인을 Grid에서 삭제한다.
  4138. } else { // 0 : new, 2 : update
  4139. grd_clcjlist.rowstatus(i) = 4; // 4 : delete 상태로 stat를 변경한다.
  4140. }
  4141. }
  4142. }
  4143. var updtclcj = getGridUpdateData(grd_clcjlist);
  4144. if(updtclcj) {
  4145. ds_send.setColumn( 0, "clcjlist",grd_clcjlist.getUpdateData());
  4146. //if ( submit("TXPIJ00303") ) {
  4147. //삭제였던 특정내역은 그리드에서 지워 버린다.
  4148. for (var d = grd_clcjlist.rows; d > 0 ; d--) {
  4149. var delstatus = grd_clcjlist.rowstatus(d);
  4150. if(delstatus == 4){
  4151. grd_clcjlist.deleteRow(d, false); // 해당 라인을 Grid에서 삭제한다.
  4152. }
  4153. }
  4154. grd_clcjlist.clearStatus();
  4155. // }
  4156. }
  4157. //저장후 빈행을 추가해 준다.
  4158. fSpclGridInsertRow() ;
  4159. }
  4160. //특정내역 처리
  4161. var judgrmk = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  4162. var edirmk = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  4163. var tstrmk = ds_main_item1_iteminfo.getColumn(0, "tstrmk");
  4164. var dumprmk = ds_main_item1_iteminfo.getColumn(0, "dumprmk");
  4165. // var tmpedirmk = strTrim(edirmk);
  4166. ds_main_list5.clearData();
  4167. if(judgrmk){
  4168. fSetJudgEDIMemo(judgrmk, "Y");
  4169. }
  4170. if(edirmk){
  4171. fSetJudgEDIMemo(edirmk, "N");
  4172. }
  4173. if(tstrmk){
  4174. fSetJudgEDIMemo(tstrmk, "T");
  4175. }
  4176. if(dumprmk){
  4177. fSetJudgEDIMemo(dumprmk, "D");
  4178. }
  4179. ds_send.setColumn( 0, "spclspec",getNodeListCSV(instance1.selectNodes("ds_main_list5_judgrmk")));
  4180. // submit("TXPIJ00309",false);
  4181. var oParam = {};
  4182. oParam.id = "TXPIJ00309";
  4183. oParam.service = "bfjudgapp.InHospJudg";
  4184. oParam.method = "reqExeSaveAll";
  4185. oParam.inds = "req=ds_ diagreq=ds_ clcjreq=ds_ spclreq=ds_";
  4186. oParam.outds = "ds_=vcode ds_=rareessc ds_=chkesscedi ds_=getdschcalccheck ds_=drginfo";
  4187. oParam.async = false;
  4188. oParam.callback = "cf_TXPIJ00309";
  4189. tranf_submit(oParam);
  4190. /*
  4191. function cf_TXPIJ00309(sSvcId, nErrorCode, sErrorMsg) {
  4192. if(nErrorCode < 0) return;
  4193. }
  4194. function cf_TXPIJ00309(sSvcId, nErrorCode, sErrorMsg) {
  4195. arErrorCode.push(sSvcId, nErrorCode);
  4196. }
  4197. arErrorCode.pop("TXPIJ00309") > -1
  4198. arErrorCode.pop("TXPIJ00309") < 0
  4199. */
  4200. }
  4201. //저장전 데이터 유효성을 점검한다.
  4202. function fCheckSave(){
  4203. var bfmonth6 = VAL_today.toDate().getAddDate(-180,'D');
  4204. var brthdd = ds_main_item1_iteminfo.getColumn(0, "brthdd").toDate();
  4205. var snglcalcscorcls0210 = model.getValue("ds_main_list2_iscllist[snglcalcscorcls='0210' and calcpayflag='0' and snglcalcscorcd != 'Z9000' and snglcalcscorcd != 'Z9000-1' and snglcalcscorcd != 'Q9140001' and snglcalcscorcd != 'Q9140002']_snglcalcscorcls");
  4206. var snglcalcscorcls0211 = model.getValue("ds_main_list2_iscllist[snglcalcscorcls='0211' and calcpayflag='0' and snglcalcscorcd != 'Z9000' and snglcalcscorcd != 'Z9000-1' and snglcalcscorcd != 'Q9140001' and snglcalcscorcd != 'Q9140002']_snglcalcscorcls");
  4207. if ((bfmonth6 <= brthdd ) && (snglcalcscorcls0210 != "" || snglcalcscorcls0211 != "") ) {
  4208. if (sysf_messageBox("6개월 미만 소아환자에게 식이 청구되었습니다. 확인바랍니다. 저장","S001") == 6) {
  4209. return true;
  4210. } else {
  4211. return false;
  4212. }
  4213. } else {
  4214. return true;
  4215. }
  4216. }
  4217. //상병리스트를 저장한다.
  4218. function fSaveDiagList(){
  4219. //상병은 전체 삭제 날리고 다시 insert시킨다.
  4220. //빈데이터를 삭제한다.
  4221. var rowcnt = grd_diaglist.rows;
  4222. for (var i = rowcnt; i > 0; i--) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  4223. var diagcd = ds_main_list3_diaglist.getColumn(i, "diagcd");
  4224. if(diagcd == ""){
  4225. grd_diaglist.deleteRow(i, false);
  4226. }else{
  4227. grd_diaglist.rowstatus(i) = 3;
  4228. }
  4229. }
  4230. var updtdiag = getGridUpdateData(grd_diaglist);
  4231. if(updtdiag) {
  4232. ds_send.setColumn( 0, "diaglist",grd_diaglist.getUpdateData());
  4233. // if ( submit("TXPIJ00302",false) ) {
  4234. var oParam = {};
  4235. oParam.id = "TXPIJ00302";
  4236. oParam.service = "bfjudgapp.InHospJudg";
  4237. oParam.method = "reqExeSaveDiag";
  4238. oParam.inds = "req=ds_ iteminfo=ds_";
  4239. oParam.outds = "";
  4240. oParam.async = false;
  4241. oParam.callback = "cf_TXPIJ00302";
  4242. tranf_submit(oParam);
  4243. /*
  4244. function cf_TXPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  4245. if(nErrorCode < 0) return;
  4246. }
  4247. function cf_TXPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  4248. arErrorCode.push(sSvcId, nErrorCode);
  4249. }
  4250. arErrorCode.pop("TXPIJ00302") > -1
  4251. arErrorCode.pop("TXPIJ00302") < 0
  4252. */
  4253. }
  4254. }
  4255. model.refreshpart("ds_main_list3_diaglist");
  4256. }
  4257. //특정내역을 저장 한다.
  4258. function fSaveClcjList(){
  4259. if (btn_save.disabled == false) {
  4260. //빈데이터를 삭제한다.
  4261. for (var i = 1; i < grd_clcjlist.rows; i++) { // Grid 필터링 이후 Grid 상에 표시된 특정내역 개수만큼 돌면서
  4262. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  4263. if(spclcd == ""){
  4264. var rowstatus = grd_clcjlist.rowstatus(i);
  4265. if (rowstatus == 4) { // 4 : delete
  4266. return;
  4267. }
  4268. else if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  4269. grd_clcjlist.deleteRow(i, false); // 해당 라인을 Grid에서 삭제한다.
  4270. } else { // 0 : new, 2 : update
  4271. grd_clcjlist.rowstatus(i) = 4; // 4 : delete 상태로 stat를 변경한다.
  4272. }
  4273. }
  4274. }
  4275. var updtclcj = getGridUpdateData(grd_clcjlist);
  4276. if(updtclcj) {
  4277. ds_send.setColumn( 0, "clcjlist",grd_clcjlist.getUpdateData());
  4278. // if ( submit("TXPIJ00303",false) ) {
  4279. var oParam = {};
  4280. oParam.id = "TXPIJ00303";
  4281. oParam.service = "bfjudgapp.InHospJudg";
  4282. oParam.method = "reqExeSaveClcj";
  4283. oParam.inds = "req=ds_";
  4284. oParam.outds = "";
  4285. oParam.async = false;
  4286. oParam.callback = "cf_TXPIJ00303";
  4287. tranf_submit(oParam);
  4288. /*
  4289. function cf_TXPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  4290. if(nErrorCode < 0) return;
  4291. }
  4292. function cf_TXPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  4293. arErrorCode.push(sSvcId, nErrorCode);
  4294. }
  4295. arErrorCode.pop("TXPIJ00303") > -1
  4296. arErrorCode.pop("TXPIJ00303") < 0
  4297. */
  4298. //삭제였던 특정내역은 그리드에서 지워 버린다.
  4299. for (var d = grd_clcjlist.rows; d > 0 ; d--) {
  4300. var delstatus = grd_clcjlist.rowstatus(d);
  4301. if(delstatus == 4){
  4302. grd_clcjlist.deleteRow(d, false); // 해당 라인을 Grid에서 삭제한다.
  4303. }
  4304. }
  4305. grd_clcjlist.clearStatus();
  4306. }
  4307. }
  4308. //저장후 빈행을 추가해 준다.
  4309. fSpclGridInsertRow() ;
  4310. }
  4311. }
  4312. //인적사항 저장
  4313. function fSaveItemInfo(){
  4314. // submit("TXPIJ00301",false);
  4315. var oParam = {};
  4316. oParam.id = "TXPIJ00301";
  4317. oParam.service = "bfjudgapp.InHospJudg";
  4318. oParam.method = "reqExeSaveInpt";
  4319. oParam.inds = "req=ds_";
  4320. oParam.outds = "";
  4321. oParam.async = false;
  4322. oParam.callback = "cf_TXPIJ00301";
  4323. tranf_submit(oParam);
  4324. /*
  4325. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4326. if(nErrorCode < 0) return;
  4327. }
  4328. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4329. arErrorCode.push(sSvcId, nErrorCode);
  4330. }
  4331. arErrorCode.pop("TXPIJ00301") > -1
  4332. arErrorCode.pop("TXPIJ00301") < 0
  4333. */
  4334. }
  4335. function strTrim(str){
  4336. return str.replace(/(^\s*)|(\s*$)_g, "");
  4337. }
  4338. //심사제 메모를 저장한다.
  4339. function fSaveJudgrmk(){
  4340. //특정내역 처리
  4341. var judgrmk = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  4342. var edirmk = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  4343. var tstrmk = ds_main_item1_iteminfo.getColumn(0, "tstrmk");
  4344. // var tmpedirmk = strTrim(edirmk);
  4345. ds_main_list5.clearData();
  4346. if(judgrmk){
  4347. fSetJudgEDIMemo(judgrmk, "Y");
  4348. }
  4349. //if(edirmk){
  4350. fSetJudgEDIMemo(edirmk, "N");
  4351. //}
  4352. if(tstrmk){
  4353. fSetJudgEDIMemo(tstrmk, "T");
  4354. }
  4355. ds_main_item1_iteminfo.setColumn( 0, "judgrmk_orign",judgrmk);
  4356. ds_main_item1_iteminfo.setColumn( 0, "edirmk_orign",edirmk);
  4357. ds_main_item1_iteminfo.setColumn( 0, "tstrmk_orign",tstrmk);
  4358. // submit("TXPIJ00304",false);
  4359. var oParam = {};
  4360. oParam.id = "TXPIJ00304";
  4361. oParam.service = "bfjudgapp.InHospJudg";
  4362. oParam.method = "reqExeSaveJudgrmk";
  4363. oParam.inds = "req=ds_";
  4364. oParam.outds = "";
  4365. oParam.async = false;
  4366. oParam.callback = "cf_TXPIJ00304";
  4367. tranf_submit(oParam);
  4368. /*
  4369. function cf_TXPIJ00304(sSvcId, nErrorCode, sErrorMsg) {
  4370. if(nErrorCode < 0) return;
  4371. }
  4372. function cf_TXPIJ00304(sSvcId, nErrorCode, sErrorMsg) {
  4373. arErrorCode.push(sSvcId, nErrorCode);
  4374. }
  4375. arErrorCode.pop("TXPIJ00304") > -1
  4376. arErrorCode.pop("TXPIJ00304") < 0
  4377. */
  4378. }
  4379. //원무 계산서를 작성한다.
  4380. function fSaveCalcAmt(flag){
  4381. var cnt = 1;
  4382. var pid = ds_send.getColumn(0, "pid");
  4383. var indd = ds_send.getColumn(0, "indd");
  4384. var futureinsuyn = ds_main_item1_iteminfo.getColumn(0, "futureinsuyn");
  4385. ds_send_insulist.clearData(); ds_send_insulist.addRow();
  4386. var instcd = ds_main_item1_iteminfo.getColumn(0, "instcd");
  4387. dsf_makeValue( ds_send, "insu", "string", "" );
  4388. ds_send_insu.copyData(ds_main_list1);
  4389. var nodecnt = ds_send_insu_insulist.rowcount;
  4390. // 배열 생성
  4391. var insuArray = new Array(nodecnt);
  4392. for (var i = 0; i<nodecnt; i++) {
  4393. insuArray[i] = new Array(grd_insuhistory.colref("indd"));
  4394. }
  4395. var row = 1;
  4396. for (var i = 0; i<nodecnt; i++) {
  4397. insuArray[i][0] = ds_send_insu_insulist.getColumn(row, "insukind"));
  4398. insuArray[i][1] = ds_send_insu_insulist.getColumn(row, "suppkind"));
  4399. insuArray[i][2] = ds_send_insu_insulist.getColumn(row, "mskind"));
  4400. insuArray[i][3] = ds_send_insu_insulist.getColumn(row, "fromdd"));
  4401. insuArray[i][4] = ds_send_insu_insulist.getColumn(row, "todd"));
  4402. insuArray[i][5] = ds_send_insu_insulist.getColumn(row, "cretno"));
  4403. insuArray[i][6] = ds_send_insu_insulist.getColumn(row, "seqno"));
  4404. insuArray[i][7] = ds_send_insu_insulist.getColumn(row, "pid"));
  4405. insuArray[i][8] = ds_send_insu_insulist.getColumn(row, "indd"));
  4406. insuArray[i][9] = ds_send_insu_insulist.getColumn(row, "dschnotidt"));
  4407. insuArray[i][10] = flag;
  4408. //할인계정 추가
  4409. insuArray[i][11] = ds_send_insu_insulist.getColumn(row, "disccd"));
  4410. insuArray[i][12] = ds_send_insu_insulist.getColumn(row, "todd"));
  4411. insuArray[i][13] = ds_send_insu_insulist.getColumn(row, "ownbmaxgradeflag")); // 본인부담상한 구분 추가 20140320 LEJ
  4412. // insuArray[i][13] = ds_send_insu_insulist.getColumn(row, "maxynm")); // 최종유형 날짜 처리를 위해서 20080924 박창원
  4413. // insuArray[i][14] = ds_send_insu_insulist.getColumn(row, "maxyns")); // 최종유형 날짜 처리를 위해서 20080924 박창원
  4414. row++;
  4415. }
  4416. // 종료일 기준으로 sort
  4417. for (var i = 0; i<nodecnt; i++) {
  4418. for (var j = i+1; j<nodecnt; j++) {
  4419. var oldtodd = eval(insuArray[i][4]);
  4420. var newtodd = eval(insuArray[j][4]);
  4421. if (oldtodd > newtodd) {
  4422. var tempinsukind = insuArray[j][0];
  4423. var tempsuppkind = insuArray[j][1];
  4424. var tempmskind = insuArray[j][2];
  4425. var tempfromdd = insuArray[j][3];
  4426. var temptodd = insuArray[j][4];
  4427. var tempcretno = insuArray[j][5];
  4428. var tempseqno = insuArray[j][6];
  4429. var temppid = insuArray[j][7];
  4430. var tempindd = insuArray[j][8];
  4431. var tempdschnotidt = insuArray[j][9];
  4432. var tempflag = insuArray[j][10];
  4433. var tempdisccd = insuArray[j][11];
  4434. var temporgtodd = insuArray[i][12];
  4435. var tempownbmaxgradeflag = insuArray[i][13];
  4436. insuArray[j][0] = insuArray[i][0];
  4437. insuArray[j][1] = insuArray[i][1];
  4438. insuArray[j][2] = insuArray[i][2];
  4439. insuArray[j][3] = insuArray[i][3];
  4440. insuArray[j][4] = insuArray[i][4];
  4441. insuArray[j][5] = insuArray[i][5];
  4442. insuArray[j][6] = insuArray[i][6];
  4443. insuArray[j][7] = insuArray[i][7];
  4444. insuArray[j][8] = insuArray[i][8];
  4445. insuArray[j][9] = insuArray[i][9];
  4446. insuArray[j][10]= insuArray[i][10];
  4447. insuArray[j][11]= insuArray[i][11];
  4448. insuArray[j][12]= insuArray[i][12];
  4449. insuArray[j][13]= insuArray[i][13];
  4450. insuArray[i][0] = tempinsukind;
  4451. insuArray[i][1] = tempsuppkind;
  4452. insuArray[i][2] = tempmskind;
  4453. insuArray[i][3] = tempfromdd;
  4454. insuArray[i][4] = temptodd;
  4455. insuArray[i][5] = tempcretno;
  4456. insuArray[i][6] = tempseqno;
  4457. insuArray[i][7] = temppid;
  4458. insuArray[i][8] = tempindd;
  4459. insuArray[i][9] = tempdschnotidt;
  4460. insuArray[i][10]= tempflag;
  4461. insuArray[i][11]= tempdisccd;
  4462. insuArray[i][12]= temporgtodd;
  4463. insuArray[i][13]= tempownbmaxgradeflag;
  4464. }
  4465. }
  4466. }
  4467. // 배열에 있는 데이타를 node로 다시 copy
  4468. ds_send_insu.clearData();
  4469. row = 1;
  4470. var mskind = ds_send.getColumn(0, "mskind");
  4471. for (var i = 0; i<nodecnt; i++) {
  4472. var mskind_calc = insuArray[i][2];
  4473. if(mskind == mskind_calc){
  4474. ds_send_insu_insulist.setColumn( row, "insukind", insuArray[i][0]);
  4475. ds_send_insu_insulist.setColumn( row, "suppkind", insuArray[i][1]);
  4476. ds_send_insu_insulist.setColumn( row, "mskind", insuArray[i][2]);
  4477. ds_send_insu_insulist.setColumn( row, "fromdd", insuArray[i][3]);
  4478. // 마지막 데이타의 종료일자가 '99991231'일 경우 퇴원 통보일시로 변경
  4479. // 종료일자만 체크 - 20080924
  4480. if (insuArray[i][4] == "99991231" || insuArray[i][4] == "") {
  4481. ds_send_insu_insulist.setColumn( row, "todd", insuArray[i][9]);
  4482. ds_send_insu_insulist.setColumn( row, "orgtodd", "99991231");
  4483. } else {
  4484. // 미래유형이 있는경우 처리한다. 미래유형이 있는경우 마지막 데이터는 종료일이 99991231이 아님
  4485. // 미래유형이 있는 경우 종료일을 퇴원통보일로 맞춰주고 orgtodd는 99991231로 set 한다.
  4486. if (futureinsuyn == "Y" && row == nodecnt) {
  4487. ds_send_insu_insulist.setColumn( row, "todd", insuArray[i][9]);
  4488. ds_send_insu_insulist.setColumn( row, "orgtodd", "99991231");
  4489. }
  4490. ds_send_insu_insulist.setColumn( row, "todd", insuArray[i][4]);
  4491. ds_send_insu_insulist.setColumn( row, "orgtodd", insuArray[i][12]);
  4492. }
  4493. ds_send_insu_insulist.setColumn( row, "cretno", insuArray[i][5]);
  4494. ds_send_insu_insulist.setColumn( row, "seqno", insuArray[i][6]);
  4495. ds_send_insu_insulist.setColumn( row, "pid", insuArray[i][7]);
  4496. ds_send_insu_insulist.setColumn( row, "indd", insuArray[i][8]);
  4497. ds_send_insu_insulist.setColumn( row, "dschnotidt", insuArray[i][9]);
  4498. ds_send_insu_insulist.setColumn( row, "instcd", instcd);
  4499. ds_send_insu_insulist.setColumn( row, "flag", insuArray[i][10]);
  4500. ds_send_insu_insulist.setColumn( row, "disccd", insuArray[i][11]);
  4501. ds_send_insu_insulist.setColumn( row, "ownbmaxgradeflag", insuArray[i][13]);
  4502. row++;
  4503. }
  4504. }
  4505. // if (submit("TXPIJ00306", false)) {
  4506. var oParam = {};
  4507. oParam.id = "TXPIJ00306";
  4508. oParam.service = "inordamtmngtapp.InHospUncoAmt";
  4509. oParam.method = "reqInsOutCalcIss";
  4510. oParam.inds = "insulist=ds_";
  4511. oParam.outds = "ds_=result";
  4512. oParam.async = false;
  4513. oParam.callback = "cf_TXPIJ00306";
  4514. tranf_submit(oParam);
  4515. /*
  4516. function cf_TXPIJ00306(sSvcId, nErrorCode, sErrorMsg) {
  4517. if(nErrorCode < 0) return;
  4518. }
  4519. function cf_TXPIJ00306(sSvcId, nErrorCode, sErrorMsg) {
  4520. arErrorCode.push(sSvcId, nErrorCode);
  4521. }
  4522. arErrorCode.pop("TXPIJ00306") > -1
  4523. arErrorCode.pop("TXPIJ00306") < 0
  4524. */
  4525. return 1;
  4526. } else {
  4527. return 0;
  4528. }
  4529. }
  4530. // 심사자메모, EDI청구메모를 특정내역 형식에 맞춰 설정한다.
  4531. function fSetJudgEDIMemo(spclmemo, usermemoyn) {
  4532. var item5Path = "";
  4533. var item5Node = "";
  4534. if (usermemoyn == "Y") {
  4535. item5Path = "ds_main_list5_judgrmk[";
  4536. item5Node = "U";
  4537. } else if(usermemoyn == "N"){
  4538. item5Path = "ds_main_list5_judgrmk[";
  4539. item5Node = "E";
  4540. } else if(usermemoyn == "D"){
  4541. item5Path = "ds_main_list5_judgrmk[";
  4542. item5Node = "D";
  4543. } else{
  4544. item5Path = "ds_main_list5_judgrmk[";
  4545. item5Node = "T";
  4546. }
  4547. var iSpclCdCnt = 0;
  4548. var spclcnt = instance1.selectSingleNode("ds_main_list5");
  4549. if(spclcnt != null){
  4550. var spcllist = spclcnt.childNodes;
  4551. iSpclCdCnt = spcllist.length ; // DB에 저장될 MX999 코드 개수
  4552. }
  4553. var iSpclCdTotLength = getStringLength(spclmemo); // (stringHelper.js) 문자열의 길이를 구한다.
  4554. // 수정추가 JHP 20090811 심사메모 4000byte초과시 alert메세지 띄우면서 안되게끔... 일단... clob으로 안되기때문에....
  4555. if (iSpclCdTotLength > 4000){
  4556. sysf_messageBox("심사_EDI메모내용이 너무길어 저장을 ","E001");
  4557. return false;
  4558. }
  4559. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  4560. if (iSpclCdTotLength > 1333) { // 새로 입력된 특정코드가 700byte를 넘는다.
  4561. // 영문(700자), 한글(350자) 길이로 잘라서 n개의 특정코드를 만든다.
  4562. var iLen = 0; // 특정내역 길이가 700 byte가 되었는지 계산
  4563. var iStartInx = 0; // 특정내역 시작 index
  4564. var iCharCnt = 0; // 몇글자로 구성되는지 계산
  4565. for (var i=0; i < spclmemo.length; i++) {
  4566. var sBit = spclmemo.charAt(i);
  4567. iCharCnt++;
  4568. if (escape(sBit).length > 4) {
  4569. iLen = iLen + 2;
  4570. } else {
  4571. iLen = iLen + 1;
  4572. }
  4573. if (iLen == 1333 || iLen > 1333) { // 영문(700자), 한글(350자)
  4574. iSpclCdCnt++;
  4575. //model.makeValue(item5Path + iSpclCdCnt + "]/" + item5Node + "usermemoyn", usermemoyn);
  4576. if (iLen == 350) { // 700byte로 길이가 끝난 경우
  4577. model.makeValue(item5Path + iSpclCdCnt + "]_spclspec", spclmemo.substr(iStartInx, iCharCnt));
  4578. model.makeValue(item5Path + iSpclCdCnt + "]_spclmemoflag", item5Node);
  4579. model.makeValue(item5Path + iSpclCdCnt + "]_m", "i");
  4580. model.makeValue(item5Path + iSpclCdCnt + "]_unitflag", "M");
  4581. model.makeValue(item5Path + iSpclCdCnt + "]_spclcd", "MX999");
  4582. model.makeValue(item5Path + iSpclCdCnt + "]_seqno", iSpclCdCnt);
  4583. model.makeValue(item5Path + iSpclCdCnt + "]_pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  4584. model.makeValue(item5Path + iSpclCdCnt + "]_indd",indd);
  4585. model.makeValue(item5Path + iSpclCdCnt + "]_mskind", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  4586. model.makeValue(item5Path + iSpclCdCnt + "]_cretno", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  4587. model.makeValue(item5Path + iSpclCdCnt + "]_fromdd", ds_main_item1_iteminfo.getColumn(0, "fromdd"));
  4588. model.makeValue(item5Path + iSpclCdCnt + "]_instcd", "");
  4589. model.makeValue(item5Path + iSpclCdCnt + "]_lastupdtrid", "");
  4590. iStartInx += iCharCnt;
  4591. }
  4592. else if (iLen > 350) { // 영문(700자), 한글(350자)를 넘는 경우
  4593. model.makeValue(item5Path + iSpclCdCnt + "]_spclspec", spclmemo.substr(iStartInx, iCharCnt - 1));
  4594. model.makeValue(item5Path + iSpclCdCnt + "]_spclmemoflag", item5Node);
  4595. model.makeValue(item5Path + iSpclCdCnt + "]_m", "i");
  4596. model.makeValue(item5Path + iSpclCdCnt + "]_unitflag", "M");
  4597. model.makeValue(item5Path + iSpclCdCnt + "]_spclcd", "MX999");
  4598. model.makeValue(item5Path + iSpclCdCnt + "]_seqno", iSpclCdCnt);
  4599. model.makeValue(item5Path + iSpclCdCnt + "]_pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  4600. model.makeValue(item5Path + iSpclCdCnt + "]_indd", indd);
  4601. model.makeValue(item5Path + iSpclCdCnt + "]_mskind", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  4602. model.makeValue(item5Path + iSpclCdCnt + "]_cretno", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  4603. model.makeValue(item5Path + iSpclCdCnt + "]_fromdd", ds_main_item1_iteminfo.getColumn(0, "fromdd"));
  4604. model.makeValue(item5Path + iSpclCdCnt + "]_instcd", "");
  4605. model.makeValue(item5Path + iSpclCdCnt + "]_lastupdtrid", "");
  4606. iStartInx += (iCharCnt - 1);
  4607. }
  4608. iCharCnt = 0;
  4609. iLen = 0;
  4610. if (parseInt(iSpclCdTotLength / 1333) == iSpclCdCnt) {
  4611. i = spclmemo.length;
  4612. if ((iSpclCdTotLength % 1333) != 0) { // 700Byte 씩 자르고 남은 길이가 있는 경우
  4613. iSpclCdCnt++;
  4614. //model.makeValue(item5Path + iSpclCdCnt + "]/" + item5Node + "usermemoyn", usermemoyn);
  4615. model.makeValue(item5Path + iSpclCdCnt + "]_spclspec", spclmemo.substring(iStartInx, spclmemo.length));
  4616. model.makeValue(item5Path + iSpclCdCnt + "]_spclmemoflag", item5Node);
  4617. model.makeValue(item5Path + iSpclCdCnt + "]_m", "i");
  4618. model.makeValue(item5Path + iSpclCdCnt + "]_unitflag", "M");
  4619. model.makeValue(item5Path + iSpclCdCnt + "]_spclcd", "MX999");
  4620. model.makeValue(item5Path + iSpclCdCnt + "]_seqno", iSpclCdCnt);
  4621. model.makeValue(item5Path + iSpclCdCnt + "]_pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  4622. model.makeValue(item5Path + iSpclCdCnt + "]_indd", indd);
  4623. model.makeValue(item5Path + iSpclCdCnt + "]_mskind", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  4624. model.makeValue(item5Path + iSpclCdCnt + "]_cretno", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  4625. model.makeValue(item5Path + iSpclCdCnt + "]_fromdd", ds_main_item1_iteminfo.getColumn(0, "fromdd"));
  4626. model.makeValue(item5Path + iSpclCdCnt + "]_instcd", "");
  4627. model.makeValue(item5Path + iSpclCdCnt + "]_lastupdtrid", "");
  4628. }
  4629. }
  4630. }
  4631. }
  4632. } else { // 새로 입력된 특정코드는 700byte를 넘지 않는다.
  4633. //if (iSpclCdTotLength > 0) { // 새로 추가된 내용이 있다.
  4634. iSpclCdCnt++;
  4635. //model.makeValue(item5Path + iSpclCdCnt + "]/" + item5Node + "usermemoyn", usermemoyn);
  4636. model.makeValue(item5Path + iSpclCdCnt + "]_spclspec", spclmemo);
  4637. model.makeValue(item5Path + iSpclCdCnt + "]_spclmemoflag", item5Node);
  4638. model.makeValue(item5Path + iSpclCdCnt + "]_m", "i");
  4639. model.makeValue(item5Path + iSpclCdCnt + "]_unitflag", "M");
  4640. model.makeValue(item5Path + iSpclCdCnt + "]_spclcd", "MX999");
  4641. model.makeValue(item5Path + iSpclCdCnt + "]_seqno", "1");
  4642. model.makeValue(item5Path + iSpclCdCnt + "]_pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  4643. model.makeValue(item5Path + iSpclCdCnt + "]_indd", indd);
  4644. model.makeValue(item5Path + iSpclCdCnt + "]_mskind", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  4645. model.makeValue(item5Path + iSpclCdCnt + "]_cretno", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  4646. model.makeValue(item5Path + iSpclCdCnt + "]_fromdd", ds_main_item1_iteminfo.getColumn(0, "fromdd"));
  4647. model.makeValue(item5Path + iSpclCdCnt + "]_instcd", "");
  4648. model.makeValue(item5Path + iSpclCdCnt + "]_lastupdtrid", "");
  4649. //}
  4650. }
  4651. }
  4652. // 미래유형 정리 및 퇴원시 현황으로 HISTORY 유지하면서 inpt,iphs변경
  4653. //심사 완료 처리
  4654. function fJudgEnd(){
  4655. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","C");
  4656. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  4657. dsf_makeValue( ds_main_item1_iteminfo, "indd1", "string", indd);
  4658. // if(submit("TXPIJ00301",false)) { //심사완료전 저장이 제대로 처리되지 않았을 경우네는 E70을 발생시키지 않게 한다. 20080908 박창원
  4659. var oParam = {};
  4660. oParam.id = "TXPIJ00301";
  4661. oParam.service = "bfjudgapp.InHospJudg";
  4662. oParam.method = "reqExeSaveInpt";
  4663. oParam.inds = "req=ds_";
  4664. oParam.outds = "";
  4665. oParam.async = false;
  4666. oParam.callback = "cf_TXPIJ00301";
  4667. tranf_submit(oParam);
  4668. /*
  4669. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4670. if(nErrorCode < 0) return;
  4671. }
  4672. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4673. arErrorCode.push(sSvcId, nErrorCode);
  4674. }
  4675. arErrorCode.pop("TXPIJ00301") > -1
  4676. arErrorCode.pop("TXPIJ00301") < 0
  4677. */
  4678. fSaveCalcAmt("I");
  4679. fSetItemInfoSetting();
  4680. return 1;
  4681. }else {
  4682. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","B");
  4683. fSetItemInfoSetting();
  4684. return 0;
  4685. }
  4686. }
  4687. //통합심사 완료 처리
  4688. function fJudgAllEnd(){
  4689. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","E");
  4690. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  4691. dsf_makeValue( ds_main_item1_iteminfo, "indd1", "string", indd);
  4692. // if(submit("TXPIJ00301",false)) { //심사완료전 저장이 제대로 처리되지 않았을 경우네는 E70을 발생시키지 않게 한다. 20080908 박창원
  4693. var oParam = {};
  4694. oParam.id = "TXPIJ00301";
  4695. oParam.service = "bfjudgapp.InHospJudg";
  4696. oParam.method = "reqExeSaveInpt";
  4697. oParam.inds = "req=ds_";
  4698. oParam.outds = "";
  4699. oParam.async = false;
  4700. oParam.callback = "cf_TXPIJ00301";
  4701. tranf_submit(oParam);
  4702. /*
  4703. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4704. if(nErrorCode < 0) return;
  4705. }
  4706. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4707. arErrorCode.push(sSvcId, nErrorCode);
  4708. }
  4709. arErrorCode.pop("TXPIJ00301") > -1
  4710. arErrorCode.pop("TXPIJ00301") < 0
  4711. */
  4712. fSaveCalcAmt("I");
  4713. fSetItemInfoSetting();
  4714. return 1;
  4715. } else {
  4716. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","B");
  4717. fSetItemInfoSetting();
  4718. return 0;
  4719. }
  4720. }
  4721. //퇴원마감 취소 처리
  4722. function fJudgEndCancel(){
  4723. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","A");
  4724. // if (submit("TXPIJ00301",false)) {
  4725. var oParam = {};
  4726. oParam.id = "TXPIJ00301";
  4727. oParam.service = "bfjudgapp.InHospJudg";
  4728. oParam.method = "reqExeSaveInpt";
  4729. oParam.inds = "req=ds_";
  4730. oParam.outds = "";
  4731. oParam.async = false;
  4732. oParam.callback = "cf_TXPIJ00301";
  4733. tranf_submit(oParam);
  4734. /*
  4735. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4736. if(nErrorCode < 0) return;
  4737. }
  4738. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4739. arErrorCode.push(sSvcId, nErrorCode);
  4740. }
  4741. arErrorCode.pop("TXPIJ00301") > -1
  4742. arErrorCode.pop("TXPIJ00301") < 0
  4743. */
  4744. // submit("TXPIJ03203",false);
  4745. var oParam = {};
  4746. oParam.id = "TXPIJ03203";
  4747. oParam.service = "bfjudgapp.DRGJudgList";
  4748. oParam.method = "reqExeDelDrgCreateMasterInfo";
  4749. oParam.inds = "req=ds_";
  4750. oParam.outds = "";
  4751. oParam.async = false;
  4752. oParam.callback = "cf_TXPIJ03203";
  4753. tranf_submit(oParam);
  4754. /*
  4755. function cf_TXPIJ03203(sSvcId, nErrorCode, sErrorMsg) {
  4756. if(nErrorCode < 0) return;
  4757. }
  4758. function cf_TXPIJ03203(sSvcId, nErrorCode, sErrorMsg) {
  4759. arErrorCode.push(sSvcId, nErrorCode);
  4760. }
  4761. arErrorCode.pop("TXPIJ03203") > -1
  4762. arErrorCode.pop("TXPIJ03203") < 0
  4763. */
  4764. fSetItemInfoSetting();
  4765. return 1;
  4766. } else {
  4767. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","B");
  4768. fSetItemInfoSetting();
  4769. return 0;
  4770. }
  4771. }
  4772. //예고심사 완료 처리
  4773. function fJudgDclrtEnd(){
  4774. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","G");
  4775. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  4776. dsf_makeValue( ds_main_item1_iteminfo, "indd1", "string", indd);
  4777. // if(submit("TXPIJ00301",false)) { //심사완료전 저장이 제대로 처리되지 않았을 경우네는 E70을 발생시키지 않게 한다. 20080908 박창원
  4778. var oParam = {};
  4779. oParam.id = "TXPIJ00301";
  4780. oParam.service = "bfjudgapp.InHospJudg";
  4781. oParam.method = "reqExeSaveInpt";
  4782. oParam.inds = "req=ds_";
  4783. oParam.outds = "";
  4784. oParam.async = false;
  4785. oParam.callback = "cf_TXPIJ00301";
  4786. tranf_submit(oParam);
  4787. /*
  4788. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4789. if(nErrorCode < 0) return;
  4790. }
  4791. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  4792. arErrorCode.push(sSvcId, nErrorCode);
  4793. }
  4794. arErrorCode.pop("TXPIJ00301") > -1
  4795. arErrorCode.pop("TXPIJ00301") < 0
  4796. */
  4797. fSaveCalcAmt("I");
  4798. fSetItemInfoSetting();
  4799. return 1;
  4800. } else {
  4801. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","B");
  4802. fSetItemInfoSetting();
  4803. return 0;
  4804. }
  4805. }
  4806. ///////////////////////////////////////////////////////////////////////////
  4807. //저장로직 관련 코딩 종료 //
  4808. ///////////////////////////////////////////////////////////////////////////
  4809. ///////////////////////////////////////////////////////////////////////////
  4810. //체크로직 관련 코딩 종료
  4811. //1. 중증, 산정특례 여부 체크
  4812. //2. 분만여부 체크
  4813. //3. 수술여부 체크
  4814. ///////////////////////////////////////////////////////////////////////////
  4815. //1. 중증, 산정특례 여부 체크
  4816. // 기존로직이 보험 암환자의 경우 입원일 기준으로만 적용되게 되어있어 수정함 - 20081105 박창원
  4817. function fCheckEssc(){
  4818. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  4819. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  4820. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  4821. var mskind = ds_main_item1_iteminfo.getColumn(0, "mskind");
  4822. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  4823. var suppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  4824. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  4825. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  4826. var insuflag = "";
  4827. // 새로운기준적용을 위해 여기서부터 변수추가 - 20081105 박창원
  4828. var dschdd = ds_main_item1_iteminfo.getColumn(0, "dschdd");
  4829. btn_esscdiag.visible = false;
  4830. // 희귀난치 산정특례 처리 - 20090622 박창원, 7월1일부터 적용, H환자는 제외외어야함
  4831. var rareesscyn = ds_main_item12_rareessc.getColumn(0, "rareesscyn");
  4832. if (insukind == "11" && suppkind != "32" && rareesscyn == "Y" && suppkind != "01" && fromdd >= "20090701") {
  4833. // 20090930 JHP 희귀난치 등록여부 확인위해 추가함. -- 시작
  4834. var anohosprgstflag = ds_main_item13_rooa.getColumn(0, "anohosprgstflag");
  4835. var rareobstno = ds_main_item13_rooa.getColumn(0, "rareobstno");
  4836. var rareobstfromdd = ds_main_item13_rooa.getColumn(0, "rareobstfromdd");
  4837. var rareobsttodd = ds_main_item13_rooa.getColumn(0, "rareobsttodd");
  4838. var signyn = ds_main_item13_rooa.getColumn(0, "signyn");
  4839. //20091109 JHP 희귀난치 메세지는 상병에 R_O 상병일 경우는 메세지 제외함.
  4840. var ruleoutyn = ds_main_list3_diaglist.getColumn(1, "ruleoutyn");
  4841. if(ruleoutyn == 'true'){
  4842. // 주상병 R_O일때에는 희귀난치 메세지 처리 안함.
  4843. }else{
  4844. if (fromdd >= "20091001") { // 10월1일 이후에는 등록번호가 반드시 있어야한다. - 추가코딩필요
  4845. // 타병원등록 여부 , Y:타병원,N:우리병원
  4846. if(anohosprgstflag == "Y"){
  4847. // 희귀난치 번호여부
  4848. if(rareobstno == null || rareobstno == '-'){
  4849. sysf_messageBox("## 희귀난치정보 ## : 타병원등록이나 희귀난치번호가 ","I004");
  4850. } else {
  4851. btn_esscdiag.visible = true;
  4852. btn_esscdiag.attribute("class") = "btn5_letter4";
  4853. btn_esscdiag.attribute("color") = "#ff0066";
  4854. return;
  4855. }
  4856. } else if(anohosprgstflag == "N"){
  4857. // 희귀난치 번호여부
  4858. if(rareobstno == null || rareobstno == '-'){
  4859. if(signyn == "Y"){
  4860. btn_esscdiag.visible = true;
  4861. btn_esscdiag.attribute("class") = "btn5_letter4";
  4862. btn_esscdiag.attribute("color") = "#ff0066";
  4863. return;
  4864. } else {
  4865. sysf_messageBox("## 희귀난치정보 ## : 재원병원등록이나 등록번호 및 서명정보가 ","I004");
  4866. }
  4867. } else{
  4868. btn_esscdiag.visible = true;
  4869. btn_esscdiag.attribute("class") = "btn5_letter4";
  4870. btn_esscdiag.attribute("color") = "#ff0066";
  4871. return;
  4872. }
  4873. } else {
  4874. // 희귀난치 data(mmohrooa)에 정보없음.
  4875. sysf_messageBox("## 희귀난치정보 ## : 등록번호 및 서명정보가 ","I004");
  4876. }
  4877. } else {
  4878. btn_esscdiag.visible = true;
  4879. btn_esscdiag.attribute("class") = "btn5_letter4";
  4880. btn_esscdiag.attribute("color") = "#ff0066";
  4881. return;
  4882. }
  4883. }
  4884. }
  4885. if (insukind > "22" || suppkind == "01" ) {
  4886. return;
  4887. }
  4888. if(chk){
  4889. var isEsscV193 = false;
  4890. var isEsscV191 = false;
  4891. var isEsscVisible = true;
  4892. var cEsscCnt = ds_main_chkessc.rowcount;
  4893. if (cEsscCnt == 0 && rareesscyn != "Y" ) { // 특정내역이 없는 경우임
  4894. return;
  4895. } else {
  4896. var chkspclcd = model.getValue("ds_main_chkessc_chkessc[vcode='V191' or vcode='V192']_vcode");
  4897. var spclcd = ds_main_chkessc_chkessc.lookupExpr("vcode == '" + V193 + "'", "vcode");
  4898. if (chkspclcd.length > 0) {
  4899. isEsscV191 = true;
  4900. //이미 체크된건이 V193인경우 V193으로 처리 한다.
  4901. var chk = ds_hidden_item1.getColumn(0, "vcode");
  4902. if(chk == "V193"){
  4903. ds_hidden_item1.setColumn( 0, "vcode","V193");
  4904. }else{
  4905. ds_hidden_item1.setColumn( 0, "vcode",chkspclcd);
  4906. }
  4907. }
  4908. if(spclcd == "V193" && suppkind != "32") { // 차상위는 중증등록버튼이 활성화되지 않게한다. 20090227 박창원
  4909. ds_hidden_item1.setColumn( 0, "vcode",spclcd);
  4910. var suppkindcd = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  4911. isEsscV193 = true;
  4912. // V193인경우 이미 적용하면 끝이기때문에 일부로 보여지지 않도록 했었지만
  4913. // 사용자 요구사항으로 그냥 버튼 살아 있게 한다. 2007.12.07 박도형
  4914. //if (suppkindcd == "06") {
  4915. // isEsscVisible = false;
  4916. //}
  4917. }
  4918. }
  4919. // 데이타 변경 후 중증 질환 체크 변경 유무 확인을 위한 flag 값 추가 : 2007.10.08 김건기 => fUpdtCheckEssc()에서 사용
  4920. ds_hidden_updtchkessc.setColumn( 0, "esscV193",isEsscV193);
  4921. ds_hidden_updtchkessc.setColumn( 0, "esscV191",isEsscV191);
  4922. if (isEsscV191) {
  4923. if (isEsscVisible) {
  4924. btn_esscdiag.visible = true;
  4925. } else {
  4926. btn_esscdiag.visible = false;
  4927. }
  4928. btn_esscdiag.attribute("class") = "btn5_letter4";
  4929. btn_esscdiag.attribute("color") = "#ff0066";
  4930. } else {
  4931. btn_esscdiag.attribute("class") = "btn2_letter4";
  4932. btn_esscdiag.visible = false;
  4933. if (isEsscV193) {
  4934. if (isEsscVisible) {
  4935. btn_esscdiag.visible = true;
  4936. } else {
  4937. btn_esscdiag.visible = false;
  4938. }
  4939. btn_esscdiag.attribute("class") = "btn5_letter4";
  4940. btn_esscdiag.attribute("color") = "#ff0066";
  4941. } else {
  4942. btn_esscdiag.attribute("class") = "btn2_letter4";
  4943. btn_esscdiag.visible = false;
  4944. }
  4945. }
  4946. }
  4947. }
  4948. //2. 분만여부 체크
  4949. function fCheckBorn(){
  4950. var cBorn = instance1.selectSingleNode("ds_main_item1_iteminfo");
  4951. if (cBorn == null) { // 출산정보가 없는경우임.
  4952. btn_babymother.attribute("class") = "btn5_letter4";
  4953. btn_babymother.visible = false;
  4954. return;
  4955. }else{
  4956. var cBornbaby = ds_main_item1_iteminfo.getColumn(0, "bornbaby");
  4957. if(cBornbaby == "Y"){
  4958. btn_babymother.visible = true;
  4959. btn_babymother.attribute("class") = "btn5_letter4";
  4960. btn_babymother.attribute("color") = "#ff0066";
  4961. }else{
  4962. btn_babymother.attribute("class") = "btn5_letter4";
  4963. btn_babymother.visible = false;
  4964. }
  4965. }
  4966. }
  4967. //3. 수술여부체크
  4968. function fCheckOper(){
  4969. var cOper = instance1.selectSingleNode("ds_main_item1_iteminfo");
  4970. if (cOper == null) { // 출산정보가 없는경우임.
  4971. btn_operdiag.attribute("class") = "btn5_letter4";
  4972. btn_operdiag.visible = false;
  4973. return;
  4974. }else{
  4975. var cOperDiag = ds_main_item1_iteminfo.getColumn(0, "opflag");
  4976. if(cOperDiag == "Y"){
  4977. btn_operdiag.visible = true;
  4978. btn_operdiag.attribute("class") = "btn5_letter4";
  4979. btn_operdiag.attribute("color") = "#ff0066";
  4980. // 수술심사상태에 따른 캡션변경
  4981. //미심
  4982. var cnt1 = ds_main_item10_operstat.getColumn(0, "cnt1");
  4983. //보류
  4984. var cnt2 = ds_main_item10_operstat.getColumn(0, "cnt2");
  4985. //완료
  4986. var cnt3 = ds_main_item10_operstat.getColumn(0, "cnt3");
  4987. // 수술이 추가되었을때 - 수술심사테이블에 데이터가 들어가지 않은 경우는 미심이 포함되어 있어 미심이다. - 20071014 박창원
  4988. var nonpijhoper = ds_main_item10_operstat.getColumn(0, "nonpijhoper");
  4989. if (cnt1 > "0" || nonpijhoper == "Y") {
  4990. btn_operdiag.attribute("text")= "수술(미)";
  4991. return;
  4992. }
  4993. if (cnt1 < "1" && cnt2 > "0") {
  4994. btn_operdiag.attribute("text")= "수술(보)";
  4995. }
  4996. if (cnt1 < "1" && cnt2 < "1" && cnt3 > "0") {
  4997. btn_operdiag.attribute("text")= "수술(완)";
  4998. }
  4999. if (cnt1 < "1" && cnt2 < "1" && cnt3 < "1") {
  5000. btn_operdiag.attribute("text")= "수술(미)";
  5001. }
  5002. }else{
  5003. btn_operdiag.attribute("class") = "btn5_letter4";
  5004. btn_operdiag.visible = false;
  5005. }
  5006. }
  5007. }
  5008. //4. 퇴원메모 체크
  5009. function fCheckDschMemo(){
  5010. var cDschMemo = instance1.selectSingleNode("ds_main_item1_iteminfo");
  5011. if (cDschMemo == null) {
  5012. btn_dschmemo.attribute("class") = "btn5_letter4";
  5013. btn_dschmemo.visible = false;
  5014. return;
  5015. }else{
  5016. var cDschMemo = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  5017. if(cDschMemo == "Y"){
  5018. btn_dschmemo.visible = true;
  5019. btn_dschmemo.attribute("class") = "btn5_letter4";
  5020. btn_dschmemo.attribute("color") = "#ff0066";
  5021. }else{
  5022. btn_dschmemo.attribute("class") = "btn5_letter4";
  5023. btn_dschmemo.visible = false;
  5024. }
  5025. }
  5026. }
  5027. // 5.공여수혜자 여부 체크
  5028. function fCheckDnorPat(){
  5029. var cDnorPat = instance1.selectSingleNode("ds_main_item8_patdnorinfo");
  5030. if (cDnorPat == null) {
  5031. btn_patdnor.attribute("class") = "btn5_letter3";
  5032. btn_patdnor.visible = false;
  5033. return;
  5034. }else{
  5035. var cDnorPID = ds_main_item8.getColumn(0, "patdnorflag");
  5036. var cPatDnorFlag = ds_main_item8_patdnorinfo.getColumn(0, "patdnorflag");
  5037. //if(cDschMemo == "D"){
  5038. if(cPatDnorFlag == "D"){
  5039. btn_patdnor.visible = true;
  5040. btn_patdnor.attribute("text")= "수혜자"
  5041. btn_patdnor.attribute("class") = "btn5_letter3";
  5042. btn_patdnor.attribute("color") = "#ff0066";
  5043. //}else if (cDschMemo == "P"){
  5044. }else if (cPatDnorFlag == "P"){
  5045. btn_patdnor.visible = true;
  5046. btn_patdnor.attribute("text")= "공여자"
  5047. btn_patdnor.attribute("class") = "btn5_letter3";
  5048. btn_patdnor.attribute("color") = "#ff0066";
  5049. }else{
  5050. btn_dschmemo.attribute("class") = "btn5_letter4";
  5051. btn_dschmemo.visible = false;
  5052. }
  5053. }
  5054. }
  5055. // 20091019 JHP 진료상병 심사상병 체크로직 추가 (** 10_9 보험팀장 정례회의 결정사항임)
  5056. // 재원심사시 혹은 퇴원심사시 진료 주상병과 심사 주상병이 상이 한 경우
  5057. // [진료 주상병과 심사 주상병이 다릅니다.확인하시고 진료에 수정요청 하십시요
  5058. // ( 퇴원시 외래 FU검사의 요율에 오류가 있을 수 있습니다)] 라는 알럿을 주도록 함.
  5059. // 1. 적용대상 : 보험유형 11, 21, 22
  5060. // 단 보조유형 00정상, 01전액본인부담, 입원에만 존재하는 보조유형 제외
  5061. // 2. 조회시 ICD10 색인 분류 상 상위 구분 (영문 1자리와 숫자 2자리)으로 비교 하도록 함
  5062. // -> 진료 D619 상병과 심사 D618은 알럿 팝업 안뜨도록 함.
  5063. //for문 속도개선 plet2
  5064. function fCheckEmrDiagPamDiag(){
  5065. var insukind = ds_main_item14_emrdiagpamdiag.getColumn(0, "insukind");
  5066. var suppkind = ds_main_item14_emrdiagpamdiag.getColumn(0, "suppkind");
  5067. var notsuppkind = ds_main_item14_emrdiagpamdiag.getColumn(0, "notsuppkind");
  5068. var emrmaindiag = ds_main_item14_emrdiagpamdiag.getColumn(0, "emrmaindiag");
  5069. var pammaindiag = ds_main_item14_emrdiagpamdiag.getColumn(0, "pammaindiag");
  5070. var notsuppkindchk = model.getXPathValue("contains(ds_main_item14_emrdiagpamdiag_notsuppkind,'"+suppkind+"')");
  5071. var fstemrdiag2 = emrmaindiag.substring(0, 3);
  5072. var fstpamdiag2 = pammaindiag.substring(0, 3);
  5073. var fstemrdiag3 = emrmaindiag.substring(0, 4);
  5074. var fstpamdiag3 = pammaindiag.substring(0, 4);
  5075. // 입원제외 보조유형 배열과 보조유형 체크
  5076. var suppchk = "N";
  5077. if(notsuppkindchk == true){
  5078. suppchk = "Y";
  5079. }
  5080. // 1. 보험유형 11, 21, 22 이면 알럿
  5081. if(insukind == "11" || insukind == "21" || insukind == "22"){
  5082. // 00, 01, suppchk(입원제외보조유형)이 아니면 알럿
  5083. if(suppkind == "00" || suppkind =="01" || suppchk == "Y"){
  5084. }else{
  5085. // 둘다 null 이 아니면 알럿(원래는 NULL인데 글자수로 잘라서 NUL임)
  5086. if(fstemrdiag2 == 'NUL' || fstpamdiag2 == 'NUL'){
  5087. }else{
  5088. // 진료상병 심사상병 다르면 알럿
  5089. if(fstemrdiag2 != fstpamdiag2){
  5090. sysf_messageBox("[진료 주상병(" + fstemrdiag2 +"-)과 심사 주상병(" + fstpamdiag2 + "-)이 다릅니다. 확인하시고 진료에 수정요청 하십시요.\n( 퇴원시 외래 FU검사의 요율에 오류가 있을 수 있습니다)]\n","I007");
  5091. }
  5092. }
  5093. }
  5094. }
  5095. }
  5096. function fItemRareMsg(){
  5097. var srchrslt = "";
  5098. var itemmsg = ds_main_item1_iteminfo.getColumn(0, "itemmsg");
  5099. var raremsg = ds_main_item1_iteminfo.getColumn(0, "raremsg");
  5100. var serdiagfromdd = ds_main_item1_iteminfo.getColumn(0, "serdiagfromdd"); //중증시작일자
  5101. var serdiagtodd = ds_main_item1_iteminfo.getColumn(0, "serdiagtodd"); //중증종료일자
  5102. var rareobstfromdd = ds_main_item1_iteminfo.getColumn(0, "rareobstfromdd"); //희귀시작일자
  5103. var rareobsttodd = ds_main_item1_iteminfo.getColumn(0, "rareobsttodd"); //희귀종료일자
  5104. var dschnotidt = ds_main_item1_iteminfo.getColumn(0, "dschnotidt"); //퇴원일자
  5105. dschnotidt = (dschnotidt.length > 0 ? dschnotidt.substring(0 , 8) : "");
  5106. var suppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  5107. var rooamsgcnt = dsds_main_rarecancermsglist_rarecancermsg.filter("cd!='" + 00 + "'").rowcount ;
  5108. var sdoamsgcnt = dsds_main_rarecancermsglist_rarecancermsg.filter("cd='" + 00 + "'").rowcount ;
  5109. var rooamsg = model.getXPathValue("ds_main_rarecancermsglist_rarecancermsg[cd!='00']_nm");
  5110. var sdoamsg = model.getXPathValue("ds_main_rarecancermsglist_rarecancermsg[cd='00']_nm");
  5111. var rooamsgtooth = model.getXPathValue("ds_main_rarecancermsglist_rarecancermsg[cd!='00' and cd!='01']_nm");
  5112. var rooamsgcd = model.getXPathValue("ds_main_rarecancermsglist_rarecancermsg[cd!='00']_cd");
  5113. var sdoamsgcd = model.getXPathValue("ds_main_rarecancermsglist_rarecancermsg[cd='00']_cd");
  5114. var rooamsgtoothcd = model.getXPathValue("ds_main_rarecancermsglist_rarecancermsg[cd!='00' and cd!='01']_cd");
  5115. cmb_itemraremsg.visible = false;
  5116. //두번호 모두 존재시.
  5117. if ((rooamsgcnt > 0) && (sdoamsgcnt > 0)) {
  5118. opt_patientinfo.attribute("background-color") = "transparent";
  5119. //희귀종료일자가 퇴원일자,입원일자보다 빠를시 색상변경
  5120. //중증종료일자가 퇴원일자,입원일자보다 빠를시 색상변경
  5121. if (
  5122. ((dschnotidt != "" && (dschnotidt > serdiagtodd )) || (dschnotidt == "" && (VAL_today > serdiagtodd )) )||
  5123. ((dschnotidt != "" && (dschnotidt > rareobsttodd )) || (dschnotidt == "" && (VAL_today> rareobsttodd )))
  5124. ) {
  5125. cmb_itemraremsg.attribute("background-color") = "#ff9900";
  5126. } else {
  5127. cmb_itemraremsg.attribute("background-color") = "transparent";
  5128. }
  5129. cmb_itemraremsg.visible = true;
  5130. opt_patientinfo.visible = false;
  5131. roundrect1.visible = false;
  5132. // 등록암 보조유형일경우(06.등록암, 11.가정간호등록암, 32.차상위1종, 40.차상위2종등록암
  5133. // if (suppkind == "06" || suppkind == "11" || suppkind == "32" || suppkind == "40") {
  5134. // model.setValue(cmb_itemraremsg.attribute("ref"), sdoamsg);
  5135. // } else if (suppkind == "87" || suppkind == "88" || suppkind == "89") {
  5136. // model.setValue(cmb_itemraremsg.attribute("ref"), rooamsgtoothcd);
  5137. // } else {
  5138. // model.setValue(cmb_itemraremsg.attribute("ref"), rooamsgcd);
  5139. // }
  5140. cmb_itemraremsg.select(0);
  5141. } else if (rooamsgcnt > 0) {
  5142. //희귀종료일자가 퇴원일자,입원일자보다 빠를시 색상변경
  5143. if ((dschnotidt != "" && (dschnotidt > rareobsttodd )) || (dschnotidt == "" && (VAL_today > rareobsttodd ))) {
  5144. if (rooamsgcnt == 1) {
  5145. opt_patientinfo.attribute("background-color") = "#ff9900";
  5146. } else {
  5147. cmb_itemraremsg.attribute("background-color") = "#ff9900";
  5148. }
  5149. } else {
  5150. opt_patientinfo.attribute("background-color") = "transparent";
  5151. cmb_itemraremsg.attribute("background-color") = "transparent";
  5152. }
  5153. if (suppkind == "87" || suppkind == "88" || suppkind == "89") {
  5154. if (rooamsgcnt == 1) {
  5155. srchrslt += rooamsgtooth; // 희귀등록번호
  5156. model.setValue(opt_patientinfo.attribute("ref"), rooamsgtooth);
  5157. opt_patientinfo.visible = true;
  5158. roundrect1.visible = true;
  5159. } else {
  5160. cmb_itemraremsg.visible = true;
  5161. opt_patientinfo.visible = false;
  5162. roundrect1.visible = false;
  5163. model.setValue(cmb_itemraremsg.attribute("ref"), rooamsgtoothcd);
  5164. }
  5165. } else {
  5166. if (rooamsgcnt == 1) {
  5167. srchrslt += rooamsg; // 희귀등록번호
  5168. model.setValue(opt_patientinfo.attribute("ref"), rooamsg);
  5169. opt_patientinfo.visible = true;
  5170. roundrect1.visible = true;
  5171. } else {
  5172. cmb_itemraremsg.visible = true;
  5173. opt_patientinfo.visible = false;
  5174. roundrect1.visible = false;
  5175. //model.setValue(cmb_itemraremsg.attribute("ref"), rooamsgcd);
  5176. cmb_itemraremsg.select(0);
  5177. }
  5178. }
  5179. } else if (sdoamsgcnt > 0) {
  5180. //중증종료일자가 퇴원일자,입원일자보다 빠를시 색상변경
  5181. if ((dschnotidt != "" && (dschnotidt > serdiagtodd )) || (dschnotidt == "" && (VAL_today > serdiagtodd))) {
  5182. opt_patientinfo.attribute("background-color") = "#ff9900";
  5183. } else {
  5184. opt_patientinfo.attribute("background-color") = "transparent";
  5185. }
  5186. cmb_itemraremsg.attribute("background-color") = "transparent";
  5187. if (sdoamsgcnt == 1) {
  5188. srchrslt += sdoamsg; // 중증등록정보
  5189. model.setValue(opt_patientinfo.attribute("ref"), sdoamsg);
  5190. opt_patientinfo.visible = true;
  5191. roundrect1.visible = true;
  5192. } else {
  5193. cmb_itemraremsg.visible = true;
  5194. opt_patientinfo.visible = false;
  5195. roundrect1.visible = false;
  5196. //model.setValue(cmb_itemraremsg.attribute("ref"), sdoamsgcd);
  5197. cmb_itemraremsg.select(0);
  5198. }
  5199. } else {
  5200. opt_patientinfo.attribute("background-color") = "transparent";
  5201. cmb_itemraremsg.attribute("background-color") = "transparent";
  5202. opt_patientinfo.visible = true;
  5203. roundrect1.visible = true;
  5204. cmb_itemraremsg.visible = false;
  5205. }
  5206. //opt_patientinfo.refresh();
  5207. //cmb_itemraremsg.refresh();
  5208. }
  5209. //Link 연결 팝업
  5210. function fLinkPopMenu(trgtWindow, cond, send){
  5211. var trgtManWindow = getChildWindow(trgtWindow);
  5212. if (trgtManWindow == null) {
  5213. frmf_open("trgtWindow ", "trgtWindow", "cond"-"send", "", "", "10", "10", "", "", "", "", "", "M");
  5214. } else {
  5215. activateChild(trgtWindow);
  5216. //model.refresh();
  5217. }
  5218. }
  5219. // 통합심사마감
  5220. function fDschallEnd() {
  5221. fDschjudgEndType("A");
  5222. }
  5223. // 퇴원마감
  5224. function fDschjudgEnd() {
  5225. fDschjudgEndType("");
  5226. }
  5227. // 예고심사 : 2014.06.09 LEJ
  5228. function fDschdclrtEnd() {
  5229. fDschjudgEndType("G");
  5230. }
  5231. function fDschjudgEndType(dschjudgendtype) {
  5232. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  5233. if(chk){
  5234. // 퇴원마감시 간호확정이 취소되었는지 실시한 확인 후 진행한다.
  5235. // 타인이 간호 확정을 취소할때 마감되는 상황이 발생되지 않기 위함
  5236. // 간호 확정이 취소된 경우에는 대상자 조회 호면을 refresh 하고
  5237. // 메인화면의 심사상태를 'A' 미심상태로 하고 간호 퇴원통보 여부도 'N'으로 세팅한다.- 20080927 박창원
  5238. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  5239. // if (!submit("TRPIJ00315", false)) {
  5240. var oParam = {};
  5241. oParam.id = "TRPIJ00315";
  5242. oParam.service = "bfjudgapp.InHospJudg";
  5243. oParam.method = "reqNotiDschStat";
  5244. oParam.inds = "req=ds_";
  5245. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  5246. oParam.async = false;
  5247. oParam.callback = "cf_TRPIJ00315";
  5248. tranf_submit(oParam);
  5249. /*
  5250. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  5251. if(nErrorCode < 0) return;
  5252. }
  5253. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  5254. arErrorCode.push(sSvcId, nErrorCode);
  5255. }
  5256. arErrorCode.pop("TRPIJ00315") > -1
  5257. arErrorCode.pop("TRPIJ00315") < 0
  5258. */
  5259. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다.기본데이터 이상이나 시스템 오류입니다.관리자 문의 후", "C003");
  5260. return;
  5261. }
  5262. dsf_makeValue( ds_send, "checkyn", "string", "N");
  5263. // 퇴원마감시 퇴원확정일시 이후 처방이 있으면 alert - 20081112 박창원
  5264. var maxexectm = ds_main_item11_endcnclstat.getColumn(0, "maxexectm").substr(0,8);
  5265. var dschnotidt = ds_main_item1_iteminfo.getColumn(0, "dschnotidt").substr(0,8);
  5266. var dschnotiyn = ds_main_item11_endcnclstat.getColumn(0, "dschnotiyn");
  5267. var ipscendyn = ds_main_item11_endcnclstat.getColumn(0, "ipscendyn");
  5268. var dumpexistyn = ds_main_item11_endcnclstat.getColumn(0, "dumpexistyn");
  5269. var dupexecdd = ds_main_item11_endcnclstat.getColumn(0, "dupexecdd");
  5270. var dumpclamkeyexistyn = ds_main_item11_endcnclstat.getColumn(0, "dumpclamkeyexistyn");
  5271. var paygrntyn = ds_main_item11_endcnclstat.getColumn(0, "paygrntyn");
  5272. var dschdclrtyn = ds_main_item11_endcnclstat.getColumn(0, "dschdclrtyn");
  5273. var dschjudgprcsstatyn = ds_main_item11_endcnclstat.getColumn(0, "dschjudgprcsstatyn");
  5274. if (dschnotiyn != 'N' && maxexectm > dschnotidt) {
  5275. var msg = sysf_messageBox("퇴원확정이후" + maxexectm + "일자 실시처방이 있습니다. 계속 ", "S001");
  5276. if (msg != "6") {
  5277. return;
  5278. }
  5279. }
  5280. if (dschjudgendtype != 'G' && dschnotiyn == 'N') {
  5281. sysf_messageBox("간호 퇴원확정이 취소된 상태 입니다. 마감 ", "E001");
  5282. // 무조건 대상자 조회 화면을 refresh
  5283. var trgtManWindow = getChildWindow("SMPIJ00200");
  5284. trgtManWindow.javascript.fGetInBfJudgTrgtManList();
  5285. trgtManWindow.javascript.fCountPat();
  5286. //trgtManWindow.model.refresh();
  5287. // 메인화면의 심사상태를 미심으로 퇴원통보여부를 'N'으로
  5288. ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn", "N");
  5289. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat", "A");
  5290. //model.refresh();
  5291. return;
  5292. } else if (dschjudgendtype == 'G' && dschdclrtyn == 'N') {
  5293. sysf_messageBox("의사 퇴원예고가 취소된 상태 입니다. 마감 ", "E001");
  5294. // 무조건 대상자 조회 화면을 refresh
  5295. var trgtManWindow = getChildWindow("SMPIJ00200");
  5296. trgtManWindow.javascript.fGetInBfJudgTrgtManList();
  5297. trgtManWindow.javascript.fCountPat();
  5298. //trgtManWindow.model.refresh();
  5299. // 메인화면의 심사상태를 미심으로 퇴원통보여부를 'N'으로
  5300. ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn", "N");
  5301. ds_main_item1_iteminfo.setColumn( 0, "dschdclrtyn", "N");
  5302. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat", "A");
  5303. //model.refresh();
  5304. return;
  5305. }
  5306. // 20091007 JHP 병실료계산(PAM.FN_PI_GETADMAMTCALCYN) 및 처방계산(PAM.FN_PI_GETCALCMISSYN) 맞는지 확인
  5307. // 20091113 JHP 부유형은 무조건 Y로 넘어오지만 부유형통에 계산내역이 없을경우에는 값자체가 없기때문에 메세지가뜬다..하여 부유형일 경우는 메세지 제외시킨다.
  5308. var admamtcalcyn = ds_main_item11_endcnclstat.getColumn(0, "admamtcalcyn");
  5309. //var calcmissyn = ds_main_item11_endcnclstat.getColumn(0, "calcmissyn"); -- 일단 처방은 추후 반영 - 20091013 박창원
  5310. var chkmskind = ds_main_item1_iteminfo.getColumn(0, "mskind");
  5311. var brateflag = ds_main_item1_iteminfo.getColumn(0, "brateflag");
  5312. // 입원요율일 경우만 병실료 체크한다.
  5313. if (brateflag == "I") {
  5314. if (admamtcalcyn != "Y") {
  5315. if(chkmskind != "S"){
  5316. sysf_messageBox("계산되지 않은 병실료가 존재합니다. \n확인후 재계산(전수계산)","I008");
  5317. return;
  5318. }
  5319. }
  5320. }
  5321. // 2011.04.28 syjung 소급계산완료 여부. N이면 소급계산할 데이터가 남아 있으므로 퇴원마감 할 수 없음.
  5322. if (ipscendyn == "N") {
  5323. sysf_messageBox("완료되지 않은 소급계산 내역이 존재합니다. 재계산","I008");
  5324. return;
  5325. }
  5326. // 2011.06.14 syjung 외래에서 덤프되지 않은 처방 존재 여부. Y면 덤프되지 않은 처방이 있으므로 퇴원마감 할 수 없음.
  5327. if (dumpexistyn == "Y") {
  5328. sysf_messageBox("입원 당일 외래에서 덤프되지 않은 처방이 존재합니다. 재원심사 화면에서 [▶Dump] 내역을 ","I007");
  5329. return;
  5330. }
  5331. if (dumpclamkeyexistyn == "Y") {
  5332. if(sysf_messageBox("외래 자료 수집이 된 재원 내 실시처방이 있습니다. 외래 사후 자료를 생성 삭제한 후 Dump처리 하십시오.", "Q003") == 6) {
  5333. frmf_modal("SPPIJ03500", "", ""-"", "", "", "", "", "", "", "", "", "", "M");
  5334. if (ds_main_item1_iteminfo.getColumn(0, "dumprmk") == "" ) {
  5335. sysf_messageBox("사유를", "C001");
  5336. return;
  5337. }
  5338. } else {
  5339. return;
  5340. }
  5341. }
  5342. if (dupexecdd != "") {
  5343. dupexecdd = dupexecdd.toDate().getDateFormat("YYYY_MM_DD")
  5344. sysf_messageBox(dupexecdd + "중복계산 내역이 존재합니다. " + dupexecdd + "일 재계산","I008");
  5345. return;
  5346. }
  5347. //기재점검 중증, 산정특례 여부 체크
  5348. if (fGetDiagSpclcdCheck() == false) {
  5349. return false;
  5350. }
  5351. // 주부유형이 함께 있는 환자에 대해서는 퇴원마감시 알럿을 띄워준다.
  5352. var msyn = ds_main_item1_iteminfo.getColumn(0, "msyn");
  5353. if (msyn == "Y") {
  5354. sysf_messageBox("다른 보험 유형정보가 존재하오니 해당건 퇴원마감여부도 확인하여 주세요. 해당건 미마감 시 퇴원수납 할 수","I004");
  5355. }
  5356. var cOperDiag = ds_main_item1_iteminfo.getColumn(0, "opflag");
  5357. // 수술심사 미완료시 응급,chemo,dsc는 알럿만 정규퇴원은 blcok - 20090114 박창원
  5358. var ordtype = ds_main_item1_iteminfo.getColumn(0, "ordtype");
  5359. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  5360. // 연도별 분리 안 된 이력 중 본인부담 상한액 초과 환자 메세지 발생 ( 2016.03.11 LEJ )
  5361. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukind");
  5362. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  5363. var ownlimmitamt = ds_main_item1_iteminfo.getColumn(0, "ownlimmitamt"); // 본인부담 상한 구분에 따른 상한기준액
  5364. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  5365. var todd = ds_main_item1_iteminfo.getColumn(0, "todd");
  5366. var curyear = VAL_today.substr(0,4);
  5367. var fromyear = fromdd.substr(0,4);
  5368. var toyear = todd.substr(0,4);
  5369. if ( todd == "99991231" ) {
  5370. if ( dschnotidt == "99991231" || dschnotidt == "" ) {
  5371. toyear = curyear ;
  5372. }
  5373. else {
  5374. toyear = dschnotidt.substr(0,4) ;
  5375. }
  5376. }
  5377. if ( insukind == "11" && fromyear != toyear && cfe != 'F' ) {
  5378. if(parseInt(ds_main_item2_itemcalc.getColumn(0, "ownbpayamt")) > ownlimmitamt) {
  5379. var msg = sysf_messageBox("연도별 분리 되지 않은 본인부담상한제 환자입니다. \n계속","S001");
  5380. if(msg != 6) {
  5381. return;
  5382. }
  5383. }
  5384. }
  5385. if(dschnotiyn == "Y" || (dschjudgendtype == 'G' && dschdclrtyn == 'Y')){
  5386. // 수술심사가 완료되지 않았습니다. - 20080821 박창원
  5387. if ( ordtype != "I" && ((btn_operdiag.attribute("text")== "수술(미)") ||(btn_operdiag.attribute("text")== "수술(보)")) && (cOperDiag == "Y" || cOperDiag == "YY" || cOperDiag == "YN") ) {
  5388. var msg = sysf_messageBox("수술심사가 완료되지 않았습니다. 계속","S001");
  5389. if(msg != 6) {
  5390. return;
  5391. }
  5392. }
  5393. if ( ordtype == "I" && ((btn_operdiag.attribute("text")== "수술(미)") ||(btn_operdiag.attribute("text")== "수술(보)")) && (cOperDiag == "Y" || cOperDiag == "YY" || cOperDiag == "YN") ) {
  5394. sysf_messageBox("수술심사가 완료되지 않았습니다. 마감","E001");
  5395. return;
  5396. }
  5397. // 소급내역이 존재합니다. 처리후 마감해주세요.
  5398. // 10월3일 이전 소급건은 조건에서 제외한다. - 20081004 박창원
  5399. if (ds_main_item11_recal.getColumn(1, "recalcdd") != "") {
  5400. sysf_messageBox("소급내역이 존재합니다. 마감","E001");
  5401. return;
  5402. }
  5403. //약 반환 확인유무 및 창 호출.
  5404. if (fCheckReturnPrcpExist() == false) {
  5405. return;
  5406. }
  5407. if (insukind == "31"){
  5408. if (paygrntyn != "Y") {
  5409. sysf_messageBox("자동차보험 지급보증번호 누락입니다.","I007");
  5410. return;
  5411. }
  5412. }
  5413. if ((dschjudgendtype != 'G' && fChkClose() == true) || dschjudgendtype == 'G') {
  5414. // 예고심사 환자가 미시행처방이 있는 경우 마감 제어는 하지 않는다!
  5415. if (dschjudgendtype == 'G' && fChkClose() == false) {
  5416. var msg = sysf_messageBox("예고심사 환자 미시행 처방 내역이 있습니다. 마감","S001");
  5417. if(msg != 6) {
  5418. return;
  5419. }
  5420. }
  5421. if (fSaveMain("C") == true) {
  5422. //maxexectm 없다는건 iscl이 존재 하지 않는 것임.
  5423. var dschantichk = ds_hidden_result_getdschcalccheck.getColumn(0, "dschantichk");
  5424. if (dschantichk == "Y") {
  5425. var msg = sysf_messageBox("수술 예방적 항생제 평가 대상자입니다.\n항생제 퇴원약 사용 여부를 재확인하시기 바랍니다. \n계속","S001");
  5426. if(msg != 6) {
  5427. return;
  5428. }
  5429. }
  5430. if (maxexectm == "") {
  5431. if ( sysf_messageBox("유형에 계산된 처방 내역이 하나도 없습니다. 마감","Q004") != 6 ) {
  5432. return false;
  5433. }
  5434. }
  5435. // 입원 계산 자료 검증(2012.11.30 LeeEunJung)
  5436. var check0 = ds_hidden_result_getdschcalccheck.getColumn(0, "check0");
  5437. var check1 = ds_hidden_result_getdschcalccheck.getColumn(0, "check1");
  5438. var check2 = ds_hidden_result_getdschcalccheck.getColumn(0, "check2");
  5439. var check3 = ds_hidden_result_getdschcalccheck.getColumn(0, "check3");
  5440. var check4 = ds_hidden_result_getdschcalccheck.getColumn(0, "check4");
  5441. var check5 = ds_hidden_result_getdschcalccheck.getColumn(0, "check5");
  5442. if (check0 =="Y"||check1 =="Y"||check2 =="Y"||check3 =="Y"||check4 =="Y"||check5 =="Y") {
  5443. sysf_messageBox("계산자료 검증 시 오류가 체크되었습니다. 전체 재계산 후 문제 해결이 안 되면 전산실로 문의","I008");
  5444. return false;
  5445. }
  5446. // 건강보험 정상 16일 이상 재원환자에 대해 장기재원 불가피 주상병 존재하는 경우 알림
  5447. var longtermchk = ds_hidden_result_getdschcalccheck.getColumn(0, "longtermchk");
  5448. if (longtermchk == "Y") {
  5449. var msg = sysf_messageBox("장기재원 불가피 주상병이 있는 16일 이상 입원료 발생 환자 입니다.\n보조 유형을 확인하시기 바랍니다. \n계속","S001");
  5450. if(msg != 6) {
  5451. return;
  5452. }
  5453. }
  5454. //응급실 관리료 여부 체크
  5455. var nog3reasnyn = ds_hidden_result_getdschcalccheck.getColumn(0, "nog3reasnyn");
  5456. if (nog3reasnyn == "Y") {
  5457. sysf_messageBox("응급 의료관리료 미발생 환자입니다.","I007");
  5458. return false;
  5459. }
  5460. if (fGetDrgOpenPopup("O") == false) {
  5461. return false;
  5462. }
  5463. if (dschjudgendtype == "G" && dschjudgprcsstatyn > 0){
  5464. sysf_messageBox("입원이력 내 미심상태가 있습니다.","I007");
  5465. return false;
  5466. }
  5467. if (dschjudgendtype == "A") {
  5468. if (fJudgAllEnd()){
  5469. // 2. 화면 클리어 (공통)
  5470. fJudgEndClear();
  5471. sysf_messageBox("통합심사마감 처리가","I002");
  5472. } else {
  5473. sysf_messageBox("마감 처리가 되지","E007");
  5474. }
  5475. } else if (dschjudgendtype == "G") { // 예고심사 추가 (2014.06.19 LEJ)
  5476. if (fJudgDclrtEnd()){
  5477. // 2. 화면 클리어 (공통)
  5478. fJudgEndClear();
  5479. sysf_messageBox("예고심사마감 처리가","I002");
  5480. } else {
  5481. sysf_messageBox("마감 처리가 되지","E007");
  5482. }
  5483. } else {
  5484. if (fJudgEnd()){
  5485. // 2. 화면 클리어 (공통)
  5486. fJudgEndClear();
  5487. sysf_messageBox("퇴원마감 처리가","I002");
  5488. } else {
  5489. sysf_messageBox("마감 처리가 되지","E007");
  5490. }
  5491. }
  5492. }
  5493. } else {
  5494. sysf_messageBox("미시행 처방 내역이 있습니다. 마감","E001");
  5495. }
  5496. }
  5497. else {
  5498. sysf_messageBox("유형에 계산된 처방 내역이 하나도 없습니다. 마감","E001");
  5499. return;
  5500. }
  5501. }
  5502. }
  5503. function fJudgEndClear() {
  5504. // 2. 화면 클리어 (공통)
  5505. delPatientInfos();
  5506. fSetRdoReset();
  5507. btn_judgrmk.selected = true;
  5508. ds_send.setColumn( 0, "totalsumflag", "Y");
  5509. ds_send.setColumn( 0, "unitflag", "-");
  5510. //상세화면 저장버튼 처리를 위해 넣어 놓는다. - 2007-11.29 박도형
  5511. ds_hidden_item1.setColumn( 0, "chksave","N");
  5512. btn_esscdiag.attribute("class") = "btn2_letter4";
  5513. btn_babymother.attribute("class") = "btn2_letter4";
  5514. btn_operdiag.attribute("class") = "btn2_letter4";
  5515. btn_mt004.attribute("class") = "btn2_letter4";
  5516. btn_attData.attribute("class") = "btn2_letter4";
  5517. btn_operdiag.attribute("class") = "btn2_letter4";
  5518. btn_patdnor.attribute("class") = "btn_letter3";
  5519. btn_esscdiag.visible = true;
  5520. btn_babymother.visible = true;
  5521. btn_operdiag.visible = true;
  5522. btn_mt004.visible = true;
  5523. btn_attData.visible = true;
  5524. btn_operdiag.visible = true;
  5525. btn_patdnor.visible= true;
  5526. btn_save.enable = true;
  5527. btn_recalc.enable = true;
  5528. btn_sugicalc.enable = true;
  5529. btn_dschclose.enable = true;
  5530. btn_totjudgclose.enable = true;
  5531. btn_dschclosecancel.enable = true;
  5532. btn_midcomplete.enable = true;
  5533. btn_midcancel.enable = true;
  5534. btn_midregist.enable = true;
  5535. btn_midregistyn.enable = true;
  5536. group9.visible = false;
  5537. btn_dschclose.attribute("class") = "btn2_letter6";
  5538. btn_totjudgclose.attribute("class") = "btn2_letter6";
  5539. btn_dschclosecancel.attribute("class") = "btn2_letter6";
  5540. btn_midregist.attribute("class") = "btn2_letter6";
  5541. btn_midregistyn.attribute("class") = "btn2_letter6";
  5542. ds_main_item1_iteminfo.clearData(); ds_main_item1_iteminfo.addRow();
  5543. ds_main_item2_itemcalc.clearData(); ds_main_item2_itemcalc.addRow();
  5544. ds_main_item2_incd.clearData(); ds_main_item2_incd.addRow();
  5545. ds_main_item4_insu.clearData(); ds_main_item4_insu.addRow();
  5546. ds_send.clearData(); ds_send.addRow();
  5547. ds_main_list1.clearData();
  5548. dsf_makeValue( ds_main, "list1", "string", "" );
  5549. ds_main_list2.clearData();
  5550. dsf_makeValue( ds_main, "list2", "string", "" );
  5551. ds_main_list3.clearData();
  5552. dsf_makeValue( ds_main, "list3", "string", "" );
  5553. ds_main_list4.clearData();
  5554. dsf_makeValue( ds_main, "list4", "string", "" );
  5555. //model.refresh();
  5556. // 무조건 대상자 조회 화면을 refresh - 20080926 박창원
  5557. var trgtManWindow = getChildWindow("SMPIJ00200");
  5558. trgtManWindow.javascript.fGetInBfJudgTrgtManList();
  5559. trgtManWindow.javascript.fCountPat();
  5560. //trgtManWindow.model.refresh();
  5561. }
  5562. // 치식 팝업용 데이타 생성
  5563. function fSetToothPop(row, flag) {
  5564. ds_hidden_sppiz00600_cond_list.clearData();
  5565. dsf_makeValue( ds_hidden_sppiz00600_cond, "list", "string", "" );
  5566. // 상병
  5567. var cntdiag = ds_main_list3_diaglist.rowcount;
  5568. // 처방
  5569. var cntiscl = ds_main_list2_iscllist.rowcount;
  5570. var cd = "";
  5571. var cdnm = "";
  5572. var orddd = "";
  5573. var toot = "";
  5574. var rowcnt = 1;
  5575. for (i=1; i<=cntdiag; i++) {
  5576. cd = ds_main_list3_diaglist.getColumn(i, "diagcd");
  5577. cdnm = ds_main_list3_diaglist.getColumn(i, "diagnm");
  5578. orddd = ds_main_list3_diaglist.getColumn(i, "ordfromdd");
  5579. toot = ds_main_list3_diaglist.getColumn(i, "toot");
  5580. estmcls = ds_main_list2_iscllist.getColumn(i, "estmcls"); //20100318 정승우 의정부 오류로 추가
  5581. if (cd != "") {
  5582. if ((toot != "-" && toot != "") || estmcls == "U") {
  5583. var milktoothstr = "ABCDE000";
  5584. var subTootStr = "";
  5585. for (var inx = 0; inx < 32; inx++) {
  5586. var tootnum = toot.substr(inx,1);
  5587. if (tootnum == "*") { // 선택된 영구치의 경우 1~8 사이 숫자로 표시한다.
  5588. if (inx < 8) {
  5589. subTootStr += (8 - inx);
  5590. }
  5591. else if (inx > 7 && inx < 16) {
  5592. subTootStr += (inx - 7);
  5593. }
  5594. else if (inx > 15 && inx < 24) {
  5595. subTootStr += (24 - inx);
  5596. } else {
  5597. subTootStr += (inx - 23);
  5598. }
  5599. } else if (tootnum == "#") { // 선택된 유치의 경우 A~E 사이 알파벳으로 표시한다.
  5600. if (inx < 8) {
  5601. subTootStr += milktoothstr.charAt(7 - inx);
  5602. }
  5603. else if (inx > 7 && inx < 16) {
  5604. subTootStr += milktoothstr.charAt(inx - 8);
  5605. }
  5606. else if (inx > 15 && inx < 24) {
  5607. subTootStr += milktoothstr.charAt(23 - inx);
  5608. } else {
  5609. subTootStr += milktoothstr.charAt(inx - 24);
  5610. }
  5611. } else { // if (tootnum == "0") 선택되지 않은 경우 공백으로 처리한다.
  5612. subTootStr += " ";
  5613. }
  5614. }
  5615. //치식 표기를 설정한다.
  5616. if (row == i && flag == "1" ) {
  5617. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  5618. } else {
  5619. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "false");
  5620. }
  5621. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "상병");
  5622. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  5623. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  5624. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", subTootStr.substr(0, 8));
  5625. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", subTootStr.substr(8, 8));
  5626. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", subTootStr.substr(16, 8));
  5627. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", subTootStr.substr(24, 8));
  5628. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  5629. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", toot);
  5630. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  5631. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "pid", "");
  5632. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "indd", "");
  5633. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cretno", "");
  5634. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "instcd", "");
  5635. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "execdd", "");
  5636. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcseqno", "");
  5637. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcscorseqno", "");
  5638. rowcnt = rowcnt+1;
  5639. } else {
  5640. if (row == i && flag == "1" ) {
  5641. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  5642. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "상병");
  5643. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  5644. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  5645. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", "");
  5646. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", "");
  5647. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", "");
  5648. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", "");
  5649. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  5650. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", "");
  5651. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  5652. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "pid", "");
  5653. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "indd", "");
  5654. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cretno", "");
  5655. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "instcd", "");
  5656. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "execdd", "");
  5657. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcseqno", "");
  5658. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcscorseqno", "");
  5659. rowcnt = rowcnt+1;
  5660. }
  5661. }
  5662. } // if cd != ""
  5663. } // for end
  5664. for (i=1; i<=cntiscl; i++) {
  5665. cd = ds_main_list2_iscllist.getColumn(i, "snglcalcscorcd");
  5666. cdnm = ds_main_list2_iscllist.getColumn(i, "hngnm");
  5667. orddd = ds_main_list2_iscllist.getColumn(i, "ordfromdd");
  5668. toot = ds_main_list2_iscllist.getColumn(i, "tootfact");
  5669. estmcls = ds_main_list2_iscllist.getColumn(i, "estmcls");
  5670. if ((toot != "-" && toot != "") || estmcls == "U") {
  5671. var milktoothstr = "ABCDE000";
  5672. var subTootStr = "";
  5673. var tmpStr = "";
  5674. for (var inx = 0; inx < 32; inx++) {
  5675. var tootnum = toot.substr(inx,1);
  5676. if (tootnum == "*") { // 선택된 영구치의 경우 1~8 사이 숫자로 표시한다.
  5677. if (inx < 8) {
  5678. subTootStr += (8 - inx);
  5679. }
  5680. else if (inx > 7 && inx < 16) {
  5681. subTootStr += (inx - 7);
  5682. }
  5683. else if (inx > 15 && inx < 24) {
  5684. subTootStr += (24 - inx);
  5685. } else {
  5686. subTootStr += (inx - 23);
  5687. }
  5688. } else if (tootnum == "#") { // 선택된 유치의 경우 A~E 사이 알파벳으로 표시한다.
  5689. if (inx < 8) {
  5690. subTootStr += milktoothstr.charAt(7 - inx);
  5691. }
  5692. else if (inx > 7 && inx < 16) {
  5693. subTootStr += milktoothstr.charAt(inx - 8);
  5694. }
  5695. else if (inx > 15 && inx < 24) {
  5696. subTootStr += milktoothstr.charAt(23 - inx);
  5697. } else {
  5698. subTootStr += milktoothstr.charAt(inx - 24);
  5699. }
  5700. } else { // if (tootnum == "0") 선택되지 않은 경우 공백으로 처리한다.
  5701. subTootStr += " ";
  5702. }
  5703. }
  5704. //치식 표기를 설정한다.
  5705. if (row == i && flag == "2" ) {
  5706. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  5707. } else {
  5708. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "false");
  5709. }
  5710. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "처방");
  5711. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  5712. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  5713. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", subTootStr.substr(0, 8));
  5714. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", subTootStr.substr(8, 8));
  5715. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", subTootStr.substr(16, 8));
  5716. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", subTootStr.substr(24, 8));
  5717. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  5718. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", toot);
  5719. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  5720. rowcnt = rowcnt+1;
  5721. } else {
  5722. if (row == i && flag == "2" ) {
  5723. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  5724. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "처방");
  5725. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  5726. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  5727. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", "");
  5728. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", "");
  5729. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", "");
  5730. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", "");
  5731. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  5732. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", "");
  5733. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  5734. rowcnt = rowcnt+1;
  5735. }
  5736. }
  5737. }
  5738. }
  5739. // 치식 팝어에 받은 데이타
  5740. function fGetToothPop() {
  5741. var tootSelectcnt = ds_hidden_sppiz00600_rslt_list.rowcount;
  5742. var flag = "";
  5743. var row = "";
  5744. var toot = "";
  5745. tootSelectcnt = eval(tootSelectcnt) + 1;
  5746. for (var i=1; i<tootSelectcnt; i++) {
  5747. flag = ds_hidden_sppiz00600_rslt_list.getColumn(i, "flag");
  5748. row = ds_hidden_sppiz00600_rslt_list.getColumn(i, "row");
  5749. var rlsttoot = ds_hidden_sppiz00600_rslt_list.getColumn(i, "toot");
  5750. var rlsttoot1 = ds_hidden_sppiz00600_rslt_list.getColumn(i, "toot1");
  5751. if (rlsttoot == "") {
  5752. rlsttoot = "-";
  5753. }
  5754. if (rlsttoot1 == "") {
  5755. rlsttoot1 = "-";
  5756. }
  5757. if (flag == "1") {
  5758. toot = ds_main_list3_diaglist.getColumn(row, "toot"));
  5759. ds_main_list3.setColumn( row , "toot", rlsttoot);
  5760. ds_main_list3.setColumn( row , "toot1", rlsttoot1);
  5761. if (rlsttoot != toot) { // 치식번호가 변경된 경우
  5762. var diagstatus = grd_diaglist.rowstatus(row);
  5763. if (diagstatus == 0 || diagstatus == 2) { // 0 : new, 2 : update
  5764. grd_diaglist.rowstatus(row) = 2; // 2 : update
  5765. }
  5766. }
  5767. }
  5768. }
  5769. }
  5770. //1. 중증, 산정특례 변경 여부 체크
  5771. function fUpdtCheckEssc(flag){
  5772. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  5773. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  5774. var mskind = ds_main_item1_iteminfo.getColumn(0, "mskind");
  5775. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  5776. var suppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  5777. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  5778. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  5779. var dschdd = ds_main_item1_iteminfo.getColumn(0, "dschdd");
  5780. var insuflag = "";
  5781. var isEsscdiag = btn_esscdiag.visible;
  5782. var isEsscdiagUpdt = false;
  5783. var isUpdtEsscV193 = ds_hidden_updtchkessc.getColumn(0, "esscV193");
  5784. var isUpdtEsscV191 = ds_hidden_updtchkessc.getColumn(0, "esscV191");
  5785. var rareesscyn = ds_hidden_result_rareessc.getColumn(0, "rareesscyn");
  5786. ds_hidden_item1.setColumn( 0, "vcode","");
  5787. // 희귀난치 산정특례 추가 - 20100224 박창원
  5788. if(suppkind == "05" || suppkind == "06" || suppkind == "39" || suppkind == "40" || suppkind == "50" || suppkind == "31" || (insukind == "22" && suppkind == "08")){ // 20090325 차상위2종 추가 - 박창원 20100318 정승우 신생아 / 보호2종 6세미만 추가
  5789. return;
  5790. }
  5791. if(pid){
  5792. var isEsscV193 = false;
  5793. var isEsscV191 = false;
  5794. var isEsscVisible = true;
  5795. var cEsscCnt = ds_hidden_result_chkessc.rowcount;
  5796. if (cEsscCnt == 0 && rareesscyn != "Y" ) { // 특정내역이 없는 경우임
  5797. return;
  5798. } else {
  5799. var chkspclcd = model.getValue("ds_hidden_result_chkessc[vcode='V191' or vcode='V192']_vcode");
  5800. var spclcd = ds_hidden_result_chkessc.lookupExpr("vcode == '" + V193 + "'", "vcode");
  5801. if (chkspclcd.length > 0) {
  5802. isEsscV191 = true;
  5803. //이미 체크된건이 V193인경우 V193으로 처리 한다.
  5804. var chk = ds_hidden_item1.getColumn(0, "vcode");
  5805. if(chk == "V193"){
  5806. ds_hidden_item1.setColumn( 0, "vcode","V193");
  5807. }else{
  5808. ds_hidden_item1.setColumn( 0, "vcode",chkspclcd);
  5809. }
  5810. }
  5811. if(spclcd == "V193" && suppkind != "32") { // 차상위는 중증등록버튼이 활성화되지 않게한다. 20090227 박창원
  5812. ds_hidden_item1.setColumn( 0, "vcode",spclcd);
  5813. var suppkindcd = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  5814. isEsscV193 = true;
  5815. // V193인경우 이미 적용하면 끝이기때문에 일부로 보여지지 않도록 했었지만
  5816. // 사용자 요구사항으로 그냥 버튼 살아 있게 한다. 2007.12.07 박도형
  5817. //if (suppkindcd == "06") {
  5818. // isEsscVisible = false;
  5819. //}
  5820. }
  5821. }
  5822. btn_esscdiag.visible = false;
  5823. if (isEsscV191) {
  5824. if (isEsscVisible) {
  5825. if (isEsscdiag) {
  5826. if (isUpdtEsscV191 == "True") {
  5827. isEsscdiagUpdt = false;
  5828. } else {
  5829. isEsscdiagUpdt = true;
  5830. }
  5831. } else {
  5832. isEsscdiagUpdt = true;
  5833. }
  5834. btn_esscdiag.visible = true;
  5835. } else {
  5836. btn_esscdiag.visible = false;
  5837. isEsscdiagUpdt = false;
  5838. }
  5839. btn_esscdiag.attribute("class") = "btn5_letter4";
  5840. btn_esscdiag.attribute("color") = "#ff0066";
  5841. } else {
  5842. if (isEsscV193) {
  5843. if (isEsscVisible) {
  5844. if (isEsscdiag) {
  5845. if (isUpdtEsscV193 == "True") {
  5846. isEsscdiagUpdt = false;
  5847. } else {
  5848. isEsscdiagUpdt = true;
  5849. }
  5850. } else {
  5851. isEsscdiagUpdt = true;
  5852. }
  5853. btn_esscdiag.visible = true;
  5854. } else {
  5855. btn_esscdiag.visible = false;
  5856. isEsscdiagUpdt = false;
  5857. }
  5858. btn_esscdiag.attribute("class") = "btn5_letter4";
  5859. btn_esscdiag.attribute("color") = "#ff0066";
  5860. } else {
  5861. isEsscdiagUpdt = false;
  5862. btn_esscdiag.attribute("class") = "btn2_letter4";
  5863. btn_esscdiag.visible = false;
  5864. }
  5865. }
  5866. //if (isEsscdiagUpdt) {
  5867. var trgtManWindow = getChildWindow("SPPIJ01900");
  5868. var vcode = ds_hidden_item1.getColumn(0, "vcode");
  5869. ds_hidden_sppij01900_cond.setColumn( 0, "pid",ds_main_item1_iteminfo.getColumn(0, "pid"));
  5870. ds_hidden_sppij01900_cond.setColumn( 0, "indd",ds_main_item1_iteminfo.getColumn(0, "indd1"));
  5871. ds_hidden_sppij01900_cond.setColumn( 0, "mskind",ds_main_item1_iteminfo.getColumn(0, "mskind"));
  5872. ds_hidden_sppij01900_cond.setColumn( 0, "brateflag",ds_main_item1_iteminfo.getColumn(0, "brateflag"));
  5873. ds_hidden_sppij01900_cond.setColumn( 0, "brthdd",ds_main_item1_iteminfo.getColumn(0, "brthdd"));
  5874. ds_hidden_sppij01900_cond.setColumn( 0, "vcode",vcode);
  5875. // 희귀난치 산정특례 로직 추가 - 20100224 박창원
  5876. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  5877. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  5878. var suppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  5879. if (insukind == "11" && suppkind != "31" && suppkind != "32" && suppkind != "01" && fromdd >= "20090701" && rareesscyn == "Y") {
  5880. // 20090930 JHP 희귀난치 등록여부 확인위해 추가함. -- 시작
  5881. var anohosprgstflag = ds_main_item13_rooa.getColumn(0, "anohosprgstflag");
  5882. var rareobstno = ds_main_item13_rooa.getColumn(0, "rareobstno");
  5883. var rareobstfromdd = ds_main_item13_rooa.getColumn(0, "rareobstfromdd");
  5884. var rareobsttodd = ds_main_item13_rooa.getColumn(0, "rareobsttodd");
  5885. var signyn = ds_main_item13_rooa.getColumn(0, "signyn");
  5886. //20091109 JHP 희귀난치 메세지는 상병에 R_O 상병일 경우는 메세지 제외함.
  5887. var ruleoutyn = ds_main_list3_diaglist.getColumn(1, "ruleoutyn");
  5888. if(ruleoutyn == 'true'){
  5889. // 주상병 R_O일때에는 희귀난치 메세지 처리 안함.
  5890. }else{
  5891. if (fromdd >= "20091001") { // 10월1일 이후에는 등록번호가 반드시 있어야한다. - 추가코딩필요
  5892. // 타병원등록 여부 , Y:타병원,N:우리병원
  5893. if(anohosprgstflag == "Y"){
  5894. // 희귀난치 번호여부
  5895. if(rareobstno == null || rareobstno == '-'){
  5896. sysf_messageBox("## 희귀난치정보 ## : 타병원등록이나 희귀난치번호가 ","I004");
  5897. } else {
  5898. btn_esscdiag.visible = true;
  5899. btn_esscdiag.attribute("class") = "btn5_letter4";
  5900. btn_esscdiag.attribute("color") = "#ff0066";
  5901. }
  5902. } else if(anohosprgstflag == "N"){
  5903. // 희귀난치 번호여부
  5904. if(rareobstno == null || rareobstno == '-'){
  5905. if(signyn == "Y"){
  5906. btn_esscdiag.visible = true;
  5907. btn_esscdiag.attribute("class") = "btn5_letter4";
  5908. btn_esscdiag.attribute("color") = "#ff0066";
  5909. } else {
  5910. sysf_messageBox("## 희귀난치정보 ## : 재원병원등록이나 등록번호 및 서명정보가 ","I004");
  5911. }
  5912. } else{
  5913. btn_esscdiag.visible = true;
  5914. btn_esscdiag.attribute("class") = "btn5_letter4";
  5915. btn_esscdiag.attribute("color") = "#ff0066";
  5916. }
  5917. } else {
  5918. // 희귀난치 data(mmohrooa)에 정보없음.
  5919. sysf_messageBox("## 희귀난치정보 ## : 등록번호 및 서명정보가 ","I004");
  5920. }
  5921. } else {
  5922. btn_esscdiag.visible = true;
  5923. btn_esscdiag.attribute("class") = "btn5_letter4";
  5924. btn_esscdiag.attribute("color") = "#ff0066";
  5925. }
  5926. }
  5927. }
  5928. // 20100224 박창원 희귀난치 산정특례추가
  5929. var anohosprgstflag = ds_main_item13_rooa.getColumn(0, "anohosprgstflag");
  5930. var rareobstno = ds_main_item13_rooa.getColumn(0, "rareobstno");
  5931. var rareobstfromdd = ds_main_item13_rooa.getColumn(0, "rareobstfromdd");
  5932. var rareobsttodd = ds_main_item13_rooa.getColumn(0, "rareobsttodd");
  5933. var signyn = ds_main_item13_rooa.getColumn(0, "signyn");
  5934. var fromdd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  5935. if (insukind == "11" && suppkind != "32" && rareesscyn == "Y" && suppkind != "01" && suppkind != "50" && suppkind != "46" && fromdd >= "20090701"
  5936. && ((anohosprgstflag == "N" && signyn == "Y") || (anohosprgstflag == "Y" && rareobstfromdd <= fromdd && rareobsttodd >= fromdd))) {
  5937. fesscdiag();
  5938. }else if(vcode == "V193" && suppkind != "32" && suppkind != "06" && suppkind != "40" && suppkind != "31" && suppkind != "69" && !(insukind == "22" && suppkind == "08") ){ // 차상위 1종일때는 등록암 메세지가 안나오게 20090227 박창원 20100318 정승우 신생아유형_급여2종 6세미만 일때 등록암 메세지 나오지 않도록
  5939. var msg = sysf_messageBox("등록암환자입니다. 중증요율 적용","S001");
  5940. if(msg !=6){
  5941. return;
  5942. }else{
  5943. Insuchange("06");
  5944. }
  5945. }else if(vcode == "V191" || vcode == "V192"){
  5946. if (flag == "S") {
  5947. var msg = sysf_messageBox("중증수술 환자입니다. 중증요율 적용","S001");
  5948. if(msg !=6){
  5949. return;
  5950. }else{
  5951. if (trgtManWindow == null) {
  5952. frmf_open("SPPIJ01900", "SPPIJ01900", "ds_hidden_sppij01900_cond""-"ds_send_cond"", "", "", "10", "10", "", "", "", "", "", "M");
  5953. } else {
  5954. activateChild("SPPIJ01900");
  5955. //model.refresh();
  5956. }
  5957. }
  5958. }
  5959. } else {
  5960. if (flag == "S") {
  5961. //sysf_messageBox("저장이","I002");
  5962. }
  5963. //중증처방여부 체크
  5964. fChkEsscEDI();
  5965. }
  5966. }
  5967. }
  5968. // 변경된 퇴원확정여부, 심사상태 flag를 대상자조회화면에 보여준다. (2008.01.28 박지욱 추가)
  5969. function fSetChildStat() {
  5970. //model.refresh();
  5971. // 대상자조회화면에 심사상태를 업데이트 보여주도록 한다. (2008. 01. 28 박지욱 추가, 심사상태와 퇴원확정여부, 최종심사자, 심사일자 변경)
  5972. var trgtManWindow = getChildWindow("SMPIJ00200"); // SMPIJ00600_입원재원심사대상자조회.xrw
  5973. if (trgtManWindow != null) {
  5974. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat"); // 심사상태
  5975. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn"); // 퇴원확정여부
  5976. var selectedRow = trgtManWindow.ds_hidden.getColumn(0, "selectedRow");
  5977. var row = parseInt(selectedRow);
  5978. if (row > 0) {
  5979. trgtManWindow.ds_main_list1.setColumn( row , "dschjudgprcsstat", dschjudgprcsstat);
  5980. trgtManWindow.ds_main_list1.setColumn( row , "dschnotiyn", dschnotiyn);
  5981. trgtManWindow.ds_main_list1.setColumn( row , "lastjudgendid", VAL_usernm);
  5982. trgtManWindow.ds_main_list1.setColumn( row , "lastjudgdt", VAL_today);
  5983. }
  5984. }
  5985. // 끝
  5986. }
  5987. // 중증처방체크로직 추가 - 2007.11.27
  5988. // 중증처방만 있고 상병이 없는경우 Alert메세지를 띄운다.
  5989. // 조건 : 중증처방 존재 + 중증버튼 없음 + 중증요율 아님
  5990. function fChkEsscEDI(){
  5991. var chkBtn = btn_esscdiag.visible;
  5992. var chkSuppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  5993. var chkInsukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  5994. if(chkBtn == "True" || chkSuppkind == "05" || chkSuppkind == "39"){ // 20090325 차상위 2종 추가 - 박창원
  5995. return;
  5996. }
  5997. if(chkInsukind != "11" && chkInsukind != "21" && chkInsukind != "22" ){
  5998. return;
  5999. }
  6000. var cEssc = instance1.selectSingleNode("ds_hidden_result_chkesscedi");
  6001. if (cEssc == null) { // 특정내역이 없는 경우임
  6002. return;
  6003. }else{
  6004. frmf_modal("SPPIJ02100", "SPPIJ02100", "ds_hidden_result_chkesscedi""-"ds_main_list1"", "", "", "10", "10", "", "", "", "", "", "M");
  6005. }
  6006. }
  6007. // 마감 가능 여부 체크(임시적 사용)
  6008. function fChkClose() {
  6009. var flag = true;
  6010. // 처방내역에 있는 미시행 건이 있는지 체크
  6011. //이경민 속도 개선 for -> xpath
  6012. var chkN = ds_main_list2_iscllist.lookupExpr("execprcpstatcd == 'N'", "execprcpstatcd");
  6013. var chkO = ds_main_list2_iscllist.lookupExpr("execprcpstatcd == 'O'", "execprcpstatcd");
  6014. if(chkN == "N" || chkO == "O"){
  6015. flag = false;
  6016. }
  6017. return flag;
  6018. }
  6019. // grid 타이틀 컬럼 정보
  6020. function getOrderInfoOfCol(grdid){
  6021. var refdata = ""; // ref
  6022. var sizedata = ""; // size
  6023. var grdobj = document.controls.item(grdid);
  6024. var totcol = grdobj.cols;
  6025. for(var i = 0; i < totcol; i++){
  6026. var refval = grdobj.colAttribute(i, "ref");
  6027. refdata += refval + "^";
  6028. var sizeval = grdobj.colWidth(i);
  6029. sizedata += sizeval + "^";
  6030. }
  6031. refdata = refdata.substring(0 , refdata.length-1);
  6032. sizedata = sizedata.substring(0, sizedata.length-1);
  6033. var scrnid = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grdid + "'", "scrnid");
  6034. var compscnts = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grdid + "'", "compscnts");
  6035. if (scrnid == "") {
  6036. ds_send_listval_uuee.setColumn( 0, "flag","I");
  6037. } else {
  6038. ds_send_listval_uuee.setColumn( 0, "flag","U");
  6039. }
  6040. ds_send_listval_uuee.setColumn( 0, "scrnid","SMPIJ00300");
  6041. ds_send_listval_uuee.setColumn( 0, "compsnm",grdid.toString());
  6042. ds_send_listval_uuee.setColumn( 0, "compscnts",refdata);
  6043. ds_send_listval_uuee.setColumn( 0, "compsrefcnts","-");
  6044. ds_send_listval_uuee.setColumn( 0, "compssizecnts",sizedata);
  6045. // if ( submit("TXPIJ00402") ) {
  6046. var oParam = {};
  6047. oParam.id = "TXPIJ00402";
  6048. oParam.service = "bfjudgapp.InHospJudgDetl";
  6049. oParam.method = "reqExeSaveUuee";
  6050. oParam.inds = "req=ds_";
  6051. oParam.outds = "ds_=uuee";
  6052. oParam.async = false;
  6053. oParam.callback = "cf_TXPIJ00402";
  6054. tranf_submit(oParam);
  6055. /*
  6056. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  6057. if(nErrorCode < 0) return;
  6058. }
  6059. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  6060. arErrorCode.push(sSvcId, nErrorCode);
  6061. }
  6062. arErrorCode.pop("TXPIJ00402") > -1
  6063. arErrorCode.pop("TXPIJ00402") < 0
  6064. */
  6065. sysf_messageBox("사용자 환경 저장이","I002");
  6066. }
  6067. }
  6068. // grid 타이틀 컬럼 정보
  6069. function getOrderInfoOfRdo(rdoid){
  6070. var refdata = ""; // ref
  6071. var sizedata = ""; // size
  6072. var scrnid = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + rdoid + "'", "scrnid");
  6073. var compscnts = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + rdoid + "'", "compscnts");
  6074. var calcamtflag = ds_hidden_list1_isclcond.getColumn(0, "calcamtflag")
  6075. if (scrnid == "") {
  6076. ds_send_listval_uuee.setColumn( 0, "flag","I");
  6077. } else {
  6078. ds_send_listval_uuee.setColumn( 0, "flag","U");
  6079. }
  6080. ds_send_listval_uuee.setColumn( 0, "scrnid","SMPIJ00300");
  6081. ds_send_listval_uuee.setColumn( 0, "compsnm",rdoid);
  6082. ds_send_listval_uuee.setColumn( 0, "compscnts",(calcamtflag.length == 0 ? "-" : calcamtflag));
  6083. ds_send_listval_uuee.setColumn( 0, "compsrefcnts", "-");
  6084. ds_send_listval_uuee.setColumn( 0, "compssizecnts","-");
  6085. // if ( submit("TXPIJ00402") ) {
  6086. var oParam = {};
  6087. oParam.id = "TXPIJ00402";
  6088. oParam.service = "bfjudgapp.InHospJudgDetl";
  6089. oParam.method = "reqExeSaveUuee";
  6090. oParam.inds = "req=ds_";
  6091. oParam.outds = "ds_=uuee";
  6092. oParam.async = false;
  6093. oParam.callback = "cf_TXPIJ00402";
  6094. tranf_submit(oParam);
  6095. /*
  6096. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  6097. if(nErrorCode < 0) return;
  6098. }
  6099. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  6100. arErrorCode.push(sSvcId, nErrorCode);
  6101. }
  6102. arErrorCode.pop("TXPIJ00402") > -1
  6103. arErrorCode.pop("TXPIJ00402") < 0
  6104. */
  6105. //sysf_messageBox("사용자 환경 저장이","I002");
  6106. }
  6107. }
  6108. function getOrderInfoOfChk(chkid){
  6109. var scrnid = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chkid + "'", "scrnid");
  6110. var compscnts = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chkid + "'", "compscnts");
  6111. var chkval = model.getValue("ds_hidden_list1_isclcond/" + chkid.replace("chk_",""));
  6112. if (scrnid == "") {
  6113. ds_send_listval_uuee.setColumn( 0, "flag","I");
  6114. } else {
  6115. ds_send_listval_uuee.setColumn( 0, "flag","U");
  6116. }
  6117. ds_send_listval_uuee.setColumn( 0, "scrnid","SMPIJ00300");
  6118. ds_send_listval_uuee.setColumn( 0, "compsnm",chkid);
  6119. ds_send_listval_uuee.setColumn( 0, "compscnts",(chkval.length == 0 ? "N" : chkval));
  6120. ds_send_listval_uuee.setColumn( 0, "compsrefcnts", "-");
  6121. ds_send_listval_uuee.setColumn( 0, "compssizecnts","-");
  6122. // if ( submit("TXPIJ00402") ) {
  6123. var oParam = {};
  6124. oParam.id = "TXPIJ00402";
  6125. oParam.service = "bfjudgapp.InHospJudgDetl";
  6126. oParam.method = "reqExeSaveUuee";
  6127. oParam.inds = "req=ds_";
  6128. oParam.outds = "ds_=uuee";
  6129. oParam.async = false;
  6130. oParam.callback = "cf_TXPIJ00402";
  6131. tranf_submit(oParam);
  6132. /*
  6133. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  6134. if(nErrorCode < 0) return;
  6135. }
  6136. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  6137. arErrorCode.push(sSvcId, nErrorCode);
  6138. }
  6139. arErrorCode.pop("TXPIJ00402") > -1
  6140. arErrorCode.pop("TXPIJ00402") < 0
  6141. */
  6142. //sysf_messageBox("사용자 환경 저장이","I002");
  6143. }
  6144. }
  6145. // 사용자별 grid 타이틀 컬럼 설정
  6146. function setOrderInfoOfCol(grdid, refdata, sizedata){
  6147. var grdobj = document.controls.item(grdid);
  6148. var refarr = refdata.split("^");
  6149. var sizearr = sizedata.split("^");
  6150. for(var i = 0; i < refarr.length; i++){
  6151. var colcnt = grdobj.colref("" + refarr[i] + "");
  6152. grdobj.colMove(i, colcnt, "before",false);
  6153. var size = sizearr[i];
  6154. grdobj.colWidth(i) = eval(size);
  6155. }
  6156. //grdobj.refresh();
  6157. var caption = "";
  6158. for( var i = 1; i < grdobj.cols ; i++ ){
  6159. if (caption == "") {
  6160. caption = grdobj.textMatrix(0,i);
  6161. } else {
  6162. caption += "^" + grdobj.textMatrix(0,i);
  6163. }
  6164. }
  6165. grdobj.caption = caption;
  6166. }
  6167. // 중간청구등록 화면에서 조회된 환자가 중간 청구 등록이 된 경우.
  6168. function fSetMidregist(midcflag) {
  6169. btn_midregist.enable = true;
  6170. if(midcflag == "Y"){
  6171. btn_midregist.attribute("class") = "btn2_letter6";
  6172. btn_midregist.attribute("color") = "#ff0066";
  6173. btn_midregistyn.enable = false;
  6174. btn_midcomplete.enable = true;
  6175. btn_midcancel.enable = true;
  6176. } else {
  6177. btn_midregist.attribute("class") = "btn2_letter6";
  6178. btn_midregistyn.attribute("class") = "btn2_letter6";
  6179. btn_midregistyn.enable = true;
  6180. btn_midcomplete.enable = false;
  6181. btn_midcancel.enable = false;
  6182. }
  6183. }
  6184. //유형적용 완료후 소급처리 한다. - 20080730 수가계산을 날짜별로 loop. - 박창원
  6185. function fReCalc() {
  6186. // 입원일 부터 현재까지 계산한다(일일단위로 loop)
  6187. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  6188. var todd = ds_main_item1_iteminfo.getColumn(0, "todd");
  6189. if (todd == "99991231") {
  6190. todd = VAL_today;
  6191. }
  6192. var period = utlf_getDateInterval(fromdd, todd);
  6193. // fromdd부터 currentdate까지 loop
  6194. for (i=1; i<= (period+1); i++) {
  6195. ds_send.setColumn( 0, "calcbasedd" , fromdd);
  6196. // var rslt = submit("TXPIJ00205",false);
  6197. var oParam = {};
  6198. oParam.id = "TXPIJ00205";
  6199. oParam.service = "bfjudgapp.InHospJudgTrgtMan";
  6200. oParam.method = "reqInCalculation";
  6201. oParam.inds = "req=ds_";
  6202. oParam.outds = "";
  6203. oParam.async = false;
  6204. oParam.callback = "cf_TXPIJ00205";
  6205. tranf_submit(oParam);
  6206. /*
  6207. function cf_TXPIJ00205(sSvcId, nErrorCode, sErrorMsg) {
  6208. if(nErrorCode < 0) return;
  6209. }
  6210. function cf_TXPIJ00205(sSvcId, nErrorCode, sErrorMsg) {
  6211. arErrorCode.push(sSvcId, nErrorCode);
  6212. }
  6213. arErrorCode.pop("TXPIJ00205") > -1
  6214. arErrorCode.pop("TXPIJ00205") < 0
  6215. */
  6216. if (rslt == false ) {
  6217. return false;
  6218. }
  6219. // fromdd를 증가시킨다(하루씩)
  6220. fromdd = fromdd.toDate("YYYYMMDD");
  6221. fromdd = fromdd.getAddDate(1);
  6222. fromdd = fromdd.getDateFormat();
  6223. }
  6224. }
  6225. // SPPIZ00700_심사Comment조회.xrw 호출(심사자메모,EDI메모)
  6226. function fGetJudgEdiComment(memoflag, memocls) {
  6227. ds_hidden_sppiz00700_rslt.clearData(); ds_hidden_sppiz00700_rslt.addRow();
  6228. ds_hidden_sppiz00700_cond.clearData(); ds_hidden_sppiz00700_cond.addRow();
  6229. ds_hidden_sppiz00700_cond.setColumn( 0, "memoflag", memoflag);
  6230. ds_hidden_sppiz00700_cond.setColumn( 0, "memocls", memocls);
  6231. frmf_modal("SPPIZ00700", "SPPIZ00700", "ds_hidden_sppiz00700""-"ds_send_sppiz00700"", "", "", "10", "10", "", "", "", "", "", "M");
  6232. }
  6233. // 수정추가 20090813 외래요율환자 일경우 보험, 보조유형 정보가 맞는지 확인하여 alert처리함.
  6234. function fOutRateInsuSuppflag(){
  6235. //속도개선 통합 plet2
  6236. //submit("TRPIJ00316");
  6237. if(ds_main_outrateinsusuppflag_info.getColumn(0, "yn") == "N"){
  6238. sysf_messageBox("6시간 미만으로 외래요율 퇴원건입니다. \n환자에게 해당하는 보조유형을 선택하여 변경하시고 재계산 한후 심사","I008");
  6239. }
  6240. }
  6241. //평가메모 관련 팝업창세팅
  6242. function fSetTstMemoRefresh(){
  6243. var memo = ds_hidden_sppiz00700_rslt.getColumn(0, "memo");
  6244. var tmp = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  6245. if(tmp){
  6246. tmp = tmp + " ";
  6247. }
  6248. ds_main_item1_iteminfo.setColumn( 0, "tstrmk",tmp + memo);
  6249. //
  6250. //model.refresh();
  6251. 최적화 문제로 대체 20080731 박창원
  6252. //model.refresh();
  6253. }
  6254. function fSetRdoReset(){
  6255. var rdo_name = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + rdo_zerofilter + "'", "compsnm");
  6256. var rdo_val = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + rdo_zerofilter + "'", "compscnts");
  6257. if (rdo_name.length > 0) {
  6258. if (rdo_val == "calcamt!='0' or matractflag='0'"){
  6259. model.setValue(rdo_zerofilter.attribute("ref"), "0");
  6260. ds_hidden_list1_isclcond.setColumn( 0, "calcamtflag",rdo_val );
  6261. } else if (rdo_val == "calcamt='0'") {
  6262. model.setValue(rdo_zerofilter.attribute("ref"), "1");
  6263. ds_hidden_list1_isclcond.setColumn( 0, "calcamtflag",rdo_val );
  6264. } else {
  6265. model.setValue(rdo_zerofilter.attribute("ref"), "-");
  6266. ds_hidden_list1_isclcond.setColumn( 0, "calcamtflag","");
  6267. }
  6268. } else {
  6269. model.setValue(rdo_zerofilter.attribute("ref"), "0");
  6270. ds_hidden_list1_isclcond.setColumn( 0, "calcamtflag","calcamt!='0' or matractflag='0'");
  6271. }
  6272. var chk_name = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chk_showsubtotal + "'", "compsnm");
  6273. var chk_val = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chk_showsubtotal + "'", "compscnts");
  6274. if (chk_name.length > 0) {
  6275. if (chk_val == "Y"){
  6276. ds_hidden_list1_isclcond.setColumn( 0, "showsubtotal", chk_val);
  6277. } else {
  6278. ds_hidden_list1_isclcond.setColumn( 0, "showsubtotal", "");
  6279. }
  6280. } else {
  6281. ds_hidden_list1_isclcond.setColumn( 0, "showsubtotal", "");
  6282. }
  6283. chk_name = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chk_showitemcoloryn + "'", "compsnm");
  6284. chk_val = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chk_showitemcoloryn + "'", "compscnts");
  6285. if (chk_name.length > 0) {
  6286. if (chk_val == "Y"){
  6287. ds_hidden_list1_isclcond.setColumn( 0, "showitemcoloryn", chk_val);
  6288. } else {
  6289. ds_hidden_list1_isclcond.setColumn( 0, "showitemcoloryn", "");
  6290. }
  6291. } else {
  6292. ds_hidden_list1_isclcond.setColumn( 0, "showitemcoloryn", "");
  6293. }
  6294. model.setValue(rdo_actmatflag.attribute("ref"), "-");
  6295. model.setValue(rdo_actingflag.attribute("ref"), "all");
  6296. model.setValue(rdo_insuflag.attribute("ref"), "-");
  6297. model.setValue(rdo_ordfilflag.attribute("ref"), "-");
  6298. model.setValue(rdo_cpflag.attribute("ref"), "-");
  6299. ds_hidden_list1_isclcond.setColumn( 0, "matractflag","");
  6300. ds_hidden_list1_isclcond.setColumn( 0, "calcpayflag","");
  6301. ds_hidden_list1_isclcond.setColumn( 0, "snglcalcscorcls","");
  6302. ds_hidden_list1_isclcond.setColumn( 0, "cpflag","");
  6303. ds_hidden_list1_isclcond.setColumn( 0, "edicd","");
  6304. ds_hidden_list1_isclcond.setColumn( 0, "snglcalcscorcd","");
  6305. ds_hidden_list1_isclcond.setColumn( 0, "actingflag","");
  6306. }
  6307. function openSMMMR06900() {
  6308. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6309. if(chk){
  6310. var trgtManWindow = getChildWindow("SMMMR06900");
  6311. if (trgtManWindow == null) {
  6312. frmf_modal("SMMMR06900", "", ""-"", "", "", "", "", "", "", "", "", "", "M");
  6313. //frmf_modal("SMMMR06901", "SPPIJ02501", "ds_hidden_sppij02501_cond""-"ds_send"", "", "", "10", "10", "", "", "", "", "", "M");
  6314. }else{
  6315. activateChild("SMMMR06900");
  6316. }
  6317. }
  6318. }
  6319. function fGetDrgOpenPopup(flag){
  6320. //DRG 설정..시작
  6321. var opchkyn = ds_main_item11_drginfo.getColumn(0, "opchkyn");
  6322. var drgmchkyn = ds_main_item11_drginfo.getColumn(0, "drgmchkyn");
  6323. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  6324. var indaycnt = parseInt(ds_main_list1_insulist.lookupExpr("fromdd == '" + fromdd + "'", "indaycnt"));
  6325. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  6326. var cnt = dsds_main_list2_iscllist.filter("drgacptflag='" + C + "'").rowcount ;
  6327. var snglcalcscorcd = ds_main_list2_iscllist.lookupExpr("drgacptflag == 'C'", "snglcalcscorcd");
  6328. /* DRG 추가인정 수술료의 산정의미를 체크할 필요가 없다!! 추가인정금액 생성 시 제외하고 발생하므로!! (2015.06.24 LEJ)
  6329. if (cnt > 0 && dschjudgprcsstat != "C") {
  6330. var estmcd000 = getNodesetCount("ds_main_list2_iscllist[drgacptflag='C' and estmcd='000']_drgacptflag");
  6331. var estmcd004 = getNodesetCount("ds_main_list2_iscllist[drgacptflag='C' and estmcd='004']_drgacptflag");
  6332. var estmcd = getNodesetCount("ds_main_list2_iscllist[drgacptflag='C' and estmcd='']_drgacptflag");
  6333. if (estmcd000 > 0 || estmcd004 > 0 || estmcd > 0) {
  6334. } else {
  6335. sysf_messageBox("["+snglcalcscorcd+"] DRG 추가 인정 수술료입니다. 산정의미를","I007");
  6336. return false;
  6337. }
  6338. }
  6339. */
  6340. if (opchkyn=="Y" && indaycnt <= 30) {
  6341. // DRG 대상자 중 혈우병 특정기호: V009, HIV 특정기호: V103 존재 시 DRG 제외 대상자 메세지
  6342. var drgexceptyn = ds_main_item11_endcnclstat.getColumn(0, "drgexceptyn");
  6343. if (drgexceptyn == "Y") {
  6344. if ( sysf_messageBox("DRG 제외 상병(혈우병 또는 HIV)이 존재하는 DRG 대상자 입니다. 마감","Q004") != 6 ) {
  6345. return false;
  6346. }
  6347. }
  6348. if (flag == "O") { openSMMMR06900(); }
  6349. var vpid = ds_main_item1_iteminfo.getColumn(0, "pid");
  6350. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  6351. var ordfromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  6352. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  6353. frmf_setParameter("pid", vpid);
  6354. frmf_setParameter("indd", indd);
  6355. frmf_setParameter("ordfromdd", ordfromdd);
  6356. frmf_setParameter("cretno", cretno);
  6357. frmf_setParameter("drgmstat", flag);
  6358. frmf_modal("SPPIJ03200", "SPPIJ03200", "ds_hidden_sppij03200_cond""-"ds_send_data_drginfo"", "", "", "10", "10", "", "", "", "", "", "M");
  6359. if (ds_main_item11_drginfo.getColumn(0, "rslt") != "true") {
  6360. return false;
  6361. }
  6362. }
  6363. //DRG완료
  6364. }
  6365. function fGetKDrgOpenPopup(flag){
  6366. var vpid = ds_main_item1_iteminfo.getColumn(0, "pid");
  6367. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  6368. var ordfromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  6369. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  6370. frmf_setParameter("pid", vpid);
  6371. frmf_setParameter("indd", indd);
  6372. frmf_setParameter("ordfromdd", ordfromdd);
  6373. frmf_setParameter("cretno", cretno);
  6374. frmf_setParameter("drgmstat", flag);
  6375. frmf_open("SPPIJ04000", "SPPIJ04000", "ds_hidden_sppij03200_cond""-"ds_send_data_drginfo"", "", "", "10", "10", "", "", "", "", "", "M");
  6376. }
  6377. /*
  6378. 심사완료전상병특정내역체크 2013.07.10 plet2
  6379. 16세미만, 35세 이상 초산 산모 필수 진단 체크
  6380. 특정 분만진단에 필수 부진단 유무 체크
  6381. 임신주수별 체중과 진단 체크
  6382. */
  6383. function fGetDiagSpclcdCheck(){
  6384. var diagnode = "ds_main_list3_diaglist";
  6385. var spclnode = "ds_main_list4_clcjlist";
  6386. var isclnode = "ds_main_list2_iscllist";
  6387. var chk_diagcd = model.getValue(diagnode+"[seqno='1']_diagcd"); //주상병코드
  6388. var chk_O3420 = model.getValue(diagnode+"[diagcd='O3420']_diagcd");
  6389. var chk_prgweekcnt = ds_main_clcjnbwt_clcjnbwtlist.getColumn(0, "prgweekcnt"); //임신주수
  6390. var chk_weig = ds_main_clcjnbwt_clcjnbwtlist.getColumn(0, "weig"); //신생아체중
  6391. var chk_O365 =model.getValue(diagnode+"[diagcd='O365' or diagcd='O366' ]_diagcd"); //임신주수상병코드
  6392. var chk_poaflag = getNodesetCount(diagnode+"[diagcd!='' and poaflag='']_diagcd"); //poaflag
  6393. //16세미만, 35세 이상 초산 산모 필수 진단 체크
  6394. var chk_R= model.getValue(isclnode+"[snglcalcscorcd='R4351' " +
  6395. "or snglcalcscorcd='R3131' " +
  6396. "or snglcalcscorcd='R3141' " +
  6397. "or snglcalcscorcd='R4361' " +
  6398. "or snglcalcscorcd='R4519' " +
  6399. "or snglcalcscorcd='R4517' " +
  6400. "]_snglcalcscorcd"); // 초산 상병체크
  6401. var patage = parseInt(ds_main_item1_iteminfo.getColumn(0, "age"));
  6402. var result = true;
  6403. if (chk_R.length > 0 && (patage >= 35 || patage < 16) ) {
  6404. if(sysf_messageBox("어린 초임부 또는 고령초임부 환자입니다.", "Q003") == 6) {
  6405. result = true;
  6406. } else {
  6407. result = false;
  6408. }
  6409. }
  6410. //특정 분만진단에 필수 부진단 유무 체크
  6411. //O820이 주상병인 환자가 O3420 상병이 없을 경우 체크
  6412. if (chk_diagcd == 'O820' && chk_O3420.length == 0 ) {
  6413. if(sysf_messageBox("반복제왕절개 환자입니다.", "Q003") == 6) {
  6414. result = true;
  6415. } else {
  6416. var ans = sysf_messageBox("O3420 상병을 입력" , "S001");
  6417. if (ans==6){
  6418. grd_diaglist.setFocus();
  6419. //fDiagGridInsertRow();
  6420. grd_diaglist.bottomRow = grd_diaglist.rows;
  6421. //model.refresh();
  6422. var maxseq = model.getXPathValue("max("+diagnode+"[*]_seqno)");
  6423. model.setValue(diagnode+"[seqno='"+maxseq+"']_diagcd","O3420");
  6424. model.setValue(diagnode+"[seqno='"+maxseq+"']_diagnm","이전의 제왕절개로 인한 흉터의 산모 관리");
  6425. }
  6426. result = false;
  6427. }
  6428. }
  6429. //임신주수별 체중과 진단 체크
  6430. //신생아 체중관련 상병누락입니다 (O365 or O366)
  6431. if (chk_prgweekcnt.length > 0 && chk_weig.length > 0) {
  6432. var nwbabyweight = parseInt(chk_weig);
  6433. var minweight = parseInt(ds_main_nbwt_nbwtlist.lookupExpr("prgntweek == '" + chk_prgweekcnt + "'", "minweight"));
  6434. var maxweight = parseInt(ds_main_nbwt_nbwtlist.lookupExpr("prgntweek == '" + chk_prgweekcnt + "'", "maxweight"));
  6435. if (chk_O365.length == 0 && (nwbabyweight <= minweight || nwbabyweight >= maxweight ) ) {
  6436. if(sysf_messageBox("신생아 체중관련 상병누락 환자입니다.", "Q003") == 6) {
  6437. result = true;
  6438. } else {
  6439. result = false;
  6440. }
  6441. }
  6442. }
  6443. var opchkyn = ds_main_item11_drginfo.getColumn(0, "opchkyn");
  6444. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  6445. var indaycnt = parseInt(ds_main_list1_insulist.lookupExpr("fromdd == '" + fromdd + "'", "indaycnt"));
  6446. if (opchkyn=="Y" && indaycnt <= 30) {
  6447. if (chk_poaflag > 0) {
  6448. sysf_messageBox("상병의 POA정보는", "I003");
  6449. return false;
  6450. /* 사후에 에러발생으로 모든상병 POA정보 없으면 진행되지않도록 수정. 2014.01.17 plet2
  6451. * if(sysf_messageBox("상병에 POA정보가 없습니다.", "Q003") == 6) {
  6452. result = true;
  6453. } else {
  6454. result = false;
  6455. }*/
  6456. }
  6457. }
  6458. }
  6459. //2013.07.18 이경민 요율변경 공통호출함수 정리
  6460. function Insuchange(suppkind) {
  6461. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  6462. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  6463. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  6464. var mskind = ds_main_item1_iteminfo.getColumn(0, "mskind");
  6465. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  6466. var seqno = ds_main_item1_iteminfo.getColumn(0, "seqno");
  6467. if (seqno == "") {
  6468. seqno = "1"
  6469. }
  6470. var todd = ds_main_item1_iteminfo.getColumn(0, "todd");
  6471. var insukind = ds_send.getColumn(0, "insukind");
  6472. var instcd = ds_main_item1_iteminfo.getColumn(0, "instcd");
  6473. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  6474. ds_hidden_item2_insuchange.setColumn( 0, "iphs_status","B");
  6475. ds_hidden_item2_insuchange.setColumn( 0, "iphs_pid",pid);
  6476. ds_hidden_item2_insuchange.setColumn( 0, "iphs_indd",indd);
  6477. ds_hidden_item2_insuchange.setColumn( 0, "iphs_cretno",cretno);
  6478. ds_hidden_item2_insuchange.setColumn( 0, "iphs_mskind",mskind);
  6479. ds_hidden_item2_insuchange.setColumn( 0, "iphs_fromdd",fromdd);
  6480. ds_hidden_item2_insuchange.setColumn( 0, "iphs_seqno",seqno);
  6481. ds_hidden_item2_insuchange.setColumn( 0, "iphs_todd",todd);
  6482. ds_hidden_item2_insuchange.setColumn( 0, "iphs_insukind",insukind);
  6483. ds_hidden_item2_insuchange.setColumn( 0, "iphs_suppkind",suppkind);
  6484. ds_hidden_item2_insuchange.setColumn( 0, "iphs_instcd",instcd);
  6485. ds_hidden_item2_insuchange.setColumn( 0, "iphs_indschacptstat",indschacptstat);
  6486. ds_hidden_insuchange_rslt.clearData();
  6487. var receiptyn = ds_main_item1_iteminfo.getColumn(0, "receiptyn");
  6488. if (receiptyn != "") {
  6489. sysf_messageBox("퇴원(가퇴원) 수납이 되었으므로 유형변경을","E001");
  6490. return false;
  6491. }
  6492. // if(submit("TXPIJ00305", false)){
  6493. var oParam = {};
  6494. oParam.id = "TXPIJ00305";
  6495. oParam.service = "ipatmngtapp.InhospUpdt";
  6496. oParam.method = "reqSetInhospUpdt4";
  6497. oParam.inds = "s_iphs=ds_";
  6498. oParam.outds = "ds_=result";
  6499. oParam.async = false;
  6500. oParam.callback = "cf_TXPIJ00305";
  6501. tranf_submit(oParam);
  6502. /*
  6503. function cf_TXPIJ00305(sSvcId, nErrorCode, sErrorMsg) {
  6504. if(nErrorCode < 0) return;
  6505. }
  6506. function cf_TXPIJ00305(sSvcId, nErrorCode, sErrorMsg) {
  6507. arErrorCode.push(sSvcId, nErrorCode);
  6508. }
  6509. arErrorCode.pop("TXPIJ00305") > -1
  6510. arErrorCode.pop("TXPIJ00305") < 0
  6511. */
  6512. if(sysf_messageBox("유형변경이 완료 되었습니다. 변경된 내역의 소급처리를", "Q004") == 6){
  6513. // 로딩창 열기
  6514. var sWindowMsg = "수가계산중입니다...";
  6515. callLoadingWindow(sWindowMsg);
  6516. fReCalc() ;
  6517. // 로딩창 닫기
  6518. removeLoadingWindow();
  6519. sysf_messageBox("소급계산이","I001");
  6520. }
  6521. }
  6522. //model.refresh();
  6523. grp_changeownbrate.visible = false;
  6524. fGetItemInfo();
  6525. }
  6526. /**
  6527. * _desc : 퇴원예고일자 이후의 처방 존재 유무 확인(submit)
  6528. * _param :
  6529. * _return : true, false
  6530. * _authur : 이경민 2013. 8. 5
  6531. */
  6532. function fCheckReturnPrcpExist(){
  6533. var bRtn = true;
  6534. var pid = ds_main_item1_iteminfo.getColumn(0, "pid")
  6535. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1")
  6536. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno")
  6537. dsf_makeValue( ds_dschreturnprcp_reqdata, "pid", "string", pid);
  6538. dsf_makeValue( ds_dschreturnprcp_reqdata, "indd", "string", indd);
  6539. dsf_makeValue( ds_dschreturnprcp_reqdata, "cretno", "string", cretno);
  6540. ds_checkreturnprcp_rtndata_cnt.clearData(); ds_checkreturnprcp_rtndata_cnt.addRow();
  6541. // if(submit("TRMMO00404")){
  6542. var oParam = {};
  6543. oParam.id = "TRMMO00404";
  6544. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  6545. oParam.method = "reqGetChkDschReturnPrcpCnt";
  6546. oParam.inds = "req=ds_";
  6547. oParam.outds = "ds_=rtndata";
  6548. oParam.async = false;
  6549. oParam.callback = "cf_TRMMO00404";
  6550. tranf_submit(oParam);
  6551. /*
  6552. function cf_TRMMO00404(sSvcId, nErrorCode, sErrorMsg) {
  6553. if(nErrorCode < 0) return;
  6554. }
  6555. function cf_TRMMO00404(sSvcId, nErrorCode, sErrorMsg) {
  6556. arErrorCode.push(sSvcId, nErrorCode);
  6557. }
  6558. arErrorCode.pop("TRMMO00404") > -1
  6559. arErrorCode.pop("TRMMO00404") < 0
  6560. */
  6561. var nCnt = ds_checkreturnprcp_rtndata.getColumn(0, "cnt");
  6562. if(nCnt > 0) {
  6563. frmf_setParameter("SPMMO50400_pid", pid);
  6564. frmf_setParameter("SPMMO50400_indd", indd);
  6565. frmf_setParameter("SPMMO50400_cretno", cretno);
  6566. frmf_modal("SPMMO50400", "", ""-"", "", "", "", "", "", "", "", "", "", "M");
  6567. bRtn = false;
  6568. }
  6569. }
  6570. return bRtn;
  6571. }
  6572. //중간청구등록
  6573. function fmidregist() {
  6574. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6575. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  6576. if(chk){
  6577. if(ipt_pid.text.length >1){
  6578. if(indd.length>1){
  6579. //var trgtManWindow = getChildWindow("SMPIJ01100");
  6580. var trgtManWindow = getChildWindow("SMPIJ02300");
  6581. var patunitsrch1 = ds_main_item1_iteminfo.getColumn(0, "pid").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  6582. // 2008.01.23 박지욱 수정 (중간청구등록화면에 넘겨주는 데이터 추가 - pid, indd)
  6583. ds_hidden_midclam.clearData();
  6584. dsf_makeValue( ds_hidden_midclam, "pid", "string", patunitsrch1);
  6585. dsf_makeValue( ds_hidden_midclam, "indd", "string", ds_main_item1_iteminfo.getColumn(0, "indd"));
  6586. if (trgtManWindow == null) {
  6587. frmf_open("SMPIJ02300", "SMPIJ02300", "ds_hidden_midclam""-"ds_hidden_midclam"", "", "", "10", "10", "", "", "", "", "", "M");
  6588. } else {
  6589. activateChild("SMPIJ02300");
  6590. trgtManWindow.javascript.fGetMidClamList();
  6591. }
  6592. //model.refresh();
  6593. }
  6594. }
  6595. }
  6596. }
  6597. //분할제외등록
  6598. function fmidregistyn() {
  6599. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6600. if(chk){
  6601. var midregistyn = ds_main_item1_iteminfo.getColumn(0, "midregistyn");
  6602. if (midregistyn == "Y") {
  6603. // if (submit("TXPIJ00307", false)) {
  6604. var oParam = {};
  6605. oParam.id = "TXPIJ00307";
  6606. oParam.service = "bfjudgapp.InHospJudg";
  6607. oParam.method = "reqSetDivClamExpt";
  6608. oParam.inds = "req=ds_";
  6609. oParam.outds = "ds_=result";
  6610. oParam.async = false;
  6611. oParam.callback = "cf_TXPIJ00307";
  6612. tranf_submit(oParam);
  6613. /*
  6614. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  6615. if(nErrorCode < 0) return;
  6616. }
  6617. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  6618. arErrorCode.push(sSvcId, nErrorCode);
  6619. }
  6620. arErrorCode.pop("TXPIJ00307") > -1
  6621. arErrorCode.pop("TXPIJ00307") < 0
  6622. */
  6623. btn_midregist.attribute("class") = "btn2_letter6";
  6624. btn_midregist.enable = true;
  6625. btn_midregistyn.attribute("class") = "btn2_letter6";
  6626. //btn_midregistyn.attribute("color") = "#ff0066";
  6627. ds_main_item1_iteminfo.setColumn( 0, "midregistyn", "N");
  6628. sysf_messageBox("분할제외 등록 취소가","I002");
  6629. }
  6630. } else {
  6631. // if (submit("TXPIJ00307"), false) {
  6632. var oParam = {};
  6633. oParam.id = "TXPIJ00307";
  6634. oParam.service = "bfjudgapp.InHospJudg";
  6635. oParam.method = "reqSetDivClamExpt";
  6636. oParam.inds = "req=ds_";
  6637. oParam.outds = "ds_=result";
  6638. oParam.async = false;
  6639. oParam.callback = "cf_TXPIJ00307";
  6640. tranf_submit(oParam);
  6641. /*
  6642. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  6643. if(nErrorCode < 0) return;
  6644. }
  6645. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  6646. arErrorCode.push(sSvcId, nErrorCode);
  6647. }
  6648. arErrorCode.pop("TXPIJ00307") > -1
  6649. arErrorCode.pop("TXPIJ00307") < 0
  6650. */
  6651. btn_midregist.attribute("class") = "btn2_letter6";
  6652. btn_midregist.enable = false;
  6653. btn_midregistyn.attribute("class") = "btn2_letter6";
  6654. btn_midregistyn.attribute("color") = "#ff0066";
  6655. ds_main_item1_iteminfo.setColumn( 0, "midregistyn", "Y");
  6656. sysf_messageBox("분할제외 등록이","I002");
  6657. }
  6658. }
  6659. }
  6660. }
  6661. //애기_엄마
  6662. function fbabymother() {
  6663. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6664. if(chk){
  6665. var readonly = ds_send.getColumn(0, "readonly");
  6666. // 6시간 미만 환자일 경우 Block - 20081005 박창원
  6667. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  6668. // open일관련 적용 - 20090302 - 하드코딩 제거,확산병원 데이터 미등록 때문에 예외처리함
  6669. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  6670. // 이력 그리드내에서 보조유형이 09(자연분만) 있는 경우 이미 면제기간이 적용된 경우
  6671. // 분만신생아관리 화면에서 면제기간적용 버튼 비활성화 (2008.01.29 박지욱 추가)
  6672. var fromdd = "";
  6673. var todd = "";
  6674. var seqno = ds_main_item1_iteminfo.getColumn(0, "seqno");
  6675. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  6676. var dschnotidt = ds_main_item1_iteminfo.getColumn(0, "dschnotidt");
  6677. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  6678. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  6679. for (var i = 1; i < grd_insuhistory.rows; i++) {
  6680. var suppkind = ds_main_list1_insulist.getColumn(i, "suppkind");
  6681. if (suppkind == "09" || suppkind == "42") {
  6682. fromdd = ds_main_list1_insulist.getColumn(i, "fromdd");
  6683. todd = ds_main_list1_insulist.getColumn(i, "dschnotidt");
  6684. seqno = ds_main_list1_insulist.getColumn(i, "seqno");
  6685. }
  6686. }
  6687. ds_hidden_sppiz01200_cond.setColumn( 0, "pid",ds_main_item1_iteminfo.getColumn(0, "pid"));
  6688. ds_hidden_sppiz01200_cond.setColumn( 0, "indd",indd);
  6689. ds_hidden_sppiz01200_cond.setColumn( 0, "cretno",ds_main_item1_iteminfo.getColumn(0, "cretno"));
  6690. ds_hidden_sppiz01200_cond.setColumn( 0, "mskind",ds_main_item1_iteminfo.getColumn(0, "mskind"));
  6691. ds_hidden_sppiz01200_cond.setColumn( 0, "brateflag",ds_main_item1_iteminfo.getColumn(0, "brateflag"));
  6692. ds_hidden_sppiz01200_cond.setColumn( 0, "brthdd",ds_main_item1_iteminfo.getColumn(0, "brthdd"));
  6693. ds_hidden_sppiz01200_cond.setColumn( 0, "dschnotidt",dschnotidt);
  6694. ds_hidden_sppiz01200_cond.setColumn( 0, "dschnotiyn",dschnotiyn);
  6695. ds_hidden_sppiz01200_cond.setColumn( 0, "calcbasedd", '-');
  6696. ds_hidden_sppiz01200_cond.setColumn( 0, "seqno", seqno);
  6697. ds_hidden_sppiz01200_cond.setColumn( 0, "cfe", cfe);
  6698. // 심사마감이나 퇴원한 환자는 면제일자적용이나 해제를 시킬 수 없다. - 20080924 박창원
  6699. // 기존에는 심사마감이나 퇴원여부를 인스턴스에서 가져오던 것을 실시간 체크로 변경 - 20080927 박창원
  6700. // if (!submit("TRPIJ00315", false)) {
  6701. var oParam = {};
  6702. oParam.id = "TRPIJ00315";
  6703. oParam.service = "bfjudgapp.InHospJudg";
  6704. oParam.method = "reqNotiDschStat";
  6705. oParam.inds = "req=ds_";
  6706. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  6707. oParam.async = false;
  6708. oParam.callback = "cf_TRPIJ00315";
  6709. tranf_submit(oParam);
  6710. /*
  6711. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6712. if(nErrorCode < 0) return;
  6713. }
  6714. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6715. arErrorCode.push(sSvcId, nErrorCode);
  6716. }
  6717. arErrorCode.pop("TRPIJ00315") > -1
  6718. arErrorCode.pop("TRPIJ00315") < 0
  6719. */
  6720. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  6721. return;
  6722. }
  6723. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  6724. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  6725. // 중간청구 여부를 판단해서 블로킹 - 20081017 박창원
  6726. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd");
  6727. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  6728. if (lastmdlclamdd > fromdd && lastmdlclamdd > opendd && lastmdlclamdd != "" ) {
  6729. ds_hidden_sppiz01200_cond.setColumn( 0, "saveyn","Y");
  6730. }
  6731. if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E" || indschacptstat == "D" || readonly == "Y") {
  6732. ds_hidden_sppiz01200_cond.setColumn( 0, "saveyn","Y");
  6733. } else {
  6734. ds_hidden_sppiz01200_cond.setColumn( 0, "saveyn","N");
  6735. }
  6736. // fromdd 와 todd 에 값이 있으면 면제기간 적용된 환자임을 알려주는 flag 세팅
  6737. if (fromdd != "" && todd != "") {
  6738. ds_hidden_sppiz01200_cond.setColumn( 0, "disyn","Y");
  6739. } else {
  6740. ds_hidden_sppiz01200_cond.setColumn( 0, "disyn","N");
  6741. }
  6742. if (sixtimyn == "Y") {
  6743. sysf_messageBox("6시간 미만 상태 입니다. 자연분만 요율을 설정(저장) ","E001");
  6744. }
  6745. ds_hidden_sppiz01200_cond.setColumn( 0, "fromdd",fromdd);
  6746. ds_hidden_sppiz01200_cond.setColumn( 0, "todd",todd);
  6747. var trgtManWindow = getChildWindow("SPPIZ01200");
  6748. if (trgtManWindow == null) {
  6749. frmf_open("SPPIZ01200", "SPPIZ01200", "ds_hidden_sppiz01200_cond""-"ds_hidden_sppiz01200_cond"", "", "", "10", "10", "", "", "", "", "", "M");
  6750. } else {
  6751. activateChild("SPPIZ01200");
  6752. //model.refresh();
  6753. }
  6754. }
  6755. }
  6756. //수술(유)
  6757. function foperdiag() {
  6758. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6759. if(chk){
  6760. var trgtManWindow = getChildWindow("SPPIZ01300");
  6761. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  6762. ds_hidden_sppiz01300_cond.setColumn( 0, "pid",ds_main_item1_iteminfo.getColumn(0, "pid"));
  6763. ds_hidden_sppiz01300_cond.setColumn( 0, "indd",indd);
  6764. ds_hidden_sppiz01300_cond.setColumn( 0, "cretno",ds_main_item1_iteminfo.getColumn(0, "cretno"));
  6765. if (trgtManWindow == null) {
  6766. frmf_open("SPPIZ01300", "SPPIZ01300", "ds_hidden_sppiz01300_cond""-"ds_send_data1"", "", "", "10", "10", "", "", "", "", "", "M");
  6767. } else {
  6768. activateChild("SPPIZ01300");
  6769. //model.refresh();
  6770. }
  6771. }
  6772. }
  6773. //중간마감취소
  6774. function fmidcancel() {
  6775. //20091126 JHP 수정추가
  6776. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6777. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  6778. var ans = 0;
  6779. if(chk){
  6780. if(ipt_pid.text.length >1){
  6781. if(indd.length>1){
  6782. var trgtManWindow = getChildWindow("SMPID10100");
  6783. var patunitsrch1 = ds_main_item1_iteminfo.getColumn(0, "pid").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  6784. // 2008.01.23 박지욱 수정 (중간청구등록화면에 넘겨주는 데이터 추가 - pid, indd)
  6785. ds_hidden_midclam.clearData();
  6786. dsf_makeValue( ds_hidden_midclam, "pid", "string", patunitsrch1);
  6787. dsf_makeValue( ds_hidden_midclam, "indd", "string", ds_main_item1_iteminfo.getColumn(0, "indd"));
  6788. if (trgtManWindow == null) {
  6789. ans = sysf_messageBox("심사 취소 할 경우", "S001");
  6790. if (ans == 6) {
  6791. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  6792. // if (!submit("TRPIJ00315", false)) {
  6793. var oParam = {};
  6794. oParam.id = "TRPIJ00315";
  6795. oParam.service = "bfjudgapp.InHospJudg";
  6796. oParam.method = "reqNotiDschStat";
  6797. oParam.inds = "req=ds_";
  6798. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  6799. oParam.async = false;
  6800. oParam.callback = "cf_TRPIJ00315";
  6801. tranf_submit(oParam);
  6802. /*
  6803. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6804. if(nErrorCode < 0) return;
  6805. }
  6806. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6807. arErrorCode.push(sSvcId, nErrorCode);
  6808. }
  6809. arErrorCode.pop("TRPIJ00315") > -1
  6810. arErrorCode.pop("TRPIJ00315") < 0
  6811. */
  6812. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  6813. return;
  6814. }
  6815. if (fGetDrgOpenPopup("O") == false) {
  6816. return false;
  6817. }
  6818. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","A");
  6819. // if (submit("TXPIJ00301", false)) {
  6820. var oParam = {};
  6821. oParam.id = "TXPIJ00301";
  6822. oParam.service = "bfjudgapp.InHospJudg";
  6823. oParam.method = "reqExeSaveInpt";
  6824. oParam.inds = "req=ds_";
  6825. oParam.outds = "";
  6826. oParam.async = false;
  6827. oParam.callback = "cf_TXPIJ00301";
  6828. tranf_submit(oParam);
  6829. /*
  6830. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  6831. if(nErrorCode < 0) return;
  6832. }
  6833. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  6834. arErrorCode.push(sSvcId, nErrorCode);
  6835. }
  6836. arErrorCode.pop("TXPIJ00301") > -1
  6837. arErrorCode.pop("TXPIJ00301") < 0
  6838. */
  6839. }
  6840. }
  6841. } else {
  6842. ans = sysf_messageBox("심사 취소 할 경우", "S001");
  6843. if (ans == 6) {
  6844. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  6845. // if (!submit("TRPIJ00315", false)) {
  6846. var oParam = {};
  6847. oParam.id = "TRPIJ00315";
  6848. oParam.service = "bfjudgapp.InHospJudg";
  6849. oParam.method = "reqNotiDschStat";
  6850. oParam.inds = "req=ds_";
  6851. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  6852. oParam.async = false;
  6853. oParam.callback = "cf_TRPIJ00315";
  6854. tranf_submit(oParam);
  6855. /*
  6856. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6857. if(nErrorCode < 0) return;
  6858. }
  6859. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6860. arErrorCode.push(sSvcId, nErrorCode);
  6861. }
  6862. arErrorCode.pop("TRPIJ00315") > -1
  6863. arErrorCode.pop("TRPIJ00315") < 0
  6864. */
  6865. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  6866. return;
  6867. }
  6868. if (fGetDrgOpenPopup("O") == false) {
  6869. return false;
  6870. }
  6871. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","A");
  6872. // submit("TXPIJ00301",false);
  6873. var oParam = {};
  6874. oParam.id = "TXPIJ00301";
  6875. oParam.service = "bfjudgapp.InHospJudg";
  6876. oParam.method = "reqExeSaveInpt";
  6877. oParam.inds = "req=ds_";
  6878. oParam.outds = "";
  6879. oParam.async = false;
  6880. oParam.callback = "cf_TXPIJ00301";
  6881. tranf_submit(oParam);
  6882. /*
  6883. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  6884. if(nErrorCode < 0) return;
  6885. }
  6886. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  6887. arErrorCode.push(sSvcId, nErrorCode);
  6888. }
  6889. arErrorCode.pop("TXPIJ00301") > -1
  6890. arErrorCode.pop("TXPIJ00301") < 0
  6891. */
  6892. }
  6893. }
  6894. //model.refresh();
  6895. }
  6896. }
  6897. }
  6898. }
  6899. //특정내역
  6900. function fspclData() {
  6901. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6902. if(chk){
  6903. var rrgstno = ds_main_item1_iteminfo.getColumn(0, "rrgstno");
  6904. rrgstno = rrgstno.replace("-","");
  6905. ds_send.setColumn( 0, "rrgstno",rrgstno);
  6906. ds_send.setColumn( 0, "dschdd",ds_main_item1_iteminfo.getColumn(0, "dschdd"));
  6907. var fromdd = ds_send.getColumn(0, "fromdd");
  6908. // v191, v192, v193 값을 넣기 위한 vcode
  6909. ds_send.setColumn( 0, "vcode", ds_hidden_item1.getColumn(0, "vcode"));
  6910. // if (submit("TRPIJ00310")) {
  6911. var oParam = {};
  6912. oParam.id = "TRPIJ00310";
  6913. oParam.service = "bfjudgapp.InHospJudg";
  6914. oParam.method = "reqGetSpclCdList";
  6915. oParam.inds = "req=ds_";
  6916. oParam.outds = "ds_=clcjlist";
  6917. oParam.async = false;
  6918. oParam.callback = "cf_TRPIJ00310";
  6919. tranf_submit(oParam);
  6920. /*
  6921. function cf_TRPIJ00310(sSvcId, nErrorCode, sErrorMsg) {
  6922. if(nErrorCode < 0) return;
  6923. }
  6924. function cf_TRPIJ00310(sSvcId, nErrorCode, sErrorMsg) {
  6925. arErrorCode.push(sSvcId, nErrorCode);
  6926. }
  6927. arErrorCode.pop("TRPIJ00310") > -1
  6928. arErrorCode.pop("TRPIJ00310") < 0
  6929. */
  6930. ds_main_list4.copyData(ds_hidden_list4);
  6931. //grd_clcjlist.dispatch("xforms-value-changed");
  6932. //
  6933. //model.refresh();
  6934. 최적화 문제로 대체 20080731 박창원
  6935. model.refreshpart("ds_main_list4");
  6936. for(var i = 1; i < grd_clcjlist.rows; i++) {
  6937. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  6938. ds_main_list4.setColumn( i , "fromdd", fromdd);
  6939. if (spclcd == "" ) {
  6940. grd_clcjlist.deleteRow(i, false);
  6941. }
  6942. }
  6943. for(var i = 1; i < grd_clcjlist.rows; i++) {
  6944. var status = ds_main_list4_clcjlist.getColumn(i, "status");
  6945. if(status == "3"){
  6946. grd_clcjlist.rowstatus(i) = 1;
  6947. }
  6948. }
  6949. // 그리드 정렬 + 빈줄 추가
  6950. fSortSpclNo();
  6951. // 행추가
  6952. // fSpclGridInsertRow();
  6953. }
  6954. }
  6955. }
  6956. //중증질환
  6957. function fesscdiag() {
  6958. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  6959. var readonly = ds_send.getColumn(0, "readonly");
  6960. // open 일 적용 - 20090302 박창원 - 확산될때마다 수정해야함 - 확산병원은 오픈일 기준자료가 없으므로...
  6961. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  6962. /* if (opendd != "20081003") {
  6963. opendd = "20081003";
  6964. } */
  6965. if(chk){
  6966. var trgtManWindow = getChildWindow("SPPIJ01900");
  6967. var vcode = ds_hidden_item1.getColumn(0, "vcode");
  6968. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  6969. // 6시간미만 변경 블로킹을 위해 변수 추가 - 20081105 박창원
  6970. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  6971. // 심사마감이나 퇴원한 환자는 요율을 변경 시킬 수 없다. - 20080924 박창원
  6972. // 등록암 불가 알럿후 종료, 중증수술은 조회만 되게 - 기간적용,적용, 유형복원 안되게
  6973. // 기존에는 심사마감이나 퇴원여부를 인스턴스에서 가져오던 것을 실시간 체크로 변경 - 20080927 박창원
  6974. // if (!submit("TRPIJ00315", false)) {
  6975. var oParam = {};
  6976. oParam.id = "TRPIJ00315";
  6977. oParam.service = "bfjudgapp.InHospJudg";
  6978. oParam.method = "reqNotiDschStat";
  6979. oParam.inds = "req=ds_";
  6980. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  6981. oParam.async = false;
  6982. oParam.callback = "cf_TRPIJ00315";
  6983. tranf_submit(oParam);
  6984. /*
  6985. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6986. if(nErrorCode < 0) return;
  6987. }
  6988. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  6989. arErrorCode.push(sSvcId, nErrorCode);
  6990. }
  6991. arErrorCode.pop("TRPIJ00315") > -1
  6992. arErrorCode.pop("TRPIJ00315") < 0
  6993. */
  6994. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  6995. return;
  6996. }
  6997. var indschacptstat = ds_main_item11_endcnclstat.getColumn(0, "indschacptstat");
  6998. var dschjudgprcsstat = ds_main_item11_endcnclstat.getColumn(0, "dschjudgprcsstat");
  6999. ds_hidden_sppij01900_cond.setColumn( 0, "pid",ds_main_item1_iteminfo.getColumn(0, "pid"));
  7000. ds_hidden_sppij01900_cond.setColumn( 0, "indd",indd);
  7001. ds_hidden_sppij01900_cond.setColumn( 0, "cretno",ds_main_item1_iteminfo.getColumn(0, "cretno"));
  7002. ds_hidden_sppij01900_cond.setColumn( 0, "mskind",ds_main_item1_iteminfo.getColumn(0, "mskind"));
  7003. ds_hidden_sppij01900_cond.setColumn( 0, "brateflag",ds_main_item1_iteminfo.getColumn(0, "brateflag"));
  7004. ds_hidden_sppij01900_cond.setColumn( 0, "brthdd",ds_main_item1_iteminfo.getColumn(0, "brthdd"));
  7005. ds_hidden_sppij01900_cond.setColumn( 0, "vcode",vcode);
  7006. ds_hidden_sppij01900_cond.setColumn( 0, "ownbrate",ds_main_item1_iteminfo.getColumn(0, "normalownbrate"));
  7007. ds_hidden_sppij01900_cond.setColumn( 0, "cfe",ds_main_item1_iteminfo.getColumn(0, "cfe"));
  7008. // 심사마감이나 퇴원한 환자는 중증수술기간산정관리에서 조작을 할 수 없다 - 20080924 박창원
  7009. // 중간청구 여부를 판단해서 블로킹 - 20081017 박창원
  7010. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd");
  7011. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  7012. if (lastmdlclamdd > fromdd && lastmdlclamdd > opendd && lastmdlclamdd != "" ) {
  7013. ds_hidden_sppij01900_cond.setColumn( 0, "saveyn","Y");
  7014. }
  7015. if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E" || indschacptstat == "D" || readonly == "Y" ) {
  7016. ds_hidden_sppij01900_cond.setColumn( 0, "saveyn","Y");
  7017. } else {
  7018. ds_hidden_sppij01900_cond.setColumn( 0, "saveyn","N");
  7019. }
  7020. // 희귀난치성산정특례 - 20090621 박창원
  7021. var rareessc = ds_main_item12_rareessc.getColumn(0, "rareesscyn");
  7022. if (rareessc == "Y") {
  7023. var chksuppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  7024. if (chksuppkind == "50") {
  7025. if (lastmdlclamdd > fromdd && lastmdlclamdd > opendd && lastmdlclamdd != "" ) {
  7026. sysf_messageBox("중간청구 등록이 되어있습니다. 요율을 변경","E001");
  7027. return;
  7028. }else if (readonly == "Y") {
  7029. sysf_messageBox("읽기전용 모드입니다. 희귀난치성 산정특례 요율을 적용하거나 취소","E001");
  7030. return;
  7031. }else if (indschacptstat == "D") {
  7032. sysf_messageBox("이미 퇴원한 환자입니다. 희귀난치성 산정특례 요율을 적용하거나 취소","E001");
  7033. return;
  7034. }else if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E") {
  7035. sysf_messageBox("이미 마감된 환자입니다. 희귀난치성 산정특례 요율을 적용하거나 취소","E001");
  7036. return;
  7037. }
  7038. var msg = sysf_messageBox("이미 희귀난치성 산정특례 적용이 된 환자입니다. 기존에 적용된 유형을 취소","S001");
  7039. if(msg != 6) {
  7040. return;
  7041. }else{
  7042. if (fSaveMain("P") == true) {
  7043. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  7044. var suppkind = "00";
  7045. if (cfe == "E" || cfe == "F") {
  7046. suppkind = "33"; //차상위2종정상으로 셋팅
  7047. }
  7048. Insuchange(suppkind);
  7049. }
  7050. }
  7051. } else if (chksuppkind != "50") {
  7052. if (readonly == "Y") {
  7053. sysf_messageBox("읽기전용 모드입니다. 희귀난치성 산정특례 요율을 적용하거나 취소","E001");
  7054. return;
  7055. }
  7056. if (indschacptstat == "D") {
  7057. sysf_messageBox("이미 퇴원한 환자입니다. 희귀난치성 산정특례 요율을 적용하거나 취소","E001");
  7058. return;
  7059. }
  7060. if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E") {
  7061. sysf_messageBox("이미 마감된 환자입니다. 희귀난치성 산정특례 요율을 적용하거나 취소","E001");
  7062. return;
  7063. }
  7064. var msg = sysf_messageBox("희귀난치성 산정특례 환자입니다. 중증요율 적용","S001");
  7065. if(msg !=6){
  7066. return;
  7067. }else{
  7068. if (fSaveMain("P") == true) {
  7069. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  7070. var suppkind = "50";
  7071. if (cfe == "E" || cfe == "F") {
  7072. suppkind = "46"; // 차상위2종희귀난치성 산정특례로 셋팅
  7073. }
  7074. Insuchange(suppkind);
  7075. }
  7076. }
  7077. }
  7078. }
  7079. if(vcode == "V193"){
  7080. var chksuppkind = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  7081. var chkinsukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  7082. // 중간청구 여부를 판단해서 블로킹 - 20081017 박창원
  7083. // 차상위 2종 로직 추가 - 20090325 박창원
  7084. if(chksuppkind == "06" || chksuppkind == "40"){
  7085. if (lastmdlclamdd > fromdd && lastmdlclamdd > opendd && lastmdlclamdd != "" ) {
  7086. sysf_messageBox("중간청구 등록이 되어있습니다. 요율을 변경","E001");
  7087. return;
  7088. }else if (readonly == "Y") {
  7089. sysf_messageBox("읽기전용 모드입니다. 등록암 요율을 적용하거나 취소","E001");
  7090. return;
  7091. }else if (indschacptstat == "D") {
  7092. sysf_messageBox("이미 퇴원한 환자입니다. 등록암 요율을 적용하거나 취소","E001");
  7093. return;
  7094. }else if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E") {
  7095. sysf_messageBox("이미 마감된 환자입니다. 등록암 요율을 적용하거나 취소","E001");
  7096. return;
  7097. }
  7098. var msg = sysf_messageBox("이미 등록암 적용이 된 환자입니다. 기존에 적용된 유형을 취소","S001");
  7099. if(msg != 6) {
  7100. return;
  7101. }else{
  7102. if (fSaveMain("P") == true) {
  7103. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  7104. var suppkind = "00";
  7105. if (cfe == "E" || cfe == "F") {
  7106. suppkind = "33"; //차상위2종정상으로 셋팅
  7107. }
  7108. Insuchange(suppkind);
  7109. }
  7110. }
  7111. }
  7112. else if(chksuppkind != "06" && chksuppkind != "40" && chksuppkind != "31" && !(chkinsukind == "22" && chksuppkind == "08") ) { // 20090325 차상위적용 - 박창원 20100318 정승우 신생아유형은 제외추가
  7113. if (readonly == "Y") {
  7114. sysf_messageBox("읽기전용 모드입니다. 등록암 요율을 적용하거나 취소","E001");
  7115. return;
  7116. }
  7117. if (indschacptstat == "D") {
  7118. sysf_messageBox("이미 퇴원한 환자입니다. 등록암 요율을 적용하거나 취소","E001");
  7119. return;
  7120. }
  7121. if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E") {
  7122. sysf_messageBox("이미 마감된 환자입니다. 등록암 요율을 적용하거나 취소","E001");
  7123. return;
  7124. }
  7125. var msg = sysf_messageBox("등록암환자입니다. 중증요율 적용","S001");
  7126. if(msg !=6){
  7127. return;
  7128. }else{
  7129. if (fSaveMain("P") == true) {
  7130. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  7131. var suppkind = "06";
  7132. if (cfe == "E" || cfe == "F") {
  7133. suppkind = "40"; // 차상위2종등록암으로 셋팅
  7134. }
  7135. Insuchange(suppkind);
  7136. }
  7137. }
  7138. }
  7139. }else if(vcode == "V191" || vcode == "V192"){
  7140. // 6시간 미만 환자는 화면을 보여주지 않는다. - 20081105 박창원
  7141. if (sixtimyn == "Y") {
  7142. sysf_messageBox("6시간 미만 상태 입니다. 중증수술 요율을 설정(저장) ","E001");
  7143. ds_hidden_sppij01900_cond.setColumn( 0, "saveyn","Y");
  7144. }
  7145. if (trgtManWindow == null) {
  7146. frmf_open("SPPIJ01900", "SPPIJ01900", "ds_hidden_sppij01900_cond""-"ds_send_cond"", "", "", "10", "10", "", "", "", "", "", "M");
  7147. } else {
  7148. activateChild("SPPIJ01900");
  7149. //model.refresh();
  7150. }
  7151. }
  7152. }
  7153. }
  7154. //퇴원마감취소
  7155. function fdschclosecancel() {
  7156. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  7157. var tmpnotiyn;
  7158. var notichngflag = "N";
  7159. // 퇴원 마감 취소시 퇴원수납이 되었는지 실시한 확인 후 진행한다.
  7160. // 마감에서부터 취소사이에 수납에서 퇴원수납이 되었는데 마감취소가 되는 상황이 발생되지 않기 위함
  7161. // 퇴원수납이 된경우에는 대상자 조회 호면을 refresh 하고
  7162. // 메인화면의 심사상태를 'A' 미심상태로 하고 메인화면을 다시 로드- 20080927 박창원
  7163. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  7164. // if (!submit("TRPIJ00315", false)) {
  7165. var oParam = {};
  7166. oParam.id = "TRPIJ00315";
  7167. oParam.service = "bfjudgapp.InHospJudg";
  7168. oParam.method = "reqNotiDschStat";
  7169. oParam.inds = "req=ds_";
  7170. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  7171. oParam.async = false;
  7172. oParam.callback = "cf_TRPIJ00315";
  7173. tranf_submit(oParam);
  7174. /*
  7175. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7176. if(nErrorCode < 0) return;
  7177. }
  7178. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7179. arErrorCode.push(sSvcId, nErrorCode);
  7180. }
  7181. arErrorCode.pop("TRPIJ00315") > -1
  7182. arErrorCode.pop("TRPIJ00315") < 0
  7183. */
  7184. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  7185. return;
  7186. }
  7187. var indschacptstat = ds_main_item11_endcnclstat.getColumn(0, "indschacptstat");
  7188. if (indschacptstat == 'D') {
  7189. sysf_messageBox("이미 퇴원처리가 된 환자입니다. 마감취소 ", "E001");
  7190. // 무조건 대상자 조회 화면을 refresh
  7191. var trgtManWindow = getChildWindow("SMPIJ00200");
  7192. trgtManWindow.javascript.fGetInBfJudgTrgtManList();
  7193. trgtManWindow.javascript.fCountPat();
  7194. //trgtManWindow.model.refresh();
  7195. fGetItemInfo();
  7196. return;
  7197. }
  7198. if(chk){
  7199. var receiptyn = ds_main_item1_iteminfo.getColumn(0, "receiptyn");
  7200. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  7201. var dschdclrtyn = ds_main_item11_endcnclstat.getColumn(0, "dschdclrtyn");
  7202. var dschjudgprcsstat = ds_main_item11_endcnclstat.getColumn(0, "dschjudgprcsstat");
  7203. if (receiptyn != "" && dschnotiyn == "Y") {
  7204. sysf_messageBox("퇴원(가퇴원) 수납이 되었으므로 마감취소를","E001");
  7205. } else if (receiptyn == "" && (dschnotiyn == "Y" || ( dschjudgprcsstat == 'G' && dschdclrtyn == 'Y' ))) {
  7206. //DRG 상세 마감 취소 팝업
  7207. if (fGetDrgOpenPopup("O") == false) {
  7208. return false;
  7209. }
  7210. if ( dschnotiyn == "Y" ) {
  7211. // var msg = sysf_messageBox("간호의 퇴원확정여부도 함께 취소","S001");
  7212. // if(msg == 6){
  7213. // if (indschacptstat == "T") { // 가퇴원 블로킹 추가 - 20081005 박창원
  7214. // var msg1 = sysf_messageBox("가퇴원 상태에서는 간호확정 취소가 불가합니다. 계속진행","S001");
  7215. // if (msg1 != 6) {
  7216. // return;
  7217. // }
  7218. // } else {
  7219. // ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn","Z");
  7220. // }
  7221. // }else if(msg == 2){
  7222. // return;
  7223. // }
  7224. }
  7225. if (fJudgEndCancel()) {
  7226. if(fSaveCalcAmt("D")) {
  7227. } else {
  7228. sysf_messageBox("마감취소 처리가 되지","E007");
  7229. return 0;
  7230. }
  7231. } else {
  7232. sysf_messageBox("마감취소 처리가 되지","E007");
  7233. return 0;
  7234. }
  7235. if(ds_main_item1_iteminfo.getColumn(0, "dschnotiyn") == "Z"){
  7236. ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn","N");
  7237. notichngflag = "Y";
  7238. }
  7239. fJudgEndClear();
  7240. }
  7241. }
  7242. }
  7243. //종료
  7244. function fClear() {
  7245. // 심사상태를 미심상태로 바꾸고 대상자 조회를 리프레쉬 - 20081004 박창원
  7246. // 심사상태를 실시간 체크하여 심사상태가 심사중일때만 업데이트 되게 함 - 20081008 박창원
  7247. // if (!submit("TRPIJ00315", false)) {
  7248. var oParam = {};
  7249. oParam.id = "TRPIJ00315";
  7250. oParam.service = "bfjudgapp.InHospJudg";
  7251. oParam.method = "reqNotiDschStat";
  7252. oParam.inds = "req=ds_";
  7253. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  7254. oParam.async = false;
  7255. oParam.callback = "cf_TRPIJ00315";
  7256. tranf_submit(oParam);
  7257. /*
  7258. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7259. if(nErrorCode < 0) return;
  7260. }
  7261. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7262. arErrorCode.push(sSvcId, nErrorCode);
  7263. }
  7264. arErrorCode.pop("TRPIJ00315") > -1
  7265. arErrorCode.pop("TRPIJ00315") < 0
  7266. */
  7267. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다.기본데이터 이상이나 시스템 오류입니다.관리자 문의 후", "C003");
  7268. return;
  7269. }
  7270. // 혹시모르는 종료버튼 클릭시 간호퇴원확정 취소를 막기위해 적용 - 20081008 박창원
  7271. var realnotiyn = ds_main_item11_endcnclstat.getColumn(0, "dschnotiyn");
  7272. var notiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  7273. var readonly = ds_send.getColumn(0, "readonly");
  7274. if (notiyn == "Z") {
  7275. ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn", realnotiyn);
  7276. }
  7277. var dschjudgprcsstat = ds_main_item11_endcnclstat.getColumn(0, "dschjudgprcsstat");
  7278. if (dschjudgprcsstat == "B" && readonly != "Y") {
  7279. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","Z");
  7280. // submit("TXPIJ00301");
  7281. var oParam = {};
  7282. oParam.id = "TXPIJ00301";
  7283. oParam.service = "bfjudgapp.InHospJudg";
  7284. oParam.method = "reqExeSaveInpt";
  7285. oParam.inds = "req=ds_";
  7286. oParam.outds = "";
  7287. oParam.async = false;
  7288. oParam.callback = "cf_TXPIJ00301";
  7289. tranf_submit(oParam);
  7290. /*
  7291. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  7292. if(nErrorCode < 0) return;
  7293. }
  7294. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  7295. arErrorCode.push(sSvcId, nErrorCode);
  7296. }
  7297. arErrorCode.pop("TXPIJ00301") > -1
  7298. arErrorCode.pop("TXPIJ00301") < 0
  7299. */
  7300. }
  7301. // 2. 화면 클리어 (공통)
  7302. fJudgEndClear();
  7303. }
  7304. //중간청구마감
  7305. function fMidcomplete() {
  7306. // 20091126 JHP 수정추가
  7307. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  7308. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  7309. var ans = 0;
  7310. if(chk){
  7311. if(ipt_pid.text.length >1){
  7312. if(indd.length>1){
  7313. // if (!submit("TRPIJ00319", false )) {
  7314. var oParam = {};
  7315. oParam.id = "TRPIJ00319";
  7316. oParam.service = "bfjudgapp.InHospJudg";
  7317. oParam.method = "reqNoActYn";
  7318. oParam.inds = "req=ds_";
  7319. oParam.outds = "ds_=noactyn";
  7320. oParam.async = false;
  7321. oParam.callback = "cf_TRPIJ00319";
  7322. tranf_submit(oParam);
  7323. /*
  7324. function cf_TRPIJ00319(sSvcId, nErrorCode, sErrorMsg) {
  7325. if(nErrorCode < 0) return;
  7326. }
  7327. function cf_TRPIJ00319(sSvcId, nErrorCode, sErrorMsg) {
  7328. arErrorCode.push(sSvcId, nErrorCode);
  7329. }
  7330. arErrorCode.pop("TRPIJ00319") > -1
  7331. arErrorCode.pop("TRPIJ00319") < 0
  7332. */
  7333. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  7334. return;
  7335. }
  7336. var noactyn = ds_main_item16_noactyn.getColumn(0, "noactyn");
  7337. if (noactyn == 'Y') {
  7338. frmf_modal("SPPIJ00900", "SPPIJ00900", "ds_main_item1_iteminfo_pid""-"ds_send_send_pid_pid"", "", "", "10", "10", "", "", "", "", "", "M");
  7339. }
  7340. var trgtManWindow = getChildWindow("SMPID10100");
  7341. var patunitsrch1 = ds_main_item1_iteminfo.getColumn(0, "pid").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  7342. // 2008.01.23 박지욱 수정 (중간청구등록화면에 넘겨주는 데이터 추가 - pid, indd)
  7343. ds_hidden_midclam.clearData();
  7344. dsf_makeValue( ds_hidden_midclam, "pid", "string", patunitsrch1);
  7345. dsf_makeValue( ds_hidden_midclam, "indd", "string", ds_main_item1_iteminfo.getColumn(0, "indd"));
  7346. if (trgtManWindow == null) {
  7347. ans = sysf_messageBox("심사 마감 할 경우", "S001");
  7348. if (ans == 6) {
  7349. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  7350. // if (!submit("TRPIJ00315", false )) {
  7351. var oParam = {};
  7352. oParam.id = "TRPIJ00315";
  7353. oParam.service = "bfjudgapp.InHospJudg";
  7354. oParam.method = "reqNotiDschStat";
  7355. oParam.inds = "req=ds_";
  7356. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  7357. oParam.async = false;
  7358. oParam.callback = "cf_TRPIJ00315";
  7359. tranf_submit(oParam);
  7360. /*
  7361. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7362. if(nErrorCode < 0) return;
  7363. }
  7364. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7365. arErrorCode.push(sSvcId, nErrorCode);
  7366. }
  7367. arErrorCode.pop("TRPIJ00315") > -1
  7368. arErrorCode.pop("TRPIJ00315") < 0
  7369. */
  7370. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  7371. return;
  7372. }
  7373. if (fGetDrgOpenPopup("O") == false) {
  7374. return false;
  7375. }
  7376. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","C");
  7377. // if (submit("TXPIJ00301")) {
  7378. var oParam = {};
  7379. oParam.id = "TXPIJ00301";
  7380. oParam.service = "bfjudgapp.InHospJudg";
  7381. oParam.method = "reqExeSaveInpt";
  7382. oParam.inds = "req=ds_";
  7383. oParam.outds = "";
  7384. oParam.async = false;
  7385. oParam.callback = "cf_TXPIJ00301";
  7386. tranf_submit(oParam);
  7387. /*
  7388. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  7389. if(nErrorCode < 0) return;
  7390. }
  7391. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  7392. arErrorCode.push(sSvcId, nErrorCode);
  7393. }
  7394. arErrorCode.pop("TXPIJ00301") > -1
  7395. arErrorCode.pop("TXPIJ00301") < 0
  7396. */
  7397. frmf_open("SMPID10100", "SMPID10100", "ds_hidden_midclam""-"ds_hidden_midclam"", "", "", "10", "10", "", "", "", "", "", "M");
  7398. }
  7399. } else {
  7400. }
  7401. } else {
  7402. ans = sysf_messageBox("심사 마감 할 경우", "S001");
  7403. if (ans == 6) {
  7404. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  7405. // if (!submit("TRPIJ00315", false)) {
  7406. var oParam = {};
  7407. oParam.id = "TRPIJ00315";
  7408. oParam.service = "bfjudgapp.InHospJudg";
  7409. oParam.method = "reqNotiDschStat";
  7410. oParam.inds = "req=ds_";
  7411. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  7412. oParam.async = false;
  7413. oParam.callback = "cf_TRPIJ00315";
  7414. tranf_submit(oParam);
  7415. /*
  7416. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7417. if(nErrorCode < 0) return;
  7418. }
  7419. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7420. arErrorCode.push(sSvcId, nErrorCode);
  7421. }
  7422. arErrorCode.pop("TRPIJ00315") > -1
  7423. arErrorCode.pop("TRPIJ00315") < 0
  7424. */
  7425. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  7426. return;
  7427. }
  7428. if (fGetDrgOpenPopup("O") == false) {
  7429. return false;
  7430. }
  7431. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","C");
  7432. // if (submit("TXPIJ00301")) {
  7433. var oParam = {};
  7434. oParam.id = "TXPIJ00301";
  7435. oParam.service = "bfjudgapp.InHospJudg";
  7436. oParam.method = "reqExeSaveInpt";
  7437. oParam.inds = "req=ds_";
  7438. oParam.outds = "";
  7439. oParam.async = false;
  7440. oParam.callback = "cf_TXPIJ00301";
  7441. tranf_submit(oParam);
  7442. /*
  7443. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  7444. if(nErrorCode < 0) return;
  7445. }
  7446. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  7447. arErrorCode.push(sSvcId, nErrorCode);
  7448. }
  7449. arErrorCode.pop("TXPIJ00301") > -1
  7450. arErrorCode.pop("TXPIJ00301") < 0
  7451. */
  7452. activateChild("SMPID10100");
  7453. trgtManWindow.javascript.fGetMidClamList();
  7454. }
  7455. } else {
  7456. activateChild("SMPID10100");
  7457. trgtManWindow.javascript.fGetMidClamList();
  7458. }
  7459. }
  7460. //model.refresh();
  7461. }
  7462. }
  7463. }
  7464. }
  7465. //중간청구마감
  7466. function fAccept() {
  7467. // 심사마감이나 퇴원한 환자는 요율변경을 할 수 없다. - 20080924 박창원
  7468. // 기존에는 심사마감이나 퇴원여부를 인스턴스에서 가져오던 것을 실시간 체크로 변경 - 20080927 박창원
  7469. // if (!submit("TRPIJ00315", false)) {
  7470. var oParam = {};
  7471. oParam.id = "TRPIJ00315";
  7472. oParam.service = "bfjudgapp.InHospJudg";
  7473. oParam.method = "reqNotiDschStat";
  7474. oParam.inds = "req=ds_";
  7475. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  7476. oParam.async = false;
  7477. oParam.callback = "cf_TRPIJ00315";
  7478. tranf_submit(oParam);
  7479. /*
  7480. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7481. if(nErrorCode < 0) return;
  7482. }
  7483. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  7484. arErrorCode.push(sSvcId, nErrorCode);
  7485. }
  7486. arErrorCode.pop("TRPIJ00315") > -1
  7487. arErrorCode.pop("TRPIJ00315") < 0
  7488. */
  7489. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  7490. return;
  7491. }
  7492. // 오픈일 적용 - 20090302 박창원 - 하드코딩 제거 - 확산병원은 자료가 구축되어 있지 않기 때문에 오픈전까지 예외처리
  7493. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  7494. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  7495. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  7496. // 중간청구, 읽기전옹 여부를 판단해서 블로킹 - 20081017 박창원
  7497. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd");
  7498. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  7499. var readonly = ds_send.getColumn(0, "readonly");
  7500. if (lastmdlclamdd > fromdd && lastmdlclamdd > "20081003" && lastmdlclamdd != "" ) {
  7501. sysf_messageBox("중간청구 등록이 되어있습니다. 요율을 변경","E001");
  7502. grp_changeownbrate.visible = false;
  7503. return;
  7504. } else if (readonly == "Y") {
  7505. sysf_messageBox("읽기전용 모드에서는 요율을 변경","E001");
  7506. grp_changeownbrate.visible = false;
  7507. return;
  7508. } else if (indschacptstat == "D") {
  7509. sysf_messageBox("이미 퇴원한 환자입니다. 요율을 변경","E001");
  7510. grp_changeownbrate.visible = false;
  7511. return;
  7512. } else if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E") {
  7513. sysf_messageBox("이미 마감된 환자입니다. 요율을 변경","E001");
  7514. grp_changeownbrate.visible = false;
  7515. return;
  7516. }
  7517. fChangeRate1();
  7518. }
  7519. //병용금기확인
  7520. function fUseincombinationtaboo() {
  7521. // 20091126 수정추가 JHP 병용금기내역 확인
  7522. var prcsyn = sysf_messageBox("병용금기확인시 계산내역에 따라 일부 시간이 지연될수 있습니다.\n\n","Q003");
  7523. if(prcsyn == "6"){
  7524. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  7525. if(pid == "" || pid == null || pid == " "){
  7526. }else{
  7527. // submit("TRPIJ00318");
  7528. var oParam = {};
  7529. oParam.id = "TRPIJ00318";
  7530. oParam.service = "bfjudgapp.InHospJudg";
  7531. oParam.method = "reqGetUseInCombinationTaboo";
  7532. oParam.inds = "req=ds_";
  7533. oParam.outds = "ds_=list";
  7534. oParam.async = false;
  7535. oParam.callback = "cf_TRPIJ00318";
  7536. tranf_submit(oParam);
  7537. /*
  7538. function cf_TRPIJ00318(sSvcId, nErrorCode, sErrorMsg) {
  7539. if(nErrorCode < 0) return;
  7540. }
  7541. function cf_TRPIJ00318(sSvcId, nErrorCode, sErrorMsg) {
  7542. arErrorCode.push(sSvcId, nErrorCode);
  7543. }
  7544. arErrorCode.pop("TRPIJ00318") > -1
  7545. arErrorCode.pop("TRPIJ00318") < 0
  7546. */
  7547. var nodecnt = ds_hidden_useincombinationtaboo_list.rowcount;
  7548. if(nodecnt > 1){
  7549. var seeyn = sysf_messageBox("병용금기내역이 존재합니다. 확인","Q005");
  7550. if(seeyn == "6"){
  7551. grp_taboo.attribute("left") = "420px";
  7552. grp_taboo.attribute("top") = "525px";
  7553. grp_taboo.attribute("width") = "508px";
  7554. grp_taboo.attribute("height") = "199px";
  7555. grp_taboo.visible = true;
  7556. }else{
  7557. }
  7558. }else{
  7559. sysf_messageBox("병용금기내역이 존재하지 ","I011");
  7560. }
  7561. }
  7562. }
  7563. }
  7564. //심사변경유무 체크 확인
  7565. function fCheckChngStatus() {
  7566. var rslt = true;
  7567. var judgrmk = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  7568. var edirmk = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  7569. var tstrmk = ds_main_item1_iteminfo.getColumn(0, "tstrmk");
  7570. var judgrmk_orign = ds_main_item1_iteminfo.getColumn(0, "judgrmk_orign");
  7571. var edirmk_orign = ds_main_item1_iteminfo.getColumn(0, "edirmk_orign");
  7572. var tstrmk_orign = ds_main_item1_iteminfo.getColumn(0, "tstrmk_orign");
  7573. /* for (var i = 1; i < grd_diaglist.rows; i++) {
  7574. if (grd_diaglist.rowstatus(i) != 0 && grd_diaglist.valueMatrix(i, grd_diaglist.colRef("diagcd")) != "" && grd_diaglist.valueMatrix(i, grd_diaglist.colRef("diagcd")) != "") {
  7575. rslt = false;
  7576. }
  7577. }*/
  7578. for (var i = 1; i < grd_clcjlist.rows; i++) {
  7579. if (grd_clcjlist.rowstatus(i) != 0 && grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd")) != "" && grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")) != "") {
  7580. rslt = false;
  7581. }
  7582. }
  7583. if (judgrmk != judgrmk_orign) {
  7584. rslt = false;
  7585. }
  7586. if (edirmk != edirmk_orign) {
  7587. rslt = false;
  7588. }
  7589. if (tstrmk != tstrmk_orign) {
  7590. rslt = false;
  7591. }
  7592. return rslt;
  7593. }
  7594. function fOpenSPPIJ03800(){
  7595. var cond = "ds_hidden_SPPIJ03800_cond";
  7596. var ref = "ds_main_item1_iteminfo";
  7597. var send = "ds_send";
  7598. model.makevalue(cond+"_pid", model.getValue(ref+"_pid"));
  7599. model.makevalue(cond+"_cretno", model.getValue(ref+"_cretno"));
  7600. model.makevalue(cond+"_orddd", model.getValue(ref+"_fromdd"));
  7601. model.makevalue(cond+"_ordtodd", model.getValue(ref+"_todd"));
  7602. fLinkPopMenu("SPPIJ03800", cond, send, "modal");
  7603. }
  7604. function responseHandlerTRPIJ00322() {
  7605. if (ds_chklist_goso.rowcount;> 0) {
  7606. sysf_messageBox("외출외박 24시간 초과된 완화의료 대상 환자입니다. 해당 일자의 입원료를", "I007")
  7607. }
  7608. }
  7609. ]]></Script>