SMPAO00100.js 481 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318
  1. /*
  2. * 화면 : SMPAO00100_외래수납.xrw
  3. * 설명 : 외래수납
  4. * 작성자 : 조영상
  5. * 작성일 : 2007/03/28
  6. */
  7. //계산된내역(미수납상태) 클릭시마다 선택한 내역에 대한 금액 SUM을 위한 변수 선언
  8. var SUM_opmi_totamt = 0;
  9. var SUM_opmi_payamt = 0;
  10. var SUM_opmi_nopyamt = 0;
  11. var SUM_opmi_allownbamt = 0;
  12. var SUM_opmi_totnopyamt = 0;
  13. var SUM_opmi_totnopyownbamt = 0;
  14. var SUM_opmi_totnopyinsubamt = 0;
  15. var SUM_opmi_payownbamt = 0;
  16. var SUM_opmi_payinsubamt = 0;
  17. var SUM_opmi_nopyownbamt = 0;
  18. var SUM_opmi_nopyinsubamt = 0;
  19. var SUM_opmi_allownownbamt = 0;
  20. var SUM_opmi_allowninsubamt = 0;
  21. var SUM_opmi_specownbamt = 0;
  22. var SUM_opmi_specinsubamt = 0;
  23. var SUM_opmi_handcapfund = 0;
  24. var SUM_opmi_ersubtamt = 0;
  25. var SUM_opmi_procsubtamt = 0;
  26. var SUM_opmi_subtamt = 0;
  27. var SUM_opmi_specamt = 0;
  28. var SUM_opmi_discreduamt = 0;
  29. var SUM_opmi_discamt = 0;
  30. var SUM_opmi_reduamt = 0;
  31. var SUM_opmi_bloddiscamt = 0;
  32. var SUM_opmi_totownbamt = 0;
  33. var SUM_opmi_totownbamt2 = 0; //총본인부담금에서 잔전처리한 금액
  34. var SUM_opmi_precashamt = 0;
  35. var SUM_opmi_premdlrcptamt = 0;
  36. var SUM_opmi_precardamt = 0;
  37. var SUM_opmi_preonlineamt = 0;
  38. var SUM_opmi_mdlrcptamt = 0;
  39. var SUM_opmi_uncoamt = 0;
  40. var SUM_opmi_cardamt = 0;
  41. var SUM_opmi_cashamt = 0;
  42. var SUM_opmi_onlineamt = 0;
  43. var SUM_opmi_rcptexptamt = 0;
  44. var SUM_opmi_restamt = 0;
  45. var SUM_opmi_paydepoamt = 0;
  46. //2011-07-01 미용성형 부가세 고시 작업
  47. var SUM_opmi_taxamt = 0;
  48. //----------------------------------------변수선언 종료
  49. //----------------------------------------외래정산용 변수
  50. var J_OtptGrid_deptcd = "";
  51. var J_OtptGrid_pid = "";
  52. var J_OtptGrid_orddd = "";
  53. var J_OtptGrid_cretno = 0;
  54. var J_OtptGrid_acptseqno = 0;
  55. //----------------------------------------외래정산용 변수끝
  56. var click_otpt_node = "";
  57. //1.보험유형
  58. var gsBoHeom = "11"; //건강보험
  59. var gsBoHo1 = "21"; //의료급여1
  60. var gsBoHo2 = "22"; //의료급여2
  61. var gsHangYeo = "24"; //행여
  62. var gsJaboKind = "31"; //자보
  63. var gsSanJae = "41"; //산재
  64. var gsGongSang = "42"; //공상
  65. var gsIlBan = "51"; //일반
  66. var gsForIn = "61"; //외국인
  67. var gsImSang = "71"; //임상시험
  68. //var union_msg = ""; //통합메세지
  69. var PersonPrntYN = "Y"; // 개인정보이용 동의서 출력 제어용
  70. var EXCU_FLAG = false; // 통합 검사 예약 연동 여부
  71. //공통코드 및 원무사용 기초코드 세팅(진료과,의사,감면,미수 등)
  72. function fSetCodeList(){
  73. //공통코드
  74. zbcfGetCodeList( new Array("P0016","P0021","P0311","P0329","P0022","P0328","P0030","P0327","P0104","M0009","P0380","P0032","P0341","P0342","P0307","P0308","P0457"),
  75. new Array("/root/init/comncdlist/P0016list" //관계
  76. ,"/root/init/comncdlist/P0021list" //초재진구분
  77. ,"/root/init/comncdlist/P0311list" //납부자정보
  78. ,"/root/init/comncdlist/P0329list" //의료협력구분
  79. ,"/root/init/comncdlist/P0022list" //기타진료구분
  80. ,"/root/init/comncdlist/P0328list" //임상구분
  81. ,"/root/init/comncdlist/P0030list" //계산상태
  82. ,"/root/init/comncdlist/P0327list" //추천인과의 관계
  83. ,"/root/init/comncdlist/P0104list" //급여구분
  84. ,"/root/init/comncdlist/M0009list" //처방이력구분
  85. ,"/root/init/comncdlist/P0380list" //진료의뢰서제출구분
  86. ,"/root/init/comncdlist/P0032list" //유형보조사유
  87. ,"/root/init/comncdlist/P0341list" //예약구분
  88. ,"/root/init/comncdlist/P0342list" //진찰료산정사유
  89. ,"/root/init/comncdlist/P0307list" //장애구분
  90. ,"/root/init/comncdlist/P0308list" //장애등급
  91. ,"/root/init/comncdlist/P0457list" ),//접수정보상태
  92. new Array("","","","","","","","","","","","","","","","",""),
  93. new Array("cdid","cdid","cdid","cdid","cdid",
  94. "cdid","cdid","cdid","cdid","cdid",
  95. "cdid","cdid","cdid","dispseq","cdid",
  96. "cdid","cdid")
  97. );
  98. addComboItem("cmb_etcordflag","-","-","above");
  99. //2014/12/29 이정택 추가
  100. pamfGetCodeList(new Array("P6571", "P6573", "P6579", "P6587", "P6589"), new Array("/root/init/comncdlist/P6571list", "/root/init/comncdlist/P6573list", "/root/init/comncdlist/P6579list", "/root/init/comncdlist/P6587list", "/root/init/comncdlist/P6589list"));
  101. //2014/12/29 이정택 추가
  102. //원무사용 기초코드 조회 cache기능 추가
  103. /*
  104. if ( copyFromCache("TRPAO00102_depttree","/root/init/basecdlist") ) {
  105. //
  106. } else {
  107. if ( submit("TRPAO00102") ) {
  108. storeIntoCache("TRPAO00102_depttree","/root/init/basecdlist","540");
  109. }
  110. }
  111. */
  112. submit("TRPAO00102"); //CYS 20090729 js오류건
  113. model.setValue("/root/init/option/autocashrcptyn", model.getvalue("/root/init/basecdlist/P0022[cdid='160']/cdnm")); //현금영수증
  114. model.setValue("/root/init/option/hosoprnyn", model.getvalue("/root/init/basecdlist/P0032[cdid='220']/cdnm")); //원외처방전발행여부
  115. model.setValue("/root/init/option/personprntyn", "Y"); //개인정보이용 동의서 자동출력 여부(기본값 : Y)
  116. var userid = model.getValue("/root/hidden/session/userid");
  117. //원외처방전 강제프린트 ID
  118. var P0097_id = "";
  119. for(var a=1; a<= getNodesetCount("/root/init/basecdlist/P0097[cdnm='1']/detldesc"); a++){
  120. P0097_id = model.getValue("/root/init/basecdlist/P0097[cdnm='1'][" + a + "]/detldesc");
  121. if(userid == P0097_id) {
  122. model.setValue("/root/init/option/hosoprnyn" , "Y"); //원외처방전발행여부
  123. model.setValue("/root/init/option/personprntyn", "N"); //개인정보이용 동의서 자동출력 여부(치과/모발센터 자동출력 : N)
  124. PersonPrntYN = "N";
  125. break;
  126. }
  127. }
  128. //원외처방전 강제프린트 ID 끝
  129. chk_autocashrcptyn.refresh();
  130. chk_HosoOutPrintYN.refresh();
  131. //금액표시기 초기화
  132. AmtDispKind = model.getValue("/root/init/basecdlist/amtdispkind/cdnm");
  133. fInit_Display();
  134. //금액표시기 포트열기
  135. //fOpenCom();
  136. }
  137. function fipt_hngnm() {
  138. model.copynode("/root/main" , "/root/node_bk/main");
  139. model.copynode("/root/send" , "/root/node_bk/send");
  140. model.copynode("/root/hidden" , "/root/node_bk/hidden");
  141. model.resetInstanceNode("/root/source");
  142. /*
  143. var vcheck_hngnm = ipt_hngnm.currentText;
  144. if (vcheck_hngnm == null || vcheck_hngnm == "" || vcheck_hngnm == " " || vcheck_hngnm == "-") {
  145. model.setFocus("ipt_rrgstno1");
  146. return;
  147. }
  148. model.setValue("/root/source/srchcond", "2");
  149. //model.setValue("/root/source/checkfnexam", "3");
  150. model.setValue("/root/source/hngnm", ipt_hngnm.currentText);
  151. btn_pid.dispatch("DOMActivate");
  152. fpid_check();
  153. */
  154. model.setValue("/root/source/hngnm", ipt_hngnm.currentText);
  155. model.setFocus("ipt_rrgstno1");
  156. }
  157. function fipt_pid(){
  158. var vcheck_pid = model.getvalue("/root/main/patinfo/patinfolist/pid");
  159. //QC프로그램 호출결과를 먼저 참조하도록 설정 추가 by 조중래 20130528
  160. if (vcheck_pid == null || vcheck_pid == '') {
  161. vcheck_pid = getQCInfo();
  162. }
  163. //환자번호 null체크
  164. if (vcheck_pid == null || vcheck_pid == "" || vcheck_pid == " " || vcheck_pid == "-") {
  165. model.setFocus("ipt_hngnm");
  166. return;
  167. }
  168. //이동재20071220 환자번호를 그대로 두고, 포커스만 두고 엔터 치는경우 초기화안되는 현상때문에 수정함.
  169. fClear("C");
  170. //환자번호 조건으로 인적정보 조회
  171. model.setValue("/root/source/srchcond", "1");
  172. //model.setValue("/root/source/checkfnexam", "3");
  173. //이동재20071220 환자번호르 그대로 두고, 포커스만 두고 엔터 치는경우 초기화안되는 현상때문에 수정함.
  174. model.setValue("/root/source/pid", vcheck_pid);
  175. //환자기본정보 node clear
  176. model.copynode("/root/main" , "/root/node_bk/main");
  177. model.copynode("/root/send" , "/root/node_bk/send");
  178. model.copynode("/root/hidden" , "/root/node_bk/hidden");
  179. //환자등록번호 체크
  180. if(submit("TRPMC02500")){
  181. vcheck_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  182. if (vcheck_pid == null || vcheck_pid == "" || vcheck_pid == " " || vcheck_pid == "-") {
  183. //조회내역 체크
  184. messageBox("존재하지 않는 등록번호","E008");//E008=입니다
  185. fClear("C");
  186. return;
  187. }
  188. //합번여부 체크하도록 프로그램 수정 (2017/03/30 이정택)
  189. var bindyn = model.getValue("/root/main/patinfo/patinfolist/bindyn");
  190. var hngnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  191. var bindpid = model.getValue("/root/main/patinfo/patinfolist/bindpid");
  192. if(!isNull(bindyn) && bindyn=='Y' && bindpid != '-'){
  193. var rtn_Value = messageBox(vcheck_pid + "(" + hngnm + ") 환자의 등록번호가 [ " + bindpid + " ] 로 합번 되었습니다. 합번된 등록번호로 재조회 하시겠습니까?", "Q999", "");
  194. if(rtn_Value=='6'){
  195. model.makeValue("/root/main/patinfo/patinfolist/pid", bindpid);
  196. fipt_pid();
  197. }else{
  198. return;
  199. }
  200. }
  201. //합번여부 체크하도록 프로그램 수정 (2017/03/30 이정택)
  202. }else{
  203. messageBox("존재하지 않는 등록번호","E008");
  204. fClear("C");
  205. gcheck_pid = null;
  206. model.setFocus("ipt_pid");
  207. return;
  208. }
  209. // 메르스 환자 조회
  210. fMersPatChk("PAM", vcheck_pid);
  211. // 환자정보 조회
  212. fpid_check();
  213. }
  214. // 환자정보 조회
  215. function fpid_check() {
  216. fSetDefault();
  217. var vcheck_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  218. if (vcheck_pid == null || vcheck_pid == "" || vcheck_pid == " " || vcheck_pid == "-") {
  219. return;
  220. }
  221. //글로벌변수 선언 환자번호
  222. setGlobalVariable("g_pid",vcheck_pid,"p");
  223. //동의서 출력여부
  224. var scanyn = model.getValue("/root/main/patinfo/patinfolist/scanyn");
  225. cpt_scanyn.text = '[동:' + scanyn + ']';
  226. /* 동의서 자동출력으로 수정 by 조중래 20120329
  227. if (scanyn != 'S') {
  228. //messageBox("개인정보이용동의서가 작성되지 않았거나 스캔되지 않았습니다.\r\n확인하시기 바랍니다.", "C000");
  229. if(messageBox("개인정보이용동의서가 작성되지 않았거나 스캔되지 않았습니다.\r\n개인정보이용동의서를 확인", "S001") == "6") {
  230. model.makeValue("/root/temp/para9/pid", model.getValue("/root/main/patinfo/patinfolist/pid"));
  231. model.makeValue("/root/temp/para9/ordtype", "O");
  232. model.makeValue("/root/temp/para9/patnm", model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  233. model.makeValue("/root/temp/para9/rrgstno1", model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  234. model.makeValue("/root/temp/para9/rrgstno2", model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  235. model.refresh();
  236. // 동의서 및 기타출력서식화면 호출
  237. modal("SMMRF02300", "", "", "", "SMMRF02300","/root/temp/para9","/root/temp/para9");
  238. }
  239. }
  240. */
  241. // 선택진료 스캔여부 2011/10/01 고시
  242. var spifScanYn = model.getValue("/root/main/patinfo/patinfolist/spifscanyn");
  243. // 스캔되지 않은 경우, 선택진료조회화면 연동
  244. if (spifScanYn != 'Y') {
  245. //2017/06/01 이정택 수정(보건복지부 감사 대비)
  246. if (getUserInfo("dutplceinstcd") == "031") {
  247. setParameter("SMPMC06503_PARM_PID", model.getValue("/root/main/patinfo/patinfolist/pid"));
  248. modal("SMPMC06503");
  249. }else{
  250. if (messageBox("선택진료신청서 중 스캔되지 않은 건이 존재합니다."
  251. + "\r\n선택진료신청서를 조회", "S001") == "6") {
  252. setParameter("SMPMC06503_PARM_PID", model.getValue("/root/main/patinfo/patinfolist/pid"));
  253. modal("SMPMC06503");
  254. }
  255. }
  256. /* 2017/06/01 이정택 수정(보건복지부 감사 대비)
  257. if (messageBox("선택진료신청서 중 스캔되지 않은 건이 존재합니다."
  258. + "\r\n선택진료신청서를 조회", "S001") == "6") {
  259. setParameter("SMPMC06503_PARM_PID", model.getValue("/root/main/patinfo/patinfolist/pid"));
  260. modal("SMPMC06503");
  261. }
  262. */
  263. }
  264. /*
  265. * 인적사항 입력안한 건이 있을경우(필수항목은 추후 수납에서 결정) [확인]버튼 빨간색 표시
  266. */
  267. var vcheck_hometel = model.getValue("/root/main/patinfo/patinfolist/hometel");
  268. var vcheck_mpphontel = model.getValue("/root/main/patinfo/patinfolist/mpphontel");
  269. var vcheck_zipcd1 = model.getValue("/root/main/patinfo/patinfolist/zipcd1");
  270. var vcheck_zipcd2 = model.getValue("/root/main/patinfo/patinfolist/zipcd2"); //이정택 추가(2017/03/17)
  271. /*
  272. * 집전화번호(기본전화번호), 휴대폰번호가 정상적이지 않은 경우
  273. * 휴대폰번호 ◆(SMS발송 후 발송오류) 있는 경우
  274. */
  275. if(vcheck_hometel == "" || vcheck_hometel == " " || vcheck_hometel == null || vcheck_hometel == '-' || isSearchString(vcheck_mpphontel, "◆")){
  276. if(vcheck_mpphontel == "" || vcheck_mpphontel == " " || vcheck_mpphontel == null || vcheck_mpphontel == '-' || isSearchString(vcheck_mpphontel, "◆")){
  277. btn_nullbaseinfo.attribute("background-color") = "#ff0000";
  278. }
  279. }
  280. //우편번호가 입력되지 않으면 색 표시
  281. //우편번호가 6자리 일겨우에 확인버튼에 빨간색으로 표시되도록 수정(2017/03/17 이정택 추가)
  282. if(vcheck_zipcd1 == "" || vcheck_zipcd1 == " " || vcheck_zipcd1 == null || vcheck_zipcd1 == '___' || vcheck_zipcd1 == '-' || vcheck_zipcd1 == '000' || (vcheck_zipcd1+vcheck_zipcd2).length!=5){
  283. btn_nullbaseinfo.attribute("background-color") = "#ff0000";
  284. }
  285. //특이내역이 있으면, 빨간색버튼 표시
  286. var vcheck_patspcfyn = model.getValue("/root/main/patinfo/patinfolist/patspcfyn");
  287. if (vcheck_patspcfyn == "Y" ) {
  288. btn_patspcfyn.attribute("background-color") = "#ff0000";
  289. }
  290. else {
  291. btn_patspcfyn.attribute("background-color") = "#c0c0c0";
  292. }
  293. if (fRrgstNo3Veri(model.getValue("/root/main/patinfo/patinfolist/rrgstno1"), model.getValue("/root/main/patinfo/patinfolist/rrgstno2"), "ipt_rrgstno1", "ipt_rrgstno2" ) == false) return;
  294. //성모병원에서 전환된 환자입니다.
  295. fCheckMigPatMsg(model.getValue("/root/main/patinfo/patinfolist/pidflag"));
  296. //사망유무 체크
  297. fCheckDethYN(model.getValue("/root/main/patinfo/patinfolist/dethyn") , model.getValue("/root/main/patinfo/patinfolist/dethdt"));
  298. model.makeNode("/root/send/pidinfo/emplnm");
  299. model.setValue("/root/send/pidinfo/pid" , model.getValue("/root/main/patinfo/patinfolist/pid"));
  300. model.setValue("/root/send/pidinfo/emplnm" , model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  301. model.setValue("/root/send/pidinfo/orddd" , getCurrentDate());
  302. model.setValue("/root/send/pidinfo/workgubn" , model.getValue("/root/temp3/workgubn"));
  303. model.setValue("/root/send/pidinfo/flag" , "0");
  304. model.setValue("/root/send/pidinfo/checkcount", "1");
  305. model.setValue("/root/send/pidinfo/rrgstno" , model.getValue("/root/main/patinfo/patinfolist/rrgstno1")+model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  306. model.setValue("/root/send/pidinfo/rrgstno1" , model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  307. model.setValue("/root/send/pidinfo/rrgstno2" , model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  308. //감면정보체크
  309. fGetDcucInfo(model.getValue("/root/main/patinfo/patinfolist/pid"));
  310. submit("TRPAO00120"); //환자 기본정보조회(현금영수증, 인공신장, 컨설트, 협진, 감면정보)
  311. /* 직원감면코드 확인창 뜨지 않도록(20120918 wify)
  312. if(getNodesetCount("/root/hidden/item1/pidinfo/h_famylist/famylist/emplname") > 0){
  313. modal("SPPMC03800", "1","150", "150", "SPPMC03800", "/root/hidden/item1/pidinfo/h_famylist", "/root/main/result");
  314. }
  315. */
  316. fGetOrdCnstInfo(); //컨설트정보조회
  317. fGetInptInfo(); //재원여부
  318. if(inhospyn!= 'Y'){
  319. fGetAdrvInfo(); //입원예정여부를 팝업으로 알림(2017/04/13 이정택)
  320. }
  321. fGetInptInfo_c(); //가퇴원여부
  322. if(!fGetDupOtpt()){ //접수비중복체크
  323. return;
  324. }
  325. fCheckAutoInduInsu_O(); //자보,산재 등록내역 시작일자,종료일자 조회
  326. fCheckERInfo(); //일주일 이내 응급실 내원 체크
  327. //사생활보호 요청여부체크
  328. fGetPatPrivacyInfo(model.getValue("/root/main/patinfo/patinfolist/pid"));
  329. // 격리대상정보 표시
  330. fSetIsolInfo(model.getValue("/root/main/patinfo/patinfolist/isolinfo"));
  331. //20100629 smpark 검진 메세지 병원별 적용
  332. if(model.getValue("/root/init/basecdlist/P0022[cdid='190']/cdnm") == "Y"){
  333. fCheckMediExamInfo(); //일년 이내 건강검진 체크
  334. }
  335. fCheckCert(); //당일 수납할 재증명 유무체크
  336. //20121227 보류 요청
  337. //fCheckRefund(vcheck_pid); // 미진료 예약 환불금 여부 확인
  338. //현금영수증 디폴트번호 체크
  339. if(getNodesetCount("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_pid") == 0) {
  340. model.setvalue("/root/etc/union_msg" ,"현금영수증 기본번호가 없습니다." + '\n' + model.getValue("/root/etc/union_msg"));
  341. }
  342. model.setValue("/root/option/opt_procyn" , model.getValue("/root/hidden/item1/pidinfo/h_proc/proc/opt_procyn")); //당일자격조회여부
  343. // 선택진료비제도 개선에 따른 정산여부 조회 추가 by 조중래 20140730
  344. // workType, pid, orddd, cretno, prcpdd, execPrcpUniqno, openType
  345. getPrcpRcptCheck("PAM", model.getValue("/root/main/patinfo/patinfolist/pid"), "", "", "", "", "modal");
  346. if(model.getValue("/root/temp3/workgubn") == "Y") {
  347. fClickHDUpdate(); //인공신장투석 환자 체크
  348. fSearch(); //외래 수진내역조회, 미수조회, 선수금조회, 입원보관금조회
  349. }else{
  350. fCalcflagNSearch(); //조회(외래등록,미수)
  351. }
  352. fCheckCharityYN_outordjs(); //자선진료비내역조회
  353. //2013-01-07 연속처방 수납대상건 체크는 잠시 막음. 해독 불가!!
  354. //fCheckMJqu(); //연속처방 수납대상건 조회
  355. fCheckActrList(); //실시정산 대상환자 조회
  356. fLItemRefresh();
  357. //2015/02/04 이정택
  358. fBogjinfoChk(); // 선수금 존재시 팝업
  359. //2015/02/04 이정택
  360. //직원 감면등록여부 메시지 팝업(2017/01/04)
  361. fFmlyCheck();
  362. //직원 감면등록여부 메시지 팝업(2017/01/04)
  363. // 통합 검사 예약 여부 확인
  364. if (getUserInfo("dutplceinstcd") == "031") {
  365. EXCU_FLAG = model.getValue("/root/hidden/item1/pidinfo/h_excu/excu/excuflag") == "Y" ? true : false;
  366. cap_excumsg.visible = EXCU_FLAG;
  367. }
  368. // 선택진료비제도 개선에 따른 정산여부 조회 추가 by 조중래 20140730
  369. // workType, pid, orddd, cretno, prcpdd, execPrcpUniqno, openType
  370. //getPrcpRcptCheck("PAM", model.getValue("/root/main/patinfo/patinfolist/pid"), "", "", "", "", "open");
  371. }
  372. // 외래 수진이력 조회
  373. function fOtpt_Search(){
  374. model.copynode("/root/main/baseinfo" ,"/root/node_bk/main/baseinfo");
  375. model.copynode("/root/main/outrgst" ,"/root/node_bk/main/outrgst");
  376. model.copynode("/root/send/s_otpt" ,"/root/node_bk/send/s_otpt");
  377. //환자번호 세팅
  378. model.setValue("/root/send/pid" ,model.getValue("/root/main/patinfo/patinfolist/pid"));
  379. model.setValue("/root/send/orddd" ,model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd"));
  380. model.setValue("/root/send/cretno" ,model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno"));
  381. model.setValue("/root/send/workgubn" ,model.getValue("/root/temp3/workgubn"));
  382. model.setValue("/root/send/allpast" ,bl_allpast.value);
  383. model.setValue("/root/send/opt_regis" ,model.getvalue("/root/option/opt_regis"));
  384. model.removenode("/root/hidden/rcv/h_holddd/holddd");
  385. model.removenode("/root/hidden/rcv/h_hold/prcp");
  386. // 실시정산 조회기능 추가 by 조중래 20140806
  387. if (model.getValue("/root/temp3/workgubn") == 'E') {
  388. model.setValue("/root/send/jsfromdd" ,model.getValue("/root/temp3/jsfromdd"));
  389. model.setValue("/root/send/jstodd" ,model.getValue("/root/temp3/jstodd"));
  390. model.setValue("/root/send/jssrchcond" ,model.getValue("/root/temp3/jssrchcond"));
  391. model.setValue("/root/send/jsorddeptcd" ,model.getValue("/root/temp3/jsorddeptcd"));
  392. model.setValue("/root/send/jsorddrid" ,model.getValue("/root/temp3/jsorddrid"));
  393. model.setValue("/root/send/jsinsukind" ,model.getValue("/root/temp3/jsinsukind"));
  394. }
  395. //1. 수납대기 상태의 외래등록내역(당일,예약,과거) 조회 2.미수 조회
  396. // 2015/09/18 이정택(사본발급 창구에서 수납 하도록 프로그램 수정)
  397. var cnt = getNodesetCount("/root/init/comncdlist/P6579list/P6579[cdid='"+ getUserInfo("dutplcecd") + "' and cdnm='Y']");
  398. if(cnt>0){
  399. model.makeValue("/root/send/copydeptyn", "Y");
  400. }else{
  401. model.makeValue("/root/send/copydeptyn", "N");
  402. }
  403. submit("TRPAO00101");
  404. //#ff0000 붉은색 #3366ff 푸른색 #993300 갈색
  405. //기존 바탕색 clear
  406. for(var i=1; i <= grd_tday.rows ; i++){
  407. var votpt_estmspclappyn = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_estmspclappyn");
  408. var votpt_rcptvipresncd = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_rcptvipresncd");
  409. var votpt_dracptyn = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_dracptyn");
  410. var votpt_pmflag = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_pmflag");
  411. var votpt_holdflag = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_holdflag");
  412. var votpt_specordyn = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_specordyn");
  413. var votpt_specsign_cnt = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_specsign_cnt");
  414. var votpt_allrcptyn = model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + i + "]/otpt_allrcptyn");
  415. if (votpt_holdflag == "Y") {
  416. //grd_tday.rowStyle(i,"all","background-color") = "#99ff33"; // hold 처리 제거 by 당일수납 조중래 20140423
  417. grd_tday.rowStyle(i,"all","background-color") = "#ffffff";
  418. } else {
  419. grd_tday.rowStyle(i,"all","background-color") = "#ffffff";
  420. }
  421. //산정특례적용여부
  422. if (votpt_estmspclappyn == "Y") {
  423. grd_tday.cellStyle("color", i, grd_tday.colref("otpt_suppkind")) = '#ff0000';
  424. }
  425. //수납VIP기타사유
  426. if (votpt_rcptvipresncd == "01") {
  427. grd_tday.cellStyle("color", i, grd_tday.colref("otpt_orddd")) = '#ff0000';
  428. }
  429. if (votpt_rcptvipresncd == "02") {
  430. grd_tday.cellStyle("color", i, grd_tday.colref("otpt_orddd")) = '#3366ff';
  431. }
  432. if (votpt_rcptvipresncd == "03") {
  433. grd_tday.cellStyle("color", i, grd_tday.colref("otpt_orddd")) = '#993300';
  434. }
  435. //의사접수여부,오후진료여부
  436. if(votpt_dracptyn == "N" && votpt_pmflag == "R") {
  437. grd_tday.cellStyle("color", i, grd_tday.colref("otpt_calcflag")) = '#3366ff';
  438. }
  439. //선택진료여부 , 선택진료팝업조회여부(0보다크면 true)
  440. if(votpt_specordyn == "Y" && votpt_specsign_cnt == "0") {
  441. grd_tday.cellStyle("color", i, grd_tday.colref("otpt_specordyn")) = '#ff0000';
  442. }
  443. //미수납자료 존재 시 (당일수납)
  444. if (votpt_allrcptyn == "N") {
  445. grd_tday.rowStyle(i,"all","background-color") = "#e5ccfe";
  446. }
  447. }
  448. for(var i=1; i <= grd_rsrv.rows ; i++){
  449. var votpt_estmspclappyn = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_estmspclappyn");
  450. var votpt_rcptvipresncd = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_rcptvipresncd");
  451. var votpt_dracptyn = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_dracptyn");
  452. var votpt_pmflag = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_pmflag");
  453. var votpt_holdflag = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_holdflag");
  454. var votpt_specordyn = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_specordyn");
  455. var votpt_specsign_cnt = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_specsign_cnt");
  456. var votpt_allrcptyn = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_allrcptyn");
  457. if (votpt_holdflag == "Y") {
  458. //grd_rsrv.rowStyle(i,"all","background-color") = "#99ff33"; // hold 처리 제거 by 당일수납 조중래 20140423
  459. grd_rsrv.rowStyle(i,"all","background-color") = "#ffffff";
  460. } else {
  461. grd_rsrv.rowStyle(i,"all","background-color") = "#ffffff";
  462. }
  463. if (votpt_estmspclappyn == "Y") {
  464. grd_rsrv.cellStyle("color", i, grd_rsrv.colref("otpt_suppkind")) = '#ff0000';
  465. }
  466. if (votpt_rcptvipresncd == "01") {
  467. grd_rsrv.cellStyle("color", i, grd_rsrv.colref("otpt_orddd")) = '#ff0000';
  468. }
  469. if (votpt_rcptvipresncd == "02") {
  470. grd_rsrv.cellStyle("color", i, grd_rsrv.colref("otpt_orddd")) = '#3366ff';
  471. }
  472. if (votpt_rcptvipresncd == "03") {
  473. grd_rsrv.cellStyle("color", i, grd_rsrv.colref("otpt_orddd")) = '#993300';
  474. }
  475. if(votpt_dracptyn == "N" && votpt_pmflag == "R") {
  476. grd_rsrv.cellStyle("color", i, grd_rsrv.colref("otpt_calcflag")) = '#3366ff';
  477. }
  478. if(votpt_specordyn == "Y" && votpt_specsign_cnt == "0") {
  479. grd_rsrv.cellStyle("color", i, grd_rsrv.colref("otpt_specordyn")) = '#ff0000';
  480. }
  481. //미수납자료 존재 시 (당일수납)
  482. if (votpt_allrcptyn == "N") {
  483. grd_rsrv.rowStyle(i,"all","background-color") = "#e5ccfe";
  484. }
  485. }
  486. for(var i=1; i <= grd_past.rows ; i++){
  487. var votpt_estmspclappyn = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_estmspclappyn");
  488. var votpt_rcptvipresncd = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_rcptvipresncd");
  489. var votpt_dracptyn = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_dracptyn");
  490. var votpt_pmflag = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_pmflag");
  491. var votpt_holdflag = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_holdflag");
  492. var votpt_specordyn = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_specordyn");
  493. var votpt_specsign_cnt = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_specsign_cnt");
  494. var votpt_allrcptyn = model.getValue("/root/main/baseinfo/otpt_past/otpt[" + i + "]/otpt_allrcptyn");
  495. if (votpt_holdflag == "Y") {
  496. //grd_past.rowStyle(i,"all","background-color") = "#99ff33"; // hold 처리 제거 by 당일수납 조중래 20140423
  497. grd_past.rowStyle(i,"all","background-color") = "#ffffff";
  498. } else {
  499. grd_past.rowStyle(i,"all","background-color") = "#ffffff";
  500. }
  501. if (votpt_estmspclappyn == "Y") {
  502. grd_past.cellStyle("color", i, grd_past.colref("otpt_suppkind")) = '#ff0000';
  503. }
  504. if (votpt_rcptvipresncd == "01") {
  505. grd_past.cellStyle("color", i, grd_past.colref("otpt_orddd")) = '#ff0000';
  506. }
  507. if (votpt_rcptvipresncd == "02") {
  508. grd_past.cellStyle("color", i, grd_past.colref("otpt_orddd")) = '#3366ff';
  509. }
  510. if (votpt_rcptvipresncd == "03") {
  511. grd_past.cellStyle("color", i, grd_past.colref("otpt_orddd")) = '#993300';
  512. }
  513. if(votpt_dracptyn == "N" && votpt_pmflag == "R") {
  514. grd_past.cellStyle("color", i, grd_past.colref("otpt_calcflag")) = '#3366ff';
  515. }
  516. if(votpt_specordyn == "Y" && votpt_specsign_cnt == "0") {
  517. grd_past.cellStyle("color", i, grd_past.colref("otpt_specordyn")) = '#ff0000';
  518. }
  519. //미수납자료 존재 시 (당일수납)
  520. if (votpt_allrcptyn == "N") {
  521. grd_past.rowStyle(i,"all","background-color") = "#e5ccfe";
  522. }
  523. }
  524. //수납대기 탭 오픈
  525. btn_otptlist.dispatch("onclick");
  526. }
  527. //2012-10-05
  528. //자보 지불한도액 표시 팝업 호출
  529. function fCheckAutoLimitAmt(){
  530. var nodeList = getNodesetCount("/root/main/outrgst/aipm/aipm_pid");
  531. if (nodeList > 0 && parseInt(model.getValue("/root/main/outrgst/aipm/aipm_paylimamt")) >= 0) {
  532. button15.attribute("class") = "btn5_letter2";
  533. button15.attribute("color") = "#ff0066";
  534. model.removeNodeset("/root/hidden/source");
  535. model.makeValue("/root/hidden/source/pid", model.getValue("/root/main/outrgst/aipm/aipm_pid"));
  536. model.makeValue("/root/hidden/source/orddd", model.getValue("/root/main/outrgst/aipm/aipm_aprvfromdd"));
  537. model.makeValue("/root/hidden/source/instcd", model.getValue("/root/main/outrgst/aipm/aipm_instcd"));
  538. modal("SPPAI02600", "1","200", "200", "SPPAI02600", "/root/hidden/source", "/root/send", "align:center");
  539. model.removeNodeset("/root/hidden/source");
  540. } else {
  541. button15.attribute("class") = "btn2_letter2";
  542. }
  543. }
  544. //수납대기 중인 외래등록 조회
  545. function fSearch(){
  546. // 수진이력 조회
  547. fOtpt_Search();
  548. //=============================================================================================
  549. //당일접수내역에 내역이 있을 경우, 디폴트로 한건 체크한다.
  550. //체크한 내역이 [미계산] 상태일 경우 계산처리한다.([미수납] 상태일 경우, 수납할 금액을 조회한다.)
  551. //멀티계산 반영 후, 당일접수와 같은 과 예약내역에 대해서 체크하는 기능 추가
  552. //=============================================================================================
  553. var otpt_cnt = 1;
  554. var vcheck_orddd = model.getValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_orddd");
  555. var vcheck_cretno = model.getValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_cretno");
  556. // 다학제 관련 추가(2014/10/28 이정택)
  557. // 다학제는 사용자가 직접 체크하도록 수정
  558. // 조혈모세포검사(HLA)검사도 사용자가 직접 체크하도록 추가(2018/04/11 이정택)
  559. var etcordflag = model.getValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_etcordflag");
  560. if(etcordflag=='3' || etcordflag=='4' || etcordflag=='5' ||
  561. etcordflag=='6' || etcordflag=='7' || etcordflag=='8' ||
  562. etcordflag=='9' || etcordflag=='V'){
  563. return;
  564. }
  565. //다학제 관련 추가(2014/10/28 이정택)
  566. if ( vcheck_orddd != "" && vcheck_orddd != " " && vcheck_orddd != null && vcheck_orddd != "-" ) {
  567. model.setValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_checkflag","true");
  568. grd_tday.row = 1; //첫번째 Row 값 세팅
  569. //2013-01-08
  570. //당일 수납 건이 의료급여 1종이면 자동 멀티수납 기능 제거
  571. //건유비 의무 선차감 고시로 의료급여 1종은 무조건 1건씩만 수납하도록 수정.
  572. var tday_insukind = model.getValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_insukind");
  573. //체크된 당일접수에 대한 예약도 체크한다.
  574. for(var i=1; i<=grd_rsrv.rows; i++) {
  575. //2012-10-16
  576. //원무팀 요청으로 당일 선수납 시행.
  577. //예약내역은 자동 선택이 안되도록 수정.
  578. if(model.getvalue("/root/init/basecdlist/P0032[cdid='101']/cdnm") == "Y"){
  579. continue;
  580. }
  581. //2013-01-08
  582. //당일 수납 건이 의료급여 1종이면 자동 멀티수납 기능 제거
  583. //건유비 의무 선차감 고시로 의료급여 1종은 무조건 1건씩만 수납하도록 수정.
  584. if(tday_insukind == '21'){
  585. continue;
  586. }
  587. /////////////////물리치료,주사,방종,투석은 멀티체크 제외//////////////////////////////////////////
  588. if(model.getvalue("/root/init/basecdlist/P0032[cdid='100']/cdnm") == "Y"){
  589. var etcordflag = model.getValue("root/main/baseinfo/otpt_rsrv/otpt["+ i +"]/otpt_etcordflag");
  590. var rsrvflag = model.getValue("root/main/baseinfo/otpt_rsrv/otpt["+ i +"]/otpt_rsrvflag");
  591. if(etcordflag == "M" || etcordflag == "J" || rsrvflag == "E") { //rsrvflag == "T" ||
  592. continue;
  593. }
  594. } else if (model.getvalue("/root/init/basecdlist/P0032[cdid='100']/cdnm") == "E") { //투석만 제외
  595. var rsrvflag = model.getValue("root/main/baseinfo/otpt_rsrv/otpt["+ i +"]/otpt_rsrvflag");
  596. if (rsrvflag == "E") {
  597. continue;
  598. }
  599. }
  600. /////////////////물리치료,주사,방종,투석은 멀티체크 제외 끝//////////////////////////////////////////
  601. // 당일 수진이력과 동시에 수납가능한 미래 예약건 처리
  602. // 진찰료 당일선수납관련 처리 추가 by 조중래 20150406
  603. if ( model.getValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_orddeptcd") == model.getValue("root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_orddeptcd")
  604. && model.getValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_orddrid") == model.getValue("root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_orddrid")
  605. && model.getValue("root/main/baseinfo/otpt_tday/otpt["+ otpt_cnt +"]/otpt_calcflag") == model.getValue("root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_calcflag")
  606. && model.getValue("root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_checkyn") == "Y" // 진찰료 당일 선수납 시 자동체크 제외
  607. ) {
  608. model.setValue("root/main/baseinfo/otpt_rsrv/otpt[" + i + "]/otpt_checkflag","true");
  609. grd_rsrv.row = i;
  610. }
  611. }
  612. if (grd_tday.rows > 0 || grd_rsrv.rows > 0) {
  613. var click_flag = true;
  614. if (grd_tday.rows > 0) {
  615. click_flag = fClickGrid("grd_tday");
  616. }else{
  617. click_flag = fClickGrid("grd_rsrv");
  618. }
  619. if(click_flag == false) {
  620. fbtn_chk_all_cncl();
  621. }
  622. }
  623. //2012-10-05
  624. //자보한도액 표시
  625. fCheckAutoLimitAmt();
  626. }
  627. model.setValue("/root/send/orddd", vcheck_orddd);
  628. model.setValue("/root/send/cretno", vcheck_cretno);
  629. //이동재20071123 미수,선수금에 대한 정보 연계
  630. var outuncoamt = model.getValue("/root/main/baseinfo/uncoinfo/unco/outuncoamt");
  631. var dschuncoamt = model.getValue("/root/main/baseinfo/uncoinfo/unco/dschuncoamt");
  632. var unconm = "";
  633. var inunconm = "";
  634. if (outuncoamt != "0" || dschuncoamt != "0") {
  635. if( outuncoamt != "0"){
  636. unconm = "[" + model.getValue("/root/main/baseinfo/uncoinfo/unco/unconm") + "]";
  637. }
  638. if( dschuncoamt != "0"){
  639. inunconm = "[" + model.getValue("/root/main/baseinfo/uncoinfo/unco/inunconm") + "]";
  640. }
  641. var result = messageBox("미수금이 존재합니다. 미수입금을 하시겠습니까? \n\n"+ unconm + "[외래미수금 : "+outuncoamt+"]"+ " " + inunconm + "[퇴원미수금 : "+dschuncoamt +"]","Q999","");
  642. if (result == "6") {
  643. var vpid = model.getValue("/root/main/patinfo/patinfolist/pid");
  644. setParameter("SMPAM00100_PID_PARM", vpid);
  645. modal("SMPAM00100", "1", "200", "200", "SMPAM00100", "", "");
  646. fbtn_chk_all_cncl();
  647. }
  648. }
  649. //조영상20080212 보관퇴원금에 대한 정보 연계
  650. var keepamt = model.getValue("/root/main/baseinfo/keepinfo/keep/keepamt");
  651. if (keepamt != 0) {
  652. var totkeepdata = "";
  653. //상세 보관금을 재조회함. -- 이성인 , 20090821 //요청자 : 김흥준
  654. submit("TRPAO00130",false);
  655. for(i=1; i<=getNodesetCount("/root/temp7/item") ; i++){
  656. var keepdata = model.getValue("/root/temp7/item['"+i+"']/keepdata");
  657. totkeepdata = totkeepdata + " " + keepdata;
  658. }
  659. //messageBox( totkeepdata + "이 있습니다." , "I999");
  660. totkeepdata = totkeepdata + "이 있습니다." + '\n' + model.getValue("/root/etc/union_msg");
  661. // 가퇴원금 있을 경우 퇴원창구로 안내문구 추가 by 조중래 20120712
  662. if (totkeepdata.indexOf("가퇴원금") != "-1") {
  663. totkeepdata += "\r\n\r\n가퇴원금이 있으므로 퇴원창구로 안내해주시기 바랍니다."
  664. }
  665. //model.setvalue("/root/etc/union_msg", totkeepdata);
  666. messageBox(totkeepdata, "I999");
  667. }
  668. /*
  669. //선수금,vip선수금
  670. var bogjamt = model.getValue("/root/main/baseinfo/bogjinfo/bogj/bogjamt");
  671. var bogjvipamt = model.getValue("/root/main/baseinfo/bogjinfo/bogj/bogjvipamt");
  672. if( parseInt(bogjamt) != 0 || parseInt(bogjvipamt) != 0){
  673. var bogjMsg = '';
  674. if( parseInt(bogjamt) != 0 ){
  675. bogjMsg = bogjMsg + "[선수금 : " + bogjamt + " 원] ";
  676. }
  677. if( parseInt(bogjvipamt) != 0 ){
  678. bogjMsg = bogjMsg + "[수납VIP선수금 : " + bogjvipamt + " 원]";
  679. }
  680. //messageBox("선수금이 존재합니다. " + bogjMsg, "I999", "");
  681. model.setvalue("/root/etc/union_msg" ,"선수금이 존재합니다. " + bogjMsg + '\n' + model.getValue("/root/etc/union_msg"));
  682. }
  683. */
  684. }
  685. //이동재20080110 외래정산용 추가
  686. function fCalcflagNSearch() {
  687. model.copynode("/root/main/baseinfo" ,"/root/node_bk/main/baseinfo");
  688. model.copynode("/root/main/outrgst" ,"/root/node_bk/main/outrgst");
  689. model.copynode("/root/send/s_otpt" ,"/root/node_bk/send/s_otpt");
  690. model.copynode("/root/hidden/rcvj" ,"/root/node_bk/hidden/rcvj");
  691. //환자번호 세팅
  692. model.setValue("/root/send/pid" ,model.getValue("/root/main/patinfo/patinfolist/pid"));
  693. model.setValue("/root/send/orddd" ,model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd"));
  694. model.setValue("/root/send/cretno" ,model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno"));
  695. //이동재20080110 외래수납/정산 구분값
  696. model.setValue("/root/send/workgubn" , model.getValue("/root/temp3/workgubn"));
  697. model.setValue("/root/send/jsfromdd" , model.getValue("/root/temp3/jsfromdd"));
  698. model.setValue("/root/send/jstodd" , model.getValue("/root/temp3/jstodd"));
  699. model.setValue("/root/send/jssrchcond" , model.getValue("/root/temp3/jssrchcond"));
  700. model.setValue("/root/send/jsorddeptcd", model.getValue("/root/temp3/jsorddeptcd"));
  701. model.setValue("/root/send/jsorddrid" , model.getValue("/root/temp3/jsorddrid"));
  702. model.setValue("/root/send/jsinsukind" , model.getValue("/root/temp3/jsinsukind"));
  703. model.removenode("/root/hidden/rcv/h_holddd/holddd");
  704. model.removenode("/root/hidden/rcv/h_hold/prcp");
  705. if (fRrgstNo3Veri(model.getValue("/root/main/patinfo/patinfolist/rrgstno1"), model.getValue("/root/main/patinfo/patinfolist/rrgstno2"), "ipt_rrgstno1", "ipt_rrgstno2" ) == false) return;
  706. //1. 수납대기 상태의 외래등록내역(당일,예약,과거) 조회 2.미수 조회
  707. submit("TRPAO00101")
  708. grd_calcflagn.rebuild();
  709. grd_rcptlist.rebuild();
  710. //기존 바탕색 clear
  711. for(var i=1; i <= grd_calcflagn.rows ; i++){
  712. var votpt_estmspclappyn = model.getValue("/root/main/baseinfo/otpt_calcflagn/otpt[" + i + "]/otpt_estmspclappyn");
  713. if (votpt_estmspclappyn == "Y") {
  714. grd_calcflagn.cellStyle("color", i, grd_calcflagn.colref("otpt_suppkind")) = '#ff0000';
  715. }
  716. }
  717. //이동재20071112 -- 장기이식환자 조회
  718. //cys 보완예정 fTransSearch();
  719. fLItemRefresh();
  720. fCItemRefresh();
  721. fRItemRefresh();
  722. //이동재20071123 미수,선수금에 대한 정보 연계
  723. var outuncoamt = model.getValue("/root/main/baseinfo/uncoinfo/unco/outuncoamt");
  724. var dschuncoamt = model.getValue("/root/main/baseinfo/uncoinfo/unco/dschuncoamt");
  725. if (outuncoamt > 0 || dschuncoamt > 0) {
  726. var result = messageBox("미수금이 존재합니다. 미수입금을 하시겠습니까? \n\n"+"[외래미수금 : "+outuncoamt+"]"+" [퇴원미수금 : "+dschuncoamt +"]","Q999","");
  727. if (result == "6") {
  728. var vpid = model.getValue("/root/main/patinfo/patinfolist/pid");
  729. setParameter("SMPAM00100_PID_PARM", vpid);
  730. modal("SMPAM00100", "1", "200", "200", "SMPAM00100", "", "");
  731. //modal("../../../pam/uncoamtmngtweb/xrw/SMPAM00100", "1","50", "70", "SMPAM00100", "", "");
  732. }
  733. }
  734. }
  735. //컨설트정보조회
  736. function fGetOrdCnstInfo(){
  737. //컨설트 의뢰정보가 1건일때 와 2건 이상일때 구분하여 메세지 처리
  738. var cnstCnt = getNodesetCount("/root/hidden/item1/pidinfo/h_emrcnst/emrcnst/pid");
  739. if( cnstCnt > 1 ){
  740. //messageBox("컨설트 의뢰정보가 있습니다!", "Q999", "");
  741. model.setvalue("/root/etc/union_msg" ,"컨설트 의뢰정보가 있습니다!" + '\n' + model.getValue("/root/etc/union_msg"));
  742. retValue = true;
  743. }else if( cnstCnt == 1 ){
  744. var reqorddeptnm = model.getValue("/root/hidden/item1/pidinfo/h_emrcnst/emrcnst/reqdeptnm");
  745. var reqorddrnm = model.getValue("/root/hidden/item1/pidinfo/h_emrcnst/emrcnst/requsernm");
  746. var recvorddeptnm = model.getValue("/root/hidden/item1/pidinfo/h_emrcnst/emrcnst/recvdeptnm");
  747. var recvorddrnm = model.getValue("/root/hidden/item1/pidinfo/h_emrcnst/emrcnst/recvusernm");
  748. //messageBox(reqorddeptnm + " " + reqorddrnm + " 교수님께서 " +
  749. // recvorddeptnm + " " + recvorddrnm + " 교수님께 의뢰한 내역이 있습니다!", "Q999", "");
  750. model.setvalue("/root/etc/union_msg" ,reqorddeptnm + " " + reqorddrnm + " 교수님께서 "
  751. + recvorddeptnm + " " + recvorddrnm + " 교수님께 의뢰한 내역이 있습니다!" + '\n' + model.getValue("/root/etc/union_msg"));
  752. }
  753. }
  754. //인공신장 요율변경내역 조회
  755. function fClickHDUpdate(){
  756. //submit("TRPAO02201");
  757. if (getNodesetCount("/root/hidden/item1/pidinfo/h_updtratelist/updtratelist/pid") > 0) {
  758. if (model.getValue("/root/hidden/item1/pidinfo/h_updtratelist/updtratelist/pid") != "") {
  759. var send_updtratelist = "/root/hidden/item1/pidinfo/h_updtratelist/updtratelist" ;
  760. var send_dtratelist = "/root/hidden/item1/pidinfo/h_dtratelist/dtratelist" ;
  761. var parm = model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //등록번호
  762. getCurrentDate() + "▦" +
  763. send_updtratelist + "▦" +
  764. send_dtratelist + "▦" ;
  765. setParameter("SPPAO02200_PARM",parm);
  766. modal("SPPAO02200", "1","400", "400", "SPPAO02200", "", "");
  767. if (getParameter("SPPAO02200_RTN") == "N" || getParameter("SPPAO02200_RTN") == "") {
  768. //조회되는 항목들 clear
  769. return false;
  770. }else{
  771. messageBox("요율이 변경되었습니다..","E999","");
  772. model.resetInstanceNode("/root/hidden/item1/pidinfo/h_updtratelist/updtratelist");
  773. model.resetInstanceNode("/root/hidden/item1/pidinfo/h_dtratelist/dtratelist");
  774. return true;
  775. }
  776. }
  777. /*
  778. var parm = model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //등록번호
  779. getCurrentDate() + "▦" ;
  780. setParameter("SPPAO02200_PARM",parm);
  781. modal("SPPAO02200", "1","400", "400", "SPPAO02200", "", "");
  782. if (getParameter("SPPAO02200_RTN") == "N" || getParameter("SPPAO02200_RTN") == "") {
  783. //조회되는 항목들 clear
  784. return false;
  785. }else{
  786. messageBox("요율이 변경되었습니다..","E999","");
  787. return true;
  788. }
  789. */
  790. }
  791. }
  792. /*
  793. * 외래수납 그리드클릭 이벤트
  794. */
  795. function fClickGrid(gridID){
  796. var workgubn = model.getvalue("/root/temp3/workgubn");
  797. var gridObj = document.controls.item(gridID);
  798. var gridObj_row = gridObj.row;
  799. var instanceId = "";
  800. if(gridID == "grd_tday"){
  801. instanceId = "otpt_tday";
  802. }
  803. if(gridID == "grd_rsrv"){
  804. instanceId = "otpt_rsrv";
  805. }
  806. if(gridID == "grd_past"){
  807. instanceId = "otpt_past";
  808. }
  809. //정산
  810. if(gridID == "grd_calcflagn"){
  811. instanceId = "otpt_calcflagn";
  812. }
  813. //실시정산
  814. if(gridID == "grd_eactotpt"){
  815. instanceId = "otpt_eactotpt";
  816. }
  817. click_otpt_node = "/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]";
  818. //보험선별심사 체크
  819. if(model.getvalue("/root/init/basecdlist/P0032[cdid='190']/cdnm") == "Y"){
  820. if(model.getValue("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]/otpt_orddd") <= getCurrentDate()){
  821. if(model.getValue("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]/otpt_checkflag") == "true"){
  822. if(model.getValue("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]/otpt_probjudgflag") == "M"){
  823. if(model.getValue("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]/otpt_dschjudgprcsstat") != "E"){
  824. var sDate = model.getValue("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]/otpt_orddd");
  825. var sValue = (sDate.toDate("YYYYMMDD")).getDayOfWeek("K");
  826. var bDayFlag = "false";
  827. var sTM = getCurrentTime().substr(0, 4);
  828. var sFromTM, sToTM;
  829. if (sValue == "토") { //토요일
  830. sFromTM = model.getvalue("/root/init/basecdlist/P0032[cdid='193']/cdnm");
  831. sToTM = model.getvalue("/root/init/basecdlist/P0032[cdid='194']/cdnm");
  832. if (sFromTM == "" || sToTM == "") {
  833. messageBox("보험선별심사 사용여부가 사용이나 심사 시간이 존재하지 않습니다. 확인하십시오. P0032 191-194", "I999");
  834. } else {
  835. if ((sTM >= sFromTM) && (sTM <= sToTM)) {
  836. bDayFlag = "true";
  837. }
  838. }
  839. } else if (sValue != "토" && sValue != "일") { //평일
  840. sFromTM = model.getvalue("/root/init/basecdlist/P0032[cdid='191']/cdnm");
  841. sToTM = model.getvalue("/root/init/basecdlist/P0032[cdid='192']/cdnm");
  842. if (sFromTM == "" || sToTM == "") {
  843. messageBox("보험선별심사 사용여부가 사용이나 심사 시간이 존재하지 않습니다. 확인하십시오. P0032 191-194", "I999");
  844. } else {
  845. if ((sTM >= sFromTM) && (sTM <= sToTM)) {
  846. bDayFlag = "true";
  847. }
  848. }
  849. }
  850. if (bDayFlag == "true") {
  851. messageBox("보험 미심사 내역이 존재합니다. 보험팀 확인 후 진행하십시오.", "I999");
  852. model.setValue("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]/otpt_checkflag", "false");
  853. return false;
  854. }
  855. }
  856. }
  857. }
  858. }
  859. }
  860. //20120405 가접수 건 중 진찰료 산정해야 할 대상 메세지 표시
  861. if( model.getValue(click_otpt_node + "/otpt_extrmedamtrcptyn") == 'Y' && model.getValue(click_otpt_node + "/otpt_checkflag") == "true"){
  862. messageBox("선택하신 접수건의 진찰료 산정여부를 확인하세요!!\n"
  863. + "진찰료 미산정 가접수에 검사/처치/마취 등의 처방이 있습니다.\n"
  864. + "진료유무를 판별하여 진찰료 산정으로 변경 수납하세요!", "I999", "");
  865. }
  866. //2015/12/02 이정택
  867. /*
  868. 차상위 2종 장애인환자 중 환자의 보조유형이 임플란트(97) 및 틀니(89)의 경우는 장애인대불 금액이 발생되지 않도록 수정
  869. 의료급여 2종 장애인화자 중 환자의 보조유형이 임플란트(95) 및 레진상 틀니(87)의 경우는 장애인대불 금액이 발생되지 않도록 수정
  870. */
  871. var hndc_insukind = model.getValue(click_otpt_node+"/otpt_insukind");
  872. var hndc_suppkind = model.getValue(click_otpt_node+"/otpt_suppkind");
  873. var hndc_checkflag = model.getValue(click_otpt_node+"/otpt_checkflag");
  874. if(hndc_insukind=="11" && (hndc_suppkind=="89" || hndc_suppkind=="97") && hndc_checkflag=="true"){ //틀니(89), 임플란트(97)
  875. model.makeValue(click_otpt_node+"/otpt_handicaprbookpossnyn", "N");
  876. model.makeValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn", "N");
  877. messageBox("해당 보조 유형으로는 장애인 대불금이 발생되지 않습니다.", "I");
  878. rdo_handicaprbookpossnyn.refresh();
  879. rdo_handicaprbookpossnyn.disabled=true;
  880. }else if(hndc_insukind=="22" && (hndc_suppkind=="87" || hndc_suppkind=="95") && hndc_checkflag=="true"){ //틀니(87), 임플란트(95)
  881. model.makeValue(click_otpt_node+"/otpt_handicaprbookpossnyn", "N");
  882. model.makeValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn", "N");
  883. messageBox("해당 보조 유형으로는 장애인 대불금이 발생되지 않습니다.", "I");
  884. rdo_handicaprbookpossnyn.refresh();
  885. rdo_handicaprbookpossnyn.disabled=true;
  886. }else{
  887. rdo_handicaprbookpossnyn.disabled=false;
  888. }
  889. //2015/12/02 이정택
  890. //2017/04/24 가접수 후 처방시 알림으로 메시지 띄어주기(이정택)
  891. var otpt_checkyn= model.getValue(click_otpt_node + "/otpt_checkflag");
  892. var otpt_prcpcnt = model.getValue(click_otpt_node+"/otpt_prcpcnt");
  893. if(gridID == "grd_tday" && otpt_checkyn == "true" && parseInt(otpt_prcpcnt)>0){
  894. messageBox("가접수임에도 불구하고 경구/주사 처방이 발생하였습니다.\n진찰료 산정으로 체크하여 재계산 후 수납 부탁드립니다.", "I");
  895. }
  896. //2017/04/24 가접수 후 처방시 알림으로 메시지 띄어주기(이정택)
  897. //Y-수납, N-정산, E-실시정산
  898. if(workgubn == "Y"){
  899. model.setValue("/root/send/ClickGrid/otpt_tday" , getNodeListCSV(instance1.selectNodes("/root/main/baseinfo/otpt_tday/otpt[otpt_checkflag='true']")));
  900. model.setValue("/root/send/ClickGrid/otpt_rsrv" , getNodeListCSV(instance1.selectNodes("/root/main/baseinfo/otpt_rsrv/otpt[otpt_checkflag='true']")));
  901. model.setValue("/root/send/ClickGrid/otpt_past" , getNodeListCSV(instance1.selectNodes("/root/main/baseinfo/otpt_past/otpt[otpt_checkflag='true']")));
  902. }
  903. if(workgubn == "N"){
  904. model.setValue("/root/send/ClickGrid/otpt_calcflagn" , getNodeListCSV(instance1.selectNodes("/root/main/baseinfo/otpt_calcflagn/otpt[otpt_checkflag='true']")));
  905. }
  906. if(workgubn == "E"){
  907. model.setValue("/root/send/ClickGrid/otpt_eactotpt" , getNodeListCSV(instance1.selectNodes("/root/main/baseinfo/otpt_eactotpt/otpt[otpt_checkflag='true']")));
  908. }
  909. model.setValue("/root/send/ClickGrid/click_otpt" , getNodeListCSV(instance1.selectNodes("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]")));
  910. model.setValue("/root/send/ClickGrid/patinfolist" , getNodeListCSV(instance1.selectNodes("/root/main/patinfo/patinfolist")));
  911. model.setValue("/root/send/ClickGrid/req/pid" , model.getvalue("/root/main/patinfo/patinfolist/pid"));
  912. model.setValue("/root/send/ClickGrid/req/workgubn" , model.getvalue("/root/temp3/workgubn"));
  913. model.setValue("/root/send/ClickGrid/req/rgstno1" , model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  914. model.setValue("/root/send/ClickGrid/req/rgstno2" , model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  915. model.setValue("/root/send/ClickGrid/req/name" , model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  916. if(submit("TRPAO00113")){
  917. //선택한 수납내역 없을시
  918. if(model.getvalue("/root/hidden/rcv2/m_otpt/otpt/otpt_pid") == ""){
  919. model.copynode("/root/main/outrgst" , "/root/node_bk/main/outrgst");
  920. model.copynode("/root/hidden/rcv1" , "/root/node_bk/hidden/rcv1");
  921. fEtcCheck("");
  922. fCloseCom();
  923. return;
  924. }
  925. /*
  926. * 장애인 등록여부 확인
  927. * 건강보험(11), 의료급여1종(21), 의료급여2종(22)
  928. */
  929. var otpt_insukind = model.getValue(click_otpt_node + "/otpt_insukind");
  930. var otpt_suppkind = model.getValue(click_otpt_node+"/otpt_suppkind");
  931. if((otpt_insukind == "11" && (otpt_suppkind!="89" && otpt_suppkind!="97"))|| otpt_insukind == "21" || (otpt_insukind == "22" && (otpt_suppkind!="87" && otpt_suppkind!="95"))){
  932. if(getHandcapInfo(model.getValue(click_otpt_node + "/otpt_orddd"), model.getvalue("/root/main/patinfo/patinfolist/pid"), model.getValue(click_otpt_node + "/otpt_handicaprbookpossnyn"))){
  933. //return; 블럭킹 하지 않음
  934. }
  935. }
  936. model.copynode("/root/main/outrgst/m_otpt" , "/root/hidden/rcv2/m_otpt");
  937. model.copynode("/root/main/outrgst/m_opmi" , "/root/hidden/rcv2/m_opmi");
  938. model.copynode("/root/main/outrgst/m_oscl" , "/root/hidden/rcv2/h_oscl");
  939. model.copyNode("/root/main/outrgst/m_remamt" , "/root/hidden/rcv2/h_remamt");
  940. model.copynode("/root/hidden/rcv1" , "/root/hidden/rcv2");
  941. model.removenode("/root/hidden/rcv2");
  942. if(getNodesetCount("/root/hidden/item1/pidinfo/h_famylist/famylist/emplname") > 0){
  943. //직원/가족 감면정보일때만 체크
  944. //model.setValue("/root/send/ClickGrid/req/orddd", grd_tday.valueMatrix(grd_tday.row, grd_tday.colRef("otpt_orddd")));
  945. if(gridID == "grd_tday" || gridID == "grd_rsrv" || gridID == "grd_past"){
  946. if(gridID == "grd_tday"){
  947. model.setValue("/root/send/ClickGrid/req/orddd", grd_tday.valueMatrix(grd_tday.row, grd_tday.colRef("otpt_orddd")) );
  948. }else if(gridID == "grd_rsrv"){
  949. model.setValue("/root/send/ClickGrid/req/orddd", grd_rsrv.valueMatrix(grd_rsrv.row, grd_rsrv.colRef("otpt_orddd")) );
  950. }else if(gridID == "grd_past"){
  951. model.setValue("/root/send/ClickGrid/req/orddd", grd_past.valueMatrix(grd_past.row, grd_past.colRef("otpt_orddd")) );
  952. }
  953. if(submit("TRPAO00118")){
  954. var gr_disccd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_disccd");
  955. var disccd = model.getValue("/root/temp10/disclist/disccd");
  956. if(gr_disccd != disccd ){
  957. messageBox("감면코드가 감면정보에 등록된 정보와 다릅니다. 확인하십시오.", "E999");
  958. }
  959. }
  960. }
  961. }
  962. //조회된 경우, 화면의 중증정보에 세팅
  963. var srdg_pid = model.getValue("/root/hidden/rcv1/h_srdg/srdg/srdg_pid");
  964. if (srdg_pid.length != 0) {
  965. model.resetInstanceNode("/root/main/outrgst/srdg");
  966. model.copyNode("/root/main/outrgst/srdg","/root/hidden/rcv1/h_srdg/srdg"); //중증번호,중증적용 시작일자 세팅
  967. }
  968. //20090701 2.희귀난치성산정특례 고시적용
  969. var rooa_pid = model.getValue("/root/hidden/rcv1/h_rooa/rooa/rooa_pid");
  970. if (rooa_pid.length != 0) {
  971. model.resetInstanceNode("/root/main/outrgst/rooa");
  972. model.copyNode("/root/main/outrgst/rooa","/root/hidden/rcv1/h_rooa/rooa");
  973. }
  974. //조회된 경우, 화면의 자보정보 세팅
  975. var aipm_pid = model.getValue("/root/hidden/rcv1/h_aipm/aipm/aipm_pid");
  976. if (aipm_pid.length != 0) {
  977. model.resetInstanceNode("/root/main/outrgst/aipm");
  978. model.copyNode("/root/main/outrgst/aipm","/root/hidden/rcv1/h_aipm/aipm"); //자보정보 세팅
  979. }
  980. //조회된 경우, 화면의 산재정보 세팅
  981. var icpm_pid = model.getValue("/root/hidden/rcv1/h_icpm/icpm/icpm_pid");
  982. if (icpm_pid.length != 0) {
  983. model.resetInstanceNode("/root/main/outrgst/icpm");
  984. model.copyNode("/root/main/outrgst/icpm","/root/hidden/rcv1/h_icpm/icpm"); //산재정보 세팅
  985. }
  986. //조회된 경우, 화면의 장애정보 세팅
  987. var hndc_pid = model.getValue("/root/hidden/rcv1/h_hndc/hndc/hndc_pid");
  988. if (hndc_pid.length != 0) {
  989. model.resetInstanceNode("/root/main/outrgst/hndc");
  990. model.copyNode("/root/main/outrgst/hndc","/root/hidden/rcv1/h_hndc/hndc"); //장애정보 세팅
  991. }
  992. var diag_diagcd = model.getValue("/root/hidden/rcv1/h_diag/diag/diag_diagcd");
  993. if (diag_diagcd.length!=0) {
  994. model.resetInstanceNode("/root/main/outrgst/diag");
  995. model.copyNode("/root/main/outrgst/diag","/root/hidden/rcv1/h_diag/diag");
  996. }
  997. var bldc_pid = model.getValue("/root/hidden/rcv1/h_bldc/bldc/bldc_pid");
  998. if (bldc_pid.length!=0) {
  999. model.resetInstanceNode("/root/main/outrgst/bldc");
  1000. model.copyNode("/root/main/outrgst/bldc","/root/hidden/rcv1/h_bldc/bldc");
  1001. }
  1002. //요율변경내역 조회
  1003. var updtratelist_pid = model.getValue("/root/hidden/rcv1/h_updtratelist/updtratelist/pid");
  1004. var brateupdtflag = false;
  1005. if (updtratelist_pid.length != 0) {
  1006. //model.resetInstanceNode("/root/hidden/item1/pidinfo/h_updtratelist/updtratelist");
  1007. //model.copyNode("/root/hidden/item1/pidinfo/h_updtratelist/updtratelist", "/root/hidden/rcv1/h_updtratelist/updtratelist");
  1008. model.removenode("/root/hidden/item1/pidinfo/h_updtratelist/updtratelist");
  1009. model.makeNode("/root/hidden/item1/pidinfo/h_updtratelist/updtratelist");
  1010. model.copyNode("/root/hidden/item1/pidinfo/h_updtratelist", "/root/hidden/rcv1/h_updtratelist");
  1011. var dtratelist_pid = model.getValue("/root/hidden/rcv1/h_dtratelist/dtratelist/pid");
  1012. if (dtratelist_pid.length != 0) {
  1013. //model.resetInstanceNode("/root/hidden/item1/pidinfo/h_dtratelist/dtratelist");
  1014. //model.copyNode("/root/hidden/item1/pidinfo/h_dtratelist/dtratelist", "/root/hidden/rcv1/h_dtratelist/dtratelist");
  1015. model.removenode("/root/hidden/item1/pidinfo/h_dtratelist/dtratelist");
  1016. model.makeNode("/root/hidden/item1/pidinfo/h_dtratelist/dtratelist");
  1017. model.copyNode("/root/hidden/item1/pidinfo/h_dtratelist", "/root/hidden/rcv1/h_dtratelist");
  1018. }
  1019. brateupdtflag = true;
  1020. }
  1021. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_estmspclappyn") != "-" ){
  1022. ipt_suppkind.attribute("color") = '#ff0000'; //red
  1023. }else{
  1024. ipt_suppkind.attribute("color") = '#000000'; //black
  1025. }
  1026. //외래등록정보 copy 시 일반의사면,특진여부 수정못하게/특진의사이면 수정가능
  1027. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_specordyn") == "Y"){
  1028. rdo_specordyn.disabled = false;
  1029. }else{
  1030. rdo_specordyn.disabled = true;
  1031. }
  1032. if(model.getValue("/root/main/outrgst/hndc/hndc_handcapgrde") == "01" || model.getValue("/root/main/outrgst/hndc/hndc_handcapgrde") == "02"){
  1033. cmb_hndc_handcapgrde.attribute("disable.background-color") = "#ff9900";
  1034. }else{
  1035. cmb_hndc_handcapgrde.attribute("disable.background-color") = "";
  1036. }
  1037. //초재진수동부여
  1038. if(model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_fsexammanlyn") == "Y"){
  1039. cmb_fsexamflag.disabled = false;
  1040. }
  1041. //////////////////////////////////////////////////보험/////////////////////////////////////////////////////////
  1042. model.setValue("/root/main/outrgst/ptin/ptin_insukind",model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insukind")); //보험유형
  1043. model.setValue("/root/main/outrgst/ptin/ptin_insucd" ,model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insucd")); //보험자코드
  1044. //보조유형 세팅하기
  1045. //보험정조회해오기때문에 필요없음.
  1046. fSuppKindSet(model.getValue("/root/main/outrgst/ptin/ptin_insukind"));
  1047. model.setValue("/root/main/outrgst/ptin/ptin_suppkind" ,model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_suppkind")); //보조유형
  1048. model.setValue("/root/main/outrgst/ptin/ptin_suppkindresn" ,model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_suppkindresn")); //보조유형사유
  1049. //조회된 경우, 화면의 보험정보에 세팅
  1050. var ptin_insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  1051. if (ptin_insukind == "11") {
  1052. model.toggle("case_base");
  1053. }
  1054. //자보
  1055. if (ptin_insukind == "31") {
  1056. model.setValue("/root/main/outrgst/ptin/ptin_insucd" ,model.getValue("/root/main/outrgst/aipm/aipm_insucmpycd")); //보험회사코드
  1057. model.toggle("case_ta");
  1058. }
  1059. //산재
  1060. if (ptin_insukind == "41"){
  1061. model.toggle("case_inducs");
  1062. }
  1063. //공상
  1064. if (ptin_insukind == "42"){
  1065. model.toggle("case_dutywund");
  1066. }
  1067. if (model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insukind") != "") {
  1068. model.setValue("/root/main/outrgst/ptin/ptin_insucd" , model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insucd"));
  1069. model.setValue("/root/main/outrgst/ptin/ptin_insucdnm" , model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insucdnm"));
  1070. model.setValue("/root/main/outrgst/ptin/ptin_insuno" , model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insuno"));
  1071. model.setValue("/root/main/outrgst/ptin/ptin_insdrela" , model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insdrela"));
  1072. model.setValue("/root/main/outrgst/ptin/ptin_insdnm" , model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insdnm"));
  1073. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1" , model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insdrrgstno1"));
  1074. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2" , model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_insdrrgstno2"));
  1075. if (ptin_insukind != "31" && ptin_insukind != "41") {
  1076. model.setValue("/root/main/outrgst/ptin/ptin_fromdd", model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_fromdd") );
  1077. }else {
  1078. model.setValue("/root/main/outrgst/ptin/ptin_fromdd", getCurrentDate());
  1079. }
  1080. model.setValue("/root/main/outrgst/ptin/ptin_todd", model.getValue("/root/hidden/rcv1/h_ptin/ptin/ptin_todd") );
  1081. }else{
  1082. if (ptin_insukind != "31" && ptin_insukind != "41" && ptin_insukind != "51") {
  1083. messageBox("해당 보험정보가 조회되지", "E007");
  1084. }
  1085. model.setValue("/root/main/outrgst/ptin/ptin_fromdd",model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd"));
  1086. model.setValue("/root/main/outrgst/ptin/ptin_todd" ,"99991231");
  1087. }
  1088. fptinBackUp(); //보험정보 _org 에 백업
  1089. //////////////////////////////////////////////////보험 끝/////////////////////////////////////////////////////////
  1090. grd_oscllist.refresh();
  1091. grd_oscllist.initStyle("background-color");
  1092. setRowStyle("grd_oscllist", "9", "000", "oscl_execprcpstatcd"); //추가
  1093. //부가세 관련 추가 20110628 nc
  1094. var rowcnt = grd_oscllist.rows;
  1095. var vatappcnt = 0;
  1096. for(var i=0; i<=rowcnt; i++){
  1097. if(model.getValue("/root/main/outrgst/m_oscl/oscl["+i+"]/vatappyn") == "Y"){
  1098. vatappcnt++;
  1099. }
  1100. }
  1101. if(vatappcnt > 0){
  1102. messageBox("부가세 부여대상 처방이 존재합니다\n보조유형을 확인하세요","E999","");
  1103. }
  1104. //부가세 관련 추가
  1105. //멀티카드취소시 정보조회
  1106. //fMultiSaveHistRef();
  1107. //2016/07/18 치과 화면 초기화시 카드가 선택되도록 요청함에 따라서 기준자료로 체크하도록 수정(이정택)
  1108. var chk_value = model.getValue("/root/init/comncdlist/P6587list/P6587[cdid='01']/cdnm");
  1109. if(isNull(chk_value)){
  1110. model.setValue("/root/init/option/cardyn" ,"C"); //Y-카드, N-현금영수증, C-현금
  1111. }else{
  1112. model.setValue("/root/init/option/cardyn" , chk_value); //Y-카드, N-현금영수증, C-현금
  1113. rdo_cardyn.dispatch("xforms-select");
  1114. }
  1115. //model.setValue("/root/init/option/cardyn" , "C"); //Y-카드, N-현금영수증, C-현금
  1116. //2016/07/18 치과 화면 초기화시 카드가 선택되도록 요청함에 따라서 기준자료로 체크하도록 수정(이정택)
  1117. model.setValue("/root/main/outrgst/m_etc/indinstflag" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  1118. model.setValue("/root/main/outrgst/m_etc/cardno" , "");
  1119. model.setValue("/root/main/outrgst/m_etc/valiterm" , "");
  1120. model.setValue("/root/main/outrgst/m_etc/allotmm" , "");
  1121. model.setValue("/root/main/outrgst/m_etc/swipedata" , "");
  1122. model.copynode("/root/send", "/root/node_bk/send");
  1123. //2016/09/29 겸임(1개 이상의 부서에서 근무) 으로 근무시 접수상세정보 진료의가 랜덤으로 선택되는 현상 수정(이정택)
  1124. cmb_orddeptcd.dispatch("xforms-select");
  1125. //2016/09/29 겸임(1개 이상의 부서에서 근무) 으로 근무시 접수상세정보 진료의가 랜덤으로 선택되는 현상 수정(이정택)
  1126. fEtcCheck("클릭정상");
  1127. fServerCheckMsg("클릭");
  1128. //요율변경내역 체크
  1129. if(workgubn == "Y" && brateupdtflag == true){
  1130. if(fClickHDUpdate() == true){
  1131. fSearch();
  1132. }
  1133. }
  1134. model.setFocus("ipt_cardno");
  1135. //Y-수납, N-정산, E-실시정산
  1136. if(workgubn == "Y"){
  1137. //2017/04/24 당일 내역 체크시 자동으로 당일처방계산 돌고 수납 버튼 활성화 되도록 수정(이정택)
  1138. if(gridID == "grd_tday" || gridID == "grd_past"){
  1139. button41.dispatch("DOMActivate");
  1140. }
  1141. //2017/04/24 당일 내역 체크시 자동으로 당일처방계산 돌고 수납 버튼 활성화 되도록 수정(이정택)
  1142. //금액표시기
  1143. fDisplayAmt_pamjs();
  1144. }
  1145. //Y-수납, N-정산, E-실시정산
  1146. if(workgubn == "N"){
  1147. fGetJOpmiList();
  1148. var openday = model.getValue("/root/init/basecdlist/hospopenday/cdnm");
  1149. var otpt_orddd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  1150. if(otpt_orddd < openday){
  1151. // 기존처방에 대해서만 계산
  1152. fCalculation('N');
  1153. }
  1154. }
  1155. //Y-수납, N-정산, E-실시정산
  1156. if(workgubn == "E"){
  1157. model.copyNode("/root/main/outrgst/m_oscl", "/root/hidden/rcv1/h_oscl");
  1158. grd_Eoscllist.rebuild();
  1159. setTree(grd_Eoscllist, 0, 0, true);
  1160. fDisplayAmt_pamjs(); //금액표시기
  1161. }
  1162. return true;
  1163. }else{
  1164. model.copynode("/root/main/outrgst/m_otpt/otpt", click_otpt_node);
  1165. fEtcCheck("클릭오류");
  1166. fServerCheckMsg("클릭");
  1167. if(getNodesetCount("/root/hidden/rcv1/m_otpt/otpt/otpt_pid") > 0){
  1168. model.copynode("/root/main/outrgst/m_otpt" , "/root/hidden/rcv1/m_otpt");
  1169. }else{
  1170. model.copynode("/root/main/outrgst/m_otpt" , "/root/hidden/rcv1/sum_otpt");
  1171. }
  1172. fLItemRefresh();
  1173. if(gridObj_row > 0){
  1174. model.setValue("/root/main/baseinfo/"+instanceId+"/otpt["+gridObj_row+"]/otpt_checkflag", "false");
  1175. }
  1176. return false;
  1177. }
  1178. return;
  1179. }
  1180. function fIsValueofArray(vArray, vValue){
  1181. for(var i=0; i<vArray.length; i++){
  1182. if(vValue == vArray[i]) return true;
  1183. }
  1184. }
  1185. function fClearInsu() {
  1186. //보험정보 선택시, 기존 내용 clear
  1187. model.setValue("/root/main/outrgst/ptin/ptin_suppkind","");
  1188. model.setValue("/root/main/outrgst/ptin/ptin_suppkindresn","");
  1189. model.setValue("/root/main/outrgst/ptin/ptin_insucd","");
  1190. model.setValue("/root/main/outrgst/ptin/ptin_insucdnm","");
  1191. model.setValue("/root/main/outrgst/ptin/ptin_insuno","");
  1192. model.setValue("/root/main/outrgst/ptin/ptin_insdnm","");
  1193. model.setValue("/root/main/outrgst/ptin/ptin_insdnm","");
  1194. model.setValue("/root/main/outrgst/ptin/ptin_insdrela","");
  1195. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1","");
  1196. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2","");
  1197. model.setValue("/root/main/outrgst/ptin/ptin_fromdd","");
  1198. model.setValue("/root/main/outrgst/ptin/ptin_todd","");
  1199. }
  1200. //화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  1201. //flag N 디폴트 , C 계산취소 , P 환자번호 남기고 클리어
  1202. function fClear(flag) {
  1203. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  1204. if (flag == "C") {
  1205. fCalcCancel("auto"); //정산화면에서 화면이동시 계산취소
  1206. }
  1207. model.copynode("/root/main" , "/root/node_bk/main");
  1208. model.copynode("/root/send" , "/root/node_bk/send");
  1209. model.copynode("/root/hidden" , "/root/node_bk/hidden");
  1210. model.copynode("/root/properties" , "/root/node_bk/properties");
  1211. model.resetInstanceNode("/root/source");
  1212. model.resetInstanceNode("/root/temp");
  1213. model.resetInstanceNode("/root/temp1");
  1214. model.resetInstanceNode("/root/temp2");
  1215. model.resetInstanceNode("/root/temp/psnworkinfo");
  1216. model.resetInstanceNode("/root/temp/receipt");
  1217. //인적정보 누락체크 버튼 초기화(회색)
  1218. btn_nullbaseinfo.attribute("background-color")="#c0c0c0";
  1219. //화면 디폴트 세팅
  1220. fSetDefault();
  1221. btn_otptlist.dispatch("onclick");
  1222. swt_insu.selectedIndex = 0;
  1223. chk_fsexammanlyn.disabled = false; //초재진수동부여 초기화
  1224. cmb_medamtfreeresn.disabled = true; //진찰료미산정사유 초기화
  1225. //이동재20080111 추가
  1226. model.setValue("/root/temp3/jsfromdd" , getCurrentDate().toDate().getAddDate(-1,"Y").getDateFormat());
  1227. model.setValue("/root/temp3/jstodd" , getCurrentDate());
  1228. model.setValue("/root/temp3/jssrchcond" , "1"); //수납선택(조회조건)
  1229. model.setValue("/root/temp3/jsorddeptcd" , "");
  1230. model.setValue("/root/temp3/jsorddrid" , "");
  1231. model.setValue("/root/temp3/jsinsukind" , "");
  1232. model.setValue("/root/option/opt_regis" , "N");
  1233. model.setValue("/root/option/opt_cardck" , "N");
  1234. model.setValue("/root/option/opt_procyn" , "N");
  1235. model.setValue("/root/option/opt_srchoff" , "N");
  1236. // 동의서 출력여부 초기화
  1237. cpt_scanyn.text = '';
  1238. // 사생활보호 초기화
  1239. cap_privacy.visible = false;
  1240. // 격리표식 초기화
  1241. img_isolb.src = "../../../com/hismainweb/images/btn_top_infection0_d.gif";
  1242. img_isolb.refresh();
  1243. img_isolc.src = "../../../com/hismainweb/images/btn_top_infection1_d.gif";
  1244. img_isolc.refresh();
  1245. img_isola.src = "../../../com/hismainweb/images/btn_top_infection2_d.gif";
  1246. img_isola.refresh();
  1247. rdo_medamtestmyn.disabled ="true";
  1248. cmb_hosoutexptresncd.disabled ="true";
  1249. btn_calc.disabled = false;
  1250. btn_rcpt.disabled = true;
  1251. if (flag == "P") {
  1252. model.setValue("/root/main/patinfo/patinfolist/pid" , pid);
  1253. }
  1254. //2011-11-30 장기이식 기증자 체크여부 초기화
  1255. model.setValue("/root/option/otp_dnoryn", "N");
  1256. bool1.refresh();
  1257. //2012-01-11 신생아 자격체크 여부 초기화
  1258. model.setValue("/root/option/otp_newbornyn", "N");
  1259. bool2.refresh();
  1260. model.setValue("/root/init/option/personprntyn", PersonPrntYN); //개인정보이용 동의서 자동출력 여부(기본값 : Y)
  1261. bool3.refresh();
  1262. // 2015/02/06 이정택 수정(진료시 세부내역서 오동작으로 소스변경)
  1263. model.makeValue("/root/init/option/specbillyn", "");
  1264. checkbox1.refresh();
  1265. model.makeValue("/root/init/option/printcnt", "1");
  1266. combo2.refresh();
  1267. /*
  1268. model.setValue("/root/init/option/specbillyn", "N"); // 진료비세부내역서 출력여부(기본값 : N)
  1269. checkbox1.refresh();
  1270. */
  1271. // 2015/02/06 이정택 수정
  1272. fLItemRefresh();
  1273. fCItemRefresh();
  1274. fRItemRefresh();
  1275. model.setFocus("ipt_pid");
  1276. }
  1277. //디폴트 세팅
  1278. function fSetDefault(){
  1279. //보험정보
  1280. model.makeValue("/root/main/outrgst/ptin/ptin_insukind","-");
  1281. model.makeValue("/root/main/outrgst/ptin/ptin_suppkind","-");
  1282. model.makeValue("/root/main/outrgst/ptin/ptin_suppkindresn","-");
  1283. model.makeValue("/root/main/outrgst/ptin/ptin_insucd","-");
  1284. model.makeValue("/root/main/outrgst/ptin/ptin_insucdnm","-");
  1285. model.makeValue("/root/main/outrgst/ptin/ptin_insuno","-");
  1286. model.makeValue("/root/main/outrgst/ptin/ptin_insdnm","-");
  1287. model.makeValue("/root/main/outrgst/ptin/ptin_insdrela","-");
  1288. model.makeValue("/root/main/outrgst/ptin/ptin_insdrrgstno1","-");
  1289. model.makeValue("/root/main/outrgst/ptin/ptin_insdrrgstno2","-");
  1290. model.makeValue("/root/main/outrgst/ptin/ptin_fromdd",getCurrentDate());
  1291. model.makeValue("/root/main/outrgst/ptin/ptin_todd","");
  1292. model.makeValue("/root/main/outrgst/srdg/srdg_seridiagno","-");
  1293. //model.makeValue("/root/main/outrgst/srdg/srdg_fromdd","-");
  1294. model.makeValue("/root/main/outrgst/rooa/rooa_rareobstno","-");
  1295. //model.makeValue("/root/main/outrgst/rooa/rooa_fromdd","-");
  1296. //model.makeValue("/root/main/outrgst/rooa/rooa_todd","-");
  1297. //출력옵션 디폴트 세팅
  1298. model.setValue("/root/init/option/receipt" ,"Y"); //영수증발행
  1299. //2016/10/17 이정택(영문영수증 출력 관련 프로그램 수정)
  1300. //model.setValue("/root/init/option/engreceipt" ,"N"); //영문영수증
  1301. //2016/10/17 이정택(영문영수증 출력 관련 프로그램 수정)
  1302. //2016/07/18 치과 화면 초기화시 카드가 선택되도록 요청함에 따라서 기준자료로 체크하도록 수정(이정택)
  1303. var chk_value = model.getValue("/root/init/comncdlist/P6587list/P6587[cdid='01']/cdnm");
  1304. if(isNull(chk_value)){
  1305. model.makeValue("/root/init/option/cardyn" ,"C"); //Y-카드, N-현금영수증, C-현금
  1306. }else{
  1307. model.makeValue("/root/init/option/cardyn" , chk_value); //Y-카드, N-현금영수증, C-현금
  1308. }
  1309. //model.setValue("/root/init/option/cardyn" ,"C"); //Y-카드, N-현금영수증, C-현금
  1310. //2016/07/18 치과 화면 초기화시 카드가 선택되도록 요청함에 따라서 기준자료로 체크하도록 수정(이정택)
  1311. model.setValue("/root/main/outrgst/m_etc/indinstflag" ,"00"); //00-소득공제, 01-지출증비, 02-미승인
  1312. model.setValue("/root/init/option/personprntyn", PersonPrntYN); //개인정보이용 동의서 자동출력 여부(기본값 : Y)
  1313. model.setValue("/root/main/outrgst/m_etc/uncocd","");
  1314. model.setValue("/root/main/outrgst/m_etc/discreducd","");
  1315. //보험유형 옆에 희귀난치 표시
  1316. model.setValue("/root/etc/opt_otptetc","");
  1317. model.setvalue("/root/etc/cardvanamt" ,"");
  1318. model.setvalue("/root/etc/cashvanamt" ,"");
  1319. model.setvalue("/root/etc/heallifeamtval" ,"");
  1320. model.setvalue("/root/etc/pregremamtval" ,"");
  1321. model.setvalue("/root/etc/union_msg" ,""); //통합메세지
  1322. //파라미터 초기화
  1323. setParameter("SPPMC03900_PARM","");
  1324. setParameter("SPPMC03900_RTN","");
  1325. setParameter("SPPMC03900_RTN_osunap","");
  1326. setParameter("SPPMC03900_RTN_osunap_msg4","");
  1327. setParameter("SPPMC03900_heallifeamtval","");
  1328. setParameter("SPPMC03900_pregremamtval","");
  1329. setParameter("SPPMC03900_heallifeamtclamamt","");
  1330. setParameter("SPPMC03900_pregdmndamt","");
  1331. //신종플루
  1332. setParameter("SPPMC03900_ETCORD","");
  1333. grd_past.rebuildStyle();
  1334. grd_rsrv.rebuildStyle();
  1335. grd_tday.rebuildStyle();
  1336. grd_calcflagn.rebuildStyle();
  1337. //grd_eactotpt.rebuildStyle();
  1338. }
  1339. //세션정보 추출하기
  1340. function fGetUserInfosSampling2(){
  1341. var sUserInfosS = getUserInfos();
  1342. sUserInfosS = sUserInfosS + "|";
  1343. var UserInfosS_Array = sUserInfosS.split("|");
  1344. var userid = UserInfosS_Array[0]; //사용자번호
  1345. var usernm = UserInfosS_Array[1]; //사용자이름
  1346. var posinstcd = UserInfosS_Array[2]; //소속기관코드
  1347. var posinstnm = UserInfosS_Array[3]; //소속기관명
  1348. var posdeptcd = UserInfosS_Array[4]; //소속부서코드
  1349. var posdeptnm = UserInfosS_Array[5]; //소속부서명
  1350. var dutplceinstcd = UserInfosS_Array[6]; //소속부서명
  1351. model.makeNode("/root/hidden/session/" + "userid");
  1352. model.makeNode("/root/hidden/session/" + "usernm");
  1353. model.makeNode("/root/hidden/session/" + "posinstcd");
  1354. model.makeNode("/root/hidden/session/" + "posinstnm");
  1355. model.makeNode("/root/hidden/session/" + "posdeptcd");
  1356. model.makeNode("/root/hidden/session/" + "posdeptnm");
  1357. model.makeNode("/root/hidden/session/" + "dutplceinstcd");
  1358. if (userid == null || userid == "" || userid == " " || userid == "-") userid = "pam";
  1359. if (posinstcd == null || posinstcd == "" || posinstcd == " " || posinstcd == "-" || dutplceinstcd == "-") posinstcd = "012";
  1360. model.setValue("/root/hidden/session/userid",userid);
  1361. model.setValue("/root/hidden/session/usernm",usernm);
  1362. model.setValue("/root/hidden/session/posinstcd",posinstcd);
  1363. model.setValue("/root/hidden/session/posinstnm",posinstnm);
  1364. model.setValue("/root/hidden/session/posdeptcd",posdeptcd);
  1365. model.setValue("/root/hidden/session/posdeptnm",posdeptnm);
  1366. model.setValue("/root/hidden/session/dutplceinstcd",dutplceinstcd);
  1367. }
  1368. //보조유형 세팅하기
  1369. function fSuppKindSet(otpt_insukind) {
  1370. cmb_suppkind.choices.itemset.attribute("nodeset") = "/root/init/basecdlist/suppkind[insukind = '"+otpt_insukind+"' and (ioflag = 'A' or ioflag = 'O')]";
  1371. cmb_suppkind.refresh();
  1372. }
  1373. function fOrddridSet(orddeptcd) {
  1374. cmb_orddrid.choices.itemset.attribute("nodeset") = "/root/init/basecdlist/orddrid[dutplcecd = '"+orddeptcd+"']";
  1375. cmb_orddrid.refresh();
  1376. }
  1377. // 실시정산 진료과 선택 시 의사재설정
  1378. function fOrddridSetE(orddeptcd) {
  1379. combo5.choices.itemset.attribute("nodeset") = "/root/init/basecdlist/orddrid[dutplcecd = '"+orddeptcd+"']";
  1380. combo5.refresh();
  1381. }
  1382. //환자의 보험정보 조회(환자별 보험정보 테이블에서)
  1383. function fGetPTIN(vpid,vinsukind,vsuppkind,vinsucd,vappdd) {
  1384. //등록번호,보험유형,보험자코드 세팅
  1385. model.setValue("/root/send/pid",vpid);
  1386. model.setValue("/root/send/insukind",vinsukind);
  1387. //이동재20071231 기관기호는 일단막음
  1388. //model.setValue("/root/send/insucd",vinsucd);
  1389. model.setValue("/root/send/appdd",vappdd);
  1390. model.setValue("/root/send/orddd",vappdd); //좌측에서 선택시는 현재정보를 가져오게 한다.
  1391. model.setValue("/root/send/instcd",model.getValue("/root/hidden/session/dutplceinstcd") );
  1392. // /root/hidden/rcv/h_ptin/ptin 해당 노드에 결과값 받음
  1393. submit("TRPAO00103");
  1394. //조회하기전에 clear
  1395. //model.resetInstanceNode("/root/main/outrgst/ptin");
  1396. //model.setValue("/root/main/outrgst/ptin/ptin_insukind",vinsukind);
  1397. //조회된 경우, 화면의 보험정보에 세팅s
  1398. //var ptin_insukind = model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insukind");
  1399. var ptin_insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  1400. if (ptin_insukind.length != 0) {
  1401. //model.setValue("/root/hidden/rcv/h_ptin/ptin/ptin_suppkind",vsuppkind);
  1402. //model.setValue("/root/hidden/rcv/h_ptin/ptin/ptin_insucd",vinsucd);
  1403. //model.copyNode("/root/main/outrgst/ptin","/root/hidden/rcv/h_ptin/ptin");
  1404. model.setValue("/root/main/outrgst/ptin/ptin_insucd", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insucd") );
  1405. model.setValue("/root/main/outrgst/ptin/ptin_insucdnm", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insucdnm") );
  1406. model.setValue("/root/main/outrgst/ptin/ptin_insuno", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insuno") );
  1407. model.setValue("/root/main/outrgst/ptin/ptin_insdrela", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdrela") );
  1408. model.setValue("/root/main/outrgst/ptin/ptin_insdnm", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdnm") );
  1409. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdrrgstno1") );
  1410. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdrrgstno2") );
  1411. model.setValue("/root/main/outrgst/ptin/ptin_fromdd", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_fromdd") );
  1412. model.setValue("/root/main/outrgst/ptin/ptin_todd", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_todd") );
  1413. }
  1414. else {
  1415. if (ptin_insukind != "31" && ptin_insukind != "41" && ptin_insukind != "51" && ptin_insukind != "61" && ptin_insukind != "71") {
  1416. messageBox("해당 보험정보가 조회 되지", "E007");
  1417. }
  1418. model.setValue("/root/main/outrgst/ptin/ptin_fromdd",getCurrentDate());
  1419. //model.setValue("/root/main/outrgst/ptin/ptin_suppkindresn","-");
  1420. //model.setValue("/root/main/outrgst/ptin/ptin_suppkind","-");
  1421. //model.setValue("/root/main/outrgst/ptin/ptin_insucd","-");
  1422. //model.setValue("/root/main/outrgst/ptin/ptin_insucdnm","-");
  1423. //model.setValue("/root/main/outrgst/ptin/ptin_insuno","-");
  1424. //model.setValue("/root/main/outrgst/ptin/ptin_insdrela","-");
  1425. //model.setValue("/root/main/outrgst/ptin/ptin_insdnm","-");
  1426. //model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1","-");
  1427. //model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2","-");
  1428. }
  1429. //조회된 경우, 화면의 중증정보에 세팅
  1430. var srdg_pid = model.getValue("/root/hidden/rcv/h_srdg/srdg/srdg_pid");
  1431. if (srdg_pid.length != 0) {
  1432. //조회하기전에 clear
  1433. model.resetInstanceNode("/root/main/outrgst/srdg");
  1434. //중증번호,중증적용 시작일자 세팅
  1435. model.copyNode("/root/main/outrgst/srdg","/root/hidden/rcv/h_srdg/srdg");
  1436. //model.setValue("/root/main/outrgst/srdg/srdg_seridiagno",model.getValue("/root/hidden/rcv/h_srdg/srdg/srdg_seridiagno"));
  1437. //model.setValue("/root/main/outrgst/srdg/srdg_fromdd",model.getValue("/root/hidden/rcv/h_srdg/srdg/srdg_seridiagno"));
  1438. }
  1439. //20090701 2.희귀난치성산정특례 고시적용
  1440. var rooa_pid = model.getValue("/root/hidden/rcv/h_rooa/rooa/rooa_pid");
  1441. if (rooa_pid.length != 0) {
  1442. //조회하기전에 clear
  1443. model.resetInstanceNode("/root/main/outrgst/rooa");
  1444. model.copyNode("/root/main/outrgst/rooa","/root/hidden/rcv/h_rooa/rooa");
  1445. }
  1446. //조회된 경우, 화면의 자보정보 세팅
  1447. var aipm_pid = model.getValue("/root/hidden/rcv/h_aipm/aipm/aipm_pid");
  1448. if (aipm_pid.length != 0) {
  1449. //조회하기전에 clear
  1450. model.resetInstanceNode("/root/main/outrgst/aipm");
  1451. //자보정보 세팅
  1452. model.copyNode("/root/main/outrgst/aipm","/root/hidden/rcv/h_aipm/aipm");
  1453. }
  1454. //조회된 경우, 화면의 산재정보 세팅
  1455. var icpm_pid = model.getValue("/root/hidden/rcv/h_icpm/icpm/icpm_pid");
  1456. if (icpm_pid.length != 0) {
  1457. //조회하기전에 clear
  1458. model.resetInstanceNode("/root/main/outrgst/icpm");
  1459. //산재정보 세팅
  1460. model.copyNode("/root/main/outrgst/icpm","/root/hidden/rcv/h_icpm/icpm");
  1461. }
  1462. //조회된 경우, 화면의 장애정보 세팅
  1463. var hndc_pid = model.getValue("/root/hidden/rcv/h_hndc/hndc/hndc_pid");
  1464. if (hndc_pid.length != 0) {
  1465. //조회하기전에 clear
  1466. model.resetInstanceNode("/root/main/outrgst/hndc");
  1467. //산재정보 세팅
  1468. model.copyNode("/root/main/outrgst/hndc","/root/hidden/rcv/h_hndc/hndc");
  1469. }
  1470. }
  1471. //환자의 중증정보 조회(환자별 중증정보 테이블에서) ??? 사용안함??
  1472. function fGetSRDG(vpid,vinsukind,vappdd) {
  1473. if ((vinsukind != "11")&&(vinsukind != "21")&&(vinsukind != "22")) return;
  1474. //등록번호,보험유형,적용일자 세팅
  1475. model.setValue("/root/send/pid",vpid);
  1476. model.setValue("/root/send/insukind",vinsukind);
  1477. model.setValue("/root/send/appdd",vappdd);
  1478. // /root/hidden/rcv/h_srdg/srdg 해당 노드에 결과값 받음
  1479. submit("TRPAO00104");
  1480. //조회된 경우, 화면의 보험정보에 세팅
  1481. var srdg_pid = model.getValue("/root/hidden/rcv/h_srdg/srdg/srdg_pid");
  1482. if (srdg_pid.length != 0) {
  1483. //조회하기전에 clear
  1484. model.resetInstanceNode("/root/main/outrgst/srdg");
  1485. //중증번호,중증적용 시작일자 세팅
  1486. model.copyNode("/root/main/outrgst/srdg","/root/hidden/rcv/h_srd/srdg");
  1487. //model.setValue("/root/main/outrgst/srdg/srdg_seridiagno",model.getValue("/root/hidden/rcv/h_srdg/srdg/srdg_seridiagno"));
  1488. //model.setValue("/root/main/outrgst/srdg/srdg_fromdd",model.getValue("/root/hidden/rcv/h_srdg/srdg/srdg_seridiagno"));
  1489. }
  1490. else {
  1491. //messageBox("해당 중증정보가 조회되지", "E007");
  1492. }
  1493. }
  1494. //환자의 보험정보 조회(환자별 보험정보 테이블에서) ???? 사용안함????
  1495. function fGetSunapInfo(vinsuno) {
  1496. //등록번호,보험유형,보험자코드 세팅
  1497. model.setValue("/root/send/pid" , model.getValue("/root/main/outrgst/m_otpt/otpt["+ vinsuno + "]/otpt_pid"));
  1498. model.setValue("/root/send/insukind" , model.getValue("/root/main/outrgst/m_otpt/otpt["+ vinsuno + "]/otpt_insukind"));
  1499. model.setValue("/root/send/suppkind" , model.getValue("/root/main/outrgst/m_otpt/otpt["+ vinsuno + "]/otpt_suppkind"));
  1500. model.setValue("/root/send/appdd" , model.getValue("/root/main/outrgst/m_otpt/otpt["+ vinsuno + "]/otpt_orddd"));
  1501. model.setValue("/root/send/instcd" , model.getValue("/root/hidden/session/dutplceinstcd") );
  1502. model.setValue("/root/send/disccd" , model.getValue("/root/main/outrgst/m_otpt/otpt["+ vinsuno + "]/otpt_disccd"));
  1503. model.setValue("/root/send/orddd" , model.getValue("/root/main/outrgst/m_otpt/otpt["+ vinsuno + "]/otpt_orddd"));
  1504. model.setValue("/root/send/cretno" , model.getValue("/root/main/outrgst/m_otpt/otpt["+ vinsuno + "]/otpt_cretno"));
  1505. model.setValue("/root/send/ordtype" ,"O" );
  1506. //초기화
  1507. model.resetInstanceNode("/root/hidden/rcv");
  1508. // /root/hidden/rcv/h_ptin/ptin 해당 노드에 결과값 받음
  1509. submit("TRPAO00112");
  1510. //조회된 경우, 화면의 보험정보에 세팅
  1511. var ptin_insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  1512. //자보
  1513. if (ptin_insukind == "31")
  1514. model.toggle("case_ta");
  1515. //산재
  1516. if (ptin_insukind == "41")
  1517. model.toggle("case_inducs");
  1518. //공상
  1519. if (ptin_insukind == "42")
  1520. model.toggle("case_dutywund");
  1521. if (getNodesetCount("/root/hidden/rcv/h_ptin/ptin/ptin_insukind") > 0) {
  1522. model.setValue("/root/main/outrgst/ptin/ptin_insucd" , model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insucd") );
  1523. model.setValue("/root/main/outrgst/ptin/ptin_insucdnm" , model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insucdnm") );
  1524. model.setValue("/root/main/outrgst/ptin/ptin_insuno" , model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insuno") );
  1525. model.setValue("/root/main/outrgst/ptin/ptin_insdrela" , model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdrela") );
  1526. model.setValue("/root/main/outrgst/ptin/ptin_insdnm" , model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdnm") );
  1527. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdrrgstno1") );
  1528. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_insdrrgstno2") );
  1529. if (ptin_insukind != "31" && ptin_insukind != "41") {
  1530. model.setValue("/root/main/outrgst/ptin/ptin_fromdd", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_fromdd") );
  1531. }else {
  1532. model.setValue("/root/main/outrgst/ptin/ptin_fromdd", getCurrentDate());
  1533. }
  1534. model.setValue("/root/main/outrgst/ptin/ptin_todd", model.getValue("/root/hidden/rcv/h_ptin/ptin/ptin_todd") );
  1535. }else {
  1536. if (ptin_insukind != "31" && ptin_insukind != "41") {
  1537. messageBox("해당 보험정보가 조회되지", "E007");
  1538. }
  1539. model.setValue("/root/main/outrgst/ptin/ptin_fromdd",getCurrentDate());
  1540. }
  1541. //조회된 경우, 화면의 중증정보에 세팅
  1542. var srdg_pid = model.getValue("/root/hidden/rcv/h_srdg/srdg/srdg_pid");
  1543. if (srdg_pid.length != 0) {
  1544. model.resetInstanceNode("/root/main/outrgst/srdg");
  1545. model.copyNode("/root/main/outrgst/srdg","/root/hidden/rcv/h_srdg/srdg"); //중증번호,중증적용 시작일자 세팅
  1546. }
  1547. //조회된 경우, 화면의 자보정보 세팅
  1548. var aipm_pid = model.getValue("/root/hidden/rcv/h_aipm/aipm/aipm_pid");
  1549. if (aipm_pid.length != 0) {
  1550. model.resetInstanceNode("/root/main/outrgst/aipm");
  1551. model.copyNode("/root/main/outrgst/aipm","/root/hidden/rcv/h_aipm/aipm"); //자보정보 세팅
  1552. }
  1553. //조회된 경우, 화면의 산재정보 세팅
  1554. var icpm_pid = model.getValue("/root/hidden/rcv/h_icpm/icpm/icpm_pid");
  1555. if (icpm_pid.length != 0) {
  1556. model.resetInstanceNode("/root/main/outrgst/icpm");
  1557. model.copyNode("/root/main/outrgst/icpm","/root/hidden/rcv/h_icpm/icpm"); //산재정보 세팅
  1558. }
  1559. //조회된 경우, 화면의 장애정보 세팅
  1560. var hndc_pid = model.getValue("/root/hidden/rcv/h_hndc/hndc/hndc_pid");
  1561. if (hndc_pid.length != 0) {
  1562. model.resetInstanceNode("/root/main/outrgst/hndc");
  1563. model.copyNode("/root/main/outrgst/hndc","/root/hidden/rcv/h_hndc/hndc"); //장애정보 세팅
  1564. }
  1565. var diag_diagcd = model.getValue("/root/hidden/rcv/h_diag/diag/diag_diagcd");
  1566. if (diag_diagcd.length!=0) {
  1567. model.resetInstanceNode("/root/main/outrgst/diag");
  1568. model.copyNode("/root/main/outrgst/diag","/root/hidden/rcv/h_diag/diag");
  1569. }
  1570. var bldc_pid = model.getValue("/root/hidden/rcv/h_bldc/bldc/bldc_pid");
  1571. if (bldc_pid.length!=0) {
  1572. model.resetInstanceNode("/root/main/outrgst/bldc");
  1573. model.copyNode("/root/main/outrgst/bldc","/root/hidden/rcv/h_bldc/bldc");
  1574. }
  1575. }
  1576. //계산
  1577. function fCalculate(param){
  1578. //기존내역 clear
  1579. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  1580. model.copynode("/root/send/s_opmi" , "/root/node_bk/send/s_opmi");
  1581. model.copynode("/root/send/s_oscl" , "/root/node_bk/send/s_oscl");
  1582. model.copynode("/root/hidden/rcv1/h_opmi" , "/root/node_bk/hidden/rcv1/h_opmi");
  1583. model.copynode("/root/main/outrgst/m_oscl" , "/root/node_bk/main/outrgst/m_oscl");
  1584. model.removeNodeset("/root/send/s_otpt/otpt");
  1585. //타 진료과인 경우도 계산(예약), 같은 보험유형 및 같은 감면으로 계산되며,
  1586. //접수내역의 선택진료여부,진찰료산정여부,초재진 등의 금액변경을 야기시키는 정보를 변경시킬 수 없음.
  1587. //체크된 내역 계산
  1588. //체크된 외래등록내역 copy
  1589. var iSelRow = 0;
  1590. for (var iRow = 1; iRow<= grd_tday.rows ; iRow++) {
  1591. if (model.getValue("/root/main/baseinfo/otpt_tday/otpt["+iRow+"]/otpt_checkflag")=="true") {
  1592. model.setValue("/root/main/baseinfo/otpt_tday/otpt["+iRow+"]/otpt_calcactflag","2");//계산수행구분(1:접수, 2:진료후수납)
  1593. model.setValue("/root/main/baseinfo/otpt_tday/otpt["+iRow+"]/otpt_calcgubn",model.getValue("/root/hidden/calcgubn"));// 계산구분(Y: 계산, N:가계산)
  1594. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_tday/otpt["+iRow+"]","after");
  1595. iSelRow++;
  1596. }
  1597. }//End for grd_tday
  1598. for (var iRow = 1; iRow<= grd_rsrv.rows ; iRow++) {
  1599. if (model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]/otpt_checkflag")=="true") {
  1600. model.setValue("/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]/otpt_calcactflag","2");//계산수행구분(1:접수, 2:진료후수납)
  1601. model.setValue("/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]/otpt_calcgubn",model.getValue("/root/hidden/calcgubn"));// 계산구분(Y: 계산, N:가계산)
  1602. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]","after");
  1603. iSelRow++;
  1604. }
  1605. }//End for grd_rsrv
  1606. for (var iRow = 1; iRow<= grd_past.rows ; iRow++) {
  1607. if (model.getValue("root/main/baseinfo/otpt_past/otpt["+iRow+"]/otpt_checkflag") == "true") {
  1608. model.setValue("/root/main/baseinfo/otpt_past/otpt["+iRow+"]/otpt_calcactflag","2");//계산수행구분(1:접수, 2:진료후수납)
  1609. model.setValue("/root/main/baseinfo/otpt_past/otpt["+iRow+"]/otpt_calcgubn",model.getValue("/root/hidden/calcgubn"));// 계산구분(Y: 계산, N:가계산)
  1610. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_past/otpt["+iRow+"]","after");
  1611. iSelRow++;
  1612. }
  1613. }//End for grd_past
  1614. if (iSelRow == 0) {
  1615. messageBox("선택된 내역이","I004");//I004=없습니다
  1616. return;
  1617. }
  1618. //-------------------------------------------------------------------------------------------------
  1619. //보험정보 체크
  1620. //자보/산재/공상인 경우와 아닌경우 분리
  1621. var ptin_insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind"); //보험유형
  1622. var ptin_suppkind = model.getValue("/root/main/outrgst/ptin/ptin_suppkind"); //보조유형
  1623. var ptin_suppkindresn = model.getValue("/root/main/outrgst/ptin/ptin_suppkindresn"); //보조유형사유
  1624. var ptin_fromdd = model.getValue("/root/main/outrgst/ptin/ptin_fromdd"); //시작일자
  1625. var ptin_todd = model.getValue("/root/main/outrgst/ptin/ptin_todd"); //종료일자
  1626. if (ptin_insukind == gsInsu_JaboKind || ptin_insukind == gsInsu_SanJae || ptin_insukind == gsInsu_GongSang) {
  1627. //자보
  1628. if (ptin_insukind == gsInsu_JaboKind) {
  1629. model.setValue("/root/main/outrgst/ptin/ptin_insucd" ,model.getValue("/root/main/outrgst/aipm/aipm_insucmpycd")); //보험회사코드
  1630. }
  1631. }else {
  1632. var vArrayInsu = new Array(model.getValue("/root/main/outrgst/ptin/ptin_insukind")
  1633. ,model.getValue("/root/main/outrgst/ptin/ptin_suppkind")
  1634. ,model.getValue("/root/main/outrgst/ptin/ptin_suppkindresn")
  1635. ,model.getValue("/root/main/outrgst/ptin/ptin_insucd")
  1636. ,model.getValue("/root/main/outrgst/ptin/ptin_insuno")
  1637. ,model.getValue("/root/main/outrgst/ptin/ptin_insdnm")
  1638. ,model.getValue("/root/main/outrgst/ptin/ptin_insdrela")
  1639. ,model.getValue("/root/main/outrgst/ptin/ptin_insdrrgstno1")
  1640. ,model.getValue("/root/main/outrgst/ptin/ptin_insdrrgstno2")
  1641. ,model.getValue("/root/main/outrgst/ptin/ptin_fromdd")
  1642. ,model.getValue("/root/main/outrgst/ptin/ptin_todd")
  1643. );
  1644. var vArrayCtrl = new Array("cmb_insukind"
  1645. ,"cmb_suppkind"
  1646. ,"cmb_suppkindresn"
  1647. ,"ipt_insucd"
  1648. ,"ipt_insuno"
  1649. ,"ipt_insdnm"
  1650. ,"cmb_insdrela"
  1651. ,"ipt_insdrrgstno1"
  1652. ,"ipt_insdrrgstno2"
  1653. ,"ipt_fromdd"
  1654. ,"ipt_todd"
  1655. );
  1656. if (fInsuInfoVeri(vArrayInsu, vArrayCtrl) == false) { return; }
  1657. //보험정보 체크에 의해 재설정된 정보 세팅
  1658. model.setValue("/root/main/outrgst/ptin/ptin_insukind" , vArrayInsu[0]);
  1659. model.setValue("/root/main/outrgst/ptin/ptin_suppkind" , vArrayInsu[1]);
  1660. model.setValue("/root/main/outrgst/ptin/ptin_suppkindresn" , vArrayInsu[2]);
  1661. model.setValue("/root/main/outrgst/ptin/ptin_insucd" , vArrayInsu[3]);
  1662. model.setValue("/root/main/outrgst/ptin/ptin_insuno" , vArrayInsu[4]);
  1663. model.setValue("/root/main/outrgst/ptin/ptin_insdnm" , vArrayInsu[5]);
  1664. model.setValue("/root/main/outrgst/ptin/ptin_insdrela" , vArrayInsu[6]);
  1665. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1" , vArrayInsu[7]);
  1666. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2" , vArrayInsu[8]);
  1667. model.setValue("/root/main/outrgst/ptin/ptin_fromdd" , vArrayInsu[9]);
  1668. model.setValue("/root/main/outrgst/ptin/ptin_todd" , vArrayInsu[10]);
  1669. }
  1670. //정액/인공신장 세팅 추가
  1671. //보호정신과,보호인공신장+장애,인공신장에 따라 수가계산방법 세팅(P/N) => 없앰
  1672. var insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  1673. var suppkind = model.getValue("/root/main/outrgst/ptin/ptin_suppkind");
  1674. for(var i=1; i<= iSelRow; i++) {
  1675. var reqdeptno = model.getValue("/root/init/basecdlist/orddeptcd[ cdid = '" + model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_orddeptcd") + "' ]/reqdeptno");
  1676. if( insukind == gsInsu_BoHo1 || insukind == gsInsu_BoHo2 ){
  1677. //if( suppkind == gsSupp_INGONG || suppkind == gsSupp_BOKMAK ){
  1678. if( suppkind == gsSupp_INGONG ){ //복막관류술은 제외 2007.10.18 //복막관류술도 포함 20080128
  1679. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","O"); //인공신장 세팅
  1680. }else if( reqdeptno == "03" && suppkind == gsSupp_JSJA){
  1681. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","P"); //정신과 정액 세팅
  1682. }else{
  1683. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","N"); //개별수가 세팅
  1684. }
  1685. }else{
  1686. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","N"); //개별수가 세팅
  1687. }
  1688. }
  1689. //이동재20071119 산정특례로직 체크-----------------------
  1690. //이동재20071219 재계산시에는 산정특례로직 체크안하게 수정
  1691. /*
  1692. for(var i=1; i<= iSelRow; i++) {
  1693. var vinsukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  1694. var vsuppkind = model.getValue("/root/main/outrgst/ptin/ptin_suppkind");
  1695. var vsuppkindsubyn = model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_suppkindsubyn");
  1696. if((vinsukind == "11" || vinsukind == "21" || vinsukind == "22") && vsuppkind != "01" && vsuppkindsubyn == "N"){
  1697. if (fEsscSearch( model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_pid"),
  1698. model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_orddd"),
  1699. model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_orddeptcd"),
  1700. model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_mskind"),
  1701. model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_cretno"),
  1702. model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_insukind")) == false){
  1703. return;
  1704. }
  1705. }
  1706. }
  1707. */
  1708. //보험정보 copy
  1709. fptinBackUp(); //보험정보 _org 에 백업44
  1710. model.copyNode("/root/send/ptin","/root/main/outrgst/ptin");
  1711. //환자기본정보 세팅
  1712. model.setValue("/root/send/pid" , model.getValue("/root/main/patinfo/patinfolist/pid"));
  1713. model.setValue("/root/send/brthdd" , model.getValue("/root/main/patinfo/patinfolist/brthdd"));
  1714. model.setValue("/root/send/rrgstno1" , model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  1715. model.setValue("/root/send/rrgstno2" , model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  1716. model.setValue("/root/send/sessuserid", model.getValue("/root/hidden/session/userid"));
  1717. model.setValue("/root/send/workgubn" , model.getValue("/root/temp3/workgubn"));
  1718. model.setValue("/root/send/gubun" , param);
  1719. var otptCnt = getNodesetCount("/root/send/s_otpt/otpt/otpt_pid");
  1720. //계산할 내역이 1건이면, 접수상세정보의 변경건을 반영한다.
  1721. if (parseInt(otptCnt) == 1) {
  1722. model.setValue("/root/send/s_otpt/otpt/otpt_ordreqformflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordreqformflag")); //진료의뢰 수급절차
  1723. model.setValue("/root/send/s_otpt/otpt/otpt_specordyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_specordyn")); //선택진료
  1724. model.setValue("/root/send/s_otpt/otpt/otpt_medamtestmyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn")); //진찰료산정여부
  1725. model.setValue("/root/send/s_otpt/otpt/otpt_medamtfreeresn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn")); //진찰료산정사유
  1726. model.setValue("/root/send/s_otpt/otpt/otpt_fsexamflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_fsexamflag")); //초재진구분
  1727. model.setValue("/root/send/s_otpt/otpt/otpt_fsexammanlyn" , chk_fsexammanlyn.value); //초재진수동부여여부
  1728. model.setValue("/root/send/s_otpt/otpt/otpt_handicaprbookpossnyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn")); //장애인수첩소지여부
  1729. model.setValue("/root/send/s_otpt/otpt/otpt_disccd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_disccd")); //계정감면
  1730. model.setValue("/root/send/s_otpt/otpt/otpt_hosoutexptresncd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_hosoutexptresncd")); //의약분업예외코드
  1731. model.setValue("/root/send/s_otpt/otpt/otpt_rsrvflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_rsrvflag")); //예약구분
  1732. model.setValue("/root/send/s_otpt/otpt/otpt_etcordflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag")); //기타진료구분
  1733. model.setValue("/root/send/s_otpt/otpt/otpt_clincstdyacptflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_clincstdyacptflag")); //임상미수구분
  1734. //model.setValue("/root/send/s_otpt/otpt/otpt_rareobstflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag")); //희귀난치
  1735. model.setValue("/root/send/s_otpt/otpt/otpt_ownbflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag")); //본인부담구분
  1736. //2015/06/19 이정택 수정(수가계산을 위해 미수코드 입력)
  1737. model.setValue("/root/send/s_otpt/otpt/otpt_uncocd" , model.getValue("/root/main/outrgst/m_etc/uncocd")); //미수코드
  1738. }
  1739. for(var a=1; a <=otptCnt; a++) {
  1740. //model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_ordreqformflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordreqformflag")); //진료의뢰 수급절차
  1741. model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_handicaprbookpossnyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn")); //장애인수첩소지여부
  1742. model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_disccd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_disccd")); //계정감면
  1743. //model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_rareobstflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag")); //희귀난치
  1744. model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_ownbflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag")); //본인부담구분
  1745. }
  1746. //================================================================
  1747. //멀티계산 시작
  1748. //================================================================
  1749. //계산호출
  1750. //계산 성공시, 수납할 금액 조회
  1751. if (submit("TXPAO00101") == true) {
  1752. for (var iCount = 1; iCount<= grd_past.rows ; iCount++) {
  1753. if(model.getValue("/root/main/baseinfo/otpt_past/otpt["+iCount+"]/otpt_checkflag")=="true") {
  1754. model.copynode("/root/main/baseinfo/otpt_past/otpt["+iCount+"]" , "/root/hidden/rcv1/otpt_past/otpt");
  1755. model.removenode("/root/hidden/rcv1/otpt_past/otpt");
  1756. }
  1757. }
  1758. for (var iCount = 1; iCount<= grd_tday.rows ; iCount++) {
  1759. if(model.getValue("/root/main/baseinfo/otpt_tday/otpt["+iCount+"]/otpt_checkflag")=="true") {
  1760. model.copynode("/root/main/baseinfo/otpt_tday/otpt["+iCount+"]" , "/root/hidden/rcv1/otpt_tday/otpt");
  1761. model.removenode("/root/hidden/rcv1/otpt_tday/otpt");
  1762. }
  1763. }
  1764. for (var iCount = 1; iCount<= grd_rsrv.rows ; iCount++) {
  1765. if(model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+iCount+"]/otpt_checkflag")=="true") {
  1766. model.copynode("/root/main/baseinfo/otpt_rsrv/otpt["+iCount+"]" , "/root/hidden/rcv1/otpt_rsrv/otpt");
  1767. model.removenode("/root/hidden/rcv1/otpt_rsrv/otpt");
  1768. }
  1769. }
  1770. for (var iCount = 1; iCount<= getNodesetCount("/root/main/outrgst/m_otpt/otpt/otpt_pid") ; iCount++) {
  1771. if (model.getValue("/root/main/outrgst/m_otpt/otpt["+iCount+"]/otpt_checkflag")=="true") {
  1772. model.setValue("/root/main/outrgst/m_otpt/otpt["+iCount+"]/otpt_calcflag" ,"S");
  1773. model.setValue("/root/main/outrgst/m_otpt/otpt["+iCount+"]/otpt_rollbackyn","Y");
  1774. }
  1775. }
  1776. //받아온 계산내역을 세팅
  1777. var oscl_pid = model.getValue("/root/hidden/rcv1/h_oscl/oscl/oscl_pid");
  1778. var vexecprcphistcd = "Y";
  1779. var vexecbldc2 = "N";
  1780. if(oscl_pid.length !=0){
  1781. //조회하기전에 clear
  1782. model.copynode("/root/main/outrgst/m_oscl", "/root/node_bk/main/outrgst/m_oscl");
  1783. model.copyNode("/root/main/outrgst/m_oscl", "/root/hidden/rcv1/h_oscl");
  1784. //기존 바탕색 clear
  1785. for(var i=0; i <= grd_oscllist.rows ; i++){
  1786. grd_oscllist.rowStyle(i,"data","background-color") = "#ffffff";
  1787. }
  1788. setRowStyle("grd_oscllist" , "9" , "000" , "oscl_execprcpstatcd"); //추가
  1789. //setRowStyle("grd_oscllist" , "2" , "230" , "oscl_execprcpstatcd"); //수납
  1790. //setRowStyle("grd_oscllist" , "3" , "210" , "oscl_execprcpstatcd"); //홀드
  1791. //setRowStyle("grd_oscllist" , "6" , "E" , "oscl_execprcphistcd"); //반납
  1792. //setRowStyle("grd_oscllist" , "5" , "060601" , "oscl_snglearncls"); //수혈
  1793. }
  1794. fSetOrdAmt();
  1795. }
  1796. fEtcCheck("계산");
  1797. fServerCheckMsg("계산");
  1798. }
  1799. //화면우측에 진료비 보여주기
  1800. function fSetOrdAmt(){
  1801. model.copynode("/root/main/outrgst/m_opmi" ,"/root/hidden/rcv1/m_opmi");
  1802. //받아온 선수금 잔액 세팅
  1803. var opmi_mdlremamt = model.getValue("/root/hidden/rcv1/h_remamt/remamt/remamt_remamt");
  1804. if (parseInt(opmi_mdlremamt) >=0) {
  1805. //조회하기전에 clear
  1806. model.resetInstanceNode("/root/main/outrgst/m_remamt/remamt");
  1807. model.copyNode("/root/main/outrgst/m_remamt","/root/hidden/rcv1/h_remamt");
  1808. }
  1809. //2016/07/18 치과 화면 초기화시 카드가 선택되도록 요청함에 따라서 기준자료로 체크하도록 수정(이정택)
  1810. var chk_value = model.getValue("/root/init/comncdlist/P6587list/P6587[cdid='01']/cdnm");
  1811. if(isNull(chk_value)){
  1812. model.makeValue("/root/init/option/cardyn" ,"C"); //Y-카드, N-현금영수증, C-현금
  1813. }else{
  1814. model.makeValue("/root/init/option/cardyn" , chk_value); //Y-카드, N-현금영수증, C-현금
  1815. rdo_cardyn.dispatch("xforms-select");
  1816. }
  1817. //model.setValue("/root/init/option/cardyn" ,"C"); //Y-카드, N-현금영수증, C-현금
  1818. //2016/07/18 치과 화면 초기화시 카드가 선택되도록 요청함에 따라서 기준자료로 체크하도록 수정(이정택)
  1819. model.setValue("/root/main/outrgst/m_etc/indinstflag" ,"00"); //00-소득공제, 01-지출증비, 02-미승인
  1820. model.setValue("/root/main/outrgst/m_etc/cardno" ,"");
  1821. model.setValue("/root/main/outrgst/m_etc/valiterm" ,"");
  1822. model.setValue("/root/main/outrgst/m_etc/allotmm" ,"");
  1823. model.setValue("/root/main/outrgst/m_etc/swipedata" ,"");
  1824. model.setFocus("ipt_cardno");
  1825. //금액표시기
  1826. fDisplayAmt_pamjs();
  1827. }
  1828. //정산용 계산(수납에 계산과 동일하나 루틴 정리)
  1829. function fCalcflagNCalculate(param){
  1830. //기존내역 clear
  1831. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  1832. model.copynode("/root/send/s_opmi" , "/root/node_bk/send/s_opmi");
  1833. model.copynode("/root/send/s_oscl" , "/root/node_bk/send/s_oscl");
  1834. model.copynode("/root/send/s_actr" , "/root/node_bk/send/s_actr");
  1835. model.copynode("/root/hidden/rcv1/h_opmi" , "/root/node_bk/hidden/rcv1/h_opmi");
  1836. removeChildren("/root/send/s_otpt/otpt");
  1837. removeChildren("/root/send/s_actr/actr");
  1838. //체크된 외래등록내역 copy
  1839. var iSelRow = 0;
  1840. for (var iRow = 1; iRow<= grd_calcflagn.rows ; iRow++) {
  1841. if (model.getValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]/otpt_checkflag")=="true") {
  1842. model.setValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]/otpt_calcactflag","2");//계산수행구분(1:접수, 2:진료후수납)
  1843. model.setValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]/otpt_calcgubn",model.getValue("/root/hidden/calcgubn"));// 계산구분(Y: 계산, N:가계산)
  1844. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]","before");
  1845. iSelRow++;
  1846. }
  1847. }//End for grd_calcflagn
  1848. for (var iRow = 1; iRow<= grd_eactotpt.rows ; iRow++) {
  1849. if (model.getValue("/root/main/baseinfo/otpt_eactotpt/otpt["+iRow+"]/otpt_checkflag")=="true") {
  1850. model.setValue("/root/main/baseinfo/otpt_eactotpt/otpt["+iRow+"]/otpt_calcactflag","2");//계산수행구분(1:접수, 2:진료후수납)
  1851. model.setValue("/root/main/baseinfo/otpt_eactotpt/otpt["+iRow+"]/otpt_calcgubn",model.getValue("/root/hidden/calcgubn"));// 계산구분(Y: 계산, N:가계산)
  1852. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_eactotpt/otpt["+iRow+"]","before");
  1853. iSelRow++;
  1854. }
  1855. }//End for grd_eactotpt
  1856. //실시정산에 실시내역
  1857. for (var cnt = 1; cnt<= getNodesetCount("/root/main/baseinfo/actlist/actr/actr_pid") ; cnt++) {
  1858. copyNodeListType("/root/send/s_actr","/root/main/baseinfo/actlist/actr["+cnt+"]","before");
  1859. }//End for grd_Eactlist
  1860. if (iSelRow == 0) {
  1861. messageBox("선택된 내역이","I004");//I004=없습니다
  1862. return;
  1863. }
  1864. var ptin_insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind"); //보험유형
  1865. var ptin_suppkind = model.getValue("/root/main/outrgst/ptin/ptin_suppkind"); //보조유형
  1866. var ptin_suppkindresn = model.getValue("/root/main/outrgst/ptin/ptin_suppkindresn"); //보조유형사유
  1867. var ptin_fromdd = model.getValue("/root/main/outrgst/ptin/ptin_fromdd"); //시작일자
  1868. var ptin_todd = model.getValue("/root/main/outrgst/ptin/ptin_todd"); //종료일자
  1869. if (ptin_insukind == gsInsu_JaboKind || ptin_insukind == gsInsu_SanJae || ptin_insukind == gsInsu_GongSang) {
  1870. //자보
  1871. if (ptin_insukind == gsInsu_JaboKind) {
  1872. model.setValue("/root/main/outrgst/ptin/ptin_insucd" ,model.getValue("/root/main/outrgst/aipm/aipm_insucmpycd")); //보험회사코드
  1873. }
  1874. }else{
  1875. var vArrayInsu = new Array(model.getValue("/root/main/outrgst/ptin/ptin_insukind")
  1876. ,model.getValue("/root/main/outrgst/ptin/ptin_suppkind")
  1877. ,model.getValue("/root/main/outrgst/ptin/ptin_suppkindresn")
  1878. ,model.getValue("/root/main/outrgst/ptin/ptin_insucd")
  1879. ,model.getValue("/root/main/outrgst/ptin/ptin_insuno")
  1880. ,model.getValue("/root/main/outrgst/ptin/ptin_insdnm")
  1881. ,model.getValue("/root/main/outrgst/ptin/ptin_insdrela")
  1882. ,model.getValue("/root/main/outrgst/ptin/ptin_insdrrgstno1")
  1883. ,model.getValue("/root/main/outrgst/ptin/ptin_insdrrgstno2")
  1884. ,model.getValue("/root/main/outrgst/ptin/ptin_fromdd")
  1885. ,model.getValue("/root/main/outrgst/ptin/ptin_todd")
  1886. );
  1887. var vArrayCtrl = new Array("cmb_insukind"
  1888. ,"cmb_suppkind"
  1889. ,"cmb_suppkindresn"
  1890. ,"ipt_insucd"
  1891. ,"ipt_insuno"
  1892. ,"ipt_insdnm"
  1893. ,"cmb_insdrela"
  1894. ,"ipt_insdrrgstno1"
  1895. ,"ipt_insdrrgstno2"
  1896. ,"ipt_fromdd"
  1897. ,"ipt_todd"
  1898. );
  1899. if(fInsuInfoVeri(vArrayInsu, vArrayCtrl) == false){
  1900. return;
  1901. }
  1902. //보험정보 체크에 의해 재설정된 정보 세팅
  1903. model.setValue("/root/main/outrgst/ptin/ptin_insukind" , vArrayInsu[0]);
  1904. model.setValue("/root/main/outrgst/ptin/ptin_suppkind" , vArrayInsu[1]);
  1905. model.setValue("/root/main/outrgst/ptin/ptin_suppkindresn" , vArrayInsu[2]);
  1906. model.setValue("/root/main/outrgst/ptin/ptin_insucd" , vArrayInsu[3]);
  1907. model.setValue("/root/main/outrgst/ptin/ptin_insuno" , vArrayInsu[4]);
  1908. model.setValue("/root/main/outrgst/ptin/ptin_insdnm" , vArrayInsu[5]);
  1909. model.setValue("/root/main/outrgst/ptin/ptin_insdrela" , vArrayInsu[6]);
  1910. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1" , vArrayInsu[7]);
  1911. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2" , vArrayInsu[8]);
  1912. model.setValue("/root/main/outrgst/ptin/ptin_fromdd" , vArrayInsu[9]);
  1913. model.setValue("/root/main/outrgst/ptin/ptin_todd" , vArrayInsu[10]);
  1914. }
  1915. //정액/인공신장 세팅 추가..
  1916. //보호정신과,보호인공신장+장애,인공신장에 따라 수가계산방법 세팅(P/N) => 없앰
  1917. var insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  1918. var suppkind = model.getValue("/root/main/outrgst/ptin/ptin_suppkind");
  1919. for(var i=1; i<=iSelRow; i++){
  1920. var reqdeptno = model.getValue("/root/init/basecdlist/orddeptcd[ cdid = '" + model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_orddeptcd") + "' ]/reqdeptno");
  1921. if( insukind == gsInsu_BoHo1 || insukind == gsInsu_BoHo2 ){
  1922. //if( suppkind == gsSupp_INGONG || suppkind == gsSupp_BOKMAK ){
  1923. if( suppkind == gsSupp_INGONG ){ //복막관류술은 제외 2007.10.18
  1924. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","O"); //인공신장 세팅
  1925. }else if( reqdeptno == "03" && suppkind == gsSupp_JSJA){
  1926. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","P"); //정신과 정액 세팅
  1927. }else{
  1928. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","N"); //개별수가 세팅
  1929. }
  1930. }else{
  1931. model.setValue("/root/send/s_otpt/otpt[" + i + "]/otpt_calcmthdflag","N"); //개별수가 세팅
  1932. }
  1933. }//for
  1934. //보험정보 copy
  1935. fptinBackUp(); //보험정보 _org 에 백업44
  1936. model.copyNode("/root/send/ptin","/root/main/outrgst/ptin");
  1937. //환자기본정보 세팅
  1938. model.setValue("/root/send/pid", model.getValue("/root/main/patinfo/patinfolist/pid"));
  1939. model.setValue("/root/send/brthdd", model.getValue("/root/main/patinfo/patinfolist/brthdd"));
  1940. model.setValue("/root/send/rrgstno1", model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  1941. model.setValue("/root/send/rrgstno2", model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  1942. model.setValue("/root/send/sessuserid", model.getValue("/root/hidden/session/userid"));
  1943. model.setValue("/root/send/workgubn", model.getValue("/root/temp3/workgubn"));
  1944. model.setValue("/root/send/gubun", param);
  1945. var otptCnt = getNodesetCount("/root/send/s_otpt/otpt/otpt_pid");
  1946. //계산할 내역이 1건이면, 접수상세정보의 변경건을 반영한다.
  1947. if (parseInt(otptCnt) == 1) {
  1948. model.setValue("/root/send/s_otpt/otpt/otpt_ordreqformflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordreqformflag")); //진료의뢰제출구분
  1949. model.setValue("/root/send/s_otpt/otpt/otpt_specordyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_specordyn")); //선택진료
  1950. model.setValue("/root/send/s_otpt/otpt/otpt_medamtestmyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn")); //진찰료산정여부
  1951. model.setValue("/root/send/s_otpt/otpt/otpt_medamtfreeresn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn")); //진찰료산정사유
  1952. model.setValue("/root/send/s_otpt/otpt/otpt_fsexamflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_fsexamflag")); //초재진구분
  1953. model.setValue("/root/send/s_otpt/otpt/otpt_fsexammanlyn" , chk_fsexammanlyn.value); //초재진수동부여여부
  1954. model.setValue("/root/send/s_otpt/otpt/otpt_handicaprbookpossnyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn")); //장애인수첩소지여부
  1955. model.setValue("/root/send/s_otpt/otpt/otpt_disccd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_disccd")); //계정감면
  1956. model.setValue("/root/send/s_otpt/otpt/otpt_hosoutexptresncd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_hosoutexptresncd")); //의약분업예외코드
  1957. model.setValue("/root/send/s_otpt/otpt/otpt_etcordflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag")); //기타진료구분
  1958. model.setValue("/root/send/s_otpt/otpt/otpt_clincstdyacptflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_clincstdyacptflag")); //임상미수구분
  1959. //model.setValue("/root/send/s_otpt/otpt/otpt_rareobstflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag")); //희귀난치
  1960. model.setValue("/root/send/s_otpt/otpt/otpt_ownbflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag")); //본인부담구분
  1961. }
  1962. for(var a=1; a <=otptCnt; a++) {
  1963. model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_ordreqformflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordreqformflag")); //진료의뢰 수급절차
  1964. model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_handicaprbookpossnyn" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn")); //장애인수첩소지여부
  1965. model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_disccd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_disccd")); //계정감면
  1966. //model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_rareobstflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag")); //희귀난치
  1967. model.setValue("/root/send/s_otpt/otpt["+a+"]/otpt_ownbflag" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag")); //본인부담구분
  1968. }
  1969. //================================================================
  1970. //멀티계산 시작
  1971. //================================================================
  1972. //messageBox("계산할 내역은"+getNodesetCount("/root/send/s_otpt/otpt/otpt_pid")+ "건 입니다" ,"I999");//E008=입니다
  1973. //계산호출
  1974. //계산 성공시, 수납할 금액 조회
  1975. if(submit("TXPAO00101")){
  1976. //성공하여 oscl에 변화가 있을시 상태변경 => 미수납으로 세팅
  1977. if(getNodesetCount("/root/hidden/rcv1/h_oscl/oscl/oscl_pid") > 0 ) {
  1978. for (var iCount = 1; iCount<= grd_calcflagn.rows ; iCount++) {
  1979. if(model.getValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iCount+"]/otpt_checkflag")=="true") {
  1980. model.copynode("/root/main/baseinfo/otpt_calcflagn/otpt["+iCount+"]" , "/root/hidden/rcv1/otpt_calcflagn/otpt");
  1981. model.removenode("/root/hidden/rcv1/otpt_calcflagn/otpt");
  1982. }
  1983. }
  1984. for (var iCount = 1; iCount<= grd_eactotpt.rows ; iCount++) {
  1985. if(model.getValue("/root/main/baseinfo/otpt_eactotpt/otpt["+iCount+"]/otpt_checkflag")=="true") {
  1986. model.copynode("/root/main/baseinfo/otpt_eactotpt/otpt["+iCount+"]" , "/root/hidden/rcv1/otpt_eactotpt/otpt");
  1987. model.removenode("/root/hidden/rcv1/otpt_eactotpt/otpt");
  1988. }
  1989. }
  1990. for (var iCount = 1; iCount<= getNodesetCount("/root/main/outrgst/m_otpt/otpt/otpt_pid") ; iCount++) {
  1991. if (model.getValue("/root/main/outrgst/m_otpt/otpt["+iCount+"]/otpt_checkflag")=="true") {
  1992. model.setValue("/root/main/outrgst/m_otpt/otpt["+iCount+"]/otpt_calcflag" ,"S");
  1993. model.setValue("/root/main/outrgst/m_otpt/otpt["+iCount+"]/otpt_rollbackyn","Y");
  1994. }
  1995. }
  1996. if (model.getValue("/root/temp3/workgubn") == "E"){
  1997. model.copyNode("/root/main/outrgst/m_oscl" , "/root/hidden/rcv1/h_oscl");
  1998. grd_Eoscllist.refresh();
  1999. setTree(grd_Eoscllist, 0, 0, true);
  2000. }
  2001. }
  2002. grd_calcflagn.rebuild();
  2003. grd_eactotpt.rebuild();
  2004. fSetOrdAmt();
  2005. }
  2006. fEtcCheck("계산");
  2007. fServerCheckMsg("계산");
  2008. }//End function fCalcflagNCalculate()
  2009. //수납
  2010. function fReceipt(){
  2011. if(fBrthddVeri(model.getValue("/root/main/patinfo/patinfolist/brthdd"),ipt_brthdd) == false) return; //DUR관련 생년월일체크
  2012. model.setFocus("ipt_paypsnamt");
  2013. fopmi_removemask();
  2014. /*
  2015. * 자보환자 보험사코드 필수입력 체크
  2016. */
  2017. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  2018. for(var i=1; i<=vOpmi_count; i++){
  2019. //자보 - 전액본인부담 이외의 경우, 보험사코드가 없으면 수납처리 불가능하도록 제어 추가 by 조중래 20130705
  2020. //자보 환자 중 치과위수탁으로 접수된 환자는 보험사코드 확인 없이 통과 되도록 수정(이정택 20160920)
  2021. if(model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_insukind") == "31" && (model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_suppkind") != "01" && model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_suppkind") != "55")){
  2022. //해당 접수건에 보험사코드가 없는 경우
  2023. if((model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_insucd") == "" || model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_insucd") == "-")){
  2024. messageBox("해당 접수건에 보험사코드가 설정되지 않았습니다. " + model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_insucd") + "\r\n자보정보를 확인하십시오.", "C000");
  2025. return false;
  2026. }
  2027. //해당 접수건에 지불보증번호가 없는 경우
  2028. if(model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_paygrntnocnt") == 0){
  2029. messageBox("해당 접수일자에 지불보증번호가 등록되어있지 않습니다. " + model.getValue("/root/send/s_otpt/otpt[" + i + "]/otpt_orddd") + "\r\n자보정보를 확인하십시오.", "C000");
  2030. return false;
  2031. }
  2032. }
  2033. }
  2034. /*
  2035. * 감면코드(새마을금고) 체크
  2036. */
  2037. var vOtpt_count = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt/otpt_pid");
  2038. var vOtptGrid = "/root/hidden/rcv1/sum_otpt/otpt[";
  2039. /*
  2040. if(getNodesetCount("/root/hidden/rcv1/m_otpt/otpt/otpt_pid") > 0){
  2041. vOtpt_count = getNodesetCount("/root/hidden/rcv1/m_otpt/otpt/otpt_pid");
  2042. vOtptGrid = "/root/hidden/rcv1/m_otpt/otpt[";
  2043. }else{
  2044. vOtpt_count = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt/otpt_pid");
  2045. vOtptGrid = "/root/hidden/rcv1/sum_otpt/otpt[";
  2046. }
  2047. */
  2048. var disccd = "";
  2049. var medfeeyn = ""; //진찰료지원여부
  2050. /*
  2051. 체크 순서 변경(과거일자부터 미래일자로 체크)
  2052. for(var i=1; i<=vOtpt_count; i++){
  2053. */
  2054. for(var i=vOtpt_count; i>=1; i--){
  2055. disccd = model.getValue(vOtptGrid + i + "]/otpt_disccd");
  2056. if(disccd == "E140" || disccd == "E150" || disccd == "E155" || disccd == "E156"){
  2057. messageBox("새마을금고 감면코드는 수납 하실 수 없습니다.", "E999", "");
  2058. return;
  2059. }
  2060. //2017/12/21 심층진찰 수납시 초재진여부 체크하여 블럭킹 처리(이정택)
  2061. var otpt_insukind = model.getValue(vOtptGrid + i + "]/otpt_insukind");
  2062. var otpt_etcordflag = model.getValue(vOtptGrid + i + "]/otpt_etcordflag");
  2063. var otpt_fsexamflag = model.getValue(vOtptGrid + i + "]/otpt_fsexamflag");
  2064. if(otpt_insukind!='11' && otpt_etcordflag=='U'){
  2065. messageBox("심층진찰은 환자의 자격이 건보만 가능합니다.", "E999", "");
  2066. return;
  2067. }
  2068. if(otpt_etcordflag=='U' && !(otpt_fsexamflag=='F' || otpt_fsexamflag=='D')){
  2069. messageBox("심층진찰은 과초/병초 환자만 가능합니다.", "E999", "");
  2070. return;
  2071. }
  2072. //2017/12/21 심층진찰 수납시 초재진여부 체크하여 블럭킹 처리(이정택)
  2073. /*
  2074. * 임상시험정보 등록여부 확인
  2075. * 보험유형(71 임상시험), 보조유형(01 전액본인부담)
  2076. */
  2077. if(model.getValue(vOtptGrid + i + "]/otpt_insukind") == "71" && model.getValue(vOtptGrid + i + "]/otpt_suppkind")!= "01"){
  2078. fGetStdyPatInfo(model.getvalue("/root/hidden/rcv1/sum_otpt/otpt/otpt_pid"), model.getValue(vOtptGrid + i + "]/otpt_orddd"));
  2079. //임상연구대상이 아닌경우
  2080. if(getNodesetCount("/root/hidden/temp/stdy/medfeeyn") < 1 ){
  2081. messageBox(model.getValue(vOtptGrid + i + "]/otpt_orddd") + " 임상연구 대상환자가 아닙니다. \n임상 대상환자 인지 확인하세요. 임상 수납할 수 없습니다.", "E999", "");
  2082. return;
  2083. }
  2084. }
  2085. //실시정산이 아닌 경우 체크하도록 수정 - 20131115
  2086. if(model.getValue("/root/temp3/workgubn") != "E"){
  2087. //의료급여환자 감면코드(F002) 강제설정하도록 수정 - 20131004 조중래
  2088. if(model.getValue(vOtptGrid + i + "]/otpt_orddd") >= '20131001'
  2089. && (model.getValue(vOtptGrid + i + "]/otpt_insukind") == "21" || model.getValue(vOtptGrid + i + "]/otpt_insukind") == "22")
  2090. && disccd == '-'){
  2091. alert("의료급여1/2종 환자의 경우 2013년 10월 1일 이후 진료는 \r\n선택진료비 50% 감면코드를 반드시 설정해야합니다.");
  2092. return;
  2093. //의료급여환자 이외에 F002는 적용불가
  2094. }else if((model.getValue(vOtptGrid + i + "]/otpt_insukind") != "21" && model.getValue(vOtptGrid + i + "]/otpt_insukind") != "22")
  2095. && disccd == 'F002'){
  2096. alert("선택진료비 50% 감면코드는 의료급여1/2종의 경우에만 적용가능합니다.\r\n감면코드를 재설정하십시요. ");
  2097. return;
  2098. }
  2099. //미용목적성형의 경우 감면정보 적용여부 점검 by 조중래 20140217
  2100. if(model.getValue(vOtptGrid + i + "]/otpt_insukind") == "51" && model.getValue(vOtptGrid + i + "]/otpt_suppkind") == "85"){
  2101. //모발이식센터이외의 경우 블러킹
  2102. if(disccd != '-' && model.getValue(vOtptGrid + i + "]/otpt_orddeptcd") != "2450000000"){
  2103. alert("미용목적성형의 경우, 감면적용이 불가능합니다.");
  2104. return false;
  2105. }
  2106. //모발이식센터의 경우라도 모발관련(PK059) 코드가 아니면 블러킹
  2107. if(disccd != '-' && model.getValue(vOtptGrid + i + "]/otpt_orddeptcd") == "2450000000" && model.getValue("/root/init/basecdlist/PK059[cdid='" + disccd + "']/cdnm") != "Y"){
  2108. alert("모발이식센터의 경우 모발이식관련 감면코드만 적용가능합니다.\r\n(원무공통코드 - PK059)");
  2109. return false;
  2110. }
  2111. }
  2112. // 2017/03/13 보조유형을 전액 본인부담을 선택시 보조 사유가 없다면 블럭킹 처리(이정택)
  2113. var orddd = model.getValue(vOtptGrid + i + "]/otpt_orddd");
  2114. var suppkind = model.getValue(vOtptGrid + i + "]/otpt_suppkind");
  2115. var suppkindresn = model.getValue(vOtptGrid + i + "]/otpt_suppkindresn");
  2116. var orddeptcd = model.getValue(vOtptGrid + i + "]/otpt_orddeptcd");
  2117. var orddeptnm = model.getValue("/root/init/basecdlist/orddeptcd[cdid='"+orddeptcd +"']/cdnm");
  2118. if(suppkind == '01' && (isNull(suppkindresn) || suppkindresn=='-')){
  2119. messageBox("보조유형이 전액 본인부담일경우에는 보조사유를 선택하셔야 합니다.["+ orddd + "-" + orddeptnm +"]", "E999");
  2120. cmb_suppkindresn.disabled = false;
  2121. model.setFocus("cmb_suppkindresn");
  2122. return false;
  2123. }
  2124. // 2017/03/13 보조유형을 전액 본인부담을 선택시 보조 사유가 없다면 블럭킹 처리(이정택)
  2125. }
  2126. }
  2127. // //특이환자조회 (실사용)
  2128. // model.makeValue("/root/hidden/rcv/patinfo/checkyn", "");
  2129. // if(submit("TRPMC06514")){
  2130. // //특이환자여부 (Y:특이환자)
  2131. // if(model.getValue("/root/hidden/rcv/patinfo/checkyn") == "Y"){
  2132. // messageBox("\r\n업무처리시 오류가 발생하였습니다!!!\r\n\r\n해당 내용의 처리는 원무팀(6178)으로 문의 및 안내하시기 바랍니다.", "C000");
  2133. // return;
  2134. // }
  2135. // }
  2136. if (vOpmi_count <=0) {
  2137. messageBox("수납할 내역이 존재하지 않습니다.","E999","");
  2138. return;
  2139. }
  2140. if (ipt_ordreqformflag.value == "" || ipt_ordreqformflag.value == "-") {
  2141. messageBox("수급절차가 존재하지않습니다. 수급절차 입력하시고 재계산후 진행하시기 바랍니다.","E999","");
  2142. return;
  2143. }
  2144. if (model.getvalue("/root/main/outrgst/m_etc/discreducd") == "" && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt") != "0") {
  2145. messageBox("임의감면 코드가 없습니다.","E999","");
  2146. return;
  2147. }
  2148. if (model.getvalue("/root/main/outrgst/m_etc/uncocd") == "" && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt") != "0") {
  2149. messageBox("미수코드가 없습니다.","E999","");
  2150. return;
  2151. }
  2152. if (model.getvalue("/root/main/outrgst/m_etc/uncocd") == "A01" && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt") != "0") {
  2153. //일반미수 권한 체크
  2154. getRcptuserInfo(); //수납마감 사용자관리 조회
  2155. if(model.getValue("/root/rcptuser/rcptuserinfo/uncoyn") != "Y"){
  2156. messageBox("일반미수 발생 권한이 없습니다.","E999","");
  2157. return;
  2158. }
  2159. }
  2160. if (model.getvalue("/root/main/outrgst/m_etc/uncocls") == "" && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt") != "0") {
  2161. messageBox("미수코드(분류)가 없습니다.","E999","");
  2162. return;
  2163. }
  2164. if (model.getValue("/root/init/option/autocashrcptyn") == "Y") {
  2165. if (model.getvalue("/root/init/basecdlist/P0022[cdid='161']/cdnm") == "" || model.getvalue("/root/init/basecdlist/P0022[cdid='161']/cdnm") == null) {
  2166. messageBox("현금영수증 최소금액이 등록되어 있지 않습니다. 전산팀에 문의주십시오. 공통코드[P0022/161]","I999","");
  2167. return;
  2168. }
  2169. }
  2170. if (model.getvalue("/root/option/opt_cardck") != "Y") {
  2171. model.setvalue("/root/option/opt_cardck", "N");
  2172. }
  2173. //필수사항과 입력타입을 체크한다.
  2174. if(!isRequiredControls("cmb_paypsnflag")) return;
  2175. model.copynode("/root/send/s_opmi", "/root/node_bk/send/s_opmi");
  2176. model.removeNodeset("/root/send/s_opmi/opmi");
  2177. //납부자 납입금 체크
  2178. var vRcptamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt")) +
  2179. parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt")) +
  2180. parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt"));
  2181. if ( vRcptamt != parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) ) {
  2182. messageBox("납부할 금액과 수납금(카드+현금+통장입금)이 일치하지 않습니다.","E999","");
  2183. return;
  2184. }
  2185. if(model.getvalue("/root/init/option/cardyn") == "Y" && model.getvalue("/root/option/opt_cardck") == "Y" && model.getvalue("/root/main/outrgst/m_etc/cardno") != ""){
  2186. messageBox("승인완료가 체크되어 있으면서 카드번호가 있습니다.","E999","");
  2187. return;
  2188. }
  2189. var van_kind = model.getvalue("/root/init/basecdlist/P0032[cdid='200']/cdnm");
  2190. if(van_kind!='KOCES_IC'){
  2191. if(model.getvalue("/root/init/option/cardyn") == "Y" && model.getvalue("/root/option/opt_cardck") != "Y" && model.getvalue("/root/main/outrgst/m_etc/cardno") == ""){
  2192. messageBox("카드승인번호가 비어있습니다.","E999","");
  2193. return;
  2194. }
  2195. }
  2196. //2017/01/25 영문영수증 출력시 영문이름이 미존재한다면 수납 블럭킹 처리(이정택)
  2197. var engnm = model.getValue("/root/main/patinfo/patinfolist/engnm");
  2198. var engreceipt = model.getValue("/root/init/option/engreceipt");
  2199. if(engreceipt == 'Y' && (engnm=='-' || isNull(engnm))){
  2200. messageBox("영문영수증에 출력될 영문 이름이 없습니다.\n영문 이름 등록 후 진행 부탁드립니다.", "E");
  2201. return;
  2202. }
  2203. //2017/01/25 영문영수증 출력시 영문이름이 미존재한다면 수납 블럭킹 처리(이정택)
  2204. //실제승인한 카드금액과 화면 카드금액이 맞는지 비교
  2205. // if(model.getvalue("/root/option/opt_cardck") != "Y") {
  2206. // var card_innrtretyn = getNodesetCount("/root/send/s_card/card[card_innrtretyn='N']");
  2207. // if( card_innrtretyn > 0) {
  2208. // var s_card_amt = 0;
  2209. // var opmi_cardamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt"));
  2210. // var opmi_precardamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_precardamt"));
  2211. // var s_card_cnt = getNodesetCount("/root/send/s_card/card/card_pid");
  2212. //
  2213. // for (var a=1; a <= s_card_cnt ; a++) {
  2214. // if(model.getvalue("/root/send/s_card/card["+a+"]/card_innrtretyn") == "N") {
  2215. // s_card_amt = parseInt(model.getvalue("/root/send/s_card/card["+a+"]/card_cardamt")) + s_card_amt;
  2216. // }
  2217. // }
  2218. // //s_card_amt = s_card_amt - opmi_precardamt;
  2219. // if(s_card_amt != opmi_cardamt){
  2220. // messageBox("실제카드승인하신 금액("+s_card_amt+")과 화면에 카드결제액("+opmi_cardamt+")이 일치하지않습니다.\n카드결제팝업에서 승인하신금액을 확인하십시요.","E999","");
  2221. // return;
  2222. // }
  2223. // }
  2224. // }
  2225. //실제승인 카드비교 끝
  2226. //실제승인한 현금승인금액보다 화면 현금액이 더큰지 비교
  2227. if(getNodesetCount("/root/send/s_cash/cash[cash_innrtretyn='N']") > 0) {
  2228. var s_cash_amt = 0;
  2229. var opmi_cashamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt"));
  2230. var opmi_precashamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_precashamt"));
  2231. var s_cash_cnt = getNodesetCount("/root/send/s_cash/cash/cash_pid");
  2232. for (var a=1; a <= s_cash_cnt ; a++) {
  2233. if(model.getvalue("/root/send/s_cash/cash["+a+"]/cash_innrtretyn") == "N") {
  2234. s_cash_amt = parseInt(model.getvalue("/root/send/s_cash/cash["+a+"]/cash_cashamt")) + s_cash_amt;
  2235. }
  2236. }
  2237. if(s_cash_amt > opmi_cashamt) {
  2238. if( messageBox("실제 현금승인하신 금액("+s_cash_amt+")이 화면에 현금액("+opmi_cashamt+")보다 큽니다.\n\n현금승인팝업에서 승인하신금액을 확인하십시요. \n\n수납진행 계속하시겠습니까?","Q999","") != 6 ){
  2239. return;
  2240. }
  2241. }
  2242. }
  2243. //실제승인 현금비교 끝
  2244. /*
  2245. * card_innrtretyn 설정에 문제 있는걸로 판단 체크문 수정 - 20130722
  2246. if(model.getValue("/root/init/option/cardyn") == "Y" && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt") == "0" && card_innrtretyn == 0){
  2247. */
  2248. if(model.getValue("/root/init/option/cardyn") == "Y" && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt") == "0"){
  2249. messageBox("수납방법이 카드인데 카드결제액이 0원입니다.","E999");
  2250. return;
  2251. }
  2252. if(model.getValue("/root/init/option/cardyn") == "N" && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt") == "0"){
  2253. messageBox("수납방법이 현금영수증인데 현금금액이 0원입니다.","E999");
  2254. return;
  2255. }
  2256. //카드금액이 (-)여서 재승인해야 할 경우, 팝업으로 카드정보 입력한 상태 - 카드내역 노드가 있는지 체크 필요
  2257. if (parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt")) < 0 && model.getvalue("/root/option/opt_cardck") != "Y") {
  2258. //20121228 신규추가
  2259. //카드승인 프로그램 자동 오픈
  2260. messageBox("카드 환불입니다. \n카드승인 취소하시고, [승인완료]를 체크하신 후 수납해 주세요!!","E999","");
  2261. fOpenCardPopUp2();
  2262. return;
  2263. // if(model.getValue("/root/etc/cardvanamt") == "" || model.getValue("/root/etc/cardvanamt") == "승인:0") {
  2264. // messageBox("카드금액이 (-)입니다. 현금수납하시거나 금액을 다시한번 확인하여 주십시요","E999","");
  2265. // return;
  2266. // }
  2267. }
  2268. if (parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt")) < 0 && model.getvalue("/root/option/opt_cardck") == "Y") {
  2269. if( messageBox("카드환불입니다. 계속 진행하시겠습니까?", "Q999", "") != 6 ){
  2270. return;
  2271. }
  2272. }
  2273. //현금승인금액 체크
  2274. if ( model.getValue("/root/init/option/cardyn") == 'N' ) {
  2275. var vcardno_length = (model.getValue("/root/main/outrgst/m_etc/cardno")).length;
  2276. if (vcardno_length == 0) {
  2277. messageBox("현금영수증 승인정보를 입력하십시오.","E999","");
  2278. model.setFocus("ipt_cardno");
  2279. return;
  2280. }
  2281. }
  2282. //멀티수납은 단일수납만 가능
  2283. if (vOpmi_count != 1) {
  2284. //카드
  2285. if ( ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt")) >0 ) &&
  2286. ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) !=
  2287. parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt")) )
  2288. ){
  2289. messageBox("멀티수납시에는 부분카드 수납을 하실수 없습니다.","E999");
  2290. return;
  2291. }
  2292. //통장입금
  2293. if ( ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt")) >0 ) &&
  2294. ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) !=
  2295. parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt")) )
  2296. ){
  2297. messageBox("멀티수납시에는 부분통장입금 수납을 하실수 없습니다.","E999");
  2298. return;
  2299. }
  2300. //현금승인
  2301. if ( ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt")) >0 ) &&
  2302. ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) !=
  2303. parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt")) )
  2304. ){
  2305. messageBox("멀티수납시에는 부분현금영수증 수납을 하실수 없습니다.","E999");
  2306. return;
  2307. }
  2308. //미수
  2309. if ( ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt")) >0 ) &&
  2310. ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) != 0
  2311. )
  2312. ){
  2313. messageBox("멀티수납시에는 부분미수 발생을 하실수 없습니다.","E999");
  2314. return;
  2315. }
  2316. //임의감액
  2317. if ( ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt")) >0 ) &&
  2318. ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) != 0
  2319. )
  2320. ){
  2321. messageBox("멀티수납시에는 부분 임의감액 발생을 하실수 없습니다.","E999");
  2322. return;
  2323. }
  2324. //납입금
  2325. if ( ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_paydepoamt")) >0 ) &&
  2326. ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) !=
  2327. parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_paydepoamt")) )
  2328. ){
  2329. messageBox("멀티수납시에는 부분금액으로 납입금 입력을 하실수 없습니다.","E999");
  2330. return;
  2331. }
  2332. //선수금대체
  2333. if ( ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt")) >0 ) &&
  2334. ( parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) != 0
  2335. )
  2336. ){
  2337. messageBox("멀티수납시에는 부분 선수금대체 발생을 하실수 없습니다.","E999");
  2338. return;
  2339. }
  2340. //계정할인과 임의감면 동시에 불가
  2341. if ((parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_discamt")) != 0) &&
  2342. (parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt")) != 0)
  2343. ) {
  2344. messageBox("멀티수납시에는 할인적용 후 금액을 임의감액으로 처리할 수 없습니다. 할인과 임의감액은 단일수납시 적용하십시요","E999","");
  2345. return;
  2346. }
  2347. }
  2348. //2011-11-30 장기이식환자 기증자의 경우 수여자 보험유형으로 수납하기 위해 기증자 체크박스 추가
  2349. //기증자 체크되면 중증, 산정특례등을 체크하지 않는다.
  2350. if( model.getValue("/root/option/otp_dnoryn") == 'Y' ){ //기증자 체크
  2351. var retDnorYN = messageBox("기증자로 체크되어 있습니다. 기증자가 맞습니까?", "Q999", "");
  2352. if( retDnorYN != '6' ){
  2353. return;
  2354. }
  2355. }
  2356. // 본인 일부 부담액보다 건유비가 더 클 경우 수납 제한
  2357. // 본인 부담액보다 건유비 승인금액이 더 클때를 DB값으로 제어하도록 수정(치과요청_20160729)
  2358. if(model.getValue("/root/init/comncdlist/P6589list/P6589[cdid='01']/cdnm")=='Y'){
  2359. if (parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt")) > parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payownbamt"))) {
  2360. messageBox("본인 일부 부담액보다 건유비 금액이 더 큽니다.\n건유비를 다시 청구한 후 수납해 주십시오.", "E999", "");
  2361. return;
  2362. }
  2363. }
  2364. //======================================================================================
  2365. // hidden 에 있는 내역 send 로 copy
  2366. copyNodesetType("/root/send/s_opmi", "/root/hidden/rcv1/h_opmi","replace");
  2367. //======================================================================================
  2368. var vCurrentTime = getCurrentTime(); //수납시간:현재시간
  2369. var mopmi_cardamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt"));
  2370. var mopmi_cashamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt"));
  2371. var mopmi_onlineamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt"));
  2372. var mopmi_rcptexptamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"));
  2373. var mopmi_rcptexptamt_org = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt_org"));
  2374. var mopmi_reduamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt"));
  2375. var mopmi_uncoamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt"));
  2376. var mopmi_mdlrcptamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt"));
  2377. var mopmi_pregdmndamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt"));
  2378. var mopmi_server_rcptamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_server_rcptamt"));
  2379. var sopmi_rcptexptamt = 0;
  2380. /////////////////////////////opmi 생성에 직접 관여! 주의요망!/////////////////////////////////////////
  2381. for(var i=1; i <= vOpmi_count; i++){
  2382. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptdd" ,getCurrentDate()); //영수일자:현재날짜
  2383. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptexecdd" ,getCurrentDate()); //수납일자:현재날짜
  2384. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcpttm" ,vCurrentTime); //수납시간:현재시간
  2385. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptrid" ,model.getValue("/root/hidden/session/userid")); //수납자
  2386. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptstat" ,"Y");
  2387. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_uncorcptflag" ,"1"); //미수정산구분 1:일반(미수생성), 2:미수입금 3: 대손처리
  2388. //2011-11-30 기증자 체크로 수납된 내역 기록
  2389. if( model.getValue("/root/option/otp_dnoryn") == 'Y' ){ //기증자 체크
  2390. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_remfact" ,"기증자수납");
  2391. }
  2392. //납부자정보
  2393. model.makeValue("/root/send/s_opmi/opmi["+ i +"]/opmi_paypsnflag", model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_paypsnflag"));
  2394. model.makeValue("/root/send/s_opmi/opmi["+ i +"]/opmi_paypsnrem" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_paypsnrem"));
  2395. sopmi_rcptexptamt = model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_server_rcptamt");
  2396. if(vOpmi_count > 1 && mopmi_rcptexptamt_org != 0) {
  2397. //멀티수납은 카드,현금,온라인중 한가지 수납임
  2398. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_cardamt" , "0");
  2399. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_cashamt" , "0");
  2400. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_onlineamt" , "0");
  2401. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_paydepoamt" , "0");
  2402. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_reduamt" , "0");
  2403. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_uncoamt" , "0");
  2404. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_mdlrcptamt" , "0");
  2405. if(mopmi_cashamt == mopmi_server_rcptamt) { model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_cashamt" , sopmi_rcptexptamt);
  2406. }else if(mopmi_cardamt == mopmi_server_rcptamt) { model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_cardamt" , sopmi_rcptexptamt);
  2407. }else if(mopmi_onlineamt == mopmi_server_rcptamt) { model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_onlineamt" , sopmi_rcptexptamt);
  2408. }else if(mopmi_reduamt == mopmi_server_rcptamt) { model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_reduamt" , sopmi_rcptexptamt);
  2409. }else if(mopmi_uncoamt == mopmi_server_rcptamt) { model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_uncoamt" , sopmi_rcptexptamt);
  2410. }else if(mopmi_mdlrcptamt == mopmi_server_rcptamt) { model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_mdlrcptamt", sopmi_rcptexptamt);
  2411. };
  2412. if(mopmi_rcptexptamt == mopmi_server_rcptamt) model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_paydepoamt", sopmi_rcptexptamt);
  2413. if( ((mopmi_cardamt != mopmi_server_rcptamt) && (mopmi_cardamt != 0)) ||
  2414. ((mopmi_cashamt != mopmi_server_rcptamt) && (mopmi_cashamt != 0)) ||
  2415. ((mopmi_onlineamt != mopmi_server_rcptamt) && (mopmi_onlineamt != 0)) ||
  2416. ((mopmi_reduamt != mopmi_server_rcptamt) && (mopmi_reduamt != 0)) ||
  2417. ((mopmi_uncoamt != mopmi_server_rcptamt) && (mopmi_uncoamt != 0)) ||
  2418. ((mopmi_mdlrcptamt != mopmi_server_rcptamt) && (mopmi_mdlrcptamt != 0))
  2419. ) {
  2420. messageBox("멀티수납인데 부분수납입니다. \n멀티수납은 카드,현금,온라인,전액미수,전액감면,전액선수금중\n 1가지만 가능합니다.수납금 확인을 해주십시요.","E999");
  2421. return;
  2422. }
  2423. }
  2424. //멀티시 +,- 된 0원수납일경우 현금으로 수납처리 ex) -20000원 ,+20000원 동시수납
  2425. if(vOpmi_count > 1 && mopmi_rcptexptamt_org == 0) {
  2426. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_cardamt" ,"0");
  2427. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_cashamt" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptexptamt"));
  2428. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_onlineamt" ,"0");
  2429. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_paydepoamt" ,"0");
  2430. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_reduamt" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_reduamt"));
  2431. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_uncoamt" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_uncoamt"));
  2432. model.setValue("/root/send/s_opmi/opmi["+ i +"]/opmi_mdlrcptamt" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_mdlrcptamt"));
  2433. }
  2434. }
  2435. /////////////////////////////opmi 생성에 직접 관여! 주의요망! 끝/////////////////////////////////////////
  2436. if(vOpmi_count == 1) {
  2437. model.setValue("/root/send/s_opmi/opmi/opmi_cardamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt"));
  2438. model.setValue("/root/send/s_opmi/opmi/opmi_cashamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt"));
  2439. model.setValue("/root/send/s_opmi/opmi/opmi_onlineamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt"));
  2440. model.setValue("/root/send/s_opmi/opmi/opmi_paydepoamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"));
  2441. model.setValue("/root/send/s_opmi/opmi/opmi_reduamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt"));
  2442. model.setValue("/root/send/s_opmi/opmi/opmi_uncoamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt"));
  2443. model.setValue("/root/send/s_opmi/opmi/opmi_mdlrcptamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt"));
  2444. model.setValue("/root/send/s_opmi/opmi/opmi_bloddiscamt", model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_bloddiscamt"));
  2445. }
  2446. for(var i=1; i <= getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt/otpt_pid"); i++){
  2447. if(model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_refundyn") == "환불" && mopmi_uncoamt != 0) {
  2448. messageBox("환불 취소건에 미수금을 적용할수 없습니다.","E999");
  2449. return;
  2450. }
  2451. }
  2452. //////////////////////////////////중증체크, 당일자격조회 , 차상위 유무체크/////////////////////////////////////////////
  2453. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  2454. model.makevalue("/root/send/s_opmi/opmi/opmi_cardchk", model.getValue("/root/option/opt_cardck"));
  2455. //실시정산일때는 체크안함 차상위환자일경우 수납못하는경우 발생하므로.
  2456. if(model.getValue("/root/temp3/workgubn") != "E"){
  2457. if(!submit("TRPAO00128")){
  2458. return;
  2459. }
  2460. model.copynode("/root/hidden/rcv1/h_msg", "/root/hidden/rcv2/h_msg");
  2461. }
  2462. if(fToday_ProdCheck() == false){ return; } //YES가 false임. 자격조회하고 나서 일단 한번 멈춘다.
  2463. if(fServerCheckMsg("수납") == false){ return; }
  2464. //////////////////////////////////중증체크, 당일자격조회 , 차상위 유무체크 끝/////////////////////////////////////////////
  2465. //수납테스트 용
  2466. /*
  2467. if(messageBox("[수납테스트] 수납을 계속 진행하시겠습니까?", "Q999", "") != 6){
  2468. return;
  2469. }
  2470. */
  2471. //debugger;
  2472. //////////////////////////////////건유비 자동승인/////////////////////////////////////////////
  2473. if((model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt") != "0" || model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt") != "0")
  2474. && (model.getvalue("/root/init/basecdlist/P0032[cdid='20']/cdnm") == "Y")
  2475. && (vOpmi_count ==1)){
  2476. var bl_proc = fbtn_proc_4();
  2477. if(bl_proc == false || bl_proc == null){
  2478. //if( messageBox("수납을 계속 진행하시겠습니까?", "Q999", "") != 6 ){
  2479. return;
  2480. //}
  2481. }
  2482. }
  2483. //////////////////////////////////건유비 자동승인 끝/////////////////////////////////////////////
  2484. //////////////////////////////////카드팝업 추가/////////////////////////////////////////////
  2485. var cardvan_flag = false;
  2486. if(getNodesetCount("/root/send/s_card/card[card_innrtretyn='N']") == 0 && model.getvalue("/root/option/opt_cardck") != "Y") {
  2487. var vCardamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt"));
  2488. if(vCardamt > 0){
  2489. if(fOpenCardPopUp2("I") == false) { return; };
  2490. cardvan_flag = true;
  2491. }
  2492. for (var i=1; i <= getNodesetCount("/root/hidden/rcv1/h_card/card/card_pid") ; i++) {
  2493. copyNodeListType("/root/send/s_card","/root/hidden/rcv1/h_card/card["+ i +"]","after"); //현금결제할시 기카드를 카피해오기위해 추가
  2494. }
  2495. }
  2496. if( model.getvalue("/root/init/option/cardyn") == "Y" && model.getvalue("/root/main/outrgst/m_etc/cardno") != "" && cardvan_flag == false) {
  2497. messageBox("카드 van승인이 제대로 이루어지지 않았습니다. 승인여부를 다시 확인하여 주십시요.","E999","");
  2498. return;
  2499. }
  2500. //////////////////////////////////카드팝업 추가end/////////////////////////////////////////////
  2501. //////////////////////////////////현금승인 추가start/////////////////////////////////////////////
  2502. if(getNodesetCount("/root/send/s_cash/cash[cash_innrtretyn='N']") == 0) {
  2503. var cardyn = model.getValue("/root/init/option/cardyn");
  2504. var autocashrcptyn = model.getValue("/root/init/option/autocashrcptyn")
  2505. var vCashamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt"));
  2506. var indinstflag = model.getvalue("/root/main/outrgst/m_etc/indinstflag");
  2507. var van_baseamt = model.getvalue("/root/init/basecdlist/P0022[cdid='161']/cdnm");
  2508. //현금수납시 자동 현금영수증 처리
  2509. if(autocashrcptyn == "Y" && vCashamt >= van_baseamt){
  2510. model.setValue("/root/init/option/cardyn", "N");
  2511. if(indinstflag == "02") model.setValue("/root/main/outrgst/m_etc/indinstflag" , "00");
  2512. frdo_cardyn();
  2513. }
  2514. //30만원 이상 현금영수증 미승인 수납시 국세청 디폴트번호로 승인
  2515. if(autocashrcptyn == "N" && indinstflag == "02" && mopmi_rcptexptamt >= 300000){
  2516. model.setValue("/root/init/option/cardyn" , "N");
  2517. model.setValue("/root/main/outrgst/m_etc/cardno" , model.getvalue("/root/init/basecdlist/P0022[cdid='163']/cdnm"));
  2518. model.setValue("/root/main/outrgst/m_etc/indinstflag" , "00");
  2519. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag" , "2");
  2520. frdo_cardyn();
  2521. }
  2522. indinstflag = model.getvalue("/root/main/outrgst/m_etc/indinstflag");
  2523. if((model.getValue("/root/init/option/cardyn") == "Y" && indinstflag != "02" && vCashamt > 0) ||
  2524. (model.getValue("/root/init/option/cardyn") == "N" && indinstflag != "02" && vCashamt > 0)){
  2525. if(fOpenCashPopUp("I") == false) { return; };
  2526. }
  2527. }
  2528. if(getNodesetCount("/root/send/s_cash/cash/cash_pid") == 0 ){ //즉 이번에 현금영수증결제안한다하더라도 기현금영수증은복사한다는 의미
  2529. copyNodesetType("/root/send/s_cash", "/root/hidden/rcv1/h_cash", "replace"); //현금결제할시 기현금을 카피해오기위해 추가
  2530. }
  2531. //////////////////////////////////현금승인 추가end/////////////////////////////////////////////
  2532. //////////////////////////////////통장금액 추가start/////////////////////////////////////////////
  2533. var vOnlineamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt"));
  2534. var onln_cnt = getNodesetCount("/root/send/s_onln/onln/onln_onlineamt");
  2535. if (vOnlineamt != 0) {
  2536. if (onln_cnt <=1) {
  2537. //수납내역 별로 통장입금내역을 쪼갬
  2538. for (var i=1; i <= vOpmi_count ; i++) {
  2539. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_pid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_pid"));
  2540. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd"));
  2541. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_cretno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno"));
  2542. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd"));
  2543. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno"));
  2544. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptseqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno"));
  2545. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_seqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_seqno"));
  2546. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_instcd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_instcd"));
  2547. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptstat" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptstat"));
  2548. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_ordtype" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_ordtype"));
  2549. if(vOpmi_count > 1) {
  2550. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_onlineamt" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_onlineamt"));
  2551. }else{
  2552. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_onlineamt" , vOnlineamt);
  2553. }
  2554. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_bankcd" , model.getValue("/root/send/s_onln/onln/onln_bankcd"));
  2555. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_acntno" , model.getValue("/root/send/s_onln/onln/onln_acntno"));
  2556. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_paydd" , model.getValue("/root/send/s_onln/onln/onln_paydd"));
  2557. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_paypsnnm" , model.getValue("/root/send/s_onln/onln/onln_paypsnnm"));
  2558. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptexecdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptexecdd"));
  2559. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcpttm" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcpttm"));
  2560. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptrid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptrid"));
  2561. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_preamtyn" , "N");
  2562. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_innrtretyn" , "N");
  2563. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_remfact" , "");
  2564. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_fstrgstrid" , "");
  2565. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_fstrgstdt" , "");
  2566. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_lastupdtrid" , "");
  2567. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_lastupdtdt" , "");
  2568. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd_org"));
  2569. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_cretno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno_org"));
  2570. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddeptcd_org"));
  2571. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddrid_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddrid_org"));
  2572. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd_org"));
  2573. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno_org"));
  2574. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptseqno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno_org"));
  2575. }
  2576. }
  2577. if (onln_cnt >1) {
  2578. //수납내역 별로 통장입금내역을 쪼갬
  2579. for (var i=1; i <= onln_cnt ; i++) {
  2580. if(model.getvalue("/root/send/s_onln/onln["+i+"]/onln_innrtretyn") == "Y") continue;
  2581. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_pid" , model.getValue("/root/send/s_opmi/opmi/opmi_pid"));
  2582. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddd"));
  2583. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_cretno" , model.getValue("/root/send/s_opmi/opmi/opmi_cretno"));
  2584. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptdd" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptdd"));
  2585. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptno"));
  2586. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptseqno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptseqno"));
  2587. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_seqno" , model.getValue("/root/send/s_opmi/opmi/opmi_seqno"));
  2588. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_instcd" , model.getValue("/root/send/s_opmi/opmi/opmi_instcd"));
  2589. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptstat" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptstat"));
  2590. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_ordtype" , model.getValue("/root/send/s_opmi/opmi/opmi_ordtype"));
  2591. //if(vOpmi_count > 1) {
  2592. // model.makevalue("/root/send/s_onln/onln["+i+"]/onln_onlineamt" , model.getValue("/root/send/s_opmi/opmi/opmi_onlineamt"));
  2593. //}else{
  2594. // model.makevalue("/root/send/s_onln/onln["+i+"]/onln_onlineamt" , vOnlineamt);
  2595. //}
  2596. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_bankcd" , "01");
  2597. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_acntno" , "010-1234555");
  2598. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_paydd" , getCurrentDate());
  2599. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_paypsnnm" , "홍길동");
  2600. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptexecdd" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptexecdd"));
  2601. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcpttm" , model.getValue("/root/send/s_opmi/opmi/opmi_rcpttm"));
  2602. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptrid" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptrid"));
  2603. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_preamtyn" , "N");
  2604. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_innrtretyn" , "N");
  2605. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_remfact" , "");
  2606. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_fstrgstrid" , "");
  2607. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_fstrgstdt" , "");
  2608. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_lastupdtrid" , "");
  2609. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_lastupdtdt" , "");
  2610. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddd_org"));
  2611. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_cretno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_cretno_org"));
  2612. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd_org"));
  2613. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddrid_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddrid_org"));
  2614. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptdd_org"));
  2615. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptno_org"));
  2616. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptseqno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptseqno_org"));
  2617. }
  2618. }
  2619. // 현금영수증 승인 추가
  2620. model.setValue("/root/init/option/cardyn", "N");
  2621. frdo_cardyn();
  2622. if (!fOpenOnlinePopUp("I")) return;
  2623. }else{
  2624. copyNodesetType("/root/send/s_onln", "/root/hidden/rcv1/h_onln", "replace");
  2625. }
  2626. //////////////////////////////////통장금액 추가end/////////////////////////////////////////////
  2627. //수혈대체액
  2628. var vBloddiscamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_bloddiscamt");
  2629. if (vBloddiscamt != 0) {
  2630. var bldc_cnt = getNodesetCount("/root/send/s_bldc/bldc/bldc_pid");
  2631. if (bldc_cnt > 0) {
  2632. for(var i = 1 ; i <= bldc_cnt; i++) {
  2633. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_pid" , model.getValue("/root/send/s_opmi/opmi/opmi_pid"));
  2634. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_rcptdd" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptdd"));
  2635. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_rcptno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptno"));
  2636. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_rcptseqno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptseqno"));
  2637. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_seqno" , "0");
  2638. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_instcd" , model.getValue("/root/send/s_opmi/opmi/opmi_instcd"));
  2639. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_rcptstat" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptstat"));
  2640. //값 받아옴
  2641. //model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_ordtype" , model.getValue("/root/send/s_opmi/opmi/opmi_ordtype"));
  2642. //값 받아옴
  2643. //model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_orddd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddd"));
  2644. //값 받아옴
  2645. //model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_orddeptcd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd"));
  2646. //값 받아옴
  2647. //model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_orddrid" , model.getValue("/root/send/s_opmi/opmi/opmi_orddrid"));
  2648. //그룹,싱글코드-값 받아옴
  2649. //model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_grupcalcscorcd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddrid"));
  2650. //model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_snglcalcscorcd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddrid"));
  2651. //적용일자
  2652. //model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_appdd" ,getCurrentDate());
  2653. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_rcptexecdd" ,model.getValue("/root/send/s_opmi/opmi/opmi_rcptexecdd"));
  2654. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_rcpttm" ,model.getValue("/root/send/s_opmi/opmi/opmi_rcpttm"));
  2655. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_rcptrid" ,model.getValue("/root/send/s_opmi/opmi/opmi_rcptrid"));
  2656. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_remfact" ,"");
  2657. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_fstrgstrid" ,"");
  2658. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_fstrgstdt" ,"");
  2659. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_lastupdtrid" ,"");
  2660. model.setValue("/root/send/s_bldc/bldc[" + i + "]/bldc_lastupdtdt" ,"");
  2661. }//end for
  2662. }else{
  2663. copyNodesetType("/root/send/s_bldc", "/root/hidden/rcv1/h_bldc", "replace");
  2664. }
  2665. }
  2666. //임의감면
  2667. var vReduamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt"));
  2668. var redu_cnt = getNodesetCount("/root/send/s_dcgm/dcgm/dcgm_pid");
  2669. if (vReduamt != 0) {
  2670. if (redu_cnt <=1) {
  2671. for (var i = 1 ; i <= vOpmi_count ; i++) {
  2672. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_pid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_pid"));
  2673. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_hngnm" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_hngnm"));
  2674. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd"));
  2675. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_cretno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno"));
  2676. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd"));
  2677. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno"));
  2678. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_seqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_seqno"));
  2679. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptseqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno"));
  2680. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_instcd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_instcd"));
  2681. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptstat" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptstat"));
  2682. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_ordtype" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_ordtype"));
  2683. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_discreduflag" , "G");
  2684. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_discreducd" , model.getValue("/root/main/outrgst/m_etc/discreducd"));
  2685. if(vOpmi_count > 1) {
  2686. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_discreduamt" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_reduamt"));
  2687. }else{
  2688. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_discreduamt" , vReduamt);
  2689. }
  2690. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_apprsn" , "");
  2691. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptexecdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptexecdd"));
  2692. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcpttm" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcpttm"));
  2693. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptrid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptrid"));
  2694. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_remfact" , "");
  2695. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_fstrgstrid" , "");
  2696. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_fstrgstdt" , "");
  2697. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_lastupdtrid" , "");
  2698. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_lastupdtdt" , "");
  2699. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd_org"));
  2700. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_cretno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno_org"));
  2701. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddeptcd_org"));
  2702. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddrid_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddrid_org"));
  2703. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd_org"));
  2704. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno_org"));
  2705. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptseqno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno_org"));
  2706. }
  2707. }
  2708. if (redu_cnt > 1) {
  2709. for(var i = 1 ; i <= redu_cnt; i++) {
  2710. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_pid" , model.getValue("/root/send/s_opmi/opmi/opmi_pid"));
  2711. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_hngnm" , model.getValue("/root/send/s_opmi/opmi/opmi_hngnm"));
  2712. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddd"));
  2713. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_cretno" , model.getValue("/root/send/s_opmi/opmi/opmi_cretno"));
  2714. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptdd" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptdd"));
  2715. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptno"));
  2716. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_seqno" , model.getValue("/root/send/s_opmi/opmi/opmi_seqno"));
  2717. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptseqno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptseqno"));
  2718. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_instcd" , model.getValue("/root/send/s_opmi/opmi/opmi_instcd"));
  2719. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptstat" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptstat"));
  2720. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_ordtype" , model.getValue("/root/send/s_opmi/opmi/opmi_ordtype"));
  2721. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_discreduflag" , "G");
  2722. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_discreducd" , model.getValue("/root/main/outrgst/m_etc/discreducd"));
  2723. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_discreduamt" , vReduamt);
  2724. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_apprsn" , "");
  2725. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptexecdd" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptexecdd"));
  2726. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcpttm" , model.getValue("/root/send/s_opmi/opmi/opmi_rcpttm"));
  2727. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptrid" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptrid"));
  2728. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_remfact" , "");
  2729. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_fstrgstrid" , "");
  2730. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_fstrgstdt" , "");
  2731. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_lastupdtrid" , "");
  2732. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_lastupdtdt" , "");
  2733. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddd_org"));
  2734. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_cretno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_cretno_org"));
  2735. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd_org"));
  2736. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddrid_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddrid_org"));
  2737. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptdd_org"));
  2738. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptno_org"));
  2739. //model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_rcptseqno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptseqno_org"));
  2740. }
  2741. }
  2742. }
  2743. // 감면 코드 보정 (실시 정산시)
  2744. if (( disccd == "" || disccd == "-" ) && instance1.selectNodes("/root/main/baseinfo/actlist/actr").length > 0) {
  2745. for (var i = 1; i <= instance1.selectNodes("/root/main/baseinfo/actlist/actr").length; i++) {
  2746. disccd = model.getValue("/root/main/baseinfo/actlist/actr[" + i + "]/actr_disccd");
  2747. if (disccd.length > 1) {
  2748. break;
  2749. }
  2750. }
  2751. }
  2752. //할인금액 있을 경우
  2753. var vDiscamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_discamt"));
  2754. var disc_cnt = parseInt(getNodesetCount("/root/send/s_dcgm/dcgm/dcgm_pid"));
  2755. if (vDiscamt != 0) {
  2756. for (var i = 1 ; i <= vOpmi_count ; i++) {
  2757. k = i + disc_cnt;
  2758. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_pid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_pid"));
  2759. //model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_hngnm" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_hngnm"));
  2760. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_orddd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd"));
  2761. model.makevalue("/root/send/s_dcgm/dcgm["+i+"]/dcgm_cretno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno"));
  2762. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd"));
  2763. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno"));
  2764. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_seqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_seqno"));
  2765. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptseqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno"));
  2766. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_instcd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_instcd"));
  2767. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptstat" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptstat"));
  2768. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_ordtype" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_ordtype"));
  2769. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_discreduflag" , "D");
  2770. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_discreducd" , disccd);
  2771. //model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_discreduamt" , vDiscamt);
  2772. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_discreduamt" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_discamt"));
  2773. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_apprsn" , "");
  2774. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptexecdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptexecdd"));
  2775. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcpttm" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcpttm"));
  2776. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptrid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptrid"));
  2777. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_remfact" , "");
  2778. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_fstrgstrid" , "");
  2779. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_fstrgstdt" , "");
  2780. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_lastupdtrid" , "");
  2781. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_lastupdtdt" , "");
  2782. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_orddd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd_org"));
  2783. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_cretno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno_org"));
  2784. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddeptcd_org"));
  2785. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_orddrid_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddrid_org"));
  2786. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd_org"));
  2787. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno_org"));
  2788. model.makevalue("/root/send/s_dcgm/dcgm["+k+"]/dcgm_rcptseqno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno_org"));
  2789. }
  2790. }
  2791. //미수금액
  2792. var vUncoamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt");
  2793. var unco_cnt = getNodesetCount("/root/send/s_unco/unco/unco_pid");
  2794. if (vUncoamt != 0) {
  2795. if (unco_cnt <=1) {
  2796. //2013-04-12 이동식
  2797. //기존 노드가 1개 이하이면 지우고 새로 생성한다. 미수금액과 수납금액이 항상 같도록 하기 위함.
  2798. //기존 노드를 삭제한다.
  2799. model.removeNodeset("/root/send/s_unco/unco");
  2800. for (var i = 1 ; i <= vOpmi_count ; i++) {
  2801. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_pid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_pid"));
  2802. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd"));
  2803. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno"));
  2804. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptseqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno"));
  2805. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_seqno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_seqno"));
  2806. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_instcd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_instcd"));
  2807. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptstat" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptstat"));
  2808. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_ordtype" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_ordtype"));
  2809. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_orddd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd"));
  2810. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_cretno" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno"));
  2811. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_orddeptcd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddeptcd"));
  2812. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_orddrid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddrid"));
  2813. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_dschdd" , "");
  2814. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_insukind" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_insukind"));
  2815. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_suppkind" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_suppkind"));
  2816. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_uncorcptflag" , "1");
  2817. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_uncocls" , model.getValue("/root/main/outrgst/m_etc/uncocls"));
  2818. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_uncocd" , model.getValue("/root/main/outrgst/m_etc/uncocd"));
  2819. if(vOpmi_count > 1) {
  2820. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_uncoamt" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_uncoamt"));
  2821. }else{
  2822. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_uncoamt" , vUncoamt);
  2823. }
  2824. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptamt" , "0");
  2825. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_debtamt" , "0");
  2826. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_endyn" , "N");
  2827. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_clincstdyno" , "");
  2828. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_empid" , "");
  2829. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptexecdd" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptexecdd"));
  2830. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcpttm" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcpttm"));
  2831. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptrid" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptrid"));
  2832. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_apprsn" , "");
  2833. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_mig" , "");
  2834. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_orddd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddd_org"));
  2835. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_cretno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_cretno_org"));
  2836. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddeptcd_org"));
  2837. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_orddrid_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_orddrid_org"));
  2838. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptdd_org"));
  2839. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptno_org"));
  2840. model.makevalue("/root/send/s_unco/unco["+i+"]/unco_rcptseqno_org" , model.getValue("/root/send/s_opmi/opmi["+i+"]/opmi_rcptseqno_org"));
  2841. }
  2842. }
  2843. if (unco_cnt >1 ) {
  2844. //2013-04-12 이동식
  2845. //노드가 2개 이상이면 미수금액이 같은지 비교한다.
  2846. var unco_uncoamtsum = 0;
  2847. for(var unco = 1; unco <= unco_cnt; unco++){
  2848. unco_uncoamtsum = parseInt(unco_uncoamtsum) + parseInt(model.getValue("/root/send/s_unco/unco[" + unco + "]/unco_uncoamt"));
  2849. }
  2850. //미수금액 비교
  2851. if( unco_uncoamtsum != vUncoamt){
  2852. messageBox("미수금액이 잘못 입력되었습니다. \n[미수액] 버튼을 클릭하셔서 미수내역의 금액을 확인하세요!!","E999","");
  2853. return;
  2854. }
  2855. for (var i = 1 ; i <= unco_cnt ; i++) {
  2856. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_pid" , model.getValue("/root/send/s_opmi/opmi/opmi_pid"));
  2857. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptdd" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptdd"));
  2858. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptno"));
  2859. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptseqno" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptseqno"));
  2860. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_seqno" , model.getValue("/root/send/s_opmi/opmi/opmi_seqno"));
  2861. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_instcd" , model.getValue("/root/send/s_opmi/opmi/opmi_instcd"));
  2862. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptstat" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptstat"));
  2863. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_ordtype" , model.getValue("/root/send/s_opmi/opmi/opmi_ordtype"));
  2864. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_orddd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddd"));
  2865. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_cretno" , model.getValue("/root/send/s_opmi/opmi/opmi_cretno"));
  2866. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_orddeptcd" , model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd"));
  2867. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_orddrid" , model.getValue("/root/send/s_opmi/opmi/opmi_orddrid"));
  2868. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_dschdd" , "");
  2869. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_insukind" , model.getValue("/root/send/s_opmi/opmi/opmi_insukind"));
  2870. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_suppkind" , model.getValue("/root/send/s_opmi/opmi/opmi_suppkind"));
  2871. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_uncorcptflag" , "1");
  2872. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_uncocls" , model.getValue("/root/main/outrgst/m_etc/uncocls"));
  2873. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_uncocd" , model.getValue("/root/main/outrgst/m_etc/uncocd"));
  2874. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_uncoamt" , vUncoamt);
  2875. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptamt" , "0");
  2876. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_debtamt" , "0");
  2877. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_endyn" , "N");
  2878. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_clincstdyno" , "");
  2879. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_empid" , "");
  2880. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptexecdd" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptexecdd"));
  2881. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcpttm" , model.getValue("/root/send/s_opmi/opmi/opmi_rcpttm"));
  2882. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptrid" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptrid"));
  2883. model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_apprsn" , "");
  2884. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_mig" , "");
  2885. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_orddd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddd_org"));
  2886. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_cretno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_cretno_org"));
  2887. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd_org"));
  2888. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_orddrid_org" , model.getValue("/root/send/s_opmi/opmi/opmi_orddrid_org"));
  2889. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptdd_org"));
  2890. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptno_org"));
  2891. //model.makevalue("/root/send/s_unco/unco[" + i + "]/unco_rcptseqno_org" , model.getValue("/root/send/s_opmi/opmi/opmi_rcptseqno_org"));
  2892. }
  2893. }
  2894. }
  2895. var vMdlRcptamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt"));
  2896. if (vMdlRcptamt != 0) {
  2897. for (var i=1; i <= vOpmi_count ; i++) {
  2898. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_pid" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_pid"));
  2899. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptdd" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_rcptdd"));
  2900. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptno" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_rcptno"));
  2901. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptseqno" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_rcptseqno"));
  2902. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_seqno" , "0");
  2903. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_instcd" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_instcd"));
  2904. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptstat" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_rcptstat"));
  2905. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_ordtype" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_ordtype"));
  2906. if (model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag")=="N") {
  2907. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptflag" , "A12");//가정간호 외래선수금대체
  2908. }else {
  2909. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptflag" , "A02");//외래선수금대체
  2910. }
  2911. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_cashamt" , model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_mdlrcptamt") );
  2912. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_cardamt" , "0");
  2913. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_onlineamt" , "0");
  2914. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptexecdd" ,model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_rcptexecdd"));
  2915. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcpttm" ,model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_rcpttm"));
  2916. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptrid" ,model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_rcptrid"));
  2917. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_orddeptcd" ,model.getValue("/root/send/s_opmi/opmi[" + i + "]/opmi_orddeptcd"));
  2918. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_remfact" ,"[대체]");
  2919. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_fstrgstrid" ,"");
  2920. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_fstrgstdt" ,"");
  2921. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_lastupdtrid" ,"");
  2922. model.makeValue("/root/send/s_bogj/bogj[" + i + "]/bogj_lastupdtdt" ,"");
  2923. model.makevalue("/root/send/s_bogj/bogj[" + i + "]/bogj_orddd_org" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_orddd_org"));
  2924. model.makevalue("/root/send/s_bogj/bogj[" + i + "]/bogj_cretno_org" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_cretno_org"));
  2925. model.makevalue("/root/send/s_bogj/bogj[" + i + "]/bogj_orddeptcd_org" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_orddeptcd_org"));
  2926. model.makevalue("/root/send/s_bogj/bogj[" + i + "]/bogj_orddrid_org" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_orddrid_org"));
  2927. model.makevalue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptdd_org" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptdd_org"));
  2928. model.makevalue("/root/send/s_bogj/bogj[" + i + "]/bogj_rcptno_org" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptno_org"));
  2929. model.makevalue("/root/send/s_bogj/bogj[" + i + "]/bogj_cptseqno_org" , model.getValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptseqno_org"));
  2930. }
  2931. }
  2932. //건강생활유지비
  2933. var vHeallifeamtclamamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt"));
  2934. if (vHeallifeamtclamamt != 0) {
  2935. if (vOpmi_count >1 ) {
  2936. messageBox("멀티수납시에는 건강생활유지비 적용을 할 수 없습니다.","E999","");
  2937. return;
  2938. }
  2939. model.makeValue("/root/send/s_opmi/opmi/opmi_heallifeamtclamamt",model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt"));
  2940. }else { // 건생비 0원인 경우 0원 세팅처리(2017/12/04 이정택)
  2941. model.makeValue("/root/send/s_opmi/opmi/opmi_heallifeamtclamamt","0");
  2942. }// 건생비 0원인 경우 0원 세팅처리(2017/12/04 이정택)
  2943. //산전지원비
  2944. var vPregdmndamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt"));
  2945. if (vPregdmndamt != 0) {
  2946. if (vOpmi_count >1 ) {
  2947. messageBox("멀티수납시에는 산전지원비 적용을 할 수 없습니다.","E999","");
  2948. return;
  2949. }
  2950. model.makeValue("/root/send/s_opmi/opmi/opmi_pregdmndamt",model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt"));
  2951. }else { // 산전비 0원인 경우 0원 세팅처리(2017/12/04 이정택)
  2952. model.makeValue("/root/send/s_opmi/opmi/opmi_pregdmndamt","0");
  2953. }// 산전비 0원인 경우 0원 세팅처리(2017/12/04 이정택)
  2954. //환자기본정보 세팅
  2955. model.setValue("/root/send/pid" , model.getValue("/root/main/patinfo/patinfolist/pid"));
  2956. model.setValue("/root/send/brthdd" , model.getValue("/root/main/patinfo/patinfolist/brthdd"));
  2957. model.setValue("/root/send/rrgstno1" , model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  2958. model.setValue("/root/send/rrgstno2" , model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  2959. model.setValue("/root/send/sessuserid" , model.getValue("/root/hidden/session/userid"));
  2960. model.setValue("/root/send/workgubn" , model.getValue("/root/temp3/workgubn"));
  2961. model.setValue("/root/send/opt_cardck" , model.getValue("/root/option/opt_cardck"));
  2962. //-------------------------------
  2963. //return;
  2964. //-------------------------------
  2965. //2018/04/12 이정택(조혈모세포검사(HLA)관련 수정)
  2966. var cnt = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']");
  2967. for(var i=1; i<=cnt; i++){
  2968. var otpt_etcordflag = model.getValue("/root/hidden/rcv1/sum_otpt/otpt[" + i + " and otpt_checkflag='true']/otpt_etcordflag");
  2969. var otpt_orddd = model.getValue("/root/hidden/rcv1/sum_otpt/otpt[" + i + " and otpt_checkflag='true']/otpt_orddd");
  2970. var otpt_cretno = model.getValue("/root/hidden/rcv1/sum_otpt/otpt[" + i + " and otpt_checkflag='true']/otpt_cretno");
  2971. if(otpt_etcordflag == 'V'){
  2972. var reci_orddd = model.getValue("/root/dnorcheck/rcv/dnorinfo[tablename='dono' and orddd ='" + otpt_orddd + "' and cretno ='" + otpt_cretno + "']/reci_orddd");
  2973. var reci_cretno = model.getValue("/root/dnorcheck/rcv/dnorinfo[tablename='dono' and orddd ='" + otpt_orddd + "' and cretno ='" + otpt_cretno + "']/reci_cretno");
  2974. model.makeValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/reci_orddd", reci_orddd);
  2975. model.makeValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/reci_cretno", reci_cretno);
  2976. }
  2977. }
  2978. //2018/04/12 이정택(조혈모세포검사(HLA)관련 수정)
  2979. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  2980. //수납처리 호출
  2981. if (submit("TXPAO00102") == true) {
  2982. if(model.getValue("/root/tempp/msg/outdrugnomsg") != ""){
  2983. messageBox(model.getValue("/root/tempp/msg/outdrugnomsg"), "I999","");
  2984. }
  2985. //영수증출력 Y 이면, 출력
  2986. if ( model.getValue("/root/init/option/receipt") == "Y" || model.getValue("/root/init/option/specbillyn") == "Y" ) {
  2987. var InitDept = "";
  2988. var PrintDept = new Array( getNodesetCount("/root/tempp/receipt") );
  2989. var DeptCnt = 1;
  2990. PrintDept[0] = model.getValue("/root/tempp/receipt[1]/orddeptcd");
  2991. DeptCnt = 1;
  2992. for(var i=1; i<=getNodesetCount("/root/tempp/receipt"); i++){
  2993. for(var j=1; j<=DeptCnt; j++){
  2994. if(fIsValueofArray( PrintDept , model.getValue("/root/tempp/receipt["+ i +"]/orddeptcd"))){
  2995. break;
  2996. }else{
  2997. PrintDept[DeptCnt] = model.getValue("/root/tempp/receipt["+ i +"]/orddeptcd");
  2998. DeptCnt++;
  2999. break;
  3000. }
  3001. }// for j
  3002. }//for i
  3003. //2015/02/06 이정택(원하는 매수만큼 영수증 및 세부내역서 출력하도록 로직 추가)
  3004. var printcnt = model.getValue("/root/init/option/printcnt");
  3005. if(printcnt=="" || printcnt==null){
  3006. printcnt="1";
  3007. }
  3008. for(var m=1; m<=parseInt(printcnt); m++){
  3009. // 영수증 출력의 경우
  3010. if ( model.getValue("/root/init/option/receipt") == "Y" || (model.getValue("/root/init/option/receipt") == "Y" && model.getValue("/root/init/option/engreceipt")== "Y")) {
  3011. //진료과 건수 만큼 loop 영수증호출
  3012. for (var j = 0; j< DeptCnt ; j++) {
  3013. model.removeNodeset("/root/temp/receipt");
  3014. for(var i=1; i<=getNodesetCount("/root/tempp/receipt"); i++){
  3015. if (model.getValue("/root/tempp/receipt["+ i +"]/orddeptcd") == PrintDept[j] ) {
  3016. if(model.getValue("/root/init/option/engreceipt")== "Y"){
  3017. model.setValue("/root/tempp/receipt["+ i +"]/ordtype", "외래정산영문영수증");
  3018. }else{
  3019. model.setValue("/root/tempp/receipt["+ i +"]/ordtype", "외래멀티수납영수증");
  3020. }
  3021. model.makeValue("/root/tempp/receipt["+ i +"]/engYN", model.getValue("/root/init/option/engreceipt") );
  3022. model.makeValue("/root/tempp/receipt["+ i +"]/reprintYN", "N");
  3023. if(model.getvalue("/root/temp3/workgubn") == "Y") {
  3024. model.makeValue("/root/tempp/receipt["+ i +"]/rcptsite", "S" );
  3025. }
  3026. if(model.getvalue("/root/temp3/workgubn") == "N") { //외래정산시에는 접수증 발행안한다!
  3027. model.makeValue("/root/tempp/receipt["+ i +"]/rcptsite", "jungsan" );
  3028. }
  3029. model.makeValue("/root/tempp/receipt["+ i +"]/ordrcptflag", "multi");
  3030. model.makeValue("/root/tempp/receipt["+ i +"]/m_cnt", i);
  3031. copyNodeListType("root/temp","/root/tempp/receipt[" + i + "]","after");
  3032. }
  3033. }
  3034. modal("SPPAO01900");
  3035. }
  3036. }
  3037. }
  3038. // 진료비세부내역서의 경우
  3039. if (model.getValue("/root/init/option/specbillyn") == "Y") {
  3040. var receitpCnt = getNodesetCount("/root/tempp/receipt");
  3041. // 세부내역서 양식 변경에 따른 분기 처리 (2018/02/26 이정택)
  3042. var P0032_370 = model.getvalue("/root/init/basecdlist/P0032[cdid='370']/cdnm");
  3043. if(P0032_370 == 'Y'){ // 신규양식
  3044. var sValues = "";
  3045. sValues = "ordtype▦pid▦orddd▦cretno▦fromdd▦todd▦rcptdd▦rcptno▦rcptseqno▩";
  3046. for (var k = 1; k <= receitpCnt ; k++) {
  3047. sValues += "O" + "▦";
  3048. sValues += model.getValue("/root/tempp/receipt["+ k +"]/pid") + "▦";
  3049. sValues += model.getValue("/root/tempp/receipt["+ k +"]/orddd") + "▦";
  3050. sValues += model.getValue("/root/tempp/receipt["+ k +"]/cretno") + "▦";
  3051. sValues += "" + "▦";
  3052. sValues += "" + "▦";
  3053. sValues += model.getValue("/root/tempp/receipt["+ k +"]/rcptdd") + "▦";
  3054. sValues += model.getValue("/root/tempp/receipt["+ k +"]/rcptno") + "▦";
  3055. sValues += model.getValue("/root/tempp/receipt["+ k +"]/rcptseqno")+ "▩";
  3056. }
  3057. setParameter("SPPAC00200_HNGNM", model.getValue("/root/main/patinfo/patinfolist/hngnm")); // 환자성명
  3058. setParameter("SPPAC00200_VALUES", sValues); // 수진/수납이력
  3059. setParameter("SPPAC00200_PRNTCNT", printcnt); // 출력부수
  3060. modal("SPPAC00200", "1", "300", "300"); // 진료비세부산정내역관리화면 호출
  3061. }else if(P0032_370 == 'N'){ // 기존양식
  3062. for(var m=1; m<=parseInt(printcnt); m++){
  3063. //진료과 건수 만큼 loop 영수증호출
  3064. for (var k = 1; k <= receitpCnt ; k++) {
  3065. model.removeNodeset("/root/temp/receipt");
  3066. //2017/01/18 수납과 동시에 세부내역서 출력시 급비가 세부내역서에 출력되도록 프로그램 수정(이정택)
  3067. //model.makeValue("/root/temp/receipt/ordtype" , "환자용외래진료비세부내역서" ); //ordtype : 외래영수증 / 외래중간금영수증 / 외래합산영수증 /외래진료비세부내역서
  3068. model.makeValue("/root/temp/receipt/ordtype" , "환자용외래진료비세부내역서2" );
  3069. //2017/01/18 수납과 동시에 세부내역서 출력시 급비가 세부내역서에 출력되도록 프로그램 수정(이정택)
  3070. model.makeValue("/root/temp/receipt/pid" , model.getValue("/root/tempp/receipt["+ k +"]/pid") );
  3071. model.makeValue("/root/temp/receipt/rcptdd" , model.getValue("/root/tempp/receipt["+ k +"]/rcptdd") );
  3072. model.makeValue("/root/temp/receipt/rcptno" , model.getValue("/root/tempp/receipt["+ k +"]/rcptno") );
  3073. model.makeValue("/root/temp/receipt/rcptseqno" , model.getValue("/root/tempp/receipt["+ k +"]/rcptseqno") );
  3074. model.makeValue("/root/temp/receipt/orddd" , model.getValue("/root/tempp/receipt["+ k +"]/orddd") );
  3075. model.makeValue("/root/temp/receipt/cretno" , model.getValue("/root/tempp/receipt["+ k +"]/cretno") );
  3076. model.makeValue("/root/temp/receipt/orddeptcd" , model.getValue("/root/tempp/receipt["+ k +"]/orddeptcd") );
  3077. model.makeValue("/root/temp/receipt/orddrid" , model.getValue("/root/tempp/receipt["+ k +"]/orddrid") );
  3078. model.makeValue("/root/temp/receipt/instcd" , model.getValue("/root/tempp/receipt["+ k +"]/instcd") );
  3079. model.makeValue("/root/temp/receipt/calcpayflag" , "-" + "','0" + "','2" + "','1" + "','5"); // pay1-급여, pay2-비급, pay4-본인100, pay5-선택진료
  3080. model.makeValue("/root/temp/receipt/specflag" , "1"); // 1:전체, 2:선택진료
  3081. model.makeValue("/root/temp/receipt/calcsum" , "Y"); // Y:수가별합산
  3082. model.makeValue("/root/temp/receipt/useflag" , "2"); // 1:보험회사, 2:기타
  3083. model.makeValue("/root/temp/receipt/mig_oscl2yn" , false); // 세부내역서가 oscl2읽음 여부
  3084. //영수증 팝업화면 호출
  3085. modal("SPPAO01900");
  3086. }
  3087. }
  3088. // 세부내역서 양식 변경에 따른 분기 처리 (2018/02/26 이정택)
  3089. /*
  3090. // 초기화
  3091. model.removeNodeset("/root/temp/receipt");
  3092. //2017/01/18 수납과 동시에 세부내역서 출력시 급비가 세부내역서에 출력되도록 프로그램 수정(이정택)
  3093. //model.makeValue("/root/temp/receipt/ordtype" , "환자용외래진료비세부내역서" ); //ordtype : 외래영수증 / 외래중간금영수증 / 외래합산영수증 /외래진료비세부내역서
  3094. model.makeValue("/root/temp/receipt/ordtype" , "환자용외래진료비세부내역서2" );
  3095. //2017/01/18 수납과 동시에 세부내역서 출력시 급비가 세부내역서에 출력되도록 프로그램 수정(이정택)
  3096. model.makeValue("/root/temp/receipt/pid" , model.getValue("/root/tempp/receipt["+ k +"]/pid") );
  3097. model.makeValue("/root/temp/receipt/rcptdd" , model.getValue("/root/tempp/receipt["+ k +"]/rcptdd") );
  3098. model.makeValue("/root/temp/receipt/rcptno" , model.getValue("/root/tempp/receipt["+ k +"]/rcptno") );
  3099. model.makeValue("/root/temp/receipt/rcptseqno" , model.getValue("/root/tempp/receipt["+ k +"]/rcptseqno") );
  3100. model.makeValue("/root/temp/receipt/orddd" , model.getValue("/root/tempp/receipt["+ k +"]/orddd") );
  3101. model.makeValue("/root/temp/receipt/cretno" , model.getValue("/root/tempp/receipt["+ k +"]/cretno") );
  3102. model.makeValue("/root/temp/receipt/orddeptcd" , model.getValue("/root/tempp/receipt["+ k +"]/orddeptcd") );
  3103. model.makeValue("/root/temp/receipt/orddrid" , model.getValue("/root/tempp/receipt["+ k +"]/orddrid") );
  3104. model.makeValue("/root/temp/receipt/instcd" , model.getValue("/root/tempp/receipt["+ k +"]/instcd") );
  3105. model.makeValue("/root/temp/receipt/calcpayflag" , "-" + "','0" + "','2" + "','1" + "','5"); // pay1-급여, pay2-비급, pay4-본인100, pay5-선택진료
  3106. model.makeValue("/root/temp/receipt/specflag" , "1"); // 1:전체, 2:선택진료
  3107. model.makeValue("/root/temp/receipt/calcsum" , "Y"); // Y:수가별합산
  3108. model.makeValue("/root/temp/receipt/useflag" , "2"); // 1:보험회사, 2:기타
  3109. model.makeValue("/root/temp/receipt/mig_oscl2yn" , false); // 세부내역서가 oscl2읽음 여부
  3110. //영수증 팝업화면 호출
  3111. modal("SPPAO01900");
  3112. */
  3113. }
  3114. }
  3115. }
  3116. //원외처방전 자동출력 Y 이면, 출력
  3117. if(model.getValue("/root/init/option/hosoprnyn") == "Y"){
  3118. fPrintDrug1();
  3119. }
  3120. // 2015/07/30 장애인 구강센터 동의서 출력관련
  3121. var gugang_cnt = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt[otpt_orddeptcd='2242400000']");
  3122. var gugang_ptbs_scanyn = model.getValue("/root/main/patinfo/patinfolist/gugang_ptbs_scanyn");
  3123. var gugang_ocryn="Y";
  3124. if(parseInt(gugang_cnt)>0 && gugang_ptbs_scanyn!="S"){
  3125. gugang_ocryn = "N";
  3126. }
  3127. // 2015/07/30 장애인 구강센터 동의서 출력관련
  3128. // 접수가 진료교류(V)이면서 개인정보 이용동의서 받은 일자가 기준자료 일자보가 과거일 경우에는 다시 받도록 수정(2016/08/31)
  3129. var hie_cnt = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt[otpt_rsrvflag='V']");
  3130. var hieocrtag = model.getValue("/root/main/patinfo/patinfolist/hieocrtag");
  3131. var hie_ocryn="Y";
  3132. if(parseInt(hie_cnt)>0 && parseInt(hieocrtag.substring(0,8)) < parseInt('20150101')){
  3133. hie_ocryn = "N";
  3134. }
  3135. // 접수가 진료교류(V)이면서 개인정보 이용동의서 받은 일자가 기준자료 일자보가 과거일 경우에는 다시 받도록 수정(2016/08/31)
  3136. // 개인정보이용동의서가 출력되지 않았을 경우 동의서 자동출력 by 조중래 20120328
  3137. // 자동출력 안되는 케이스
  3138. // 1. P0097 등록 사용자 (치과, 모발센터, 건진, 은행 등)
  3139. // 2. 진찰료미산정
  3140. // 3. 제출 / 스캔완료 건
  3141. // 4. 가접수에 대해서도 개인정보 이용동의서 출력되도록 수정(2016/05/17 이정택)
  3142. // 5. 종이 출력 후 스캔되지 않았더라도 다시 받도록 수정
  3143. if((model.getValue("/root/init/option/personprntyn") == "Y" && model.getValue("/root/main/patinfo/patinfolist/scanyn") != "S")
  3144. || gugang_ocryn =="N"
  3145. || hie_ocryn =="N") {
  3146. var nodeCnt = getNodesetCount("/root/init/prncd/hardcd");
  3147. var formcd;
  3148. //구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서) / 11: 대구장애인구강진료센터
  3149. if(gugang_ocryn =="N"){
  3150. formcd = model.getValue("/root/init/prncd/hardcd[cdseqno='11']/hardcd");
  3151. }else{
  3152. formcd = model.getValue("/root/init/prncd/hardcd[cdseqno='3']/hardcd");
  3153. }
  3154. /*
  3155. for(var i=1; i<= nodeCnt; i++){
  3156. if(3 == model.getValue("/root/init/prncd/hardcd[" + i + "]/cdseqno")){
  3157. formcd = model.getValue("/root/init/prncd/hardcd[" + i + "]/hardcd");
  3158. break;
  3159. }
  3160. }
  3161. */
  3162. //개인정보이용 동의서 전자동의서를 위한 처리로직 추가 by 조중래 20130305
  3163. var ocrtype = "O";
  3164. if(model.getValue("/root/init/basecdlist/PK018[cdid='" + app.clientIp + "']/cdnm") == "Y"){
  3165. ocrtype = "S";
  3166. }
  3167. fPerPrintOCR(formcd,
  3168. model.getValue("/root/send/s_opmi/opmi[" + 1 + "]/opmi_pid"),
  3169. model.getValue("/root/send/s_opmi/opmi[" + 1 + "]/opmi_orddd"),
  3170. model.getValue("/root/send/s_opmi/opmi[" + 1 + "]/opmi_cretno"),
  3171. "O",
  3172. ocrtype);
  3173. }
  3174. //2017/12/22 심층진찰 관련 동의서 출력부분 추가
  3175. for(var i=vOtpt_count; i>=1; i--){
  3176. var otpt_pid = model.getValue(vOtptGrid + i + "]/otpt_pid");
  3177. var otpt_orddd = model.getValue(vOtptGrid + i + "]/otpt_orddd");
  3178. var otpt_cretno = model.getValue(vOtptGrid + i + "]/otpt_cretno");
  3179. var otpt_insukind = model.getValue(vOtptGrid + i + "]/otpt_insukind");
  3180. var otpt_etcordflag = model.getValue(vOtptGrid + i + "]/otpt_etcordflag");
  3181. var otpt_ocr_scanyn = model.getValue(vOtptGrid + i + "]/otpt_ocr_scanyn");
  3182. var formcd = model.getValue("/root/init/prncd/hardcd[cdseqno='17']/hardcd");
  3183. if(otpt_etcordflag=='U' && otpt_ocr_scanyn=='X'){
  3184. var ocrtype = "O";
  3185. if(model.getValue("/root/init/basecdlist/PK018[cdid='" + app.clientIp + "']/cdnm") == "Y"){
  3186. ocrtype = "S";
  3187. }
  3188. fPerPrintOCR(formcd,
  3189. otpt_pid,
  3190. otpt_orddd,
  3191. otpt_cretno,
  3192. "O",
  3193. ocrtype);
  3194. }
  3195. }
  3196. //2017/12/22 심층진찰 관련 동의서 출력부분 추가
  3197. //초기화
  3198. model.copynode("/root/tempp", "/root/node_bk/temp");
  3199. model.copynode("/root/temp" , "/root/node_bk/temp");
  3200. //외래정산시 -영수증을 발행해준다.
  3201. if(model.getvalue("/root/temp3/workgubn") == "N" && model.getvalue("/root/init/basecdlist/P0032[cdid='80']/cdnm") == "Y") {
  3202. for(var i=1; i<=vOpmi_count; i++){
  3203. model.setvalue("/root/send/s_opmi/opmi["+ i +"]/opmi_ordtype" , "외래멀티수납영수증");
  3204. model.setvalue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptseqno", "101");
  3205. model.makeValue("/root/send/s_opmi/opmi["+ i +"]/opmi_engYN" , model.getValue("/root/init/option/engreceipt"));
  3206. model.makeValue("/root/send/s_opmi/opmi["+ i +"]/opmi_reprintYN" , "N");
  3207. model.makeValue("/root/send/s_opmi/opmi["+ i +"]/opmi_rcptsite" , "S");
  3208. model.makeValue("/root/send/s_opmi/opmi["+ i +"]/opmi_ordrcptflag" , "multi");
  3209. copyNodesetType("/root/temp/receipt", "/root/send/s_opmi/opmi["+ i +"]" ,"before");
  3210. }
  3211. chgNodeNm("/root/temp/receipt" );
  3212. modal("SPPAO01900");
  3213. }
  3214. //외래정산시 -영수증 발행끝
  3215. //환불수납건은
  3216. if (parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")) < 0 ){
  3217. fRtnRcpt(2);
  3218. }
  3219. fClear("P");
  3220. model.setFocus("ipt_pid");
  3221. // 수납 후 통합 검사 예약 자동 연계
  3222. if (EXCU_FLAG) {
  3223. setParameter("opener_parameter_id", model.getValue("/root/main/patinfo/patinfolist/pid") + "▦T");
  3224. open("../../../pam/pamexcuweb/xrw/SMPEA00100_검사예약.xrw", "", "", "" ,"", "", "");
  3225. cap_excumsg.visible = false;
  3226. }
  3227. }else{
  3228. fServerCheckMsg("수납실패");
  3229. }
  3230. }
  3231. //원외처방전 출력
  3232. function fPrintDrug1() {
  3233. var drug_cnt = getNodesetCount("/root/tempp/drug/drugdd");
  3234. for (var iRow = 1; iRow<= drug_cnt; iRow++) {
  3235. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/drugdd", model.getValue("/root/tempp/drug["+iRow+"]/drugdd"));
  3236. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/drugno", model.getValue("/root/tempp/drug["+iRow+"]/drugno"));
  3237. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosinyn", "");
  3238. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosinmpsflag", "");
  3239. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutyn", "Y");
  3240. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutmpsflag", "1|2");
  3241. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/lblyn", "");
  3242. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/lblflag", "");
  3243. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/prntflag", "");
  3244. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoinprntyn", "");
  3245. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autooutprntyn", "");
  3246. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoprcp", "");
  3247. if (model.getValue("/root/tempp/drug["+iRow+"]/prntdt") != "-") {
  3248. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/reprintyn", "Y");
  3249. }else{
  3250. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/reprintyn", "");
  3251. }
  3252. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoatcyn", "");
  3253. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/printer", "2");
  3254. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutyn", "Y");
  3255. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/prntflag", "Y");
  3256. if (model.getValue("/root/hidden/h_prcpsrch/prcpsrch/reprintyn") == "") {
  3257. modal("SMADT01101", "0","0", "10", "SMADT01101", "/root/hidden/h_prcpsrch/prcpsrch", "/root/hidden/prcpsrch");
  3258. }
  3259. model.copynode("/root/hidden/h_prcpsrch", "/root/node_bk/hidden/h_prcpsrch");
  3260. }
  3261. }
  3262. //원외처방전 출력
  3263. function fPrintDrug2() {
  3264. var drug_cnt = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt/otpt_pid");
  3265. for (var iRow = 1; iRow <= drug_cnt; iRow++) {
  3266. if (model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+iRow+"]/otpt_checkflag") =="true") {
  3267. model.setValue("/root/send/pid" ,model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+iRow+"]/otpt_pid"));
  3268. model.setValue("/root/send/orddd" ,model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+iRow+"]/otpt_orddd"));
  3269. model.setValue("/root/send/cretno" ,model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+iRow+"]/otpt_cretno"));
  3270. model.setValue("/root/send/instcd" ,model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+iRow+"]/otpt_instcd"));
  3271. if (submit("TRPAO10103") == true && model.getValue("/root/hidden/h_prcpsrch/prcpsrch/drugdd") != "") {
  3272. if (model.getValue("/root/hidden/h_prcpsrch/prcpsrch/drugdd") == "") {
  3273. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/drugdd", "");
  3274. }
  3275. if (model.getValue("/root/hidden/h_prcpsrch/prcpsrch/drugno") == "") {
  3276. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/drugno", "");
  3277. }
  3278. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosinyn", "");
  3279. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosinmpsflag", "");
  3280. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutyn", "Y");
  3281. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutmpsflag", "1|2");
  3282. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/lblyn", "");
  3283. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/lblflag", "");
  3284. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/prntflag", "");
  3285. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoinprntyn", "");
  3286. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autooutprntyn", "");
  3287. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoprcp", "");
  3288. if (model.getValue("/root/hidden/h_prcpsrch/prcpsrch/prntdt") != "-") {
  3289. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/reprintyn", "Y");
  3290. }else{
  3291. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/reprintyn", "");
  3292. }
  3293. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoatcyn", "");
  3294. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/printer", "2");
  3295. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutyn", "Y");
  3296. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/prntflag", "Y");
  3297. //if (model.getValue("/root/hidden/h_prcpsrch/prcpsrch/reprintyn") == "") {
  3298. modal("SMADT01101", "0","0", "10", "SMADT01101", "/root/hidden/h_prcpsrch/prcpsrch", "/root/hidden/prcpsrch");
  3299. //}
  3300. }
  3301. if(model.getValue("/root/hidden/h_prcpsrch/prcpsrch/drugdd") ==""){
  3302. model.setvalue("/root/etc/union_msg" ,"원외처방전이 없습니다." + '\n' + model.getValue("/root/etc/union_msg"));
  3303. }
  3304. model.copynode("/root/hidden/h_prcpsrch", "/root/node_bk/hidden/h_prcpsrch");
  3305. fLItemRefresh();
  3306. }
  3307. }
  3308. if(drug_cnt == 0) {
  3309. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/drugdd", "");
  3310. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/drugno", "");
  3311. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosinyn", "");
  3312. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosinmpsflag", "");
  3313. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutyn", "Y");
  3314. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutmpsflag", "1|2");
  3315. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/lblyn", "");
  3316. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/lblflag", "");
  3317. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/prntflag", "");
  3318. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoinprntyn", "");
  3319. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autooutprntyn", "");
  3320. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoprcp", "");
  3321. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/reprintyn", "Y");
  3322. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/autoatcyn", "");
  3323. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/printer", "2");
  3324. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/hosoutyn", "Y");
  3325. model.makeValue("/root/hidden/h_prcpsrch/prcpsrch/prntflag", "Y");
  3326. open("SMADT01101", "0","0", "10", "SMADT01101", "/root/hidden/h_prcpsrch/prcpsrch", "/root/hidden/prcpsrch");
  3327. model.copynode("/root/hidden/h_prcpsrch", "/root/node_bk/hidden/h_prcpsrch");
  3328. }
  3329. }
  3330. //영수증 출력을 위한 용도
  3331. function chgNodeNm(desnode ) {
  3332. var nodes = instance1.root.selectNodes(desnode + "/*");
  3333. var tNode = null;
  3334. for(var i=0; i<nodes.length; i++) {
  3335. tNode = nodes.item(i);
  3336. nodename = tNode.nodeName;
  3337. tNode.nodeName = nodename.substring(5, nodename.length);
  3338. }
  3339. /*
  3340. model.makeValue("/root/temp/receipt/ordtype" , "외래멀티수납영수증");
  3341. model.makeValue("/root/temp/receipt/rcptseqno", "101");
  3342. model.makeValue("/root/temp/receipt/engYN" , model.getValue("/root/init/option/engreceipt") );
  3343. model.makeValue("/root/temp/receipt/reprintYN", "N");
  3344. model.makeValue("/root/temp/receipt/rcptsite" , "S" );
  3345. model.makeValue(desnode + "/ordtype" , "외래멀티수납영수증");
  3346. model.makeValue(desnode + "/rcptseqno", "101");
  3347. model.makeValue(desnode + "/engYN" , model.getValue("/root/init/option/engreceipt") );
  3348. model.makeValue(desnode + "/reprintYN", "N");
  3349. model.makeValue(desnode + "/rcptsite" , "S" );
  3350. */
  3351. //modal("SPPAO01900");
  3352. }
  3353. //장기이식환자 조회
  3354. function fTransSearch() {
  3355. model.setValue("/root/send/pid",model.getValue("/root/main/patinfo/patinfolist/pid"));
  3356. //해당조건에 의한장기이식환자 조회
  3357. submit("TRPAO00212");
  3358. if (model.getValue("root/temp/trans/transgubn")=="1" || model.getValue("root/temp/trans/transgubn")=="2") {
  3359. if (model.getValue("root/temp/trans/transgubn")=="1") {
  3360. var transmessage = '공여자 입니다. ' + ' * 수혜자 : ' + model.getValue("root/temp/trans/phngnm") + '[' +model.getValue("root/temp/trans/ppid") + ']' + ' 에게 ' +
  3361. model.getValue("root/temp/trans/trnptkindnm") + ' 공여 하였습니다.';
  3362. }
  3363. if (model.getValue("root/temp/trans/transgubn")=="2") {
  3364. var transmessage = '수혜자 입니다. ' + ' * 공여자 : ' + model.getValue("root/temp/trans/phngnm") + '[' +model.getValue("root/temp/trans/ppid") + ']' + '에게서 ' +
  3365. model.getValue("root/temp/trans/trnptkindnm") + ' 수혜 받았습니다.';
  3366. }
  3367. messageBox(transmessage, "I004","");
  3368. return;
  3369. }
  3370. }
  3371. //산정특례로직 체크----------------------- ???? 사용안함 ???
  3372. function fEsscSearch(vpid, vorddd, vorddeptcd, vmskind, vcretno, vinsukind) {
  3373. model.setValue("/root/send/pid",vpid);
  3374. model.setValue("/root/send/orddd",vorddd);
  3375. model.setValue("/root/send/orddeptcd",vorddeptcd);
  3376. model.setValue("/root/send/mskind",vmskind);
  3377. model.setValue("/root/send/cretno",vcretno);
  3378. model.setValue("/root/send/insukind",vinsukind);
  3379. //해당조건에 산정특례처방 체크
  3380. submit("TRPAO00213");
  3381. }
  3382. function fClickHoldBtn() {
  3383. model.removeNodeset("/root/send/s_hold/prcp");
  3384. //계산리스트에서 선택 후, 버튼 클릭시에는 [Hold]처리
  3385. //홀드리스트에서 선택 후, 버튼 클릭시에는 [Release]처리
  3386. //[Hold]처리
  3387. for (var iRow = 1; iRow< grd_prcplist.rows ; iRow++) {
  3388. if (
  3389. (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ iRow +"]/prcp_holdyn")=="true") ||
  3390. (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ iRow +"]/prcp_releyn")=="true") ||
  3391. (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ iRow +"]/prcp_calcstat")=="true") ||
  3392. (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ iRow +"]/prcp_calcstat")=="false")
  3393. ) {
  3394. copyNodeListType("/root/send/s_hold","/root/hidden/rcv/h_prcp/prcp["+iRow+"]","after");
  3395. }
  3396. }
  3397. //prcpstatcd :210 으로 세팅
  3398. var vHold_count = getNodesetCount("/root/send/s_hold/prcp/prcp_pid");
  3399. for (var iRow = 0; iRow< (vHold_count) ; iRow++) {
  3400. if (model.getValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_holdyn")=="true") {
  3401. model.setValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_prcpstatcd","210");
  3402. }
  3403. if (model.getValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_releyn")=="true") {
  3404. if (model.getValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_rcptdd") == "") {
  3405. model.setValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_prcpstatcd","000");
  3406. }
  3407. if (model.getValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_rcptdd") != "") {
  3408. model.setValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_prcpstatcd","230");
  3409. }
  3410. }
  3411. // 수납대상여부 재설정 : exop.calcstat = 'X' or 'O' 설정처리
  3412. // 'Y'처리는 홀드기능 없애는 경우 같이 삭제처리해야함
  3413. if (model.getValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_calcstat")=="false") {
  3414. model.setValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_calcstat","N");
  3415. } else if (model.getValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_calcstat")=="true") {
  3416. model.setValue("/root/send/s_hold/prcp[" + (iRow+1) + "]/prcp_calcstat","Y");
  3417. }
  3418. }
  3419. if (vHold_count == 0) {
  3420. var result = messageBox(" [Hold] 또는 [Release] 할 처방이 선택되지 않았습니다.","I999","");
  3421. return false;
  3422. }
  3423. if (submit("TXPAO00103")) {
  3424. model.setValue("/root/hidden/calcgubn","Y");
  3425. if (fCalculate("N") != false) {
  3426. //2015/01/29 이정택 주석처리(부분수납에서 재계산시 수납대기로 돌아가는 현상 방지)
  3427. //요청 없어서 원상태로 돌림
  3428. btn_otptlist.dispatch("onclick");
  3429. //2015/01/29 이정택 주석처리
  3430. }
  3431. }
  3432. }
  3433. //외래 의사처방 급비변경(이동재 20071212)
  3434. function fClickPayFlagBtn() {
  3435. model.removeNodeset("/root/send/s_hold/prcp");
  3436. if (swt_outrcpt.selectedIndex == 2 ) { //처방리스트 선택
  3437. //급비변경처리
  3438. copyNodeListType("/root/hidden/rcv/h_prcp/prcp",grd_prcplist.getUpdateData("update"));
  3439. for (var iRow = 1; iRow< grd_prcplist.rows ; iRow++) {
  3440. if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ iRow +"]/prcp_holdyn")=="true") {
  3441. copyNodeListType("/root/send/s_hold","/root/hidden/rcv/h_prcp/prcp["+iRow+"]","after");
  3442. }
  3443. }
  3444. }
  3445. if (submit("TXPAO00104")) {
  3446. btn_calc.disabled = false;
  3447. btn_rcpt.disabled = true;
  3448. }
  3449. if (swt_outrcpt.selectedIndex == 2 ) { //처방리스트 선택
  3450. btn_prcplist.dispatch("onclick");
  3451. }
  3452. }
  3453. //이동재20080108 수급절차 이벤트
  3454. function fCheckOrdReqForm(){
  3455. //2007-12-12 이동식 추가 - 수급절차 본인부담 100% 일때 보험유형보조 전액본인부담으로 세팅!!
  3456. //건강보험, 자보, 산재일 경우에만 세팅.
  3457. var otpt_insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  3458. //보험, 급여 일때
  3459. if( otpt_insukind == gsBoHo2 || otpt_insukind == gsBoHo1 || otpt_insukind == gsBoHeom ){
  3460. if(cmb_ordreqformflag.value == '1' || //보험 100%(의뢰서미지참)
  3461. cmb_ordreqformflag.value == '2' || //본인희망 100%
  3462. cmb_ordreqformflag.value == '4' ) //기타 100%
  3463. {
  3464. //전액본인부담 '01'
  3465. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", '01');
  3466. }else if( cmb_ordreqformflag.value == '3'){
  3467. //정상
  3468. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", '00');
  3469. }else if( cmb_ordreqformflag.value == '5' || cmb_ordreqformflag.value == '6'){
  3470. model.setValue("/root/main/outrgst/ptin/ptin_insukind", "51");
  3471. cmb_insukind.dispatch("xforms-select");
  3472. }else{
  3473. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", '00');
  3474. }
  3475. }
  3476. //2007-09-17 이동식 추가 - 이동재 대리 요청 - 정신과, 의료급여1,2종일 경우 보조유형을 정신과 정액으로 세팅..
  3477. if( otpt_insukind == gsBoHo1 || otpt_insukind == gsBoHo2 ){
  3478. //2017/02/22 이정택 수정처리(보호정신과 및 조현병(정신질환5%) 관련 프로그램 수정
  3479. //var reqdeptno = model.getValue("/root/init/orddeptcd[ cd = '" + model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd") + "' ]/reqdeptno");
  3480. //if( reqdeptno == "03"){
  3481. var reqdeptno = model.getValue("/root/init/basecdlist/orddeptcd[ cdid = '" + model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd") + "' ]/reqdeptno");
  3482. if( reqdeptno == "03" && cmb_ordreqformflag.value == '3' && model.getValue("/root/main/outrgst/ptin/ptin_suppkind")!= 'D0'){
  3483. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", '14');
  3484. fSuppKindSelect_outord();
  3485. }
  3486. }
  3487. //신체감정 접수 체크
  3488. var otpt_etcordflag = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag");
  3489. if( otpt_etcordflag == 'B' ){ //기타구분이 신체감정일 경우
  3490. if( otpt_insukind != gsIlBan ){
  3491. model.setValue("/root/main/outrgst/ptin/ptin_insukind", '51'); //일반
  3492. cmb_insukind.dispatch("xforms-select");
  3493. }
  3494. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", '28'); //신체감정
  3495. fSuppKindSelect_outord();
  3496. }
  3497. fLItemRefresh();
  3498. }
  3499. function fSuppKindSelect_outord()
  3500. {
  3501. var otpt_insukind = model.getValue("/root/main/outrgst/ptin/ptin_insukind");
  3502. var otpt_suppkind = model.getValue("/root/main/outrgst/ptin/ptin_suppkind");
  3503. if (otpt_suppkind != gsSupp_BASE) cmb_suppkindresn.disabled = false;
  3504. else cmb_suppkindresn.disabled = true;
  3505. /* 사용되지 않는 로직으로 주석처리함(이정택 2017/02/22)
  3506. if (otpt_suppkind == supp_JABH && (otpt_insukind != gsSanJae && otpt_insukind != gsJaboKind))
  3507. {
  3508. messageBox("전액 보험자부담은 산재/자보인 경우에만 해당합니다!","E999","");
  3509. model.setValue("/root/main/outrgst/ptin/ptin_suppkind",gsSupp_BASE);
  3510. }
  3511. if (otpt_insukind == supp_HANDI && otpt_insukind != gsBoHo2)
  3512. {
  3513. messageBox("장애인은 의료급여2종인 경우에만 해당합니다!","E999","");
  3514. model.setValue("/root/main/outrgst/ptin/ptin_suppkind",gsSupp_BASE);
  3515. }
  3516. */
  3517. }
  3518. function fEtcordflag(){
  3519. //원래값과 비교필요
  3520. var otpt_etcordflag = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag");
  3521. if( otpt_etcordflag == 'B' ){
  3522. model.setValue("/root/main/outrgst/ptin/ptin_insukind", '51'); //일반
  3523. cmb_insukind.dispatch("xforms-select");
  3524. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", '28'); //신체감정
  3525. fLItemRefresh();
  3526. }
  3527. //기타진료구분 변경시, 계산버튼 활성화, 수납버튼 비활성화
  3528. btn_calc.disabled = false;
  3529. btn_rcpt.disabled = true;
  3530. }
  3531. //2007-12-27 이동식 추가 - 협진조회팝업 호출
  3532. function fGetEMRCnstInfo(){
  3533. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  3534. var hngnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  3535. setParameter("SPPMO01300_PID", pid);
  3536. setParameter("SPPMO01300_HNGNM", hngnm);
  3537. setParameter("SPPMO01300_FLAG", 'O'); //외래 플래그
  3538. modal("SPPMO01300", "1", "200", "200", "SPPMO01300", "", "");
  3539. var rtnMsg = getParameter("SPPMO01300_RTN");
  3540. if( rtnMsg == 'OK' ){
  3541. //변경/취소 내역이 선택되어 있는 경우 리턴
  3542. if (btn_stat.attribute("background-color") == "#ff0000")
  3543. {
  3544. messageBox("확인! 변경/취소 대상내역 선택되어있습니다! 변경/취소 또는 해제 후 진행하십시요!","E999","");
  3545. //model.toggle("case5");
  3546. return;
  3547. }else{
  3548. btn_stat.dispatch("DOMActivate");
  3549. }
  3550. var orddd = getParameter("SPPMO01300_ORDDD");
  3551. var orddeptcd = getParameter("SPPMO01300_ORDDEPTCD");
  3552. var orddrid = getParameter("SPPMO01300_ORDDRID");
  3553. //var formrecseq = getParameter("SPPMO01300_FORMRECSEQ");
  3554. model.setValue("/root/main/otpt/otpt_orddeptcd", orddeptcd);
  3555. cmb_orddeptcd.dispatch("xforms-value-changed");
  3556. model.setValue("/root/main/otpt/otpt_orddrid", orddrid);
  3557. cmb_orddrid.dispatch("xforms-value-changed");
  3558. model.setValue("/root/main/otpt/otpt_orddd", orddd);
  3559. ipt_orddd.dispatch("xforms-value-changed");
  3560. //model.makeNode("/root/main/otpt/otpt_formrecseq");
  3561. //model.setValue("/root/main/otpt/otpt_formrecseq", formrecseq);
  3562. //기초정보 세팅
  3563. model.setValue("/root/main/otpt/otpt_ordreqformflag", "0"); //진료의뢰서 수급절차 - 해당없음
  3564. model.setValue("/root/main/otpt/otpt_etcordflag", "H"); //기타구분 - 의뢰
  3565. model.setValue("/root/main/otpt/otpt_rsrvflag", "C"); //예약구분 - 협진
  3566. //model.refresh();
  3567. messageBox("선택하신 컨설트내역를 접수정보에 입력했습니다. 보험정보 확인 후 접수하십시요.", "I999", "");
  3568. return true;
  3569. }else{
  3570. return false;
  3571. }
  3572. }
  3573. function fbtn_cardamt() {
  3574. /*
  3575. if(model.getValue("/root/init/option/cardyn") != "Y") {
  3576. messageBox("수납방법이 카드가 아닙니다.","E999","");
  3577. return;
  3578. }
  3579. */
  3580. if(model.getvalue("/root/main/patinfo/patinfolist/pid") == "") {
  3581. messageBox("환자가 조회되어있지 않습니다.","I999","");
  3582. return;
  3583. }
  3584. if(model.getValue("/root/temp3/workgubn") == "N"){
  3585. if(btn_rcpt.disabled) {
  3586. messageBox("계산상태가 아닙니다. 재계산하십시요.","I999","");
  3587. return;
  3588. }
  3589. }
  3590. if(model.getvalue("/root/init/option/cardyn") != "Y") {
  3591. model.setvalue("/root/init/option/cardyn" , "Y");
  3592. frdo_cardyn();
  3593. frdo_cardyn_setamt();
  3594. }
  3595. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  3596. var opmi_precardamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_precardamt");
  3597. var opmi_cardamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt");
  3598. var opmi_rcptexptamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt");
  3599. if( opmi_cardamt != opmi_rcptexptamt && vOpmi_count > 1) {
  3600. messageBox("멀티수납시에는 부분카드수납은 불가능합니다.","E999","");
  3601. return;
  3602. }
  3603. if(!fOpenCardPopUp()){return false;}
  3604. /*
  3605. if(model.getvalue("/root/option/opt_cardck") != "Y"){
  3606. ////////실카드승인금액 표시
  3607. var s_card_amt = 0;
  3608. var s_card_cnt = getNodesetCount("/root/send/s_card/card/card_pid");
  3609. for (var a=1; a <= s_card_cnt ; a++) {
  3610. if(model.getvalue("/root/send/s_card/card["+a+"]/card_innrtretyn") == "N") {
  3611. s_card_amt = parseInt(model.getvalue("/root/send/s_card/card["+a+"]/card_cardamt")) + s_card_amt;
  3612. }
  3613. }
  3614. model.setvalue("/root/etc/cardvanamt" , "승인:" + s_card_amt);
  3615. opt_cardvanamt.refresh();
  3616. ////////실카드승인금액 표시 끝
  3617. //var TotCardAmt = getParameter("SPPAO00400_TotCardAmt");
  3618. //var temp = parseInt(TotCardAmt) - parseInt(opmi_precardamt);
  3619. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt",s_card_amt );
  3620. }
  3621. fipt_cashamt();
  3622. */
  3623. }
  3624. function fbl_cardck_select(){
  3625. model.setvalue("/root/etc/cardvanamt" , "");
  3626. opt_cardvanamt.refresh();
  3627. }
  3628. function fbl_cardck_deselect(){
  3629. ////////실카드승인금액 표시
  3630. var s_card_amt = 0;
  3631. var s_card_cnt = getNodesetCount("/root/send/s_card/card/card_pid");
  3632. for (var a=1; a <= s_card_cnt ; a++) {
  3633. if(model.getvalue("/root/send/s_card/card["+a+"]/card_innrtretyn") == "N") {
  3634. s_card_amt = parseInt(model.getvalue("/root/send/s_card/card["+a+"]/card_cardamt")) + s_card_amt;
  3635. }
  3636. }
  3637. if(s_card_amt != "0") {
  3638. model.setvalue("/root/etc/cardvanamt" , "승인:" + s_card_amt);
  3639. opt_cardvanamt.refresh();
  3640. }
  3641. ////////실카드승인금액 표시 끝
  3642. //var TotCardAmt = getParameter("SPPAO00400_TotCardAmt");
  3643. //var temp = parseInt(TotCardAmt) - parseInt(opmi_precardamt);
  3644. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt",s_card_amt );
  3645. }
  3646. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3647. // 카드승인 Function
  3648. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3649. function fOpenCardPopUp(flag){
  3650. /*
  3651. if(getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") == 0) {
  3652. messageBox("선택된 수납내역이 없습니다.","E999","");
  3653. return;
  3654. }
  3655. */
  3656. //등록/수정,취소
  3657. //일반등록,멀티등록
  3658. var parm;
  3659. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  3660. var orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd");
  3661. var orddeptcd; // = model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd");
  3662. var cretno = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_cretno");
  3663. var strRcvVan = '';
  3664. var ordtype = 'O';
  3665. var fromdd = ''; //필요없는 ???
  3666. var todd = ''; //필요없는 ???
  3667. var cardAmt = parseInt( model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_precardamt"))
  3668. + parseInt( model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt"));
  3669. if ( getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") > 0){
  3670. //멀티접수 카드 승인시 필요한 진료과/진료의 정보
  3671. orddeptcd = model.getValue("/root/hidden/rcv1/h_opmi/opmi[1]/opmi_orddeptcd");
  3672. orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi[1]/opmi_orddd");
  3673. }else{
  3674. //카드 승인시 필요한 진료과/진료의 정보
  3675. orddeptcd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddeptcd");
  3676. orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd");
  3677. }
  3678. //단일건 카드정보
  3679. var cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  3680. var valiterm = model.getValue("/root/main/outrgst/m_etc/valiterm");
  3681. var allotmm = model.getValue("/root/main/outrgst/m_etc/allotmm");
  3682. var keyinptflag = model.getValue("/root/main/outrgst/m_etc/keyinptflag");
  3683. var swipedata = model.getValue("/root/main/outrgst/m_etc/swipedata");
  3684. //처음에는 기카드노드를 보내고 그다음에는 send에서 주고받음
  3685. var send_card = "";
  3686. if(getNodesetCount("/root/send/s_card/card/card_pid") == 0){
  3687. send_card = "/root/hidden/rcv1/h_card";
  3688. }else{
  3689. send_card = "/root/send/s_card" ;
  3690. }
  3691. if (getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") < 2){
  3692. parm = "0" + "▦" + //멀티건수
  3693. "" + "▦" + //멀티opmi
  3694. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  3695. "" + "▦" + //rcptno
  3696. "" + "▦" + //rcptseqno
  3697. cardAmt + "▦" + //totalamt
  3698. send_card + "▦" + //send
  3699. "/root/send/s_card" + "▦" + //receive
  3700. pid + "▦" + //pid
  3701. orddd + "▦" + //orddd
  3702. cretno + "▦" + //cretno
  3703. strRcvVan + "▦" + //strRcvVan
  3704. ordtype + "▦" + //ordtype
  3705. fromdd + "▦" + //fromdd
  3706. todd + "▦" + //todd
  3707. orddeptcd + "▦" + //orddeptcd
  3708. //단일건 접수 승인일때만 필요
  3709. cardno + "▦" + //cardno
  3710. valiterm + "▦" + //valiterm
  3711. allotmm + "▦" + //allotmm
  3712. keyinptflag + "▦" + //KeyInptFlag
  3713. swipedata + "▦" ; //swipedata
  3714. }else{ //멀티접수
  3715. parm = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") + "▦" + //멀티건수
  3716. "/root/hidden/rcv1/h_opmi" + "▦" + //멀티opmi
  3717. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  3718. "" + "▦" + //rcptno
  3719. "" + "▦" + //rcptseqno
  3720. cardAmt + "▦" + //totalamt
  3721. send_card + "▦" + //send
  3722. "/root/send/s_card" + "▦" + //receive
  3723. pid + "▦" + //pid
  3724. orddd + "▦" + //orddd
  3725. cretno + "▦" + //cretno
  3726. strRcvVan + "▦" + //strRcvVan
  3727. ordtype + "▦" + //ordtype
  3728. fromdd + "▦" + //fromdd
  3729. todd + "▦" + //todd
  3730. orddeptcd + "▦" + //orddeptcd
  3731. //단일건 접수 승인일때만 필요
  3732. cardno + "▦" + //cardno
  3733. valiterm + "▦" + //valiterm
  3734. allotmm + "▦" + //allotmm
  3735. keyinptflag + "▦" + //KeyInptFlag
  3736. swipedata + "▦" ; //swipedata
  3737. }
  3738. setParameter("SPPAO00400_PARM",parm);
  3739. setParameter("SPPAO00400_FLAG", flag);
  3740. setParameter("SPPAO00400_RTNTYPE", "A");
  3741. //팝업 오픈 방식 체크
  3742. if( flag == 'I' || flag == 'D'){
  3743. var ivrObjt = document.all("ivr_cardpopup");
  3744. if( ivrObjt == null ){
  3745. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  3746. ivrObjt = document.all("ivr_cardpopup");
  3747. }
  3748. //setParameter("SPPAO00400_PARM",parm);
  3749. if( flag == 'I' ){
  3750. ivrObjt.window.javascript.fInit();
  3751. var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv(); //실제 카드승인
  3752. }else{
  3753. ivrObjt.window.javascript.fInit();
  3754. var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  3755. }
  3756. body.removeChild("ivr_cardpopup");
  3757. //결과값 리턴
  3758. if(retMsg == false) {
  3759. return false;
  3760. }
  3761. }else{
  3762. modal("SPPAO00400", "1","400", "400", "SPPAO00400", "", "");
  3763. //팝업 정상종료 여부!
  3764. if (getParameter("SPPAO00400_RTN") == "N" || getParameter("SPPAO00400_RTN") == ""){
  3765. return false;
  3766. }
  3767. }
  3768. for (var i = 1; i <= getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") ; i++) {
  3769. for (var k = 1; k <= getNodesetCount("/root/send/s_card/card/card_pid") ; k++) {
  3770. if (model.getValue( "/root/send/s_card/card["+ k +"]/card_mseqno") != model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_mseqno")) continue;
  3771. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddd" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd"));
  3772. model.makeValue("/root/send/s_card/card["+ k +"]/card_cretno" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno"));
  3773. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  3774. model.makeValue("/root/send/s_card/card["+ k +"]/card_cretno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  3775. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddeptcd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddeptcd_org"));
  3776. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddrid_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddrid_org"));
  3777. model.makeValue("/root/send/s_card/card["+ k +"]/card_rcptdd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptdd_org"));
  3778. model.makeValue("/root/send/s_card/card["+ k +"]/card_rcptno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptno_org"));
  3779. model.makeValue("/root/send/s_card/card["+ k +"]/card_rcptseqno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptseqno_org"));
  3780. }
  3781. }
  3782. return true;
  3783. }
  3784. function fOpenCardPopUp2(flag){
  3785. //등록/수정,취소
  3786. //일반등록,멀티등록
  3787. var parm;
  3788. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  3789. var orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd");
  3790. var orddeptcd; // = model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd");
  3791. var cretno = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_cretno");
  3792. var strRcvVan = '';
  3793. var ordtype = 'O';
  3794. var fromdd = ''; //필요없는 ???
  3795. var todd = ''; //필요없는 ???
  3796. var cardAmt = parseInt( model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt"));
  3797. if ( getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") > 0){
  3798. //멀티접수 카드 승인시 필요한 진료과/진료의 정보
  3799. orddeptcd = model.getValue("/root/hidden/rcv1/h_opmi/opmi[1]/opmi_orddeptcd");
  3800. orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi[1]/opmi_orddd");
  3801. }else{
  3802. //카드 승인시 필요한 진료과/진료의 정보
  3803. orddeptcd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddeptcd");
  3804. orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd");
  3805. }
  3806. //단일건 카드정보
  3807. var cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  3808. var valiterm = model.getValue("/root/main/outrgst/m_etc/valiterm");
  3809. var allotmm = model.getValue("/root/main/outrgst/m_etc/allotmm");
  3810. var keyinptflag = model.getValue("/root/main/outrgst/m_etc/keyinptflag");
  3811. var swipedata = model.getValue("/root/main/outrgst/m_etc/swipedata");
  3812. // 치과 신용카드 IC칩 결제관련 프로그램 수정 (2016/05/11)
  3813. if(isNull(allotmm)){
  3814. allotmm='00';
  3815. }
  3816. // 치과 신용카드 IC칩 결제관련 프로그램 수정
  3817. //처음에는 기카드노드를 보내고 그다음에는 send에서 주고받음
  3818. var send_card = "";
  3819. if(getNodesetCount("/root/send/s_card/card/card_pid") == 0){
  3820. send_card = "/root/hidden/rcv1/h_card";
  3821. }else{
  3822. send_card = "/root/send/s_card" ;
  3823. }
  3824. if(getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") < 2){
  3825. parm = "0" + "▦" + //멀티건수
  3826. "" + "▦" + //멀티opmi
  3827. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  3828. "" + "▦" + //rcptno
  3829. "" + "▦" + //rcptseqno
  3830. cardAmt + "▦" + //totalamt
  3831. "" + "▦" + //send
  3832. "/root/send/s_card" + "▦" + //receive
  3833. pid + "▦" + //pid
  3834. orddd + "▦" + //orddd
  3835. cretno + "▦" + //cretno
  3836. strRcvVan + "▦" + //strRcvVan
  3837. ordtype + "▦" + //ordtype
  3838. fromdd + "▦" + //fromdd
  3839. todd + "▦" + //todd
  3840. orddeptcd + "▦" + //orddeptcd
  3841. //단일건 접수 승인일때만 필요
  3842. cardno + "▦" + //cardno
  3843. valiterm + "▦" + //valiterm
  3844. allotmm + "▦" + //allotmm
  3845. keyinptflag + "▦" + //KeyInptFlag
  3846. swipedata + "▦" ; //swipedata
  3847. setParameter("SPPAO00400_PARM",parm);
  3848. setParameter("SPPAO00400_FLAG",flag);
  3849. if(fCall_SPPAO00400(flag) == false) {return false;}
  3850. }else{
  3851. //멀티접수
  3852. var divide_flag = true;
  3853. //승인금액중 (-)금액이 있으면 기존방식으로 승인
  3854. for(var a =1; a <= getNodesetCount("/root/send/s_opmi/opmi/opmi_cardamt") ; a++){
  3855. if(parseInt(model.getValue("/root/send/s_opmi/opmi["+ a +"]/opmi_cardamt")) < 0) {divide_flag = false; break;}
  3856. }
  3857. //분할승인 사용유무
  3858. if(model.getvalue("/root/init/basecdlist/P0032[cdid='210']/cdnm") != "Y") {divide_flag = false;}
  3859. if(divide_flag == true){
  3860. //분할승인 시작
  3861. for(var a =1; a <= getNodesetCount("/root/send/s_opmi/opmi/opmi_cardamt") ; a++){
  3862. cardAmt = model.getValue("/root/send/s_opmi/opmi["+ a +"]/opmi_cardamt");
  3863. if(cardAmt == 0) {continue;}
  3864. parm = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") + "▦" + //멀티건수
  3865. "/root/hidden/rcv1/h_opmi" + "▦" + //멀티opmi
  3866. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  3867. "" + "▦" + //rcptno
  3868. "" + "▦" + //rcptseqno
  3869. cardAmt + "▦" + //totalamt
  3870. "" + "▦" + //send
  3871. "/root/send/s_card" + "▦" + //receive
  3872. pid + "▦" + //pid
  3873. orddd + "▦" + //orddd
  3874. cretno + "▦" + //cretno
  3875. strRcvVan + "▦" + //strRcvVan
  3876. ordtype + "▦" + //ordtype
  3877. fromdd + "▦" + //fromdd
  3878. todd + "▦" + //todd
  3879. orddeptcd + "▦" + //orddeptcd
  3880. //단일건 접수 승인일때만 필요
  3881. cardno + "▦" + //cardno
  3882. valiterm + "▦" + //valiterm
  3883. allotmm + "▦" + //allotmm
  3884. keyinptflag + "▦" + //KeyInptFlag
  3885. swipedata + "▦" ; //swipedata
  3886. setParameter("SPPAO00400_PARM",parm);
  3887. setParameter("SPPAO00400_FLAG",flag);
  3888. if(fCall_SPPAO00400(flag) == false) {return false;}
  3889. model.makenode("/root/temp8/card["+ a +"]/card_aprvno");
  3890. model.copynode("/root/temp8/card["+ a +"]" , "/root/send/s_card/card["+ a +"]");
  3891. }
  3892. model.copynode( "/root/send/s_card" , "/root/temp8");
  3893. //분할승인 종료
  3894. }else{
  3895. //기존방식 승인
  3896. parm = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") + "▦" + //멀티건수
  3897. "/root/hidden/rcv1/h_opmi" + "▦" + //멀티opmi
  3898. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  3899. "" + "▦" + //rcptno
  3900. "" + "▦" + //rcptseqno
  3901. cardAmt + "▦" + //totalamt
  3902. "" + "▦" + //send
  3903. "/root/send/s_card" + "▦" + //receive
  3904. pid + "▦" + //pid
  3905. orddd + "▦" + //orddd
  3906. cretno + "▦" + //cretno
  3907. strRcvVan + "▦" + //strRcvVan
  3908. ordtype + "▦" + //ordtype
  3909. fromdd + "▦" + //fromdd
  3910. todd + "▦" + //todd
  3911. orddeptcd + "▦" + //orddeptcd
  3912. //단일건 접수 승인일때만 필요
  3913. cardno + "▦" + //cardno
  3914. valiterm + "▦" + //valiterm
  3915. allotmm + "▦" + //allotmm
  3916. keyinptflag + "▦" + //KeyInptFlag
  3917. swipedata + "▦" ; //swipedata
  3918. setParameter("SPPAO00400_PARM",parm);
  3919. setParameter("SPPAO00400_FLAG",flag);
  3920. if(fCall_SPPAO00400(flag) == false) {return false;}
  3921. }
  3922. }
  3923. for (var i = 1; i <= getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") ; i++) {
  3924. for (var k = 1; k <= getNodesetCount("/root/send/s_card/card/card_pid") ; k++) {
  3925. if (model.getValue( "/root/send/s_card/card["+ k +"]/card_mseqno") != model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_mseqno")) continue;
  3926. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddd" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd"));
  3927. model.makeValue("/root/send/s_card/card["+ k +"]/card_cretno" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno"));
  3928. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  3929. model.makeValue("/root/send/s_card/card["+ k +"]/card_cretno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  3930. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddeptcd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddeptcd_org"));
  3931. model.makeValue("/root/send/s_card/card["+ k +"]/card_orddrid_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddrid_org"));
  3932. model.makeValue("/root/send/s_card/card["+ k +"]/card_rcptdd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptdd_org"));
  3933. model.makeValue("/root/send/s_card/card["+ k +"]/card_rcptno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptno_org"));
  3934. model.makeValue("/root/send/s_card/card["+ k +"]/card_rcptseqno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptseqno_org"));
  3935. }
  3936. }
  3937. return true;
  3938. }
  3939. function fCall_SPPAO00400(flag){
  3940. //팝업 오픈 방식 체크
  3941. if( flag == 'I' || flag == 'D'){
  3942. var ivrObjt = document.all("ivr_cardpopup");
  3943. if( ivrObjt == null ){
  3944. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  3945. ivrObjt = document.all("ivr_cardpopup");
  3946. }
  3947. if( flag == 'I' ){
  3948. ivrObjt.window.javascript.fInit();
  3949. var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv(); //실제 카드승인
  3950. }else{
  3951. ivrObjt.window.javascript.fInit();
  3952. var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  3953. }
  3954. body.removeChild("ivr_cardpopup");
  3955. //결과값 리턴
  3956. if(retMsg == false) {
  3957. return false;
  3958. }
  3959. }else{
  3960. modal("SPPAO00400", "1","400", "400", "SPPAO00400", "", "");
  3961. //팝업 정상종료 여부!
  3962. if (getParameter("SPPAO00400_RTN") == "N" || getParameter("SPPAO00400_RTN") == ""){
  3963. return false;
  3964. }
  3965. }
  3966. }
  3967. function fOpenCardPopUp3(flag , caller){
  3968. //등록/수정,취소
  3969. //일반등록,멀티등록
  3970. var parm;
  3971. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  3972. var orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd");
  3973. var orddeptcd; // = model.getValue("/root/send/s_opmi/opmi/opmi_orddeptcd");
  3974. var cretno = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_cretno");
  3975. var strRcvVan = '';
  3976. var ordtype = 'O';
  3977. var fromdd = ''; //필요없는 ???
  3978. var todd = ''; //필요없는 ???
  3979. if(caller == "산전지원비") {
  3980. var cardAmt = parseInt( model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt"));
  3981. setParameter("SPPAO00400_PREGDMNDYN", 'Y');
  3982. }else{
  3983. var cardAmt = parseInt( model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt"));
  3984. }
  3985. if ( getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") > 0){
  3986. //멀티접수 카드 승인시 필요한 진료과/진료의 정보
  3987. orddeptcd = model.getValue("/root/hidden/rcv1/h_opmi/opmi[1]/opmi_orddeptcd");
  3988. orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi[1]/opmi_orddd");
  3989. }else{
  3990. //카드 승인시 필요한 진료과/진료의 정보
  3991. orddeptcd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddeptcd");
  3992. orddd = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd");
  3993. }
  3994. //단일건 카드정보
  3995. var cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  3996. var valiterm = model.getValue("/root/main/outrgst/m_etc/valiterm");
  3997. var allotmm = model.getValue("/root/main/outrgst/m_etc/allotmm");
  3998. var keyinptflag = model.getValue("/root/main/outrgst/m_etc/keyinptflag");
  3999. var swipedata = model.getValue("/root/main/outrgst/m_etc/swipedata");
  4000. /*
  4001. //처음에는 기카드노드를 보내고 그다음에는 send에서 주고받음
  4002. var send_card = "";
  4003. if(getNodesetCount("/root/send/s_card/card/card_pid") == 0){
  4004. send_card = "/root/hidden/rcv1/h_card";
  4005. }else{
  4006. send_card = "/root/send/s_card" ;
  4007. }
  4008. */
  4009. if (getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") < 2)
  4010. {
  4011. parm = "0" + "▦" + //멀티건수
  4012. "" + "▦" + //멀티opmi
  4013. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  4014. "" + "▦" + //rcptno
  4015. "" + "▦" + //rcptseqno
  4016. cardAmt + "▦" + //totalamt
  4017. "" + "▦" + //send
  4018. "/root/send/s_card" + "▦" + //receive
  4019. pid + "▦" + //pid
  4020. orddd + "▦" + //orddd
  4021. cretno + "▦" + //cretno
  4022. strRcvVan + "▦" + //strRcvVan
  4023. ordtype + "▦" + //ordtype
  4024. fromdd + "▦" + //fromdd
  4025. todd + "▦" + //todd
  4026. orddeptcd + "▦" + //orddeptcd
  4027. //단일건 접수 승인일때만 필요
  4028. cardno + "▦" + //cardno
  4029. valiterm + "▦" + //valiterm
  4030. allotmm + "▦" + //allotmm
  4031. keyinptflag + "▦" + //KeyInptFlag
  4032. swipedata + "▦" ; //swipedata
  4033. }else{ //멀티접수
  4034. parm = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") + "▦" + //멀티건수
  4035. "/root/hidden/rcv1/h_opmi" + "▦" + //멀티opmi
  4036. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  4037. "" + "▦" + //rcptno
  4038. "" + "▦" + //rcptseqno
  4039. cardAmt + "▦" + //totalamt
  4040. "" + "▦" + //send
  4041. "/root/send/s_card" + "▦" + //receive
  4042. pid + "▦" + //pid
  4043. orddd + "▦" + //orddd
  4044. cretno + "▦" + //cretno
  4045. strRcvVan + "▦" + //strRcvVan
  4046. ordtype + "▦" + //ordtype
  4047. fromdd + "▦" + //fromdd
  4048. todd + "▦" + //todd
  4049. orddeptcd + "▦" + //orddeptcd
  4050. //단일건 접수 승인일때만 필요
  4051. cardno + "▦" + //cardno
  4052. valiterm + "▦" + //valiterm
  4053. allotmm + "▦" + //allotmm
  4054. keyinptflag + "▦" + //KeyInptFlag
  4055. swipedata + "▦" ; //swipedata
  4056. }
  4057. setParameter("SPPAO00400_PARM",parm);
  4058. setParameter("SPPAO00400_FLAG", flag);
  4059. //팝업 오픈 방식 체크
  4060. if( flag == 'I' || flag == 'D'){
  4061. var ivrObjt = document.all("ivr_cardpopup");
  4062. if( ivrObjt == null ){
  4063. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  4064. ivrObjt = document.all("ivr_cardpopup");
  4065. }
  4066. //setParameter("SPPAO00400_PARM",parm);
  4067. if( flag == 'I' ){
  4068. ivrObjt.window.javascript.fInit();
  4069. var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv(); //실제 카드승인
  4070. }else{
  4071. ivrObjt.window.javascript.fInit();
  4072. var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  4073. }
  4074. body.removeChild("ivr_cardpopup");
  4075. //결과값 리턴
  4076. if(retMsg == false) {
  4077. return false;
  4078. }
  4079. }else{
  4080. modal("SPPAO00400", "1","400", "400", "SPPAO00400", "", "");
  4081. //팝업 정상종료 여부!
  4082. if (getParameter("SPPAO00400_RTN") == "N" || getParameter("SPPAO00400_RTN") == ""){
  4083. return false;
  4084. }
  4085. }
  4086. return true;
  4087. }
  4088. function fSelectInsu() {
  4089. //보험정보 선택시, 기존 내용 clear
  4090. fClearInsu();
  4091. //보조유형 세팅하기
  4092. fSuppKindSet(model.getValue("/root/main/outrgst/ptin/ptin_insukind"));
  4093. //보조유형 정상 디폴트 세팅
  4094. model.setValue("/root/main/outrgst/ptin/ptin_suppkind",gsSupp_BASE);
  4095. //관계:본인으로 디폴트 세팅
  4096. //model.setValue("root/main/outrgst/ptin/ptin_insdrela","1"); //본인으로 디폴트 세팅
  4097. //cmb_insdrela.dispatch("xforms-select");
  4098. cmb_suppkind.dispatch("xforms-select");
  4099. //보험 탭 세팅하기(코드값 바뀔수 있음-나중에 상수로 정의할 필요있음)
  4100. //건강보험,의료급여1,2종,일반,외국인
  4101. //추후 상수로 처리예정
  4102. //gsInsu_BoHeom = "11"; //건강보험
  4103. //gsInsu_BoHo1 = "21"; //의료급여1
  4104. //gsInsu_BoHo2 = "22"; //의료급여2
  4105. //gsInsu_HangYeo = "24"; //행여
  4106. //gsInsu_JaboKind = "31"; //자보
  4107. //gsInsu_SanJae = "41"; //산재
  4108. //gsInsu_GongSang = "42"; //공상
  4109. //gsInsu_IlBan = "51"; //일반
  4110. //gsInsu_ForIn = "61"; //외국인
  4111. //gsInsu_ImSang = "71"; //임상시험
  4112. if ((cmb_insukind.value == gsInsu_BoHeom)||(cmb_insukind.value == gsInsu_BoHo1)||(cmb_insukind.value == gsInsu_BoHo2 )||
  4113. (cmb_insukind.value == gsInsu_IlBan) ||(cmb_insukind.value == gsInsu_ForIn)||(cmb_insukind.value == gsInsu_ImSang)) {
  4114. model.toggle("case_base");
  4115. if (cmb_insukind.value == gsInsu_BoHeom) {
  4116. model.setValue("/root/main/outrgst/ptin/ptin_insucd",gsInsuCd_Default); //건강보험이면, 0015 자동세팅
  4117. }
  4118. if (cmb_insukind.value == gsInsu_IlBan) {
  4119. model.setValue("/root/main/outrgst/ptin/ptin_insucd","-");
  4120. }
  4121. ipt_insucd.dispatch("DOMFocusOut");
  4122. }
  4123. //자보
  4124. if (cmb_insukind.value == gsInsu_JaboKind)
  4125. model.toggle("case_ta");
  4126. //산재
  4127. if (cmb_insukind.value == gsInsu_SanJae)
  4128. model.toggle("case_inducs");
  4129. //공상
  4130. if (cmb_insukind.value == gsInsu_GongSang)
  4131. model.toggle("case_dutywund");
  4132. if (model.getValue("/root/main/patinfo/patinfolist/pid").length <= 0) {
  4133. messageBox("환자등록번호를 정확히", "C001");
  4134. return;
  4135. }
  4136. fLItemRefresh();
  4137. }
  4138. //이동재20080124 멀티카드취소
  4139. function fMultiSaveHistRef() {
  4140. copyNodeListType("/root/hidden/cotpt","/root/main/outrgst/m_otpt","after");
  4141. model.makeNode("/root/hidden/cotpt/m_otpt/sess_dutplceinstcd");
  4142. model.setValue("/root/hidden/cotpt/m_otpt/sess_dutplceinstcd",model.getValue("/root/hidden/session/dutplceinstcd"));
  4143. if (submit("TRPMO00108") == true)
  4144. {
  4145. //묶인 외래이력
  4146. if (getNodesetCount("/root/hidden/cncl/rcv/c_otpt/otpt/otpt_pid") > 0)
  4147. {
  4148. model.copyNode("/root/main/cncl/c_otpt","/root/hidden/cncl/rcv/c_otpt");
  4149. var vCotptCount = getNodesetCount("/root/main/cncl/c_otpt/otpt/otpt_pid");
  4150. var vSotptCount = getNodesetCount("/root/hidden/cotpt/m_otpt/otpt/otpt_pid");
  4151. for (var i = 1; i <= vSotptCount ; i++) {
  4152. for (var k = 1; k <= vCotptCount ; k++) {
  4153. if ( model.getValue("/root/hidden/cotpt/m_otpt/otpt[" + i + "]/otpt_orddd") == model.getValue("/root/main/cncl/c_otpt/otpt[" + k + "]/otpt_orddd") &&
  4154. model.getValue("/root/hidden/cotpt/m_otpt/otpt[" + i + "]/otpt_cretno") == model.getValue("/root/main/cncl/c_otpt/otpt[" + k + "]/otpt_cretno") ) {
  4155. model.makeNode("/root/main/cncl/c_otpt/otpt[" + k + "]/otpt_check")
  4156. model.setValue("/root/main/cncl/c_otpt/otpt[" + k + "]/otpt_check", "Y");
  4157. }
  4158. }
  4159. }
  4160. model.copyNode("/root/main/cncl/c_opmi","/root/hidden/cncl/rcv/c_opmi");
  4161. //멀리 취소할 이력 체크박스 선택/해제시 수납내역 summary display 필요
  4162. var card_msg = "";
  4163. var cash_msg = "";
  4164. //카드
  4165. if (getNodesetCount("/root/hidden/cncl/rcv/c_card/card/card_pid") > 0)
  4166. {
  4167. model.copyNode("/root/main/cncl/c_card","/root/hidden/cncl/rcv/c_card");
  4168. card_msg = "카드";
  4169. }
  4170. //현금
  4171. if (getNodesetCount("/root/hidden/cncl/rcv/c_cash/cash/cash_pid") > 0)
  4172. {
  4173. model.copyNode("/root/main/cncl/c_cash","/root/hidden/cncl/rcv/c_cash");
  4174. cash_msg = "현금";
  4175. }
  4176. //취소시 멀티 내역 단독으로 변경/취소 시 승인 내역 조작 체크, 일괄 취소시 카드 승인 취소 가능
  4177. messageBox("멀티수납시 승인한 " + card_msg + " " + cash_msg + "내역이 존재합니다!", "E999","");
  4178. }
  4179. }
  4180. }
  4181. //2008-02-11 추가
  4182. function fCheckPsnRetireInfo(){
  4183. var disccd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_disccd");
  4184. if( disccd != '' && disccd != ' ' && disccd != '-'){
  4185. if( disccd == 'A01' || disccd == 'A02' || disccd == 'A03' || disccd == 'A04'){
  4186. var rrgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  4187. var rrgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  4188. var orddd = getCurrentDate(); //현재날짜
  4189. var rrgstno = rrgstno1 + rrgstno2;
  4190. if( rrgstno != '' || rrgstno != ' ' || rrgstno != '-' ){
  4191. if( ! fGetPsnRetireInfo(rrgstno, orddd)){
  4192. model.setFocus("ipt_disccd");
  4193. return false;
  4194. }
  4195. }
  4196. }
  4197. }
  4198. return true;
  4199. }
  4200. //정산화면 opmi리스트 클릭시
  4201. function fGetJOpmiList() {
  4202. if(getNodesetCount("/root/main/baseinfo/otpt_calcflagn/otpt/otpt_pid") > 0) {
  4203. copyNodeListType("/root/send/s_otpt" , "/root/main/baseinfo/otpt_calcflagn/otpt[otpt_checkflag='true']", "replace" , model , model);
  4204. submit("TRPAO00114");
  4205. copyNodeType("/root/hidden/rcvj/h_opmi", "/root/temp5/h_opmi" , "replace" , model , model);
  4206. grd_rcptlist.rebuild();
  4207. //if(grd_rcptlist.rows > 1) {
  4208. // setTree(grd_rcptlist, 0, 0, true);
  4209. //}
  4210. btn_Jopmi.dispatch("onclick");
  4211. }
  4212. }
  4213. function fGetJOsclList() {
  4214. var grd_cnt = grd_rcptlist.row;
  4215. copyNodeListType("/root/send/s_opmi" , "/root/hidden/rcvj/h_opmi/opmi["+grd_cnt+"]", "replace" , model , model);
  4216. submit("TRPAO00115");
  4217. copyNodesetType("/root/hidden/rcvj/h_oscl", "/root/temp5/h_oscl" , "replace" , model , model);
  4218. grd_joscllist.rebuild();
  4219. if(isXPathTextNull("/root/temp5/h_oscl/oscl")){
  4220. setTree(grd_joscllist, 0, 0, true);
  4221. }
  4222. btn_Joscl.dispatch("onclick");
  4223. }
  4224. //수납,정산,실시정산 선택
  4225. function fSelectWorkgubn() {
  4226. if(model.getValue("/root/temp3/workgubn") == "Y"){
  4227. swt_jungrcpt.attribute("visibility") = "hidden";
  4228. //button11.attribute("text") = "외래수납";
  4229. btn_hold.disabled = false; //Hold/Release
  4230. btn_calc.disabled = false; //재계산
  4231. //button9.attribute("visibility") = ""; //수납조회
  4232. //button19.attribute("visibility") = ""; //컨설트조회
  4233. //button17.attribute("visibility") = ""; //자보산재공상관리
  4234. //button12.attribute("visibility") = ""; //진단서
  4235. //button26.attribute("visibility") = ""; //상세이력조회
  4236. //button27.attribute("visibility") = ""; //인적사항변경
  4237. //button15.attribute("visibility") = ""; //보험기호관리
  4238. //btn_proc.attribute("visibility") = ""; //의료급여승인
  4239. btn_hocm.disabled = false; //방문간호지시서
  4240. btn_drcm.disabled = false; //의사소견서
  4241. button8.disabled = false; //투석
  4242. button25.disabled = false; //장애
  4243. button29.disabled = false; //감면관리
  4244. //btn_check.attribute("visibility") = ""; //수표조회
  4245. model.toggle("case_Osunap");
  4246. }
  4247. if(model.getValue("/root/temp3/workgubn") == "N"){
  4248. swt_jungrcpt.attribute("visibility") = "";
  4249. //button11.attribute("text") = "외래정산";
  4250. model.setValue("/root/temp3/jsfromdd", getCurrentDate().toDate().getAddDate(-1,"Y").getDateFormat());
  4251. model.setValue("/root/temp3/jstodd",getCurrentDate());
  4252. model.setValue("/root/temp3/jssrchcond","1"); //수납선택(조회조건)
  4253. btn_hold.disabled = true; //Hold/Release
  4254. btn_calc.disabled = false; //재계산
  4255. //button9.attribute("visibility") = "hidden"; //수납조회
  4256. //button19.attribute("visibility") = "hidden"; //컨설트조회
  4257. //button17.attribute("visibility") = "hidden"; //자보산재공상관리
  4258. //button12.attribute("visibility") = "hidden"; //진단서
  4259. //button26.attribute("visibility") = "hidden"; //상세이력조회
  4260. //button27.attribute("visibility") = "hidden"; //인적사항변경
  4261. //button15.attribute("visibility") = "hidden"; //보험기호관리
  4262. //btn_proc.attribute("visibility") = "hidden"; //의료급여승인
  4263. btn_hocm.disabled = false; //방문간호지시서
  4264. btn_drcm.disabled = false; //의사소견서
  4265. button8.disabled = true; //투석
  4266. button25.disabled = true; //장애
  4267. button29.disabled = true; //감면관리
  4268. //btn_check.attribute("visibility") = "hidden"; //수표조회
  4269. model.toggle("case_jungsan");
  4270. }
  4271. if(model.getValue("/root/temp3/workgubn") == "E"){
  4272. btn_hold.disabled = true; //Hold/Release
  4273. btn_calc.disabled = true; //재계산
  4274. //button9.attribute("visibility") = "hidden"; //수납조회
  4275. //button19.attribute("visibility") = "hidden"; //컨설트조회
  4276. //button17.attribute("visibility") = "hidden"; //자보산재공상관리
  4277. //button12.attribute("visibility") = "hidden"; //진단서
  4278. //button26.attribute("visibility") = "hidden"; //상세이력조회
  4279. //button27.attribute("visibility") = "hidden"; //인적사항변경
  4280. //Button15.attribute("visibility") = "hidden"; //보험기호관리
  4281. //btn_proc.attribute("visibility") = "hidden"; //의료급여승인
  4282. btn_hocm.disabled = true; //방문간호지시서
  4283. btn_drcm.disabled = true; //의사소견서
  4284. button8.disabled = true; //투석
  4285. button25.disabled = true; //장애
  4286. button29.disabled = true; //감면관리
  4287. //btn_check.attribute("visibility") = "hidden"; //수표조회
  4288. model.toggle("case_execjungsan");
  4289. }
  4290. }
  4291. //수납할 금액 계산 -- smpark 수납화면 금액변경 keyevent
  4292. function fCalcRcptexptAmt() {
  4293. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_calcflag") == "Y"){
  4294. return;
  4295. }
  4296. var vopmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  4297. var vopmi_Org_rcptexptamt_sum = 0;
  4298. var vopmi_Real_rcptexptamt_sum = 0;
  4299. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_bloddiscamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_bloddiscamt").removeMask(","));
  4300. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt").removeMask(","));
  4301. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt").removeMask(","));
  4302. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt").removeMask(","));
  4303. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt").removeMask(","));
  4304. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt").removeMask(","));
  4305. for(var i=0; i<vopmi_count; i++){
  4306. //기존 납부할 금액 = 총본인부담금 - (서버에서 계산되어오는 제외할 금액: 기현금액,기카드,기온라인,기선수,장애기금,대불액,희귀난치,계정감면)
  4307. //20090701 1.단수처리 고시적용
  4308. //vopmi_Org_rcptexptamt_sum = vopmi_Org_rcptexptamt_sum + parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_totownbamt"))
  4309. vopmi_Org_rcptexptamt_sum = vopmi_Org_rcptexptamt_sum + parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_totownbamt100"))
  4310. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_precashamt"))
  4311. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_precardamt"))
  4312. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_preonlineamt"))
  4313. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_premdlrcptamt"))
  4314. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_prepregdmndamt"))
  4315. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_handcapfund"))
  4316. //- parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_ersubtamt")) //상한제초과액으로 용도변경되서 안씀
  4317. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_suppamt"))
  4318. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_discamt"))
  4319. - parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_restamt"))
  4320. //2011-07-01 미용부가세 고시 적용
  4321. + parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ (i+1)+"]/opmi_taxamt"))
  4322. ;
  4323. }
  4324. //실제 납부할금액 = 기존 납부할 금액 - 수혈대체액-건유비-산전지원금- 임의감면- 미수액-선수금
  4325. vopmi_Real_rcptexptamt_sum = vopmi_Org_rcptexptamt_sum - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_bloddiscamt"))
  4326. - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt"))
  4327. - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt"))
  4328. - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt"))
  4329. - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt"))
  4330. - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt"))
  4331. ;
  4332. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt", vopmi_Real_rcptexptamt_sum);
  4333. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_paydepoamt" , vopmi_Real_rcptexptamt_sum);
  4334. rdo_cardyn.dispatch("xforms-select");
  4335. }
  4336. function frdo_cardyn(){
  4337. rdo_cardyn.refresh();
  4338. rdo_indyn.refresh();
  4339. ipt_cardno.refresh();
  4340. /* 2016/07/29 주석처리함
  4341. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_calcflag") == "Y") {
  4342. messageBox("미계산건입니다. 계산해주십시요.", "I999");
  4343. return;
  4344. }
  4345. */
  4346. //카드
  4347. if(model.getvalue("/root/init/option/cardyn") == "Y"){
  4348. //소득공제/지출증빙 체크 비활성화
  4349. //rdo_indyn.disabled = true;
  4350. model.setvalue("/root/main/outrgst/m_etc/indinstflag" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  4351. model.setValue("/root/main/outrgst/m_etc/cardno" , "");
  4352. model.setValue("/root/main/outrgst/m_etc/valiterm" , "");
  4353. model.setValue("/root/main/outrgst/m_etc/allotmm" , "");
  4354. model.setValue("/root/main/outrgst/m_etc/swipedata" , "");
  4355. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt" , opmi_rcptexptamt);
  4356. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt" , "0" );
  4357. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt" , "0" );
  4358. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt" , opmi_heallifeamtclamamt );
  4359. model.setFocus("ipt_cardno");
  4360. }
  4361. //현금영수증
  4362. if(model.getvalue("/root/init/option/cardyn") == "N"){
  4363. model.setValue("/root/main/outrgst/m_etc/indinstflag" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  4364. //현금영수증 관련 기본세팅 우선순위 : 0.입력한 현금영수증 번호 1.기현금영수증 승인번호 2.주민번호 3.현금영수증카드나 신용카드
  4365. //현금영수증번호 디폴트번호 (세팅입력한 현금영수증 번호가 없거나 신용카드(유효기간으로 체크) 번호로 존재할시)
  4366. if(model.getValue("/root/main/outrgst/m_etc/cardno") == "" || model.getValue("/root/main/outrgst/m_etc/valiterm") != ""){
  4367. //일단 주민번호셋팅
  4368. model.setValue("/root/main/outrgst/m_etc/cardno", model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  4369. //디폴트 현금영수증 번호있으면 가져온다. pacmcshb
  4370. var cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  4371. if(cshb_qualcnfmno != "" && cshb_qualcnfmno != null ) {
  4372. model.setValue("/root/main/outrgst/m_etc/cardno",cshb_qualcnfmno);
  4373. }
  4374. }
  4375. ipt_cardno.refresh();
  4376. //HP번호셋팅 (혹시 HP가 있다면.)
  4377. //var temp = model.getValue("/root/main/patinfo/patinfolist/mpphontel").removeMask("-");
  4378. //if(temp.length == 10 || temp.length == 11 ) {
  4379. // model.setValue("/root/main/outrgst/m_etc/cardno",temp);
  4380. //}
  4381. model.setValue("/root/main/outrgst/m_etc/valiterm" , "");
  4382. model.setValue("/root/main/outrgst/m_etc/allotmm" , "");
  4383. model.setValue("/root/main/outrgst/m_etc/swipedata" , "");
  4384. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt" , "0" );
  4385. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt" , opmi_rcptexptamt);
  4386. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt" , "0" );
  4387. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt" , opmi_heallifeamtclamamt );
  4388. fipt_cardno_changed();
  4389. model.setFocus("ipt_cashamt");
  4390. }
  4391. //그냥 현금결제.
  4392. if(model.getvalue("/root/init/option/cardyn") == "C"){
  4393. model.setvalue("/root/main/outrgst/m_etc/indinstflag" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  4394. model.setValue("/root/main/outrgst/m_etc/cardno" , "");
  4395. model.setValue("/root/main/outrgst/m_etc/valiterm" , "");
  4396. model.setValue("/root/main/outrgst/m_etc/allotmm" , "");
  4397. model.setValue("/root/main/outrgst/m_etc/swipedata" , "");
  4398. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt" , "0" );
  4399. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt" , opmi_rcptexptamt);
  4400. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt" , "0" );
  4401. //model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt" , opmi_heallifeamtclamamt );
  4402. model.setFocus("ipt_cashamt");
  4403. }
  4404. fRItemRefresh();
  4405. fDisplayAmt_pamjs();
  4406. }
  4407. function frdo_cardyn_setamt(){
  4408. if(model.getvalue("/root/init/option/cardyn") == "Y"){
  4409. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"));
  4410. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt" , "0" );
  4411. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt" , "0" );
  4412. }
  4413. if (model.getvalue("/root/init/option/cardyn") == "N" || model.getvalue("/root/init/option/cardyn") == "C"){
  4414. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt" , "0" );
  4415. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt" , model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"));
  4416. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt" , "0" );
  4417. }
  4418. ipt_cardamt.refresh();
  4419. ipt_cashamt.refresh();
  4420. ipt_onlineamt.refresh();
  4421. }
  4422. function fipt_cardno_changed() {
  4423. fopmi_removemask();
  4424. //var ipt_cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  4425. if(ipt_cardno.value.length >30 && ipt_cardno.value.indexOf("=") >0 ) {
  4426. model.setvalue("/root/init/option/cardyn", "Y");
  4427. //model.setvalue("/root/main/outrgst/m_etc/indinstflag","02");
  4428. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt") == "0") {
  4429. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt", parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt")) + parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt")));
  4430. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt", "0");
  4431. }
  4432. }
  4433. //엔터키 쳤을때 같은 이벤트
  4434. if ( model.getValue("/root/init/option/cardyn")== "Y" || model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt") > 0){
  4435. if (ipt_cardno.value.length >16) {
  4436. //16자리보다 크면,
  4437. // "="이 있으면, swipe
  4438. if (ipt_cardno.value.indexOf("=") >0 ) {
  4439. var vSwipeData = "";
  4440. var vCardno_array = "";
  4441. var vCardno = "";
  4442. vSwipeData = ipt_cardno.value;
  4443. // swipe 시 첫글자에 ?
  4444. if ( vSwipeData.indexOf("?") >= 0 ) {
  4445. vSwipeData = (vSwipeData).substr(1,37);
  4446. }
  4447. if ( vSwipeData.indexOf("/") >= 0 ) {
  4448. vSwipeData = (vSwipeData).substr(1,37);
  4449. }
  4450. model.setValue("/root/main/outrgst/m_etc/swipedata", vSwipeData );
  4451. vCardno_array = vSwipeData.split("=");
  4452. vCardno = vCardno_array[0];
  4453. // swipe 시 첫글자에 ?
  4454. if ( vCardno.indexOf("?") >= 0 ) {
  4455. vCardno = (vCardno).substr(1,16);
  4456. }
  4457. if ( vCardno.indexOf("/") >= 0 ) {
  4458. vCardno = (vCardno).substr(1,16);
  4459. }
  4460. //유효일자
  4461. var vValiterm = (vCardno_array[1]).substr(0,4);
  4462. model.setValue("/root/main/outrgst/m_etc/cardno", vCardno);
  4463. model.setValue("/root/main/outrgst/m_etc/keyinptflag","S");
  4464. model.setValue("/root/main/outrgst/m_etc/valiterm",vValiterm);
  4465. model.setValue("/root/main/outrgst/m_etc/allotmm","00");
  4466. fRItemRefresh();
  4467. model.setFocus("ipt_allotmm");
  4468. }
  4469. }else if (ipt_cardno.value.length ==16) {
  4470. model.setValue("/root/main/outrgst/m_etc/cardno",ipt_cardno.value);
  4471. model.setValue("/root/main/outrgst/m_etc/keyinptflag","K");
  4472. fRItemRefresh();
  4473. model.setFocus("ipt_valiterm");
  4474. }
  4475. }
  4476. if ( model.getValue("/root/init/option/cardyn") == "N"){
  4477. //현금영수증 선택시
  4478. if (ipt_cardno.value.length >18) {
  4479. //16자리보다 크면,
  4480. // "="이 있으면, swipe
  4481. if ( ipt_cardno.value.indexOf("=") >0 ) {
  4482. var vSwipeData = "";
  4483. var vCardno_array = "";
  4484. var vCardno = "";
  4485. //vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno");
  4486. vSwipeData = ipt_cardno.value;
  4487. // swipe 시 첫글자에 ?
  4488. if ( vSwipeData.indexOf("?") >= 0 ) {
  4489. vSwipeData = (vSwipeData).substr(1,37);
  4490. }
  4491. if ( vSwipeData.indexOf("/") >= 0 ) {
  4492. vSwipeData = (vSwipeData).substr(1,37);
  4493. }
  4494. vSwipeData = vSwipeData.getRightPad(40, " ");
  4495. model.setValue("/root/main/outrgst/m_etc/swipedata", vSwipeData );
  4496. vCardno_array = vSwipeData.split("=");
  4497. vCardno = vCardno_array[0];
  4498. // swipe 시 첫글자에 ?
  4499. if ( vCardno.indexOf("?") >= 0 ) {
  4500. vCardno = (vCardno).substr(1,16);
  4501. }
  4502. //유효일자
  4503. var vValiterm = (vCardno_array[1]).substr(0,4);
  4504. model.setValue("/root/main/outrgst/m_etc/cardno", vCardno);
  4505. model.setValue("/root/main/outrgst/m_etc/keyinptflag","S");
  4506. //이동재20080121 현금영수증이라도 Swipe 시 기본카드로 설정되게..
  4507. model.setValue("/root/main/outrgst/m_etc/valiterm", vValiterm);
  4508. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4509. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag","3");
  4510. //model.setValue("/root/main/outrgst/m_etc/indinstflag", "00");
  4511. if(rdo_indyn.value == "01"){
  4512. //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  4513. model.setValue("/root/main/outrgst/m_etc/valiterm","");
  4514. model.setValue("/root/main/outrgst/m_etc/allotmm", "01" );
  4515. } else {
  4516. model.setValue("/root/main/outrgst/m_etc/allotmm","00");
  4517. }
  4518. }
  4519. //2013-01-28
  4520. //현금영수증 사업자 카드
  4521. vCardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  4522. if( vCardno.length == 18 && vCardno.substr(8, 1) == '9' ){
  4523. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4524. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag","3");
  4525. //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  4526. model.setValue("/root/main/outrgst/m_etc/allotmm", '01');
  4527. model.setValue("/root/main/outrgst/m_etc/indinstflag", '01');
  4528. }
  4529. }
  4530. //16자리이면 현금영수증 카드
  4531. if(ipt_cardno.value.length ==16 || ipt_cardno.value.length ==15 || ipt_cardno.value.length ==18) {
  4532. var vSwipeData = "";
  4533. vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno")+"=";
  4534. vSwipeData = vSwipeData.getRightPad(40, " ");
  4535. model.setValue("/root/main/outrgst/m_etc/swipedata",vSwipeData);
  4536. model.setValue("/root/main/outrgst/m_etc/keyinptflag","S");
  4537. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4538. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag","3");
  4539. //model.setValue("/root/main/outrgst/m_etc/allotmm", '00');
  4540. //model.setValue("/root/main/outrgst/m_etc/indinstflag", "00");
  4541. //2013-01-28
  4542. //현금영수증 사업자 카드
  4543. vCardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  4544. if( vCardno.length == 18 && vCardno.substr(8, 1) == '9' ){
  4545. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4546. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag","3");
  4547. //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  4548. model.setValue("/root/main/outrgst/m_etc/allotmm", '01');
  4549. model.setValue("/root/main/outrgst/m_etc/indinstflag", '01');
  4550. }
  4551. }
  4552. //16자리보다 작으면, 주민번호 혹은 전화번호 사업장번호
  4553. if (ipt_cardno.value.length <16) {
  4554. var vSwipeData = "";
  4555. vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno")+"=";
  4556. vSwipeData = vSwipeData.getRightPad(40, " ");
  4557. model.setValue("/root/main/outrgst/m_etc/swipedata",vSwipeData);
  4558. model.setValue("/root/main/outrgst/m_etc/keyinptflag","K");
  4559. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4560. //길이가 13자리이면,주민번호
  4561. if ( (model.getValue("/root/main/outrgst/m_etc/cardno")).length==13 ) {
  4562. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag","1");
  4563. //model.setValue("/root/main/outrgst/m_etc/indinstflag", "00");
  4564. //model.setValue("/root/main/outrgst/m_etc/allotmm", '00');
  4565. }else{
  4566. //앞 3자리 010,011,016,017,018,019 이면 전화
  4567. if ( (model.getValue("/root/main/outrgst/m_etc/cardno")).substr(0,3) == "010" ||
  4568. (model.getValue("/root/main/outrgst/m_etc/cardno")).substr(0,3) == "011" ||
  4569. (model.getValue("/root/main/outrgst/m_etc/cardno")).substr(0,3) == "016" ||
  4570. (model.getValue("/root/main/outrgst/m_etc/cardno")).substr(0,3) == "017" ||
  4571. (model.getValue("/root/main/outrgst/m_etc/cardno")).substr(0,3) == "018" ||
  4572. (model.getValue("/root/main/outrgst/m_etc/cardno")).substr(0,3) == "019"
  4573. ) {
  4574. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag","2");
  4575. //model.setValue("/root/main/outrgst/m_etc/indinstflag", "00");
  4576. //model.setValue("/root/main/outrgst/m_etc/allotmm", '00');
  4577. }else{
  4578. //16자리 길이 미만일 때 13자리 주민번호 제외 후 핸드폰 앞자리 체크 나머지는 사업장
  4579. model.setValue("/root/main/outrgst/m_etc/qualcnfmflag","4");
  4580. model.setValue("/root/main/outrgst/m_etc/indinstflag","01"); //지출증빙
  4581. model.setValue("/root/main/outrgst/m_etc/allotmm", '01');
  4582. }
  4583. }
  4584. }
  4585. fRItemRefresh();
  4586. }
  4587. }
  4588. function fbtn_cashdamt() {
  4589. if(model.getvalue("/root/main/patinfo/patinfolist/pid") == "") {
  4590. messageBox("환자가 조회되어있지 않습니다.","I999","");
  4591. return;
  4592. }
  4593. /*
  4594. if(getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") == 0) {
  4595. messageBox("선택된 수납내역이 없습니다.","E999","");
  4596. return;
  4597. }
  4598. */
  4599. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  4600. var opmi_precashamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_precashamt");
  4601. var opmi_cashamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt");
  4602. var opmi_rcptexptamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt");
  4603. if( opmi_cashamt != opmi_rcptexptamt && vOpmi_count > 1) {
  4604. messageBox("멀티수납시에는 부분현금영수증 승인은 불가능합니다.","E999","");
  4605. return;
  4606. }
  4607. if(model.getValue("/root/temp3/workgubn") == "N"){
  4608. if(btn_rcpt.disabled) {
  4609. messageBox("계산상태가 아닙니다. 재계산하십시요.","I999","");
  4610. return;
  4611. }
  4612. }
  4613. if(!fOpenCashPopUp()){return false;}
  4614. /*
  4615. var TotCashAmt = getParameter("SPPAO00500_TotCashAmt");
  4616. var temp = parseInt(TotCashAmt) - parseInt(opmi_precashamt);
  4617. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt",temp );
  4618. fipt_cardamt();
  4619. */
  4620. ////////실현금영수증 승인금액 표시
  4621. var s_cash_amt = 0;
  4622. var s_cash_cnt = getNodesetCount("/root/send/s_cash/cash/cash_pid");
  4623. for (var a=1; a <= s_cash_cnt ; a++) {
  4624. if(model.getvalue("/root/send/s_cash/cash["+a+"]/cash_innrtretyn") == "N") {
  4625. s_cash_amt = parseInt(model.getvalue("/root/send/s_cash/cash["+a+"]/cash_cashamt")) + s_cash_amt;
  4626. }
  4627. }
  4628. //s_cash_amt = s_cash_amt - parseInt(opmi_precashamt);
  4629. model.setvalue("/root/etc/cashvanamt" , "승인:" + s_cash_amt);
  4630. opt_cashvanamt.refresh();
  4631. ////////실현금영수증 승인금액 표시 끝
  4632. }
  4633. function fOpenCashPopUp(flag) {
  4634. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  4635. // 현금영수증 선택되어 있고, 현금금액이 있을 경우 현금승인
  4636. var cardyn = model.getValue("/root/init/option/cardyn");
  4637. var parm = "";
  4638. var cashamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt"));
  4639. var pre_cash_amt = 0;
  4640. for (var a = 1; a <= getNodesetCount("/root/hidden/rcv1/h_cash/cash/cash_pid"); a++) {
  4641. pre_cash_amt = parseInt(model.getvalue("/root/hidden/rcv1/h_cash/cash[" + a + "]/cash_cashamt")) + pre_cash_amt;
  4642. }
  4643. var totcashamt = pre_cash_amt + cashamt;
  4644. var cardamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt");
  4645. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  4646. var ordtype = "O";
  4647. var indinstflag = model.getValue("/root/main/outrgst/m_etc/indinstflag");
  4648. var cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  4649. var valiterm = model.getValue("/root/main/outrgst/m_etc/valiterm");
  4650. var keyinpuflag = model.getValue("/root/main/outrgst/m_etc/keyinptflag");
  4651. var swipedata = model.getValue("/root/main/outrgst/m_etc/swipedata");
  4652. var qualcnfmflag = model.getValue("/root/main/outrgst/m_etc/qualcnfmflag");
  4653. var vcheck_cashcard = "";
  4654. var ordergb = "";
  4655. var approvaldate = "";
  4656. var approvaltime = "";
  4657. var approvalno = "";
  4658. // 디폴트 현금영수증번호
  4659. var cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  4660. // 현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4661. var cshb_qualcnfmflag = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmflag");
  4662. if (cshb_qualcnfmno != "") {
  4663. cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  4664. cshb_qualcnfmflag = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmflag");
  4665. } else {
  4666. cshb_qualcnfmno = model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  4667. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4668. cshb_qualcnfmflag = "1";
  4669. }
  4670. // 현금영수증 자격번호
  4671. // 카드, 현금영수증을 동시수납
  4672. if (parseInt(cardamt) > 0 && parseInt(cashamt) > 0) {
  4673. vcheck_cashcard = "Y";
  4674. cardno = cshb_qualcnfmno;
  4675. qualcnfmflag = cshb_qualcnfmflag;
  4676. if (qualcnfmflag == "3") {
  4677. keyinpuflag = "S";
  4678. } else {
  4679. keyinpuflag = "K";
  4680. }
  4681. swipedata = cshb_qualcnfmno + "=";
  4682. swipedata = swipedata.getRightPad(40, " ");
  4683. }
  4684. //현금영수증만 수납
  4685. if (parseInt(cardamt) == 0 && parseInt(cashamt) > 0) {
  4686. vcheck_cashcard = "N";
  4687. cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  4688. qualcnfmflag = model.getValue("/root/main/outrgst/m_etc/qualcnfmflag");
  4689. keyinpuflag = model.getValue("/root/main/outrgst/m_etc/keyinptflag");
  4690. swipedata = model.getValue("/root/main/outrgst/m_etc/swipedata");
  4691. }
  4692. //처음에는 기현금노드를 보내고 그다음에는 send에서 주고받음
  4693. var send_cash = "";
  4694. if (getNodesetCount("/root/send/s_cash/cash/cash_pid") == 0) {
  4695. send_cash = "/root/hidden/rcv1/h_cash";
  4696. } else {
  4697. send_cash = "/root/send/s_cash";
  4698. }
  4699. if (getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") < 2) {
  4700. parm = "0" + "▦" // 멀티건수
  4701. + "" + "▦" // 멀티opmi
  4702. } else {
  4703. parm = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") + "▦" // 멀티건수
  4704. + "/root/hidden/rcv1/h_opmi" + "▦"; // 멀티opmi
  4705. }
  4706. parm += totcashamt + "▦" // totalamt
  4707. + send_cash + "▦" // send
  4708. + "/root/send/s_cash" + "▦" // receive
  4709. + pid + "▦" // pid
  4710. + ordtype + "▦" // ordtype
  4711. + indinstflag + "▦" // indinstflag
  4712. + cardno + "▦" // gQualcnfmno
  4713. + keyinpuflag + "▦" // keyinpuflag
  4714. + swipedata + "▦" // swipedata
  4715. + qualcnfmflag + "▦"; // qualcnfmflag
  4716. setParameter("SPPAO00500_PARM", parm);
  4717. setParameter("SPPAO00500_FLAG", flag);
  4718. //팝업 오픈 방식 체크
  4719. if (flag == "I" || flag == "D") {
  4720. var ivrObjt = document.all("ivr_cashpopup");
  4721. if (ivrObjt == null) {
  4722. body.createChild("xforms:iviewer", "id:ivr_cashpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00501_현금영수증승인.xrw");
  4723. ivrObjt = document.all("ivr_cashpopup");
  4724. }
  4725. ivrObjt.window.javascript.fInit();
  4726. var retMsg = false;
  4727. if (flag == "I") {
  4728. retMsg = ivrObjt.window.javascript.fAutoGetCashAprv();
  4729. } else {
  4730. retMsg = ivrObjt.window.javascript.fAutoCnclCashAprv();
  4731. }
  4732. if (!retMsg) {
  4733. messageBox("현금영수증 승인시 오류가 났습니다. 수납변경에서 재승인하십시요.", "E999");
  4734. }
  4735. ordergb = ivrObjt.model.getValue("/root/tmp/appvanif/ordergb"); //42:현금영수증승인응답
  4736. approvaldate = ivrObjt.model.getValue("/root/tmp/appvanif/approvaldate");
  4737. approvaltime = ivrObjt.model.getValue("/root/tmp/appvanif/approvaltime");
  4738. approvalno = ivrObjt.model.getValue("/root/tmp/appvanif/approvalno");
  4739. body.removeChild("ivr_cashpopup");
  4740. } else {
  4741. modal("SPPAO00501", "1", "400", "400", "SPPAO00501", "", "");
  4742. //팝업 정상종료 여부!
  4743. if (getParameter("SPPAO00500_RTN") == "N" || getParameter("SPPAO00500_RTN") == "") {
  4744. return false;
  4745. }
  4746. }
  4747. for (var i = 1; i <= getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid"); i++) {
  4748. for (var k = 1; k <= getNodesetCount("/root/send/s_cash/cash/cash_pid"); k++) {
  4749. if (model.getValue("/root/send/s_cash/cash[" + k + "]/cash_mseqno") != model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_mseqno"))
  4750. continue;
  4751. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_orddd", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_orddd_org"));
  4752. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_cretno", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_cretno_org"));
  4753. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_orddd_org", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_orddd_org"));
  4754. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_cretno_org", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_cretno_org"));
  4755. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_orddeptcd_org", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_orddeptcd_org"));
  4756. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_orddrid_org", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_orddrid_org"));
  4757. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_rcptdd_org", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_rcptdd_org"));
  4758. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_rcptno_org", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_rcptno_org"));
  4759. model.makeValue("/root/send/s_cash/cash[" + k + "]/cash_rcptseqno_org", model.getValue("/root/hidden/rcv1/h_opmi/opmi[" + i + "]/opmi_rcptseqno_org"));
  4760. }
  4761. }
  4762. return true;
  4763. }
  4764. function fOpenOnlinePopUp(flag) {
  4765. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  4766. //현금영수증 선택되어 있고, 현금금액이 있을 경우 현금승인
  4767. var cardyn = model.getValue("/root/init/option/cardyn");
  4768. var parm = "";
  4769. var onlineamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt"));
  4770. var pre_cash_amt = 0;
  4771. for (var a = 1; a <= getNodesetCount("/root/hidden/rcv1/h_cash/cash/cash_pid"); a++) {
  4772. pre_cash_amt = parseInt(model.getvalue("/root/hidden/rcv1/h_cash/cash[" + a + "]/cash_cashamt")) + pre_cash_amt;
  4773. }
  4774. var totonlineamt = pre_cash_amt + onlineamt;
  4775. var cardamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt");
  4776. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  4777. var ordtype = "O";
  4778. var indinstflag = model.getValue("/root/main/outrgst/m_etc/indinstflag");
  4779. var cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  4780. var valiterm = model.getValue("/root/main/outrgst/m_etc/valiterm");
  4781. //var allotmm = ""
  4782. var keyinpuflag = model.getValue("/root/main/outrgst/m_etc/keyinptflag");
  4783. var swipedata = model.getValue("/root/main/outrgst/m_etc/swipedata");
  4784. var qualcnfmflag = model.getValue("/root/main/outrgst/m_etc/qualcnfmflag");
  4785. var vcheck_cashcard = "";
  4786. var ordergb = "";
  4787. var approvaldate = "";
  4788. var approvaltime = "";
  4789. var approvalno = "";
  4790. //디폴트 현금영수증번호
  4791. var cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  4792. var cshb_qualcnfmflag = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmflag"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4793. if(cshb_qualcnfmno != "") {
  4794. cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  4795. cshb_qualcnfmflag = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmflag");
  4796. }else{
  4797. cshb_qualcnfmno = model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  4798. cshb_qualcnfmflag = "1"; //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4799. }
  4800. //현금영수증 자격번호
  4801. //카드, 현금영수증을 동시수납
  4802. if (parseInt(cardamt) > 0 &&
  4803. parseInt(onlineamt) > 0)
  4804. {
  4805. vcheck_cashcard = "Y";
  4806. cardno = cshb_qualcnfmno;
  4807. qualcnfmflag = cshb_qualcnfmflag;
  4808. if(qualcnfmflag == "3"){keyinpuflag = "S"; }else{keyinpuflag = "K";}
  4809. swipedata = cshb_qualcnfmno+"=";
  4810. swipedata = swipedata.getRightPad(40, " ");
  4811. }
  4812. //현금영수증만 수납
  4813. if (parseInt(cardamt) == 0 && parseInt(onlineamt) > 0 ){
  4814. vcheck_cashcard = "N";
  4815. cardno = model.getValue("/root/main/outrgst/m_etc/cardno");
  4816. qualcnfmflag = model.getValue("/root/main/outrgst/m_etc/qualcnfmflag");
  4817. keyinpuflag = model.getValue("/root/main/outrgst/m_etc/keyinptflag");
  4818. swipedata = model.getValue("/root/main/outrgst/m_etc/swipedata");
  4819. }
  4820. //처음에는 기현금노드를 보내고 그다음에는 send에서 주고받음
  4821. var send_cash = "";
  4822. if(getNodesetCount("/root/send/s_cash/cash/cash_pid") == 0){
  4823. send_cash = "/root/hidden/rcv1/h_cash";
  4824. }else{
  4825. send_cash = "/root/send/s_cash" ;
  4826. }
  4827. if (getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") < 2){
  4828. parm = "0" + "▦" + //멀티건수
  4829. "" + "▦" + //멀티opmi
  4830. totonlineamt + "▦" + //totalamt
  4831. send_cash + "▦" + //send
  4832. "/root/send/s_cash" + "▦" + //receive
  4833. pid + "▦" + //pid
  4834. ordtype + "▦" + //ordtype
  4835. indinstflag + "▦" + //indinstflag
  4836. cardno + "▦" + //gQualcnfmno
  4837. //valiterm + "▦" + //valiterm
  4838. //allotmm + "▦" + //allotmm
  4839. keyinpuflag + "▦" + //keyinpuflag
  4840. swipedata + "▦" + //swipedata
  4841. qualcnfmflag + "▦" ; //qualcnfmflag
  4842. }else{
  4843. parm = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") + "▦" + //멀티건수
  4844. "/root/hidden/rcv1/h_opmi" + "▦" + //멀티opmi
  4845. totonlineamt + "▦" + //totalamt
  4846. send_cash + "▦" + //send
  4847. "/root/send/s_cash" + "▦" + //receive
  4848. pid + "▦" + //pid
  4849. ordtype + "▦" + //ordtype
  4850. indinstflag + "▦" + //indinstflag
  4851. cardno + "▦" + //gQualcnfmno
  4852. //valiterm + "▦" + //valiterm
  4853. //allotmm + "▦" + //allotmm
  4854. keyinpuflag + "▦" + //keyinpuflag
  4855. swipedata + "▦" + //swipedata
  4856. qualcnfmflag + "▦" ; //qualcnfmflag
  4857. }
  4858. setParameter("SPPAO00500_PARM", parm);
  4859. setParameter("SPPAO00500_FLAG", flag);
  4860. //팝업 오픈 방식 체크
  4861. if( flag == 'I' || flag == 'D'){
  4862. var ivrObjt = document.all("ivr_cashpopup");
  4863. if( ivrObjt == null ){
  4864. body.createChild("xforms:iviewer", "id:ivr_cashpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00501_현금영수증승인.xrw");
  4865. ivrObjt = document.all("ivr_cashpopup");
  4866. }
  4867. if( flag == 'I' ){
  4868. ivrObjt.window.javascript.fInit();
  4869. var retMsg = ivrObjt.window.javascript.fAutoGetCashAprv();
  4870. }else{
  4871. ivrObjt.window.javascript.fInit();
  4872. var retMsg = ivrObjt.window.javascript.fAutoCnclCashAprv();
  4873. }
  4874. ordergb = ivrObjt.model.getValue("/root/tmp/appvanif/ordergb");//42:현금영수증승인응답
  4875. approvaldate = ivrObjt.model.getValue("/root/tmp/appvanif/approvaldate");
  4876. approvaltime = ivrObjt.model.getValue("/root/tmp/appvanif/approvaltime");
  4877. approvalno = ivrObjt.model.getValue("/root/tmp/appvanif/approvalno" );
  4878. body.removeChild("ivr_cashpopup");
  4879. if( retMsg == false ){
  4880. messageBox("현금영수증 승인시 오류가 났습니다. 수납변경에서 재승인하십시요.", "E999");
  4881. }
  4882. }else{
  4883. modal("SPPAO00501", "1","400", "400", "SPPAO00501", "", "");
  4884. //팝업 정상종료 여부!
  4885. if (getParameter("SPPAO00500_RTN") == "N" || getParameter("SPPAO00500_RTN") == ""){
  4886. return false;
  4887. }
  4888. }
  4889. for (var i = 1; i <= getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") ; i++) {
  4890. for (var k = 1; k <= getNodesetCount("/root/send/s_cash/cash/cash_pid") ; k++) {
  4891. if (model.getValue( "/root/send/s_cash/cash["+ k +"]/cash_mseqno") != model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_mseqno")) continue;
  4892. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddd" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  4893. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_cretno" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  4894. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  4895. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_cretno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  4896. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddeptcd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddeptcd_org"));
  4897. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddrid_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddrid_org"));
  4898. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptdd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptdd_org"));
  4899. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptno_org"));
  4900. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptseqno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptseqno_org"));
  4901. }
  4902. }
  4903. return true;
  4904. }
  4905. function fipt_cardamt() {
  4906. setInputNodeCurText();
  4907. fopmi_removemask();
  4908. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt","0");
  4909. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt","0");
  4910. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt","0");
  4911. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt",parseInt(model.getvalue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"))
  4912. - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt").removeMask(","))
  4913. - parseInt(model.getvalue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt").removeMask(","))
  4914. );
  4915. ipt_cardamt.refresh();
  4916. ipt_cashamt.refresh();
  4917. ipt_onlineamt.refresh();
  4918. }
  4919. function fipt_cashamt() {
  4920. fopmi_removemask();
  4921. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt","0");
  4922. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt","0");
  4923. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt","0");
  4924. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt",parseInt(model.getvalue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"))
  4925. - parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt").removeMask(","))
  4926. - parseInt(model.getvalue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt").removeMask(","))
  4927. );
  4928. ipt_cardamt.refresh();
  4929. ipt_cashamt.refresh();
  4930. ipt_onlineamt.refresh();
  4931. }
  4932. //임의감면
  4933. function fipt_reduamt() {
  4934. // setInputNodeCurText();
  4935. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt","0");
  4936. //감액입력 후
  4937. var hopmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  4938. var mopmi_rcptexptamt_org = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt_org");
  4939. var mopmi_server_rcptamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_server_rcptamt");
  4940. var mopmi_reduamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt").removeMask(",");
  4941. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt" ,Math.floor(mopmi_reduamt / 10) *10);
  4942. //본인부담 100원미만 절사처리
  4943. if(model.getvalue("/root/init/basecdlist/P0032[cdid='130']/cdnm") == "Y"){
  4944. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt" ,Math.floor(mopmi_reduamt / 100) *100);
  4945. }
  4946. mopmi_reduamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt");
  4947. //멀티수납시에는 부분임의감면 불가
  4948. if (hopmi_count > 1 ) {
  4949. if(mopmi_server_rcptamt != mopmi_reduamt) {
  4950. messageBox("멀티수납시에는 부분 임의감면을 하실 수 없습니다.", "E999");
  4951. model.setvalue("/root/main/outrgst/m_etc/discreducd" , "");
  4952. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt","0");
  4953. ipt_reducd.refresh();
  4954. cmb_reducd.refresh();
  4955. ipt_reduamt.refresh();
  4956. //return;
  4957. }
  4958. }
  4959. //감액입력시, 감액코드 필수사항
  4960. if (parseInt( model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt") ) >0 ) {
  4961. if ( (model.getValue("/root/main/outrgst/m_etc/discreducd")).getTrim() == "" ) {
  4962. messageBox("감면코드를 입력하십시요.", "E999");
  4963. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt","0");
  4964. ipt_reduamt.refresh();
  4965. model.setFocus("ipt_reducd");
  4966. //return;
  4967. }
  4968. }
  4969. //납부할 금액 세팅
  4970. fCalcRcptexptAmt();
  4971. }
  4972. //미수액
  4973. function fipt_uncoamt() {
  4974. //setInputNodeCurText();
  4975. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt","0");
  4976. //미수액입력 후
  4977. var hopmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  4978. var mopmi_rcptexptamt_org = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt_org");
  4979. var mopmi_server_rcptamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_server_rcptamt");
  4980. var mopmi_uncoamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt").removeMask(",");
  4981. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" ,Math.floor(mopmi_uncoamt / 10) *10);
  4982. //본인부담 100원미만 절사처리
  4983. if(model.getvalue("/root/init/basecdlist/P0032[cdid='130']/cdnm") == "Y"){
  4984. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" ,Math.floor(mopmi_uncoamt / 100) *100);
  4985. }
  4986. mopmi_uncoamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt");
  4987. //멀티수납시에는 부분임의감면 불가
  4988. if(hopmi_count > 1){
  4989. if((mopmi_server_rcptamt != mopmi_uncoamt) && (mopmi_uncoamt != 0)){
  4990. messageBox("멀티수납시에는 부분 미수생성을 하실 수 없습니다.", "E999");
  4991. model.setvalue("/root/main/outrgst/m_etc/uncocd" , "");
  4992. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" , "0");
  4993. ipt_uncocd.refresh();
  4994. cmb_uncocd.refresh();
  4995. ipt_uncoamt.refresh();
  4996. //return;
  4997. }
  4998. }
  4999. //미수액입력시, 미수코드 필수사항
  5000. if(parseInt( model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt")) > 0){
  5001. if((model.getValue("/root/main/outrgst/m_etc/uncocd")).getTrim() == ""){
  5002. messageBox("미수코드를 입력하십시요.", "E999");
  5003. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", "0");
  5004. ipt_reduamt.refresh();
  5005. model.setFocus("ipt_uncocd");
  5006. //return;
  5007. }
  5008. }
  5009. //납부할 금액 세팅
  5010. fCalcRcptexptAmt();
  5011. }
  5012. function fipt_mdlrcptamt() {
  5013. setInputNodeCurText();
  5014. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt","0");
  5015. //선수금 적용값 입력 후
  5016. var vopmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  5017. var mopmi_rcptexptamt_org = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt_org");
  5018. var mopmi_server_rcptamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_server_rcptamt");
  5019. var mopmi_mdlrcptamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt").removeMask(",");
  5020. //멀티수납시에는 부분미수액 불가
  5021. if (vopmi_count > 1 ) {
  5022. if(mopmi_server_rcptamt != mopmi_mdlrcptamt) {
  5023. messageBox("멀티수납시에는 부분 선수금대체생성을 하실 수 없습니다.", "E999");
  5024. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt","0");
  5025. ipt_mdlrcptamt.refresh();
  5026. //return;
  5027. }
  5028. }
  5029. if(parseInt(model.getValue("/root/main/outrgst/m_remamt/remamt/remamt_remamt")) == 0) {
  5030. messageBox("선수금 잔액이 0원입니다.", "E999");
  5031. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt","0");
  5032. ipt_mdlrcptamt.refresh();
  5033. //return;
  5034. }
  5035. if(parseInt(model.getValue("/root/main/outrgst/m_remamt/remamt/remamt_remamt")) < parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt").replaceAll(",",""))){
  5036. messageBox("적용할 금액이 선수금 잔액을 초과합니다.", "E999");
  5037. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt","0");
  5038. ipt_mdlrcptamt.refresh();
  5039. //return;
  5040. }
  5041. if(parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt")) <0) {
  5042. messageBox("마이너스 금액을 대체 처리할수 없습니다.", "E999");
  5043. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt","0");
  5044. ipt_mdlrcptamt.refresh();
  5045. //return;
  5046. }
  5047. //납부할 금액 세팅
  5048. fCalcRcptexptAmt();
  5049. }
  5050. //수혈대체
  5051. function fbtn_bloddiscamt() {
  5052. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  5053. //중요!!! 수혈대체는 잔전처리문제로 멀티수납불가
  5054. if (vOpmi_count > 1) {
  5055. messageBox("멀티수납시에는 수혈대체 입력이 불가능합니다 \n\n 수납내역을 1건만 선택 후, 처리하십시오.","E999","");
  5056. return;
  5057. }
  5058. var parm = model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //환자번호
  5059. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd") + "▦" + //진료일자
  5060. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno") + "▦" + //생성번호
  5061. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd") + "▦" + //진료과
  5062. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddrid") + "▦" + //진료의사
  5063. model.getValue("/root/main/outrgst/ptin/ptin_insukind") + "▦" + //보험유형
  5064. model.getValue("/root/main/outrgst/ptin/ptin_suppkind") + "▦" + //보조유형
  5065. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordtype") + "▦" + //진료형태
  5066. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_calcflag") + "▦" + //ordtype=O
  5067. "/root/send/s_bldc" + "▦" + //parent가 이미 가지고 있던 감액 내역
  5068. "/root/send/s_bldc" + "▦"; //팝업이 닫힐때 감액내역을 받을 위치
  5069. setParameter("SPPAO01401_PARM",parm);
  5070. modal("SPPAO01401", "1","400", "400", "SPPAO00401", "", "");
  5071. if (getParameter("SPPAO01401_RTN") == "N" || getParameter("SPPAO01401_RTN") == "") return;
  5072. //수혈대체시 원단위금액 절사처리합니다. 단! 절대로 단일수납시에만 가능합니다.
  5073. if (getParameter("SPPAO01401_RTN") == "Y") {
  5074. //감면코드가 있을경우에만 재계산 대상.
  5075. if( model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd") != '-'
  5076. && model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd") != '' ){
  5077. //model.makeNode("/root/bldctmp/s_bldc");
  5078. //model.copyNode("/root/bldctmp/s_bldc", "/root/send/s_bldc");
  5079. //수혈대체 적용 및 변경으로 인한 재계산
  5080. model.setValue("/root/send/setbldccalc", "Y");
  5081. try{
  5082. // N:기존처방에 대해서만 재계산
  5083. fCalculation("N");
  5084. }catch(e){
  5085. //계산 실패시 적용여부 리셋
  5086. model.setValue("/root/send/setbldccalc", "");
  5087. }
  5088. //계산 완료후 적용여부 리셋
  5089. model.setValue("/root/send/setbldccalc", "");
  5090. //model.copyNode("/root/send/s_bldc", "/root/bldctmp/s_bldc");
  5091. //model.removeNodeset("/root/bldctmp");
  5092. }
  5093. //debugger;
  5094. //현헐증 대체 금액
  5095. var bloddiscamt = parseInt(getParameter("SPPAO01401_TotBldcDiscAmt"));
  5096. var restamt = parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_restamt"));
  5097. var totownbamt = parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_totownbamt100"));
  5098. var totownbamt2 = parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_totownbamt2"));
  5099. var rcptexptamt = parseInt(model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_rcptexptamt"));
  5100. var opmi_uncoamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt"));
  5101. var opmi_discamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_discamt"));
  5102. var opmi_suppamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_suppamt"));
  5103. //100원 미만 절사는 보험본인부담금에 대해서만 100원 미만 절사해주고 보험청구해야함 restamt에 들어가면 안됨.
  5104. //절사는 10원 미만 금액만 가지고 수납대상금액에서 수혈대체금을 제외한 후 다시 계산하는게 맞음.
  5105. /* //100원미만 절사여부 10/03/12 cys
  5106. if(model.getvalue("/root/init/basecdlist/P0032[cdid='130']/cdnm") == "Y") {
  5107. restamt = (rcptexptamt - bloddiscamt) % 100;
  5108. }else{
  5109. restamt = (rcptexptamt - bloddiscamt) % 10;
  5110. }
  5111. */
  5112. // 절사금액 공식수정 by 조중래 20130715
  5113. // 본인부담총금액에 이미 절사액이 포함되어있으므로 아래와 같이 구할 경우 절사액이 두배로 잡힘
  5114. // 2015/06/24 이정택 수정
  5115. //restamt = (totownbamt + restamt - bloddiscamt) % 10;
  5116. //restamt = (totownbamt - bloddiscamt) % 10;
  5117. restamt = (totownbamt - bloddiscamt - opmi_uncoamt - opmi_discamt - opmi_suppamt) % 10;
  5118. // 2015/06/24 이정택 수정
  5119. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_bloddiscamt" , bloddiscamt);
  5120. model.makeValue("/root/hidden/rcv1/h_opmi/opmi/opmi_restamt" , restamt);
  5121. //model.setValue("/root/hidden/rcv1/h_opmi/opmi/opmi_totownbamt2" , totownbamt - restamt);
  5122. }
  5123. //납부할 금액 세팅
  5124. fCalcRcptexptAmt();
  5125. }
  5126. //건유비/산전지원비 승인버튼
  5127. function fbtn_proc() {
  5128. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  5129. var otpt_orddd = model.getvalue("/root/main/outrgst/m_opmi/opmi/opmi_orddd");
  5130. var opmi_spec_nopayown = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_totnopyownbamt"))
  5131. + parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_specownbamt"));
  5132. if (vOpmi_count > 1) {
  5133. messageBox("멀티수납시에는 건강생활유지비/산전지원비 입력이 불가능합니다 \n\n 수납내역을 1건만 선택 후, 처리하십시오.","E999","");
  5134. return;
  5135. }
  5136. if (otpt_orddd > getCurrentDate()) {
  5137. messageBox("미래일자는 건강생활유지비/산전지원비 입력이 불가능합니다.","E999","");
  5138. return;
  5139. }
  5140. //보험증번호 조회(보험자격조회)
  5141. var parm = model.getValue("/root/main/patinfo/patinfolist/rrgstno1") +
  5142. model.getValue("/root/main/patinfo/patinfolist/rrgstno2") + "▦" + //주민번호
  5143. model.getValue("/root/main/patinfo/patinfolist/hngnm") + "▦" + //이름
  5144. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd") + "▦" + //진료일자
  5145. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno") + "▦" + //진료생성번호
  5146. "O" + "▦" + //ordtype
  5147. "" + "▦" + //퇴원일자
  5148. //20090701 1.단수처리 고시적용
  5149. //model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payownbamt") + "▦" + //본인일부부담금
  5150. //model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payinsubamt") + "▦" + //기관부담금
  5151. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payownbamt100") + "▦" + //본인일부부담금
  5152. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payinsubamt100") + "▦" + //기관부담금
  5153. model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //등록번호
  5154. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd") + "▦" + //진료과
  5155. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag") + "▦" + //본인부담구분
  5156. opmi_spec_nopayown + "▦" + //비급여총액(nopyownbamt,allownownbamt,specownbamt)
  5157. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt") + "▦" + //산전지원금
  5158. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") + "▦"; //보조유형
  5159. setParameter("SPPMC03900_PARM",parm);
  5160. //신종플루진료
  5161. setParameter("SPPMC03900_ETCORD",model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag"));
  5162. setParameter("SPPMC03900_RTN","");
  5163. setParameter("SPPMC03900_RTN_osunap","");
  5164. setParameter("SPPMC03900_RTN_osunap_msg4","");
  5165. modal("SPPMC03900", "1","400", "400", "SPPMC03900", "", "", "sysmenu:hidden;");
  5166. fbtn_proc_check();
  5167. //if (getParameter("SPPMC03900_RTN_osunap_msg4") == "Y") {
  5168. model.setValue("/root/send/sum_otpt" , getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  5169. model.setvalue("/root/send/mth_nm" , "getMsg4LifeAmt");
  5170. submit("TRPAO00127");
  5171. model.makevalue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt", model.getValue("/root/temp5/msg4/heallifeamtclamamt"));
  5172. //model.makevalue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt" , model.getValue("/root/temp5/msg4/pregdmndamt")); //기 승인된 건생비금액
  5173. model.makevalue("/root/main/outrgst/m_opmi/opmi/opmi_prepregdmndamt" , model.getValue("/root/temp5/msg4/pregdmndamt")); // 기 승인된 산전비금액
  5174. //}
  5175. //납부할 금액 세팅
  5176. fCalcRcptexptAmt();
  5177. }
  5178. //의료급여승인버튼
  5179. function fbtn_proc2() {
  5180. var opmi_spec_nopayown = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_totnopyownbamt"))
  5181. + parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_specownbamt"));
  5182. // 2015/06/05 이정택 수정
  5183. var cnt = getNodesetCount("/root/main/baseinfo/actlist/actr[actr_checkflag='true']");
  5184. var workgubun = model.getValue("/root/temp3/workgubn");
  5185. var select_orddd = "";
  5186. if(workgubun=="E" && parseInt(cnt)>1){
  5187. messageBox("실시내역에 선택한 일자가 다중선택되었습니다.\n하나만 선택 부탁드립니다.", "E");
  5188. return;
  5189. }
  5190. if(workgubun=="E" && cnt==1){
  5191. select_orddd = model.getValue("/root/main/baseinfo/actlist/actr[actr_checkflag='true']/actr_actfromdd");
  5192. }else{
  5193. select_orddd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  5194. }
  5195. // 2015/06/05 이정택 수정
  5196. //신보험증번호 조회(보험자격조회)
  5197. var parm = model.getValue("/root/main/patinfo/patinfolist/rrgstno1") +
  5198. model.getValue("/root/main/patinfo/patinfolist/rrgstno2") + "▦" + //주민번호
  5199. model.getValue("/root/main/patinfo/patinfolist/hngnm") + "▦" + //이름
  5200. select_orddd + "▦" + //외래진료일자
  5201. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno") + "▦" + //생성번호
  5202. "O" + "▦" + //진료형태
  5203. "" + "▦" + //퇴원일자
  5204. //20090701 1.단수처리 고시적용 --의료급여는 그대로 사용 가능
  5205. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payownbamt") + "▦" + //본인일부부담금
  5206. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payinsubamt") + "▦" + //기관부담금
  5207. model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //등록번호
  5208. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd") + "▦" + //진료과
  5209. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag") + "▦" + //본인부담구분
  5210. opmi_spec_nopayown + "▦" + //비급여총액(nopyownbamt,allownownbamt,specownbamt)
  5211. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt") + "▦" + //산전지원금
  5212. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_suppkind") + "▦"; //보조유형
  5213. setParameter("SPPMC03900_PARM",parm);
  5214. //신종플루진료
  5215. setParameter("SPPMC03900_ETCORD",model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag"));
  5216. setParameter("SPPMC03900_RTN","");
  5217. setParameter("SPPMC03900_RTN_osunap","");
  5218. setParameter("SPPMC03900_RTN_osunap_msg4","");
  5219. modal("SPPMC03900", "1","50", "50", "SPPMC03900", "", "", "sysmenu:hidden;");
  5220. fbtn_proc_check();
  5221. if (getParameter("SPPMC03900_RTN_osunap_msg4") == "Y") {
  5222. model.setValue("/root/send/sum_otpt" , getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  5223. model.setvalue("/root/send/mth_nm" , "getMsg4LifeAmt");
  5224. submit("TRPAO00127");
  5225. model.makevalue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt", model.getValue("/root/temp5/msg4/heallifeamtclamamt"));
  5226. model.makevalue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt" , model.getValue("/root/temp5/msg4/pregdmndamt"));
  5227. }
  5228. //납부할 금액 세팅
  5229. fCalcRcptexptAmt();
  5230. model.setFocus("ipt_cardno");
  5231. }
  5232. function fbtn_proc_check() {
  5233. if (getParameter("SPPMC03900_RTN_sunap") == "N") { return; }
  5234. if(getParameter("SPPMC03900_RTN") != "F") model.setvalue("/root/option/opt_procyn" , "Y");
  5235. if (getParameter("SPPMC03900_RTN_sunap") != "N") {
  5236. if (model.getValue("/root/main/outrgst/ptin/ptin_insukind") != getParameter("SPPMC03900_insukind")) {
  5237. btn_calc.disabled = false;
  5238. btn_rcpt.disabled = true;
  5239. }
  5240. //return 값이 있으면, 보험유형,증번호,보험자기호,취득일자,피보험자성명
  5241. model.setValue("/root/main/outrgst/ptin/ptin_insukind", getParameter("SPPMC03900_insukind"));
  5242. model.setValue("/root/main/outrgst/ptin/ptin_insucd" , getParameter("SPPMC03900_insucd"));
  5243. model.setValue("/root/main/outrgst/ptin/ptin_insuno" , getParameter("SPPMC03900_insuno"));
  5244. model.setValue("/root/main/outrgst/ptin/ptin_insdnm" , getParameter("SPPMC03900_insdnm"));
  5245. model.setValue("/root/main/outrgst/ptin/ptin_fromdd" , getParameter("SPPMC03900_insufromdd"));
  5246. //피보험자성명이 환자명과 같으면, 관계에 [본인]세팅
  5247. if (model.getValue("/root/main/patinfo/patinfolist/hngnm") == model.getValue("/root/main/outrgst/ptin/ptin_insdnm")){
  5248. model.setValue("/root/main/outrgst/ptin/ptin_insdrela","1");
  5249. }
  5250. var calcYN = "N";
  5251. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag") == "-") {
  5252. model.setValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag", "");
  5253. }
  5254. //본인부담구분세팅
  5255. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag") != getParameter("SPPMC03900_ownbflag")) {
  5256. model.setValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag" , getParameter("SPPMC03900_ownbflag"));
  5257. calcYN = "Y";
  5258. }
  5259. //희귀난치병정보세팅 2008/12/23 이동재 진료에서 받는대로 처리함
  5260. /*
  5261. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag") != getParameter("SPPMC03900_rareobstflag")){
  5262. model.setValue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag", getParameter("SPPMC03900_rareobstflag"));
  5263. model.setValue("/root/etc/opt_otptetc","희귀난치");
  5264. calcYN = "Y";
  5265. }
  5266. */
  5267. // N:기존처방에 대해서만 재계산
  5268. if(calcYN == "Y") { fCalculation("N"); }
  5269. //차상위정보세팅
  5270. /*
  5271. if(getParameter("SPPMC03900_suppkind") == "32" || getParameter("SPPMC03900_suppkind") == "33") {
  5272. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_suppkind") != getParameter("SPPMC03900_suppkind")){
  5273. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", getParameter("SPPMC03900_suppkind"));
  5274. calcYN = "Y";
  5275. }
  5276. }
  5277. */
  5278. if(getParameter("SPPMC03900_suppkind") == "32" || getParameter("SPPMC03900_suppkind") == "33") {
  5279. var otpt_suppkind = model.getValue("/root/hidden/rcv1/sum_otpt/otpt/otpt_suppkind");
  5280. if( (parseInt(otpt_suppkind) > 32) && (parseInt(otpt_suppkind)< 46)) {
  5281. otpt_suppkind = "33";
  5282. }
  5283. if(otpt_suppkind != getParameter("SPPMC03900_suppkind")){
  5284. var rtn = messageBox("등록정보[보조유형: " + model.getValue("/root/hidden/rcv1/sum_otpt/otpt/otpt_suppkind") + "]와 실제자격[보조유형: " + getParameter("SPPMC03900_suppkind") + "]이 다릅니다! \n변경하시겠습니까?","Q999","");
  5285. var rtn_submit = false;
  5286. if (rtn == 6) {
  5287. model.setValue("/root/main/outrgst/ptin/ptin_suppkind", getParameter("SPPMC03900_suppkind"));
  5288. //보험자와의 관계를 <본인> 선택시,주민번호,성명 세팅
  5289. if (model.getValue("/root/main/outrgst/ptin/ptin_insdrela")=="") {
  5290. model.setValue("/root/main/outrgst/ptin/ptin_insdrela" , "1")
  5291. model.setValue("/root/main/outrgst/ptin/ptin_insdnm" ,model.getValue("/root/main/patinfo/patinfolist/hngnm")); //성명
  5292. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1" ,model.getValue("/root/main/patinfo/patinfolist/rrgstno1")); //주민번호1
  5293. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2" ,model.getValue("/root/main/patinfo/patinfolist/rrgstno2")); //주민번호2
  5294. }
  5295. //보험정보 copy
  5296. fptinBackUp(); //보험정보 _org 에 백업44
  5297. model.copyNode("/root/send/ptin","/root/main/outrgst/ptin");
  5298. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  5299. model.setvalue("/root/send/mth_nm" ,"setOtptScnd");
  5300. rtn_submit = submit("TRPAO00127");
  5301. if(model.getvalue("/root/temp5/srdg/cnt") =="0" || rtn_submit == false) {
  5302. messageBox("유형변경 실패했습니다. 수동변경후 재계산하십시요.","I999");
  5303. return false;
  5304. }else{
  5305. messageBox("유형변경되었습니다.","I999");
  5306. if (model.getValue("/root/temp3/workgubn") == "Y") fSearch();
  5307. if (model.getValue("/root/temp3/workgubn") == "N") { messageBox("외래수납에서 수납하세요.","I999"); fCalcflagNSearch();}
  5308. if (model.getValue("/root/temp3/workgubn") == "E") fSearch();
  5309. return false;
  5310. }
  5311. }
  5312. if (rtn == 7) {
  5313. return false;
  5314. }
  5315. }
  5316. }
  5317. //차상위정보세팅 끝
  5318. model.refresh();
  5319. }
  5320. }
  5321. //산전지원금
  5322. function fipt_pregdmndamt(){
  5323. setInputNodeCurText();
  5324. if(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt") == "") model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt", "0");
  5325. //산전지원금입력 후
  5326. var hopmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  5327. var mopmi_rcptexptamt_org = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt_org");
  5328. var mopmi_pregdmndamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt").removeMask(",");
  5329. //멀티수납시에는 산전지원금 불가
  5330. if(hopmi_count > 1){
  5331. if(mopmi_rcptexptamt_org != mopmi_pregdmndamt){
  5332. messageBox("멀티수납시에는 산전지원금 차감하실 수 없습니다.", "E999");
  5333. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt","0");
  5334. ipt_pregdmndamt.refresh();
  5335. //return;
  5336. }
  5337. }
  5338. /*
  5339. * 산전지원금 상한체크
  5340. * 2013-04-22시점으로 1일 사용한도 폐지
  5341. * 2011-04-01시점으로 1일 사용한도 4만원 -> 6만원으로 상한조정됨 by 조중래
  5342. */
  5343. var tempOrddd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  5344. if(tempOrddd < "20130422"){
  5345. if(tempOrddd >= "20110401"){
  5346. if(parseInt(mopmi_pregdmndamt) > 60000){
  5347. messageBox("산전지원금은 6만원 초과해서 차감하실수 없습니다.", "E999");
  5348. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt", "0");
  5349. ipt_pregdmndamt.refresh();
  5350. //return;
  5351. }
  5352. }else{
  5353. if(parseInt(mopmi_pregdmndamt) > 40000){
  5354. messageBox("산전지원금은 4만원 초과해서 차감하실수 없습니다.", "E999");
  5355. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_pregdmndamt", "0");
  5356. ipt_pregdmndamt.refresh();
  5357. //return;
  5358. }
  5359. }
  5360. }
  5361. //납부할 금액 세팅
  5362. fCalcRcptexptAmt();
  5363. }
  5364. //임의감면
  5365. function fbtn_reduamt() {
  5366. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  5367. var vOpmi_rcptexptamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"));
  5368. if(vOpmi_count > 1) {
  5369. messageBox("멀티수납시에는 복수 건의 감액 적용이 불가능합니다 \n\n 화면에서 단수 건으로 처리하십시오.","E999","");
  5370. return;
  5371. }
  5372. //감액은 0원이상
  5373. if(vOpmi_rcptexptamt < 0){
  5374. messageBox("감액적용할 금액이 없습니다!","E999","");
  5375. return;
  5376. }
  5377. //처음에는 기감면노드를 보내고 그다음에는 send에서 주고받음
  5378. /*
  5379. var send_dcgm = "";
  5380. if(getNodesetCount("/root/send/s_dcgm/dcgm/dcgm_pid") == 0){
  5381. send_dcgm = "/root/hidden/rcv1/h_dcgm";
  5382. }else{
  5383. send_dcgm = "/root/send/s_dcgm" ;
  5384. }
  5385. */
  5386. var send_dcgm = "/root/send/s_dcgm" ;
  5387. //=========================================================================================================================================//
  5388. var parm = model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd") + "▦" + //진료일자
  5389. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt") + "▦" + //수납대상금액
  5390. send_dcgm + "▦" + //parent가 이미 가지고 있던 감액 내역
  5391. "/root/send/s_dcgm" + "▦"; //팝업이 닫힐때 감액내역을 받을 위치
  5392. setParameter("SPPAO00800_PARM",parm);
  5393. modal("../../../pam/pamcomnweb/xrw/SPPAO00800", "1","400", "400", "SPPAO00800", "", "");
  5394. if (getParameter("SPPAO00800_RTN") == "N" || getParameter("SPPAO00800_RTN") == "") return;
  5395. //=========================================================================================================================================//
  5396. var TotReduAmt = parseInt(getParameter("SPPAO00800_TotReduAmt"));
  5397. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt",TotReduAmt);
  5398. model.setValue("/root/main/outrgst/m_etc/discreducd" ,model.getvalue("/root/send/s_dcgm/dcgm/dcgm_discreducd")); //팝업에서 선택한 첫번감액을 메인에 보여준다.
  5399. if(getNodesetCount("/root/send/s_dcgm/dcgm/dcgm_pid") > 1) {
  5400. ipt_reducd.disabled = true;
  5401. cmb_reducd.disabled = true;
  5402. ipt_reduamt.disabled = true;
  5403. }else{
  5404. ipt_reducd.disabled = false;
  5405. cmb_reducd.disabled = false;
  5406. ipt_reduamt.disabled = false;
  5407. }
  5408. //수납할 금액 계산 세팅
  5409. fCalcRcptexptAmt();
  5410. }
  5411. //미수액
  5412. function fbtn_uncoamt() {
  5413. //멀티수납시에는 복수건의 미수처리 불가
  5414. //선택된 외래등록의 개수 확인
  5415. var vOpmi_count = getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid");
  5416. if (vOpmi_count > 1) {
  5417. messageBox("멀티수납시에는 복수 건의 미수 적용이 불가능합니다 \n\n 화면에서 단수 건으로 처리하십시오.","E999","");
  5418. return;
  5419. }
  5420. //미수금액창이 널이면, 팝업창 오픈불가
  5421. if ( (model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt")).getTrim() == "" ) {
  5422. return;
  5423. }
  5424. var send_unco = "/root/send/s_unco" ;
  5425. //=========================================================================================================================================//
  5426. var parm = "O" + "▦" + //진료형태(ordtype)
  5427. model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_orddd") + "▦" + //진료일자
  5428. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt") + "▦" + //수납대상금액
  5429. send_unco + "▦" + //parent가 이미 가지고 있던 미수 내역
  5430. "/root/send/s_unco" + "▦" + //팝업이 닫힐때 미수내역을 받을 위치
  5431. "O" + "▦" + //외래 또는 입원요율
  5432. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payownbamt100") + "▦" + //본인 급여총액
  5433. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_totnopyownbamt")+ "▦" + //비급여 본인부담금액
  5434. model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_specownbamt") + "▦"; //선택진료 본인부담금액
  5435. setParameter("SPPAO00900_PARM",parm);
  5436. modal("../../../pam/pamcomnweb/xrw/SPPAO00900", "1","400", "400", "SPPAO00900", "", "");
  5437. if (getParameter("SPPAO00900_RTN") == "N" || getParameter("SPPAO00900_RTN") == "") return;
  5438. //=========================================================================================================================================//
  5439. var TotUncoAmt = parseInt(getParameter("SPPAO00900_TotUncoAmt"));
  5440. var vUncoRemamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"));
  5441. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt",TotUncoAmt.toString()); //화면에 보이는 미수금
  5442. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt",(vUncoRemamt - TotUncoAmt).toString());//화면에 보이는 카드금액(디폴트)
  5443. model.setValue("/root/hidden/rcv1/h_opmi/opmi/opmi_uncoamt",TotUncoAmt.toString());//send 노드에 copy 대상이 되는 수납내역 노드의 미수금
  5444. model.setValue("/root/main/outrgst/m_etc/uncocd", model.getvalue("/root/send/s_unco/unco/unco_uncocd")); //팝업에서 선택한 첫번미수를 메인에 보여준다.
  5445. model.setValue("/root/main/outrgst/m_etc/uncocls", model.getValue("/root/send/s_unco/unco/unco_uncocls"));
  5446. if(getNodesetCount("/root/send/s_unco/unco/unco_pid") > 1) {
  5447. ipt_uncocd.disabled = true;
  5448. cmb_uncocd.disabled = true;
  5449. ipt_uncoamt.disabled = true;
  5450. }else{
  5451. ipt_uncocd.disabled = false;
  5452. cmb_uncocd.disabled = false;
  5453. ipt_uncoamt.disabled = false;
  5454. }
  5455. //수납할 금액 계산 세팅
  5456. fCalcRcptexptAmt();
  5457. }
  5458. function fbtn_onlineamt() {
  5459. //처음에는 기카드노드를 보내고 그다음에는 send에서 주고받음
  5460. var send_onln = "";
  5461. if(getNodesetCount("/root/send/s_onln/onln/onln_pid") == 0){
  5462. send_onln = "/root/hidden/rcv1/h_onln";
  5463. }else{
  5464. send_onln = "/root/send/s_onln" ;
  5465. }
  5466. //=========================================================================================================================================//
  5467. var parm = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt") + "▦" + //수납대상금액
  5468. send_onln + "▦" + //parent가 이미 가지고 있던 통장입금 내역
  5469. "/root/send/s_onln" + "▦" + //팝업이 닫힐때 통장입금내역을 받을 위치
  5470. getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") + "▦" ; //멀티건수
  5471. setParameter("SPPAO01500_PARM",parm);
  5472. modal("../../../pam/pamcomnweb/xrw/SPPAO01500", "1","400", "400", "SPPAO01500", "/root/source", "/root/send");
  5473. if (getParameter("SPPAO01500_RTN") == "N") return;
  5474. //=========================================================================================================================================//
  5475. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt",getParameter("SPPAO01500_TotOnlineAmt"));
  5476. fipt_cashamt();
  5477. }
  5478. function fbtn_earnlist() {
  5479. if (model.getValue("/root/main/patinfo/patinfolist/pid").getTrim() == "") {
  5480. model.setFocus("ipt_pid");
  5481. return;
  5482. }
  5483. //선택된 내역 체크
  5484. if (model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd").getTrim() == "") {
  5485. messageBox("외래등록내역이 선택되어 있는지 확인하십시오.","E999","");
  5486. btn_otptlist.dispatch("onclick");
  5487. return;
  5488. }
  5489. }
  5490. function fgrd_earnlist1_onclick() {
  5491. //vcheck_rcptstatcd
  5492. // prcp_rcptstatcd
  5493. var iRow = grd_earnlist1.selectedRow(0);
  5494. var vrcptcls = model.getValue("/root/hidden/rcv/h_earn1/earn["+iRow+"]/earn_rcptcls");
  5495. if ( vrcptcls != "" ) {
  5496. if ( (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check") == "true" || model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check") == "") ||
  5497. (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel") == "true" || model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel") == "") )
  5498. {
  5499. if (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check") == "true") {
  5500. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check","true");
  5501. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5502. for(var i=1; i<=grd_prcplist.rows; i++) {
  5503. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5504. var vcheck_rcptstatcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_rcptstatcd");
  5505. var vcheck_prcphistcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_prcphistcd");
  5506. var vcheck_execdd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_execdd");
  5507. if ( vcheck_rcptstatcd == "230" || vcheck_rcptstatcd == "210" || vcheck_execdd != "") {
  5508. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_holdyn","false");
  5509. } else if ( vcheck_prcphistcd != "O" ) {
  5510. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_holdyn","false");
  5511. } else {
  5512. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_holdyn","true");
  5513. }
  5514. grd_prcplist.row = i;
  5515. }
  5516. }
  5517. }
  5518. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel") == "true") {
  5519. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel","true");
  5520. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5521. for(var i=1; i<=grd_prcplist.rows; i++) {
  5522. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5523. var vcheck_rcptstatcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_rcptstatcd");
  5524. var vcheck_prcphistcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_prcphistcd");
  5525. if ( vcheck_rcptstatcd != "210" ) {
  5526. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_releyn","false");
  5527. } else if ( vcheck_prcphistcd != "O" ) {
  5528. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_releyn","false");
  5529. } else {
  5530. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_releyn","true");
  5531. }
  5532. grd_prcplist.row = i;
  5533. }
  5534. }
  5535. }
  5536. if (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check") == "false") {
  5537. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check","false");
  5538. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5539. for(var i=1; i<=grd_prcplist.rows; i++) {
  5540. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5541. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_holdyn","false");
  5542. grd_prcplist.row = i;
  5543. }
  5544. }
  5545. }
  5546. if (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel") == "false") {
  5547. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel","false");
  5548. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5549. for(var i=1; i<=grd_prcplist.rows; i++) {
  5550. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5551. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_releyn","false");
  5552. grd_prcplist.row = i;
  5553. }
  5554. }
  5555. }
  5556. grd_prcplist.rebuild();
  5557. }
  5558. else if ( (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check") == "false") ||
  5559. (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel") == "false") )
  5560. {
  5561. if (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check") == "false") {
  5562. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check","false");
  5563. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5564. for(var i=1; i<=grd_prcplist.rows; i++) {
  5565. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5566. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_holdyn","false");
  5567. grd_prcplist.row = i;
  5568. }
  5569. }
  5570. }
  5571. if (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel") == "false") {
  5572. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel","false");
  5573. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5574. for(var i=1; i<=grd_prcplist.rows; i++) {
  5575. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5576. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_releyn","false");
  5577. grd_prcplist.row = i;
  5578. }
  5579. }
  5580. }
  5581. if (model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check") == "true") {
  5582. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_check","true");
  5583. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5584. for(var i=1; i<=grd_prcplist.rows; i++) {
  5585. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5586. var vcheck_rcptstatcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_rcptstatcd");
  5587. var vcheck_prcphistcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_prcphistcd");
  5588. var vcheck_execdd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_execdd");
  5589. if (vcheck_rcptstatcd == "230" || vcheck_rcptstatcd == "210" || vcheck_execdd != "" ) {
  5590. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_holdyn","false");
  5591. } else if ( vcheck_prcphistcd != "O" ) {
  5592. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_holdyn","false");
  5593. } else {
  5594. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_holdyn","true");
  5595. }
  5596. grd_prcplist.row = i;
  5597. } //end if
  5598. }//end for
  5599. }
  5600. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel") == "true") {
  5601. model.setValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_cancel","true");
  5602. grd_prcplist.row = 1; //첫번째 Row 값 세팅
  5603. for(var i=1; i<=grd_prcplist.rows; i++) {
  5604. if ( model.getValue("/root/hidden/rcv/h_earn1/earn["+ iRow +"]/earn_rcptcls") == model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_outcls") ) {
  5605. var vcheck_rcptstatcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_rcptstatcd");
  5606. var vcheck_prcphistcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_prcphistcd");
  5607. var vcheck_execdd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_execdd");
  5608. if ( vcheck_rcptstatcd == "000" ) {
  5609. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_releyn","false");
  5610. } else if ( vcheck_prcphistcd != "O" ) {
  5611. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ i +"]/prcp_releyn","false");
  5612. } else {
  5613. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + i + "]/prcp_releyn","true");
  5614. }
  5615. grd_prcplist.row = i;
  5616. }
  5617. }
  5618. }
  5619. grd_prcplist.rebuild();
  5620. }
  5621. } else {
  5622. grd_prcplist.rebuild();
  5623. }
  5624. }
  5625. //수익에서 종별클릭하면 계산내역으로 이동
  5626. function fgrd_earnlist_onclick() {
  5627. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  5628. model.removenode("/root/send/s_otpt/otpt");
  5629. copyNodeListType("/root/send/s_otpt","/root/hidden/rcv1/sum_otpt/otpt","replace");
  5630. model.makeValue("/root/send/s_otpt/otpt/outcls","-");
  5631. var iRow = grd_earnlist.selectedRow(0);
  5632. if (iRow > 0) {
  5633. model.setValue("/root/send/s_otpt/otpt/outcls",model.getValue("/root/hidden/rcv1/h_earn/earn["+iRow+"]/earn_rcptcls"));
  5634. } else {
  5635. model.setValue("/root/send/s_otpt/otpt/outcls","-");
  5636. }
  5637. submit("TRPAO00111");
  5638. if (getNodesetCount("/root/hidden/earn/h_oscl/oscl/oscl_pid") > 0) {
  5639. //조회하기전에 clear
  5640. model.copynode("/root/main/outrgst/m_oscl" , "/root/node_bk/main/outrgst/m_oscl");
  5641. model.copyNode("/root/main/outrgst/m_oscl" ,"/root/hidden/earn/h_oscl");
  5642. btn_oscllist.dispatch("onclick");
  5643. grd_oscllist.refresh();
  5644. //setTree(grd_oscllist, 0, 0, true);
  5645. } else {
  5646. messageBox("해당 수익내역이 없습니다.", "I999");
  5647. model.copynode("/root/main/outrgst/m_oscl" , "/root/node_bk/main/outrgst/m_oscl");
  5648. model.copyNode("/root/main/outrgst/m_oscl" ,"/root/hidden/rcv1/h_oscl");
  5649. btn_oscllist.dispatch("onclick");
  5650. grd_oscllist.rebuild();
  5651. setTree(grd_oscllist, 0, 0, true);
  5652. }
  5653. //기존 바탕색 clear
  5654. for(var i=0; i <= grd_oscllist.rows ; i++){
  5655. grd_oscllist.rowStyle(i,"data","background-color") = "#ffffff";
  5656. }
  5657. setRowStyle("grd_oscllist" , "9" , "000" , "oscl_execprcpstatcd"); //추가
  5658. //setRowStyle("grd_oscllist" , "2" , "230" , "oscl_execprcpstatcd"); //수납
  5659. //setRowStyle("grd_oscllist" , "3" , "210" , "oscl_execprcpstatcd"); //홀드
  5660. //setRowStyle("grd_oscllist" , "6" , "E" , "oscl_execprcphistcd"); //반납
  5661. //setRowStyle("grd_oscllist" , "5" , "060601" , "oscl_snglearncls"); //수혈
  5662. }
  5663. function fbutton10_expnd_r() {
  5664. //if (button10.attribute("text") == "확장") {
  5665. swt_main.attribute("width") = "810";
  5666. swt_outrcpt.attribute("width") = "795";
  5667. swt_jungrcpt.attribute("width") = "795";
  5668. swt_jung_opmi_oscl.attribute("width") = "792";
  5669. swt_execjungsan.attribute("width") = "792";
  5670. grd_diag1.attribute("overflow") = "scroll";
  5671. grd_oscllist.attribute("overflow") = "scroll";
  5672. grd_diag.attribute("overflow") = "scroll";
  5673. grd_earnlist1.attribute("overflow") = "scroll";
  5674. grd_prcplist.attribute("overflow") = "scroll";
  5675. grd_earnlist.attribute("overflow") = "scroll";
  5676. grd_calcflagn.attribute("overflow") = "scroll";
  5677. grd_rcptlist.attribute("overflow") = "scroll";
  5678. grd_joscllist.attribute("overflow") = "scroll";
  5679. grd_eactotpt.attribute("overflow") = "scroll";
  5680. grd_Eactlist.attribute("overflow") = "scroll";
  5681. grd_Eoscllist.attribute("overflow") = "scroll";
  5682. grd_Ercptlist.attribute("overflow") = "scroll";
  5683. grd_Eearnlist.attribute("overflow") = "scroll";
  5684. grd_prcplist.attribute("width") = "420";
  5685. grd_tday.attribute("width") = "783";
  5686. grd_rsrv.attribute("width") = "783";
  5687. grd_past.attribute("width") = "783";
  5688. }
  5689. function fbutton10_expnd_c() {
  5690. swt_main.attribute("left") = "397";
  5691. swt_main.attribute("width") = "510";
  5692. swt_outrcpt.attribute("width") = "505";
  5693. swt_jungrcpt.attribute("width") = "505";
  5694. swt_jung_opmi_oscl.attribute("width") = "502";
  5695. swt_execjungsan.attribute("width") = "502";
  5696. grd_diag1.attribute("overflow") = "hidden";
  5697. grd_oscllist.attribute("overflow") = "hidden";
  5698. grd_diag.attribute("overflow") = "hidden";
  5699. grd_earnlist1.attribute("overflow") = "hidden";
  5700. grd_prcplist.attribute("overflow") = "hidden";
  5701. grd_earnlist.attribute("overflow") = "hidden";
  5702. grd_calcflagn.attribute("overflow") = "hidden";
  5703. grd_rcptlist.attribute("overflow") = "hidden";
  5704. grd_joscllist.attribute("overflow") = "hidden";
  5705. grd_eactotpt.attribute("overflow") = "hidden";
  5706. grd_Eactlist.attribute("overflow") = "hidden";
  5707. grd_Eoscllist.attribute("overflow") = "hidden";
  5708. grd_Ercptlist.attribute("overflow") = "hidden";
  5709. grd_Eearnlist.attribute("overflow") = "hidden";
  5710. /*
  5711. grd_tday.attribute("width") = "785";
  5712. grd_rsrv.attribute("width") = "785";
  5713. grd_past.attribute("width") = "785";
  5714. */
  5715. grd_tday.attribute("width") = "499";
  5716. grd_rsrv.attribute("width") = "499";
  5717. grd_past.attribute("width") = "499";
  5718. grd_calcflagn.attribute("width") = "795";
  5719. grd_rcptlist.attribute("width") = "795";
  5720. grd_joscllist.attribute("width") = "795";
  5721. grd_oscllist.attribute("width") = "785";
  5722. grd_prcplist.attribute("width") = "565";
  5723. line_tday.attribute("x1") = "5";
  5724. line_tday.attribute("x2") = "790";
  5725. line_rsrv.attribute("x1") = "5";
  5726. line_rsrv.attribute("x2") = "790";
  5727. line_past.attribute("x1") = "5";
  5728. line_past.attribute("x2") = "790";
  5729. line_earnlist1.attribute("x1") = "5";
  5730. line_earnlist1.attribute("x2") = "790";
  5731. ipt_pid.attribute("top") = "32";
  5732. ipt_hngnm.attribute("top") = "56";
  5733. ipt_pid.attribute("left") = "123";
  5734. ipt_hngnm.attribute("left") = "123";
  5735. btn_chk_all_cncl.attribute("left") = "437";
  5736. //2015/01/28 이정택 주석처리
  5737. //btn_chk_all_cncl_act.attribute("left") = "437";
  5738. //2015/01/28 이정택 주석처리
  5739. }
  5740. function fbutton10_expnd_l() {
  5741. swt_main.attribute("left") = "0";
  5742. swt_main.attribute("width") = "907";
  5743. swt_outrcpt.attribute("width") = "902";
  5744. swt_jungrcpt.attribute("width") = "902";
  5745. swt_jung_opmi_oscl.attribute("width") = "899";
  5746. swt_execjungsan.attribute("width") = "899";
  5747. grd_diag1.attribute("overflow") = "scroll";
  5748. grd_oscllist.attribute("overflow") = "scroll";
  5749. grd_diag.attribute("overflow") = "scroll";
  5750. grd_earnlist1.attribute("overflow") = "scroll";
  5751. grd_prcplist.attribute("overflow") = "scroll";
  5752. grd_earnlist.attribute("overflow") = "scroll";
  5753. grd_calcflagn.attribute("overflow") = "scroll";
  5754. grd_rcptlist.attribute("overflow") = "scroll";
  5755. grd_joscllist.attribute("overflow") = "scroll";
  5756. grd_eactotpt.attribute("overflow") = "scroll";
  5757. grd_Eactlist.attribute("overflow") = "scroll";
  5758. grd_Eoscllist.attribute("overflow") = "scroll";
  5759. grd_Ercptlist.attribute("overflow") = "scroll";
  5760. grd_Eearnlist.attribute("overflow") = "scroll";
  5761. grd_tday.attribute("width") = "890";
  5762. grd_rsrv.attribute("width") = "890";
  5763. grd_past.attribute("width") = "890";
  5764. grd_calcflagn.attribute("width") = "898";
  5765. grd_rcptlist.attribute("width") = "895";
  5766. grd_joscllist.attribute("width") = "895";
  5767. grd_oscllist.attribute("width") = "890";
  5768. grd_prcplist.attribute("width") = "525";
  5769. line_tday.attribute("x1") = "5";
  5770. line_tday.attribute("x2") = "895";
  5771. line_rsrv.attribute("x1") = "5";
  5772. line_rsrv.attribute("x2") = "895";
  5773. line_past.attribute("x1") = "5";
  5774. line_past.attribute("x2") = "895";
  5775. line_earnlist1.attribute("x1") = "5";
  5776. line_earnlist1.attribute("x2") = "895";
  5777. ipt_pid.attribute("top") = "5";
  5778. ipt_hngnm.attribute("top") = "5";
  5779. ipt_pid.attribute("left") = "415";
  5780. ipt_hngnm.attribute("left") = "510";
  5781. btn_chk_all_cncl.attribute("left") = "834";
  5782. //2015/01/28 이정택 주석처리
  5783. //btn_chk_all_cncl_act.attribute("left") = "834";
  5784. //2015/01/28 이정택 주석처리
  5785. }
  5786. function fcmb_suppkind() {
  5787. var vappdd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  5788. //보조유형 선택하면,
  5789. //건강보험 && ! 전액본인부담 일때 보험자기호 Default 자동세팅 (PAM.js 참고)
  5790. //전체공통:피보관계 본인 자동세팅
  5791. if ( model.getValue("/root/main/outrgst/ptin/ptin_insukind") == gsInsu_BoHeom &&
  5792. model.getValue("/root/main/outrgst/ptin/ptin_suppkind") != gsSupp_100 ) {
  5793. model.setValue("/root/main/outrgst/ptin/ptin_insucd",gsInsuCd_Default);
  5794. }
  5795. if(model.getValue("/root/main/outrgst/ptin/ptin_insdrela") == "") model.setValue("/root/main/outrgst/ptin/ptin_insdrela" ,"1");
  5796. cmb_insdrela.dispatch("xforms-select");
  5797. model.setValue("/root/main/outrgst/ptin/ptin_fromdd",getCurrentDate());
  5798. if ( model.getValue("/root/main/outrgst/ptin/ptin_insukind") != gsInsu_IlBan && //보험정보:일반 아니고
  5799. model.getValue("/root/main/outrgst/ptin/ptin_insukind") != gsInsu_ForIn && //보험정보:외국인
  5800. ipt_suppkind.currentText != gsSupp_100 ) { //전액본인100% 가 아니면, 보험정보 조회
  5801. if(vappdd =="") {vappdd = getCurrentDate();}
  5802. //환자의 보험정보 조회(환자별 보험정보 테이블에서)
  5803. fGetPTIN(model.getValue("/root/main/patinfo/patinfolist/pid") ,model.getValue("/root/main/outrgst/ptin/ptin_insukind"),"","",vappdd);
  5804. }
  5805. // 자보 + 전액본인부담의 경우 보험회사 정보를 초기화 추가 by 조중래 20130705
  5806. if ( model.getValue("/root/main/outrgst/ptin/ptin_insukind") == gsInsu_JaboKind
  5807. && model.getValue("/root/main/outrgst/ptin/ptin_suppkind") == gsSupp_100 ) {
  5808. model.setValue("/root/main/outrgst/aipm/aipm_insucmpycd", "-");
  5809. model.setValue("/root/main/outrgst/aipm/aipm_insucdnm", "");
  5810. }
  5811. //2017/03/13 전액본인부담을 선택했을시 보조사유를 선택 할 수 있도록 프로그램 수정 (이정택)
  5812. fSuppKindSelect_outord();
  5813. //2017/03/13 전액본인부담을 선택했을시 보조사유를 선택 할 수 있도록 프로그램 수정 (이정택)
  5814. fLItemRefresh();
  5815. }
  5816. //화면 처음에 열릴떄 딱 한번만 실행! 이후실행하면 안됨!
  5817. function fInitialize() {
  5818. model.makenode("/root/node_bk/main");
  5819. model.makenode("/root/node_bk/send");
  5820. model.makenode("/root/node_bk/hidden");
  5821. model.makenode("/root/node_bk/properties");
  5822. model.makenode("/root/node_bk/temp");
  5823. model.copynode("/root/node_bk/main" ,"/root/main");
  5824. model.copynode("/root/node_bk/send" ,"/root/send");
  5825. model.copynode("/root/node_bk/hidden" ,"/root/hidden");
  5826. model.copynode("/root/node_bk/properties" ,"/root/properties");
  5827. model.copynode("/root/node_bk/temp" ,"/root/temp");
  5828. }
  5829. //외래수납 우측화면 리프레쉬
  5830. function fRItemRefresh() {
  5831. opt_unco_o.refresh();
  5832. opt_unco_i.refresh();
  5833. opt_aiduncoamt.refresh();
  5834. opt_totamt.refresh();
  5835. opt_payamt.refresh();
  5836. opt_payinsubamt.refresh();
  5837. opt_payownbamt.refresh();
  5838. opt_nopyinsubamt.refresh();
  5839. opt_nopyownbamt.refresh();
  5840. opt_specinsubamt.refresh();
  5841. opt_specinsubamt.refresh();
  5842. opt_specownbamt.refresh();
  5843. opt_totownbamt.refresh();
  5844. opt_handcapfund.refresh();
  5845. opt_ersubtamt.refresh();
  5846. opt_bloddiscamt.refresh();
  5847. opt_suppamt.refresh();
  5848. opt_discamt.refresh();
  5849. ipt_reducd.refresh();
  5850. cmb_reducd.refresh();
  5851. ipt_reduamt.refresh();
  5852. ipt_uncocd.refresh();
  5853. cmb_uncocd.refresh();
  5854. ipt_uncoamt.refresh();
  5855. opt_precashamt.refresh();
  5856. opt_premdlrcptamt.refresh();
  5857. opt_precardamt.refresh();
  5858. opt_preonlineamt.refresh();
  5859. opt_mdlremamt.refresh();
  5860. ipt_mdlrcptamt.refresh();
  5861. opt_rcptexptamt.refresh();
  5862. rdo_cardyn.refresh();
  5863. rdo_indyn.refresh();
  5864. ipt_cardno.refresh();
  5865. ipt_valiterm.refresh();
  5866. ipt_allotmm.refresh();
  5867. ipt_cardamt.refresh();
  5868. ipt_cashamt.refresh();
  5869. ipt_onlineamt.refresh();
  5870. opt_heallifeamtclamamt.refresh();
  5871. opt_prepregdmndamt.refresh();
  5872. ipt_pregdmndamt.refresh();
  5873. cmb_paypsnflag.refresh();
  5874. ipt_paypsnamt.refresh();
  5875. ipt_paypsnrem.refresh();
  5876. opt_cashvanamt.refresh();
  5877. opt_cardvanamt.refresh();
  5878. bl_cardck.refresh();
  5879. //20090701 단수처리 임시 값 세팅
  5880. output1.refresh();
  5881. output2.refresh();
  5882. output3.refresh();
  5883. output4.refresh();
  5884. output5.refresh();
  5885. //2011-07-01 미용성형 고시 작업
  5886. opt_taxamt.refresh();
  5887. }
  5888. //외래수납 좌측화면 리프레쉬
  5889. function fLItemRefresh() {
  5890. rdo_workgubn.refresh();
  5891. ipt_pid.refresh();
  5892. cmb_sex.refresh();
  5893. opt_age.refresh();
  5894. ipt_hngnm.refresh();
  5895. ipt_engnm.refresh();
  5896. btn_nullbaseinfo.refresh();
  5897. ipt_rrgstno1.refresh();
  5898. ipt_rrgstno2.refresh();
  5899. ipt_brthdd.refresh();
  5900. chk_recmyn.refresh();
  5901. ipt_recmernm.refresh();
  5902. cmb_recmerrela.refresh();
  5903. chk_vipyn.refresh();
  5904. ipt_viprem.refresh();
  5905. chk_forgeryn.refresh();
  5906. textarea1.refresh();
  5907. ipt_insukind.refresh();
  5908. cmb_insukind.refresh();
  5909. opt_otptetc.refresh();
  5910. ipt_suppkind.refresh();
  5911. cmb_suppkind.refresh();
  5912. cmb_suppkindresn.refresh();
  5913. ipt_insucd.refresh();
  5914. ipt_insucdnm.refresh();
  5915. ipt_insuno.refresh();
  5916. cmb_insdrela.refresh();
  5917. ipt_insdnm.refresh();
  5918. ipt_insdrrgstno1.refresh();
  5919. ipt_insdrrgstno2.refresh();
  5920. ipt_fromdd.refresh();
  5921. ipt_todd.refresh();
  5922. opt_srdg_seridiagno.refresh();
  5923. opt_srdg_fromdd.refresh();
  5924. opt_srdg_todd.refresh();
  5925. opt_rooa_rareobstno.refresh();
  5926. opt_rooa_fromdd.refresh();
  5927. opt_rooa_todd.refresh();
  5928. cmb_centcd.refresh();
  5929. cmb_subdeptcd.refresh();
  5930. cmb_orddeptcd.refresh();
  5931. cmb_orddrid.refresh();
  5932. ipt_ordreqformflag.refresh();
  5933. cmb_ordreqformflag.refresh();
  5934. rdo_specordyn.refresh();
  5935. rdo_medamtestmyn.refresh();
  5936. cmb_medamtfreeresn.refresh();
  5937. cmb_fsexamflag.refresh();
  5938. chk_fsexammanlyn.refresh();
  5939. rdo_handicaprbookpossnyn.refresh();
  5940. cmb_hndc_handcapflag.refresh();
  5941. cmb_hndc_handcapgrde.refresh();
  5942. ipt_disccd.refresh();
  5943. cmb_disccd.refresh();
  5944. cmb_hosoutexptresncd.refresh();
  5945. cmb_rsrvflag.refresh();
  5946. cmb_etcordflag.refresh();
  5947. cmb_clincstdyacptflag.refresh();
  5948. opt_mngtno.refresh();
  5949. opt_bizplcenm.refresh();
  5950. opt_inducsbrchcd.refresh();
  5951. opt_insucdnm_ids.refresh();
  5952. opt_acddd.refresh();
  5953. opt_ordopendd.refresh();
  5954. opt_apryfromdd.refresh();
  5955. opt_aprytodd.refresh();
  5956. opt_insucmpycd.refresh();
  5957. opt_insucdnm.refresh();
  5958. opt_paylimamt.refresh();
  5959. opt_insuamt.refresh();
  5960. opt_restamt.refresh();
  5961. opt_aprvfromdd.refresh();
  5962. opt_aprvtodd.refresh();
  5963. bl_proc.refresh();
  5964. //if(model.getvalue("/root/etc/union_msg") != "") grd_union_msg.attribute("visibility") = "visivle";
  5965. //if(model.getvalue("/root/etc/union_msg") == "") grd_union_msg.attribute("visibility") = "hidden";
  5966. grd_union_msg.refresh();
  5967. txt_union_msg.refresh();
  5968. }
  5969. //외래수납 중앙화면 리프레쉬
  5970. function fCItemRefresh() {
  5971. if(model.getvalue("/root/temp3/workgubn") == "Y") {
  5972. grd_tday.rebuild();
  5973. grd_rsrv.rebuild();
  5974. grd_past.rebuild();
  5975. }
  5976. if(model.getvalue("/root/temp3/workgubn") == "N") {
  5977. grd_calcflagn.rebuild();
  5978. grd_rcptlist.rebuild();
  5979. }
  5980. if(model.getvalue("/root/temp3/workgubn") == "E") {
  5981. grd_eactotpt.refresh();
  5982. grd_Eactlist.refresh();
  5983. grd_Eoscllist.refresh();
  5984. grd_Ercptlist.refresh();
  5985. grd_Eearnlist.refresh();
  5986. }
  5987. }
  5988. //처방전 출력.
  5989. function fPrescription() {
  5990. open("SMPAO00101","","","","ccc","","","","");
  5991. }
  5992. //환자카드 발급신청 최초발행:'F' 재발행:'R'
  5993. function fIssuePatientCard(flag){
  5994. //노드생성
  5995. model.makeNode("/root/hidden/patcardissue/flag");
  5996. model.makeNode("/root/hidden/patcardissue/pid");
  5997. model.makeNode("/root/hidden/patcardissue/rrgstno1");
  5998. model.makeNode("/root/hidden/patcardissue/rrgstno2");
  5999. model.makeNode("/root/hidden/patcardissue/issflag");
  6000. model.makeNode("/root/hidden/patcardissue/issno");
  6001. model.makeNode("/root/hidden/patcardissue/hngnm");
  6002. model.makeNode("/root/hidden/patcardissue/remfact");
  6003. model.makeNode("/root/hidden/patcardissue/result");
  6004. //데이터 체크
  6005. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  6006. if( pid == '' || pid == ' ' || pid == '-' ){
  6007. messageBox("등록번호를 찾을 수 없습니다.", "E999", "");
  6008. return false;
  6009. }
  6010. var rrgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  6011. if( rrgstno1 == '' || rrgstno1 == ' ' || rrgstno1 == '-' ){
  6012. messageBox("주민등록번호 앞 6자리를 찾을 수 없습니다.", "E999", "");
  6013. return false;
  6014. }
  6015. var rrgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  6016. if( rrgstno2 == '' || rrgstno2 == ' ' || rrgstno2 == '-' ){
  6017. messageBox("주민등록번호 뒤 7자리를 찾을 수 없습니다.", "E999", "");
  6018. return false;
  6019. }
  6020. var hngnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  6021. if( hngnm == '' || hngnm == ' ' || hngnm == '-' ){
  6022. messageBox("환자이름을 찾을 수 없습니다.", "E999", "");
  6023. return false;
  6024. }
  6025. var issno = model.getValue("/root/hidden/patcardissue/pcinfo");
  6026. if( issno == '' || issno == ' ' || issno == '-' ){
  6027. messageBox("PC 고유번호 정보를 찾을 수 없습니다.", "E999", "");
  6028. return false;
  6029. }
  6030. //노드값 세팅
  6031. model.setValue("/root/hidden/patcardissue/flag", flag); //최초발행 : 'F' 재발행 : 'R'
  6032. model.setValue("/root/hidden/patcardissue/pid", pid);
  6033. model.setValue("/root/hidden/patcardissue/rrgstno1", rrgstno1);
  6034. model.setValue("/root/hidden/patcardissue/rrgstno2", rrgstno2);
  6035. model.setValue("/root/hidden/patcardissue/issflag", "7"); //환자 cf)직원은 '4"
  6036. model.setValue("/root/hidden/patcardissue/issno", issno);
  6037. model.setValue("/root/hidden/patcardissue/hngnm", hngnm);
  6038. model.setValue("/root/hidden/patcardissue/remfact", '-');
  6039. if(submit("TXPAM00201")){
  6040. messageBox("환자카드 발급신청을 정상적으로 완료했습니다. 카드발급 프린터에서 발급상황을 확인하세요.", "I999", "");
  6041. }
  6042. }
  6043. //계산취소
  6044. function fCalcCancel(flag){
  6045. //수납화면 계산취소
  6046. if (model.getValue("/root/temp3/workgubn") == "Y" && flag == null) {
  6047. fSuNapCalculateCancel();
  6048. }
  6049. //수납화면에서 화면이동시 자동계산취소
  6050. if (model.getValue("/root/temp3/workgubn") == "Y" && flag == "auto" && autoCalCancel.value == "true") {
  6051. fSuNapCalculateCancel_auto();
  6052. }
  6053. //정산화면 계산취소
  6054. if (model.getValue("/root/temp3/workgubn") == "N" && flag == null) {
  6055. fJudgCalculateCancel();
  6056. }
  6057. //정산화면에서 화면이동시 자동계산취소
  6058. if (model.getValue("/root/temp3/workgubn") == "N" && flag =="auto" && autoCalCancel.value == "true") {
  6059. fJudgCalculateCancel_auto();
  6060. }
  6061. //실시정산화면에서 화면이동시 계산취소
  6062. if (model.getValue("/root/temp3/workgubn") == "E" && flag =="auto" && autoCalCancel.value == "true") {
  6063. //fExecCancel_auto();
  6064. }
  6065. }
  6066. //실시정산 완료된건 조회(취소가 가능한 대상)
  6067. function fExecCancel_auto() {
  6068. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  6069. removeChildren("/root/send/s_otpt/otpt");
  6070. model.copynode("/root/send/s_opmi" , "/root/node_bk/send/s_opmi");
  6071. model.copynode("/root/send/s_oscl" , "/root/node_bk/send/s_oscl");
  6072. model.copynode("/root/hidden/rcv1/h_opmi" , "/root/node_bk/hidden/rcv1/h_opmi");
  6073. //체크된 외래등록내역 copy
  6074. var iSelRow = 0;
  6075. for (var iRow = 1; iRow<= grd_eactotpt.rows ; iRow++) {
  6076. if (model.getValue("/root/main/baseinfo/otpt_eactotpt/otpt["+iRow+"]/otpt_calcflag") =="S" &&
  6077. model.getValue("/root/main/baseinfo/otpt_eactotpt/otpt["+iRow+"]/otpt_rollbackyn") =="Y"
  6078. ) {
  6079. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_eactotpt/otpt["+iRow+"]","before");
  6080. iSelRow++;
  6081. }
  6082. }
  6083. if (iSelRow == 0) {
  6084. return;
  6085. }
  6086. submit("TXPAO00108");
  6087. }
  6088. //외래정산화면 자동 계산취소
  6089. function fJudgCalculateCancel_auto(){
  6090. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  6091. removeChildren("/root/send/s_otpt/otpt");
  6092. model.copynode("/root/send/s_opmi" , "/root/node_bk/send/s_opmi");
  6093. model.copynode("/root/send/s_oscl" , "/root/node_bk/send/s_oscl");
  6094. model.copynode("/root/hidden/rcv1/h_opmi" , "/root/node_bk/hidden/rcv1/h_opmi");
  6095. //체크된 외래등록내역 copy
  6096. var iSelRow = 0;
  6097. for (var iRow = 1; iRow<= grd_calcflagn.rows ; iRow++) {
  6098. if (model.getValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]/otpt_calcflag") =="S" &&
  6099. model.getValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]/otpt_rollbackyn") =="Y"
  6100. ) {
  6101. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]","before");
  6102. iSelRow++;
  6103. }
  6104. }
  6105. if (iSelRow == 0) {
  6106. return;
  6107. }
  6108. submit("TXPAO00108");
  6109. }
  6110. //외래정산화면 계산취소
  6111. function fJudgCalculateCancel(){
  6112. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  6113. removeChildren("/root/send/s_otpt/otpt");
  6114. model.copynode("/root/send/s_opmi" , "/root/node_bk/send/s_opmi");
  6115. model.copynode("/root/send/s_oscl" , "/root/node_bk/send/s_oscl");
  6116. model.copynode("/root/hidden/rcv1/h_opmi" , "/root/node_bk/hidden/rcv1/h_opmi");
  6117. //체크된 외래등록내역 copy
  6118. var iSelRow = 0;
  6119. for (var iRow = 1; iRow<= grd_calcflagn.rows ; iRow++) {
  6120. if (model.getValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]/otpt_checkflag") =="true" &&
  6121. model.getValue("/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]/otpt_calcflag") =="S") {
  6122. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_calcflagn/otpt["+iRow+"]","before");
  6123. iSelRow++;
  6124. }
  6125. }
  6126. if (iSelRow == 0) {
  6127. messageBox("계산건이 없습니다.", "I999", "");
  6128. return;
  6129. }
  6130. if(submit("TXPAO00108")) fCalcflagNSearch();
  6131. }
  6132. //외래수납화면 자동 계산취소
  6133. function fSuNapCalculateCancel_auto(){
  6134. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  6135. model.copynode("/root/send/s_opmi" , "/root/node_bk/send/s_opmi");
  6136. model.copynode("/root/send/s_oscl" , "/root/node_bk/send/s_oscl");
  6137. model.copynode("/root/hidden/rcv1/h_opmi" , "/root/node_bk/hidden/rcv1/h_opmi");
  6138. var iSelRow = 0;
  6139. for (var iRow = 1; iRow<= grd_tday.rows ; iRow++) {
  6140. if (model.getValue("/root/main/baseinfo/otpt_tday/otpt["+iRow+"]/otpt_calcflag") =="S" &&
  6141. model.getValue("/root/main/baseinfo/otpt_tday/otpt["+iRow+"]/otpt_rollbackyn")=="Y"
  6142. ) {
  6143. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_tday/otpt["+iRow+"]","before");
  6144. iSelRow++;
  6145. }
  6146. }
  6147. for (var iRow = 1; iRow<= grd_rsrv.rows ; iRow++) {
  6148. if (model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]/otpt_calcflag") =="S" &&
  6149. model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]/otpt_rollbackyn")=="Y"
  6150. ) {
  6151. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]","before");
  6152. iSelRow++;
  6153. }
  6154. }
  6155. for (var iRow = 1; iRow<= grd_past.rows ; iRow++) {
  6156. if (model.getValue("/root/main/baseinfo/otpt_past/otpt["+iRow+"]/otpt_calcflag") == "S" &&
  6157. model.getValue("/root/main/baseinfo/otpt_past/otpt["+iRow+"]/otpt_rollbackyn") == "Y"
  6158. ) {
  6159. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_past/otpt["+iRow+"]","before");
  6160. iSelRow++;
  6161. }
  6162. }
  6163. if (iSelRow == 0) {
  6164. return;
  6165. }
  6166. submit("TXPAO00108");
  6167. }
  6168. //외래수납화면 계산취소
  6169. function fSuNapCalculateCancel(){
  6170. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  6171. model.copynode("/root/send/s_opmi" , "/root/node_bk/send/s_opmi");
  6172. model.copynode("/root/send/s_oscl" , "/root/node_bk/send/s_oscl");
  6173. model.copynode("/root/hidden/rcv1/h_opmi" , "/root/node_bk/hidden/rcv1/h_opmi");
  6174. var iSelRow = 0;
  6175. for (var iRow = 1; iRow<= grd_tday.rows ; iRow++) {
  6176. if (model.getValue("/root/main/baseinfo/otpt_tday/otpt["+iRow+"]/otpt_checkflag")=="true") {
  6177. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_tday/otpt["+iRow+"]","before");
  6178. iSelRow++;
  6179. }
  6180. }
  6181. for (var iRow = 1; iRow<= grd_rsrv.rows ; iRow++) {
  6182. if (model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]/otpt_checkflag")=="true") {
  6183. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_rsrv/otpt["+iRow+"]","before");
  6184. iSelRow++;
  6185. }
  6186. }
  6187. for (var iRow = 1; iRow<= grd_past.rows ; iRow++) {
  6188. if (model.getValue("root/main/baseinfo/otpt_past/otpt["+iRow+"]/otpt_checkflag") == "true") {
  6189. copyNodeListType("/root/send/s_otpt","/root/main/baseinfo/otpt_past/otpt["+iRow+"]","before");
  6190. iSelRow++;
  6191. }
  6192. }
  6193. if (iSelRow == 0) {
  6194. messageBox("계산건이 없습니다.", "I999", "");
  6195. return;
  6196. }
  6197. if(submit("TXPAO00108")) fSearch();
  6198. }
  6199. /*
  6200. * 외래수납에서 등록건 조회시 기타체크
  6201. * flag 값 - 환자조회, 클릭정상, 클릭오류, 계산
  6202. */
  6203. function fEtcCheck(flag){
  6204. // debugger;
  6205. /* 20091026 cys - 아래문장 추가한 이유(7/31일) 기억이 안남 다시 주석처리함
  6206. 주석풀면 서버오류메세지후 이전 체크내역을 접수상세정보에 못뿌려줌 재계산시 에러남
  6207. if(flag == "클릭오류"){
  6208. model.copynode("/root/hidden/rcv1", "/root/node_bk/hidden/rcv1");
  6209. }
  6210. */
  6211. var otpt_cnt = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt/otpt_pid");
  6212. if(otpt_cnt > 1) {
  6213. rdo_specordyn.disabled =true;
  6214. rdo_medamtestmyn.disabled =true;
  6215. chk_fsexammanlyn.disabled =true;
  6216. //rdo_handicaprbookpossnyn.disabled =true;
  6217. cmb_hndc_handcapgrde.disabled =true;
  6218. //cmb_hosoutexptresncd.disabled =true;
  6219. cmb_etcordflag.disabled =true;
  6220. cmb_clincstdyacptflag.disabled =true;
  6221. }else{
  6222. //rdo_specordyn.disabled =false;
  6223. //rdo_medamtestmyn.disabled =false;
  6224. chk_fsexammanlyn.disabled =false;
  6225. //rdo_handicaprbookpossnyn.disabled =false;
  6226. cmb_hndc_handcapgrde.disabled =false;
  6227. //cmb_hosoutexptresncd.disabled =false;
  6228. cmb_etcordflag.disabled =false;
  6229. cmb_clincstdyacptflag.disabled =false;
  6230. }
  6231. if(model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag") == "H"){
  6232. model.setValue("/root/etc/opt_otptetc", "H 희귀난치");
  6233. }else if(model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_rareobstflag") == "L"){
  6234. model.setValue("/root/etc/opt_otptetc", "결핵지원");
  6235. }else{
  6236. model.setValue("/root/etc/opt_otptetc","");
  6237. }
  6238. grd_oscllist.rebuild();
  6239. if(grd_oscllist.rows > 2) {
  6240. setTree(grd_oscllist, 0, 0, true);
  6241. }
  6242. //미계산건이 한건이라도있으면 재계산 하도록 수납버튼 disable시킵니다.
  6243. btn_calc.disabled = false;
  6244. //2017/04/18 이정택 수정(수납 버튼은 재계산 돌리고 난 다음에 풀리도록 수정)
  6245. //btn_rcpt.disabled = false;
  6246. btn_rcpt.disabled = true;
  6247. //2017/04/18 이정택 수정(수납 버튼은 재계산 돌리고 난 다음에 풀리도록 수정)
  6248. for(var i=1; i<= otpt_cnt; i++){
  6249. //2017/04/18 이정택 수정(수납 버튼은 재계산 돌리고 난 다음에 풀리도록 수정)
  6250. if(model.getvalue("/root/main/outrgst/m_otpt/otpt["+ i +"]/otpt_checkflag") == "true" && flag == "계산"){
  6251. btn_rcpt.disabled = false;
  6252. break;
  6253. }
  6254. /*
  6255. if(model.getvalue("/root/main/outrgst/m_otpt/otpt["+ i +"]/otpt_checkflag") == "true"
  6256. && model.getvalue("/root/main/outrgst/m_otpt/otpt["+ i +"]/otpt_calcflag") != "S"){
  6257. btn_rcpt.disabled = true;
  6258. break;
  6259. }
  6260. */
  6261. //2017/04/18 이정택 수정(수납 버튼은 재계산 돌리고 난 다음에 풀리도록 수정)
  6262. }
  6263. //의료급여 환자 의료급여자격조회승인팝업 띄운다.
  6264. opt_heallifeamtclamamt.attribute("color") = '#000000'; //black 초기화
  6265. ipt_pregdmndamt.attribute("color") = '#000000'; //black 초기화
  6266. if((flag == "클릭정상" || flag == "계산")
  6267. && (model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") == "21" || model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") == "22")
  6268. && (model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_calcflag") == "S")
  6269. // 의료급여 환자 당일 수납 할 수 있도록 프로그램 수정 (2017/03/10 이정택)
  6270. //&& (model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_orddd") == getCurrentDate())
  6271. // 의료급여 환자 당일 수납 할 수 있도록 프로그램 수정 (2017/03/10 이정택)
  6272. //&& otpt_cnt == 1
  6273. && (model.getvalue("/root/init/basecdlist/P0032[cdid='20']/cdnm") == "Y")
  6274. //2016/02/22 이정택(의료급여 환자를 보험유형 변경시 변경되지 않는 오류 수정)
  6275. && ((model.getValue("/root/main/outrgst/ptin/ptin_insukind") == "21" || model.getValue("/root/main/outrgst/ptin/ptin_insukind") == "22") && getParameter("SPPMC03900_heallifeamtval") == "")){
  6276. //2016/02/22 이정택
  6277. fbtn_proc3();
  6278. setParameter("SPPMC03900_heallifeamtval", "");
  6279. }
  6280. if(parseInt(model.getvalue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt_org")) > 0 &&
  6281. parseInt(model.getvalue("/root/main/outrgst/m_opmi/opmi/opmi_heallifeamtclamamt")) > 0 &&
  6282. opt_heallifeamtclamamt.attribute("color") == '#000000'){
  6283. //messageBox("건강생활유지비 승인된 내역이 있습니다.","I999","");
  6284. model.setvalue("/root/etc/union_msg", "건강생활유지비 승인된 내역이 있습니다." + '\n' + model.getValue("/root/etc/union_msg"));
  6285. }
  6286. model.setvalue("/root/etc/cardvanamt" , "");
  6287. model.setvalue("/root/etc/cashvanamt" , "");
  6288. if(getNodesetCount("/root/hidden/rcv1/h_dcgm/dcgm/dcgm_pid") > 1){
  6289. ipt_reducd.disabled = true;
  6290. cmb_reducd.disabled = true;
  6291. ipt_reduamt.disabled = true;
  6292. }else{
  6293. ipt_reducd.disabled = false;
  6294. cmb_reducd.disabled = false;
  6295. ipt_reduamt.disabled = false;
  6296. }
  6297. if(getNodesetCount("/root/hidden/rcv1/h_unco/unco/unco_pid") > 1){
  6298. ipt_uncocd.disabled = true;
  6299. cmb_uncocd.disabled = true;
  6300. ipt_uncoamt.disabled = true;
  6301. }else{
  6302. ipt_uncocd.disabled = false;
  6303. cmb_uncocd.disabled = false;
  6304. ipt_uncoamt.disabled = false;
  6305. }
  6306. model.setValue("/root/main/outrgst/m_etc/discreducd", model.getValue("/root/hidden/rcv1/h_dcgm/dcgm[dcgm_discreduflag = 'G']/dcgm_discreducd")); //임의감면코드
  6307. //2015/06/20 이정택 추가
  6308. //model.setValue("/root/main/outrgst/m_etc/uncocd" , model.getValue("/root/hidden/rcv1/h_unco/unco/unco_uncocd")); //미수코드
  6309. /*if(model.getValue("/root/hidden/rcv1/h_unco/unco/unco_uncocd")!="" && (flag != "계산")){
  6310. model.setValue("/root/main/outrgst/m_etc/uncocd" , model.getValue("/root/hidden/rcv1/h_unco/unco/unco_uncocd")); //미수코드
  6311. }*/
  6312. //debugger;
  6313. if(!isNull(model.getValue("/root/hidden/rcv1/h_unco/unco/unco_uncocd")) && model.getValue("/root/hidden/rcv1/h_unco/unco/unco_uncocd")!="-"){
  6314. model.makeValue("/root/main/outrgst/m_etc/uncocd" , model.getValue("/root/hidden/rcv1/h_unco/unco/unco_uncocd")); //미수코드
  6315. }else if(!isNull(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd")) && model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd")!="-"){
  6316. model.makeValue("/root/main/outrgst/m_etc/uncocd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd")); //미수코드
  6317. }
  6318. //2015/06/20 이정택 추가
  6319. //임상미수 셋팅
  6320. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") == "71" && parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt")) > 0){
  6321. model.setValue("/root/main/outrgst/m_etc/uncocd", "I41");
  6322. }
  6323. //미수코드 존재시 미수금액 자동세팅(2015/06/19)
  6324. if(flag == "클릭정상"){
  6325. if(!isNull(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd")) && model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd")!="-"){
  6326. model.setValue("/root/main/outrgst/m_etc/uncocd", model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd"));
  6327. cmb_uncocd.refresh();
  6328. fCalc_Uncoamt(flag);
  6329. }
  6330. }
  6331. if(flag == "계산"){
  6332. if(!isNull(model.getValue("/root/main/outrgst/m_etc/uncocd")) && model.getValue("/root/main/outrgst/m_etc/uncocd")!="-"){
  6333. model.setValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd", model.getValue("/root/main/outrgst/m_etc/uncocd"));
  6334. //model.setValue("/root/main/outrgst/m_etc/uncocd", model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd"));
  6335. cmb_uncocd.refresh();
  6336. fCalc_Uncoamt(flag);
  6337. }
  6338. }
  6339. model.setValue("/root/main/outrgst/m_etc/disccls" , model.getValue("/root/init/basecdlist/reducd[cdid = '"+ model.getValue("/root/main/outrgst/m_etc/discreducd")+ "']/cls")); //임의감면코드
  6340. model.setValue("/root/main/outrgst/m_etc/uncocls" , model.getValue("/root/init/basecdlist/uncocd[cdid = '"+ model.getValue("/root/main/outrgst/m_etc/uncocd")+ "']/cls")); //미수코드
  6341. model.copynode("/root/send/s_dcgm", "/root/hidden/rcv1/h_dcgm");
  6342. model.copynode("/root/send/s_unco", "/root/hidden/rcv1/h_unco");
  6343. //BMT환자 초진료 재진료로 변경 메세지
  6344. if(flag == "클릭정상"){
  6345. fCheckBMTPatMsg(model.getValue("/root/main/patinfo/patinfolist/pidflag"),
  6346. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_centcd"),
  6347. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd"),
  6348. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_fsexamflag")
  6349. );
  6350. }
  6351. //방문간호지시서인 경우 보험유형에 취득일자,종료일자 수정가능하게함
  6352. if(model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") == "81") {
  6353. ipt_fromdd.disabled = false;
  6354. ipt_todd.disabled = false;
  6355. }else{
  6356. ipt_fromdd.disabled = true;
  6357. ipt_todd.disabled = true;
  6358. }
  6359. //임상환자이면서 수납할금액이 있는경우 체크
  6360. if((flag == "클릭정상")
  6361. && (model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") == "71")
  6362. && (model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_calcflag") == "S")
  6363. && (model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt_org") != "0")){
  6364. //messageBox("임상환자입니다. 수납금액을 미수로 입금하십시요.","I999","");
  6365. model.setvalue("/root/etc/union_msg" , "임상환자입니다. 수납금액을 미수로 입금하십시요." + '\n' + model.getValue("/root/etc/union_msg"));
  6366. }
  6367. //실시정산건 체크
  6368. /*
  6369. if((flag == "클릭정상")
  6370. && (model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_calcbaseflag") == "2")
  6371. && (model.getValue("/root/temp3/workgubn") != "E")){
  6372. messageBox("해당건은 실시정산건 입니다.","I999","");
  6373. }
  6374. */
  6375. if(flag == "클릭정상"
  6376. && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_ersubtamt") != "0"
  6377. && model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_ersubtamt") != ""){
  6378. model.setvalue("/root/etc/union_msg" , "상한제초과액 환자입니다. 금액확인후 진행하십시오." + '\n' + model.getValue("/root/etc/union_msg"));
  6379. }
  6380. fLItemRefresh();
  6381. fRItemRefresh();
  6382. fCItemRefresh();
  6383. }
  6384. /*
  6385. * 서버에서 오는 에러메세지 처리
  6386. * caller - 클릭, 계산, 수납, 수납실패
  6387. */
  6388. function fServerCheckMsg(caller){
  6389. var otpt_cnt = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt/otpt_pid");
  6390. var error_code = model.getvalue("/root/properties/error/code");
  6391. if(error_code == "약반납의뢰처방이 발생하였습니다. 약을 약국에 반납하시고, 수납하셔야 합니다."){
  6392. btn_rcpt.disabled = true;
  6393. }
  6394. ///////////////의사소견서///////////////////
  6395. if(error_code == "의사소견서 처방이 있습니다. 의사소견서 관리번호, 본인부담구분을 입력해주세요." ||
  6396. error_code == "의사소견서(치매) 처방이 있습니다. 의사소견서 관리번호, 본인부담구분을 입력해주세요."){
  6397. btn_rcpt.disabled = true;
  6398. modal("SMPAO00103" ,"","500","400","","","","","");
  6399. }
  6400. if(error_code == "의사소견서 단일처방이있습니다. 의사소견서 관리번호, 본인부담구분을 입력해주세요." ||
  6401. error_code == "의사소견서(치매) 단일처방이있습니다. 의사소견서 관리번호, 본인부담구분을 입력해주세요."){
  6402. btn_rcpt.disabled = true;
  6403. modal("SMPAO00103" ,"","500","400","","","","","");
  6404. var SMPAO00103_PARM = getParameter("SMPAO00103_PARM");
  6405. if(SMPAO00103_PARM > 0) {
  6406. var rtn = messageBox("진찰료: 면제, 사유: 의사소견서 발급으로 변경했습니다. \n계속 진행하시겠습니까?", "Q999")
  6407. if (rtn == 6) { // Yes : 6 / No : 7 / Cancel : 2
  6408. if(model.getValue("/root/temp3/workgubn") == "Y") fSearch();
  6409. if(model.getValue("/root/temp3/workgubn") == "N") fCalcflagNSearch();
  6410. }
  6411. }
  6412. }
  6413. if(error_code == "의사소견서 단일처방이므로 진찰료산정여부: 면제 사유:의사소견서발급으로 세팅합니다."){
  6414. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn" , "N");
  6415. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn" , "15");
  6416. rdo_medamtestmyn.refresh();
  6417. cmb_medamtfreeresn.refresh();
  6418. btn_calc.dispatch("DOMActivate");
  6419. }
  6420. /*
  6421. if(error_code == "의사소견서 및 타처방도 같이있습니다. 진찰료여부: 산정으로 세팅합니다."){
  6422. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn" , "Y");
  6423. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn" , "00");
  6424. rdo_medamtestmyn.refresh();
  6425. cmb_medamtfreeresn.refresh();
  6426. btn_calc.dispatch("DOMActivate");
  6427. }
  6428. */
  6429. ///////////////의사소견서 끝///////////////////
  6430. ///////////////방문간호지시서///////////////////
  6431. if(error_code == "방문간호지시서 처방이있습니다. 방문간호지시서 발급번호, 본인부담구분을 입력해주세요."){
  6432. btn_rcpt.disabled = true;
  6433. modal("SMPAO00104" ,"","500","400","","","","","");
  6434. }
  6435. if(error_code == "방문간호지시서 단일처방이있습니다. 방문간호지시서 발급번호, 본인부담구분을 입력해주세요."){
  6436. btn_rcpt.disabled = true;
  6437. modal("SMPAO00104" ,"","500","400","","","","","");
  6438. var SMPAO00104_PARM = getParameter("SMPAO00104_PARM");
  6439. if(SMPAO00104_PARM > 0) {
  6440. var rtn = messageBox("진찰료: 면제, 사유: 방문간호지시서 발급으로 변경했습니다. \n계속 진행하시겠습니까?", "Q999")
  6441. if (rtn == 6) { // Yes : 6 / No : 7 / Cancel : 2
  6442. if(model.getValue("/root/temp3/workgubn") == "Y") fSearch();
  6443. if(model.getValue("/root/temp3/workgubn") == "N") fCalcflagNSearch();
  6444. }
  6445. }
  6446. }
  6447. if(error_code == "방문간호지시서 단일처방이므로 진찰료산정여부: 면제 사유:방문간호지시서발급으로 세팅합니다."){
  6448. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn" , "N");
  6449. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn" , "16");
  6450. rdo_medamtestmyn.refresh();
  6451. cmb_medamtfreeresn.refresh();
  6452. btn_calc.dispatch("DOMActivate");
  6453. }
  6454. /*
  6455. if(error_code == "방문간호지시서 및 타처방도 같이있습니다. 진찰료여부: 산정으로 세팅합니다."){
  6456. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn" , "Y");
  6457. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn" , "00");
  6458. rdo_medamtestmyn.refresh();
  6459. cmb_medamtfreeresn.refresh();
  6460. btn_calc.dispatch("DOMActivate");
  6461. }
  6462. */
  6463. ///////////////방문간호지시서 끝///////////////////
  6464. ///////////////중증체크///////////////////
  6465. //2011-11-30 장기이식 기증자 체크되면 산정특례 체크 제외
  6466. //산증특례 관련 메시지가 먼저 뜨도록 프로그램 수정(2015/07/22 이정택)
  6467. if( model.getValue("/root/option/otp_dnoryn") != "Y" ) {
  6468. if(fCheck_Srdg_Msg(caller) == false){
  6469. return false;
  6470. }
  6471. }
  6472. ///////////////중증체크끝////////////////
  6473. /*
  6474. 서버에서 오는 에러메세지 체크 순서 변경(과거일자부터 미래일자로 체크)
  6475. for(var a=1; a<=getNodesetCount("/root/hidden/rcv1/h_msg/msg/msg"); a++){
  6476. */
  6477. for(var a=getNodesetCount("/root/hidden/rcv1/h_msg/msg/msg"); a>=1; a--){
  6478. //-------------- 처방전 미발행 유효일자 체크 msg
  6479. if(caller == "클릭" || caller == "계산") {
  6480. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_drugmsg") != "") {
  6481. var msg_drugmsg = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_drugmsg");
  6482. var rtn = messageBox(msg_drugmsg,"I999","");
  6483. btn_rcpt.disabled = true;
  6484. }
  6485. }
  6486. //-------------- 처방전 미발행 유효일자 체크 msg End
  6487. ///////////////외국인 OECD 회원국//////////////////////////
  6488. /* 경대병원 미적용 by 조중래 20120719
  6489. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_oecdyn") != "") {
  6490. var msg_OECDMsg = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_oecdyn");
  6491. //messageBox(msg_OECDMsg, "I999", "");
  6492. model.setvalue("/root/etc/union_msg" ,msg_OECDMsg + '\n' + model.getValue("/root/etc/union_msg"));
  6493. }
  6494. */
  6495. ///////////////외국인 OECD 회원국end/////////////////////
  6496. ///////////////B형수직감염(경북대 사용안함 20110401 cys)//////////////////////////////////
  6497. //경북대는 아래 성가병원것으로 예방접종계산됨
  6498. /*
  6499. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_vtclck") == "B형수직감염" && error_code =="") {
  6500. var msg_vtclck_uncoamt = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_vtclck_uncoamt");
  6501. var msg_vtclck_uncocd = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_vtclck_uncocd");
  6502. var msg_vtclck_unconm = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_vtclck_unconm");
  6503. if(otpt_cnt == 1){
  6504. messageBox( msg_vtclck_unconm + " 처방이 존재합니다.\n" + msg_vtclck_unconm + " 처방의 금액(" +
  6505. msg_vtclck_uncoamt + "원)을 미수로 생성합니다.", "I999");
  6506. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" ,msg_vtclck_uncoamt);
  6507. model.setvalue("/root/main/outrgst/m_etc/uncocd" , msg_vtclck_uncocd);
  6508. fipt_uncocd();
  6509. fipt_uncoamt();
  6510. }
  6511. if(otpt_cnt > 1){
  6512. messageBox( msg_vtclck_unconm + " 처방이 존재합니다.\n" +
  6513. msg_vtclck_uncoamt + "원을 미수로 생성하여야하나 멀티수납이므로\n" +
  6514. "부분미수를 잡을수없습니다. 단일수납하십시오.", "I999");
  6515. }
  6516. //i22 B형수직감염
  6517. //i23 성폭력KIT
  6518. //i24 음주채혈
  6519. }
  6520. */
  6521. ///////////////B형수직감염끝////////////////////////////////
  6522. ///////////////성가병원 예방접종미수 체크///////////////////
  6523. if(caller == "클릭" || caller == "계산") {
  6524. var msg_prvntmedcamt = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_prvntmedcamt");
  6525. var msg_prvntmedccd = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_prvntmedccd");
  6526. if (getNodesetCount("/root/hidden/rcv1/h_msg/msg/msg_prvntmedcdiscamt") > 0) {
  6527. var msg_prvntmedcdiscamt = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_prvntmedcdiscamt");
  6528. var msg_prvntmeddiscccd = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_prvntmeddiscccd");
  6529. } else {
  6530. var msg_prvntmedcdiscamt = 0;
  6531. var msg_prvntmeddiscccd = "";
  6532. }
  6533. if( msg_prvntmedccd != "" && msg_prvntmedcamt > 0){
  6534. if (otpt_cnt == 1) {
  6535. messageBox( "예방접종미수" +msg_prvntmedccd+ " 처방이 존재합니다.\n예방접종미수처방의 금액(" +
  6536. msg_prvntmedcamt + "원)을 미수로 생성합니다.", "I999");
  6537. model.setvalue("/root/main/outrgst/m_etc/uncocd" , msg_prvntmedccd);
  6538. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" , msg_prvntmedcamt);
  6539. fipt_uncocd();
  6540. fipt_uncoamt();
  6541. }
  6542. if(otpt_cnt > 1){
  6543. messageBox( "예방접종미수" +msg_prvntmedccd+ " 처방이 존재합니다.\n" +
  6544. msg_prvntmedcamt + "원을 미수로 생성하여야하나 멀티수납이므로\n" +
  6545. "부분미수를 잡을수없습니다. 단일수납하십시오.", "I999");
  6546. }
  6547. }
  6548. //감면계정이 있을 경우 할인
  6549. //아래 주석문 부천성가에서 추가된거로 보이는데
  6550. //계정감면이 있고, 필수예방접종인 사람한테 돈을 오히려 돌려주는 케이스가 생겨서 추가된거같은데
  6551. //케이스 나오면 현업얘기듣고 수정하는게 나을거 같음. 현재 이해가 안가므로 일단 막음 20110401 cys
  6552. /*
  6553. if( msg_prvntmeddiscccd != "" && msg_prvntmedcdiscamt > 0){
  6554. if (otpt_cnt == 1) {
  6555. messageBox( "감면계정이 있는 환자에게 예방접종처방이 존재합니다.\n예방접종금액에서 예방접종미수를 제외한 본인부담금에서 할인금(" +
  6556. msg_prvntmedcdiscamt + "원)을 임의감면(" + msg_prvntmeddiscccd + ")으로 생성합니다.", "I999");
  6557. model.setvalue("/root/main/outrgst/m_etc/discreducd" , msg_prvntmeddiscccd);
  6558. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt" , msg_prvntmedcdiscamt);
  6559. fipt_reducd();
  6560. fipt_reduamt();
  6561. }
  6562. if(otpt_cnt > 1){
  6563. messageBox( "예방접종미수" +msg_prvntmeddiscccd + " 처방이 존재합니다.\n" +
  6564. msg_prvntmedcdiscamt + "원을 임의감면으로 생성하여야하나 멀티수납이므로\n" +
  6565. "부분임의감면을 잡을수없습니다. 단일수납하십시오.", "I999");
  6566. }
  6567. }
  6568. */
  6569. }
  6570. ///////////////성가병원 예방접종미수 체크 끝///////////////////
  6571. ///////////////경대병원 선천성대사이상검사 미수 체크 시작///////////////////
  6572. if(caller == "클릭" || caller == "계산") {
  6573. var msg_inbornuncoamt = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_inbornuncoamt");
  6574. var msg_inbornuncocd = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_inbornuncocd");
  6575. if (getNodesetCount("/root/hidden/rcv1/h_msg/msg/msg_inborndiscamt") > 0) {
  6576. var msg_inborndiscamt = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_inborndiscamt");
  6577. var msg_inborndiscccd = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_inborndiscccd");
  6578. } else {
  6579. var msg_inborndiscamt = 0;
  6580. var msg_inborndiscccd = "";
  6581. }
  6582. if( msg_inbornuncocd != "" && msg_inbornuncoamt > 0){
  6583. if (otpt_cnt == 1) {
  6584. messageBox( "선천성대사이상검사미수" +msg_inbornuncocd+ " 처방이 존재합니다.\n선천성대사이상검사 금액(" +
  6585. msg_inbornuncoamt + "원)을 미수로 생성합니다.", "I999");
  6586. model.setvalue("/root/main/outrgst/m_etc/uncocd" , msg_inbornuncocd);
  6587. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" , msg_inbornuncoamt);
  6588. fipt_uncocd();
  6589. fipt_uncoamt();
  6590. }
  6591. if(otpt_cnt > 1){
  6592. messageBox( "선천성대사이상검사미수" +msg_inbornuncocd+ " 처방이 존재합니다.\n" +
  6593. msg_inbornuncoamt + "원을 미수로 생성하여야하나 멀티수납이므로\n" +
  6594. "부분미수를 잡을수없습니다. 단일수납하십시오.", "I999");
  6595. }
  6596. }
  6597. //감면계정이 있을 경우 할인
  6598. //아래 주석문 부천성가에서 추가된거로 보이는데
  6599. //계정감면이 있고, 필수예방접종인 사람한테 돈을 오히려 돌려주는 케이스가 생겨서 추가된거같은데
  6600. //케이스 나오면 현업얘기듣고 수정하는게 나을거 같음. 현재 이해가 안가므로 일단 막음 20110401 cys
  6601. /*
  6602. if( msg_prvntmeddiscccd != "" && msg_prvntmedcdiscamt > 0){
  6603. if (otpt_cnt == 1) {
  6604. messageBox( "감면계정이 있는 환자에게 예방접종처방이 존재합니다.\n예방접종금액에서 예방접종미수를 제외한 본인부담금에서 할인금(" +
  6605. msg_prvntmedcdiscamt + "원)을 임의감면(" + msg_prvntmeddiscccd + ")으로 생성합니다.", "I999");
  6606. model.setvalue("/root/main/outrgst/m_etc/discreducd" , msg_prvntmeddiscccd);
  6607. model.setvalue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt" , msg_prvntmedcdiscamt);
  6608. fipt_reducd();
  6609. fipt_reduamt();
  6610. }
  6611. if(otpt_cnt > 1){
  6612. messageBox( "예방접종미수" +msg_prvntmeddiscccd + " 처방이 존재합니다.\n" +
  6613. msg_prvntmedcdiscamt + "원을 임의감면으로 생성하여야하나 멀티수납이므로\n" +
  6614. "부분임의감면을 잡을수없습니다. 단일수납하십시오.", "I999");
  6615. }
  6616. }
  6617. */
  6618. }
  6619. ///////////////경대병원 선천성대사이상검사 미수 체크 종료///////////////////
  6620. ///////////////독립유공자미수 체크/////////////////////////////
  6621. if(caller == "클릭" || caller == "계산") {
  6622. fCheckAutoUnco_rcpt();
  6623. }
  6624. ///////////////독립유공자미수 체크 끝//////////////////////////
  6625. ///////////////혈액대체처방 존재확인///////////////////
  6626. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_bldc") == "혈액대체처방존재") {
  6627. //messageBox("헌혈증 대체 가능한 내역이 있습니다.","I999","");
  6628. model.setvalue("/root/etc/union_msg" ,"헌혈증 대체 가능한 내역이 있습니다." + '\n' + model.getValue("/root/etc/union_msg"));
  6629. }
  6630. ///////////////혈액대체처방 존재확인끝///////////////////
  6631. ///////////////정산시 ASIS,TOBE비교///////////////////
  6632. if(model.getvalue("/root/temp3/workgubn") == "N" && !model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_compare_oscl") == "") {
  6633. var msg_compare_oscl = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_compare_oscl");
  6634. var rtn = messageBox(msg_compare_oscl,"Q999","");
  6635. // Yes : 6 / No : 7 / Cancel : 2
  6636. if (rtn == 7) {
  6637. fCalcCancel();
  6638. }
  6639. }
  6640. ///////////////정산시 ASIS,TOBE비교 끝///////////////////
  6641. ///////////////일반의특진의변경여부///////////////////
  6642. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_specordyn") != "") {
  6643. var msg_specordyn = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_specordyn");
  6644. model.setvalue("/root/etc/union_msg" ,msg_specordyn + '\n' + model.getValue("/root/etc/union_msg"));
  6645. rdo_specordyn.disabled = false;
  6646. /*
  6647. var rtn = messageBox(msg_specordyn,"Q999","");
  6648. if (rtn == 6) {
  6649. rdo_specordyn.disabled = false;
  6650. }
  6651. if (rtn == 7) {
  6652. btn_rcpt.disabled = true;
  6653. }
  6654. */
  6655. }
  6656. ///////////////일반의특진의변경여부 끝///////////////////
  6657. ///////////////////////정신과 환자 보조유형과 수급절차 안맞는 케이스 체크//////////////////////////////
  6658. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_mental") != "") {
  6659. var msg_mental = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_mental");
  6660. messageBox(msg_mental,"E999","");
  6661. btn_rcpt.disabled = true;
  6662. }
  6663. ///////////////////////정신과 환자 보조유형과 수급절차 안맞는 케이스 체크 끝//////////////////////////////
  6664. //2011-12-02
  6665. //START 장기이식환자 희귀, 결핵 대불 되지 않도록 수정
  6666. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_tranyn") == "Y") {
  6667. var msg_mental = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_tranyn");
  6668. messageBox("장기이식 환자입니다. 희귀/결핵 대불금이 발생하면 안됩니다."
  6669. + "\n희귀난치여부를 확인하신 후 [정상]으로 변경 후 재계산하셔야 합니다!"
  6670. //+ "\n무시하고 계속 진행하시겠습니까?"
  6671. , "E999", "");
  6672. btn_rcpt.disabled = true;
  6673. return false;
  6674. }
  6675. //END 장기이식환자 희귀, 결핵 대불 되지 않도록 수정
  6676. ///////////////산정특례///////////////////
  6677. //2011-11-30 장기이식 기증자 체크되면 산정특례 체크 제외
  6678. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_estm") != "" && model.getValue("/root/option/otp_dnoryn") != "Y" ) {
  6679. var msg_estm = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_estm");
  6680. var rtn = messageBox(msg_estm,"Q999","");
  6681. if (rtn == 6) {
  6682. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_estmspclappyn='Y']")));
  6683. model.setvalue("/root/send/mth_nm" ,"setOtptEstm");
  6684. submit("TRPAO00127");
  6685. if(model.getvalue("/root/temp5/srdg/cnt") =="0") {
  6686. messageBox("유형변경 실패했습니다. 수동변경후 재계산하십시요.","I999");
  6687. return false;
  6688. }else{
  6689. messageBox("유형변경되었습니다.","I999");
  6690. if (model.getValue("/root/temp3/workgubn") == "Y") fSearch();
  6691. if (model.getValue("/root/temp3/workgubn") == "N") { messageBox("외래수납에서 수납하세요.","I999"); fCalcflagNSearch();}
  6692. if (model.getValue("/root/temp3/workgubn") == "E") fSearch();
  6693. return false;
  6694. }
  6695. }
  6696. }
  6697. ///////////////산정특례 끝///////////////////
  6698. ///////////////차상위 여부체크///////////////////
  6699. //2011-11-30 장기이식 기증자 체크되면 산정특례 체크 제외
  6700. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_scnd") != "" && model.getValue("/root/option/otp_dnoryn") != "Y" ) {
  6701. var msg_scnd = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_scnd");
  6702. var rtn = messageBox(msg_scnd,"Q999","");
  6703. var rtn_submit = false;
  6704. if (rtn == 6) {
  6705. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  6706. model.setvalue("/root/send/mth_nm" ,"setOtptScnd");
  6707. rtn_submit = submit("TRPAO00127");
  6708. if(model.getvalue("/root/temp5/srdg/cnt") =="0" || rtn_submit == false) {
  6709. messageBox("유형변경 실패했습니다. 수동변경후 재계산하십시요.","I999");
  6710. return false;
  6711. }else{
  6712. messageBox("유형변경되었습니다.","I999");
  6713. if (model.getValue("/root/temp3/workgubn") == "Y") fSearch();
  6714. if (model.getValue("/root/temp3/workgubn") == "N") { messageBox("외래수납에서 수납하세요.","I999"); fCalcflagNSearch();}
  6715. if (model.getValue("/root/temp3/workgubn") == "E") fSearch();
  6716. return false;
  6717. }
  6718. }
  6719. if (rtn == 7) {
  6720. return false;
  6721. }
  6722. }
  6723. ///////////////차상위 여부체크 끝///////////////////
  6724. ////////////// 장기기증 WoukUp 검증 ////////////////
  6725. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_workup") != "") {
  6726. var msg_mental = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_workup");
  6727. messageBox(msg_mental,"E999","");
  6728. btn_rcpt.disabled = true;
  6729. return false;
  6730. }
  6731. ////////////장기기증 WoukUp 검증 ////////////////
  6732. ///////////////카드승인금액비교 - 성가///////////////////
  6733. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_cardvan") != "") {
  6734. var msg_cardvan = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_cardvan");
  6735. var rtn = messageBox(msg_cardvan,"Q999","");
  6736. if (rtn == 7) {
  6737. return false;
  6738. }
  6739. }
  6740. ///////////////카드승인금액비교 - 성가 끝///////////////////
  6741. ///////////////선택진료체크///////////////////
  6742. //2018년도 선택진료 폐지에 따른 프로그램 수정(2017/12/21 이정택)
  6743. if(getCurrentDate()<model.getvalue("/root/init/basecdlist/P0032[cdid='150']/cdnm")){
  6744. if(caller == "수납" && model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_spec_orddrid") != "") {
  6745. // 전자동의서 태블릿이 설치되어있는 PC의 경우 전자동의서 호출 by 조중래 20130307
  6746. if (model.getValue("/root/init/basecdlist/PK018[cdid='" + app.clientIp + "']/cdnm") != "Y") {
  6747. //smpark 20090508 선택진료 체크
  6748. if (fCheckSpecOrdApp("M" , model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_spec_orddrid")) == true) {
  6749. if(getNodesetCount("/root/hidden/rcv1/h_msg/msg[msg_spec_orddrid !='']") == a){
  6750. return false;
  6751. }
  6752. }
  6753. } else {
  6754. if (fCheckSpecOrdAppE(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_spec_orddrid")) == true) {
  6755. if(getNodesetCount("/root/hidden/rcv1/h_msg/msg[msg_spec_orddrid !='']") == a){
  6756. return false;
  6757. }
  6758. }
  6759. }
  6760. }
  6761. }
  6762. //2018년도 선택진료 폐지에 따른 프로그램 수정(2017/12/21 이정택)
  6763. ///////////////선택진료체크 끝///////////////////
  6764. ///////////////의사소견서///////////////////
  6765. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_drcm") == "의사소견서 및 타처방도 같이있습니다. 진찰료여부: 산정으로 변경하시겠습니까?") {
  6766. var rtn = messageBox(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_drcm"),"Q999","");
  6767. if (rtn == 6) {
  6768. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn" , "Y");
  6769. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn" , "00");
  6770. rdo_medamtestmyn.refresh();
  6771. cmb_medamtfreeresn.refresh();
  6772. btn_calc.dispatch("DOMActivate");
  6773. return false;
  6774. }
  6775. }
  6776. ///////////////의사소견서끝///////////////////
  6777. ///////////////방문간호지시서///////////////////
  6778. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_hocm") == "방문간호지시서 및 타처방도 같이있습니다. 진찰료여부: 산정으로 변경하시겠습니까?") {
  6779. var rtn = messageBox(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_hocm"),"Q999","");
  6780. if (rtn == 6) {
  6781. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtestmyn" , "Y");
  6782. model.setvalue("/root/main/outrgst/m_otpt/otpt/otpt_medamtfreeresn" , "00");
  6783. rdo_medamtestmyn.refresh();
  6784. cmb_medamtfreeresn.refresh();
  6785. btn_calc.dispatch("DOMActivate");
  6786. return false;
  6787. }
  6788. }
  6789. ///////////////방문간호지시서끝///////////////////
  6790. ///////////////환불건이면서 미수금이나 임의감액이 있는지 체크///////////////////
  6791. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_refundyn") != "") {
  6792. var msg_refundyn = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_refundyn");
  6793. var rtn = messageBox(msg_refundyn,"Q999","");
  6794. if (rtn == 7) {
  6795. return false;
  6796. }
  6797. }
  6798. ///////////////환불건이면서 미수금이나 임의감액이 있는지 체크 끝///////////////////
  6799. ///////////////재활미예약체크/////////////////////////////
  6800. //if(caller == "클릭") {
  6801. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_etcm") != "") {
  6802. var msg_etcm = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_etcm");
  6803. if(caller == "클릭") {
  6804. messageBox(msg_etcm, "E999", "");
  6805. }else{
  6806. //model.setvalue("/root/etc/union_msg" ,msg_etcm + '\n' + model.getValue("/root/etc/union_msg"));
  6807. var rtn = messageBox(msg_etcm + "\n[수납하시면 물리치료예약 변경 후 재수납 하셔야합니다]"
  6808. + "\n[YES : 수납, NO : 수납안함]", "Q999", "");
  6809. if (rtn == 7) {
  6810. return false;
  6811. }
  6812. }
  6813. }
  6814. //}
  6815. ///////////////재활미예약체크 끝//////////////////////////
  6816. // 환자 민원제기 여부 체크(2014/10/30 이정택)
  6817. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_minwon") != "") {
  6818. var msg_minwon = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_minwon");
  6819. if(caller == "클릭") {
  6820. messageBox(msg_minwon, "E999", "");
  6821. btn_calc.disabled = true;
  6822. return false;
  6823. }
  6824. }
  6825. // 환자 민원제기 여부 체크(2014/10/30 이정택)
  6826. // 초재진 구분 체크(2015/04/01 이정택)
  6827. /*
  6828. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_fsexamflag") != "") {
  6829. var msg_fsexamflag = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_fsexamflag");
  6830. if(caller == "클릭") {
  6831. messageBox(msg_fsexamflag, "E999", "");
  6832. // btn_calc.disabled = true;
  6833. return false;
  6834. }
  6835. }
  6836. */
  6837. // 초재진 구분 체크(2015/04/01 이정택)
  6838. //실시 정산 메시지 안내(/2015/06/04)
  6839. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_silsi") != "" && model.getValue("/root/option/otp_dnoryn") != 'Y') {
  6840. var msg_silsi = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_silsi");
  6841. if(caller == "클릭") {
  6842. messageBox(msg_silsi, "E999", "");
  6843. //2016/10/24 이정택 추가(실시정산 대상메시지 팝업 후 실시정산 창으로 자동으로 진행되도록 수정)
  6844. // 진료건에 대해서는 실시정산에서 리스트가 안올라오기때문에 주석처리함(2016/10/28)
  6845. /*
  6846. rdo_workgubn.value = 'E';
  6847. rdo_workgubn.refresh();
  6848. rdo_workgubn.dispatch("xforms-select");
  6849. event.keyCode = '13';
  6850. ipt_pid.dispatch("onkeypress");
  6851. */
  6852. //2016/10/24 이정택 추가(실시정산 대상메시지 팝업 후 실시정산 창으로 자동으로 진행되도록 수정)
  6853. return false;
  6854. }
  6855. }
  6856. //임신부 관련(2017/01/06)
  6857. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_preg") != "") {
  6858. var msg_preg = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_preg");
  6859. if(caller == "클릭") {
  6860. messageBox(msg_preg, "E999", "");
  6861. return false;
  6862. }
  6863. }
  6864. //임신부 관련(2017/01/06)
  6865. //중증치매 관련(2017/09/29)
  6866. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_dementia") != "") {
  6867. var msg_dementia = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_dementia");
  6868. if(caller == "클릭") {
  6869. messageBox(msg_dementia, "E999", "");
  6870. return false;
  6871. }
  6872. }
  6873. //중증치매 관련(2017/09/29)
  6874. if((caller == "클릭") && (model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_calcbaseflag") == "2")
  6875. && (model.getValue("/root/temp3/workgubn") != "E")){
  6876. messageBox("해당건은 실시정산건 입니다.","I999","");
  6877. return false;
  6878. }
  6879. //실시 정산 메시지 안내(/2015/06/04)
  6880. //2015/06/29 잠복결핵 환자 관련 메시지 설정
  6881. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_tube") != "") {
  6882. var msg_tube = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_tube");
  6883. if(caller == "클릭") {
  6884. messageBox(msg_tube, "I999", "");
  6885. btn_prcplist.dispatch("onclick");
  6886. btn_prcplist.dispatch("DOMActivate");
  6887. return false;
  6888. }
  6889. }
  6890. //2015/06/29 잠복결핵 환자 관련 메시지 설정
  6891. }
  6892. ///////////////MIG 연속처방 체크/////////////////////////
  6893. var otpt_mig = model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_mig");
  6894. var otpt_etcordflag = model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag");
  6895. if(otpt_mig != "") {
  6896. if(otpt_etcordflag == "M" || otpt_etcordflag == "J") {
  6897. //messageBox("데이터 전환된 연속검사 처방입니다.\n관련수납건을 함께 수납하십시요.","I999");
  6898. model.setvalue("/root/etc/union_msg" ,"데이터 전환된 연속검사 처방입니다.\n관련수납건을 함께 수납하십시요." + '\n' + model.getValue("/root/etc/union_msg"));
  6899. }
  6900. }
  6901. ///////////////MIG 연속처방 체크 끝//////////////////////
  6902. //2012-11-12 신규추가
  6903. //M005 환자의 경우 중증/희귀 상병이 아니면 적용 불가!
  6904. /* 2012-11-28 다시 원복 요청으로 주석처리
  6905. if(caller == "수납"){
  6906. //당일 체크
  6907. ///root/main/baseinfo/otpt_tday/otpt otpt_checkflag
  6908. var r_cnt = getNodesetCount("/root/main/baseinfo/otpt_tday/otpt/otpt_pid");
  6909. for( var loopcnt=1; loopcnt<=r_cnt; loopcnt++ ){
  6910. if( model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_checkflag") == "true" ){
  6911. if( model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_ownbflag") == "M005" ){
  6912. if( model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "06" //중증
  6913. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "07" //미등록암
  6914. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "11" //가정간호등록암
  6915. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "38" //차상위 2종 가정간호등록암
  6916. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "40" //차상위 2종 등록암
  6917. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "61" //중증화상
  6918. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "62" //가정간호 중증화상
  6919. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "63" //차상위 2종 중증화상
  6920. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "64" //차상위 2종 가정간호 중증화상
  6921. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "46" //차상위 2종 희귀난치산정특례
  6922. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "50" //희귀난치산정특례
  6923. && model.getValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_suppkind") != "51" //가정간호 희귀난치산정특례
  6924. ){
  6925. messageBox("본인부담면제코드 [M005] 대상환자는 [중증/희귀난치 상병[이 있을 때만 적용할 수 있습니다.\n본인부담면제코드를 자동 제외시킵니다. [재계산] 후 수납하세요!!", "E999", "");
  6926. model.setValue("/root/main/baseinfo/otpt_tday/otpt[" + loopcnt + "]/otpt_ownbflag", "-");
  6927. //외래수납은 재계산시에 '/root/main/outrgst/m_otpt/otpt/otpt_ownbflag' 노드의 값을 선택된 접수건에 업데이트 후
  6928. //수납이 진행되므로 해당 값도 '-' 로 업데이트 해야함.
  6929. model.setValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag", "-");
  6930. return false;
  6931. }
  6932. }
  6933. }
  6934. }
  6935. //과거 체크
  6936. r_cnt = getNodesetCount("/root/main/baseinfo/otpt_past/otpt/otpt_pid");
  6937. for( var loopcnt=1; loopcnt<=r_cnt; loopcnt++ ){
  6938. if( model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_checkflag") == "true" ){
  6939. if( model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_ownbflag") == "M005" ){
  6940. if( model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "06" //중증
  6941. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "07" //미등록암
  6942. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "11" //가정간호등록암
  6943. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "38" //차상위 2종 가정간호등록암
  6944. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "40" //차상위 2종 등록암
  6945. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "61" //중증화상
  6946. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "62" //가정간호 중증화상
  6947. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "63" //차상위 2종 중증화상
  6948. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "64" //차상위 2종 가정간호 중증화상
  6949. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "46" //차상위 2종 희귀난치산정특례
  6950. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "50" //희귀난치산정특례
  6951. && model.getValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_suppkind") != "51" //가정간호 희귀난치산정특례
  6952. ){
  6953. messageBox("본인부담면제코드 [M005] 대상환자는 [중증/희귀난치 상병[이 있을 때만 적용할 수 있습니다.\n본인부담면제코드를 자동 제외시킵니다. [재계산] 후 수납하세요!!", "E999", "");
  6954. model.setValue("/root/main/baseinfo/otpt_past/otpt[" + loopcnt + "]/otpt_ownbflag", "-");
  6955. //외래수납은 재계산시에 '/root/main/outrgst/m_otpt/otpt/otpt_ownbflag' 노드의 값을 선택된 접수건에 업데이트 후
  6956. //수납이 진행되므로 해당 값도 '-' 로 업데이트 해야함.
  6957. model.setValue("/root/main/outrgst/m_otpt/otpt/otpt_ownbflag", "-");
  6958. return false;
  6959. }
  6960. }
  6961. }
  6962. }
  6963. }
  6964. */
  6965. }
  6966. //산정특례 중증체크 메세지처리
  6967. function fCheck_Srdg_Msg(caller) {
  6968. for(var a=1 ; a <= getNodesetCount("/root/hidden/rcv1/h_msg/msg/msg") ; a++) {
  6969. ///////////////산정특례 중증체크///////////////////
  6970. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_srdg") != "") {
  6971. var msg_srdg = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_srdg");
  6972. var msg_type = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_type");
  6973. if(msg_type == "Q"){ //에러메세지가 YN형식인 것
  6974. var rtn = messageBox(msg_srdg,"Q999","");
  6975. // Yes : 6 / No : 7 / Cancel : 2
  6976. if (rtn == 6) {
  6977. model.setvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_srdg" , "");
  6978. model.setvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_type" , "");
  6979. ipt_suppkind.disabled = false;
  6980. cmb_suppkind.disabled = false;
  6981. cmb_suppkindresn.disabled = false;
  6982. if(msg_srdg == "당일 Sign환자입니다. 중증으로 정산하시겠습니까?[2-1-1-나-ㄴ-A]" ||
  6983. msg_srdg == "당일 Sign환자입니다. 중증으로 정산하시겠습니까?[2-1-2-가-ㄴ-B-A]" ||
  6984. msg_srdg == "중증으로 정산하시겠습니까?[2-1-2-가-ㄴ-B-B]" ||
  6985. msg_srdg == "중증으로 정산하시겠습니까?[2-1-2-나]" ||
  6986. msg_srdg == "[중증]으로 정산하시겠습니까?[2-2-2-나]"
  6987. ){
  6988. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  6989. model.setvalue("/root/send/mth_nm" ,"setOtptSrdg");
  6990. submit("TRPAO00127");
  6991. if(model.getvalue("/root/temp5/srdg/cnt") =="0") {
  6992. messageBox("유형변경 실패했습니다. 수동변경후 재계산하십시오.","I999");
  6993. return false;
  6994. }else{
  6995. messageBox("유형변경되었습니다.","I999");
  6996. if (model.getValue("/root/temp3/workgubn") == "Y") fSearch();
  6997. if (model.getValue("/root/temp3/workgubn") == "N") { messageBox("외래수납에서 수납하십시오.","I999"); fCalcflagNSearch();}
  6998. if (model.getValue("/root/temp3/workgubn") == "E") fSearch();
  6999. return false;
  7000. }
  7001. }
  7002. }
  7003. if (rtn == 7) {
  7004. if( msg_srdg == "중증의뢰서가 작성되었습니다, 의뢰서 사인을 하십시오.\n사인하지 않고 수납을 계속 진행하시겠습니까?" ){
  7005. return false;
  7006. }
  7007. //if(caller == "수납") { return false; }
  7008. }
  7009. }
  7010. if(msg_type != "Q"){
  7011. var rtn = messageBox(msg_srdg,"I999","");
  7012. if(caller == "수납" && msg_type == "E") { return false; }
  7013. }
  7014. }
  7015. ///////////////산정특례 중증체크끝///////////////////
  7016. //20090701 2.희귀난치성산정특례 고시적용
  7017. if(model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_rooa") != "") {
  7018. var msg_rooa = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_rooa");
  7019. var msg_type = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_type");
  7020. var msg_suppkind = model.getvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_suppkind");
  7021. if(msg_type == "Q"){ //에러메세지가 YN형식인 것
  7022. var rtn = messageBox(msg_rooa,"Q999","");
  7023. // Yes : 6 / No : 7 / Cancel : 2
  7024. if (rtn == 6) {
  7025. model.setvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_rooa" , "");
  7026. model.setvalue("/root/hidden/rcv1/h_msg/msg[" + a + "]/msg_type" , "");
  7027. ipt_suppkind.disabled = false;
  7028. cmb_suppkind.disabled = false;
  7029. cmb_suppkindresn.disabled = false;
  7030. if(msg_rooa == "당일 Sign환자입니다. 희귀난치성산정특례로 정산하시겠습니까?[9]" ||
  7031. msg_rooa == "희귀난치성산정특례로 정산하시겠습니까?[10]" ||
  7032. //msg_rooa == "희귀난치성산정특례 의뢰서가 작성되었습니다, 의료정보팀에서 Sign하십시오. 진행하시겠습니까?[11]" ||
  7033. msg_rooa == "희귀난치성산정특례로 정산하시겠습니까?[12]" ||
  7034. msg_rooa == "희귀난치성산정특례로 정산하시겠습니까?[13]"
  7035. ){
  7036. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  7037. model.setvalue("/root/send/mth_nm" ,"setOtptRooa");
  7038. if (msg_suppkind == "" || msg_suppkind == null) {
  7039. model.setvalue("/root/send/updt_suppkind" ,"50");
  7040. } else {
  7041. model.setvalue("/root/send/updt_suppkind" ,msg_suppkind);
  7042. }
  7043. submit("TRPAO00127");
  7044. if(model.getvalue("/root/temp5/srdg/cnt") =="0") {
  7045. messageBox("유형변경 실패했습니다. 수동변경 후 재계산하십시오.","I999");
  7046. return false;
  7047. }else{
  7048. messageBox("유형변경되었습니다.","I999");
  7049. if (model.getValue("/root/temp3/workgubn") == "Y") fSearch();
  7050. if (model.getValue("/root/temp3/workgubn") == "N") { messageBox("외래수납에서 수납하십시오.","I999"); fCalcflagNSearch();}
  7051. if (model.getValue("/root/temp3/workgubn") == "E") fSearch();
  7052. return false;
  7053. }
  7054. }
  7055. }
  7056. if (rtn == 7) {
  7057. if (msg_rooa == "희귀난치성산정특례 의뢰서가 작성되었습니다, \n의뢰서 사인을 하십시오.\n사인하지 않고 수납을 계속 진행하시겠습니까?") {
  7058. return false;
  7059. } else {
  7060. //if(caller == "수납") { return false; }
  7061. }
  7062. }
  7063. }
  7064. if(msg_type != "Q"){
  7065. var rtn = messageBox(msg_rooa,"I999","");
  7066. if((caller == "수납" || caller == "클릭") && msg_type == "E") { return false; }
  7067. }
  7068. }
  7069. }
  7070. }
  7071. function fDisplayAmt_pamjs() {
  7072. var opmi_rcptexptamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt");
  7073. if(model.getValue("/root/hidden/session/userid") == "DEV206") return;
  7074. if(opmi_rcptexptamt == "") return;
  7075. //금액표시기 초기화
  7076. fInit_Display();
  7077. //금액표시기 포트열기
  7078. fOpenCom();
  7079. //금액표시기 표시
  7080. if(model.getValue("/root/hidden/session/dutplceinstcd") == "017"){
  7081. //조영상 2009/09/29 빈센트병원 테스트를 위해서 임시로 추가
  7082. fDisplayAmt(model.getValue("/root/main/patinfo/patinfolist/hngnm"),opmi_rcptexptamt,model.getValue("/root/hidden/session/usernm"),model.getValue("/root/hidden/session/dutplceinstcd"));
  7083. }else{
  7084. fDisplayAmt(model.getValue("/root/main/patinfo/patinfolist/hngnm"),opmi_rcptexptamt,model.getValue("/root/hidden/session/usernm"));
  7085. }
  7086. //금액표시기 포트닫기
  7087. fCloseCom();
  7088. }
  7089. //계산
  7090. function fCalculation(param){
  7091. if(!fCheckPsnRetireInfo()){
  7092. if( messageBox("감면정보를 수정하지 않고 수가계산을", "Q003", "") != 6 ){
  7093. return false;
  7094. }
  7095. }
  7096. model.setValue("/root/hidden/calcgubn", "Y");
  7097. // Y-수납
  7098. if(model.getValue("/root/temp3/workgubn") == "Y"){
  7099. fCalculate(param);
  7100. }
  7101. // N-정산
  7102. if(model.getValue("/root/temp3/workgubn") == "N"){
  7103. fCalcflagNCalculate(param);
  7104. }
  7105. // E-실시정산
  7106. if(model.getValue("/root/temp3/workgubn") == "E"){
  7107. fCalcflagNCalculate(param);
  7108. submit("TRPAO00116");
  7109. fEactlistClick0();
  7110. }
  7111. }
  7112. //그리드에 외래내역을 전부 체크
  7113. function fAllCheck(gridID) {
  7114. var gridObj = document.controls.item(gridID);
  7115. var gridObj_rows = gridObj.rows -1 ;
  7116. var instanceId = "";
  7117. if (gridID == "grd_past") {
  7118. instanceId = "otpt_past";
  7119. }
  7120. if (gridID == "grd_rsrv") {
  7121. instanceId = "otpt_rsrv";
  7122. }
  7123. if (gridID == "grd_tday") {
  7124. instanceId = "otpt_tday";
  7125. }
  7126. if (gridID == "grd_calcflagn") {
  7127. instanceId = "otpt_calcflagn";
  7128. }
  7129. if(gridObj_rows <= 1) {
  7130. return;
  7131. }
  7132. //전체선택으로 선택된 외래내역은 checkflag_all을 박아준다. 나중에 에러날시 해당건만 롤백해야하니깐.
  7133. for(var a=1; a<= gridObj_rows; a++) {
  7134. if(model.getValue("/root/main/baseinfo/"+instanceId+"/otpt[" + a + "]/otpt_checkflag") != "true"){
  7135. model.setValue("/root/main/baseinfo/"+instanceId+"/otpt[" + a + "]/otpt_checkflag","true");
  7136. model.setValue("/root/main/baseinfo/"+instanceId+"/otpt[" + a + "]/otpt_checkflag_all" ,"true");
  7137. gridObj.row = a;
  7138. }
  7139. }
  7140. if(!fClickGrid(gridID)){
  7141. //선택한 외래내역이 에러날시 위에 checkflag_all에서 체크해놓은건만 체크 푼다.
  7142. for(var a=1; a<= gridObj_rows; a++) {
  7143. if(model.getvalue("/root/main/baseinfo/"+instanceId+"/otpt[" + a + "]/otpt_checkflag_all") == "true") {
  7144. model.setValue("/root/main/baseinfo/"+instanceId+"/otpt[" + a + "]/otpt_checkflag","false");
  7145. }
  7146. }
  7147. }
  7148. //마지막으로 checkflag_all을 모두 초기화한다.
  7149. for(var a=1; a<= gridObj_rows; a++) {
  7150. model.setValue("/root/main/baseinfo/"+instanceId+"/otpt[" + a + "]/otpt_checkflag_all","");
  7151. }
  7152. fCItemRefresh();
  7153. }
  7154. function fbtn_chk_all_cncl() {
  7155. if(grd_rsrv.rows > 1) {
  7156. gridID = "grd_rsrv";
  7157. grd_rsrv.row = grd_rsrv.rows;
  7158. }else if(grd_tday.rows > 1) {
  7159. gridID = "grd_tday";
  7160. grd_tday.row = grd_tday.rows;
  7161. }else if(grd_past.rows > 1) {
  7162. gridID = "grd_past";
  7163. grd_past.row = grd_past.rows;
  7164. }else{
  7165. return;
  7166. }
  7167. for(var a=1; a< grd_past.rows; a++) {
  7168. model.setValue("/root/main/baseinfo/otpt_past/otpt[" + a + "]/otpt_checkflag","false");
  7169. }
  7170. for(var a=1; a< grd_rsrv.rows; a++) {
  7171. model.setValue("/root/main/baseinfo/otpt_rsrv/otpt[" + a + "]/otpt_checkflag","false");
  7172. }
  7173. for(var a=1; a< grd_tday.rows; a++) {
  7174. model.setValue("/root/main/baseinfo/otpt_tday/otpt[" + a + "]/otpt_checkflag","false");
  7175. }
  7176. fClickGrid(gridID);
  7177. fLItemRefresh();
  7178. fRItemRefresh();
  7179. fCItemRefresh();
  7180. }
  7181. /**
  7182. * 전체선택
  7183. * @return
  7184. */
  7185. function fbtn_chk_all_sel_act() {
  7186. for(var a=1; a< grd_prcplist.rows; a++) {
  7187. model.setValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_calcstat","true");
  7188. }
  7189. model.refreshpart("/root/hidden/rcv/h_prcp/prcp");
  7190. }
  7191. /**
  7192. * 전체해제
  7193. * @return
  7194. */
  7195. function fbtn_chk_all_cncl_act() {
  7196. for(var a=1; a< grd_prcplist.rows; a++) {
  7197. if (model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_forcecalcyn") == "Y" &&
  7198. model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_prcphistcd") == "D"){ // 처방이 DC난 경우 해제 불가
  7199. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ a +"]/prcp_calcstat","true");
  7200. }else if(model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_forcecalcyn") == "Y" &&
  7201. model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_execdd") != ""){ // 실시 완료된 경우 해제 불가
  7202. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ a +"]/prcp_calcstat","true");
  7203. }else if(model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_forcecalcyn") == "Y" &&
  7204. model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_rcptdd") != ""){ // 수납 완료된 경우 해제 불가
  7205. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ a +"]/prcp_calcstat","true");
  7206. }else if(model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_forcecalcyn") == "Y" &&
  7207. model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_hosinhosoutflag") == "원외"){ // 원외 처방인 경우 해제 불가
  7208. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ a +"]/prcp_calcstat","true");
  7209. }else{
  7210. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ a +"]/prcp_calcstat","false");
  7211. }
  7212. }
  7213. model.refreshpart("/root/hidden/rcv/h_prcp/prcp");
  7214. }
  7215. function fopmi_removemask() {
  7216. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt" ,model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_reduamt").removeMask(","));
  7217. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt" ,model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt").removeMask(","));
  7218. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt" ,model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_mdlrcptamt").removeMask(","));
  7219. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt" ,model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt").removeMask(","));
  7220. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt" ,model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt").removeMask(","));
  7221. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt" ,model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt").removeMask(","));
  7222. }
  7223. function fOpener() {
  7224. if (checkOpener()){
  7225. ipt_pid.value = opener.window.javascript.getParameter("ipt_pid");
  7226. event.keyCode = "13";
  7227. ipt_pid.dispatch("onkeypress");
  7228. }
  7229. }
  7230. //좌측하단 버튼 모음강제로 풀어버리기 기능
  7231. function fLeftBtnTip() {
  7232. ipt_fromdd.disabled = false;
  7233. ipt_todd.disabled = false;
  7234. rdo_specordyn.disabled = false;
  7235. rdo_medamtestmyn.disabled = false;
  7236. cmb_medamtfreeresn.disabled = false;
  7237. cmb_fsexamflag.disabled = false;
  7238. ipt_ordreqformflag.disabled = false;
  7239. cmb_ordreqformflag.disabled = false;
  7240. chk_fsexammanlyn.disabled = false;
  7241. rdo_handicaprbookpossnyn.disabled = false;
  7242. cmb_hndc_handcapgrde.disabled = false;
  7243. ipt_disccd.disabled = false;
  7244. cmb_disccd.disabled = false;
  7245. cmb_hosoutexptresncd.disabled = false;
  7246. cmb_rsrvflag.disabled = false;
  7247. cmb_etcordflag.disabled = false;
  7248. cmb_clincstdyacptflag.disabled = false;
  7249. }
  7250. function fHoldExop() {
  7251. var grd_row = grd_prcplist.row;
  7252. //Hold 체크 되거나 체크 풀 경우
  7253. //이미 수납된 것은 HOLD 할 수 없다.
  7254. //처방계산내역 [HOLD]체크 시, 처방성이 아니면, 홀드처리할 수 없다.
  7255. // 필수계산대상 처방점검으로 대체 by 조중래 20140410
  7256. if (grd_row >0 ) {
  7257. // var vcheck_prcphistcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_prcphistcd");
  7258. // var vcheck_rcptstatcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_rcptstatcd");
  7259. // var vcheck_execdd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_execdd");
  7260. // var vcheck_rsrvflag = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_rsrvflag");
  7261. /* 2015/02/12 필수수납 처방이라도 원무과 직원이 강제로 체크 해제 할 수 있도록 프로그램 수정(이정택)
  7262. var vcheck_forcecalcyn = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_forcecalcyn");
  7263. // 필수계산 대상 처방 점검
  7264. if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat") == "false"
  7265. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_forcecalcyn") == "Y") {
  7266. messageBox("필수계산 대상입니다.\r\n(필수계산 대상이 아닌것만 선택해제 가능합니다.)","E999");
  7267. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat","true");
  7268. return;
  7269. }
  7270. */
  7271. // 2015/02/13 이정택 추가(DC, 수납, 실시의 경우는 체크 해제 하지 못하도록 수정)
  7272. // 처방 DC의 경우 블럭킹 처리
  7273. if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat") == "false"
  7274. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_forcecalcyn") == "Y"
  7275. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_prcphistcd") == "D") {
  7276. messageBox("필수계산 대상입니다.\r\n(DC상태인 경우 해제 불가능합니다.)","E999");
  7277. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat","true");
  7278. return;
  7279. }
  7280. // 실시 일자가 들어간 경우 블럭킹 처리
  7281. if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat") == "false"
  7282. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_forcecalcyn") == "Y"
  7283. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_execdd") != "") {
  7284. messageBox("필수계산 대상입니다.\r\n(실시상태인 경우 해제 불가능합니다.)","E999");
  7285. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat","true");
  7286. return;
  7287. }
  7288. // 수납일자가 들어간 경우 블럭킹 처리
  7289. if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat") == "false"
  7290. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_forcecalcyn") == "Y"
  7291. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_rcptdd") != "") {
  7292. messageBox("필수계산 대상입니다.\r\n(수납상태인 경우 해제 불가능합니다.)","E999");
  7293. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat","true");
  7294. return;
  7295. }
  7296. // 원외 일 경우는 해제 불가처리
  7297. if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat") == "false"
  7298. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_forcecalcyn") == "Y"
  7299. && model.getValue("/root/hidden/rcv/h_prcp/prcp[" + grd_row + "]/prcp_hosinhosoutflag") == "원외") {
  7300. messageBox("필수계산 대상입니다.\r\n(원외 처방인 경우 해제 불가능합니다.)","E999");
  7301. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat","true");
  7302. return;
  7303. }
  7304. //2015/01/28 이정택(체크 상태값이 변경되면 수납 버튼을 비활성화 처리)
  7305. if(grd_prcplist.col==grd_prcplist.colRef("prcp_calcstat")){
  7306. btn_rcpt.disabled=true;
  7307. }
  7308. // if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_calcstat")=="true") {
  7309. // //정상처방상태 DC인지 체크
  7310. // if ( vcheck_prcphistcd != "O" ) {
  7311. // messageBox("처방상태만 [HOLD]처리할 수 있습니다.(처방상태가 아닌것은 계산에서 제외됩니다)","E999");
  7312. // model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_holdyn","false");
  7313. // return;
  7314. // }
  7315. //
  7316. // if (vcheck_rcptstatcd == "210" ) {
  7317. // messageBox("[HOLD]중인 처방입니다.","E999");
  7318. // model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_holdyn","false");
  7319. // return;
  7320. // }
  7321. //
  7322. // //성가병원 Y 나머지병원 N
  7323. // if(model.getvalue("/root/init/basecdlist/P0032[cdid='120']/cdnm") == "N") {
  7324. //
  7325. // if ( vcheck_rcptstatcd == "230") {
  7326. // messageBox("수납 처리된 처방입니다.","E999");
  7327. // model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_holdyn","false");
  7328. // return;
  7329. // }
  7330. // }
  7331. //
  7332. // if ( vcheck_execdd != "" ) {
  7333. // messageBox("지원부서에서 진행중인 처방입니다.","E999");
  7334. // model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_holdyn","false");
  7335. // return;
  7336. // }
  7337. //
  7338. // if ( vcheck_rcptstatcd == "230" && vcheck_rsrvflag == "Y" ) {
  7339. // messageBox("지원부서에서 수납후 예약한 처방입니다.","E999");
  7340. // model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_holdyn","false");
  7341. // return;
  7342. // }
  7343. //
  7344. // }
  7345. //
  7346. // if (model.getValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_releyn")=="true") {
  7347. //
  7348. // if ( vcheck_prcphistcd != "O" ) {
  7349. // messageBox("처방상태만 [RELEASE]처리할 수 있습니다.(처방상태가 아닌것은 계산에서 제외됩니다)","E999");
  7350. // model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_releyn","false");
  7351. // return;
  7352. // }
  7353. //
  7354. // if ( vcheck_rcptstatcd != "210" ) {
  7355. // messageBox("[HOLD]처리가 안된 처방입니다.","E999");
  7356. // model.setValue("/root/hidden/rcv/h_prcp/prcp["+ grd_row +"]/prcp_releyn","false");
  7357. // return;
  7358. // }
  7359. // }
  7360. grd_prcplist.refresh();
  7361. }
  7362. }
  7363. //처방 홀드 "H" "R" 전체선택
  7364. function fAllCheck_prcplist() {
  7365. if(grd_prcplist.col=="1" && grd_prcplist.row=="0" ){
  7366. fAllCheck_prcplist_h()
  7367. }
  7368. if(grd_prcplist.col=="2" && grd_prcplist.row=="0" ){
  7369. fAllCheck_prcplist_r()
  7370. }
  7371. }
  7372. /**
  7373. * 클릭한 처방이 M-SET 처방인지 체크하여 블럭킹 처리
  7374. * @return
  7375. */
  7376. function fMsetCheck(){
  7377. //debugger;
  7378. if(grd_prcplist.row>=grd_prcplist.fixedRows){
  7379. var prcp_msetcd = model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_msetcd");
  7380. if(model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_calcstat")=="true" &&
  7381. model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_msetyn")=="M"){
  7382. var cnt = getNodesetCount("/root/hidden/rcv/h_prcp/prcp[prcp_msetyn='S' and prcp_calcstat='false' and prcp_msetcd='"+prcp_msetcd+"']");
  7383. if(cnt>0){
  7384. messageBox("M-SET처방 중 선택되지 않은 자처방이 존재시\n모처방은 선택 불가능 합니다.", "E");
  7385. model.setValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_calcstat", "false");
  7386. model.refresh();
  7387. }
  7388. }else if(model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_calcstat")=="false" &&
  7389. model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_msetyn")=="M"){
  7390. var cnt = getNodesetCount("/root/hidden/rcv/h_prcp/prcp[prcp_msetyn='S' and prcp_calcstat='false' and prcp_msetcd='"+prcp_msetcd+"']");
  7391. if(cnt==0){
  7392. messageBox("자처방이 모두 선택된 M-SET에 대해서\n모처방은 해제 불가능합니다.", "E");
  7393. model.setValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_calcstat", "true");
  7394. model.refresh();
  7395. }
  7396. }else if(model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_calcstat")=="true" &&
  7397. model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_msetyn")=="S"){
  7398. var cnt = getNodesetCount("/root/hidden/rcv/h_prcp/prcp[prcp_msetyn='S' and prcp_calcstat='false' and prcp_msetcd='"+prcp_msetcd+"']");
  7399. if(cnt==0){
  7400. var row = grd_prcplist.findRow("M", 0, grd_prcplist.colRef("prcp_msetyn"), false, true);
  7401. while(row!="-1"){
  7402. if(grd_prcplist.valueMatrix(row, grd_prcplist.colRef("prcp_msetcd"))==prcp_msetcd){
  7403. grd_prcplist.valueMatrix(row, grd_prcplist.colRef("prcp_calcstat"))="true";
  7404. model.refresh();
  7405. break;
  7406. }
  7407. row++;
  7408. row = grd_prcplist.findRow("M", row, grd_prcplist.colRef("prcp_msetyn"), false, true);
  7409. }
  7410. }
  7411. }else if(model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_calcstat")=="false" &&
  7412. model.getValue("/root/hidden/rcv/h_prcp/prcp['"+grd_prcplist.row+"']/prcp_msetyn")=="S"){
  7413. var row = grd_prcplist.findRow("M", 0, grd_prcplist.colRef("prcp_msetyn"), false, true);
  7414. while(row!="-1"){
  7415. if(grd_prcplist.valueMatrix(row, grd_prcplist.colRef("prcp_msetcd"))==prcp_msetcd){
  7416. grd_prcplist.valueMatrix(row, grd_prcplist.colRef("prcp_calcstat"))="false";
  7417. model.refresh();
  7418. break;
  7419. }
  7420. row++;
  7421. row = grd_prcplist.findRow("M", row, grd_prcplist.colRef("prcp_msetyn"), false, true);
  7422. }
  7423. }
  7424. }
  7425. }
  7426. //처방 홀드 "H" 전체선택
  7427. function fAllCheck_prcplist_h() {
  7428. var cnt = 0;
  7429. var bl_hflag = "false";
  7430. if(getNodesetCount("/root/hidden/rcv/h_prcp/prcp[prcp_holdyn='true']") == 0){
  7431. bl_hflag = "true";
  7432. }
  7433. for(var a=1; a< grd_prcplist.rows; a++) {
  7434. var vcheck_rcptstatcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_rcptstatcd");
  7435. var vcheck_execdd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_execdd");
  7436. var vcheck_rsrvflag = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_rsrvflag");
  7437. var bl_rcptstatcd = (vcheck_rcptstatcd == "000" || vcheck_rcptstatcd == "230") ;
  7438. //성가병원 Y 나머지병원 N
  7439. if(model.getvalue("/root/init/basecdlist/P0032[cdid='120']/cdnm") == "N") {
  7440. bl_rcptstatcd = (vcheck_rcptstatcd == "000");
  7441. }
  7442. if( bl_rcptstatcd &&
  7443. vcheck_execdd == "" &&
  7444. !(vcheck_rcptstatcd == "230" && vcheck_rsrvflag == "Y")
  7445. ) {
  7446. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ a +"]/prcp_holdyn",bl_hflag);
  7447. }
  7448. }
  7449. grd_prcplist.refresh();
  7450. }
  7451. //처방 홀드 "R" 전체선택
  7452. function fAllCheck_prcplist_r() {
  7453. var cnt = 0;
  7454. var bl_rflag = "false";
  7455. if(getNodesetCount("/root/hidden/rcv/h_prcp/prcp[prcp_releyn='true']") == 0){
  7456. bl_rflag = "true";
  7457. }
  7458. for(var a=1; a< grd_prcplist.rows; a++) {
  7459. var vcheck_rcptstatcd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_rcptstatcd");
  7460. //var vcheck_execdd = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_execdd");
  7461. //var vcheck_rsrvflag = model.getValue("/root/hidden/rcv/h_prcp/prcp[" + a + "]/prcp_rsrvflag");
  7462. var bl_rcptstatcd = (vcheck_rcptstatcd == "210") ;
  7463. if( bl_rcptstatcd ) {
  7464. model.setValue("/root/hidden/rcv/h_prcp/prcp["+ a +"]/prcp_releyn",bl_rflag);
  7465. }
  7466. }
  7467. grd_prcplist.refresh();
  7468. }
  7469. //부분수납조회
  7470. function fbtn_prcplist() {
  7471. //2015/02/13 이정택(부분수납 클릭시 수납버튼 비활성화_홍나래 선생님 요청)
  7472. btn_rcpt.disabled=true;
  7473. //2015/02/13 이정택
  7474. if (model.getValue("/root/main/patinfo/patinfolist/pid").getTrim() == "") {
  7475. model.setFocus("ipt_pid");
  7476. return;
  7477. }
  7478. //선택된 내역 체크
  7479. if (model.getValue("/root/hidden/rcv1/sum_otpt/otpt/otpt_orddd").getTrim() == "") {
  7480. messageBox("외래등록내역이 선택되어 있는지 확인하십시오.","E999","");
  7481. btn_otptlist.dispatch("onclick");
  7482. return;
  7483. }
  7484. //부분수납에 추가(미계산일때 부분수납 안보임.
  7485. model.copynode("/root/send/s_otpt" , "/root/node_bk/send/s_otpt");
  7486. model.removenode("/root/send/s_otpt/otpt");
  7487. copyNodeListType("/root/send/s_otpt","/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']","after");
  7488. //미수납처방조회
  7489. submit("TRPAO00107");
  7490. grd_diag.rebuild();
  7491. grd_prcplist.rebuild();
  7492. grd_earnlist1.rebuild();
  7493. //기존 바탕색 clear
  7494. for(var i=0; i <= grd_prcplist.rows ; i++){
  7495. for(var j=0; j <= grd_prcplist.cols ; j++){
  7496. grd_prcplist.cellStyle("background-color",i,j) = "#ffffff";
  7497. }
  7498. }
  7499. setRowStyle("grd_prcplist" , "0" , "" , "prcp_execdd", "bigger" ); // 실시
  7500. setRowStyle("grd_prcplist" , "1" , "" , "prcp_rcptdd", "bigger" ); // 수납
  7501. setRowStyle("grd_prcplist" , "3" , "210" , "prcp_rcptstatcd"); // HOLD
  7502. //setRowStyle("grd_prcplist" , "3" , "200" , "prcp_prcpstatcd");
  7503. //setRowStyle("grd_prcplist" , "9" , "000" , "prcp_prcpstatcd");
  7504. }
  7505. function fptinBackUp() {
  7506. //보험자정보 업데이트용 백업본
  7507. model.setValue("/root/main/outrgst/ptin/ptin_insukind_org" , model.getValue("/root/main/outrgst/ptin/ptin_insukind" ));
  7508. model.setValue("/root/main/outrgst/ptin/ptin_insucd_org" , model.getValue("/root/main/outrgst/ptin/ptin_insucd" ));
  7509. model.setValue("/root/main/outrgst/ptin/ptin_insuno_org" , model.getValue("/root/main/outrgst/ptin/ptin_insuno" ));
  7510. model.setValue("/root/main/outrgst/ptin/ptin_insdrela_org" , model.getValue("/root/main/outrgst/ptin/ptin_insdrela" ));
  7511. model.setValue("/root/main/outrgst/ptin/ptin_insdnm_org" , model.getValue("/root/main/outrgst/ptin/ptin_insdnm" ));
  7512. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno1_org", model.getValue("/root/main/outrgst/ptin/ptin_insdrrgstno1"));
  7513. model.setValue("/root/main/outrgst/ptin/ptin_insdrrgstno2_org", model.getValue("/root/main/outrgst/ptin/ptin_insdrrgstno2"));
  7514. model.setValue("/root/main/outrgst/ptin/ptin_fromdd_org" , model.getValue("/root/main/outrgst/ptin/ptin_fromdd" ));
  7515. model.setValue("/root/main/outrgst/ptin/ptin_todd_org" , model.getValue("/root/main/outrgst/ptin/ptin_todd" ));
  7516. }
  7517. //환자 인적정보 변경
  7518. function fbtn_ptbs() {
  7519. if(fBrthddVeri(model.getValue("/root/main/patinfo/patinfolist/brthdd"),ipt_brthdd) == false) return; //2010-01-19 김주희 DUR관련 생년월일체크
  7520. model.makeValue("/root/send/pid" ,model.getValue("/root/main/patinfo/patinfolist/pid"));
  7521. model.makeValue("/root/send/sex" ,model.getValue("/root/main/patinfo/patinfolist/sex"));
  7522. model.makeValue("/root/send/hngnm" ,model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  7523. model.makeValue("/root/send/engnm" ,model.getValue("/root/main/patinfo/patinfolist/engnm"));
  7524. model.makeValue("/root/send/rrgstno1" ,model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  7525. model.makeValue("/root/send/rrgstno2" ,model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  7526. model.makeValue("/root/send/brthdd" ,model.getValue("/root/main/patinfo/patinfolist/brthdd"));
  7527. model.makeValue("/root/send/recmyn" ,model.getValue("/root/main/patinfo/patinfolist/recmyn"));
  7528. model.makeValue("/root/send/recmerid" ,model.getValue("/root/main/patinfo/patinfolist/recmerid"));
  7529. model.makeValue("/root/send/recmerrela" ,model.getValue("/root/main/patinfo/patinfolist/recmerrela"));
  7530. model.makeValue("/root/send/vipyn" ,model.getValue("/root/main/patinfo/patinfolist/vipyn"));
  7531. model.makeValue("/root/send/viprem" ,model.getValue("/root/main/patinfo/patinfolist/viprem"));
  7532. model.makeValue("/root/send/forgeryn" ,model.getValue("/root/main/patinfo/patinfolist/forgeryn"));
  7533. model.makeValue("/root/send/remfact" ,model.getValue("/root/main/patinfo/patinfolist/remfact"));
  7534. model.setvalue("/root/send/mth_nm" ,"setPtbsInfo");
  7535. var rslt = submit("TRPAO00127");
  7536. if (rslt ) {
  7537. messageBox("수정되었습니다.","I999","");
  7538. }else{
  7539. messageBox("수정실패!","I999","");
  7540. }
  7541. }
  7542. //옵션창 불러오기
  7543. function foption() {
  7544. grp_option.attribute("visibility") = "visible";
  7545. }
  7546. //옵션창 끄기
  7547. function fbtn_grpclose() {
  7548. grp_option.attribute("visibility") = "hidden";
  7549. }
  7550. //진료비 조회기능 off
  7551. function fbl_srchoff() {
  7552. if(model.getValue("/root/option/opt_srchoff") == "Y") {
  7553. grd_past.refresh();
  7554. grd_rsrv.refresh();
  7555. grd_tday.refresh();
  7556. btn_calc.disabled = true;
  7557. btn_rcpt.disabled = true;
  7558. btn_calc.refresh();
  7559. btn_rcpt.refresh();
  7560. return true;
  7561. }else{
  7562. return false;
  7563. }
  7564. }
  7565. //옵션창 조회버튼
  7566. function fbtn_opt_search() {
  7567. if(model.getvalue("/root/option/opt_regis") == "Y") {
  7568. fbtn_grpclose();
  7569. //fpid_check();
  7570. fCalcCancel("auto");
  7571. fOtpt_Search();
  7572. model.setValue("/root/option/opt_regis" , "N");
  7573. model.setValue("/root/option/opt_srchoff" , "N");
  7574. bl_callregis.refresh();
  7575. bl_srchoff.refresh();
  7576. return;
  7577. }
  7578. if(model.getvalue("/root/option/opt_srchoff") == "Y") {
  7579. if(!fRightAmtRefresh()) {
  7580. btn_calc.disabled = true;
  7581. btn_rcpt.disabled = true;
  7582. btn_calc.refresh();
  7583. btn_rcpt.refresh();
  7584. }
  7585. return;
  7586. }
  7587. if(model.getvalue("/root/option/opt_kioskyn") == "Y") {
  7588. model.setvalue("/root/send/pid" , model.getvalue("/root/main/patinfo/patinfolist/pid"));
  7589. model.setvalue("/root/send/sessuserid" , model.getValue("/root/hidden/session/userid"));
  7590. model.setvalue("/root/send/sessinstcd" , model.getValue("/root/hidden/session/dutplceinstcd"));
  7591. model.makevalue("/root/send/kioskioflag" , "O");
  7592. model.makevalue("/root/send/checkyn" , "N");
  7593. model.makevalue("/root/send/gubun" , model.getValue("/root/option/opt_kioskgubun"));
  7594. submit("TXPAO99906");
  7595. if(getNodesetCount("/root/main/rsv/h_opmi/opmi[error != '']") > 0) {
  7596. messageBox(model.getvalue("/root/init/basecdlist/kioskyn[cdid = '"+
  7597. model.getValue("/root/main/rsv/h_opmi/opmi/error")+ "']/detldesc").removeMask("죄송합니다.수납창구에서 번호표를 뽑고 대기하십시오") +
  7598. " 무인수납불가","I999");
  7599. }else{
  7600. messageBox("무인수납가능","I999");
  7601. }
  7602. return;
  7603. }
  7604. }
  7605. //우측금액 재조회
  7606. function fRightAmtRefresh() {
  7607. var click_flag = true;
  7608. if (getNodesetCount("/root/main/baseinfo/otpt_rsrv/otpt[otpt_checkflag='true']") > 0) {
  7609. click_flag = fClickGrid("grd_rsrv");
  7610. return click_flag;
  7611. }
  7612. if (getNodesetCount("/root/main/baseinfo/otpt_tday/otpt[otpt_checkflag='true']") > 0) {
  7613. click_flag = fClickGrid("grd_tday");
  7614. return click_flag;
  7615. }
  7616. if (getNodesetCount("/root/main/baseinfo/otpt_past/otpt[otpt_checkflag='true']") > 0) {
  7617. click_flag = fClickGrid("grd_past");
  7618. return click_flag;
  7619. }
  7620. }
  7621. //환불금 서명
  7622. function fRtnRcpt(flag) {
  7623. if(model.getValue("/root/main/patinfo/patinfolist/pid") == null ||
  7624. (model.getValue("/root/main/patinfo/patinfolist/pid")).getTrim == ""){
  7625. messageBox("환자번호가 존재하지 않습니다.", "E999");
  7626. }
  7627. if(flag== "1"){
  7628. var sValue = flag + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  7629. model.getValue("/root/hidden/session/dutplceinstcd") + "▦" + //기관코드
  7630. model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //환자등록번호
  7631. model.getValue("/root/main/patinfo/patinfolist/hngnm") + "▦" + //환자성명
  7632. model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + "▦" + //주민등록번호 앞자리
  7633. model.getValue("/root/main/patinfo/patinfolist/rrgstno2") + "▦" + //주민등록번호뒷자리
  7634. model.getValue("/root/main/patinfo/patinfolist/hometel") + "▦" + //집전화
  7635. model.getValue("/root/main/patinfo/patinfolist/mpphontel") + "▦" + //휴대폰
  7636. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd") + "▦" + //진료일
  7637. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno") + "▦" + //일련번호
  7638. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd") + "▦" + //진료과
  7639. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddrid") + "▦" + //진료의
  7640. "" + "▦" + //환불금액
  7641. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") + "▦" + //보험유형
  7642. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordtype") ; //진료유형
  7643. setParameter("SPPAO00600_PARM",sValue);
  7644. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  7645. }else if(flag== "2"){
  7646. var sCardAmt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cardamt");
  7647. var sCashAmt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt");
  7648. var sOnlineAmt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt");
  7649. if(sCashAmt + sCardAmt + sOnlineAmt >0 ){
  7650. return;
  7651. }else{
  7652. var rtn = messageBox("환불내역을 등록 하시겠습니까?", "Q999");
  7653. if(rtn == "7"){ //아니오
  7654. var iRtnAmt = parseInt(sCashAmt);
  7655. if (iRtnAmt < 0) {
  7656. var rtn1 = messageBox("환불 현금금액(" + iRtnAmt + "원)을 선수금으로 처리 하시겠습니까?", "Q999");
  7657. if (rtn1 == "6" ) {
  7658. model.makeValue("/root/send/ins_bogj/ins_pid", model.getValue("/root/main/patinfo/patinfolist/pid"));
  7659. model.makeValue("/root/send/ins_bogj/ins_rcptdd", "");
  7660. model.makeValue("/root/send/ins_bogj/ins_rcptno", 0);
  7661. model.makeValue("/root/send/ins_bogj/ins_rcptseqno", 0);
  7662. model.makeValue("/root/send/ins_bogj/ins_sessinstcd", model.getValue("/root/hidden/session/dutplceinstcd"));
  7663. model.makeValue("/root/send/ins_bogj/ins_rcptstat", "Y");
  7664. model.makeValue("/root/send/ins_bogj/ins_ordtype", "O")
  7665. model.makeValue("/root/send/ins_bogj/ins_rcptflag", "A01");
  7666. model.makeValue("/root/send/ins_bogj/ins_cashamt", parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt")));
  7667. model.makeValue("/root/send/ins_bogj/ins_cardamt", 0);
  7668. model.makeValue("/root/send/ins_bogj/ins_onlineamt", 0);
  7669. model.makeValue("/root/send/ins_bogj/ins_rcptexecdd", "");
  7670. model.makeValue("/root/send/ins_bogj/ins_rcpttm", "");
  7671. model.makeValue("/root/send/ins_bogj/ins_rcptrid", "");
  7672. model.makeValue("/root/send/ins_bogj/ins_remfact", "외래수납 자동환불 선수금");
  7673. model.makeValue("/root/send/ins_bogj/ins_orddeptcd", model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd"));
  7674. model.makeValue("/root/send/ins_bogj/ins_paypsnflag", "1");
  7675. model.makeValue("/root/send/ins_bogj/ins_paydepoamt", 0);
  7676. model.makeValue("/root/send/ins_bogj/ins_paypsnrem", "");
  7677. submit("TXPAO01800");
  7678. model.resetInstanceNode("/root/send/ins_bogj");
  7679. }
  7680. }
  7681. return;
  7682. }else if(rtn == "6"){
  7683. var sValue = flag + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  7684. model.getValue("/root/hidden/session/dutplceinstcd") + "▦" + //기관코드
  7685. model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //환자등록번호
  7686. model.getValue("/root/main/patinfo/patinfolist/hngnm") + "▦" + //환자성명
  7687. model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + "▦" + //주민등록번호 앞자리
  7688. model.getValue("/root/main/patinfo/patinfolist/rrgstno2") + "▦" + //주민등록번호뒷자리
  7689. model.getValue("/root/main/patinfo/patinfolist/hometel") + "▦" + //집전화
  7690. model.getValue("/root/main/patinfo/patinfolist/mpphontel") + "▦" + //휴대폰
  7691. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd") + "▦" + //진료일
  7692. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno") + "▦" + //일련번호
  7693. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd") + "▦" + //진료과
  7694. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddrid") + "▦" + //진료의
  7695. Math.abs(parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt")))+ "▦" + //환불금액
  7696. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insukind") + "▦" + //보험유형
  7697. model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordtype") ; //진료유형
  7698. setParameter("SPPAO00600_PARM",sValue);
  7699. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  7700. }//환불수납여부 체크 end
  7701. }//환불금액 존재여부 end
  7702. }
  7703. }//fRtnRcpt end
  7704. function fEasyPadNoInsert(flag, ipt1, ipt2){
  7705. //flag ://rrgstno.민번 phone.전번
  7706. //ipt1 : 인풋버튼명 예)ipt_rrgstno1
  7707. //ipt2 : 인풋버튼명 예)ipt_rrgstno2
  7708. //[0]정상처리여부 구분
  7709. //[1]phone -- 전번 rrgstno--민번
  7710. //[2]phone 일때는 전번 rrgstno 일때는 앞자리
  7711. //[3]phone 일때는 없음 rrgstno 일때는 뒷자리
  7712. var sValue = flag ; //rrgstno.민번 phone.전번
  7713. setParameter("SPPAO00503_PARM",sValue);//1.전번 2.민번
  7714. modal("../../../pam/inordamtmngtweb/xrw/SPPAO00503", "1","", "", "SPPAO00503", "", "", "sysmenu:hidden");
  7715. var SPPAO00503_RTN = getParameter("SPPAO00503_RTN");
  7716. var array_parm = SPPAO00503_RTN.split("▦");
  7717. if(array_parm[0] == "Y"){
  7718. if (array_parm[1] == "phone" ) { //전번
  7719. if(array_parm[2] != "") {
  7720. model.setvalue("/root/init/option/cardyn", "N");
  7721. frdo_cardyn();
  7722. frdo_cardyn_setamt();
  7723. model.setValue("/root/main/outrgst/m_etc/cardno", array_parm[2]);
  7724. model.setFocus("btn_rcpt");
  7725. ipt1.value = array_parm[2];
  7726. ipt1.refresh();
  7727. }
  7728. }else if (array_parm[1] == "rrgstno" ) { //민번
  7729. ipt1.value = array_parm[2];
  7730. ipt2.value = array_parm[3];
  7731. ipt1.refresh();
  7732. ipt2.refresh();
  7733. model.setFocus("ipt_rrgstno2");
  7734. }
  7735. }else{
  7736. messageBox("팝업 비정상종료","E999");
  7737. }
  7738. }
  7739. function fipt_reducd(){
  7740. //코드를 입력했을 때 코드명 세팅
  7741. if(getNodesetCount("/root/init/basecdlist/reducd[cdid = '"+ model.getValue("/root/main/outrgst/m_etc/discreducd")+ "']/cls") < 1) {
  7742. model.setValue("/root/main/outrgst/m_etc/discreducd" , "");
  7743. messageBox("임의감면 코드가 존재하지 않습니다.","E999");
  7744. ipt_reducd.refresh();
  7745. cmb_reducd.refresh();
  7746. model.setFocus("cmb_reducd");
  7747. model.setFocus("ipt_reducd");
  7748. return;
  7749. }
  7750. model.setValue("/root/main/outrgst/m_etc/disccls", model.getValue("/root/init/basecdlist/reducd[cdid = '"+ model.getValue("/root/main/outrgst/m_etc/discreducd")+ "']/cls") );
  7751. cmb_reducd.refresh();
  7752. }
  7753. function fipt_uncocd(){
  7754. //코드를 입력했을 때 코드명 세팅
  7755. if(getNodesetCount("/root/init/basecdlist/uncocd[cdid = '"+ model.getValue("/root/main/outrgst/m_etc/uncocd")+ "']/cls") < 1) {
  7756. model.setValue("/root/main/outrgst/m_etc/uncocd", "");
  7757. messageBox("미수코드가 존재하지 않습니다.", "E999");
  7758. ipt_uncocd.refresh();
  7759. cmb_uncocd.refresh();
  7760. model.setFocus("ipt_uncocd");
  7761. return;
  7762. }
  7763. // 미수코드를 체크
  7764. /*
  7765. var pid = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_pid");
  7766. var orddd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  7767. var orddeptcd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd");
  7768. var insukind = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insukind");
  7769. var uncocd = model.getValue("/root/main/outrgst/m_etc/uncocd");
  7770. if(uncocd == "A43" || uncocd == "A44" || uncocd == "A45"){
  7771. var sRtn = fUncoCdCheck(pid, orddd, orddeptcd, insukind, uncocd);
  7772. if(!sRtn){
  7773. //model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", 0);
  7774. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd")!="" && model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd")!="-"){
  7775. model.makeValue("/root/main/outrgst/m_etc/uncocd", model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_uncocd"));
  7776. }else{
  7777. model.makeValue("/root/main/outrgst/m_etc/uncocd", "");
  7778. }
  7779. cmb_uncocd.refresh();
  7780. ipt_uncocd.refresh();
  7781. ipt_uncoamt.refresh();
  7782. //return;
  7783. }
  7784. }
  7785. */
  7786. // 미수코드를 체크
  7787. cmb_uncocd.refresh();
  7788. cmb_uncocd.dispatch("xforms-value-changed");
  7789. }
  7790. //입원예정여부를 팝업으로 알림
  7791. function fGetAdrvInfo(){
  7792. var adrvmsg = model.getValue("/root/hidden/item1/pidinfo/h_adrv/adrv/adrvmsg");
  7793. if(!isNull(adrvmsg)){
  7794. messageBox(adrvmsg, "I999", "");
  7795. }
  7796. }
  7797. //재원여부
  7798. var inhospyn = "";
  7799. function fGetInptInfo(){
  7800. var hngnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  7801. inhospyn = "N";
  7802. if(getNodesetCount("/root/hidden/item1/pidinfo/h_inpt/inpt/pid") > 0){
  7803. var inpt_ordtype = model.getValue("/root/hidden/item1/pidinfo/h_inpt/inpt/ordtype");
  7804. var inpt_brateflag = model.getValue("/root/hidden/item1/pidinfo/h_inpt/inpt/brateflag");
  7805. var inpt_dschnotiyn = model.getValue("/root/hidden/item1/pidinfo/h_inpt/inpt/dschnotiyn");
  7806. if( inpt_dschnotiyn == 'Y'){
  7807. messageBox("["+hngnm+"] 환자는 입원수납할 내역이 있습니다. \n입원수납 후 진행하세요!","E999");
  7808. model.setvalue("/root/etc/union_msg" ,"["+model.getValue("/root/main/patinfo/patinfolist/hngnm")+"] 환자는 입원수납할 내역이 있습니다. \n입원수납 후 진행하세요!" + '\n' + model.getValue("/root/etc/union_msg"));
  7809. }else{
  7810. if( (inpt_ordtype == "I" && inpt_brateflag == "I") ||(inpt_ordtype == "E" && inpt_brateflag == "I")){
  7811. //messageBox("["+model.getValue("/root/main/patinfo/patinfolist/hngnm")+"] 환자는 재원 중인 환자입니다.","E999");
  7812. model.setvalue("/root/etc/union_msg" ,"["+hngnm+"] 환자는 재원 중인 환자입니다." + '\n' + model.getValue("/root/etc/union_msg"));
  7813. //2017/04/13 재원중일 경우 안내 팝업 뜨도록 수정(이정택)
  7814. messageBox("["+hngnm+"] 환자는 재원 중인 환자입니다.", "I999", "");
  7815. inhospyn = "Y";
  7816. //2017/04/13 재원중일 경우 안내 팝업 뜨도록 수정(이정택)
  7817. }
  7818. if(inpt_ordtype == "D"){
  7819. //messageBox("["+model.getValue("/root/main/patinfo/patinfolist/hngnm")+"] 환자는 당일 DSC/CHEMO 환자입니다!","E999");
  7820. model.setvalue("/root/etc/union_msg" ,"["+hngnm+"] 환자는 당일 DSC/CHEMO 환자입니다!" + '\n' + model.getValue("/root/etc/union_msg"));
  7821. }
  7822. }
  7823. }
  7824. }
  7825. //가퇴원여부
  7826. function fGetInptInfo_c() {
  7827. if (getNodesetCount("/root/hidden/item1/pidinfo/h_inptc/inptc/pid") > 0){
  7828. var sIndd = model.getValue("/root/hidden/item1/pidinfo/h_inptc/inptc/indd");
  7829. var sDschdd = model.getValue("/root/hidden/item1/pidinfo/h_inptc/inptc/dschdd");
  7830. if (model.getValue("/root/hidden/item1/pidinfo/h_inptc/inptc/dschjudgprcsstat") == "C" || model.getValue("/root/hidden/item1/pidinfo/h_inptc/inptc/dschjudgprcsstat") == "E") {
  7831. //messageBox("["+model.getValue("/root/main/patinfo/patinfolist/hngnm")+"] 환자는 [" + sIndd + " ~ " + sDschdd + "] 가퇴원한 환자(퇴원심사 완료) 입니다.","E999");
  7832. model.setvalue("/root/etc/union_msg" , "["+model.getValue("/root/main/patinfo/patinfolist/hngnm")+"] 환자는 [" + sIndd + " ~ " + sDschdd + "] 가퇴원한 환자(퇴원심사 완료) 입니다." + '\n' + model.getValue("/root/etc/union_msg"));
  7833. } else {
  7834. //messageBox("["+model.getValue("/root/main/patinfo/patinfolist/hngnm")+"] 환자는 [" + sIndd + " ~ " + sDschdd + "] 가퇴원한 환자(퇴원심사 미완료) 입니다.","E999");
  7835. model.setvalue("/root/etc/union_msg" , "["+model.getValue("/root/main/patinfo/patinfolist/hngnm")+"] 환자는 [" + sIndd + " ~ " + sDschdd + "] 가퇴원한 환자(퇴원심사 미완료) 입니다." + '\n' + model.getValue("/root/etc/union_msg"));
  7836. }
  7837. }
  7838. }
  7839. //접수비중복체크
  7840. function fGetDupOtpt() {
  7841. var duplCnt = getNodesetCount("/root/hidden/item1/pidinfo/h_otptduplhist/otptduplhist/otpt_pid");
  7842. if( duplCnt > 1 ){
  7843. messageBox("동일일자 동일과 접수비 이중 수납건이 있습니다.\n처리 후 진행 부탁드립니다.", "E");
  7844. setParameter("SMPMO01600_PARM", model.getValue("/root/hidden/item1/pidinfo/h_otptduplhist/otptduplhist/otpt_pid"));
  7845. modal("SPPMO01600", "1","200", "200", "SPPMO01600", "", "");
  7846. if(submit("TRPAO00134")){
  7847. if(getNodesetCount("/root/temp99/h_otptduplhist/otptduplhist/otpt_pid")>1){
  7848. messageBox("동일일자 동일과 접수비 이중 수납건이 처리되지 않았습니다.", "E");
  7849. return false;
  7850. }
  7851. }
  7852. /*if( messageBox("동일일자 동일과 접수비 이중 수납내역이 있습니다. 내역을 확인하시겠습니까?", "Q999", "") == 6 ){
  7853. setParameter("SMPMO01600_PARM", model.getValue("/root/hidden/item1/pidinfo/h_otptduplhist/otptduplhist/otpt_pid"));
  7854. modal("SPPMO01600", "1","200", "200", "SPPMO01600", "", "");
  7855. }*/
  7856. }
  7857. return true;
  7858. }
  7859. //타병원투석 변경 당일
  7860. function fSetSuppkindsubyn_grd_tday() {
  7861. if (model.getValue("/root/main/patinfo/patinfolist/pid") == "") {
  7862. messageBox("환자조회 후 진행하여 주십시오.", "I999", "");
  7863. return;
  7864. }
  7865. if (messageBox("타병원투석 변경시 선택하신 접수내역은 희귀난치산정특례 체크를 하지 않습니다. 진행하시겠습니까?", "Q999", "") == 6 ) {
  7866. var currow = grd_tday.row;
  7867. model.makeValue("/root/send/data2/pid", model.getValue("/root/main/baseinfo/otpt_tday/otpt["+ currow +"]/otpt_pid"));
  7868. model.makeValue("/root/send/data2/orddd", model.getValue("/root/main/baseinfo/otpt_tday/otpt["+ currow +"]/otpt_orddd"));
  7869. model.makeValue("/root/send/data2/cretno", model.getValue("/root/main/baseinfo/otpt_tday/otpt["+ currow +"]/otpt_cretno"));
  7870. model.makeValue("/root/send/data2/instcd", model.getValue("/root/main/baseinfo/otpt_tday/otpt["+ currow +"]/otpt_instcd"));
  7871. submit("TXPAO00112");
  7872. fSearch();
  7873. }
  7874. }
  7875. //타병원투석 변경 미래
  7876. function fSetSuppkindsubyn_grd_rsrv() {
  7877. if (model.getValue("/root/main/patinfo/patinfolist/pid") == "") {
  7878. messageBox("환자조회 후 진행하여 주십시오.", "I999", "");
  7879. return;
  7880. }
  7881. if (messageBox("타병원투석 변경시 선택하신 접수내역은 희귀난치산정특례 체크를 하지 않습니다. 진행하시겠습니까?", "Q999", "") == 6 ) {
  7882. var currow = grd_rsrv.row;
  7883. model.makeValue("/root/send/data2/pid", model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+ currow +"]/otpt_pid"));
  7884. model.makeValue("/root/send/data2/orddd", model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+ currow +"]/otpt_orddd"));
  7885. model.makeValue("/root/send/data2/cretno", model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+ currow +"]/otpt_cretno"));
  7886. model.makeValue("/root/send/data2/instcd", model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+ currow +"]/otpt_instcd"));
  7887. submit("TXPAO00112");
  7888. fSearch();
  7889. }
  7890. }
  7891. //타병원투석 변경 과거
  7892. function fSetSuppkindsubyn_grd_past() {
  7893. if (model.getValue("/root/main/patinfo/patinfolist/pid") == "") {
  7894. messageBox("환자조회 후 진행하여 주십시오.", "I999", "");
  7895. return;
  7896. }
  7897. if (messageBox("타병원투석 변경시 선택하신 접수내역은 희귀난치산정특례 체크를 하지 않습니다. 진행하시겠습니까?", "Q999", "") == 6 ) {
  7898. var currow = grd_past.row;
  7899. model.makeValue("/root/send/data2/pid", model.getValue("/root/main/baseinfo/otpt_past/otpt["+ currow +"]/otpt_pid"));
  7900. model.makeValue("/root/send/data2/orddd", model.getValue("/root/main/baseinfo/otpt_past/otpt["+ currow +"]/otpt_orddd"));
  7901. model.makeValue("/root/send/data2/cretno", model.getValue("/root/main/baseinfo/otpt_past/otpt["+ currow +"]/otpt_cretno"));
  7902. model.makeValue("/root/send/data2/instcd", model.getValue("/root/main/baseinfo/otpt_past/otpt["+ currow +"]/otpt_instcd"));
  7903. submit("TXPAO00112");
  7904. fSearch();
  7905. }
  7906. }
  7907. //선후불변경 당일
  7908. function fSetMedAmtPostYN_grd_tday() {
  7909. var currow = grd_tday.row;
  7910. var pid = model.getValue("/root/main/baseinfo/otpt_tday/otpt["+ currow +"]/otpt_pid");
  7911. var orddd = model.getValue("/root/main/baseinfo/otpt_tday/otpt["+ currow +"]/otpt_orddd");
  7912. var cretno = model.getValue("/root/main/baseinfo/otpt_tday/otpt["+ currow +"]/otpt_cretno");
  7913. var retValue = fSetMedAmtPostYN(pid, orddd, cretno);
  7914. if( retValue){
  7915. fSearch();
  7916. return true;
  7917. }else{
  7918. return false;
  7919. }
  7920. }
  7921. //선후불변경 예약
  7922. function fSetMedAmtPostYN_grd_rsrv() {
  7923. var currow = grd_rsrv.row;
  7924. var pid = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+ currow +"]/otpt_pid");
  7925. var orddd = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+ currow +"]/otpt_orddd");
  7926. var cretno = model.getValue("/root/main/baseinfo/otpt_rsrv/otpt["+ currow +"]/otpt_cretno");
  7927. var retValue = fSetMedAmtPostYN(pid, orddd, cretno);
  7928. if( retValue){
  7929. fSearch();
  7930. return true;
  7931. }else{
  7932. return false;
  7933. }
  7934. }
  7935. //당일자격여부조회
  7936. function fToday_ProdCheck() {
  7937. //2012-01-11 신생아 체크시 자격조회 패스
  7938. if(model.getvalue("/root/option/otp_newbornyn") == "Y") {
  7939. return true;
  7940. }
  7941. if(model.getvalue("/root/hidden/rcv1/h_msg/msg/msg_proc") == "N") {
  7942. if( model.getvalue("/root/hidden/rcv1/h_opmi/opmi/opmi_insukind") == "11" ||
  7943. model.getvalue("/root/hidden/rcv1/h_opmi/opmi/opmi_insukind") == "21" ||
  7944. model.getvalue("/root/hidden/rcv1/h_opmi/opmi/opmi_insukind") == "22") {
  7945. var msgtype = model.getvalue("/root/init/basecdlist/P0032[cdid='300']/cdnm");
  7946. if( msgtype == 'Q' ){
  7947. if( messageBox("자격조회를 하신적이 없습니다. 자격조회를 하시겠습니까?", "Q999", "") == 6 ){
  7948. // Yes : 6 / No : 7
  7949. fbtn_proc2();
  7950. if(btn_rcpt.disabled == true){
  7951. model.setFocus("btn_calc");
  7952. }else{
  7953. model.setFocus("btn_rcpt");
  7954. }
  7955. return false;
  7956. }
  7957. }else{
  7958. if( messageBox("자격조회를 하신적이 없습니다. 자격조회를 하겠습니다.\n공단자격과 현재 보험 유형이 같은지 확인하세요!", "I999", "")){
  7959. // Yes : 6 / No : 7
  7960. fbtn_proc2();
  7961. if(btn_rcpt.disabled == true){
  7962. model.setFocus("btn_calc");
  7963. }else{
  7964. model.setFocus("btn_rcpt");
  7965. }
  7966. return false;
  7967. }
  7968. }
  7969. //2011-12-14 원무팀 요청으로 공단자격조회 하지 않은 경우 자동으로 자격조회!
  7970. }
  7971. }else if(model.getvalue("/root/hidden/rcv1/h_msg/msg/msg_proc") == "E") {
  7972. if( model.getvalue("/root/hidden/rcv1/h_opmi/opmi/opmi_insukind") == "11" ||
  7973. model.getvalue("/root/hidden/rcv1/h_opmi/opmi/opmi_insukind") == "21" ||
  7974. model.getvalue("/root/hidden/rcv1/h_opmi/opmi/opmi_insukind") == "22") {
  7975. var msgs = model.getvalue("/root/hidden/rcv1/h_msg/msg/msg_procmsg");
  7976. var msgtype = model.getvalue("/root/hidden/rcv1/h_msg/msg/msg_proctype");
  7977. if( msgtype == 'Q' ){
  7978. msgs = msgs + "\n무시하고 계속 수납하시겠습니까?\n[Yes : 수납, No : 중지]";
  7979. if (messageBox(msgs, "Q999", "") != 6 ){
  7980. return false;
  7981. }
  7982. }else{
  7983. messageBox(msgs, "E999", "");
  7984. return false;
  7985. }
  7986. }
  7987. }
  7988. }
  7989. //자보,산재 등록내역 시작일자,종료일자 조회
  7990. function fCheckAutoInduInsu_O() {
  7991. var sNewLine = "\n";
  7992. var iCount = getNodesetCount("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm/pid");
  7993. if (iCount > 0) {
  7994. var sMessage = "자보/산재 등록정보" + sNewLine + sNewLine;
  7995. var sInsuNm = "";
  7996. for (var idx = 1 ; idx <= iCount ; idx++) {
  7997. var sInsuKind = model.getValue("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm[" + idx + "]/insukind");
  7998. var sOrdType = model.getValue("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm[" + idx + "]/ordtype");
  7999. var sFromdd = model.getValue("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm[" + idx + "]/fromdd");
  8000. var sTodd = model.getValue("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm[" + idx + "]/todd");
  8001. var sSuppKind = model.getValue("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm[" + idx + "]/suppkind");
  8002. var sOrdDeptCD = model.getValue("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm[" + idx + "]/orddeptcd");
  8003. var sInsucdnm = model.getValue("/root/hidden/item1/pidinfo/h_aipmicpm/aipmicpm[" + idx + "]/insucdnm");
  8004. if (sInsuKind == "31") {
  8005. sInsuNm = "자보";
  8006. sMessage += "[" + sInsuNm + "] 승인기간[" + sFromdd + "~" + sTodd +"] - " + sInsucdnm;
  8007. sMessage += sNewLine;
  8008. }
  8009. if (sInsuKind == "41") {
  8010. sInsuNm = "산재";
  8011. sMessage += "[" + sInsuNm + "/" + sSuppKind + "]" + " [" + sOrdDeptCD + "] 승인시작[" + sFromdd + "] 승인종료 [" + sTodd +"]" + " " + sOrdType;
  8012. sMessage += sNewLine;
  8013. }
  8014. }
  8015. messageBox(sMessage, "I");
  8016. // 자보의 경우 사고접수정보가 복수건 존재할 수 있으므로 수납자에게 알림처리 by 조중래 20130704
  8017. if (sInsuKind == "31" && iCount > 1) {
  8018. messageBox("자보 사고접수정보가 복수건 존재합니다. \r\n\r\n자보담당자 확인 후 유효한 접수정보로 진행하십시오", "I000");
  8019. }
  8020. }
  8021. }
  8022. /*
  8023. * 선택진료신청서 체크/등록 - OCR
  8024. */
  8025. function fCheckSpecOrdApp(flag, msg_spec_orddrid){
  8026. if(flag == "M"){
  8027. var bChk = false;
  8028. var iCount = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt");
  8029. for(var i=1; i<=iCount; i++){
  8030. // 2014/12/24 다학제의 경우 주과에 대해서만 선택진료 동의서 팝업이 뜨도록 프로그램 수정
  8031. var etcordflag = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+i+"]/otpt_etcordflag"); // 다학제 여부
  8032. var medamtestmyn= model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+i+"]/otpt_medamtestmyn"); // 진료비 산정여부
  8033. if((etcordflag=='3' || etcordflag=='4' || etcordflag=='5' ||
  8034. etcordflag=='6' || etcordflag=='7' || etcordflag=='8' ||
  8035. etcordflag=='9') && medamtestmyn=='N'){
  8036. continue;
  8037. }
  8038. // 2014/12/24 다학제의 경우 주과에 대해서만 선택진료 동의서 팝업이 뜨도록 프로그램 수정
  8039. if(model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddrid") == msg_spec_orddrid){
  8040. var sOrddeptcdMsg = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddeptcdnm");
  8041. var sOrddridMsg = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddridnm");
  8042. sMsg = "[" + sOrddeptcdMsg + "] [" + sOrddridMsg + "]";
  8043. if(messageBox(sMsg + " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까? \n내역 변경시 재계산 하셔야 합니다.", "Q999", "") == 6){
  8044. /*
  8045. model.makeValue("/root/tempchk/specchk/stat" , "");
  8046. model.makeValue("/root/tempchk/specchk/pid" , model.getValue("/root/main/patinfo/patinfolist/pid"));
  8047. model.makeValue("/root/tempchk/specchk/hngnm" , model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  8048. model.makeValue("/root/tempchk/specchk/rrgstno1" , model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  8049. model.makeValue("/root/tempchk/specchk/rrgstno2" , model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  8050. model.makeValue("/root/tempchk/specchk/choiflag" , "");
  8051. model.makeValue("/root/tempchk/specchk/ordtype" , "O");
  8052. model.makeValue("/root/tempchk/specchk/orddd" , getCurrentDate());
  8053. model.makeValue("/root/tempchk/specchk/orddeptcd", model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddeptcd"));
  8054. model.makeValue("/root/tempchk/specchk/orddrid" , model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddrid"));
  8055. if(model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_specordyn") != "N"){
  8056. model.makeValue("/root/tempchk/specchk/specordyn", "Y");
  8057. }else{
  8058. model.makeValue("/root/tempchk/specchk/specordyn", "N");
  8059. }
  8060. model.makeValue("/root/tempchk/specchk/fromdd", getCurrentDate());
  8061. model.makeValue("/root/tempchk/specchk/rsrvdd", "");
  8062. modal("SMPMC06500", "1", "0", "0" ,"SMPMC06500", "/root/tempchk/specchk", "/root/main/patappinfo/patappinfo1");
  8063. */
  8064. var s_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  8065. var s_ordtype = "O";
  8066. var s_orddd = getCurrentDate();
  8067. var s_orddeptcd = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddeptcd");
  8068. var s_orddrid = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddrid");
  8069. var s_fromdd = getCurrentDate();
  8070. var s_hngnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  8071. var s_rrgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  8072. var s_rrgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  8073. var s_cretno = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_cretno");
  8074. //선택진료신청안내창 열기
  8075. fOpenSPIFInfo();
  8076. fCallSpecPopUp(s_pid, s_ordtype, s_orddd, s_orddeptcd, s_orddrid, s_fromdd, s_hngnm, s_rrgstno1, s_rrgstno2, s_cretno);
  8077. //선택진료신청안내창 닫기
  8078. fCloseSPIFInfo();
  8079. bChk = true;
  8080. }
  8081. break;
  8082. }else if(model.getValue("/root/tempchk/specapp/rgstyn") == "-"){ //자동조회 하지 않음.
  8083. return false;
  8084. }
  8085. }
  8086. if(bChk == true){
  8087. return true;
  8088. }else{
  8089. return false;
  8090. }
  8091. }else if(flag == "E"){
  8092. /*
  8093. model.makeValue("/root/tempchk/specchk/stat" , "");
  8094. model.makeValue("/root/tempchk/specchk/pid" , model.getValue("/root/main/patinfo/patinfolist/pid"));
  8095. model.makeValue("/root/tempchk/specchk/hngnm" , model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  8096. model.makeValue("/root/tempchk/specchk/rrgstno1" , model.getValue("/root/main/patinfo/patinfolist/rrgstno1"));
  8097. model.makeValue("/root/tempchk/specchk/rrgstno2" , model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  8098. model.makeValue("/root/tempchk/specchk/choiflag" , "");
  8099. model.makeValue("/root/tempchk/specchk/ordtype" , "O");
  8100. model.makeValue("/root/tempchk/specchk/orddd" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd"));
  8101. model.makeValue("/root/tempchk/specchk/orddeptcd", model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd"));
  8102. model.makeValue("/root/tempchk/specchk/orddrid" , model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddrid"));
  8103. if(model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_specordyn") != "N") {
  8104. model.makeValue("/root/tempchk/specchk/specordyn", "Y");
  8105. }else{
  8106. model.makeValue("/root/tempchk/specchk/specordyn", "N");
  8107. }
  8108. model.makeValue("/root/tempchk/specchk/fromdd", model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd"));
  8109. model.makeValue("/root/tempchk/specchk/rsrvdd", "");
  8110. modal("SMPMC06500", "1", "0", "0" ,"SMPMC06500", "/root/tempchk/specchk", "/root/main/patappinfo/patappinfo1");
  8111. */
  8112. var s_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  8113. var s_ordtype = "O";
  8114. var s_orddd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  8115. var s_orddeptcd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd");
  8116. var s_orddrid = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddrid");
  8117. var s_fromdd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  8118. var s_cretno = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_cretno");
  8119. var s_hngnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  8120. var s_rrgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  8121. var s_rrgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  8122. //전자동의서 태블릿이 설치된 PC에서는 안내창 보이지 않도록 수정
  8123. if(model.getValue("/root/init/basecdlist/PK018[cdid='" + app.clientIp + "']/cdnm") != "Y"){
  8124. //선택진료신청안내창 열기
  8125. fOpenSPIFInfo();
  8126. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2,s_cretno);
  8127. //선택진료신청안내창 닫기
  8128. fCloseSPIFInfo();
  8129. }else{
  8130. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2,s_cretno);
  8131. }
  8132. }
  8133. }
  8134. /*
  8135. * 선택진료신청서 체크/등록 - 전자동의서 추가 by 조중래 20130307
  8136. */
  8137. function fCheckSpecOrdAppE(msg_spec_orddrid){
  8138. var bChk = false;
  8139. var iCount = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt");
  8140. //2014/10/13 이정택 선택진료 신청서 두번 뜨는 현상 수정
  8141. sortNodeList( "/root/hidden/rcv1/sum_otpt/otpt", "otpt_orddd", "asc");
  8142. //2014/10/13 이정택 선택진료 신청서 두번 뜨는 현상 수정
  8143. for(var i=1; i<=iCount; i++){
  8144. // 2014/12/24 다학제의 경우 주과에 대해서만 선택진료 동의서 팝업이 뜨도록 프로그램 수정
  8145. var etcordflag = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+i+"]/otpt_etcordflag"); // 다학제 여부
  8146. var medamtestmyn= model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+i+"]/otpt_medamtestmyn"); // 진료비 산정여부
  8147. if((etcordflag=='3' || etcordflag=='4' || etcordflag=='5' ||
  8148. etcordflag=='6' || etcordflag=='7' || etcordflag=='8' ||
  8149. etcordflag=='9') && medamtestmyn=='N'){
  8150. continue;
  8151. }
  8152. // 2014/12/24 다학제의 경우 주과에 대해서만 선택진료 동의서 팝업이 뜨도록 프로그램 수정
  8153. if(model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddrid") == msg_spec_orddrid){
  8154. var sOrddeptcdMsg = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddeptcdnm");
  8155. var sOrddridMsg = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddridnm");
  8156. sMsg = "[" + sOrddeptcdMsg + "] [" + sOrddridMsg + "]";
  8157. if(messageBox(sMsg + " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까? \n내역 변경시 재계산 하셔야 합니다.", "Q999", "") == 6){
  8158. var s_instcd = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_instcd");
  8159. var s_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  8160. var s_ordtype = "O";
  8161. var s_orddd = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddd");
  8162. var s_orddeptcd = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddeptcd");
  8163. var s_orddrid = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddrid");
  8164. var s_fromdd = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_orddd");
  8165. var s_cretno = model.getValue("/root/hidden/rcv1/sum_otpt/otpt["+ i +"]/otpt_cretno");
  8166. var s_hngnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  8167. var s_rrgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  8168. var s_rrgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  8169. var s_detladdr = model.getValue("/root/main/patinfo/patinfolist/detladdr");
  8170. var s_hometel = model.getValue("/root/main/patinfo/patinfolist/hometel");
  8171. //전자동의서 파라미터 설정
  8172. setParameter("SSMRC03160_param_patid", s_pid);
  8173. setParameter("SSMRC03160_param_cretno", s_cretno);
  8174. setParameter("SSMRC03160_param_indate", s_orddd);
  8175. setParameter("SSMRC03160_param_instcd", s_instcd);
  8176. setParameter("SSMRC03160_param_class", s_ordtype);
  8177. setParameter("SSMRC03160_param_docucd", "1300013647"); //1300013647 선택진료신청서(원무)
  8178. setParameter("SSMRC03160_param_cuser", getUserId());
  8179. setParameter("SSMRC03160_param_flag", "S"); //S:선택진료신청서, A:입원약정서, T:기간약정서
  8180. //환자 기본정보 설정
  8181. setParameter("SSMRC03160_param_pathngnm", s_hngnm);
  8182. setParameter("SSMRC03160_param_pataddr", s_detladdr);
  8183. setParameter("SSMRC03160_param_pattelno", s_hometel);
  8184. setParameter("SSMRC03160_param_patrrgstno", s_rrgstno1 + "-" + s_rrgstno2);
  8185. //주진료과정보 설정 진료과/의사
  8186. var sSpecordyn = model.getValue("/root/init/basecdlist/orddrid[cdid = '" + s_orddrid + "' and dutplcecd = '" + s_orddeptcd + "']/specordyn");
  8187. model.makeValue("/root/main/inform/orddeptnm", sOrddeptcdMsg);
  8188. model.makeValue("/root/main/inform/orddrnm", sOrddridMsg);
  8189. model.makeValue("/root/main/inform/specordyn", sSpecordyn);
  8190. model.makeValue("/root/main/inform/appdd", getCurrentDate());
  8191. //전자동의서 팝업 호출
  8192. modal("SSMRC03160");
  8193. bChk = true;
  8194. }
  8195. break;
  8196. }else if(model.getValue("/root/tempchk/specapp/rgstyn") == "-"){ //자동조회 하지 않음.
  8197. return false;
  8198. }
  8199. }
  8200. if(bChk == true){
  8201. return true;
  8202. }else{
  8203. return false;
  8204. }
  8205. }
  8206. //응급실 내원내역 체크(1주일 이전)
  8207. function fCheckERInfo() {
  8208. if (getNodesetCount("/root/hidden/item1/pidinfo/h_erpat/erpat/pid") > 0 ) {
  8209. var orddd = model.getValue("/root/hidden/item1/pidinfo/h_erpat/erpat/orddd");
  8210. var erorddeptcd = model.getValue("/root/hidden/item1/pidinfo/h_erpat/erpat/erorddeptcd");
  8211. //messageBox(orddd + "" + erorddeptcd + " 응급실 내원환자입니다.", "I999", "");
  8212. model.setvalue("/root/etc/union_msg" ,orddd + "" + erorddeptcd + " 응급실 내원환자입니다." + '\n' + model.getValue("/root/etc/union_msg"));
  8213. }
  8214. }
  8215. //건강검진 내역 체크(1년 이내) - 1년 일 경우 진료의뢰서 체크 하지 않음.
  8216. function fCheckMediExamInfo() {
  8217. if (getNodesetCount("/root/hidden/item1/pidinfo/h_mediexam/mediexam/orddd") > 0 ) {
  8218. var orddd = model.getValue("/root/hidden/item1/pidinfo/h_mediexam/mediexam/orddd");
  8219. if (isValidDateTime(orddd, "YYYYMMDD")) {
  8220. var interval = getDateInterval(getCurrentDate(), orddd);
  8221. var intervalMsg = '';
  8222. if (interval <= 0 ) {
  8223. interval = parseInt(interval) * -1
  8224. intervalMsg = interval + "일 전";
  8225. if (interval <= 365 ) {
  8226. //messageBox(orddd.substr(0,4) + "년 " + orddd.substr(4,2) + "월 " + orddd.substr(6,2) + "일(" + intervalMsg + ") 건강검진을 받은 이력이 있습니다.", "I999", "");
  8227. model.setvalue("/root/etc/union_msg" ,orddd.substr(0,4) + "년 " + orddd.substr(4,2) + "월 " + orddd.substr(6,2) + "일(" + intervalMsg + ") 건강검진을 받은 이력이 있습니다." + '\n' + model.getValue("/root/etc/union_msg"));
  8228. }
  8229. }
  8230. }
  8231. }
  8232. }
  8233. //연속처방 수납대상건 조회
  8234. function fCheckMJqu() {
  8235. if (model.getValue("/root/temp3/workgubn") == "Y") {
  8236. if(getNodesetCount("/root/hidden/item1/pidinfo/h_mjqu/mjqu/pid") > 1) {
  8237. open("SMPAO00106", "0","960", "368", "SMPAO00106", "/root/hidden/item1/pidinfo", "/root/main");
  8238. }
  8239. }
  8240. }
  8241. //독립유공자미수 체크
  8242. function fCheckAutoUnco_rcpt(){
  8243. if(getNodesetCount("/root/init/basecdlist/P0071[cdid = '"+ model.getvalue("/root/main/outrgst/m_etc/uncocd")+ "']") > 0){
  8244. fCheckAutoUnco('/root/main/outrgst/m_opmi/opmi/opmi_', cmb_uncocd.value, 'ipt_uncoamt', 'DOMFocusOut');
  8245. //납부할 금액 세팅
  8246. fCalcRcptexptAmt();
  8247. }
  8248. }
  8249. //장애인수첩소지여부 체크
  8250. function fgetHndcCnt() {
  8251. if(model.getvalue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn") == "Y") {
  8252. model.setValue("/root/send/sum_otpt" ,getNodeListCSV(instance1.selectNodes("/root/hidden/rcv1/sum_otpt/otpt[otpt_checkflag='true']")));
  8253. model.setvalue("/root/send/mth_nm" ,"getHndcCnt");
  8254. submit("TRPAO00127");
  8255. if(model.getvalue("/root/temp5/srdg/cnt") =="0") {
  8256. if(messageBox("장애인수첩 등록하시겠습니까?", "Q999", "") == "6" ){
  8257. model.setValue("/root/source/pid" , model.getValue("/root/main/patinfo/patinfolist/pid"));
  8258. model.setValue("/root/source/srchcond", 1);
  8259. modal("SMPMC01700", "1","100", "100", "SMPMC01700", "/root/source", "/root/source");
  8260. }
  8261. }
  8262. }
  8263. }
  8264. //키코드 알아내기
  8265. function fkeyCode() {
  8266. alert(event.keyCode);
  8267. }
  8268. //글로벌변수 선언 환자번호 가져오기
  8269. function fctrl_0() {
  8270. fkeyCode_pid("ipt_pid","onkeypress");
  8271. }
  8272. //자선진료비내역조회
  8273. function fCheckCharityYN_outordjs() {
  8274. //fCheckCharityYN(model.getValue("/root/main/patinfo/patinfolist/pid"));
  8275. if( model.getValue("/root/hidden/item1/pidinfo/h_charity/charity/charityyn") == 'Y'){
  8276. var retValue = messageBox("자선진료비 지원 대상 환자입니다. 내역을 확인하시겠습니까?", "Q999", "");
  8277. if( retValue == 6 ){
  8278. fOpenCharityPopup(model.getValue("/root/main/patinfo/patinfolist/pid"));
  8279. }
  8280. }
  8281. }
  8282. //당일 수납할 재증명 유무체크
  8283. function fCheckCert() {
  8284. if( getNodesetCount("/root/hidden/item1/pidinfo/h_cert/cert/pid") > 0){
  8285. messageBox("오늘자 수납할 제증명 내역이 있습니다.", "I999", "");
  8286. model.setvalue("/root/etc/union_msg" ,"오늘자 수납할 제증명 내역이 있습니다." + '\n' + model.getValue("/root/etc/union_msg"));
  8287. }
  8288. }
  8289. //의뢰서 호출
  8290. function fCallCnst() {
  8291. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  8292. if (pid == "") {
  8293. messageBox("환자번호가 없습니다. 환자번호 입력 후 진행하십시오.", "I999", "");
  8294. return;
  8295. }
  8296. var insukind = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_insukind");
  8297. var orddeptcd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddeptcd");
  8298. var ordreqflag = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_ordreqformflag");
  8299. var etcordflag = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_etcordflag");
  8300. var strSend = "";
  8301. var strRcv = "/root/main/h_cnst";
  8302. setParameter("SPPMC04100_PARM", pid + "▦" + strSend + "▦" + strRcv + "▦");
  8303. setParameter("SPPMC04100_PARM1", orddeptcd + "▦" + ordreqflag + "▦" + insukind + "▦" + etcordflag + "▦");
  8304. modal("SPPMC04200", "1","150", "150", "SPPMC04200", "/root/main/h_cnst", "/root/main/h_cnst");
  8305. model.refresh();
  8306. }
  8307. /*
  8308. //옵션창 끄기
  8309. function fbtn_grpclose2() {
  8310. grd_union_msg.attribute("visibility") = "hidden";
  8311. }
  8312. */
  8313. //상병코드조회
  8314. function fbtn_diag() {
  8315. model.removeNodeset("/root/hidden/sppiz00400/rslt");
  8316. model.makeNode("/root/hidden/sppiz00400/rslt/diagcd");
  8317. model.makeNode("/root/hidden/sppiz00400/rslt/diaghngnm");
  8318. model.makeNode("/root/hidden/sppiz00400/rslt/diagengnm");
  8319. model.resetInstanceNode("/root/hidden/sppiz00400/cond");
  8320. model.makeValue("/root/hidden/sppiz00400/cond/basedd", getCurrentDate()); // (dateHelper.js) 현재날짜 반환
  8321. model.makeValue("/root/hidden/sppiz00400/cond/diagcd", model.getvalue("/root/main/outrgst/diag/diag_icd10cd"));
  8322. model.makeValue("/root/hidden/sppiz00400/cond/diagnm", "");
  8323. model.makeValue("/root/hidden/sppiz00400/cond/selectedrdodiagkind","3"); // 사용자가 직접검색하여 입력 할수 있도록 임의의 값(3)을 넣어줌
  8324. modal("SPPIZ00400", "1", "10", "10", "SPPIZ00400", "/root/hidden/sppiz00400/cond", "/root/init", "", ""); // SPPIZ00400_상병코드조회.xrw
  8325. }
  8326. //처방특진여부 N으로 변경 20110401 cys
  8327. function fSetChngSpecN() {
  8328. model.removeNodeset("/root/send/s_hold/prcp");
  8329. // 선택된 Row에 한해서만 특진여부 변경
  8330. var selectedRows = grd_prcplist.selectedRows;
  8331. var arr=new Array(selectedRows);
  8332. for(var i=0; i<arr.length; i++) {
  8333. arr[i] = grd_prcplist.selectedRow(i);
  8334. if(model.getvalue("/root/hidden/rcv/h_prcp/prcp["+ arr[i] +"]/prcp_choiordflag") == "Y"){
  8335. copyNodeListType("/root/send/s_hold","/root/hidden/rcv/h_prcp/prcp["+ arr[i] +"]","after");
  8336. }
  8337. }
  8338. //선택진료 취소대장 호출(변경내역 저장)
  8339. fSetChngSpec_call_popup();
  8340. if (submit("TXPAO00113")) {
  8341. model.setValue("/root/hidden/calcgubn","Y");
  8342. if (fCalculate('N') != false) {
  8343. btn_otptlist.dispatch("onclick");
  8344. }
  8345. }
  8346. }
  8347. //처방특진여부 원복 20110401 cys
  8348. function fSetChngSpecR() {
  8349. model.removeNodeset("/root/send/s_hold/prcp");
  8350. // 선택된 Row에 한해서만 특진여부 변경
  8351. var selectedRows = grd_prcplist.selectedRows;
  8352. var arr=new Array(selectedRows);
  8353. for(var i=0; i<arr.length; i++) {
  8354. arr[i] = grd_prcplist.selectedRow(i);
  8355. if(model.getvalue("/root/hidden/rcv/h_prcp/prcp["+ arr[i] +"]/prcp_choiordflag") == "-"){
  8356. copyNodeListType("/root/send/s_hold","/root/hidden/rcv/h_prcp/prcp["+ arr[i] +"]","after");
  8357. }
  8358. }
  8359. //선택진료 취소대장 호출(변경내역 저장)
  8360. //fSetChngSpec_call_popup(); //원복일때는 필요없다고 생각해서 일단 막음
  8361. if (submit("TXPAO00114")) {
  8362. model.setValue("/root/hidden/calcgubn","Y");
  8363. if (fCalculate('N') != false) {
  8364. btn_otptlist.dispatch("onclick");
  8365. }
  8366. }
  8367. }
  8368. //선택진료 취소대장 호출
  8369. function fSetChngSpec_call_popup() {
  8370. setGlobalVariable("g_caller_SMPMC06505","SMPAO00100","p");
  8371. modal("../../../pam/patinfomngtweb/xrw/SMPMC06505", "1","400", "400", "SMPMC06505", "", "");
  8372. setGlobalVariable("g_caller_SMPMC06505","","p");
  8373. }
  8374. // 외래진료비세부내역서 출력(SMPAO00300_외래수납조회.xrw)
  8375. // 외래수납에서는 외래수납조회화면의 각종 옵션들을 선택하게 할 수 없으므로, 기본값으로 설정되어있는 값으로만 처리
  8376. function fSpecBillPrint(cur_row) {
  8377. //ordtype : 외래영수증 / 외래중간금영수증 / 외래합산영수증 /외래진료비세부내역서
  8378. model.makeValue("/root/temp/receipt/ordtype" , "환자용외래진료비세부내역서" );
  8379. model.makeValue("/root/temp/receipt/pid" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_pid") );
  8380. model.makeValue("/root/temp/receipt/rcptdd" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_rcptdd") );
  8381. model.makeValue("/root/temp/receipt/rcptno" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_rcptno") );
  8382. model.makeValue("/root/temp/receipt/rcptseqno" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_rcptseqno") );
  8383. model.makeValue("/root/temp/receipt/orddd" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_orddd") );
  8384. model.makeValue("/root/temp/receipt/cretno" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_cretno") );
  8385. model.makeValue("/root/temp/receipt/orddeptcd" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_orddeptcd") );
  8386. model.makeValue("/root/temp/receipt/orddrid" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_orddrid") );
  8387. model.makeValue("/root/temp/receipt/instcd" , model.getValue("/root/main/baseinfo/opmilist/opmi["+ cur_row +"]/opmi_instcd") );
  8388. /*
  8389. * pay1-급여, pay2-비급, pay4-본인100, pay5-선택진료
  8390. */
  8391. var vpayflag = "-" + "','0" + "','2" + "','1" + "','5";
  8392. model.makeValue("/root/temp/receipt/calcpayflag" , vpayflag);
  8393. model.makeValue("/root/temp/receipt/specflag" , "1"); // 1:전체, 2:선택진료
  8394. model.makeValue("/root/temp/receipt/calcsum" , "Y"); // Y:수가별합산
  8395. model.makeValue("/root/temp/receipt/useflag" , "2"); // 1:보험회사, 2:기타
  8396. model.makeValue("/root/temp/receipt/mig_oscl2yn" , false); // 세부내역서가 oscl2읽음 여부
  8397. //영수증 팝업화면 호출
  8398. modal("SPPAO01900");
  8399. }
  8400. /**
  8401. * 선수납금 존재시 알림
  8402. * 2015/02/04 이정택
  8403. */
  8404. function fBogjinfoChk(){
  8405. var bogjamt = model.getValue("/root/main/baseinfo/bogjinfo/bogj/bogjamt"); //일반선수금
  8406. var hnamt = model.getValue("/root/main/baseinfo/bogjinfo/bogj/hnamt"); //가정간호선수금
  8407. if(parseInt(bogjamt)>0 || parseInt(hnamt) >0){
  8408. messageBox("선수금이 존재합니다.\r"+ "일반선수금:"+bogjamt+"원, " + "가정간호선수금:" + hnamt + "원", "I");
  8409. model.makeValue("/root/etc/union_msg" ,"일반선수금:"+bogjamt+"원, " + "가정간호선수금:" + hnamt + "원" + '\n' + model.getValue("/root/etc/union_msg"));
  8410. model.refresh();
  8411. return;
  8412. }
  8413. }
  8414. //감면 등록여부 체크
  8415. function fFmlyCheck(){
  8416. var chk = model.getValue("/root/hidden/item1/pidinfo/h_fmly/fmly/existyn")
  8417. if(chk=='N'){
  8418. messageBox("재직중인 직원입니다. 감면등록 부탁드립니다.", "I");
  8419. }
  8420. }
  8421. /**
  8422. * 미수코드의 기준자료를 읽어서 미수 금액을 설정
  8423. * 2015/06/15 이정택
  8424. * @return
  8425. */
  8426. function fCalc_Uncoamt(flag){
  8427. //debugger;
  8428. var outpayapprate="";
  8429. var outnopyapprate="";
  8430. var outspecapprate="";
  8431. var tmp_payownbamt="";
  8432. var tmp_totnopyownbamt="";
  8433. var tmp_specownbamt="";
  8434. var tmp_payownbamt_unco="";
  8435. var tmp_totnopyownbamt_unco="";
  8436. var tmp_specownbamt_unco="";
  8437. var tmp_rcptexptamt="";
  8438. var tmp_unco_total="";
  8439. var unco_total="";
  8440. var uncoamt="";
  8441. var uncoamt_total="";
  8442. var today = getCurrentDate();
  8443. /* 미수코드 존재시 미수율에 따라서 계정감면액이 틀려지므로 블럭킹 안한다.
  8444. * var today = getCurrentDate();
  8445. var click_orddd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd")
  8446. if(today!=click_orddd){
  8447. return;
  8448. }
  8449. */
  8450. var opmi_payownbamt=model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_payownbamt100"); // 본인 급여총액
  8451. var opmi_totnopyownbamt=model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_totnopyownbamt"); //비급여 본인부담금액
  8452. var opmi_specownbamt=model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_specownbamt"); // 선택 본인부담금액
  8453. var opmi_rcptexptamt=model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_rcptexptamt"); // 납부할금액
  8454. var opmi_uncoamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt"); // 미수금액
  8455. var disccd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_disccd"); // 감면코드
  8456. var uncocd = model.getValue("/root/main/outrgst/m_etc/uncocd");
  8457. var otpt_calcyn = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_calcyn");
  8458. var otpt_calcflag = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_calcflag");
  8459. var click_orddd = model.getValue("/root/main/outrgst/m_otpt/otpt/otpt_orddd");
  8460. var opmi_discamt = model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_discamt");
  8461. if(uncocd!="" && uncocd != null){
  8462. if(uncocd == "A43" || uncocd == "A44" || uncocd == "A45"){
  8463. var clinic_orddeptcd ="2242400000"; // 대구 장애인 구강진료센터
  8464. var orddeptcd_cnt = getNodesetCount("/root/hidden/rcv1/sum_otpt/otpt[otpt_orddeptcd!='"+ clinic_orddeptcd+ "']");
  8465. if(parseInt(orddeptcd_cnt)>0){
  8466. messageBox("해당 미수코드를 사용할 수 없는 진료과가 선택되었습니다.", "E");
  8467. model.makeValue("/root/main/outrgst/m_etc/uncocd", "");
  8468. cmb_uncocd.refresh();
  8469. ipt_uncocd.refresh();
  8470. return;
  8471. }
  8472. }
  8473. if(uncocd != "A43" && uncocd != "A44" && uncocd != "A45"){
  8474. return;
  8475. }
  8476. outpayapprate= model.getValue("/root/init/basecdlist/uncocd[cdid='"+uncocd+"']/outpayapprate"); // 외래미수율(급여)
  8477. outnopyapprate= model.getValue("/root/init/basecdlist/uncocd[cdid='"+uncocd+"']/outnopyapprate"); // 외래미수율(비급여)
  8478. outspecapprate= model.getValue("/root/init/basecdlist/uncocd[cdid='"+uncocd+"']/outspecapprate"); // 외래미수율(특진료)
  8479. /*
  8480. //본인 급여총액
  8481. tmp_payownbamt=opmi_payownbamt*(1-(outpayapprate/100));
  8482. tmp_payownbamt_unco=opmi_payownbamt*(outpayapprate/100);
  8483. //비급여 본인부담금액
  8484. tmp_totnopyownbamt=((Math.floor(opmi_totnopyownbamt/10))*10)*(1-(outnopyapprate/100));
  8485. tmp_totnopyownbamt_unco=((Math.floor(opmi_totnopyownbamt/10))*10)*(outnopyapprate/100);
  8486. //선택 본인부담금액
  8487. tmp_specownbamt=((Math.floor(opmi_specownbamt/10))*10)*(1-(outspecapprate/100));
  8488. tmp_specownbamt_unco=((Math.floor(opmi_specownbamt/10))*10)*(outspecapprate/100);
  8489. uncoamt=parseInt(Math.ceil(tmp_payownbamt_unco)) + parseInt(Math.ceil(tmp_totnopyownbamt_unco)) + parseInt(Math.ceil(tmp_specownbamt_unco));
  8490. /*
  8491. unco_total = Math.ceil((parseInt(tmp_unco_total)/10))*10; // up
  8492. unco_total = Math.floor((parseInt(tmp_unco_total)/10))*10; // down
  8493. // 10원미만 절상처리
  8494. unco_total = Math.ceil((parseInt(uncoamt)/10))*10;
  8495. */
  8496. //debugger;
  8497. /*
  8498. var uncoamt = fGetUncoAmt(outpayapprate, outnopyapprate, outnopyapprate, opmi_payownbamt, opmi_totnopyownbamt, opmi_specownbamt);
  8499. var unco_total = uncoamt[0];
  8500. */
  8501. if(model.getValue("/root/init/comncdlist/P6573list/P6573/cdid")=="Y"){
  8502. unco_total= opmi_uncoamt;
  8503. }else{
  8504. uncoamt = fGetUncoAmt(outpayapprate, outnopyapprate, outnopyapprate, opmi_payownbamt, opmi_totnopyownbamt, opmi_specownbamt);
  8505. unco_total = uncoamt[0];
  8506. }
  8507. if(parseInt(unco_total)>0){
  8508. if(!isNull(flag)){
  8509. if(today==click_orddd){
  8510. if(otpt_calcflag != "N"){
  8511. if(messageBox("해당 미수 코드로 미수 금액이 "+unco_total+"원 발생합니다.\n적용하시겠습니까?", "Q999")=="6"){
  8512. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", unco_total);
  8513. ipt_uncoamt.refresh();
  8514. ipt_uncoamt.dispatch("xforms-value-changed");
  8515. }else{
  8516. // if(disccd!="" && disccd!="-" && parseInt(unco_total)>0 && parseInt(opmi_discamt)>0){
  8517. // messageBox("재계산 후 수납 부탁드립니다.", "E");
  8518. // model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", 0);
  8519. // model.makeValue("/root/main/outrgst/m_etc/uncocd", "");
  8520. // cmb_uncocd.refresh();
  8521. // ipt_uncocd.refresh();
  8522. // ipt_uncoamt.refresh();
  8523. // btn_rcpt.disabled = true;
  8524. // return;
  8525. // }else{
  8526. messageBox("재계산 후 수납 부탁드립니다.", "E");
  8527. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", 0);
  8528. model.makeValue("/root/main/outrgst/m_etc/uncocd", "");
  8529. cmb_uncocd.refresh();
  8530. ipt_uncocd.refresh();
  8531. ipt_uncoamt.refresh();
  8532. btn_rcpt.disabled = true;
  8533. return;
  8534. //}
  8535. }
  8536. }
  8537. }else if(today>click_orddd){
  8538. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", unco_total);
  8539. ipt_uncoamt.refresh();
  8540. ipt_uncoamt.dispatch("xforms-value-changed");
  8541. }
  8542. }
  8543. }else if(parseInt(unco_total)==0){
  8544. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", unco_total);
  8545. ipt_uncoamt.refresh();
  8546. ipt_uncoamt.dispatch("xforms-value-changed");
  8547. }
  8548. }else{
  8549. model.makeValue("/root/main/outrgst/m_opmi/opmi/opmi_uncoamt", 0);
  8550. ipt_uncoamt.refresh();
  8551. ipt_uncoamt.dispatch("xforms-value-changed");
  8552. }
  8553. // 미수코드가 변경될시에 수가계산 다시 돌리도록 안내
  8554. if(isNull(flag)){
  8555. if(disccd!="" && disccd!="-" && parseInt(unco_total)>0 && parseInt(opmi_discamt)>0){
  8556. messageBox("재계산 후 수납 부탁드립니다.", "E");
  8557. btn_rcpt.disabled = true;
  8558. }
  8559. }
  8560. //model.refresh();
  8561. }
  8562. function fHndc_Suppamt_Chk(hndc_insukind, hndc_suppkind){
  8563. if(hndc_insukind=="11" && (hndc_suppkind=="89" || hndc_suppkind=="97")){ //틀니(89), 임플란트(97)
  8564. messageBox("해당 보조 유형으로는 장애인 대불금이 발생되지 않습니다.", "I");
  8565. model.makeValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn", "N");
  8566. rdo_handicaprbookpossnyn.refresh();
  8567. rdo_handicaprbookpossnyn.disabled=true;
  8568. }else if(hndc_insukind=="22" && (hndc_suppkind=="87" || hndc_suppkind=="95")){ //틀니(87), 임플란트(95)
  8569. messageBox("해당 보조 유형으로는 장애인 대불금이 발생되지 않습니다.", "I");
  8570. model.makeValue("/root/main/outrgst/m_otpt/otpt/otpt_handicaprbookpossnyn", "N");
  8571. rdo_handicaprbookpossnyn.refresh();
  8572. rdo_handicaprbookpossnyn.disabled=true;
  8573. }else{
  8574. rdo_handicaprbookpossnyn.refresh();
  8575. rdo_handicaprbookpossnyn.disabled=false;
  8576. }
  8577. }