PAM.xjs 244 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : PAM
  5. * Creator :
  6. * Make Date : 2014-11-25 --> 2016.08.06
  7. * Description : 외래등록작업을 하면서 kimdo3 변경
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2014-11-25 TF->XP
  12. * 2016-08-06 KIMDO3 외래등록작업중...
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. //=======================================================================================
  16. // Lib Include
  17. //---------------------------------------------------------------------------------------
  18. include "com_commonxp::comm_main.xjs";
  19. include 'emr_prcpmngtxp::MMO001.xjs';
  20. var arErrorCode = new HashArray(); // 이중으로 선언되면 어떻게 될까 ? 없을 수도 있는데, ....선언 안 할 수도 없고,....
  21. /**
  22. * @(#) PAM.js
  23. * 원무에서 공통으로 사용할 변수와 함수를 정의한다.
  24. * 수정이력
  25. * - 2007. 08. 08 / 최초작성자 / 최희경
  26. */
  27. /**
  28. * @desc : Global 변수선언
  29. * <pre>
  30. * 1. 보험유형
  31. * 2. 유형보조
  32. * </pre>
  33. * @---------------------------------------------------
  34. */
  35. //1.보험유형
  36. var gsInsu_BoHeom = "11"; //건강보험
  37. var gsInsu_BoHo1 = "21"; //의료급여1
  38. var gsInsu_BoHo2 = "22"; //의료급여2
  39. var gsInsu_HangYeo = "24"; //행여
  40. var gsInsu_JaboKind = "31"; //자보
  41. var gsInsu_SanJae = "41"; //산재
  42. var gsInsu_GongSang = "42"; //공상
  43. var gsInsu_IlBan = "51"; //일반
  44. var gsInsu_ForIn = "61"; //외국인
  45. var gsInsu_ImSang = "71"; //임상시험
  46. var gsInsu_Noin = "81"; //노인장기요양보험
  47. //2.유형보조
  48. var gsSupp_BASE = "00"; //정상
  49. var gsSupp_100 = "01"; //전액본인100%
  50. var gsSupp_INGONG = "02"; //인공신장투석
  51. var gsSupp_BOKMAK = "03"; //복막관류슐
  52. var gsSupp_TRANS = "04"; //장기이식
  53. var gsSupp_GAEDUGAESIM = "05"; //개두개심 10%
  54. var gsSupp_AM = "06"; //암 10%
  55. var gsSupp_SJTR = "07"; //보조 산정특례 20
  56. var gsSupp_LESSTHANSIXAGE = "08"; //입원6세미만
  57. var gsSupp_NATRBABY = "09"; //자연분만
  58. var gsSupp_HOMECARE = "10"; //가정간호
  59. var gsSupp_HOMECAREAM = "11"; //가정간호(등록암) 10%
  60. var gsSupp_SUTAK = "12"; //수탁
  61. var gsSupp_JSJA = "14"; //정신과정액
  62. //var gsSupp_HANDI = "71"; //장애인
  63. //var gsSupp_JABH = "B"; //전액보험자부담액(한도액)
  64. //var gsSupp_IMSANG = "T"; //임상연구
  65. //보험자기호 건강보험 디폴트 값
  66. var gsInsuCd_Default = "0015"; //건강보험 && !전액본인부담 일 경우, 디폴트 세팅
  67. //응급,분만실
  68. var gsOrddeptCd_ER = "2280000000" //응급의학과
  69. var gsWardCd_ER = "3050135000" //응급병동
  70. var gsWardCd_ER1 = "2280200000" //응급의료센터
  71. var gsWardCd_BABY = "2100300000" //분만실1
  72. var gsWardcd_DSC = "2360800000" //DSC병동
  73. var gsWardcd_CHEMO = "3120400000" //CHEMO병동
  74. var gsOrddeptcd_BABY = "2110000000" //소아청소년과 -- 소아청소년과 분과에 따른 사용금지:기존로직 에러방지를 위해 삭제는 하지 않으나 에러 방지 위해 유지 by 조중래 20140401
  75. //금액표시기 ocx
  76. var AmtDisplay = null;
  77. //수납VIP미수여부
  78. var VIPUNCOYN = 'N';
  79. //금액표시기 종류 체크
  80. var AmtDispKind = 'POPUP';
  81. // 추가이력 20100224 JHP SPPMC02500_환자조회 원무쪽과 원무이외의쪽 구분하는 구분 변수
  82. var PatRefPamFlag = "";
  83. /**
  84. * @desc : 주민번호 앞자리 체크
  85. * <pre>
  86. * 1. 주민번호 앞자리 길이 체크
  87. * 2. 숫자형태 체크
  88. * </pre>
  89. * @param : vRrgstno1 - 주민번호 앞자리, ctrlNm - 주민번호 앞자리 컨트롤이름
  90. * @return : true/false
  91. * @---------------------------------------------------
  92. */
  93. function fRrgstNo1Veri(vRrgstno1, ctrlNm){
  94. if (vRrgstno1 != null && vRrgstno1 != "" && vRrgstno1 != " " && vRrgstno1 != "-"){
  95. if (vRrgstno1.length != 6){
  96. sysf_messageBox("주민번호1은 6자리여야 합니다!","E999","");
  97. //model.setFocus(ctrlNm);
  98. ctrlNm.setFocus();
  99. ////model.refresh();
  100. return false;
  101. }
  102. if (vRrgstno1.isNumber() != true){
  103. sysf_messageBox("주민번호1은 숫자형태로 입력되어야 합니다!","E999","");
  104. ctrlNm.setFocus();
  105. ////model.refresh();
  106. return false;
  107. }
  108. }else{
  109. sysf_messageBox("주민번호1은 6자리여야 합니다!","E999","");
  110. ctrlNm.setFocus();
  111. ////model.refresh();
  112. return false;
  113. }
  114. }
  115. /**
  116. * @desc : 주민번호 뒷자리 체크
  117. * <pre>
  118. * 1. 주민번호 앞자리 길이
  119. * 2. 주민번호 뒷자리 길이
  120. * 3. 주민번호 앞자리 날짜형식 체크
  121. * 4. 생년월일 구하기
  122. * 5. 성별 구하기
  123. * 6. 나이 구하기
  124. * </pre>
  125. * @param : vRrgstno1 - 주민번호 앞자리, vRrgstno2 - 주민번호 뒷자리, ctrlNm1- 주민번호 앞자리 컨트롤이름, ctrlNm2- 주민번호 뒷자리 컨트롤이름
  126. * @return : true/false , 생년월일(8자리), 성별, 나이
  127. * @---------------------------------------------------
  128. */
  129. function fRrgstNo2Veri(vRrgstno1, vRrgstno2, ctrlNm1, ctrlNm2, rBrthdd, rSex, rAge){
  130. if(vRrgstno1.length != 6){
  131. sysf_messageBox("환자주민번호1은 6자리입니다!","E999","");
  132. ctrlNm1.setFocus();
  133. return false;
  134. }
  135. if(vRrgstno2.length != 7){
  136. sysf_messageBox("환자주민번호2은 7자리입니다!","E999","");
  137. ctrlNm2.setFocus();
  138. return false;
  139. }
  140. /*
  141. 9: 1800 ~ 1899년에 태어난 남성
  142. 0: 1800 ~ 1899년에 태어난 여성
  143. 1: 1900 ~ 1999년에 태어난 남성
  144. 2: 1900 ~ 1999년에 태어난 여성
  145. 3: 2000 ~ 2099년에 태어난 남성
  146. 4: 2000 ~ 2099년에 태어난 여성
  147. 5: 1900 ~ 1999년에 태어난 외국인 남성
  148. 6: 1900 ~ 1999년에 태어난 외국인 여성
  149. 7: 2000 ~ 2099년에 태어난 외국인 남성
  150. 8: 2000 ~ 2099년에 태어난 외국인 여성
  151. */
  152. var gubn = vRrgstno2.substr(0, 1);
  153. switch(gubn){
  154. case '0' :
  155. vBrthdd = '18'.concat(vRrgstno1);
  156. break;
  157. case '9' :
  158. vBrthdd = '18'.concat(vRrgstno1);
  159. break;
  160. case '1' :
  161. vBrthdd = '19'.concat(vRrgstno1);
  162. break;
  163. case '2' :
  164. vBrthdd = '19'.concat(vRrgstno1);
  165. break;
  166. case '3' :
  167. vBrthdd = '20'.concat(vRrgstno1);
  168. break;
  169. case '4' :
  170. vBrthdd = '20'.concat(vRrgstno1);
  171. break;
  172. case '5' :
  173. vBrthdd = '19'.concat(vRrgstno1);
  174. break;
  175. case '6' :
  176. vBrthdd = '19'.concat(vRrgstno1);
  177. break;
  178. case '7' :
  179. vBrthdd = '20'.concat(vRrgstno1);
  180. break;
  181. case '8' :
  182. vBrthdd = '20'.concat(vRrgstno1);
  183. break;
  184. default :
  185. vBrthdd = '19'.concat(vRrgstno1);
  186. break;
  187. }
  188. if (utlf_isValidDateTime(vBrthdd, "YYYYMMDD") == false){
  189. sysf_messageBox("주민번호 앞6자리 형식오류입니다. 올바른 일자형태로 입력하십시요!","E999","");
  190. ////model.refresh();
  191. ctrlNm1.setFocus();
  192. return false;
  193. }
  194. //성별
  195. //성별 utlf_getGender(에서 utlf_getSex로 변경되었고, 인자로 '13자리 주민번호전체가 넘겨짐'
  196. rSex = utlf_getSex(vRrgstno1 + vRrgstno2);
  197. //나이
  198. rAge = utlf_getFullAge(vBrthdd);
  199. rBrthdd = vBrthdd;
  200. var ptbs_rrgstno = vRrgstno1.concat(vRrgstno2);
  201. if(lf_isResidentNo(ptbs_rrgstno) == false){
  202. sysf_messageBox("유효하지 않은 주민번호입니다!", "E999", "");
  203. return false;
  204. }
  205. }
  206. /**
  207. * @desc : 주민번호 뒷자리 체크
  208. * <pre>
  209. * 1. 주민번호 앞자리 길이
  210. * 2. 주민번호 뒷자리 길이
  211. * 3. 주민번호 앞자리 날짜형식 체크
  212. * 4. 생년월일 구하기
  213. * 5. 성별 구하기
  214. * 6. 나이 구하기
  215. * </pre>
  216. * @param : vRrgstno1 - 주민번호 앞자리, vRrgstno2 - 주민번호 뒷자리, ctrlNm1- 주민번호 앞자리 컨트롤이름, ctrlNm2- 주민번호 뒷자리 컨트롤이름
  217. * @return : true/false , 생년월일(8자리), 성별, 나이
  218. * @---------------------------------------------------
  219. */
  220. function fRrgstNo3Veri(vRrgstno1, vRrgstno2, ctrlNm1, ctrlNm2, rBrthdd, rSex, rAge) {
  221. if (vRrgstno1.length != 6) {
  222. sysf_messageBox("환자주민번호1은 6자리입니다!", "E999", "");
  223. ctrlNm1.setFocus();
  224. return false;
  225. }
  226. if (vRrgstno2.length != 7) {
  227. sysf_messageBox("환자주민번호2은 7자리입니다!", "E999", "");
  228. ctrlNm2.setFocus();
  229. return false;
  230. }
  231. var gubn = vRrgstno2.substr(0,1);
  232. switch(gubn) {
  233. case "1" :
  234. case "2" :
  235. case "5" :
  236. case "6" :
  237. vBrthdd = "19".concat(vRrgstno1);
  238. break;
  239. case "3" :
  240. case "4" :
  241. case "7" :
  242. case "8" :
  243. vBrthdd = "20".concat(vRrgstno1);
  244. break;
  245. case "9" :
  246. case "0" :
  247. vBrthdd = "18".concat(vRrgstno1);
  248. break;
  249. default :
  250. vBrthdd = "19".concat(vRrgstno1);
  251. break;
  252. }
  253. if (utlf_isValidDateTime(vBrthdd, "YYYYMMDD") == false) {
  254. var result1 = sysf_messageBox("주민번호 앞6자리 형식오류입니다. 계속 진행하시겠습니까? (Y/N)","Q999","");
  255. if (result1 == "6") {
  256. return true;
  257. } else {
  258. ctrlNm1.setFocus();
  259. return false;
  260. }
  261. }
  262. //성별 utlf_getGender(에서 utlf_getSex로 변경되었고, 인자로 '13자리 주민번호전체가 넘겨짐'
  263. rSex = utlf_getSex(vRrgstno1 + vRrgstno2);
  264. //나이
  265. rAge = utlf_getFullAge(vBrthdd);
  266. rBrthdd = vBrthdd;
  267. var ptbs_rrgstno = vRrgstno1.concat(vRrgstno2);
  268. if (lf_isResidentNo(ptbs_rrgstno) == false) {
  269. var result = sysf_messageBox("유효하지 않은 주민번호입니다! 계속 진행하시겠습니까?.(Y/N)", "Q999", "");
  270. if (result == "6") {
  271. return true;
  272. } else {
  273. return false;
  274. }
  275. }
  276. }
  277. /**2010-01-18 김주희
  278. * @desc : 생년월일 날짜형식 체크
  279. * @param : vBrthdd - 생년월일, ctrlNm- 생년월일 컨트롤이름
  280. * @return : true/false
  281. */
  282. function fBrthddVeri(vBrthdd, ctrlNm){
  283. // 생년월일 형식 검증
  284. if (utlf_isValidDateTime(vBrthdd, "YYYYMMDD") == false){
  285. sysf_messageBox("생년월일 형식오류입니다. 올바른 일자형태로 입력하십시요!","E999","");
  286. //model.refresh();
  287. return false;
  288. }
  289. // 생년월일 미래일자 검증
  290. if (vBrthdd > utlf_getCurrentDate()) {
  291. sysf_messageBox("생년월일은 미래일자로 입력할 수 없습니다!","E999","");
  292. //model.refresh();
  293. return false;
  294. }
  295. return true;
  296. }
  297. /**
  298. * @desc : 보험정보 체크
  299. * <pre>
  300. * 1. 필수항목 입력 체크
  301. *
  302. * === 체크사항 ===
  303. * 추후, 진료의뢰서 제출구분 체크시, 파라미터 추가필요 2007.08.11
  304. * 보험유형 선택시, 피보험자와의 관계 [본인]으로 자동세팅 (건강보험은 제외시킬수 있음)
  305. * 보험유형과 보조유형을 선택 시, 환자의 보험정보 조회 - 보조유형이 전액본인부담이면, 보험정보 조회할 필요없음.(보험정보 저장하면 안됨)
  306. * </pre>
  307. * @param : vArrayInsu (vInsuKind, vSuppKind, vSuppkindResn, vInsuCd, vInsuNo, vInsdNm, vInsdRela, vInsdRrgstno1, vInsdRrgstno2, vFromdd, vTodd)
  308. * vArrayCtrl (vArrayCtrl[0],.....)
  309. * @return : true/false
  310. * 항목 체크를 통해 재세팅된 값 return
  311. * @---------------------------------------------------
  312. */
  313. function fInsuInfoVeri(vArrayInsu, vArrayCtrl){
  314. /*
  315. vArrayInsu[0] : InsuKind 보험유형
  316. vArrayInsu[1] : SuppKind 보조유형
  317. vArrayInsu[2] : SuppkindResn 보조유형사유
  318. vArrayInsu[3] : InsuCd 보험자기호
  319. vArrayInsu[4] : InsuNo 보험증번호
  320. vArrayInsu[5] : InsdNm 피보험자이름
  321. vArrayInsu[6] : InsdRela 피보험자와의 관계
  322. vArrayInsu[7] : InsdRrgstno1 피보험자주민번호1
  323. vArrayInsu[8] : InsdRrgstno2 피보험자주민번호2
  324. vArrayInsu[9] : Fromdd 자격취득일자
  325. vArrayInsu[10]: Todd 종료일자
  326. vArrayCtrl <= vArrayInsu 순서대로 컨트롤명
  327. */
  328. // 1. 보험정보 필수값 체크 (보험유형, 보조유형, 보조유형사유)
  329. if (utlf_isNull(vArrayInsu[0]) || vArrayInsu[0] == " " || vArrayInsu[0] == "-") {
  330. sysf_messageBox("확인! 보험유형을 입력해 주십시요!","E999","");
  331. vArrayCtrl[0].setFocus();
  332. return false;
  333. }
  334. if (utlf_isNull(vArrayInsu[1]) || vArrayInsu[1] == " " || vArrayInsu[1] == "-") {
  335. sysf_messageBox("확인! 보조유형을 입력해 주십시요!","E999","");
  336. vArrayCtrl[1].setFocus();
  337. return false;
  338. }
  339. // 2.보조유형 사유는 null이면 '-' 로 세팅
  340. if (utlf_isNull(vArrayInsu[2]) || vArrayInsu[2] == " " ) {
  341. vArrayInsu[2] = "-";
  342. }
  343. // 3.시작일자 체크
  344. if (utlf_isNull(vArrayInsu[9]) || vArrayInsu[9] == " " || vArrayInsu[9] == "-") {
  345. sysf_messageBox("확인! 시작일자를 입력해 주십시요!","E999","");
  346. vArrayCtrl[9].setFocus();
  347. return false;
  348. }
  349. // 4.종료일자 세팅
  350. if (utlf_isNull(vArrayInsu[10]) || vArrayInsu[10] == " " || vArrayInsu[10] == "-") {
  351. vArrayInsu[10] = "99991231";
  352. }
  353. // 5.건강보험 체크
  354. // gsInsu_BoHeom = 11 건강보험
  355. // gsSupp_100 = 01 전액본인100%
  356. if (vArrayInsu[0] == gsInsu_BoHeom && vArrayInsu[1] != gsSupp_100) {
  357. // 보험자기호 체크
  358. if (utlf_isNull(vArrayInsu[3]) || vArrayInsu[3] == " " || vArrayInsu[3] == "-") {
  359. vArrayInsu[3] = "0015";
  360. }
  361. // 보험증번호 체크
  362. if (utlf_isNull(vArrayInsu[4]) || vArrayInsu[4] == " " || vArrayInsu[4] == "-") {
  363. sysf_messageBox("확인! 보험증번호를 입력해 주십시요!","E999","");
  364. vArrayCtrl[4].setFocus();
  365. return false;
  366. }
  367. // 피보험자와의 관계
  368. if (utlf_isNull(vArrayInsu[6]) || vArrayInsu[6] == " " || vArrayInsu[6] == "-") {
  369. sysf_messageBox("확인! 피보험자와의 관계를 입력해 주십시요!","E999","");
  370. vArrayCtrl[6].setFocus();
  371. return false;
  372. }
  373. }
  374. // 6.의료급여 체크
  375. // gsInsu_BoHo1 = 21
  376. // gsInsu_BoHo2 = 22
  377. if (vArrayInsu[0] == gsInsu_BoHo1 || vArrayInsu[0] == gsInsu_BoHo2) {
  378. // 보험자기호 체크
  379. if (utlf_isNull(vArrayInsu[3]) || vArrayInsu[3] == " " || vArrayInsu[3] == "-") {
  380. sysf_messageBox("확인! 보험자기호를 입력해 주십시요!","E999","");
  381. vArrayCtrl[3].setFocus();
  382. return false;
  383. }
  384. }
  385. }
  386. /**
  387. * @(#) PAM.js
  388. * 이동식
  389. * - 2007. 4. 19
  390. * 진료과코드와 진료의ID를 가져온다.
  391. */
  392. function makePamResultRef(){ model.makeNode(pamResultRef); }
  393. function removePamResultRef(){ model.removeNode(pamResultRef); }
  394. /*
  395. * fromdd, todd 기준없이 전체 조회
  396. * - 20140401 pamGetDeptCDDrIDList 사용하는 화면이 많아서 파라미터 수정 불가 pamGetDeptCDDrIDList Copy
  397. */
  398. function pamGetDeptCDDrIDListAll(result_ref, ioflag){
  399. // submit("TRPAM00107");
  400. if(!utlf_isNull(ioflag)) {
  401. dsf_createDsRow("ds_tmp_req", [
  402. {col:"ioflag", type:"STRING", size:256, val: ioflag}
  403. ]);
  404. }
  405. else {
  406. dsf_createDs("ds_tmp_req", [
  407. {col:"ioflag", type:"STRING", size:256}
  408. ]);
  409. }
  410. var oParam = {};
  411. oParam.id = "TRPAM00107";
  412. oParam.service = "pamcomnapp.PamComn";
  413. oParam.method = "reqGetDeptCDDrIDAll";
  414. oParam.inds = "req=ds_tmp_req";
  415. oParam.outds = "ds_hidden_tmp_orddeptcd=orddeptcd ds_hidden_tmp_orddrid=orddrid ds_hidden_tmp_centcd=centcd ds_hidden_tmp_subdeptcd=subdeptcd";
  416. oParam.async = false;
  417. oParam.callback = "cf_TRPAM00107";
  418. tranf_submit(oParam);
  419. if(arErrorCode.pop("TRPAM00107") > -1 ) {
  420. // 기존에는 result_ref에 값을 넘겨 주는 형식이었는데,
  421. // 이와는 상관없이 ds_init_XXX dataset에다 넘겨주는 형식으로 바꿈.
  422. // 2016.8.6 kimdo3
  423. ds_init_orddeptcdlist.clearData();
  424. ds_init_orddridlist.clearData();
  425. ds_init_centcdlist.clearData();
  426. ds_init_subdeptcdlist.clearData();
  427. ds_init_orddeptcdlist.copyData(ds_hidden_tmp_orddeptcd);
  428. ds_init_orddridlist.copyData(ds_hidden_tmp_orddrid);
  429. ds_init_centcdlist.copyData(ds_hidden_tmp_centcd);
  430. ds_init_subdeptcdlist.copyData(ds_hidden_tmp_subdeptcd);
  431. ds_hidden_tmp_orddeptcd.clear();
  432. ds_hidden_tmp_orddrid.clear();
  433. ds_hidden_tmp_centcd.clear();
  434. ds_hidden_tmp_subdeptcd.clear();
  435. }
  436. }
  437. function cf_TRPAM00107(sSvcId, nErrorCode, sErrorMsg) {
  438. arErrorCode.push(sSvcId, nErrorCode);
  439. }
  440. /**
  441. * @(#) PAM.js
  442. * 이동식
  443. * - 2007. 4. 19 / 진료과 / 진료의ID 조회
  444. //var pamResultRef = "/root/hidden/tmp";
  445. function makePamResultRef(){ model.makeNode(pamResultRef); }
  446. function removePamResultRef(){ model.removeNode(pamResultRef); }
  447. function pamGetDeptCDDrIDList(result_ref){
  448. //makePamResultRef();
  449. submit("TRPAM00101"); //getParameterPath(), zbcResultRef););
  450. if( result_ref == "" || result_ref == null ){
  451. model.makeNode("root/init/orddeptcd");
  452. model.makeNode("root/init/orddrid");
  453. model.makeNode("root/hidden/tmp/orddeptcd");
  454. model.makeNode("root/hidden/tmp/orddrid");
  455. model.copyNode("root/init/orddeptcd", "root/hidden/tmp/orddeptcd");
  456. model.copyNode("root/init/orddrid", "root/hidden/tmp/orddrid");
  457. model.removeNodeset("root/init/orddeptcd");
  458. model.removeNodeset("root/init/orddrid");
  459. model.removeNodeset("root/hidden/tmp/orddeptcd");
  460. model.removeNodeset("root/hidden/tmp/orddrid");
  461. }else{
  462. model.makeNode("root/hidden/tmp/orddeptcd");
  463. model.makeNode("root/hidden/tmp/orddrid");
  464. model.copyNode(result_ref, "root/hidden/tmp");
  465. model.removeNodeset("root/hidden/tmp/orddeptcd");
  466. model.removeNodeset("root/hidden/tmp/orddrid");
  467. }
  468. ////model.refresh();
  469. }
  470. //??? ??? ???? ??? ????.
  471. //??? TRUE && ??? FALSE
  472. function pamCompareNodes(originalNode, copyNode){
  473. var ins = document.models( 0 ).instances( 0 );
  474. // 1. ?????? ???? ??
  475. var original = ins.selectSingleNode(originalNode).xml;
  476. var copy = ins.selectSingleNode(copyNode).xml;
  477. //??? ???? ??? ????? ??? ?? ?? FALSE? ????.
  478. if(original == null || copy == null){
  479. return false;
  480. }else if (original == copy){
  481. return true;
  482. }else{
  483. return false;
  484. }
  485. }
  486. */
  487. /**
  488. * @desc : 카드승인,취소/현금영수증 승인,취소/수표조회( 파라미터 변경으로 신규생성 )
  489. * <pre>
  490. * 1. 거래구분 (11:신용카드승인요청, 12:신용카드승인응답,
  491. 21:신용카드취소요청, 22:신용카드취소응답,
  492. 31:수표조회요청, 32:수표조회응답,
  493. 41:현금영수증승인요청,42:현금영수증승인응답,
  494. 51:현금영수증취소요청,52:현금영수증취소응답)
  495. * </pre>
  496. * @param
  497. * data1 : vangb
  498. * data2 : ordergb
  499. * data3 : mdate
  500. * data4 : pano
  501. * data5 : iogb
  502. * data6 : deptcode
  503. * data7 : diagdate
  504. * data8 : clientid
  505. * data9 : entrymode
  506. * data10 : track2data
  507. * data11 : cardnumber
  508. * data12 : cardperiod
  509. * data13 : carddivide
  510. * data14 : netamt
  511. * data15 : oldappdate
  512. * data16 : oldapptime
  513. * data17 : oldappno
  514. * data18 : pregdmndyn
  515. * data19 : elctsignkey
  516. * data20 : elctsigncnts
  517. * data21 : vanflag
  518. *
  519. * @return : true/false , 응답전문
  520. * @---------------------------------------------------
  521. */
  522. function fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  523. data11, data12, data13, data14, data15, data16, data17) {
  524. fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  525. data11, data12, data13, data14, data15, data16, data17, '-')
  526. }
  527. /**
  528. * @desc : 카드승인,취소/현금영수증 승인,취소/수표조회( 파라미터 변경으로 신규생성 )
  529. * <pre>
  530. * 1. 거래구분 (11:신용카드승인요청, 12:신용카드승인응답,
  531. 21:신용카드취소요청, 22:신용카드취소응답,
  532. 31:수표조회요청, 32:수표조회응답,
  533. 41:현금영수증승인요청,42:현금영수증승인응답,
  534. 51:현금영수증취소요청,52:현금영수증취소응답)
  535. * </pre>
  536. * @param : orderGubn - 거래구분
  537. * @return : true/false , 응답전문
  538. * @---------------------------------------------------
  539. */
  540. function fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  541. data11, data12, data13, data14, data15, data16, data17, data18) {
  542. fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  543. data11, data12, data13, data14, data15, data16, data17, data18, '-', '-')
  544. }
  545. /**
  546. * @desc : 카드승인,취소/현금영수증 승인,취소/수표조회( 파라미터 변경으로 신규생성 )
  547. * <pre>
  548. * 1. 거래구분 (11:신용카드승인요청, 12:신용카드승인응답,
  549. 21:신용카드취소요청, 22:신용카드취소응답,
  550. 31:수표조회요청, 32:수표조회응답,
  551. 41:현금영수증승인요청,42:현금영수증승인응답,
  552. 51:현금영수증취소요청,52:현금영수증취소응답)
  553. * </pre>
  554. * @param : orderGubn - 거래구분
  555. * @return : true/false , 응답전문
  556. * @---------------------------------------------------
  557. */
  558. function fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  559. data11, data12, data13, data14, data15, data16, data17, data18, data19, data20) {
  560. fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  561. data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, '-')
  562. }
  563. /*
  564. 거래일련번호 추가 관련 생성
  565. */
  566. function fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  567. data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21) {
  568. fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  569. data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21, '-')
  570. }
  571. /*
  572. 원승인 단말기 번호 추가 관련
  573. */
  574. function fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  575. data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21, data22) {
  576. fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  577. data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21, data22, '-')
  578. }
  579. /**
  580. * @desc : 카드승인,취소/현금영수증 승인,취소/수표조회
  581. * <pre>
  582. * 1. 거래구분 (11:신용카드승인요청, 12:신용카드승인응답,
  583. 21:신용카드취소요청, 22:신용카드취소응답,
  584. 31:수표조회요청, 32:수표조회응답,
  585. 41:현금영수증승인요청,42:현금영수증승인응답,
  586. 51:현금영수증취소요청,52:현금영수증취소응답)
  587. * </pre>
  588. * @param : orderGubn - 거래구분
  589. * @return : true/false , 응답전문
  590. * @---------------------------------------------------
  591. */
  592. function fAppCardVanData(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10,
  593. data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21, data22, data23) {
  594. if(data2 == "" || data2 == null) {
  595. sysf_messageBox("거래구분 Data가 없습니다..!","E999","");
  596. return false;
  597. }
  598. if (data21 == "" || data21 == null || data21 == "-") {
  599. sysf_messageBox("VAN구분 Data가 없습니다..!","E999","");
  600. return false;
  601. }
  602. // 비대면결제 승인 및 취소를 위한 처리구분 변경
  603. if (data2 == "21" && data9 == "E") {
  604. data2 = "U2";
  605. } else if (data2 == "11" && data9 == "E") {
  606. data2 = "U1";
  607. }
  608. //IC 결제를 위하여 DS 설정 부분을 위로 올림(2018/05/14 이정택)
  609. dsf_createDsRow("ds_send_card", [
  610. {col:"vangb" , type:"STRING", size:256, val: data1},
  611. {col:"ordergb" , type:"STRING", size:256, val: data2},
  612. {col:"mdate" , type:"STRING", size:256, val: data3},
  613. {col:"pano" , type:"STRING", size:256, val: data4},
  614. {col:"iogb" , type:"STRING", size:256, val: data5},
  615. {col:"deptcode" , type:"STRING", size:256, val: data6},
  616. {col:"diagdate" , type:"STRING", size:256, val: data7},
  617. {col:"clientid" , type:"STRING", size:256, val: data8},
  618. {col:"entrymode" , type:"STRING", size:256, val: data9},
  619. {col:"track2data" , type:"STRING", size:256, val: data10},
  620. {col:"cardnumber" , type:"STRING", size:256, val: data11},
  621. {col:"cardperiod" , type:"STRING", size:256, val: data12},
  622. {col:"carddivide" , type:"STRING", size:256, val: data13},
  623. {col:"netamt" , type:"STRING", size:256, val: data14},
  624. {col:"oldappdate" , type:"STRING", size:256, val: data15},
  625. {col:"oldapptime" , type:"STRING", size:256, val: data16},
  626. {col:"oldappno" , type:"STRING", size:256, val: data17},
  627. {col:"pregdmndyn" , type:"STRING", size:256, val: data18},
  628. {col:"elctsignkey" , type:"STRING", size:256, val: data19},
  629. {col:"elctsigncnts" , type:"STRING", size:256, val: data20},
  630. {col:"vanflag" , type:"STRING", size:256, val: data21},
  631. {col:"aprv_ordergb" , type:"STRING", size:256, val: ''},
  632. {col:"aprv_appdate" , type:"STRING", size:256, val: ''},
  633. {col:"aprv_apptime" , type:"STRING", size:256, val: ''},
  634. {col:"aprv_appno" , type:"STRING", size:256, val: ''},
  635. {col:"aprv_cardcmpycd" , type:"STRING", size:256, val: ''},
  636. {col:"aprv_trmnno" , type:"STRING", size:256, val: ''},
  637. {col:"aprv_cardtype" , type:"STRING", size:256, val: ''},
  638. {col:"aprv_replystat" , type:"STRING", size:256, val: ''},
  639. {col:"aprv_aprvunino" , type:"STRING", size:256, val: ''},
  640. {col:"aprv_cardnumber" , type:"STRING", size:256, val: ''},
  641. {col:"aprv_replymsg" , type:"STRING", size:256, val: ''},
  642. {col:"aprv_vangb" , type:"STRING", size:256, val: ''}
  643. ]);
  644. // KOCES_IC거래의 경우
  645. /*
  646. if (data21 == "KOCES_IC") {
  647. // ICPos거래 (ordergb, pano, iogb, carddivide, netamt, appno, appdate, entrymode, indInstFlag, qualCnfmNo)
  648. if (fReqICVanAprv(data2, data4, data5, data13, data14, data17, data15, data9, data13, data11)) {
  649. // 카드정보 처리는 신용카드 거래의 경우에만 처리
  650. if (data2 == "11" || data2 == "21") {
  651. // 정상적으로 처리된 경우 카드번호 + 서명이미지 설정
  652. data19 = ds_send_card.getColumn(0, "aprv_elctsignkey");
  653. data20 = ds_send_card.getColumn(0, "aprv_elctsigncnts"); //model.getValue("/root/send/card/
  654. // 신용카드정보 역전달(수납화면)을 위한 카드정보 설정
  655. if (data9 == "S") {
  656. data11 = ds_send_card.getColumn(0, "aprv_cardnumber");
  657. dsf_makeValue(ds_main_card2, "card_cardno", "string", data11);
  658. }
  659. // 신용카드 유효기간 마스킹처리
  660. if (data2 == "11") {
  661. data12 = "****";
  662. }
  663. }
  664. // 현금영수증 카드정보 처리는 현금영수증 경우에만 처리
  665. if ((data2 == "41" || data2 == "51")) {
  666. // 현금영수증 카드정보 역전달(수납화면)을 위한 카드정보 설정
  667. if (data9 == "S") {
  668. data11 = ds_send_card.getColumn(0, "aprv_cardnumber");
  669. dsf_makeValue(ds_main_cash2, "cash_qualcnfmno", "string", data11);
  670. }
  671. }
  672. // ICPos 거래 실패한 경우 결과값 9999 설정
  673. } else {
  674. dsf_makeValue(ds_tmp_appvanif, "replystat", "string", "9999")
  675. return false;
  676. }
  677. }
  678. */
  679. //IC거래의 경우
  680. if (data21 == "KOCES_IC") { // 본원/칠곡/치과에서 사용하는 밴사 명칭을 KOCES_IC로 통일함
  681. //trace("pano2" pano);
  682. /*
  683. // data1 vangb van사구분(01:KSNET, 02:KICC, 03:KOCES, 04:DAOU, 05:NICE, 06:KIS, 07:SMATRO, 08:FD, 09:KOVAN, 10:JNET)(PAM.PMCMCODE.CDGRUPID:0032, CDID:200, REMARK에서 관리)
  684. // data2 ordergb 거래구분
  685. // data3 mdate 회계일자
  686. // data4 pano 등록번호
  687. // data5 iogb 입외구분
  688. // data6 deptcode 진료과코드
  689. // data7 diagdate 진료일자
  690. // data8 clientid 수납자
  691. // data9 entrymode 입력구분
  692. // data10 track2data 트랙data
  693. // data11 cardnumber 카드번호
  694. // data12 cardperiod 유효기간
  695. // data13 carddivide 할부개월수
  696. // data14 netamt 금액
  697. // data15 oldappdate 원거래승인일자(취소시)
  698. // data16 oldapptime 원거래승인시간(취소시)
  699. // data17 oldappno 원거래승인번호(취소시)
  700. // data18 gPregDmndYN 산전진료비여부
  701. // data19 카드 서명
  702. // data20 카드 서명
  703. // data21 VAN구분
  704. // data22 aprvunino 거래일련번호
  705. // data23 trmnno 원승인단말기번호
  706. */
  707. // ICPos거래 (ordergb, pano, iogb, carddivide, netamt, appno, appdate, indInstFlag, qualCnfmNo, vangb, elctsignkey, aprvunino, diagdate, cardperiod, trmnno, deptcode, clientid)
  708. if (fReqICAprv(data2, data4, data5, data13, data14, data17, data15, data13, data11, data1, data19, data22, data7, data12, data23, data6, data8)) {
  709. if (data2 == "11" || data2 == "21" || data2 == "U1" || data2 == "U2") { //신용카드 승인/취소, 비대면 승인/취소의 경우
  710. // 비대면 승인 / 취소 이외의 경우
  711. if (data2 == "11" || data2 == "21") {
  712. dsf_makeValue(ds_main_card2, "card_cardno", "string", ds_send_card.getColumn(0, "aprv_cardnumber")); // pam.pamhcard에 insert 하기 위해서 필요
  713. dsf_makeValue(ds_main_card2, "card_valiterm", "string", '****'); // pam.pamhcard에 유효기간을 마스킹처리
  714. }
  715. ds_send_card.setColumn(0, "cardnumber", ds_send_card.getColumn(0, "aprv_cardnumber"));
  716. ds_send_card.setColumn(0, "vangb", ds_send_card.getColumn(0, "aprv_vangb")); // 실제 승인을 한 밴코드(OCX에서 리턴해줌)
  717. // 신용카드 유효기간 마스킹처리
  718. if (data2 == "11" || data2 == "U1") {
  719. ds_send_card.setColumn(0, "cardperiod", '****');
  720. }
  721. }else if (data2 == "41" || data2 == "51") { //현금영수증 승인/취소의 경우
  722. dsf_makeValue(ds_main_cash2, "cash_qualcnfmno", "string", ds_send_card.getColumn(0, "aprv_cardnumber")); // pam.pachcash에 insert 하기 위해서 필요
  723. ds_send_card.setColumn(0, "cardnumber", ds_send_card.getColumn(0, "aprv_cardnumber"));
  724. ds_send_card.setColumn(0, "vangb", ds_send_card.getColumn(0, "aprv_vangb")); // 실제 승인을 한 밴코드(OCX에서 리턴해줌)
  725. }else if (data2 == "31" || data2 == "U5" || data2 == "U4") { // 수표조회 / 비대면등록 / 비대면취소의 경우 OCX 통해서 조회후에 리턴처리
  726. dsf_makeValue(ds_tmp_appvanif, "replystat", "string", "0000")
  727. return true;
  728. }
  729. // ICPos 거래 실패한 경우 결과값 9999 설정
  730. } else {
  731. dsf_makeValue(ds_tmp_appvanif, "replystat", "string", "9999")
  732. return false;
  733. }
  734. }
  735. //IC 결제를 위하여 DS 설정 부분을 위로 올림(2018/05/14 이정택)
  736. /*
  737. dsf_createDsRow("ds_send_card", [
  738. {col:"vangb" , type:"STRING", size:256, val: data1},
  739. {col:"ordergb" , type:"STRING", size:256, val: data2},
  740. {col:"mdate" , type:"STRING", size:256, val: data3},
  741. {col:"pano" , type:"STRING", size:256, val: data4},
  742. {col:"iogb" , type:"STRING", size:256, val: data5},
  743. {col:"deptcode" , type:"STRING", size:256, val: data6},
  744. {col:"diagdate" , type:"STRING", size:256, val: data7},
  745. {col:"clientid" , type:"STRING", size:256, val: data8},
  746. {col:"entrymode" , type:"STRING", size:256, val: data9},
  747. {col:"track2data" , type:"STRING", size:256, val: data10},
  748. {col:"cardnumber" , type:"STRING", size:256, val: data11},
  749. {col:"cardperiod" , type:"STRING", size:256, val: data12},
  750. {col:"carddivide" , type:"STRING", size:256, val: data13},
  751. {col:"netamt" , type:"STRING", size:256, val: data14},
  752. {col:"oldappdate" , type:"STRING", size:256, val: data15},
  753. {col:"oldapptime" , type:"STRING", size:256, val: data16},
  754. {col:"oldappno" , type:"STRING", size:256, val: data17},
  755. {col:"pregdmndyn" , type:"STRING", size:256, val: data18},
  756. {col:"elctsignkey" , type:"STRING", size:256, val: data19},
  757. {col:"elctsigncnts", type:"STRING", size:256, val: data20},
  758. {col:"vanflag" , type:"STRING", size:256, val: data21},
  759. {col:"aprv_ordergb" , type:"STRING", size:256, val: ''},
  760. {col:"aprv_appdate" , type:"STRING", size:256, val: ''},
  761. {col:"aprv_apptime" , type:"STRING", size:256, val: ''},
  762. {col:"aprv_appno" , type:"STRING", size:256, val: ''},
  763. {col:"aprv_cardcmpycd" , type:"STRING", size:256, val: ''},
  764. {col:"aprv_trmnno" , type:"STRING", size:256, val: ''},
  765. {col:"aprv_cardtype" , type:"STRING", size:256, val: ''},
  766. {col:"aprv_replystat" , type:"STRING", size:256, val: ''}
  767. {col:"aprv_aprvunino" , type:"STRING", size:256, val: ''}
  768. ]);
  769. */
  770. //ds_tmp_h_passyn.clearData();
  771. ds_tmp_appvanif.clearData();
  772. //if(submit("TXPAC00101")) {
  773. dsf_createDs("ds_tmp_h_passyn", [
  774. {col:"passyn", type:"STRING", size:256}
  775. ]);
  776. var cardperiod = utlf_transNullToEmpty(ds_send_card.getColumn(0, 'cardperiod'));
  777. cardperiod = (cardperiod == '') ? '-' : cardperiod;
  778. ds_send_card.setColumn(0, 'cardperiod', cardperiod);
  779. var oParam = {};
  780. oParam.id = "TXPAC00101";
  781. oParam.service = "pamcomnapp.PamComn";
  782. oParam.method = "reqGetCreditCard";
  783. oParam.inds = "req=ds_send_card";
  784. oParam.outds = "ds_tmp_appvanif=appvanif ds_tmp_h_passyn=h_passyn";
  785. oParam.async = false;
  786. oParam.callback = "cf_TXPAC00101";
  787. tranf_submit(oParam);
  788. if(arErrorCode.pop("TXPAC00101") > -1){
  789. if (ds_tmp_appvanif.getColumn(0, "replystat") == "0000") {
  790. var sordergb = ds_send_card.getColumn(0, "ordergb");
  791. if (sordergb == "11") {
  792. sysf_messageBox("[카드] 승인이", "I001");
  793. } else if (sordergb == "21") {
  794. sysf_messageBox("[카드취소] 승인이", "I001");
  795. } else if (sordergb == "41") {
  796. sysf_messageBox("[현금영수증] 승인이", "I001");
  797. } else if (sordergb == "51") {
  798. sysf_messageBox("[현금영수증취소] 승인이", "I001");
  799. } else if (sordergb == "31") {
  800. sysf_messageBox("[수표조회] 정상적으로", "I001");
  801. } else if (sordergb == "U1" || sordergb == "U2") {
  802. // 비대면 승인 / 취소의 경우 메세지처리 없이 결과값만 리턴
  803. return true;
  804. }
  805. //sysf_messageBox("승인성공", "E999", "");
  806. } else {
  807. sysf_messageBox("["+ ds_tmp_appvanif.getColumn(0, "cardname")+"] 확인한 후 재승인 바람", "E999", "");
  808. }
  809. }else{
  810. sysf_messageBox("전산오류로 승인이 정상적으로 처리되지 않았습니다. 정보지원팀에 문의하세요!!", "E999", "");
  811. return false;
  812. }
  813. ////model.refresh();
  814. }
  815. function cf_TXPAC00101(sSvcId, nErrorCode, sErrorMsg) {
  816. arErrorCode.push(sSvcId, nErrorCode);
  817. }
  818. // 건진용(건진 오류 발생으로 인해 function 분리)
  819. function fGetPsnWorkInfoRrgstno(rrgstno){
  820. var retValue = '';
  821. //입력값 체크
  822. if (rrgstno.length != 13) {
  823. sysf_messageBox("주민번호가 입력되지 않았습니다.", "E999", "");
  824. return;
  825. }
  826. var rrgstno1 = rrgstno.substr(0,6);
  827. var rrgstno2 = rrgstno.substr(6,7);
  828. //send dataset
  829. dsf_createDsRow("ds_send_discpat", [
  830. {col:"checkcount" , type:"STRING", size:256, val: "1"}
  831. , {col:"emplno" , type:"STRING", size:256, val: ""}
  832. , {col:"emplnm" , type:"STRING", size:256, val: ""}
  833. , {col:"rrgstno" , type:"STRING", size:256, val: rrgstno}
  834. , {col:"rrgstno1" , type:"STRING", size:256, val: rrgstno1}
  835. , {col:"rrgstno2" , type:"STRING", size:256, val: rrgstno2 }
  836. , {col:"pid" , type:"STRING", size:256, val: ""}
  837. , {col:"orddd" , type:"STRING", size:256, val: ""}
  838. ]);
  839. //retrun dataset
  840. dsf_createDs('ds_temp_result_famylist');
  841. dsf_createDs('ds_temp_uncolist');
  842. //submit("TRPMC03802");
  843. var oParam = {};
  844. oParam.id = "TRPMC03802";
  845. oParam.service = "pamcomnapp.PamComn";
  846. oParam.method = "reqGetFamyList";
  847. oParam.inds = "req=ds_send_discpat";
  848. oParam.outds = "ds_temp_result_famylist=famylist ds_temp_uncolist=uncolist";
  849. oParam.async = false;
  850. tranf_submit(oParam);
  851. if( ds_temp_result_famylist.rowcount > 0 ){
  852. var objArg = new Object();
  853. objArg.arg_main_result = ds_temp_result_famylist;
  854. objArg.arg_main_uncolist = ds_temp_uncolist;
  855. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  856. retValue = fPsnParam(); //선택한 직원정보 세팅
  857. }
  858. ds_temp_result_famylist.clear();
  859. ds_temp_uncolist.clear();
  860. ds_send_discpat.clear();
  861. return retValue;
  862. }
  863. /**
  864. * @desc : 인사정보의 직원,직원가족정보 조회
  865. * <pre>
  866. * input : rrgstno (주민번호)
  867. * </pre>
  868. * @param : orderGubn - 거래구분
  869. * @return : true/false , 응답전문
  870. * @---------------------------------------------------
  871. */
  872. function fGetPsnWorkInfo(rrgstno){
  873. var retValue = '';
  874. //입력값 체크
  875. if (rrgstno.length != 13) {
  876. sysf_messageBox("주민번호가 입력되지 않았습니다.", "E999", "");
  877. return;
  878. }
  879. var rrgstno1 = rrgstno.substr(0,6);
  880. var rrgstno2 = rrgstno.substr(6,7);
  881. //send dataset
  882. dsf_createDsRow("ds_send_discpat", [
  883. {col:"checkcount" , type:"STRING", size:256, val: "1"}
  884. , {col:"emplno" , type:"STRING", size:256, val: ""}
  885. , {col:"emplnm" , type:"STRING", size:256, val: ""}
  886. , {col:"rrgstno" , type:"STRING", size:256, val: rrgstno}
  887. , {col:"rrgstno1" , type:"STRING", size:256, val: rrgstno1}
  888. , {col:"rrgstno2" , type:"STRING", size:256, val: rrgstno2 }
  889. , {col:"pid" , type:"STRING", size:256, val: ""}
  890. , {col:"orddd" , type:"STRING", size:256, val: ""}
  891. ]);
  892. //retrun dataset
  893. dsf_createDs('ds_temp_result_famylist');
  894. dsf_createDs('ds_temp_uncolist');
  895. //submit("TRPMC03802");
  896. var oParam = {};
  897. oParam.id = "TRPMC03802";
  898. oParam.service = "pamcomnapp.PamComn";
  899. oParam.method = "reqGetFamyList";
  900. oParam.inds = "req=ds_send_discpat";
  901. oParam.outds = "ds_temp_result_famylist=famylist ds_temp_uncolist=uncolist";
  902. oParam.async = false;
  903. tranf_submit(oParam);
  904. if( ds_temp_result_famylist.rowcount > 0 ){
  905. var objArg = new Object();
  906. objArg.arg_main_result = ds_temp_result_famylist;
  907. objArg.arg_main_uncolist = ds_temp_uncolist;
  908. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  909. retValue = fPsnParam(); //선택한 직원정보 세팅
  910. }
  911. ds_temp_result_famylist.clear();
  912. ds_temp_uncolist.clear();
  913. ds_send_discpat.clear();
  914. return retValue;
  915. }
  916. function fGetPsnWorkInfo_pid(pid){
  917. var retValue = '';
  918. //send dataset
  919. dsf_createDsRow("ds_send_discpat", [
  920. {col:"checkcount" , type:"STRING", size:256, val: "1"}
  921. , {col:"emplno" , type:"STRING", size:256, val: ""}
  922. , {col:"emplnm" , type:"STRING", size:256, val: ""}
  923. , {col:"rrgstno" , type:"STRING", size:256, val: ""}
  924. , {col:"rrgstno1" , type:"STRING", size:256, val: ""}
  925. , {col:"rrgstno2" , type:"STRING", size:256, val: ""}
  926. , {col:"pid" , type:"STRING", size:256, val: pid}
  927. , {col:"orddd" , type:"STRING", size:256, val: ""}
  928. ]);
  929. //retrun dataset
  930. dsf_createDs('ds_temp_result_famylist');
  931. dsf_createDs('ds_temp_uncolist');
  932. //submit("TRPMC03802");
  933. var oParam = {};
  934. oParam.id = "TRPMC03802";
  935. oParam.service = "pamcomnapp.PamComn";
  936. oParam.method = "reqGetFamyList";
  937. oParam.inds = "req=ds_send_discpat";
  938. oParam.outds = "ds_temp_result_famylist=famylist ds_temp_uncolist=uncolist";
  939. oParam.async = false;
  940. tranf_submit(oParam);
  941. if( ds_temp_result_famylist.rowcount > 0 ){
  942. var objArg = new Object();
  943. objArg.arg_main_result = ds_temp_result_famylist;
  944. objArg.arg_main_uncolist = ds_temp_uncolist;
  945. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  946. retValue = fPsnParam(); //선택한 직원정보 세팅
  947. }
  948. ds_temp_result_famylist.clear();
  949. ds_temp_uncolist.clear();
  950. ds_send_discpat.clear();
  951. return retValue;
  952. }
  953. //2011-10-28 원무팀 요청으로 감면정보 조회시 주민번호 + 이름 으로 체크
  954. function fGetPsnWorkInfo(rrgstno, hngnm){
  955. var retValue = '';
  956. //입력값 체크
  957. if (rrgstno.length != 13) {
  958. sysf_messageBox("주민번호가 입력되지 않았습니다.", "E999", "");
  959. return;
  960. }
  961. var rrgstno1 = rrgstno.substr(0,6);
  962. var rrgstno2 = rrgstno.substr(6,7);
  963. //send dataset
  964. dsf_createDsRow("ds_send_discpat", [
  965. {col:"checkcount" , type:"STRING", size:256, val: "1"}
  966. , {col:"emplno" , type:"STRING", size:256, val: ""}
  967. , {col:"emplnm" , type:"STRING", size:256, val: hngnm}
  968. , {col:"rrgstno" , type:"STRING", size:256, val: rrgstno}
  969. , {col:"rrgstno1" , type:"STRING", size:256, val: rrgstno1}
  970. , {col:"rrgstno2" , type:"STRING", size:256, val: rrgstno2}
  971. , {col:"pid" , type:"STRING", size:256, val: ""}
  972. , {col:"orddd" , type:"STRING", size:256, val: ""}
  973. ]);
  974. //retrun dataset
  975. dsf_createDs('ds_temp_result_famylist');
  976. dsf_createDs('ds_temp_uncolist');
  977. //submit("TRPMC03802");
  978. var oParam = {};
  979. oParam.id = "TRPMC03802";
  980. oParam.service = "pamcomnapp.PamComn";
  981. oParam.method = "reqGetFamyList";
  982. oParam.inds = "req=ds_send_discpat";
  983. oParam.outds = "ds_temp_result_famylist=famylist ds_temp_uncolist=uncolist";
  984. oParam.async = false;
  985. tranf_submit(oParam);
  986. if( ds_temp_result_famylist.rowcount > 0 ){
  987. var objArg = new Object();
  988. objArg.arg_main_result = ds_temp_result_famylist;
  989. objArg.arg_main_uncolist = ds_temp_uncolist;
  990. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  991. retValue = fPsnParam(); //선택한 직원정보 세팅
  992. }
  993. ds_temp_result_famylist.clear();
  994. ds_temp_uncolist.clear();
  995. ds_send_discpat.clear();
  996. return retValue;
  997. }
  998. function fGetPsnWorkInfo(rrgstno, hngnm, pid){
  999. var retValue = '';
  1000. //입력값 체크
  1001. if (rrgstno.length != 13) {
  1002. sysf_messageBox("주민번호가 입력되지 않았습니다.", "E999", "");
  1003. return;
  1004. }
  1005. var rrgstno1 = rrgstno.substr(0,6);
  1006. var rrgstno2 = rrgstno.substr(6,7);
  1007. //send dataset
  1008. dsf_createDsRow("ds_send_discpat", [
  1009. {col:"checkcount" , type:"STRING", size:256, val: "1"}
  1010. , {col:"emplno" , type:"STRING", size:256, val: ""}
  1011. , {col:"emplnm" , type:"STRING", size:256, val: hngnm}
  1012. , {col:"rrgstno" , type:"STRING", size:256, val: rrgstno}
  1013. , {col:"rrgstno1" , type:"STRING", size:256, val: rrgstno1}
  1014. , {col:"rrgstno2" , type:"STRING", size:256, val: rrgstno2}
  1015. , {col:"pid" , type:"STRING", size:256, val: pid}
  1016. , {col:"orddd" , type:"STRING", size:256, val: ""}
  1017. ]);
  1018. //retrun dataset
  1019. //var ds_temp_result_famylist = new Dataset();
  1020. //var ds_temp_uncolist = new Dataset();
  1021. dsf_createDs('ds_temp_result_famylist');
  1022. dsf_createDs('ds_temp_uncolist');
  1023. var oParam = {};
  1024. oParam.id = "TRPMC03802";
  1025. oParam.service = "pamcomnapp.PamComn";
  1026. oParam.method = "reqGetFamyList";
  1027. oParam.inds = "req=ds_send_discpat";
  1028. oParam.outds = "ds_temp_result_famylist=famylist ds_temp_uncolist=uncolist";
  1029. oParam.async = false;
  1030. tranf_submit(oParam);
  1031. if( ds_temp_result_famylist.rowcount > 0 ){
  1032. var objArg = new Object();
  1033. objArg.arg_main_result = ds_temp_result_famylist;
  1034. objArg.arg_main_uncolist = ds_temp_uncolist;
  1035. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  1036. retValue = fPsnParam(); //선택한 직원정보 세팅
  1037. }
  1038. ds_temp_result_famylist.clear();
  1039. ds_temp_uncolist.clear();
  1040. ds_send_discpat.clear();
  1041. return retValue;
  1042. }
  1043. function fGetPsnWorkInfoDir(pid){
  1044. var retValue = '';
  1045. //send dataset
  1046. dsf_createDsRow("ds_send_discpat", [
  1047. {col:"checkcount" , type:"STRING", size:256, val: "1"}
  1048. , {col:"emplno" , type:"STRING", size:256, val: ""}
  1049. , {col:"emplnm" , type:"STRING", size:256, val: ""}
  1050. , {col:"rrgstno" , type:"STRING", size:256, val: ""}
  1051. , {col:"rrgstno1" , type:"STRING", size:256, val: ""}
  1052. , {col:"rrgstno2" , type:"STRING", size:256, val: ""}
  1053. , {col:"pid" , type:"STRING", size:256, val: pid}
  1054. , {col:"orddd" , type:"STRING", size:256, val: ""}
  1055. ]);
  1056. //retrun dataset
  1057. dsf_createDs('ds_temp_result_famylist');
  1058. dsf_createDs('ds_temp_uncolist');
  1059. //submit("TRPMC03802");
  1060. var oParam = {};
  1061. oParam.id = "TRPMC03802";
  1062. oParam.service = "pamcomnapp.PamComn";
  1063. oParam.method = "reqGetFamyList";
  1064. oParam.inds = "req=ds_send_discpat";
  1065. oParam.outds = "ds_temp_result_famylist=famylist ds_temp_uncolist=uncolist";
  1066. oParam.async = false;
  1067. tranf_submit(oParam);
  1068. if( ds_temp_result_famylist.rowcount > 0 ){
  1069. //var objArg = new Object();
  1070. //objArg.arg_main_result = ds_temp_result_famylist;
  1071. //frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  1072. //model.copynode("/root/main/result", "/root/temp/result");
  1073. var objArg = new Object();
  1074. objArg.arg_main_result = ds_temp_result_famylist;
  1075. objArg.arg_main_uncolist = ds_temp_uncolist;
  1076. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  1077. retValue = fPsnParam(); //선택한 직원정보 세팅
  1078. }
  1079. ds_temp_result_famylist.clear();
  1080. ds_temp_uncolist.clear();
  1081. ds_send_discpat.clear();
  1082. return retValue;
  1083. }
  1084. //직원가족정보 조회 입원수납용
  1085. function fGetPsnWorkInfo_i(rrgstno,pre_loading_yn) {
  1086. var retValue = '';
  1087. if(pre_loading_yn == "Y"){
  1088. //만약 입원수납등 기화면에서 가족정보 미리 조회해오므로 submit 통과
  1089. }
  1090. if( ds_temp_result_h_famylist.rowcount > 0 ){
  1091. var objArg = new Object();
  1092. objArg.arg_main_result = ds_temp_result_h_famylist;
  1093. objArg.arg_main_uncolist = ds_temp_uncolist;
  1094. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  1095. retValue = fPsnParam(); //선택한 직원정보 세팅
  1096. }
  1097. ds_temp_result_h_famylist.clear();
  1098. //ds_temp_uncolist.clear();
  1099. ds_send_discpat.clear();
  1100. return retValue;
  1101. }
  1102. function fGetPsnWorkInfo_pid_i(rrgstno,pre_loading_yn) {
  1103. var retValue = '';
  1104. if(pre_loading_yn == "Y"){
  1105. //만약 입원수납등 기화면에서 가족정보 미리 조회해오므로 submit 통과
  1106. }
  1107. if( ds_temp_result_h_famylist.rowcount > 0 ){
  1108. var objArg = new Object();
  1109. objArg.arg_main_result = ds_temp_result_h_famylist;
  1110. objArg.arg_main_uncolist = 'undefined';
  1111. frmf_modal("SPPMC03800", "SPPMC03800", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  1112. retValue = fPsnParam(); //선택한 직원정보 세팅
  1113. }
  1114. ds_temp_result_h_famylist.clear();
  1115. //ds_temp_uncolist.clear();
  1116. ds_send_discpat.clear();
  1117. return retValue;
  1118. }
  1119. //선택한 직원정보 세팅
  1120. function fPsnParam() {
  1121. var retValue = '';
  1122. var emplno = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_emplid"));
  1123. var emplnm = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_emplnm"));
  1124. var discuncocd = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_discuncocd"));
  1125. var famyrelcd = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_famyrelcd"));
  1126. var famyrelnm = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_famyrelnm"));
  1127. var preststatnm = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_preststatnm"));
  1128. var profacptyn = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_profacptyn"));
  1129. var profacptdd = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_profacptdd"));
  1130. var remark = utlf_transNullToEmpty(frmf_getParameter("SPPMC03800_remark"));
  1131. frmf_clearParameter("SPPMC03800_emplid");
  1132. frmf_clearParameter("SPPMC03800_emplnm");
  1133. frmf_clearParameter("SPPMC03800_discuncoflag");
  1134. frmf_clearParameter("SPPMC03800_discuncocd");
  1135. frmf_clearParameter("SPPMC03800_famyrelcd");
  1136. frmf_clearParameter("SPPMC03800_famyrelnm");
  1137. frmf_clearParameter("SPPMC03800_preststatnm");
  1138. frmf_clearParameter("SPPMC03800_profacptyn");
  1139. frmf_clearParameter("SPPMC03800_profacptdd");
  1140. frmf_clearParameter("SPPMC03800_remark");
  1141. if (emplno != '' && emplno != ' ') {
  1142. retValue = emplno + '▦' +
  1143. emplnm + '▦' +
  1144. discuncocd + '▦' +
  1145. famyrelnm + '▦' +
  1146. preststatnm + '▦' +
  1147. profacptyn + '▦' +
  1148. profacptdd + '▦' +
  1149. remark + '▦' +
  1150. famyrelcd;
  1151. }
  1152. return retValue;
  1153. }
  1154. /**
  1155. * 2007-12-07 이동식 수정.
  1156. * @desc : 인사정보의 직원퇴직정보 조회
  1157. * <pre>
  1158. * input : rrgstno (주민번호)
  1159. * </pre>
  1160. * @param : orderGubn - 거래구분
  1161. * @return : true/false , 응답전문
  1162. * @---------------------------------------------------
  1163. */
  1164. function fGetPsnRetireInfo(rrgstno, orddd) {
  1165. //입력값 체크
  1166. if (rrgstno.length == 0) {
  1167. sysf_messageBox("주민번호가 입력되지 않았습니다.", "E999", "");
  1168. return;
  1169. }
  1170. // Return
  1171. var ds_temp_psnworkinfo = new Dataset();
  1172. //send dataset
  1173. dsf_createDsRow("ds_send_req", [
  1174. {col:"rrgstno" , type:"STRING", size:256, val: rrgstno}
  1175. ]);
  1176. //submit("TRPAC00101");
  1177. var oParam = {};
  1178. oParam.id = "TRPAC00101";
  1179. oParam.service = "pamcomnapp.PamComn";
  1180. oParam.method = "reqGetPsnWorkInfo";
  1181. oParam.inds = "req=ds_send_req";
  1182. oParam.outds = "ds_temp_psnworkinfo=psnwork";
  1183. oParam.async = false;
  1184. tranf_submit(oParam);
  1185. if (ds_temp_psnworkinfo.rowcount > 0 ){
  1186. var appfromdd = ds_temp_psnworkinfo.getColumn(0, "fromdd");
  1187. var apptodd = ds_temp_psnworkinfo.getColumn(0, "todd");
  1188. if( orddd == '' || orddd == ' ' || orddd == '-' ){
  1189. orddd = utlf_getCurrentDate();
  1190. }
  1191. if( !utlf_isValidDateTime(appfromdd, "YYYYMMDD") || orddd < appfromdd ||
  1192. !utlf_isValidDateTime(apptodd, "YYYYMMDD") || orddd > apptodd ){
  1193. var vmsg = "인사정보를 확인하세요. 해당 직원이 퇴직하였거나 감면 적용기간이 만료 되었습니다."
  1194. sysf_messageBox( vmsg , "E999", "");
  1195. return false;
  1196. }
  1197. }
  1198. else {
  1199. sysf_messageBox("인사정보에서 확인된 정보가 없습니다. 감면여부를 다시 확인해 주세요.", "E999", "");
  1200. return false;
  1201. }
  1202. //model.removeNodeset("/root/temp/psnworkinfo");
  1203. ds_temp_psnworkinfo.clear();
  1204. ////model.refresh();
  1205. return true;
  1206. }
  1207. // 2008.07.31 최병진 - 변경된 CommAX에 맞게 로직 수정
  1208. // - pPort 파라미터 추가 (default : 1)
  1209. function fInPatBarCodePrn(pPid, pIndd, pCretno, pMskind, pHiststat, pPort) {
  1210. // send
  1211. ds_send_data17.clear();
  1212. dsf_createDsRow("ds_send_data17", [
  1213. {col:"pid", type:"STRING", size:256, val: pPid}
  1214. , {col:"indd", type:"STRING", size:256, val: pIndd}
  1215. , {col:"cretno", type:"INT", size:256, val: pCretno}
  1216. , {col:"mskind", type:"STRING", size:256, val: pMskind}
  1217. , {col:"histstat", type:"STRING", size:256, val: pHiststat}
  1218. , {col:"ioflag", type:"STRING", size:256, val: ""}
  1219. , {col:"ervisityn", type:"STRING", size:256, val: ""}
  1220. , {col:"ipaddr", type:"STRING", size:256, val: ""}
  1221. ]);
  1222. // return dataset
  1223. ds_hidden_h_receipt.clear();
  1224. var ds_hidden_h_receipt = new Dataset();
  1225. dsf_createDs("ds_hidden_h_receipt", [
  1226. {col:"pid", type:"STRING", size:256}
  1227. , {col:"hngnm", type:"STRING", size:256}
  1228. , {col:"hngnm2", type:"STRING", size:256}
  1229. , {col:"sex", type:"STRING", size:256}
  1230. , {col:"age", type:"STRING", size:256}
  1231. , {col:"religncd", type:"STRING", size:256}
  1232. , {col:"rrgstno", type:"STRING", size:256}
  1233. , {col:"orddeptcd", type:"STRING", size:256}
  1234. , {col:"orddeptnm", type:"STRING", size:256}
  1235. , {col:"specordyn", type:"STRING", size:256}
  1236. , {col:"medispclid", type:"STRING", size:256}
  1237. , {col:"wardcd", type:"STRING", size:256}
  1238. , {col:"wardcd2", type:"STRING", size:256}
  1239. , {col:"roomcd", type:"STRING", size:256}
  1240. , {col:"indd", type:"STRING", size:256}
  1241. , {col:"barcode", type:"STRING", size:256}
  1242. , {col:"newprintflag", type:"STRING", size:256}
  1243. , {col:"btype", type:"STRING", size:256}
  1244. ]);
  1245. //submit("TRPMI00115");
  1246. var oParam = {};
  1247. oParam.id = "TRPMI00115";
  1248. oParam.service = "ipatmngtapp.InRgst";
  1249. oParam.method = "reqGetInRgstCardIss";
  1250. oParam.inds = "req=ds_send_data17";
  1251. oParam.outds = "ds_hidden_h_receipt=receipt";
  1252. oParam.async = false;
  1253. tranf_submit(oParam);
  1254. var inpt_pid = ds_hidden_h_receipt.getColumn(0, "pid");
  1255. if (inpt_pid == null || inpt_pid == " " || inpt_pid == "") {
  1256. sysf_messageBox("입원 환자가 아닙니다.! 환자 팔찌를 발행할 수 없습니다.","E999","");
  1257. return false;
  1258. } else {
  1259. var sRrgstno = ds_hidden_h_receipt.getColumn(0, "rrgstno").substr(0,6) + "-"
  1260. + ds_hidden_h_receipt.getColumn(0, "rrgstno").substr(6,1) + "******";
  1261. ds_hidden_h_receipt.getColumn(0, "rrgstno",sRrgstno);
  1262. var sIndd = ds_hidden_h_receipt.getColumn(0, "indd");
  1263. ds_hidden_h_receipt.getColumn(0, "indd",sIndd.substr(0, 4) + "-" + sIndd.substr(4,2) + "-" + sIndd.substr(6,2));
  1264. // 출력을 위한 변수 선언
  1265. var sPid = ds_hidden_h_receipt.getColumn(0, "pid");
  1266. var sHngnm = ds_hidden_h_receipt.getColumn(0, "hngnm");
  1267. var sSex = ds_hidden_h_receipt.getColumn(0, "sex");
  1268. var sAge = ds_hidden_h_receipt.getColumn(0, "age");
  1269. if(document.all("CommAX") != null) {
  1270. //바코드 출력 시작
  1271. var sSndMsg = "";
  1272. var portOpenTF = "";
  1273. // CommPort 설정
  1274. if (pPort == "" || pPort == null || pPort == " ") {
  1275. CommAX.CommPort = "1"; // default port setting
  1276. } else {
  1277. CommAX.CommPort = pPort; //Port 설정
  1278. }
  1279. CommAX.Settings = "9600,n,8,1";
  1280. portOpenTF = CommAX.PortOpen("true"); //Port Open
  1281. if(portOpenTF == "TRUE") {
  1282. // 2008.07.31 - 주민번호 라인 변경
  1283. sSndMsg = sSndMsg + "^XA^LH20,20"; // 출력시작
  1284. sSndMsg = sSndMsg + "^FO10,05^BC400,40,N,N,N^FD" + sPid + "^FS"; // 바코드(등록번호)
  1285. sSndMsg = sSndMsg + "^CFE40,40^FO340,10^FD" + sSex + "/" + sAge + "^FS"; // 성별,나이
  1286. sSndMsg = sSndMsg + CommAX.PrtImgOut(10, 50, sHngnm, 1, 2); // 환자명 - 가로시작위치, 세로시작위치, 출력할문자열, 1,1 (비율:X, Y)
  1287. sSndMsg = sSndMsg + CommAX.HanImageData();
  1288. sSndMsg = sSndMsg + "^CFE18,18^FO10,100^FD" + sPid + "^FS"; // 등록번호
  1289. sSndMsg = sSndMsg + "CFE30,30^FO10,130^FD" + sRrgstno + "^FS"; // 주민번호
  1290. sSndMsg = sSndMsg + "^CFA30,30^FO235,100^FD" + sIndd + "^FS"; // 입원일자
  1291. sSndMsg = sSndMsg + "^PQ1"; // 출력매수
  1292. sSndMsg = sSndMsg + "^XZ";
  1293. CommAX.SendMessage(sSndMsg); // 출력
  1294. CommAX.PortOpen("false"); // 출력종료
  1295. } else {
  1296. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  1297. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  1298. + " \n 2.케이블 확인"
  1299. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  1300. return;
  1301. }
  1302. }
  1303. }
  1304. }
  1305. /**
  1306. * @desc : 중증정보 체크
  1307. * <pre>
  1308. * 1. 필수항목 입력 체크 - 등록번호, 적용일자(외래:진료일자,입원:현재일자?), 보험유형, 보조유형
  1309. *
  1310. * === 체크사항 ===
  1311. * 환자 중증정보 조회
  1312. * 중증정보와 보험유형,보조유형 Cross Check
  1313. * </pre>
  1314. * @param : vPid, vOrddd, vInsukindcd, vSuppkindcd
  1315. *
  1316. * @return : true/false
  1317. * 항목 체크를 통해 재세팅된 값 return
  1318. * @---------------------------------------------------
  1319. * 변경이력
  1320. * 2007.12.03 증번호 추가(국정원근무자인경우 중증확인과 증번호가 있어야 부담율 적용가능함) - 이동재
  1321. */
  1322. function fSrdgInfoVeri(vPid, vOrddd, vCretno, vInsukindcd, vSuppkindcd, vinsuno, vinsucd){
  1323. // [확인필요] ds_temp4_essc의 내용이 무엇인지는 , kimdo3 2016-08-08
  1324. /*
  1325. vPid 등록번호
  1326. vOrddd 진료일자
  1327. vInsukindcd 보험유형
  1328. vSuppkindcd 보조유형
  1329. vinsuno 보험증번호
  1330. vinsucd 보험자기호
  1331. */
  1332. //1. 중정정보 조회
  1333. // Return
  1334. ds_temp_srdg.clear();
  1335. dsf_createDs("ds_temp_srdg", [
  1336. {col:"srdg_pid", type:"STRING", size:256}
  1337. , {col:"srdg_insukind", type:"STRING", size:256}
  1338. , {col:"srdg_fromdd", type:"STRING", size:256}
  1339. , {col:"srdg_todd", type:"STRING", size:256}
  1340. , {col:"srdg_seridiagno", type:"STRING", size:256}
  1341. , {col:"srdg_anohosprgstflag", type:"STRING", size:256}
  1342. , {col:"srdg_cncrdiagcnfmdd", type:"STRING", size:256}
  1343. , {col:"srdg_genrdd", type:"STRING", size:256}
  1344. , {col:"srdg_signyn", type:"STRING", size:256}
  1345. , {col:"srdg_signdt", type:"STRING", size:256}
  1346. ]);
  1347. //send
  1348. // model.makeValue("/root/send/cretno", vCretno); 필요없는 것으로 예상 kimdo3 2016-08-08
  1349. ds_send_req.clear();
  1350. dsf_createDsRow("ds_send_req", [
  1351. {col:"pid", type:"STRING", size:256, val: vPid}
  1352. , {col:"insukind", type:"STRING", size:256, val: vInsukindcd}
  1353. , {col:"orddd", type:"STRING", size:256, val: vOrddd }
  1354. ]);
  1355. //submit("TRPAC00201");
  1356. var oParam = {};
  1357. oParam.id = "TRPAC00201";
  1358. oParam.service = "pamcomnapp.PamComn";
  1359. oParam.method = "reqGetPatSrdgInfo";
  1360. oParam.inds = "req=ds_send_req";
  1361. oParam.outds = "ds_temp_srdg=srdg";
  1362. oParam.async = false;
  1363. tranf_submit(oParam);
  1364. //내역이 있는 경우, 중증신청내역 or 중증확정내역
  1365. if (ds_temp_srdg.getColumn(0, "srdg_pid") != "") {
  1366. var vcode ;
  1367. var vcode_arry = ds_temp4_essc.rowcount; // ds_temp4_essc의 내용이 무엇인지는 확인 필요 , kimdo3 2016-08-08
  1368. for(var i=0 ;i< vcode_arry;i++) {
  1369. vcode = ds_temp4_essc.getColumn( i , "vcode"); // V193이면 암상병 경우임
  1370. if(fSrdgInfoVeri_check(vPid, vOrddd, vCretno, vInsukindcd, vSuppkindcd, vinsuno, vinsucd ,vcode) == false) return false;
  1371. }
  1372. }else { // 중증정보 없다.
  1373. //중증정보가 없는데, 유형보조가 [중증:06]일 경우,
  1374. if ( vSuppkindcd == "06" || vSuppkindcd == "11" ) {
  1375. sysf_messageBox("해당환자는 중증번호가 없으므로, [중증]으로 적용할 수 없습니다.[1]","E999","");
  1376. return false;
  1377. }
  1378. }
  1379. return true;
  1380. }
  1381. //중증정보 체크(fSrdgInfoVeri에서 for문으로 체크되는 부분)
  1382. function fSrdgInfoVeri_check(vPid, vOrddd, vCretno, vInsukindcd, vSuppkindcd, vinsuno, vinsucd ,vcode){
  1383. //중증 신청일 , 중증 번호, 중증 사인 여부
  1384. var vgenrdd = ds_temp_srdg.getColumn(0, "srdg_genrdd") ;
  1385. var vgenrddtext = vgenrdd.substr(4,2) + "월" + vgenrdd.substr(6,2) + "일";
  1386. var vdiagno = ds_temp_srdg.getColumn(0, "srdg_seridiagno");
  1387. var vsignyn = ds_temp_srdg.getColumn(0, "srdg_signyn");
  1388. var vcancer = "V193";
  1389. var vsrdgfromdd = ds_temp_srdg.getColumn(0, "srdg_fromdd");
  1390. var vsrdgtodd = ds_temp_srdg.getColumn(0, "srdg_todd");
  1391. var vanohosprgstflag = ds_temp_srdg.getColumn(0, "srdg_anohosprgstflag");
  1392. // 건강보험이면서 전액본인은 제외대상임
  1393. if ( vInsukindcd == '11' && vSuppkindcd != '01') {
  1394. // 이미 중증이 적용되어져 있으면 적용이 가능한지 check해야 함
  1395. if ( vSuppkindcd == "06" || vSuppkindcd == "11" ){
  1396. // 중증상병이 아니면 안됨
  1397. if ( vcode != vcancer ){
  1398. sysf_messageBox( " 중증 적용할수 없는 상병입니다![2-1-1-가]","E999","");
  1399. return false;
  1400. }
  1401. // 중증번호 없으시 신청당일이고
  1402. if ( vdiagno == "0"){
  1403. // 국정원 예외적용
  1404. if( vinsuno.substring(0,1) == "6" && vinsucd == "32000110") {
  1405. sysf_messageBox("국정원근무자이므로 반드시 중증번호가 있어야 합니다.[2-1-1-나-ㄱ]","E999","");
  1406. return false;
  1407. }
  1408. // 사인은 했음.
  1409. if ( vsignyn == "Y"){
  1410. // 신청당일 check
  1411. if ( vgenrdd == vOrddd ){
  1412. sysf_messageBox( "당일 SIGN환자입니다. 중증10%로 정산하십시요.[2-1-1-나-ㄴ-A]","E999","");
  1413. return false;
  1414. }
  1415. if ( vgenrdd != vOrddd ){
  1416. sysf_messageBox( vgenrddtext + " SIGN환자입니다.[2-1-1-나-ㄴ-B]","E999","");
  1417. return false;
  1418. }
  1419. }
  1420. // 사인안했음
  1421. if ( vsignyn != "Y"){
  1422. if ( vanohosprgstflag == "Y" ){
  1423. sysf_messageBox( "타병원 중증등록 환자 입니다.자격을 확인하세요![2-1-1-나-ㄷ-A]","E999","");
  1424. return false;
  1425. }
  1426. if ( vanohosprgstflag == "N" ){
  1427. var rtn = sysf_messageBox( "의료정보팀에서 Sign후 중증적용 가능합니다. 의료정보팀에서 Sign하세요![2-1-1-나-ㄷ-B]\n계속진행하시겠습니까?","Q999","");
  1428. // Yes : 6 / No : 7 / Cancel : 2
  1429. if (rtn == 7) return false;
  1430. }
  1431. }
  1432. }
  1433. // 중증번호 있으면 기간만 check함
  1434. if ( vdiagno != "0"){
  1435. if (vOrddd < vsrdgfromdd || vOrddd > vsrdgtodd ) {
  1436. sysf_messageBox("적용일자가 중증기간 범위에 포함되지 않습니다.[2-1-1-다]","E999","");
  1437. return false;
  1438. }
  1439. }
  1440. }
  1441. // 중증이 미적용되어져 있으면 적용이 가능한지 check해야 함
  1442. if ( vSuppkindcd != "06" && vSuppkindcd != "11" ){
  1443. // 중증에 해당하는 상병이면
  1444. if ( vcode == vcancer ){
  1445. // 중증번호 없으시 신청당일이고 sign이 되었으면 가능함. 단 국정원이 아닐경우
  1446. if ( vdiagno == "0"){
  1447. //타병원유무 체크
  1448. if ( vanohosprgstflag == "Y" ){
  1449. sysf_messageBox( "타병원 중증등록 환자 입니다.자격을 확인하세요![2-1-2-가-ㄱ]","E999","");
  1450. return false;
  1451. }
  1452. if ( vanohosprgstflag == "N" ){
  1453. if ( vsignyn == "Y"){ // 사인되었고 국정원이 아니면 산정가능
  1454. if( vinsuno.substring(0,1) == "6" && vinsucd == "32000110") {
  1455. //
  1456. }else{
  1457. if ( vgenrdd == vOrddd ){
  1458. sysf_messageBox("당일 SIGN 환자입니다. 중증10%로 정산하십시요.[2-1-2-가-ㄴ-B-A]","E999","");
  1459. return false;
  1460. }
  1461. if ( vgenrdd != vOrddd ){
  1462. sysf_messageBox("중증10%로 정산하십시요.[2-1-2-가-ㄴ-B-B]","E999","");
  1463. return false;
  1464. }
  1465. }
  1466. }
  1467. // 사인안되었으면 guide한다.
  1468. if ( vsignyn != "Y"){
  1469. var rtn = sysf_messageBox(vgenrddtext + " 중증의뢰서가 작성되었습니다, 의료정보팀에서 Sign하세요![2-1-2-가-ㄴ-C]\n계속진행하시겠습니까?","Q999","");
  1470. // Yes : 6 / No : 7 / Cancel : 2
  1471. if (rtn == 7) return false;
  1472. }
  1473. }
  1474. }
  1475. // 중증번호 있으면서 기간이 맞으면 중증가능함
  1476. if ( vdiagno != "0"){
  1477. if ( vOrddd >= vsrdgfromdd || vOrddd <= vsrdgtodd ) {
  1478. sysf_messageBox("중증10%로 정산하십시요.[2-1-2-나]","E999","");
  1479. return false;
  1480. }
  1481. }
  1482. }
  1483. }
  1484. }
  1485. // 급여이면서 전액본인은 제외대상임
  1486. if ( ( vInsukindcd == '21' || vInsukindcd == '22' ) && vSuppkindcd != '01') {
  1487. // 인자값 vPid, vOrddd, vCretno, vInsukindcd, vSuppkindcd, vinsuno, vinsucd ,vcode
  1488. // 이중에서 instcd와 매칭되는 값은 ?
  1489. ds_send_req.clear();
  1490. dsf_createDsRow("ds_send_req", [
  1491. {col:"pid", type:"STRING", size:256, val: vPid}
  1492. , {col:"orddd", type:"STRING", size:256, val: vOrddd}
  1493. , {col:"cretno", type:"STRING", size:256, val: vCretno}
  1494. , {col:"instcd", type:"STRING", size:256, val: ""}
  1495. ]);
  1496. // 의료급여는 산정특례를 check하지 않았으므로 진료당일건의 상병을 check해서 중증여부를 결정한다.
  1497. //submit("TRPAO00214");
  1498. var oParam = {};
  1499. oParam.id = "TRPAO00214";
  1500. oParam.service = "pamcomnapp.PamComn";
  1501. oParam.method = "reqGetDiagSrdg";
  1502. oParam.inds = "req=ds_send_req";
  1503. oParam.outds = "ds_temp6_diagsrdg=diagsrdg";
  1504. oParam.async = false;
  1505. tranf_submit(oParam);
  1506. vcode = ds_temp6_diagsrdg.getColumn(0, "vcode"); // V193이면 암상병 경우임..
  1507. // 이미 중증이 적용되어져 있으면 적용이 가능한지 check해야 함
  1508. if ( vSuppkindcd == "06" || vSuppkindcd == "11" ){
  1509. // 중증상병이 아니면 안됨
  1510. if ( vcode != vcancer ){
  1511. sysf_messageBox( "[중증] 적용할수 없는 상병입니다![2-2-1-가]","E999","");
  1512. return false;
  1513. }
  1514. // 중증번호 없으면 신청당일이고
  1515. if ( vdiagno == "0"){
  1516. // 사인은 했음.
  1517. if ( vsignyn == "Y"){
  1518. // 신청당일 check
  1519. if ( vgenrdd == vOrddd ){
  1520. sysf_messageBox( "당일 SIGN환자입니다.[2-2-1-나-ㄱ-A]","E999","");
  1521. }
  1522. if ( vgenrdd != vOrddd ){
  1523. //
  1524. }
  1525. }
  1526. if ( vsignyn != "Y"){
  1527. if ( vanohosprgstflag == "Y" ){
  1528. sysf_messageBox( "타병원 중증등록 환자 입니다.자격을 확인하세요![2-2-1-나-ㄴ-A]","E999","");
  1529. return false;
  1530. }
  1531. if ( vanohosprgstflag == "N" ){
  1532. var rtn = sysf_messageBox("중증신청서가 작성되었습니다. 의료정보에서 SIGN하세요![2-2-1-나-ㄴ-B]\n계속진행하시겠습니까?","Q999","");
  1533. // Yes : 6 / No : 7 / Cancel : 2
  1534. if (rtn == 7) return false;
  1535. }
  1536. }
  1537. }
  1538. if ( vdiagno != "0"){ // 중증번호 있으면 기간만 check함
  1539. //적용일자는 있으나, 적용일자 범위가 아님
  1540. if ( vOrddd < vsrdgfromdd || vOrddd > vsrdgtodd ) {
  1541. sysf_messageBox("적용일자가 [중증]기간 범위에 포함되지 않습니다.[2-2-1-다]","E999","");
  1542. return false;
  1543. }
  1544. }
  1545. }
  1546. // 중증이 미적용되어져 있으면 적용이 가능한지 check해야 함
  1547. if ( vSuppkindcd != "06" && vSuppkindcd != "11" ){
  1548. // 중증에 해당하는 상병이면
  1549. if ( vcode == vcancer ){
  1550. // 중증번호 없으시 신청당일이고 sign이 되었으면 가능함. 단 국정원이 아닐경우
  1551. if ( vdiagno != "0"){
  1552. // 중증번호 있으면서 기간이 맞으면 중증가능함
  1553. if (vOrddd >= vsrdgfromdd || vOrddd <= vsrdgtodd ) {
  1554. sysf_messageBox("[중증] 으로 정산하십시요.[2-2-2-나]","E999","");
  1555. return false;
  1556. }
  1557. }
  1558. }
  1559. }
  1560. }
  1561. return;
  1562. }
  1563. /**
  1564. * @desc : 자보산재공상정보 체크
  1565. * <pre>
  1566. * 1. 필수항목 입력 체크 - 등록번호, 적용일자(외래:진료일자,입원:현재일자?), 보험유형, 보조유형
  1567. *
  1568. * === 체크사항 ===
  1569. * 환자 보험정보 조회
  1570. * 보험정보와 보험유형,보조유형 Cross Check
  1571. * </pre>
  1572. * @param : vPid, vOrddd, vInsukindcd, vSuppkindcd
  1573. *
  1574. * @return : true/false
  1575. * 항목 체크를 통해 재세팅된 값 return
  1576. * @---------------------------------------------------
  1577. */
  1578. function fEtcInsuInfoVeri(vPid, vOrddd, vInsukindcd, vSuppkindcd){
  1579. /*
  1580. 작성 중....
  1581. vPid 등록번호
  1582. vOrddd 진료일자
  1583. vInsukindcd 보험유형
  1584. vSuppkindcd 보조유형
  1585. */
  1586. //1. 보험정보 조회
  1587. // Return
  1588. // model.makeNode("/root/temp/ptin"); //kimdo3 2016-08-08일에서
  1589. //send
  1590. ds_send_req.clear();
  1591. dsf_createDsRow("ds_send_req", [
  1592. {col:"pid", type:"STRING", size:256, val: vPid}
  1593. , {col:"insukind", type:"STRING", size:256, val: vInsukindcd}
  1594. , {col:"appdd", type:"STRING", size:256, val: vInsukindcd}
  1595. ]);
  1596. //submit("TRPAC00201");
  1597. var oParam = {};
  1598. oParam.id = "TRPAC00201";
  1599. oParam.service = "pamcomnapp.PamComn";
  1600. oParam.method = "reqGetPatSrdgInfo";
  1601. oParam.inds = "req=ds_send_req";
  1602. oParam.outds = "ds_temp_srdg=srdg";
  1603. oParam.async = false;
  1604. tranf_submit(oParam);
  1605. //내역이 있는 경우, 중증신청내역 or 중증확정내역
  1606. if (ds_temp_srdg.getColumn(0, "srdg_pid") != "") {
  1607. //신청내역
  1608. if ( ds_temp_srdg.getColumn(0, "srdg_fromdd") == "00000000") {
  1609. sysf_messageBox("중증 적용 시작일이 입력되지 않았습니다.","E999","");
  1610. return false;
  1611. }
  1612. //신청내역
  1613. if ( ds_temp_srdg.getColumn(0, "srdg_seridiagno") == "-" && ds_temp_srdg.getColumn(0, "srdg_seridiagno") == "0") {
  1614. sysf_messageBox("중증번호가 없습니다.","E999","");
  1615. return false;
  1616. }
  1617. //적용일자는 있으나, 적용일자 범위가 아님
  1618. if ( vOrddd < ds_temp_srdg.getColumn(0, "srdg_fromdd") ||
  1619. vOrddd > ds_temp_srdg.getColumn(0, "srdg_todd")
  1620. ) {
  1621. sysf_messageBox("적용일자가 중증기간 범위에 포함되지 않습니다.","E999","");
  1622. return false;
  1623. }
  1624. //중증정보가 있는데, 보조유형이 [중증:06] 이 아닌 경우,
  1625. if ( vOrddd >= ds_temp_srdg.getColumn(0, "srdg_fromdd") &&
  1626. vOrddd <= ds_temp_srdg.getColumn(0, "srdg_todd") &&
  1627. ds_temp_srdg.getColumn(0, "srdg_seridiagno") != "-" &&
  1628. ds_temp_srdg.getColumn(0, "srdg_seridiagno") != "0" &&
  1629. vSuppkindcd != "06"
  1630. ) {
  1631. sysf_messageBox("해당환자의 중증정보가 있으나, 보조유형이 [중증]이 아닙니다.","E999","");
  1632. return false;
  1633. }
  1634. }
  1635. else {
  1636. //중증정보가 없는데, 유형보조가 [중증:06]일 경우,
  1637. if ( vSuppkindcd == "06" ) {
  1638. sysf_messageBox("해당환자의 중증정보가 없으므로, 보조유형을 [중증]으로 적용할 수 없습니다.","E999","");
  1639. return false;
  1640. }
  1641. return true;
  1642. }
  1643. //model.refresh();
  1644. }
  1645. //2007-10-08 이동식 추가
  1646. /**
  1647. * @desc : 환자카드발급을 위한 PC 고유번호를 셋팅
  1648. * <pre>
  1649. *
  1650. * </pre>
  1651. * @param :
  1652. * @return : pcinfo //고유번호
  1653. * @---------------------------------------------------
  1654. */
  1655. function fGetPCID(){
  1656. var pcInfoStr ;
  1657. try {
  1658. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1659. var f = fso.GetFile("C:\\WINDOWS\\Device.ini");
  1660. var ts = f.OpenAsTextStream(1);
  1661. pcInfoStr = ts.ReadLine();
  1662. ts.Close();
  1663. } catch(e) {
  1664. //sysf_messageBox("[전자카드발행] PC고유번호정보를 찾을수 없습니다.", "E999", "");
  1665. }
  1666. // model.makeNode("/root/hidden/patcardissue/pcinfo");
  1667. // model.setValue("/root/hidden/patcardissue/pcinfo", pcInfoStr);
  1668. dsf_makeValue(ds_hidden_patcardissue, "pcinfo", "string", pcInfoStr);
  1669. }
  1670. //2009-03-03 이동식 추가
  1671. /**
  1672. * @desc : 의사휴진일정 및 진료환자정원 조회
  1673. * <pre>
  1674. * input : insucd 보험자기호(보험자코드)
  1675. * insuflag 보험자형태
  1676. * 1:공단/2:의료급여/3:자보/4:산재공상/5:일반/6:외국인
  1677. * </pre>
  1678. * @param : orddrid, orddeptcd, orddd, ordtm, fsexamflag
  1679. * @return :
  1680. * @---------------------------------------------------
  1681. */
  1682. function fGetVerifyHoli(orddrid, orddeptcd, subdeptcd, orddd, ordtm, fsexamflag, rsrvflag){
  1683. return fGetVerifyHoli2('-', orddrid, orddeptcd, subdeptcd, orddd, ordtm, fsexamflag, rsrvflag, 'Y');
  1684. }
  1685. /**
  1686. * @desc : 보험자기호 명 조회
  1687. * <pre>
  1688. * input : insucd 보험자기호(보험자코드)
  1689. * insuflag 보험자형태
  1690. * 1:공단/2:의료급여/3:자보/4:산재공상/5:일반/6:외국인
  1691. * </pre>
  1692. * @param :
  1693. * @return : insucdnm 보험자기호명
  1694. *
  1695. ex) model.setValue("/root/main/ptin/ptin_insunm", fGetInsucdNm( insucd, insukind));
  1696. //model.refresh();
  1697. *
  1698. * @---------------------------------------------------
  1699. */
  1700. function fGetInsucdNm(vInsucd,vInsukind) {
  1701. dsf_createDs("ds_temp_insucdlist_incd", [
  1702. {col:"insuflag", type:"STRING", size:256}
  1703. , {col:"insucd", type:"STRING", size:256}
  1704. , {col:"todd", type:"STRING", size:256}
  1705. , {col:"seqno", type:"STRING", size:256}
  1706. , {col:"instcd", type:"STRING", size:256}
  1707. , {col:"histstat", type:"STRING", size:256}
  1708. , {col:"fromdd", type:"STRING", size:256}
  1709. , {col:"insucdnm", type:"STRING", size:256}
  1710. , {col:"tel", type:"STRING", size:256}
  1711. , {col:"faxno", type:"STRING", size:256}
  1712. , {col:"zipcd1", type:"STRING", size:256}
  1713. , {col:"zipcd2", type:"STRING", size:256}
  1714. , {col:"zipcdseq", type:"STRING", size:256}
  1715. , {col:"detladdr", type:"STRING", size:256}
  1716. , {col:"oldinsucd", type:"STRING", size:256}
  1717. , {col:"chrgnm", type:"STRING", size:256}
  1718. , {col:"fstrgstrid", type:"STRING", size:256}
  1719. , {col:"fstrgstdt", type:"STRING", size:256}
  1720. , {col:"lastupdtrid", type:"STRING", size:256}
  1721. , {col:"lastupdtdt", type:"STRING", size:256}
  1722. ]);
  1723. //send
  1724. ds_send.clear();
  1725. dsf_createDsRow("ds_send", [
  1726. {col:"srchcond", type:"STRING", size:256, val: "1"}
  1727. , {col:"srchcnts", type:"STRING", size:256, val: vInsucd}
  1728. , {col:"insuflag", type:"STRING", size:256, val: vInsukind.substr(0,1)}
  1729. ]);
  1730. var oParam = {};
  1731. oParam.id = "TRPMB01501";
  1732. oParam.service = "pamcomnapp.PamComn";
  1733. oParam.method = "reqGetInsuCdList";
  1734. oParam.inds = "req=ds_send";
  1735. oParam.outds = "ds_temp_insucdlist_incd=incd";
  1736. oParam.async = false;
  1737. tranf_submit(oParam);
  1738. if (utlf_transNullToEmpty(ds_temp_insucdlist_incd.getColumn(0, "insucdnm")) != "") {
  1739. var vinsucdnm = ds_temp_insucdlist_incd.getColumn(0, "insucdnm");
  1740. return vinsucdnm;
  1741. } else {
  1742. //sysf_messageBox("조회된 정보가 없습니다.", "E999", "");
  1743. return "-";
  1744. }
  1745. }
  1746. /**
  1747. * @desc : 금액표시기에 금액 출력
  1748. * <pre>
  1749. * input : vPatnm 환자성명
  1750. * vAmt 금액
  1751. *
  1752. * </pre>
  1753. * @param :
  1754. * @return :
  1755. * @---------------------------------------------------
  1756. */
  1757. function fDisplayAmt(vPatnm, vAmt, vRcptrnm) {
  1758. //금액표시기구분(POPUP:듀얼모니터 프로톤소프트IR-600, SERIAL: LED표시기 티원브로드테크 NWD-3000)
  1759. if( AmtDispKind == 'POPUP' ){
  1760. if(vPatnm != '' || vPatnm != ' '){
  1761. vPatnm = vPatnm.substr(0, (vPatnm.length - 1)) + '★';
  1762. vPatnm = vPatnm + '님';
  1763. }
  1764. //var popupObjt = findChildWindowByScreenID("SPPMC06400");
  1765. var popupObjt = frmf_findPopup("SPPMC06400") ;
  1766. if( utlf_isNull(popupObjt) ){
  1767. //open("SPPMC06400",2,"","","SPPMC06400","","","caption:hidden;","false");
  1768. frmf_open("SPPMC06400", "SPPMC06400", "", false, 2, "", "", "", "", "", "", "", "P");
  1769. popupObjt = frmf_findPopup("SPPMC06400");
  1770. popupObjt.fInit();
  1771. popupObjt.fSetMsg(vPatnm, vAmt, vRcptrnm);
  1772. }else{
  1773. popupObjt.fInit();
  1774. popupObjt.fSetMsg(vPatnm, vAmt, vRcptrnm);
  1775. }
  1776. }else if( AmtDispKind == 'SERIAL' ){
  1777. //금액표시기 ocx
  1778. //var AmtDisplay = NWSerial_OCX;
  1779. var vreturn1 = -1;
  1780. vreturn1 =AmtDisplay.OpenCom(1,9600);
  1781. if (vreturn1 == 0) {
  1782. AmtDisplay.CloseCom();
  1783. AmtDisplay.OpenCom(1,9600);
  1784. }
  1785. var vreturn2 = -1;
  1786. vreturn2 = AmtDisplay.ModeSend(2, "00", vPatnm, vAmt );
  1787. }
  1788. }
  1789. //조영상 2009/09/29 빈센트병원 테스트를 위해서 임시로 추가
  1790. // Ku2.0에서 사용하는 디스플레이 함수임
  1791. function fDisplayAmt(vPatnm, vAmt, vRcptrnm, vinstcd) {
  1792. if( AmtDispKind == 'POPUP' ){
  1793. if(vPatnm != '' || vPatnm != ' '){
  1794. vPatnm = vPatnm.substr(0, (vPatnm.length - 1)) + '★';
  1795. vPatnm = vPatnm + '님';
  1796. }
  1797. var popupObjt = frmf_findPopup("SPPMC06400");
  1798. if( utlf_isNull(popupObjt)){
  1799. //open("SPPMC06400",2,"","","SPPMC06400","","","caption:hidden;","false");
  1800. var objArg = new Object();
  1801. objArg.amtInt = "INIT";
  1802. objArg.vPatnm = vPatnm;
  1803. objArg.vAmt = vAmt;
  1804. objArg.vRcptrnm = vRcptrnm;
  1805. //2018/04/25 이정택 수정
  1806. //frmf_open("SPPMC06400", "SPPMC06400", objArg, false, "2", "", "", "", "", "", "", "", "P");
  1807. frmf_open("SPPMC06400", "SPPMC06400", objArg, false, 2, "", "", 800, 600, "", "", "", "P");
  1808. //2018/04/25 이정택 수정
  1809. // popupObjt = frmf_findPopup("SPPMC06400");
  1810. //
  1811. //
  1812. // popupObjt.fInit();
  1813. //
  1814. // popupObjt.fSetMsg(vPatnm, vAmt, vRcptrnm);
  1815. }else{
  1816. popupObjt.fInit();
  1817. popupObjt.fSetMsg(vPatnm, vAmt, vRcptrnm);
  1818. }
  1819. }else if( AmtDispKind == 'SERIAL' ){
  1820. //금액표시기 ocx
  1821. //var AmtDisplay = NWSerial_OCX;
  1822. var vreturn1 = -1;
  1823. vreturn1 =AmtDisplay.OpenCom(1,9600);
  1824. if (vreturn1 == 0) {
  1825. AmtDisplay.CloseCom();
  1826. AmtDisplay.OpenCom(1,9600);
  1827. }
  1828. var vreturn2 = -1;
  1829. if(vinstcd == "017") {
  1830. vreturn2 = AmtDisplay.ModeSend(5, "00", vPatnm, vAmt );
  1831. }else{
  1832. vreturn2 = AmtDisplay.ModeSend(2, "00", vPatnm, vAmt );
  1833. }
  1834. }
  1835. }
  1836. function fOpenCom() {
  1837. if( AmtDispKind == 'SERIAL' ){
  1838. try {
  1839. if (utlf_isNull(this.components["NWSerial_OCX"])) { // 최초 한번만 createChild() 한다.
  1840. var NWSerial_OCX = new ActiveX("NWSerial_OCX", 0, 0, 0, 0);
  1841. NWSerial_OCX.progid = "E0B03C1E-8BC8-48AC-AD00-A7123C75341C";
  1842. NWSerial_OCX.visible = false;
  1843. this.addChild("NWSerial_OCX", NWSerial_OCX);
  1844. }
  1845. AmtDisplay = NWSerial_OCX;
  1846. var vreturn1 = -1;
  1847. vreturn1 =AmtDisplay.OpenCom(1,9600);
  1848. if (vreturn1 == 0) {
  1849. AmtDisplay.CloseCom();
  1850. AmtDisplay.OpenCom(1,9600);
  1851. }
  1852. } catch(e) {
  1853. AmtDisplay = null;
  1854. }
  1855. }
  1856. }
  1857. function fCloseCom() {
  1858. if( AmtDispKind == 'POPUP' ){
  1859. var popupObjt = frmf_findPopup("SPPMC06400");
  1860. if( popupObjt == null ){
  1861. return;
  1862. }else{
  1863. //popupObjt.fClose();
  1864. }
  1865. }else if( AmtDispKind == 'SERIAL' ){
  1866. try{
  1867. if (!utlf_isNull(this.components["NWSerial_OCX"])){
  1868. //Port Close
  1869. var vreturn3 = -1;
  1870. vreturn3 = AmtDisplay.CloseCom();
  1871. if (vreturn3 == 0) {
  1872. AmtDisplay.CloseCom();
  1873. }
  1874. }
  1875. }catch(E){
  1876. AmtDisplay = null;
  1877. }
  1878. }
  1879. }
  1880. //금액표시기 종류 체크
  1881. // var AmtDispKind = 'POPUP';
  1882. function fInit_Display() {
  1883. if( AmtDispKind == 'SERIAL' ){
  1884. try {
  1885. // 최초 한번만 createChild() 한다.
  1886. if (utlf_isNull(this.components["NWSerial_OCX"])) {
  1887. var NWSerial_OCX = new ActiveX("NWSerial_OCX", 0, 0, 0, 0);
  1888. NWSerial_OCX.progid = "E0B03C1E-8BC8-48AC-AD00-A7123C75341C";
  1889. NWSerial_OCX.visible = false;
  1890. this.addChild("NWSerial_OCX", NWSerial_OCX);
  1891. }
  1892. AmtDisplay = NWSerial_OCX;
  1893. } catch(e) {
  1894. AmtDisplay = null;
  1895. }
  1896. return (AmtDisplay != null);
  1897. }
  1898. }
  1899. //2007-12-07 이동식 추가
  1900. /**
  1901. * @desc : 금액표시기 타입 조회
  1902. *
  1903. * @return : AmtDispKind 금액표시기타입.
  1904. * @---------------------------------------------------
  1905. */
  1906. function fGetAmtDispKind(){
  1907. if( sysf_getGlobalVariable("g_AmtDispKind","p") == '' || sysf_getGlobalVariable("g_AmtDispKind","p") == null ){
  1908. ds_hidden_pamcomcd_send.clear();
  1909. dsf_createDsRow("ds_hidden_pamcomcd_send", [
  1910. {col:"cdgrupid", type:"STRING", size:256, val: 'P0022' }
  1911. , {col:"cdid", type:"STRING", size:256, val: '90'}
  1912. ]);
  1913. // submit("TRPMO00123");
  1914. var oParam = {};
  1915. oParam.id = "TRPMO00123";
  1916. oParam.service = "opatmngtapp.OPatMngt";
  1917. oParam.method = "reqGetCenterYN";
  1918. oParam.inds = "req=ds_hidden_pamcomcd_send";
  1919. oParam.outds = "ds_hidden_pamcomcd_rcv=pamcd";
  1920. oParam.async = false;
  1921. tranf_submit(oParam);
  1922. var cdnm = "";
  1923. if(ds_hidden_pamcomcd_rcv.rowcount > 0) {
  1924. cdnm = ds_hidden_pamcomcd_rcv.getColumn(0, "cdnm");
  1925. }else{
  1926. cdnm = 'POPUP';
  1927. }
  1928. //글로벌변수 선언 환자번호
  1929. sysf_setGlobalVariable("g_AmtDispKind",cdnm,"p");
  1930. ds_hidden_pamcomcd_send.clear();
  1931. ds_hidden_pamcomcd_rcv.clear();
  1932. return sysf_getGlobalVariable("g_AmtDispKind","p");
  1933. }else{
  1934. return sysf_getGlobalVariable("g_AmtDispKind","p");
  1935. }
  1936. /*
  1937. if( sysf_getGlobalVariable("g_AmtDispKind","p") == '' || sysf_getGlobalVariable("g_AmtDispKind","p") == null ){
  1938. model.removeNodeset("/root/hidden/pamcomcd");
  1939. model.makeNode("/root/hidden/pamcomcd/send/cdgrupid");
  1940. model.makeNode("/root/hidden/pamcomcd/send/cdid");
  1941. model.makeNode("/root/hidden/pamcomcd/rcv");
  1942. model.setValue("/root/hidden/pamcomcd/send/cdgrupid", 'P0022');
  1943. model.setValue("/root/hidden/pamcomcd/send/cdid", '90');
  1944. submit("TRPMO00123");
  1945. var iCount = getNodesetCount("/root/hidden/pamcomcd/rcv/pamcd/cdnm");
  1946. if (iCount > 0) {
  1947. var cdnm = model.getValue("/root/hidden/pamcomcd/rcv/pamcd/cdnm");
  1948. if (cdnm == '-') {
  1949. return sysf_getGlobalVariable("g_AmtDispKind","p");
  1950. }else{
  1951. model.removeNodeset("/root/hidden/pamcomcd");
  1952. return cdnm;
  1953. }
  1954. }else{
  1955. var cdnm = model.getValue("/root/hidden/pamcomcd/rcv/pamcd/cdnm")
  1956. if (cdnm == '-') {
  1957. return sysf_getGlobalVariable("g_AmtDispKind","p");
  1958. }else{
  1959. model.removeNodeset("/root/hidden/pamcomcd");
  1960. return 'POPUP';
  1961. }
  1962. }
  1963. }else{
  1964. return sysf_getGlobalVariable("g_AmtDispKind","p");
  1965. }
  1966. */
  1967. }
  1968. //2007-12-07 이동식 추가
  1969. /**
  1970. * @desc : 임상환자 정보 조회
  1971. * <pre>
  1972. * input : PID 등록번호
  1973. * ORDDD 진료일자
  1974. * </pre>
  1975. * @param : PID, ORDDD
  1976. * @return : medfeeyn 진찰료지원여부
  1977. * @---------------------------------------------------
  1978. */
  1979. function fGetStdyPatInfo(pid, orddd) {
  1980. ds_hidden_temp_stdy.clearData();
  1981. dsf_createDsRow("temp_ds_send", [{col:"pid", type:"STRING", size:256, val: pid}
  1982. , {col:"orddd", type:"STRING", size:256, val: orddd}]);
  1983. var oParam = {};
  1984. oParam.id = "TRPAC00401";
  1985. oParam.service = "pamcomnapp.PamComn";
  1986. oParam.method = "reqGetStdyPatInfo";
  1987. oParam.inds = "req=temp_ds_send";
  1988. oParam.outds = "ds_hidden_temp_stdy=stdy";
  1989. oParam.async = false;
  1990. oParam.callback = "cf_TRPAC00401";
  1991. tranf_submit(oParam);
  1992. if (arErrorCode.pop("TRPAC00401") > -1) {
  1993. return ds_hidden_temp_stdy.getColumn(0, "medfeeyn");
  1994. }else{
  1995. return "";
  1996. }
  1997. }
  1998. function cf_TRPAC00401(sSvcId, nErrorCode, sErrorMsg) {
  1999. arErrorCode.push(sSvcId, nErrorCode);
  2000. }
  2001. //2008-01-08 이동식 추가 - 진료의뢰서 확인
  2002. function fCheckOrdCnst(pid, fsexamflag, orddeptcd, deptengabbr, reqdeptno, outhistpath, insukind){
  2003. //치과(55), 가정의학과(23), 재활의학과(21) 제외
  2004. // 치과 진찰료 별도산정 관련 수정(2017/05/17 이정택)
  2005. //if( reqdeptno == "55" || reqdeptno == "23" || reqdeptno == "21" ){
  2006. if( reqdeptno.substr(0, 1) == "5" || reqdeptno == "23" || reqdeptno == "21" ){
  2007. // 치과 진찰료 별도산정 관련 수정(2017/05/17 이정택)
  2008. return true;
  2009. }
  2010. //응급내역 체크 - 1주일 이내 응급내역이 있으면 진료의뢰서 필요 없음.
  2011. // if(fCheckERPat(pid, 'N')) return true;
  2012. //2010-02-02 입원협진있을경우 진료의뢰서 필요없음.
  2013. // model.removeNodeset("/root/temp/cnstinfo");
  2014. // model.makeNode("/root/temp/cnstinfo/temp");
  2015. // model.makeNode("/root/temp/cnstinfo/send/pid");
  2016. // model.makeNode("/root/temp/cnstinfo/send/orddeptcd");
  2017. // model.setValue("/root/temp/cnstinfo/send/pid", pid);
  2018. // model.setValue("/root/temp/cnstinfo/send/orddeptcd", orddeptcd);
  2019. // if( submit("TRPAC00501") ){
  2020. // var cnt = getNodesetCount("/root/temp/cnstinfo/temp/cnstinfo");
  2021. // if( cnt > 0 ){
  2022. // return true;
  2023. // }
  2024. // }
  2025. // if( outhistpath != null && outhistpath != '' && outhistpath != ' ' && outhistpath != '-' ){
  2026. // var histCnt = getNodesetCount(outhistpath);
  2027. // if( histCnt > 0 ){
  2028. // for( var i = 1; i <= histCnt ; i++){
  2029. // if( model.getValue(outhistpath + "[" + i + "]/rsrvflag") == "X"){ //응급내역이 1주일 안에 존재하면 진료의뢰서 필요 없음!!
  2030. // var interval = utlf_getDateInterval( model.getValue(outhistpath + "[" + i + "]/orddd"), utlf_getCurrentDate());
  2031. // if( parseInt(interval) <= 7 && parseInt(interval) >= 0){
  2032. // return true;
  2033. // }
  2034. // }
  2035. // } //for( var i = 1; i <= histCnt ; i++){
  2036. // } //if( histCnt > 0 ){
  2037. //컨설트의뢰정보 체크 - 컨설트일 경우 진료의로서 필요 없음!.
  2038. //var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  2039. if( pid != '' || pid != ' ' || pid != '-' ){
  2040. ds_temp_emrcnst_send.clear();
  2041. ds_temp_emrcnst_temp_emrcnst.clear();
  2042. dsf_createDsRow("ds_temp_emrcnst_send", [
  2043. {col:"pid", type:"STRING", size:256, val: pid}
  2044. , {col:"flag", type:"STRING", size:256, val : 'T'}
  2045. ]);
  2046. //if(submit("TRPAC00301")) {
  2047. var oParam = {};
  2048. oParam.id = "TRPAC00301";
  2049. oParam.service = "pamcomnapp.PamComn";
  2050. oParam.method = "reqGetOrdCnstInfo";
  2051. oParam.inds = "req=ds_temp_emrcnst_send";
  2052. oParam.outds = "ds_temp_emrcnst_temp_emrcnst=emrcnst";
  2053. oParam.async = false;
  2054. oParam.callback = "cf_TRPAC00301";
  2055. tranf_submit(oParam);
  2056. if( arErrorCode.pop("TRPAC00301") > -1 ){
  2057. var cnt = ds_temp_emrcnst_temp_emrcnst.rowcount ;
  2058. if( cnt > 0 ){
  2059. for( var i = 0; i < cnt ; i++){
  2060. if( ds_temp_emrcnst_temp_emrcnst.getColumn( i, "recvdeptcd") == orddeptcd){ //컨설트 해당과는 진료의뢰서 필요없음!!
  2061. // var reqdeptcd = model.getValue("/root/temp/emrcnst/temp/emrcnst[" + i + "]/reqdeptcd");
  2062. // var reqdeptengabbr = model.getValue("/root/init/orddeptcd/orddeptcdlist[ cd = '" + reqdeptcd + "']/deptengabbr");
  2063. // var reqdeptreqdeptno = model.getValue("/root/init/orddeptcd/orddeptcdlist[ cd = '" + reqdeptcd + "']/reqdeptno");
  2064. // return fCheckOrdCnst(pid, fsexamflag, reqdeptcd, reqdeptengabbr, reqdeptreqdeptno, outhistpath, insukind);
  2065. return true;
  2066. }
  2067. }
  2068. } //if( cnt > 0 ){
  2069. } //if( submit("TRPAC00301") ){
  2070. } //if( pid != '' || pid != ' ' || pid != '-' ){
  2071. // } //if( outhistpath != null && outhistpath != '' && outhistpath != ' ' && outhistpath != '-' ){
  2072. //var fsexamflag = model.getValue("/root/main/reservation/fsexamflag");
  2073. //병원초진인 경우
  2074. if( fsexamflag == 'F' ){
  2075. //sysf_messageBox("진료의뢰서가 필요합니다.", "I999", "");
  2076. return false;
  2077. //과초진 /상병초진 /재진인 경우
  2078. }else if( fsexamflag == 'D' || fsexamflag == 'S' || fsexamflag == 'R' ){
  2079. //건강보험
  2080. if( insukind == gsInsu_BoHeom ){
  2081. //치과(55), 가정의학과(23), 재활의학과(21) 제외
  2082. //if( reqdeptno == "55" || reqdeptno == "23" || reqdeptno == "21" ){
  2083. // return true;
  2084. //}
  2085. //의료급여1,2
  2086. //}else if( ){} //모든과 체크
  2087. //건강보험, 의료급여1,2 제외 일 경우 체크제외
  2088. }else if(insukind == gsInsu_JaboKind || insukind == gsInsu_SanJae || insukind == gsInsu_GongSang
  2089. || insukind == gsInsu_IlBan || insukind == gsInsu_ForIn || insukind == gsInsu_ImSang){
  2090. return true;
  2091. }
  2092. //진료의뢰서 조회
  2093. ds_temp_ordreqform_send.clear();
  2094. ds_temp_ordreqform_cnst.clear();
  2095. dsf_createDsRow("ds_temp_ordreqform_send", [
  2096. {col:"pid", type:"STRING", size:256, val: pid }
  2097. , {col:"reqdeptno", type:"STRING", size:256, val: reqdeptno }
  2098. , {col:"basedd", type:"STRING", size:256, val: "" }
  2099. ]);
  2100. //if( submit("TRPMO01201") ){
  2101. var oParam = {};
  2102. oParam.id = "TRPMO01201";
  2103. oParam.service = "opatmngtapp.OutRgst";
  2104. oParam.method = "reqGetOrdReqForms";
  2105. oParam.inds = "req=ds_temp_ordreqform_send";
  2106. oParam.outds = "ds_temp_ordreqform_cnst=cnst";
  2107. oParam.async = false;
  2108. oParam.callback = "cf_TRPMO01201";
  2109. tranf_submit(oParam);
  2110. if( arErrorCode.pop("TRPMO01201") > -1 ){
  2111. //진료의뢰서가 없을경우..
  2112. var cnt = ds_temp_ordreqform_cnst.rowcount;
  2113. if( cnt <= 0 ){
  2114. //sysf_messageBox("진료의뢰서가 필요합니다.", "I999", "");
  2115. return false;
  2116. //진료의뢰서가 존재할 경우
  2117. }else{
  2118. //류마티스내과의 경우 따로 의뢰서 필요!! 그외 진료과들은 청구부서번호 당 의뢰서 1건 필요
  2119. if( deptengabbr == "MR" ){
  2120. //진료의뢰서 내역 중 류마티스내과 조회
  2121. for( var i = 0; i < cnt; i++ ){
  2122. if( orddeptcd == ds_temp_ordreqform_cnst.getColumn( i , "orddeptcd") ){
  2123. return true;
  2124. }
  2125. }
  2126. //없을 경우..
  2127. return false;
  2128. }else{
  2129. //같은 청구부서번호를 가진 진료과들 중 진료의뢰서를 제출한 진료과 존재!!
  2130. return true;
  2131. }
  2132. }
  2133. }else{
  2134. sysf_messageBox("진료의뢰서 확인 오류!!", "I999", "");
  2135. return false;
  2136. }
  2137. ds_temp_ordreqform_cnst.clear();
  2138. ds_temp_ordreqform_send.clear();
  2139. return false;
  2140. }
  2141. }
  2142. //END..
  2143. function cf_TRPAC00301(sSvcId, nErrorCode, sErrorMsg) {
  2144. arErrorCode.push(sSvcId, nErrorCode);
  2145. }
  2146. function cf_TRPMO01201(sSvcId, nErrorCode, sErrorMsg) {
  2147. arErrorCode.push(sSvcId, nErrorCode);
  2148. }
  2149. //2008-01-10 이동식 추가
  2150. //가정간호환자 체크
  2151. function fCheckHomeCarePat(){
  2152. dsf_createDsRow("ds_send_homecare", [
  2153. {col:"pid", type:"STRING", size:256, val: ds_main_ptbs.getColumn(0, "ptbs_pid")}
  2154. ]);
  2155. //if( submit("TRPMO00114") ){
  2156. var oParam = {};
  2157. oParam.id = "TRPMO00114";
  2158. oParam.service = "opatmngtapp.OPatMngt";
  2159. oParam.method = "reqGetHomeCarePatInfo";
  2160. oParam.inds = "req=ds_send_homecare";
  2161. oParam.outds = "ds_hidden_rcv_homecare=homecare";
  2162. oParam.async = false;
  2163. oParam.callback = "cf_TRPMO00114";
  2164. tranf_submit(oParam);
  2165. if( arErrorCode.pop("TRPMO00114") > -1 ){
  2166. var cnt = ds_hidden_rcv_homecare.rowcount ;
  2167. if( cnt > 0){
  2168. var msg = '';
  2169. for( var i = 0; i < cnt; i++ ){
  2170. if( ds_hidden_rcv_homecare.getColumn( i, "careflag") == 'H' ){
  2171. msg = msg + "[가정간호]";
  2172. }else if( ds_hidden_rcv_homecare.getColumn( i, "careflag") == 'V' ){
  2173. msg = msg + "[방문간호]";
  2174. }else if( ds_hidden_rcv_homecare.getColumn( i, "careflag") == 'C' ){
  2175. msg = msg + "[가정형 호스피스]";
  2176. }
  2177. }
  2178. //var hngnm = model.getValue("/root/main/ptbs/ptbs_hngnm");
  2179. sysf_messageBox(msg + "대상 환자입니다.", "I999", "");
  2180. }
  2181. }
  2182. ds_send_homecare.clear();
  2183. ds_hidden_rcv_homecare.clear();
  2184. }
  2185. function cf_TRPMO00114(sSvcId, nErrorCode, sErrorMsg) {
  2186. arErrorCode.push(sSvcId, nErrorCode);
  2187. }
  2188. //2008-01-10 이동식 추가
  2189. //장기이식환자 체크
  2190. function fCheckTransPat(){
  2191. dsf_createDsRow("ds_send_transpat", [
  2192. {col:"pid", type:"STRING", size:256, val: ds_main_ptbs.getColumn(0, "ptbs_pid")}
  2193. ]);
  2194. //if( submit("TRPAO00212") ){
  2195. var oParam = {};
  2196. oParam.id = "TRPAO00212";
  2197. oParam.service = "outordamtmngtapp.OutRcptRef";
  2198. oParam.method = "reqGetTrans";
  2199. oParam.inds = "req=ds_send_transpat";
  2200. oParam.outds = "ds_hidden_rcv_trans=trans";
  2201. oParam.async = false;
  2202. oParam.callback = "cf_TRPAO00212";
  2203. tranf_submit(oParam);
  2204. if( arErrorCode.pop("TRPAO00212") > -1 ){
  2205. if (ds_hidden_rcv_trans.getColumn(0, "transgubn")=="1" || ds_hidden_rcv_trans.getColumn(0, "transgubn")=="2") {
  2206. if (ds_hidden_rcv_trans.getColumn(0, "transgubn")=="1") {
  2207. var transmessage = '공여자 입니다. ' + ' * 수혜자 : ' + ds_hidden_rcv_trans.getColumn(0, "phngnm") + '[' + ds_hidden_rcv_trans.getColumn(0, "ppid") + ']' + ' 에게 ' +
  2208. ds_hidden_rcv_trans.getColumn(0, "trnptkindnm") + ' 공여 하였습니다.';
  2209. }
  2210. if (ds_hidden_rcv_trans.getColumn(0, "transgubn")=="2") {
  2211. var transmessage = '수혜자 입니다. ' + ' * 공여자 : ' + ds_hidden_rcv_trans.getColumn(0, "phngnm") + '[' + ds_hidden_rcv_trans.getColumn(0, "ppid") + ']' + '에게서 ' +
  2212. ds_hidden_rcv_trans.getColumn(0, "trnptkindnm") + ' 수혜 받았습니다.';
  2213. }
  2214. sysf_messageBox(transmessage, "I999","");
  2215. return;
  2216. }
  2217. }
  2218. ds_send_transpat.clear();
  2219. ds_hidden_rcv_trans.clear();
  2220. }
  2221. function cf_TRPAO00212(sSvcId, nErrorCode, sErrorMsg) {
  2222. arErrorCode.push(sSvcId, nErrorCode);
  2223. }
  2224. //2008-02-14 이동식 추가
  2225. //의사휴진일정 체크
  2226. //의사 선택될 때
  2227. function fCheckDrHoliSche(orddeptcd, orddrid, orddd, ordtm){
  2228. //model.makeNode("/root/send/drholische/rcv");
  2229. dsf_createDsRow("ds_send_drholische", [
  2230. {col:"orddeptcd", type:"STRING", size:256, val: orddeptcd}
  2231. , {col:"orddrid", type:"STRING", size:256, val: orddrid }
  2232. , {col:"orddd", type:"STRING", size:256, val: orddd }
  2233. , {col:"ordtm", type:"STRING", size:256, val: ordtm }
  2234. ]);
  2235. //if( submit("TRPMO00115") ){
  2236. var oParam = {};
  2237. oParam.id = "TRPMO00115";
  2238. oParam.service = "opatmngtapp.OPatMngt";
  2239. oParam.method = "reqGetDrHoliSche";
  2240. oParam.inds = "req=ds_send_drholische";
  2241. oParam.outds = "ds_send_drholische_rcv=drholische";
  2242. oParam.async = false;
  2243. oParam.callback = "cf_TRPMO00115";
  2244. tranf_submit(oParam);
  2245. if( arErrorCode.pop("TRPMO00115") > -1 ){
  2246. if( ds_send_drholische_rcv.rowcount > 0){
  2247. var holiflag = ds_send_drholische_rcv.getColumn(0, "holiflag");
  2248. var endcnfmyn = ds_send_drholische_rcv.getColumn(0, "endcnfmyn");
  2249. var msg = '';
  2250. if( holiflag == 'T' ){
  2251. msg = '당일 진료가 마감되었습니다. 진료과로 문의하시기 바랍니다.'
  2252. }else if( holiflag == 'H' ){
  2253. msg = '당일 진료가 없습니다. 진료과로 문의하시기 바랍니다.'
  2254. }else{
  2255. ds_send_drholische_rcv.clear();
  2256. ds_send_drholische.clear();
  2257. return false;
  2258. }
  2259. if( endcnfmyn == 'Y' ){
  2260. sysf_messageBox("선택하신 진료의는 현재 " + msg, "I999", "");
  2261. }
  2262. }else{
  2263. }
  2264. }
  2265. //model.removeNodeset("/root/send/drholische");
  2266. ds_send_drholische_rcv.clear();
  2267. ds_send_drholische.clear();
  2268. }
  2269. function cf_TRPMO00115(sSvcId, nErrorCode, sErrorMsg) {
  2270. arErrorCode.push(sSvcId, nErrorCode);
  2271. }
  2272. //2008-05-26 이동식 추가
  2273. //응급 1주일 이내 내원 환자 체크
  2274. function fCheckERPat(pid, flag){
  2275. //receive
  2276. ds_hidden_rcv_temp_erpat.clear();
  2277. dsf_createDs("ds_hidden_rcv_temp_erpat", [
  2278. {col:"pid", type:"STRING", size:256}
  2279. , {col:"orddd", type:"STRING", size:256}
  2280. ]);
  2281. //send
  2282. ds_send_erpat.clear();
  2283. dsf_createDsRow("ds_send_erpat", [
  2284. {col:"pid", type:"STRING", size:256, val: pid}
  2285. , {col:"flag", type:"STRING", size:256, val: flag}
  2286. ]);
  2287. //if( submit("TRPMO00116") ){
  2288. var oParam = {};
  2289. oParam.id = "TRPMO00116";
  2290. oParam.service = "opatmngtapp.OPatMngt";
  2291. oParam.method = "reqGetERPatInfo";
  2292. oParam.inds = "req=ds_send_erpat";
  2293. oParam.outds = "ds_hidden_rcv_temp_erpat=erpat";
  2294. oParam.async = false;
  2295. oParam.callback = "cf_TRPMO00116";
  2296. tranf_submit(oParam);
  2297. if( arErrorCode.pop("TRPMO00116") > -1 ){
  2298. if (ds_hidden_rcv_temp_erpat.rowcount > 0 ) {
  2299. var orddd = ds_hidden_rcv_temp_erpat.getColumn(0, "orddd");
  2300. //flag 값을 'N' 또는 'n'일 경우 메세지를 출력하지 않는다.
  2301. if( flag != 'N' && flag != 'n' ){
  2302. sysf_messageBox(orddd + " 응급실 내원환자입니다.", "I999","");
  2303. }
  2304. ds_hidden_rcv_temp_erpat.clear();
  2305. ds_send_erpat.clear();
  2306. return true;
  2307. }
  2308. }
  2309. ds_hidden_rcv_temp_erpat.clear();
  2310. ds_send_erpat.clear();
  2311. return false;
  2312. }
  2313. function cf_TRPMO00116(sSvcId, nErrorCode, sErrorMsg) {
  2314. arErrorCode.push(sSvcId, nErrorCode);
  2315. }
  2316. //2008-06-02 이동식 추가
  2317. //외래등록 환자조회시 체크사항 모두 조회
  2318. function fGetTotalCheckInfo(){
  2319. /*
  2320. model.makeNode("/root/send/totalcheckinfo/pid");
  2321. model.makeNode("/root/send/totalcheckinfo/rrgstno1");
  2322. model.makeNode("/root/send/totalcheckinfo/rrgstno2");
  2323. model.makeNode("/root/send/totalcheckinfo/hngnm");
  2324. model.makeNode("/root/send/totalcheckinfo/orddeptcd");
  2325. model.makeNode("/root/send/totalcheckinfo/orddrid");
  2326. model.setValue("/root/send/totalcheckinfo/pid", model.getValue("/root/main/ptbs/ptbs_pid"));
  2327. model.setValue("/root/send/totalcheckinfo/rrgstno1", model.getValue("/root/main/ptbs/ptbs_rrgstno1"));
  2328. model.setValue("/root/send/totalcheckinfo/rrgstno2", model.getValue("/root/main/ptbs/ptbs_rrgstno2"));
  2329. model.setValue("/root/send/totalcheckinfo/hngnm", model.getValue("/root/main/ptbs/ptbs_hngnm"));
  2330. model.setValue("/root/send/totalcheckinfo/orddeptcd", model.getValue("/root/main/otpt/otpt_orddeptcd"));
  2331. model.setValue("/root/send/totalcheckinfo/orddrid", model.getValue("/root/main/otpt/otpt_orddrid"));
  2332. model.makeNode("/root/hidden/rcv");
  2333. */
  2334. var retValue = false;
  2335. // if( submit("TRPMO00117") ){
  2336. // 응급실 내원이력 팝업 주석처리 by 조중래 20181226
  2337. // //1주일 이내 응급실 내원환자 체크
  2338. // if (ds_hidden_rcv_erpat.rowcount > 0 ) {
  2339. //
  2340. // var orddd = ds_hidden_rcv_erpat.getColumn(0, "orddd");
  2341. // var erorddeptcd = ds_hidden_rcv_erpat.getColumn(0, "erorddeptcd");
  2342. // sysf_messageBox(orddd + "" + erorddeptcd + " 응급실 내원환자입니다.", "I999","");
  2343. //
  2344. // }
  2345. //장애환자 체크
  2346. if( ds_hidden_rcv_handcappatlist.rowcount > 0 ){
  2347. dsf_makeValue( ds_main_otpt, "otpt_handicaprbookpossnyn", "string", "Y");
  2348. }else{
  2349. dsf_makeValue( ds_main_otpt, "otpt_handicaprbookpossnyn", "string", "N");
  2350. }
  2351. //장기이식환자 체크
  2352. // ds_hidden_rcv_temp_trans --> ds_hidden_rcv_trans
  2353. if (ds_hidden_rcv_trans.getColumn(0, "transgubn")=="1" || ds_hidden_rcv_trans.getColumn(0, "transgubn")=="2") {
  2354. if (ds_hidden_rcv_trans.getColumn(0, "transgubn")=="1") {
  2355. var transmessage = '공여자 입니다. ' + ' * 수혜자 : ' + ds_hidden_rcv_trans.getColumn(0, "phngnm") + '[' + ds_hidden_rcv_trans.getColumn(0, "ppid") + ']' + ' 에게 ' +
  2356. ds_hidden_rcv_trans.getColumn(0, "trnptkindnm") + ' 공여 하였습니다.';
  2357. }
  2358. if (ds_hidden_rcv_trans.getColumn(0, "transgubn")=="2") {
  2359. var transmessage = '수혜자 입니다. ' + ' * 공여자 : ' + ds_hidden_rcv_trans.getColumn(0, "phngnm") + '[' +ds_hidden_rcv_trans.getColumn(0, "ppid") + ']' + '에게서 ' +
  2360. ds_hidden_rcv_trans.getColumn(0, "trnptkindnm") + ' 수혜 받았습니다.';
  2361. }
  2362. sysf_messageBox(transmessage, "I999","");
  2363. }
  2364. //가정간호 환자 체크
  2365. if( ds_hidden_rcv_homecare.rowcount > 0){
  2366. var cnt = ds_hidden_rcv_homecare.rowcount;
  2367. var msg = '';
  2368. for( var i = 0; i < cnt; i++ ){
  2369. if( ds_hidden_rcv_homecare.getColumn( i , "careflag") == 'H' ){
  2370. msg = msg + "[가정간호]";
  2371. }else if( ds_hidden_rcv_homecare.getColumn( i , "careflag") == 'V' ){
  2372. msg = msg + "[방문간호]";
  2373. }else if( ds_hidden_rcv_homecare.getColumn( i , "careflag") == 'C' ){
  2374. msg = msg + "[가정형 호스피스]";
  2375. }
  2376. }
  2377. //var hngnm = model.getValue("/root/main/ptbs/ptbs_hngnm");
  2378. sysf_messageBox(msg + "대상 환자입니다.", "I999", "");
  2379. }
  2380. //자선환자 체크
  2381. if(ds_hidden_rcv_charity.rowcount > 0) {
  2382. if( ds_hidden_rcv_charity.getColumn(0, "charityYN") == 'Y'){
  2383. //var hngnm = ds_main_ptbs.getColumn(0, "ptbs_hngnm");
  2384. var retValue = sysf_messageBox("자선진료비 지원 대상 환자입니다. 내역을 확인하시겠습니까?", "Q999", "");
  2385. if( retValue == 6 ){
  2386. var pid = ds_main_ptbs.getColumn(0, "ptbs_pid");
  2387. fOpenCharityPopup(pid);
  2388. }
  2389. }
  2390. }
  2391. //검진환자 체크
  2392. //20100629 smpark 검진 메세지 병원별 적용
  2393. if (ds_init_P0022.getColumn(ds_init_P0022.findRowExpr("cd == '190'"), "nm") == "Y") {
  2394. if( ds_hidden_rcv_mediexam.rowcount > 0 ){
  2395. var orddd = ds_hidden_rcv_mediexam.getColumn(0, "orddd");
  2396. if( utlf_isValidDateTime(orddd, "YYYYMMDD")){
  2397. var interval = utlf_getDateInterval(utlf_getCurrentDate(), orddd);
  2398. var intervalMsg = '';
  2399. if( interval <= 0 ){
  2400. interval = parseInt(interval) * -1
  2401. intervalMsg = interval + "일 전";
  2402. if( interval <= 365 ){
  2403. sysf_messageBox(orddd.substr(0,4) + "년 " + orddd.substr(4,2) + "월 " + orddd.substr(6,2)
  2404. + "일(" + intervalMsg + ") 건강검진을 받은 이력이 있습니다. \n초재진여부를 확인해 주세요.", "I999", "");
  2405. }
  2406. }
  2407. }
  2408. }
  2409. }
  2410. //등록번호가 2개인 환자 합번여부 체크 및 합번 신청
  2411. if( ds_hidden_rcv_bindpid.rowcount > 0 ){
  2412. var pid = ds_main_ptbs.getColumn(0, "ptbs_pid");
  2413. var hngnm = ds_main_ptbs.getColumn(0, "ptbs_hngnm");
  2414. var cnt = ds_hidden_rcv_bindpid.rowcount;
  2415. var pids = ' ';
  2416. for( var i = 0; i < cnt; i++ ){
  2417. if( ds_hidden_rcv_bindpid.getColumn( i , "pid") == 'OLDPID' ){
  2418. var sBindPid = ds_hidden_rcv_bindpid.getColumn( i , "newpid");
  2419. var retValue = sysf_messageBox(pid + "(" + hngnm + ") 환자의 등록번호가 [ " + sBindPid + " ] 로 합번 신청되었습니다. 합번 신청한 번호로 재조회 하시겠습니까?", "Q999", "");
  2420. if( retValue == '6' ){
  2421. ds_main_ptbs.setColumn(0, "ptbs_pid", sBindPid);
  2422. ipt_pid.refresh();
  2423. fSearchOutRgstInfo();
  2424. return false;
  2425. }else{
  2426. //화면 초기화!!
  2427. //btn_init.dispatch("DOMActivate");
  2428. btn_init_onclick(null, null);
  2429. return false;
  2430. }
  2431. }
  2432. pids = pids + ds_hidden_rcv_bindpid.getColumn( i , "oldpid") + ' ';
  2433. }
  2434. //var retValue = sysf_messageBox(hngnm + "님의 등록번호가 " + cnt + "개 더 존재합니다.[" + pids + "]\n합번 신청하시겠습니까?", "Q999", "");
  2435. //2015/01/20 이정택 수정
  2436. var bind_instcd = ds_hidden_rcv_pidchk.getColumn(ds_hidden_rcv_pidchk.findRowExpr("instcd != '" + sysf_getUserInfo("dutplceinstcd") + "'"), "instcd");
  2437. var bind_instnm = ds_hidden_rcv_pidchk.getColumn(ds_hidden_rcv_pidchk.findRowExpr("instcd != '" + sysf_getUserInfo("dutplceinstcd") + "'"), "instnm");
  2438. var bind_oldpid = ds_hidden_rcv_pidchk.getColumn(ds_hidden_rcv_pidchk.findRowExpr("instcd != '" + sysf_getUserInfo("dutplceinstcd") + "'"), "oldpid");
  2439. var bind_newpid = ds_hidden_rcv_pidchk.getColumn(ds_hidden_rcv_pidchk.findRowExpr("instcd != '" + sysf_getUserInfo("dutplceinstcd") + "'"), "newpid");
  2440. var bind_stateflag = ds_hidden_rcv_pidchk.getColumn(ds_hidden_rcv_pidchk.findRowExpr("instcd != '" + sysf_getUserInfo("dutplceinstcd") + "'"), "stateflag");
  2441. if(!utlf_isNull(bind_instcd)){
  2442. var retValue = sysf_messageBox(hngnm + "님의 등록번호가 " + cnt + "개 더 존재합니다.[" + pids + "]\n합번 신청하시겠습니까?\n[" +bind_instnm+":"+bind_oldpid+"(구)->"+bind_newpid+"(신)]["+bind_stateflag+"]", "Q999", ""); //"확인", 4|36|256 );
  2443. }else{
  2444. var retValue = sysf_messageBox(hngnm + "님의 등록번호가 " + cnt + "개 더 존재합니다.[" + pids + "]\n합번 신청하시겠습니까?","Q999", ""); // "확인", 4|36|256 );
  2445. }
  2446. //2015/01/20 이정택 수정
  2447. if( retValue == '6' ){
  2448. // for( var i = 1; i <= cnt; i++ ){
  2449. // model.makeNode("/root/send/bindpid[" + i + "]/oldpid");
  2450. // model.makeNode("/root/send/bindpid[" + i + "]/newpid");
  2451. // model.setValue("/root/send/bindpid[" + i + "]/oldpid", model.getValue("/root/hidden/rcv/bindpid[" + i + "]/pid"));
  2452. // model.setValue("/root/send/bindpid[" + i + "]/newpid", model.getValue("/root/main/ptbs/ptbs_pid"));
  2453. // }
  2454. //if( submit("TXPMO00107") ){
  2455. dsf_createDsRow("ds_send_req", [
  2456. {col:"oldpid", type:"STRING", size:256, val: ''}
  2457. , {col:"newpid", type:"STRING", size:256, val: ''}
  2458. ]);
  2459. ds_send_req.copyRow(0, ds_hidden_rcv_bindpid, 0);
  2460. // 실제 내부적으로는 TRPMO00113 를 호출함, 2016-08-08 kimdo3
  2461. var oParam = {};
  2462. oParam.id = "TXPMO00107";
  2463. oParam.service = "opatmngtapp.OPatMngt";
  2464. oParam.method = "reqInsBindPidReqData";
  2465. oParam.inds = "req=ds_send_req";
  2466. oParam.outds = "";
  2467. oParam.async = false;
  2468. oParam.callback = "cf_TXPMO00107";
  2469. tranf_submit(oParam);
  2470. if( arErrorCode.pop("TXPMO00107") > -1 ){
  2471. //model.removeNodeset("/root/send/bindpid");
  2472. sysf_messageBox("합번 신청 완료!", "I999", "");
  2473. }else{
  2474. if( sysf_messageBox("합번 신청 오류!! 재신청 하시겠습니까?", "Q999", "") == '6'){
  2475. var oParam1 = {};
  2476. oParam1.id = "TXPMO00107";
  2477. oParam1.service = "opatmngtapp.OPatMngt";
  2478. oParam1.method = "reqInsBindPidReqData";
  2479. oParam1.inds = "req=ds_send_req";
  2480. oParam1.outds = "";
  2481. oParam1.async = false;
  2482. oParam1.callback = "cf_TXPMO00107";
  2483. tranf_submit(oParam1);
  2484. if( arErrorCode.pop("TXPMO00107") > -1 ){
  2485. //model.removeNodeset("/root/send/bindpid");
  2486. sysf_messageBox("합번 재신청 완료!", "I999", "");
  2487. }else{
  2488. sysf_messageBox("합번 재신청 오류!! 의료정보과에 문의하세요.", "E999", "");
  2489. }
  2490. }else{
  2491. //model.removeNodeset("/root/send/bindpid");
  2492. }
  2493. }
  2494. }
  2495. }
  2496. //직원정보조회
  2497. if( ds_hidden_rcv_famylist.rowcount > 0 ){
  2498. // Return
  2499. //send dataset
  2500. dsf_createDsRow("ds_send_discpat", [
  2501. {col:"checkcount" , type:"STRING", size:256, val: "1"}
  2502. , {col:"emplno" , type:"STRING", size:256, val: ""}
  2503. , {col:"emplnm" , type:"STRING", size:256, val: ""}
  2504. , {col:"rrgstno" , type:"STRING", size:256, val: ""}
  2505. , {col:"rrgstno1" , type:"STRING", size:256, val: ""}
  2506. , {col:"rrgstno2" , type:"STRING", size:256, val: "" }
  2507. , {col:"pid" , type:"STRING", size:256, val: ds_main_ptbs.getColumn(0, "ptbs_pid")}
  2508. , {col:"orddd" , type:"STRING", size:256, val: ""}
  2509. ]);
  2510. //retrun dataset
  2511. //submit("TRPMC03802");
  2512. var oParam = {};
  2513. oParam.id = "TRPMC03802";
  2514. oParam.service = "pamcomnapp.PamComn";
  2515. oParam.method = "reqGetFamyList";
  2516. oParam.inds = "req=ds_send_discpat";
  2517. oParam.outds = "ds_temp_result_famylist=famylist ds_temp_uncolist=uncolist";
  2518. oParam.async = false;
  2519. tranf_submit(oParam);
  2520. //modal("SPPMC03800", "1","150", "150", "SPPMC03800", "/root/hidden/rcv", "/root/main/result");
  2521. //선택한 직원정보 세팅
  2522. //var emplno = frmf_getParameter("SPPMC03800_emplid");
  2523. //var emplnm = frmf_getParameter("SPPMC03800_emplnm");
  2524. //
  2525. //var discuncocd = frmf_getParameter("SPPMC03800_discuncocd");
  2526. //
  2527. //var famyrelnm = frmf_getParameter("SPPMC03800_famyrelnm");
  2528. //var preststatnm = frmf_getParameter("SPPMC03800_preststatnm");
  2529. //var profacptyn = frmf_getParameter("SPPMC03800_profacptyn");
  2530. //var profacptdd = frmf_getParameter("SPPMC03800_profacptdd");
  2531. //var remark = frmf_getParameter("SPPMC03800_remark");
  2532. //var aftrcptyn = frmf_getParameter("SPPMC03800_aftrcptyn");
  2533. var emplno = ds_temp_result_famylist.getColumn(0, "emplno");
  2534. var emplnm = ds_temp_result_famylist.getColumn(0, "emplname");
  2535. var discuncocd = ds_temp_result_famylist.getColumn(0, "discuncocd");
  2536. var famyrelnm = ds_temp_result_famylist.getColumn(0, "famyrelnm");
  2537. var preststatnm = ds_temp_result_famylist.getColumn(0, "preststatnm");
  2538. var profacptyn = ds_temp_result_famylist.getColumn(0, "profacptyn");
  2539. var profacptdd = ds_temp_result_famylist.getColumn(0, "profacptdd");
  2540. var remark = ds_temp_result_famylist.getColumn(0, "remark");
  2541. var aftrcptyn = ds_temp_result_famylist.getColumn(0, "aftrcptyn");
  2542. frmf_clearParameter("SPPMC03800_emplid");
  2543. frmf_clearParameter("SPPMC03800_emplnm");
  2544. //frmf_clearParameter("SPPMC03800_discuncoflag");
  2545. frmf_clearParameter("SPPMC03800_discuncocd");
  2546. frmf_clearParameter("SPPMC03800_famyrelnm");
  2547. frmf_clearParameter("SPPMC03800_preststatnm");
  2548. frmf_clearParameter("SPPMC03800_profacptyn");
  2549. frmf_clearParameter("SPPMC03800_profacptdd");
  2550. frmf_clearParameter("SPPMC03800_remark");
  2551. frmf_clearParameter("SPPMC03800_aftrcptyn");
  2552. //후수납( 수납VIP )여부 세팅
  2553. //2009-02-06 이동식 추가
  2554. if( aftrcptyn == 'Y' ){
  2555. ds_main_otpt.setColumn(0, "otpt_medamtpostyn", 'V'); //수납 VIP
  2556. ds_main_otpt.setColumn(0, "otpt_rcptvipresncd", '01');
  2557. //rdo_medamtpostyn.dispatch("xforms-select");
  2558. rdo_medamtpostyn_onitemclick(null, null);
  2559. }else{
  2560. ds_main_otpt.setColumn(0, "otpt_medamtpostyn", 'N'); //선불
  2561. ds_main_otpt.setColumn(0, "otpt_rcptvipresncd", '-');
  2562. }
  2563. if( emplno != '' && emplno != ' ' ){
  2564. ds_main_otpt.setColumn(0, "otpt_emplno", emplno);
  2565. ds_main_otpt.setColumn(0, "otpt_emplnm", emplnm);
  2566. }
  2567. if( discuncocd != '' ){
  2568. ds_main_otpt.setColumn(0, "otpt_disccd", discuncocd);
  2569. }else{
  2570. ds_main_otpt.setColumn(0, "otpt_disccd", '-');
  2571. }
  2572. }else{
  2573. ds_main_otpt.setColumn(0, "otpt_disccd", '-');
  2574. // cmb_disccd.refresh();
  2575. // ipt_disccd.refresh();
  2576. }
  2577. //초재진체크
  2578. if( ds_hidden_rcv_fsexamflag.rowcount > 0 ){
  2579. var fsexamflag = ds_hidden_rcv_fsexamflag.getColumn(0, "otpt_fsexamflag");
  2580. ds_main_otpt.setColumn(0, "otpt_fsexamflag", fsexamflag);
  2581. }else{
  2582. sysf_messageBox("초재진여부를 가져오지 못 했습니다. 접수하시기 전에 초재진여부를 정확히 확인 후 접수하시기 바랍니다!!", "E999" , "");
  2583. }
  2584. //접수비중복체크
  2585. //2008-12-03 이동식 수정 - 접수비중복체크
  2586. var duplCnt = ds_hidden_rcv_otpt.rowcount ; ///otpt_pid");
  2587. if( duplCnt > 1 ){
  2588. if( sysf_messageBox("동일일자 동일과 접수비 이중 수납내역이 있습니다. 내역을 확인하시겠습니까?", "Q999", "") == 6 ){
  2589. frmf_setParameter("SMPMO01600_PARM", ds_main_ptbs.getColumn(0, "ptbs_pid"));
  2590. //modal("SPPMO01600", "1","200", "200", "SPPMO01600", "", "");
  2591. frmf_modal("SPPMO01600", "SPPMO01600", "", false, "1", "200", "200", "", "", "", "", "", "M");
  2592. }
  2593. }else{
  2594. }
  2595. //타과의뢰내역 체크
  2596. //2008-01-07 이동식 수정 - 컨설트 의뢰정보가 1건일때 와 2건 이상일때 구분하여 메세지 처리
  2597. var cnstCnt = ds_hidden_rcv_cnstinfo_temp_emrcnst.rowcount; //getNodesetCount("/root/hidden/rcv/cnstinfo/temp/emrcnst/pid");
  2598. if( cnstCnt > 1 ){
  2599. if( sysf_messageBox("컨설트 의뢰정보가 있습니다. 내역을 확인하시겠습니까?", "Q999", "") == 6 ){
  2600. if( fGetEMRCnstInfo() ){
  2601. retValue = true;
  2602. }
  2603. }
  2604. }else if( cnstCnt == 1 ){
  2605. var reqorddeptnm = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "reqdeptnm");
  2606. var reqorddrnm = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "requsernm");
  2607. var recvorddeptnm = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "recvdeptnm");
  2608. var recvorddrnm = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "recvusernm");
  2609. var formrecseq = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "formrecseq");
  2610. if( sysf_messageBox(reqorddeptnm + " " + reqorddrnm + " 교수님께서 " +
  2611. recvorddeptnm + " " + recvorddrnm + " 교수님께 의뢰한 내역이 있습니다. \n지금 접수하시겠습니까?", "Q999", "") == 6 ){
  2612. var orddd = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "hopedd");
  2613. var orddeptcd = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "recvdeptcd");
  2614. var orddrid = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "recvuserid");
  2615. var ordreqformflag = ds_hidden_rcv_cnstinfo_temp_emrcnst.getColumn(0, "ordreqformflag");
  2616. ds_main_otpt.setColumn(0, "otpt_orddeptcd", orddeptcd);
  2617. cmb_orddeptcd_onitemchanged(null, null);
  2618. ds_main_otpt.setColumn(0, "otpt_orddrid", orddrid);
  2619. cmb_orddrid_onitemchanged(null, null);
  2620. ds_main_otpt.setColumn(0, "otpt_orddd", orddd);
  2621. ipt_orddd_ontextchanged(null, null);
  2622. //기초정보 세팅
  2623. ds_main_otpt.setColumn(0, "otpt_ordreqformflag", ordreqformflag); //진료의뢰서 수급절차 - 원진료의 수급절차를 따른다
  2624. ds_main_otpt.setColumn(0, "otpt_etcordflag", "H"); //기타구분 - 의뢰
  2625. ds_main_otpt.setColumn(0, "otpt_rsrvflag", "C"); //예약구분 - 협진
  2626. dsf_makeValue(ds_main_otpt, "otpt_formrecseq", "string", formrecseq);
  2627. //model.refresh();
  2628. }
  2629. }
  2630. //수납VIP미수금 조회
  2631. //2008-12-03 이동식 수정 - 접수비중복체크
  2632. var vipUncoCnt = ds_hidden_rcv_rcptvipunco.rowcount; // /rcptvipuncoyn");
  2633. if( vipUncoCnt > 0 ){
  2634. VIPUNCOYN = ds_hidden_rcv_rcptvipunco.getColumn(0, "rcptvipuncoyn");
  2635. if( VIPUNCOYN == 'Y' ){
  2636. var vipuncoamt = ds_hidden_rcv_rcptvipunco.getColumn(0, "rcptvipuncoamt");
  2637. sysf_messageBox("미수금이 존재합니다. [수납VIP/처방당일선검사 미수금 : " + vipuncoamt + " 원]", "I999", "");
  2638. }
  2639. }else{
  2640. VIPUNCOYN = 'N';
  2641. }
  2642. if( retValue ){
  2643. checkAutoMultiRgst = false;
  2644. }
  2645. /*
  2646. }else{
  2647. sysf_messageBox("전산장애로 환자 기본 정보를 확인할 수 없습니다. 전산실에 문의하거나 잠시 후 다시 시도하세요.", "E999", "");
  2648. //return false;
  2649. }
  2650. */
  2651. //model.removeNodeset("/root/send/totalcheckinfo");
  2652. ds_hidden_rcv_erpat.clear();
  2653. ds_hidden_rcv_handcappatlist.clear();
  2654. ds_hidden_rcv_trans.clear();
  2655. ds_hidden_rcv_homecare.clear();
  2656. ds_hidden_rcv_charity.clear();
  2657. ds_hidden_rcv_mediexam.clear();
  2658. ds_hidden_rcv_bindpid.clear();
  2659. ds_hidden_rcv_pidchk.clear();
  2660. ds_hidden_rcv_famylist.clear();
  2661. ds_hidden_rcv_fsexamflag.clear();
  2662. ds_hidden_rcv_otpt.clear(); ////ds_hidden_rcv_otpthist.clear(); --> ds_hidden_rcv_otpt
  2663. ds_hidden_rcv_cnstinfo_temp_emrcnst.clear();
  2664. ds_hidden_rcv_rcptvipunco.clear();
  2665. return true;
  2666. }
  2667. function cf_TXPMO00107(sSvcId, nErrorCode, sErrorMsg) {
  2668. arErrorCode.push(sSvcId, nErrorCode);
  2669. }
  2670. //자선진료비 대상 환자 조회
  2671. function fCheckCharityYN(pid){
  2672. dsf_createDs("ds_send_charity_rcv_charity", [
  2673. {col:"charityYN", type:"STRING", size:256}
  2674. ]);
  2675. dsf_createDsRow("ds_send_charity", [
  2676. {col:"pid", type:"STRING", size:256, val: pid}
  2677. ]);
  2678. //if(submit("TRPMO00121")) {
  2679. var oParam = {};
  2680. oParam.id = "TRPMO00121";
  2681. oParam.service = "opatmngtapp.OPatMngt";
  2682. oParam.method = "reqGetCharityYN";
  2683. oParam.inds = "req=ds_send_charity";
  2684. oParam.outds = "ds_send_charity_rcv_charity=charity";
  2685. oParam.async = false;
  2686. oParam.callback = "cf_TRPMO00121";
  2687. tranf_submit(oParam);
  2688. if(arErrorCode.pop("TRPMO00121") > -1){
  2689. //자선환자체크
  2690. if( ds_send_charity_rcv_charity.getColumn(0, "charityyn") == 'Y'){
  2691. var retValue = sysf_messageBox("자선진료비 지원 대상 환자입니다. 내역을 확인하시겠습니까?", "Q999", "");
  2692. if( retValue == 6 ){
  2693. fOpenCharityPopup(pid);
  2694. }
  2695. }
  2696. }
  2697. ds_send_charity_rcv_charity.clear();
  2698. ds_send_charity.clear();
  2699. return;
  2700. }
  2701. function cf_TRPMO00121(sSvcId, nErrorCode, sErrorMsg) {
  2702. arErrorCode.push(sSvcId, nErrorCode);
  2703. }
  2704. //자선진료비 대상 환자 조회 입원수납용
  2705. function fCheckCharityYN_i(pid,pre_loading_yn){
  2706. if(pre_loading_yn == "Y" ){
  2707. //만약 입원수납등 기화면에서 자선정보 미리 조회해오므로 submit 통과
  2708. }
  2709. if(ds_send_charity_rcv_charity.rowcount >0){
  2710. //자선환자 체크
  2711. if( ds_send_charity_rcv_charity.getColumn(0, "charityYN") == 'Y'){
  2712. var retValue = sysf_messageBox("자선진료비 지원 대상 환자입니다. 내역을 확인하시겠습니까?", "Q999", "");
  2713. if( retValue == 6 ){
  2714. fOpenCharityPopup(pid);
  2715. }
  2716. }
  2717. }
  2718. ds_send_charity_rcv_charity.clear();
  2719. ds_send_charity.clear();
  2720. return;
  2721. }
  2722. //자선진료비 조회 팝업 호출
  2723. function fOpenCharityPopup(pid){
  2724. //등록번호 파라미터 세팅
  2725. frmf_setParameter("pid", pid);
  2726. //팝업호출
  2727. ///root/main/inpt_info/inptpatinfo/inpt_pid
  2728. //modal("SPAWM03100", "1","200", "200", "SPAWM03100","","");
  2729. frmf_modal("SPAWM03100", "SPAWM03100", "", false, "1", "200", "200", "", "", "", "", "", "M");
  2730. //파라미터 삭제
  2731. frmf_clearParameter("pid");
  2732. }
  2733. //후원금 환자 여부체크
  2734. function fSuppManageYN(pid) {
  2735. // return dataset
  2736. dsf_createDs("ds_send_suppmanage_rcv_sup", [
  2737. {col:"suppyn", type:"STRING", size:256}
  2738. ]);
  2739. // send dataset
  2740. dsf_createDsRow("ds_send_suppmanage", [
  2741. {col:"pid", type:"STRING", size:256, val: pid }
  2742. ]);
  2743. //if(submit("TRPAI00132")) {
  2744. var oParam = {};
  2745. oParam.id = "TRPAI00132";
  2746. oParam.service = "inordamtmngtapp.InRcpt";
  2747. oParam.method = "reqGetSuppManageYN";
  2748. oParam.inds = "req=ds_send_suppmanage";
  2749. oParam.outds = "ds_send_suppmanage_rcv_sup=supp";
  2750. oParam.async = false;
  2751. oParam.callback = "cf_TRPAI00132";
  2752. tranf_submit(oParam);
  2753. if(arErrorCode.pop("TRPAI00132") > -1){
  2754. //자선환자 체크
  2755. if( ds_send_suppmanage_rcv_sup.getColumn(0, "suppyn") == 'Y'){
  2756. var retValue = sysf_messageBox("관공서(구/군/시청),긴급지원 및 보건소 지원 대상 환자입니다. 내역을 확인하시겠습니까?", "Q999", "");
  2757. if( retValue == 6 ){
  2758. fOpenSuppManagePopup(pid);
  2759. }
  2760. }
  2761. }
  2762. ds_send_suppmanage.clear();
  2763. ds_send_suppmanage_rcv_sup.clear();
  2764. return;
  2765. }
  2766. function cf_TRPAI00132(sSvcId, nErrorCode, sErrorMsg) {
  2767. arErrorCode.push(sSvcId, nErrorCode);
  2768. }
  2769. //후원금 환자 여부체크 입원수납용
  2770. function fSuppManageYN_i(pid,pre_loading_yn) {
  2771. if(pre_loading_yn == "Y" ){
  2772. //입원수납은 자선정보 미리 조회해오므로 submit 통과
  2773. }
  2774. if(ds_send_suppmanage_rcv_sup.rowcount >0){
  2775. //자선환자 체크
  2776. if( ds_send_suppmanage_rcv_sup.getColumn(0, "suppyn") == 'Y'){
  2777. var retValue = sysf_messageBox("관공서(구/군/시청),긴급지원 및 보건소 지원 대상 환자입니다. 내역을 확인하시겠습니까?", "Q999", "");
  2778. if( retValue == 6 ){
  2779. fOpenSuppManagePopup(pid);
  2780. }
  2781. }
  2782. }
  2783. ds_send_suppmanage.clear();
  2784. ds_send_suppmanage_rcv_sup.clear();
  2785. return;
  2786. }
  2787. function fOpenSuppManagePopup(pid){
  2788. //등록번호 파라미터 세팅
  2789. frmf_setParameter("pid", pid);
  2790. //팝업호출
  2791. //modal("SMPMC07100", "1","200", "200", "SMPMC07100", "/root/main/inpt_info/inptpatinfo/inpt_pid", "/root/main/patinfo/patinfolist/pid");
  2792. var objArg = new Object();
  2793. objArg.arg_ds_main_patinfo_patinfolist = ds_main_inpt_info_inptpatinfo;
  2794. frmf_modal("SMPMC07100", "SMPMC07100", "", false, 1, 200, 200, "", "", "", "", "", "M");
  2795. //파라미터 삭제
  2796. frmf_clearParameter("pid");
  2797. }
  2798. //등록번호가 2개인 환자 합번여부 체크 및 합번 신청
  2799. function fCheckBindPID(){
  2800. //receive
  2801. dsf_createDs("ds_hidden_rcv_bindpid", [
  2802. {col:"pid", type:"STRING", size:256}
  2803. , {col:"oldpid", type:"STRING", size:256}
  2804. , {col:"newpid", type:"STRING", size:256}
  2805. , {col:"rrgstno1", type:"STRING", size:256}
  2806. , {col:"rrgstno2", type:"STRING", size:256}
  2807. , {col:"hngnm", type:"STRING", size:256}
  2808. ]);
  2809. //send
  2810. ds_send_bindpid.clear();
  2811. dsf_createDsRow("ds_send_bindpid", [
  2812. {col:"pid", type:"STRING", size:256, val: ds_main_ptbs.getColumn(0, "ptbs_pid")}
  2813. , {col:"rrgstno1", type:"STRING", size:256, val: ds_main_ptbs.getColumn(0, "ptbs_rrgstno1")}
  2814. , {col:"rrgstno2", type:"STRING", size:256, val: ds_main_ptbs.getColumn(0, "ptbs_rrgstno2")}
  2815. , {col:"hngnm", type:"STRING", size:256, val: ds_main_ptbs.getColumn(0, "ptbs_hngnm")}
  2816. , {col:"flag", type:"STRING", size:256, val: "" }
  2817. ]);
  2818. // if(submit("TRPMO00119")) {
  2819. var oParam = {};
  2820. oParam.id = "TRPMO00119";
  2821. oParam.service = "opatmngtapp.OPatMngt";
  2822. oParam.method = "reqGetBindPidCheckInfo";
  2823. oParam.inds = "req=ds_send_bindpid";
  2824. oParam.outds = "ds_hidden_rcv_bindpid=bindpid";
  2825. oParam.async = false;
  2826. oParam.callback = "cf_TRPMO00119";
  2827. tranf_submit(oParam);
  2828. if( arErrorCode.pop("TRPMO00119") > -1 ){
  2829. //등록번호가 2개인 환자 합번여부 체크 및 합번 신청
  2830. if( ds_hidden_rcv_bindpid.rowcount > 0 ){
  2831. var hngnm = ds_main_ptbs.getColumn(0, "ptbs_hngnm");
  2832. var cnt = ds_hidden_rcv_bindpid.rowcount;
  2833. var pids = ' ';
  2834. for( var i = 0; i < cnt; i++ ){
  2835. pids = pids + ds_hidden_rcv_bindpid.getColumn( i , "oldpid") + ' ';
  2836. }
  2837. var retValue = sysf_messageBox(hngnm + "님의 등록번호가 " + cnt + "개 더 존재합니다.[" + pids + "]\n합번 신청하시겠습니까?", "Q999", "");
  2838. //var retValue = alert(hngnm + "님의 등록번호가 " + cnt + "개 더 존재합니다.[" + pids + "]\n합번 신청하시겠습니까?", "확인", "");
  2839. if( retValue == '6' ){
  2840. // for( var i = 1; i <= cnt; i++ ){
  2841. // model.makeNode("/root/send/bindpid[" + i + "]/oldpid");
  2842. // model.makeNode("/root/send/bindpid[" + i + "]/newpid");
  2843. // model.setValue("/root/send/bindpid[" + i + "]/oldpid", model.getValue("/root/hidden/rcv/bindpid[" + i + "]/pid"));
  2844. // model.setValue("/root/send/bindpid[" + i + "]/newpid", model.getValue("/root/main/ptbs/ptbs_pid"));
  2845. // }
  2846. var oParam = {};
  2847. oParam.id = "TXPMO00107";
  2848. oParam.service = "opatmngtapp.OPatMngt";
  2849. oParam.method = "reqInsBindPidReqData";
  2850. oParam.inds = "req=ds_hidden_rcv_bindpid";
  2851. oParam.outds = "";
  2852. oParam.async = false;
  2853. oParam.callback = "cf_TXPMO00107";
  2854. tranf_submit(oParam);
  2855. if( arErrorCode.pop("TXPMO00107") > -1 ){
  2856. //model.removeNodeset("/root/send/bindpid");
  2857. sysf_messageBox("합번 신청 완료!", "I999", "");
  2858. }else{
  2859. if( sysf_messageBox("합번 신청 오류!! 재신청 하시겠습니까?", "Q999", "") == '6'){
  2860. var oParam = {};
  2861. oParam.id = "TXPMO00107";
  2862. oParam.service = "opatmngtapp.OPatMngt";
  2863. oParam.method = "reqInsBindPidReqData";
  2864. oParam.inds = "req=ds_hidden_rcv_bindpid";
  2865. oParam.outds = "";
  2866. oParam.async = false;
  2867. oParam.callback = "cf_TXPMO00107";
  2868. tranf_submit(oParam);
  2869. if( arErrorCode.pop("TXPMO00107") > -1 ){
  2870. //model.removeNodeset("/root/send/bindpid");
  2871. sysf_messageBox("합번 재신청 완료!", "I999", "");
  2872. }else{
  2873. sysf_messageBox("합번 재신청 오류!! 정보지원팀에 문의하세요.", "E999", "");
  2874. }
  2875. }else{
  2876. //model.removeNodeset("/root/send/bindpid");
  2877. }
  2878. }
  2879. }
  2880. }
  2881. }
  2882. ds_send_bindpid.clear();
  2883. ds_hidden_rcv_bindpid.clear();
  2884. }
  2885. function cf_TRPMO00119(sSvcId, nErrorCode, sErrorMsg) {
  2886. arErrorCode.push(sSvcId, nErrorCode);
  2887. }
  2888. function cf_TXPMO00107(sSvcId, nErrorCode, sErrorMsg) {
  2889. arErrorCode.push(sSvcId, nErrorCode);
  2890. }
  2891. // 수정이력 20100216 JHP fromdd, mskind 추가 하여 mskind가 "S"이면 orddd를 fromdd로 바꿈.(20100216 현재 fromdd, mskind는 입원등록 화면에서만 보내게 수정됨)
  2892. function checkJaboSanjae(pid, orddd, orddeptcd, insukind, suppkind, insucd, ioflag, fromdd, mskind){
  2893. dsf_createDsRow("ds_send_checkjabosasae", [
  2894. {col:"pid", type:"STRING", size:256, val:pid }
  2895. , {col:"orddd", type:"STRING", size:256, val: ""}
  2896. , {col:"orddeptcd", type:"STRING", size:256, val:orddeptcd }
  2897. , {col:"insukind", type:"STRING", size:256, val: insukind}
  2898. , {col:"suppkind", type:"STRING", size:256, val:suppkind }
  2899. , {col:"insucd", type:"STRING", size:256, val:insucd }
  2900. , {col:"ioflag", type:"STRING", size:256, val: ioflag}
  2901. ]);
  2902. if(mskind != null){
  2903. if(mskind == "S"){
  2904. if(fromdd != null){
  2905. ds_send_checkjabosasae.setColumn(0, "orddd", fromdd);
  2906. }else{
  2907. ds_send_checkjabosasae.setColumn(0, "orddd", orddd);
  2908. }
  2909. }else{
  2910. ds_send_checkjabosasae.setColumn(0, "orddd", orddd);
  2911. }
  2912. }else{
  2913. //2017/05/19 자보산재 자격 체크 오류 수정(이정택)
  2914. //ds_send_checkjabosasae.setColumn(0, "rddd", orddd);
  2915. ds_send_checkjabosasae.setColumn(0, "orddd", orddd);
  2916. //2017/05/19 자보산재 자격 체크 오류 수정(이정택)
  2917. }
  2918. if( suppkind != '01' ){ //전액본인부담일경우 자보체크하지 않는다.
  2919. //if(submit("TRPMO00120")) {
  2920. var oParam = {};
  2921. oParam.id = "TRPMO00120";
  2922. oParam.service = "pamcomnapp.PamComn";
  2923. oParam.method = "reqCheckJaboSanjaeInfo";
  2924. oParam.inds = "req=ds_send_checkjabosasae";
  2925. oParam.outds = "";
  2926. oParam.async = false;
  2927. oParam.callback = "cf_TRPMO00120";
  2928. tranf_submit(oParam);
  2929. if( arErrorCode.pop("TRPMO00120") > -1 ){
  2930. ds_send_checkjabosasae.clear();
  2931. return true;
  2932. }else{
  2933. ds_send_checkjabosasae.clear();
  2934. return false;
  2935. }
  2936. }else{
  2937. return true;
  2938. }
  2939. }
  2940. function cf_TRPMO00120(sSvcId, nErrorCode, sErrorMsg) {
  2941. arErrorCode.push(sSvcId, nErrorCode);
  2942. }
  2943. function callLoadingWindow(msg){
  2944. // frmf_openLoadingBar()로 변경(2016.08.08)
  2945. //20080703 이동식 추가
  2946. //환자정보 조회 중 상태 표시
  2947. //body.createChild("xforms:iviewer", "id:ivr_progress; src:../../../com/commonweb/xrw/SPZZZ00400_로딩중화면.xrw; left:435px; top:339px; width:330px; height:120px;");
  2948. // var ivrObjt = this.components["ivr_progress"];
  2949. //
  2950. // if(utlf_isNull(ivrObjt)){
  2951. // var divId = "ivr_progress";
  2952. // objDiv = new Div(divId);
  2953. //
  2954. // this.addChild(divId, objDiv);
  2955. //
  2956. // objDiv.asyncmode = false;
  2957. // objDiv.url = "com_commonxp::SPZZZ00400_로딩중화면.xfdl";
  2958. // objDiv.show();
  2959. // ivrObjt = this.components["ivr_progress"];
  2960. // ivrObjt.lf_init();
  2961. // }
  2962. // else {
  2963. // ivrObjt.visible = true;
  2964. // ivrObjt.lf_init();
  2965. // }
  2966. //
  2967. // // 신용카드승인 팝업의 초기화 함수 호출
  2968. // ivrObjt.lf_init();
  2969. // frmf_setParameter("msg", msg);
  2970. // frmf_open("SPZZZ00400", "SPZZZ00400", "", "", "", "435", "339", "330", "120", "", "", "P");
  2971. //
  2972. // var popupObjt = frmf_findPopup("SPZZZ00400");
  2973. // if( popupObjt != null) {
  2974. // popupObjt.lf_init();
  2975. // }
  2976. // var ivrObjt = document.all("ivr_progress");
  2977. // if( msg == '' || msg == '-' ){
  2978. // msg = "외래환자 데이터 조회 중입니다...";
  2979. // }
  2980. // ivrObjt.model.setValue("/root/main/msg", msg);
  2981. //model.refresh();
  2982. }
  2983. function removeLoadingWindow(){
  2984. //frmf_closeLoadingBar()로 변경 로 변경(2016.08.08)
  2985. //20080703 이동식 추가
  2986. //환자정보 조회 중 상태 표시 지우기
  2987. //body.removeChild("ivr_progress");
  2988. // var popupObj = frmf_findPopup("SPZZZ00400");
  2989. // if(popupObj != null)
  2990. // popupObjt.lf_close();
  2991. //
  2992. // var ivrObjt = this.component["ivr_progress"];
  2993. //
  2994. // if(!utlf_isNull(ivrObjt)){
  2995. // ivrObjt.lf_close();
  2996. // }
  2997. // ivrObjt.visible = false;
  2998. }
  2999. /**
  3000. * @desc : 6세미만 체크
  3001. * <pre>
  3002. * input : pRrgstno 주민번호(7711061540816)
  3003. *
  3004. * </pre>
  3005. * @param : pRrgstno
  3006. * @return : true/false , 6세미만(true)
  3007. * @---------------------------------------------------
  3008. */
  3009. function fRoomSexGubunCheck(pRrgstno)
  3010. {
  3011. // 주민번호가 없을 때는 6세 이상으로 판단(?)
  3012. if (typeof(pRrgstno) == "undefined" || pRrgstno == "" || pRrgstno == null) {
  3013. return false;
  3014. }
  3015. var fullDay = ""; // YYYYMMDD
  3016. var gender = pRrgstno.substr(6,1);
  3017. var rrgstno1 = pRrgstno.substr(0,6);
  3018. switch(gender) {
  3019. case '1' :
  3020. case '2' :
  3021. case '5' :
  3022. case '6' :
  3023. fullDay = '19'.concat(rrgstno1);
  3024. break;
  3025. case '3' :
  3026. case '4' :
  3027. case '7' :
  3028. case '8' :
  3029. fullDay = '20'.concat(rrgstno1);
  3030. break;
  3031. case '9' :
  3032. case '0' :
  3033. fullDay = '18'.concat(rrgstno1);
  3034. break;
  3035. default :
  3036. fullDay = '19'.concat(rrgstno1);
  3037. break;
  3038. }
  3039. // fullDay - YYYYMMDD
  3040. // 13자리( 주민번호1 + 주민번호2)를 파라미터로 주면 주민번호 유효성 검사로 유효하지 않으면 -1을 리턴
  3041. var chkAge = utlf_getFullAge(fullDay, "", "M");
  3042. if (chkAge >= 0 && chkAge < 6) { // 6세 미만
  3043. return true;
  3044. } else { // 6세 이상
  3045. return false;
  3046. }
  3047. }
  3048. /**
  3049. * @desc : 자보/산재 등록내역 체크
  3050. * @param : pPid - 환자번호
  3051. * pCheckDD - 조회일자 (외래 - orddd, 입원 - indd)
  3052. * @return : null
  3053. * @---------------------------------------------------
  3054. */
  3055. function fCheckAutoInduInsu(pPid, pCheckDD)
  3056. {
  3057. var sNewLine = "\n";
  3058. if (utlf_isNull(pPid)) {
  3059. sysf_messageBox("환자등록번호가", "I004");
  3060. return;
  3061. }
  3062. dsf_createDs("ds_hidden_rcv_autoinduinsulist_autoinduinsu", [
  3063. {col:"pid", type:"STRING", size:256}
  3064. , {col:"insukind", type:"STRING", size:256}
  3065. , {col:"ordtype", type:"STRING", size:256}
  3066. , {col:"fromdd", type:"STRING", size:256}
  3067. , {col:"todd", type:"STRING", size:256}
  3068. , {col:"suppkind", type:"STRING", size:256}
  3069. , {col:"orddeptcd", type:"STRING", size:256}
  3070. , {col:"insucmpycd", type:"STRING", size:256}
  3071. , {col:"insucdnm", type:"STRING", size:256}
  3072. ]);
  3073. dsf_createDsRow("ds_send_checkautoinduinsu", [
  3074. {col:"pid", type:"STRING", size:256, val: pPid}
  3075. , {col:"checkdd", type:"STRING", size:256, val: pCheckDD}
  3076. ]);
  3077. //submit("TRPMC02600");
  3078. var oParam = {};
  3079. oParam.id = "TRPMC02600";
  3080. oParam.service = "pamcomnapp.PamComn";
  3081. oParam.method = "reqGetCheckAutoInduInsu";
  3082. oParam.inds = "req=ds_send_checkautoinduinsu";
  3083. oParam.outds = "ds_hidden_rcv_autoinduinsulist_autoinduinsu=aipmicpm";
  3084. oParam.async = false;
  3085. tranf_submit(oParam);
  3086. var iCount = ds_hidden_rcv_autoinduinsulist_autoinduinsu.rowcount;
  3087. if (iCount > 0) {
  3088. var sMessage = "자보/산재/공상 등록정보" + sNewLine + sNewLine;
  3089. var sInsuNm = "";
  3090. for (var idx = 0 ; idx < iCount ; idx++) {
  3091. var sInsuKind = utlf_transNullToEmpty(ds_hidden_rcv_autoinduinsulist_autoinduinsu.getColumn( idx , "insukind"));
  3092. var sOrdType = utlf_transNullToEmpty(ds_hidden_rcv_autoinduinsulist_autoinduinsu.getColumn( idx , "ordtype"));
  3093. var sFromdd = utlf_transNullToEmpty(ds_hidden_rcv_autoinduinsulist_autoinduinsu.getColumn( idx , "fromdd"));
  3094. var sTodd = utlf_transNullToEmpty(ds_hidden_rcv_autoinduinsulist_autoinduinsu.getColumn( idx , "todd"));
  3095. var sSuppKind = utlf_transNullToEmpty(ds_hidden_rcv_autoinduinsulist_autoinduinsu.getColumn( idx , "suppkind"));
  3096. var sOrdDeptCD = utlf_transNullToEmpty(ds_hidden_rcv_autoinduinsulist_autoinduinsu.getColumn( idx , "orddeptcd"));
  3097. var sInsucdnm = utlf_transNullToEmpty(ds_hidden_rcv_autoinduinsulist_autoinduinsu.getColumn( idx , "insucdnm"));
  3098. if (sInsuKind == "31") {
  3099. // 20110711 자보의 경우, 종료되었으면 팝업표시하지 않음
  3100. if (sTodd >= utlf_getCurrentDate()) {
  3101. sInsuNm = "자보";
  3102. sMessage += "[" + sInsuNm + "] 승인기간[" + sFromdd + "~" + sTodd +"] - " + sInsucdnm;
  3103. sMessage += sNewLine;
  3104. }
  3105. }
  3106. if (sInsuKind == "41") {
  3107. sInsuNm = "산재";
  3108. sMessage += "[" + sInsuNm + "/" + sSuppKind + "]" + " [" + sOrdDeptCD + "] 승인기간[" + sFromdd + "~" + sTodd +"]" + " [" + sOrdType + "]";
  3109. sMessage += sNewLine;
  3110. }
  3111. if (sInsuKind == "42") {
  3112. sInsuNm = "공상";
  3113. sMessage += "[" + sInsuNm + "/" + sSuppKind + "]" + " [" + sOrdDeptCD + "] 승인기간[" + sFromdd + "~" + sTodd +"]" + " [" + sOrdType + "]";
  3114. sMessage += sNewLine;
  3115. }
  3116. }
  3117. sysf_messageBox(sMessage, "I");
  3118. // 자보의 경우 사고접수정보가 복수건 존재할 수 있으므로 수납자에게 알림처리 by 조중래 20130704
  3119. if (sInsuKind == "31" && iCount > 1) {
  3120. sysf_messageBox("자보 사고접수정보가 복수건 존재합니다. \r\n\r\n자보담당자 확인 후 유효한 접수정보로 진행하십시오", "I000");
  3121. }
  3122. ds_hidden_rcv_autoinduinsulist_autoinduinsu.clear();
  3123. ds_send_checkautoinduinsu.clear();
  3124. }
  3125. }
  3126. /**
  3127. * @desc : 센터 선적용 여부 체크 함수
  3128. * @param :
  3129. * @return : centeryn
  3130. * @---------------------------------------------------
  3131. */
  3132. function fCheckCenterYN()
  3133. {
  3134. dsf_createDsRow("ds_hidden_pamcomcd_send", [
  3135. {col:"cdgrupid", type:"STRING", size:256, val: 'P0022'}
  3136. , {col:"cdid", type:"STRING", size:256, val: '30'}
  3137. ]);
  3138. //submit("TRPMO00123");
  3139. var oParam = {};
  3140. oParam.id = "TRPMO00123";
  3141. oParam.service = "opatmngtapp.OPatMngt";
  3142. oParam.method = "reqGetCenterYN";
  3143. oParam.inds = "req=ds_hidden_pamcomcd_send";
  3144. oParam.outds = "ds_hidden_pamcomcd_rcv_pamcd=pamcd";
  3145. oParam.async = false;
  3146. tranf_submit(oParam);
  3147. var iCount = ds_hidden_pamcomcd_rcv_pamcd.rowcount;
  3148. if (iCount > 0) {
  3149. var centeryn = ds_hidden_pamcomcd_rcv_pamcd.getColumn(0, "cdnm");
  3150. ds_hidden_pamcomcd_rcv_pamcd.clear();
  3151. ds_hidden_pamcomcd_send.clear();
  3152. return centeryn;
  3153. }else{
  3154. ds_hidden_pamcomcd_rcv_pamcd.clear();
  3155. ds_hidden_pamcomcd_send.clear();
  3156. return 'N';
  3157. }
  3158. }
  3159. /**
  3160. * @desc : 수납VIP 적용 여부 체크 함수
  3161. * @param :
  3162. * @return : rcptvipyn
  3163. * @---------------------------------------------------
  3164. */
  3165. function fCheckRcptVIPYN()
  3166. {
  3167. dsf_createDs("ds_hidden_pamcomcd_rcv_pamcd", [
  3168. {col:"cdid", type:"STRING", size:256}
  3169. , {col:"cdnm", type:"STRING", size:256}
  3170. ]);
  3171. dsf_createDsRow("ds_hidden_pamcomcd_send", [
  3172. {col:"cdgrupid", type:"STRING", size:256, val: 'P0022'}
  3173. , {col:"cdid", type:"STRING", size:256, val: '40'}
  3174. ]);
  3175. //submit("TRPMO00123");
  3176. var oParam = {};
  3177. oParam.id = "TRPMO00123";
  3178. oParam.service = "opatmngtapp.OPatMngt";
  3179. oParam.method = "reqGetCenterYN";
  3180. oParam.inds = "req=ds_hidden_pamcomcd_send";
  3181. oParam.outds = "ds_hidden_pamcomcd_rcv_pamcd=pamcd";
  3182. oParam.async = false;
  3183. tranf_submit(oParam);
  3184. var iCount = ds_hidden_pamcomcd_rcv_pamcd.rowcount;
  3185. if (iCount > 0) {
  3186. var centeryn = ds_hidden_pamcomcd_rcv_pamcd.getColumn(0, "cdnm");
  3187. ds_hidden_pamcomcd_rcv_pamcd.clear();
  3188. ds_hidden_pamcomcd_send.clear();
  3189. return centeryn;
  3190. }else{
  3191. ds_hidden_pamcomcd_rcv_pamcd.clear();
  3192. ds_hidden_pamcomcd_send.clear();
  3193. return 'N';
  3194. }
  3195. }
  3196. /**
  3197. * @desc : 성모병원에서 전환된 환자 메세지 처리
  3198. * @param :
  3199. * @return : centeryn
  3200. * @---------------------------------------------------
  3201. */
  3202. function fCheckMigPatMsg(pidflag)
  3203. {
  3204. if( pidflag == '90' || pidflag == '91'){
  3205. sysf_messageBox("성모병원에서 전환된 환자입니다.", "I999", "");
  3206. return true;
  3207. }else{
  3208. return false;
  3209. }
  3210. }
  3211. /**
  3212. * @desc : BMT환자 초진료 재진료로 변경 메세지
  3213. * @param :
  3214. * @return : centeryn
  3215. * @---------------------------------------------------
  3216. */
  3217. function fCheckBMTPatMsg(pidflag, centcd, orddeptcd, fsexamflag)
  3218. {
  3219. //BMT센터, 초진(병초, 과초), 성모BMT전환환자 번호일때 초진료->재진료 변경 메세지
  3220. if( pidflag == '90' && centcd == '2361303000' && (fsexamflag == 'F' || fsexamflag == 'D')){
  3221. sysf_messageBox("성모병원 BMT환자 입니다. 재진진찰료를 제외한 금액을 임의감액 하십시오.", "I999", "");
  3222. return true;
  3223. }else{
  3224. return false;
  3225. }
  3226. }
  3227. /**
  3228. * @desc : 선후불 변경
  3229. * @param :
  3230. * @return : true/false
  3231. * @---------------------------------------------------
  3232. */
  3233. function fSetMedAmtPostYN(pid, orddd, cretno)
  3234. {
  3235. frmf_setParameter("SPPMO01700_pid", pid);
  3236. frmf_setParameter("SPPMO01700_orddd", orddd);
  3237. frmf_setParameter("SPPMO01700_cretno", cretno);
  3238. frmf_modal("SPPMO01700", "SPPMO01700", '', '', '', '', '', "", "", "", "", "", "M");
  3239. //modal("SPPMO01700", "1", "", "", "SPPMO01700", "", "");
  3240. frmf_clearParameter("SPPMO01700_pid");
  3241. frmf_clearParameter("SPPMO01700_orddd");
  3242. frmf_clearParameter("SPPMO01700_cretno");
  3243. var retValue = frmf_getParameter("SPPMO01700_RTN");
  3244. if( retValue == 'Y' ){
  3245. return true;
  3246. }else{
  3247. return false;
  3248. }
  3249. }
  3250. /**
  3251. * @desc : capa수 제한 함수
  3252. * @param :
  3253. * @return : centeryn
  3254. * @---------------------------------------------------
  3255. */
  3256. function fCapaCheck()
  3257. {
  3258. dsf_createDs("ds_init_capachecklist", [
  3259. {col:"cdnm", type:"STRING", size:256}
  3260. , {col:"cdid", type:"STRING", size:256}
  3261. ]);
  3262. //submit("TRPMB00716");
  3263. var oParam = {};
  3264. oParam.id = "TRPMB00716";
  3265. oParam.service = "pambaseinfomngtapp.OrdSche";
  3266. oParam.method = "reqGetCapaCheckYN";
  3267. oParam.inds = "";
  3268. oParam.outds = "ds_init_capachecklist=capachecklist";
  3269. oParam.async = false;
  3270. tranf_submit(oParam);
  3271. // ds_init_capachecklist 호출되는 것이 없어서 임으의 테이블 이름으로 선언해 놓음.
  3272. // 2016.08.08 kimdo3
  3273. }
  3274. /**
  3275. * @desc : 전화예약 초재진 예약일자 조회
  3276. * @param :
  3277. * @return :
  3278. * @---------------------------------------------------
  3279. */
  3280. function FsexamFalg()
  3281. {
  3282. // SMPMO00200_전화예약에서 사용되며, 관련 데이타 SET에서 유사한 이름 확인.
  3283. dsf_createDs("ds_init_fsexamdd", [
  3284. {col:"cdnm", type:"STRING", size:256}
  3285. , {col:"cdid", type:"STRING", size:256}
  3286. ]);
  3287. //submit("TRPMO00209");
  3288. var oParam = {};
  3289. oParam.id = "TRPMO00209";
  3290. oParam.service = "opatmngtapp.OPatMngt";
  3291. oParam.method = "reqGetFsexamRsrvdd";
  3292. oParam.inds = "";
  3293. oParam.outds = "ds_init_fsexamdd=fsexamddlist";
  3294. oParam.async = false;
  3295. tranf_submit(oParam);
  3296. }
  3297. /**
  3298. * @desc : 기관별 은행 및 은행계좌 조회
  3299. * @param :
  3300. * @return :
  3301. * @---------------------------------------------------
  3302. */
  3303. function fBankSearch()
  3304. {
  3305. dsf_createDs("ds_init_bankinfo", [
  3306. {col:"cdid", type:"STRING", size:256}
  3307. , {col:"cdnm", type:"STRING", size:256}
  3308. ]);
  3309. //submit("TRPIF30309");
  3310. var oParam = {};
  3311. oParam.id = "TRPIF30309";
  3312. oParam.service = "clamuncoapp.ClamUnco";
  3313. oParam.method = "reqGetBankInfoSrch";
  3314. oParam.inds = "";
  3315. oParam.outds = "ds_init_bankinfo=bankinfolist";
  3316. oParam.async = false;
  3317. //oParam.callback = "cf_TRPIF30309";
  3318. tranf_submit(oParam);
  3319. }
  3320. /**
  3321. * @desc : 의료급여자동차감승인
  3322. * @param :
  3323. * @return :
  3324. * @---------------------------------------------------
  3325. */
  3326. function fApproveHeallifeAmt(){
  3327. // 자격 조회 호출
  3328. var objDiv = this.objects["ivr_insupopup"];
  3329. if (objDiv == null) {
  3330. objDiv = new Div("ivr_insupopup", 0, 0, 0, 0);
  3331. objDiv.url = sysf_getScreenURL("SPPMC03900");
  3332. this.addChild("ivr_insupopup", objDiv);
  3333. objDiv.show();
  3334. }
  3335. objDiv.fGetInitCode();
  3336. frmf_setParameter("SPPMC03900_POPUPTYPE", "I");
  3337. // 데이터 초기화 및 자격조회
  3338. if (objDiv.fInit() != true) {
  3339. sysf_messageBox("[보험 자격조회 오류]건유비청구가 정상적으로 되지 않았습니다. 건유비청구 팝업에서 직접 차감해주세요.", "I999");
  3340. objDiv.fClose();
  3341. //2018/08/27 이정택 추가(오류후 리턴시 object종료처리)
  3342. this.removeChild("ivr_insupopup");
  3343. frmf_setParameter("SPPMC03900_heallifeamtval", "");
  3344. //2018/08/27 이정택 추가(오류후 리턴시 object종료처리)
  3345. return false;
  3346. }
  3347. if (objDiv.fSetHeallifeamtclamamt() != true) {
  3348. sysf_messageBox("[건유비 금액 입력 오류]건유비청구가 정상적으로 되지 않았습니다. 건유비청구 팝업에서 직접 차감해주세요.", "I999");
  3349. objDiv.fClose();
  3350. //2018/08/27 이정택 추가(오류후 리턴시 object종료처리)
  3351. this.removeChild("ivr_insupopup");
  3352. frmf_setParameter("SPPMC03900_heallifeamtval", "");
  3353. //2018/08/27 이정택 추가(오류후 리턴시 object종료처리)
  3354. return false;
  3355. }
  3356. if (objDiv.fReqApproval() != true) {
  3357. sysf_messageBox("[건유비 청구 승인 오류]건유비청구가 정상적으로 되지 않았습니다. 건유비청구 팝업에서 직접 차감해주세요.", "I999");
  3358. objDiv.fClose();
  3359. //2018/08/27 이정택 추가(오류후 리턴시 object종료처리)
  3360. this.removeChild("ivr_insupopup");
  3361. frmf_setParameter("SPPMC03900_heallifeamtval", "");
  3362. //2018/08/27 이정택 추가(오류후 리턴시 object종료처리)
  3363. return false;
  3364. }
  3365. objDiv.fClose();
  3366. this.removeChild("ivr_insupopup");
  3367. }
  3368. /**
  3369. * @desc : 산전지원비자동승인
  3370. * @param :
  3371. * @return :
  3372. * @---------------------------------------------------
  3373. */
  3374. function fApprovePreDmndAmt(){
  3375. //보험증번호 조회(보험자격조회)
  3376. var starttime = utlf_getCurrentTime();
  3377. // var ivrObjt = document.all("ivr_insupopup");
  3378. // if( ivrObjt == null ){
  3379. // body.createChild("xforms:iviewer", "id:ivr_insupopup; src:../../../pam/pamcomnweb/xrw/SPPMC03900_의료급여자격조회승인.xrw");
  3380. // ivrObjt = document.all("ivr_insupopup");
  3381. // //공통코드 초기화
  3382. // ivrObjt.fGetInitCode();
  3383. // }
  3384. frmf_open("SPPMC03900", "SPPMC03900", "", "", "", "", "", "", "", "", "", "", "P");
  3385. var ivrObjt = frmf_findPopup("SPPMC03900");
  3386. ivrObjt.fGetInitCode();
  3387. //팝업타입 - 아이뷰어로 세팅 메세지 처리시 필요
  3388. frmf_setParameter("SPPMC03900_POPUPTYPE", "I"); //iviewer
  3389. //데이터 초기화 및 자격조회
  3390. if( ivrObjt.fInit() != true ){
  3391. sysf_messageBox("[보험 자격조회 오류]산전지원비승인이 정상적으로 되지 않았습니다. 산전지원승인 팝업에서 직접 차감해주세요.","I999");
  3392. ivrObjt.fClose();
  3393. return false;
  3394. }
  3395. if( ivrObjt.fSetPregDmndAmt() != true ){
  3396. sysf_messageBox("[건유비 금액 입력 오류]산전지원비승인이 정상적으로 되지 않았습니다. 산전지원승인 팝업에서 직접 차감해주세요.","I999");
  3397. ivrObjt.fClose();
  3398. return false;
  3399. }
  3400. if( ivrObjt.fReqApproval() != true ){
  3401. sysf_messageBox("[건유비 청구 승인 오류]산전지원비승인이 정상적으로 되지 않았습니다. 산전지원승인 팝업에서 직접 차감해주세요.","I999");
  3402. ivrObjt.fClose();
  3403. return false;
  3404. }
  3405. ivrObjt.fClose();
  3406. var finishtime = utlf_getCurrentTime();
  3407. // body.removeChild("ivr_insupopup");
  3408. }
  3409. /**
  3410. * @desc : 사망환자 알림메세지
  3411. * @param :
  3412. * @return :
  3413. * @---------------------------------------------------
  3414. */
  3415. function fCheckDethYN(dethyn, dethdt){
  3416. if(dethyn == "Y"){
  3417. if(dethdt.length >= 8){
  3418. sysf_messageBox(dethdt.substr(0, 4) + "년 " +
  3419. dethdt.substr(4, 2) + "월 " +
  3420. dethdt.substr(6, 2) + "일 " +
  3421. dethdt.substr(8, 2) + "시 " + " 사망하신 분입니다.", "I999");
  3422. }
  3423. if(dethdt.length < 8){
  3424. sysf_messageBox("사망하신 분입니다.", "I999");
  3425. }
  3426. }
  3427. }
  3428. /**
  3429. * @desc : 자동미수 - 계약처 독립유공자 미수
  3430. * @param : path = '/root/main/opmi/opmi_', inputBoxName = 미수금입력 inputbox 컨트롤 명, inputBoxEvent = 미수금이 입력됐을 때 발생하는 이벤트 타입
  3431. * @return :
  3432. * @---------------------------------------------------
  3433. */
  3434. function fCheckAutoUnco(path, uncocd, inputBoxName, inputBoxEvent){
  3435. if( uncocd == '' || uncocd == '-' ){
  3436. return false;
  3437. }
  3438. if( path == '' || path == '-' ){
  3439. return false;
  3440. }
  3441. if( inputBoxName == '' || inputBoxName == '-' ){
  3442. return false;
  3443. }
  3444. if( inputBoxEvent == '' || inputBoxEvent == '-' ){
  3445. return false;
  3446. }
  3447. //미수코드 체크
  3448. dsf_createDsRow("ds_hidden_pamcomcd_send", [
  3449. {col:"cdgrupid", type:"STRING", size:256, val: 'P0071' }
  3450. , {col:"cdid", type:"STRING", size:256, val: uncocd }
  3451. ]);
  3452. //submit("TRPMO00123");
  3453. var oParam = {};
  3454. oParam.id = "TRPMO00123";
  3455. oParam.service = "opatmngtapp.OPatMngt";
  3456. oParam.method = "reqGetCenterYN";
  3457. oParam.inds = "req=ds_hidden_pamcomcd_send";
  3458. oParam.outds = "ds_hidden_pamcomcd_rcv_pamcd=pamcd";
  3459. oParam.async = false;
  3460. tranf_submit(oParam);
  3461. var iCount = ds_hidden_pamcomcd_rcv_pamcd.rowcount;
  3462. if(iCount > 0){
  3463. var payownbamt = path.getColumn(0, "opmi_payownbamt100" );
  3464. payownbamt = parseInt(payownbamt) / 10;
  3465. payownbamt = parseInt(payownbamt) * 10;
  3466. path.setColumn(0, "opmi_uncoamt", payownbamt);
  3467. var iptObjt = inputBoxName;
  3468. if(iptObjt == null){
  3469. sysf_messageBox("미수금입력 컨트롤 명이 잘못 전달 되었습니다. 정보지원팀에 문의하세요!", "E999", "");
  3470. return false;
  3471. }
  3472. //iptObjt.refresh();
  3473. //iptObjt.dispatch(inputBoxEvent);
  3474. eval(iptObjt).setFocus();
  3475. frmf_inputEnterKey(iptObjt, inputBoxEvent, new KillFocusEventInfo);
  3476. return true;
  3477. }else{
  3478. path.setColumn(0, "opmi_uncoamt", "0");
  3479. var iptObjt = inputBoxName;
  3480. if(iptObjt == null){
  3481. sysf_messageBox("미수금입력 컨트롤 명이 잘못 전달 되었습니다. 정보지원팀에 문의하세요!", "E999", "");
  3482. return false;
  3483. }
  3484. //iptObjt.refresh();
  3485. //iptObjt.dispatch(inputBoxEvent);
  3486. eval(iptObjt).setFocus();
  3487. //frmf_inputEnterKey(iptObjt, inputBoxEvent, new KillFocusEventInfo);
  3488. return false;
  3489. }
  3490. }
  3491. /**
  3492. * @desc : 글로별 변수로 선언된 환자번호 가져오기
  3493. * @param : inputbox 컨트롤 명, inputBoxEvent = 환자번호(inputbox)에서 발생하는 이벤트 타입
  3494. * @return :
  3495. * @---------------------------------------------------
  3496. */
  3497. function fkeyCode_pid(inputBoxName,inputBoxEvent, event ) {
  3498. if( inputBoxName == '' || inputBoxName == '-' ){
  3499. return;
  3500. }
  3501. if( inputBoxEvent == '' || inputBoxEvent == '-' ){
  3502. return;
  3503. }
  3504. var iptObjt = eval(inputBoxName);
  3505. iptObjt.value = sysf_getGlobalVariable("g_pid","p");
  3506. frmf_inputEnterKey(inputBoxName, inputBoxEvent, new KeyEventInfo);
  3507. return;
  3508. }
  3509. /**
  3510. * @desc : 응급등록시 입원결정이나 입원예약이 있으면 메세지로 알려준다
  3511. * @param : pid - 환자번호
  3512. * inrsrvstat - 예약구분 T:예약 S:결정
  3513. * indirecdd - 입원지시일자
  3514. * @return : null
  3515. * @---------------------------------------------------
  3516. */
  3517. function fGetErAdrv(){
  3518. dsf_createDs("ds_source_adrvmessage", [
  3519. {col:"pid", type:"STRING", size:256}
  3520. , {col:"inrsrvstat", type:"STRING", size:256}
  3521. , {col:"indirecdd", type:"STRING", size:256}
  3522. ]);
  3523. dsf_createDs("ds_send_data40", [
  3524. {col:"pid", type:"STRING", size:256}
  3525. ]);
  3526. ds_send_data40.addRow();
  3527. ds_send_data40.setColumn(0, "pid" , ds_main_ptbs.getColumn(0, "ptbs_pid"));
  3528. var oParam = {};
  3529. oParam.id = "TRPMI06020";
  3530. oParam.service = "ipatmngtapp.ErRgst";
  3531. oParam.method = "reqGetErAdrv";
  3532. oParam.inds = "req=ds_send_data40";
  3533. oParam.outds = "ds_source_adrvmessage=adrvmessage";
  3534. oParam.async = false;
  3535. tranf_submit(oParam);
  3536. var pid = ds_source_adrvmessage.getColumn(0, "pid");
  3537. var inrsrvstat = ds_source_adrvmessage.getColumn(0, "inrsrvstat");
  3538. var indirecdd = ds_source_adrvmessage.getColumn(0, "indirecdd");
  3539. var flag = "";
  3540. if(inrsrvstat == "S"){
  3541. flag = "입원결정";
  3542. }else if(inrsrvstat == "T"){
  3543. flag = "입원예약";
  3544. }
  3545. if(pid == "" || pid == null){
  3546. return;
  3547. }else{
  3548. return sysf_messageBox(flag + "된 환자입니다. 확인하십시요.", "I000");
  3549. }
  3550. }
  3551. /**
  3552. * @desc : 미수담당자가 미수안내여부를 Y로 했을 경우에 안내메세지를 보여준다
  3553. */
  3554. function fGetPtunyn(){
  3555. var ptunyn = ds_main_ptbs.getColumn(0, "ptbs_ptunyn");
  3556. if(ptunyn == "Y"){
  3557. sysf_messageBox("해당환자를 원무팀 미수담당자에게 안내","I008");
  3558. }
  3559. }
  3560. // 동명이인 체크실시
  3561. function fCheckNameConflict(pid, ordtype) {
  3562. // 필수체크
  3563. if ((pid == '' || pid == null) || (ordtype == '' || ordtype == null)) {
  3564. sysf_messageBox("차트번호 또는 진료구분이 입력되지 않았습니다.\r\n 차트번호 또는 진료구분을", "I007");
  3565. return;
  3566. } else {
  3567. dsf_createDs("ds_temp_nameconflict", [
  3568. {col:"conflictyn", type:"STRING", size:256}
  3569. ]);
  3570. dsf_createDsRow("ds_send_nameconflict", [
  3571. {col:"pid", type:"STRING", size:256, val: pid }
  3572. , {col:"ordtype", type:"STRING", size:256, val: ordtype }
  3573. ]);
  3574. submit("TRPMC07401");
  3575. var oParam = {};
  3576. oParam.id = "TRPAC00101";
  3577. oParam.service = "pamcomnapp.PamComn";
  3578. oParam.method = "reqGetNameConflict";
  3579. oParam.inds = "req=ds_send_nameconflict";
  3580. oParam.outds = "ds_temp_nameconflict=conflictyn";
  3581. oParam.async = false;
  3582. tranf_submit(oParam);
  3583. if (ds_temp_nameconflict.getColumn(0, "conflictyn") == "Y") {
  3584. if (ordtype == 'E') {
  3585. sysf_messageBox(" ★★★ 동명이인 주의 ★★★ \r\n\r\n" +
  3586. "응급실에 현재 동명이인이 있습니다.\r\n" +
  3587. "환자이름 뒤 문자 추가 후 환자팔찌와 이름표를 출력하십시오.\r\n\r\n" +
  3588. " [예] 홍길동A, 홍길녀B", "I000");
  3589. } else if (ordtype == 'I') {
  3590. sysf_messageBox(" ★★★ 동명이인 주의 ★★★ \r\n\r\n" +
  3591. "재원환자 중에 현재 동명이인이 있습니다.\r\n" +
  3592. "환자이름 뒤 문자 추가 후 약정서, 결정서, 환자팔찌와 이름표를 출력하십시오.\r\n\r\n" +
  3593. " [예] 홍길동A, 홍길녀B", "I000");
  3594. } else {
  3595. sysf_messageBox("현재 등록하려는 환자와 성명이 동일한 환자가 이미 존재합니다.\r\n" +
  3596. "처방오류 등의 방지를 위해 환자의 성명을 수정하여 등록", "I000");
  3597. }
  3598. return false;
  3599. } else {
  3600. return true;
  3601. }
  3602. }
  3603. }
  3604. //사생활보호 요청환자 정보 취득
  3605. function fGetPatPrivacyInfo(pid) {
  3606. if (utlf_isNull(pid)) {
  3607. sysf_messageBox("환자번호가", "I004");
  3608. return false;
  3609. }
  3610. //receive
  3611. dsf_createDs("ds_temp_patprivacy", [
  3612. {col:"no", type:"STRING", size:256}
  3613. , {col:"request", type:"STRING", size:256}
  3614. , {col:"requestetc", type:"STRING", size:256}
  3615. , {col:"target", type:"STRING", size:256}
  3616. , {col:"targetetc", type:"STRING", size:256}
  3617. , {col:"type", type:"STRING", size:256}
  3618. , {col:"typeetc", type:"STRING", size:256}
  3619. , {col:"rmk", type:"STRING", size:256}
  3620. ]);
  3621. //send
  3622. dsf_createDsRow("ds_send_patprivacy", [
  3623. {col:"pid", type:"STRING", size:256, val: pid}
  3624. , {col:"endyncheck", type:"STRING", size:256, val: "Y"}
  3625. ]);
  3626. //submit("TRPMC06904");
  3627. var oParam = {};
  3628. oParam.id = "TRPMC06904";
  3629. oParam.service = "patinfomngtapp.PatPrivacy";
  3630. oParam.method = "reqGetPatPrivacyDesc";
  3631. oParam.inds = "req=ds_send_patprivacy";
  3632. oParam.outds = "ds_temp_patprivacy=privacydesc";
  3633. oParam.async = false;
  3634. tranf_submit(oParam);
  3635. if (utlf_isNull(ds_temp_patprivacy.getColumn(0, "no"))) {
  3636. //div_left.cap_privacy.visible = false;
  3637. cap_privacy.visible = false; //외래등록에서는 div_left. 가 사용되지 않음.
  3638. } else {
  3639. //div_left.cap_privacy.visible = true;
  3640. cap_privacy.visible = true;
  3641. var strMsg = rightPad("사생활보호환자입니다.", ' ', 53) + "\r\n";
  3642. strMsg = strMsg + "\r\n" + rightPad("요청자\t : " + ds_temp_patprivacy.getColumn(0, "request") + " "
  3643. + utlf_transNullToEmpty(ds_temp_patprivacy.getColumn(0, "requestetc")) , ' ', 50) ;
  3644. strMsg = strMsg + "\r\n" + rightPad("요청대상\t : " + ds_temp_patprivacy.getColumn(0, "target") + " "
  3645. + utlf_transNullToEmpty(ds_temp_patprivacy.getColumn(0, "targetetc")) , ' ', 42) ;
  3646. strMsg = strMsg + "\r\n" + rightPad("요청내용\t : " + ds_temp_patprivacy.getColumn(0, "type") + " "
  3647. + utlf_transNullToEmpty(ds_temp_patprivacy.getColumn(0, "typeetc")) , ' ', 36) ;
  3648. strMsg = strMsg + "\r\n" + rightPad("요청비고\t : " + utlf_transNullToEmpty(ds_temp_patprivacy.getColumn(0, "rmk")) , ' ', 62) ;
  3649. strMsg = strMsg + "\r\n\r\n" + "위 내용의 취급에 주의 ";
  3650. sysf_messageBox(strMsg, "I008");
  3651. }
  3652. }
  3653. //사생활보호 요청환자 정보 취득 입원수납용
  3654. function fGetPatPrivacyInfo_i(pid,pre_loading_yn) {
  3655. if(pre_loading_yn == "Y" ){
  3656. //입원수납은 자선정보 미리 조회해오므로 submit 통과
  3657. }
  3658. if(ds_temp_h_patprivacy.rowcount == 0){
  3659. cap_privacy.visible = false;
  3660. } else {
  3661. cap_privacy.visible = true;
  3662. var strMsg = rightPad("사생활보호환자입니다.", ' ', 53) + "\r\n";
  3663. strMsg = strMsg + "\r\n" + rightPad("요청자\t : " + utlf_transNullToEmpty(ds_temp_h_patprivacy.getColumn(0, "request")) + " "
  3664. + utlf_transNullToEmpty(ds_temp_h_patprivacy.getColumn(0, "requestetc")) , ' ', 50) ;
  3665. strMsg = strMsg + "\r\n" + rightPad("요청대상\t : " + utlf_transNullToEmpty(ds_temp_h_patprivacy.getColumn(0, "target")) + " "
  3666. + utlf_transNullToEmpty(ds_temp_h_patprivacy.getColumn(0, "targetetc")) , ' ', 42) ;
  3667. strMsg = strMsg + "\r\n" + rightPad("요청내용\t : " + utlf_transNullToEmpty(ds_temp_h_patprivacy.getColumn(0, "type")) + " "
  3668. + utlf_transNullToEmpty(ds_temp_h_patprivacy.getColumn(0, "typeetc")) , ' ', 36) ;
  3669. strMsg = strMsg + "\r\n" + rightPad("요청비고\t : " + utlf_transNullToEmpty(ds_temp_h_patprivacy.getColumn(0, "rmk")) , ' ', 62) ;
  3670. strMsg = strMsg + "\r\n\r\n" + "위 내용의 취급에 주의 ";
  3671. sysf_messageBox(strMsg, "I008");
  3672. }
  3673. }
  3674. // 격리 신청환자 정보 취득
  3675. function fGetPatIsolateInfo(isolateinfo) {
  3676. // 격리승인정보 체크
  3677. if (utlf_isNull(isolateinfo)) {
  3678. cap_isolate.visible = false;
  3679. cap_isolate.tooltoptext = "";
  3680. return;
  3681. } else {
  3682. cap_isolate.visible = true;
  3683. cap_isolate.tooltoptext = isolateinfo;
  3684. return;
  3685. }
  3686. }
  3687. // 사생활보호 정보관리창 호출
  3688. function fCallPatPrivacy(pid) {
  3689. // 사생활보호관리화면 호출
  3690. frmf_setParameter("SPPMC06900_PARM", pid)
  3691. //2018/04/26 이정택 수정
  3692. //frmf_modal("SPPMC06900", "SPPMC06900", "", "", "", "", "", "", "", "", "", "", "M");
  3693. frmf_modal("SPPMC06900", "SPPMC06900", "", false, 1, '', '', 702, 505, "", "", "", "M");
  3694. //2018/04/26 이정택 수정
  3695. // 사생활보호관리화면의 결과에 따라 사생활보호 표시
  3696. if (ds_hidden.getColumn(0, "patprivacyendyn") == "Y"
  3697. || ds_hidden.getColumn(0, "patprivacyendyn") == "") {
  3698. cap_privacy.visible = false;
  3699. } else {
  3700. cap_privacy.visible = true;
  3701. }
  3702. }
  3703. // 선택진료신청안내창 열기
  3704. function fOpenSPIFInfo() {
  3705. //open("SMPMC06504","2", "200","", "", "", "", "width:840px; height:950px; caption:visible; resize:false;");
  3706. frmf_open("SMPMC06504", "SMPMC06504", "", false, "2", "200", "", "", "", "", "", "", "M");
  3707. }
  3708. // 선택진료신청안내창 닫기
  3709. function fCloseSPIFInfo() {
  3710. var popupObjt = frmf_findPopup("SMPMC06504") ;
  3711. if(!utlf_isNull(popupObjt)) {
  3712. popupObjt.close();
  3713. }
  3714. }
  3715. // 특이환자체크용
  3716. function fCheckPatient(pid, ordtype) {
  3717. var ivrObjt = frmf_findPopup("SPPMC06513") ;
  3718. if (ivrObjt == null) {
  3719. //body.createChild("xforms:iviewer", "id:ivr_checkpatient; src:../../../pam/pamcomnweb/xrw/SPPMC06513_특이환자체크.xrw");
  3720. frmf_open("SPPMC06513", "SPPMC06513", "", "", "", "", "", "", "", "", "", "", "M");
  3721. ivrObjt = frmf_findPopup("SPPMC06513") ;
  3722. }
  3723. // 메소드 호출
  3724. return ivrObjt.fGetSpclPatient(pid, ordtype);
  3725. }
  3726. function fCheckRefund(pid) {
  3727. model.makeValue("/root/send/refund/pid", pid);
  3728. model.makeNode("/root/refund/refundlist");
  3729. //receive
  3730. dsf_createDs("ds_refund_refundlist", [
  3731. {col:"pid", type:"STRING", size:256}
  3732. , {col:"orddd", type:"STRING", size:256}
  3733. ]);
  3734. var day = "";
  3735. //send
  3736. dsf_createDsRow("ds_send_refund", [
  3737. {col:"pid", type:"STRING", size:256, val: pid}
  3738. ]);
  3739. // submit("TRPMC06905");
  3740. var oParam = {};
  3741. oParam.id = "TRPMC06905";
  3742. oParam.service = "opatmngtapp.OPatMngt";
  3743. oParam.method = "reqGetPidRefundInfo";
  3744. oParam.inds = "req=ds_send_refund";
  3745. oParam.outds = "ds_=refundlist";
  3746. oParam.async = false;
  3747. tranf_submit(oParam);
  3748. if ( ds_refund_refundlist.rowcount > 0 ) {
  3749. var cnt = ds_refund_refundlist.rowcount;
  3750. for ( var j=0; j < cnt; j++) {
  3751. var odd = ds_refund_refundlist.getColumn( j , "orddd");
  3752. if ( j == cnt) {
  3753. day += " '" + odd.toDate().getDateFormat("YYYY-MM-DD")+ "'";
  3754. } else {
  3755. day += " '" +odd.toDate().getDateFormat("YYYY-MM-DD")+ "'" + ",";
  3756. }
  3757. }
  3758. sysf_messageBox("진료일자 " + day + " 에 대한 미진료 예약금이 있으니 확인 후 환불바랍니다", "I");
  3759. }
  3760. }
  3761. /**
  3762. * 원무 전자동의서 호출용 IF
  3763. * @param pid 환자번호
  3764. * @param orddd 진료일자
  3765. * @param cretno 생성번호
  3766. * @param ordtype 진료구분
  3767. * @param flag 서식구분(A:입원약정서, G:일반동의서, J:자보동의서, O:외출외박신청서, P:Rexpert동의서, T:기간약정서, U:상급병실신청서, I:산재동의서
  3768. * @param formcd 서식코드(하드코드 테이블에 정의)
  3769. *
  3770. * @return ocrtag
  3771. */
  3772. function fPrintOcrConsent(nodePath:Dataset) {
  3773. // 공통 파라미터 세팅
  3774. frmf_setParameter("SSMRC03160_param_instcd", sysf_getUserInfo("dutplceinstcd"));
  3775. frmf_setParameter("SSMRC03160_param_patid", nodePath.getColumn(0, "pid"));
  3776. frmf_setParameter("SSMRC03160_param_indate", nodePath.getColumn(0, "orddd"));
  3777. frmf_setParameter("SSMRC03160_param_cretno", nodePath.getColumn(0, "cretno"));
  3778. frmf_setParameter("SSMRC03160_param_class", nodePath.getColumn(0, "ordtype"));
  3779. frmf_setParameter("SSMRC03160_param_flag", nodePath.getColumn(0, "flag"));
  3780. frmf_setParameter("SSMRC03160_param_docucd", nodePath.getColumn(0, "formcd"));
  3781. frmf_setParameter("SSMRC03160_param_cuser", sysf_getUserInfo("userid"));
  3782. // 서식구분 별 필요한 정보 추가세팅
  3783. // 자보동의서
  3784. if(nodePath.getColumn(0, 'flag') == "J") {
  3785. // 본원
  3786. if(sysf_getUserInfo("dutplceinstcd") == "031") {
  3787. frmf_setParameter("SSMRC03160_param_tag1", "053) 200 - 5099"); // 자보담당자전화
  3788. frmf_setParameter("SSMRC03160_param_tag2", "053) 426 - 9517"); // 외래FAX
  3789. frmf_setParameter("SSMRC03160_param_tag3", "053) 200 - 5058"); // 응급실전화
  3790. frmf_setParameter("SSMRC03160_param_tag4", "053) 420 - 5098"); // 응급실FAX
  3791. frmf_setParameter("SSMRC03160_param_tag5", "10,000"); // 상급병실차액소견서
  3792. // 칠곡
  3793. }
  3794. else if(sysf_getUserInfo("dutplceinstcd") == "032") {
  3795. frmf_setParameter("SSMRC03160_param_tag1", "053) 200 - 2064"); // 자보담당자전화
  3796. frmf_setParameter("SSMRC03160_param_tag2", "053) 200 - 2079"); // 외래FAX
  3797. frmf_setParameter("SSMRC03160_param_tag3", "053) 200 - 2108"); // 응급실전화
  3798. frmf_setParameter("SSMRC03160_param_tag4", "053) 200 - 2109"); // 응급실FAX
  3799. frmf_setParameter("SSMRC03160_param_tag5", "10,000"); // 상급병실차액소견서
  3800. // 치과병원
  3801. }
  3802. else if(sysf_getUserInfo("dutplceinstcd") == "033") {
  3803. frmf_setParameter("SSMRC03160_param_tag1", "053) 200 - 5099"); // 자보담당자전화
  3804. frmf_setParameter("SSMRC03160_param_tag2", "053) 426 - 9517"); // 외래FAX
  3805. frmf_setParameter("SSMRC03160_param_tag3", "053) 200 - 5058"); // 응급실전화
  3806. frmf_setParameter("SSMRC03160_param_tag4", "053) 420 - 5098"); // 응급실FAX
  3807. frmf_setParameter("SSMRC03160_param_tag5", "10,000"); // 상급병실차액소견서
  3808. }
  3809. }
  3810. // 상급병실신청서
  3811. else if (nodePath.getColumn(0, 'flag') == "U") {
  3812. frmf_setParameter("SSMRC03160_param_tag1", nodePath.getColumn(0, "bedcnt"));
  3813. frmf_setParameter("SSMRC03160_param_tag2", nodePath.getColumn(0, "roomcd"));
  3814. frmf_setParameter("SSMRC03160_param_tag3", nodePath.getColumn(0, "extrapay").split("").reverse().join("").replace(/(\d{3})/g,"$1,").replace(/,$/,"").split("").reverse().join(""));
  3815. }
  3816. // 영상정보처리기기 수집이용 동의서
  3817. else if (nodePath.getColumn(0, 'flag') == "C") {
  3818. frmf_setParameter("SSMRC03160_param_tag1", nodePath.getColumn(0, "tag1"));
  3819. frmf_setParameter("SSMRC03160_param_tag2", nodePath.getColumn(0, "tag2"));
  3820. }
  3821. // 입원통지서 수령 확인서
  3822. else if (nodePath.getColumn(0, 'flag') == "N") {
  3823. frmf_setParameter("SSMRC03160_param_tag1", nodePath.getColumn(0, "tag1"));
  3824. frmf_setParameter("SSMRC03160_param_tag2", nodePath.getColumn(0, "tag2"));
  3825. frmf_setParameter("SSMRC03160_param_tag3", nodePath.getColumn(0, "tag3"));
  3826. frmf_setParameter("SSMRC03160_param_tag4", nodePath.getColumn(0, "tag4"));
  3827. }
  3828. // 간호간병통합서비스 병동 입원동의서
  3829. else if (nodePath.getColumn(0, 'flag') == "W") {
  3830. frmf_setParameter("SSMRC03160_param_tag1", nodePath.getColumn(0, "tag1"));
  3831. frmf_setParameter("SSMRC03160_param_tag2", nodePath.getColumn(0, "tag2"));
  3832. frmf_setParameter("SSMRC03160_param_tag3", nodePath.getColumn(0, "tag3"));
  3833. }
  3834. // 입원전담전문의 병동 입원동의서
  3835. else if (nodePath.getColumn(0, 'flag') == "H") {
  3836. frmf_setParameter("SSMRC03160_param_tag1", nodePath.getColumn(0, "tag1"));
  3837. frmf_setParameter("SSMRC03160_param_tag2", nodePath.getColumn(0, "tag2"));
  3838. frmf_setParameter("SSMRC03160_param_tag3", nodePath.getColumn(0, "tag3"));
  3839. frmf_setParameter("SSMRC03160_param_tag4", nodePath.getColumn(0, "tag4"));
  3840. frmf_setParameter("SSMRC03160_param_tag5", nodePath.getColumn(0, "tag5"));
  3841. frmf_setParameter("SSMRC03160_param_tag6", nodePath.getColumn(0, "tag6"));
  3842. frmf_setParameter("SSMRC03160_param_tag7", nodePath.getColumn(0, "tag7"));
  3843. frmf_setParameter("SSMRC03160_param_tag8", nodePath.getColumn(0, "tag8"));
  3844. frmf_setParameter("SSMRC03160_param_tag9", nodePath.getColumn(0, "tag9"));
  3845. frmf_setParameter("SSMRC03160_param_tag10", nodePath.getColumn(0, "tag10"));
  3846. }
  3847. // 전자동의서 모듈 호출( 이윤주 수정 : 20200130 )
  3848. if (lf_ContainsHardCD("6950", "Y") && lf_ContainsHardCD("6952", nodePath.getColumn(0, "formcd")) && lf_ContainsHardCD("6951", sysf_getUserInfo("userid"))) {
  3849. frmf_modal("SPMRF04601", "SPMRF04601", '', "", '', '', '', "", "", "", "", "", "M");
  3850. }
  3851. else {
  3852. frmf_modal("SSMRC03160", "SSMRC03160", '', "", '', '', '', "", "", "", "", "", "M");
  3853. }
  3854. return frmf_getParameter("SSMRC03160_param_rtnocrtag");
  3855. }
  3856. /**
  3857. * 2013-04-01 이동식
  3858. * 전화번호 형식 바꾸기
  3859. * 전화번호 입력하면 자동으로 '-' 값 넣어주기
  3860. * */
  3861. function fMakeTelNumFormat(str){
  3862. //var RegNotNum = /[^0-9]/g;
  3863. //num = num.replace(RegNotNum,'');
  3864. //return num.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");
  3865. var RegNotNum = /[^0-9]/g;
  3866. var RegPhonNum = "";
  3867. var DataForm = "";
  3868. // return blank
  3869. if( str == "" || str == null ) return "";
  3870. // delete not number ㅋ
  3871. str = str.replace(RegNotNum,'');
  3872. if( str.length < 4 ) return str;
  3873. if( str.length > 3 && str.length < 7 ) {
  3874. DataForm = "$1-$2";
  3875. RegPhonNum = /([0-9]{3})([0-9]+)/;
  3876. } else if(str.length == 7 ) {
  3877. DataForm = "$1-$2";
  3878. RegPhonNum = /([0-9]{3})([0-9]{4})/;
  3879. } else {
  3880. DataForm = "$1-$2-$3";
  3881. //RegPhonNum = /([0-9]{3})([0-9]{4})([0-9]+)/;
  3882. RegPhonNum = /(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/;
  3883. }
  3884. while( RegPhonNum.test(str) ) {
  3885. str = str.replace(RegPhonNum, DataForm);
  3886. }
  3887. return str;
  3888. }
  3889. /**
  3890. * QC프로그램(지능형 순번) 연동 스크립트
  3891. * QC프로그램에서 저장한 차트번호를 읽어 ku화면에 표시
  3892. */
  3893. function getQCInfo() {
  3894. // 파일위치 : C:\\QS\\USRN\\qcresult.txt
  3895. var filePath = "C:\\QS\\USRN\\qcresult.txt";
  3896. var fso = inff_fileSystemObject(); // new ActiveXObject("Scripting.FileSystemObject");
  3897. var resultPID = "";
  3898. // file유무검사
  3899. if (!fso.FileExists(filePath)) {
  3900. // 에러발생은 시키지 않음
  3901. } else {
  3902. var fOpen = fso.OpenTextFile(filePath, 1);
  3903. while(!fOpen.AtEndOfStream) {
  3904. resultPID = fOpen.Readline();
  3905. }
  3906. if (resultPID == "") {
  3907. // 호출된 환자가 없습니다.
  3908. return "";
  3909. }
  3910. }
  3911. return resultPID;
  3912. }
  3913. /*
  3914. * 2013-07-19 서원식
  3915. * 감면정보 체크
  3916. */
  3917. function fGetDcucInfo(pid){
  3918. //send
  3919. dsf_createDsRow("ds_send_checkdcuc", [
  3920. {col:"pid", type:"STRING", size:256, val: pid}
  3921. ]);
  3922. //submit("TRPAO00001");
  3923. var oParam = {};
  3924. oParam.id = "TRPAO00001";
  3925. oParam.service = "pamcomnapp.PamComn";
  3926. oParam.method = "reqGetCheckDcucStat";
  3927. oParam.inds = "req=ds_";
  3928. oParam.outds = "ds_temp_dcucinfo=dcucinfo";
  3929. oParam.async = false;
  3930. tranf_submit(oParam);
  3931. var dcucMsg = ds_temp_dcucinfo.getColumn(0, "dcucmsg");
  3932. if(dcucMsg != '' && dcucMsg != ' ' && dcucMsg != null){
  3933. sysf_messageBox(dcucMsg, "E999");
  3934. }
  3935. }
  3936. /*
  3937. * 2013-08-27 서원식
  3938. * 환자정보(주민등록번호) 존재여부 체크
  3939. */
  3940. function fGetPtbsInfo(rrgstno1, rrgstno2, pid){
  3941. if(String(rrgstno1).length != 6 || String(rrgstno2).length != 7){
  3942. sysf_messageBox("주민등록번호를 확인하세요!", "E999", "");
  3943. return false;
  3944. }
  3945. // send
  3946. dsf_createDsRow("ds_send_checkptbs", [
  3947. {col:"rrgstno1", type:"STRING", size:256, val: rrgstno1}
  3948. , {col:"rrgstno2", type:"STRING", size:256, val: rrgstno2 }
  3949. , {col:"pid", type:"STRING", size:256, val: pid}
  3950. ]);
  3951. if(this.objects['ds_temp_ptbsinfo'] == null){
  3952. dsf_createDsRow('ds_temp_ptbsinfo', [{ col: 'ptbsmsg', type: 'string', size: 256, val: '' }], false);
  3953. }
  3954. //submit("TRPAO00002");
  3955. var oParam = {};
  3956. oParam.id = "TRPAO00002";
  3957. oParam.service = "pamcomnapp.PamComn";
  3958. oParam.method = "reqGetCheckPtbsStat";
  3959. oParam.inds = "req=ds_send_checkptbs";
  3960. oParam.outds = "ds_temp_ptbsinfo=ptbsinfo";
  3961. oParam.async = false;
  3962. tranf_submit(oParam);
  3963. var ptbsMsg = ds_temp_ptbsinfo.getColumn(0, "ptbsmsg");
  3964. if(ptbsMsg != '' && ptbsMsg != ' ' && ptbsMsg != null){
  3965. if(sysf_messageBox("해당 주민등록번호는 환자번호 "+ ptbsMsg + " 등록되어있습니다.\n그래도 진행하시겠습니까?", "Q000") == 6){
  3966. return true;
  3967. }else{
  3968. if(frmf_getTitle().indexOf('환자기본정보관리') >= 0 ){
  3969. ds_hidden_source.setColumn(0, "srchcond", "3");
  3970. ds_hidden_source.setColumn(0, "rrgstno1", rrgstno1);
  3971. ds_hidden_source.setColumn(0, "rrgstno2", rrgstno2);
  3972. //modal("SPPMC02500", 1, "150", "150", "SPPMC02500", "/root/hidden/source", "/root/send");
  3973. var objArg = new Object();
  3974. objArg.arg_ds_send = ds_hidden_source;
  3975. frmf_modal("SPPMC02500", "SPPMC02500", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  3976. }else{
  3977. ds_source.setColumn(0, "srchcond", "3");
  3978. ds_source.setColumn(0, "rrgstno1", rrgstno1);
  3979. ds_source.setColumn(0, "rrgstno2", rrgstno2);
  3980. //modal("SPPMC02500", 1, "150", "150", "SPPMC02500", "/root/source", "/root/send");
  3981. var objArg = new Object();
  3982. objArg.arg_ds_send = ds_source;
  3983. frmf_modal("SPPMC02500", "SPPMC02500", objArg, false, 1, 150, 150, "", "", "", "", "", "M");
  3984. }
  3985. return false;
  3986. }
  3987. }
  3988. return true;
  3989. }
  3990. /*
  3991. * 2013-09-04 서원식
  3992. * 사망한 환자 미시행 처방 존재여부 체크
  3993. * 1. 타병원에서 사망한 환자는 사망여부를 확인할 방법이 없음 : 불가
  3994. * 2. 재원중에 사망한 환자의 경우, 미시행건 + 수납완료된 건이 있으며 팝업으로 환불받을 수 있도록 안내
  3995. */
  3996. function fGetDethOtptInfo(pid){
  3997. dsf_createDs("ds_temp_deth_dethotptinfo");
  3998. dsf_createDsRow("ds_send_checkdethotpt", [
  3999. {col:"pid", type:"STRING", size:256, val: pid}
  4000. , {col:"srchfromdd", type:"STRING", size:256, val: "" }
  4001. , {col:"srchtodd", type:"STRING", size:256, val: ""}
  4002. ]);
  4003. var oParam = {};
  4004. oParam.id = "TRPAO00003";
  4005. oParam.service = "pamcomnapp.PamComn";
  4006. oParam.method = "reqGetDethOtptInfo";
  4007. oParam.inds = "req=ds_send_checkdethotpt";
  4008. oParam.outds = "ds_temp_deth_dethotptinfo=dethotptinfo";
  4009. oParam.async = false;
  4010. tranf_submit(oParam);
  4011. var nodeCnt = ds_temp_deth_dethotptinfo.rowcount;
  4012. if(nodeCnt > 0){
  4013. if(sysf_messageBox("사망하신 환자의 미시행 처방이 있습니다. 확인 하시겠습니까?", "Q000") == 6){
  4014. frmf_setParameter("SPPMO02000_PID", pid);
  4015. //open("SPPMO02000", "1", "10", "30", "", "", "", "width:680px; height:343px; caption:visible; resize:false;", "", "");
  4016. frmf_modal("SPPMO02000", "SPPMO02000", "", false, 1, 10, 30, 680, 343, "", "", "", "M");
  4017. }
  4018. }
  4019. }
  4020. /*
  4021. * 수납마감 사용자관리 조회
  4022. */
  4023. function getRcptuserInfo(){
  4024. var rcptrid = sysf_getUserId(); //로그인ID
  4025. var rcptexecdd = utlf_getCurrentDate(); //현재시간
  4026. dsf_createDsRow("ds_rcptuser_rcptuserinfosend", [
  4027. {col:"userid", type:"STRING", size:256, val: rcptrid}
  4028. , {col:"rcptexecdd", type:"STRING", size:256, val: rcptexecdd}
  4029. ]);
  4030. //submit("TRPAO00007");
  4031. var oParam = {};
  4032. oParam.id = "TRPAO00007";
  4033. oParam.service = "pambaseinfomngtapp.Etc";
  4034. oParam.method = "reqGetuserInfo";
  4035. oParam.inds = "req=ds_rcptuser_rcptuserinfosend";
  4036. oParam.outds = "ds_rcptuserinfo=userrgstlist";
  4037. oParam.async = false;
  4038. tranf_submit(oParam);
  4039. }
  4040. /*
  4041. * 감염정보 표시
  4042. */
  4043. function fSetIsolInfo(isolInfo) {
  4044. // B:혈액
  4045. if (isolInfo.substr(1,1) == "Y") {
  4046. div_left.img_isolb.image = "theme://images/btn_top_infection0.gif"; //"../../../com/hismainweb/images/btn_top_infection0.gif";
  4047. } else {
  4048. div_left.img_isolb.image = "theme://images/btn_top_infection0_d.gif"; //.src = "../../../com/hismainweb/images/btn_top_infection0_d.gif";
  4049. }
  4050. // C:접촉
  4051. if (isolInfo.substr(2,1) == "Y") {
  4052. div_left.img_isolc.image = "theme://images/btn_top_infection1.gif"; // .src = "../../../com/hismainweb/images/btn_top_infection1.gif";
  4053. } else {
  4054. div_left.img_isolc.image = "theme://images/btn_top_infection1_d.gif"; //.src = "../../../com/hismainweb/images/btn_top_infection1_d.gif";
  4055. }
  4056. // A:공기
  4057. if (isolInfo.substr(0,1) == "Y") {
  4058. div_left.img_isola.image = "theme://images/btn_top_infection2.gif"; // .src = "../../../com/hismainweb/images/btn_top_infection2.gif";
  4059. } else {
  4060. div_left.img_isola.image = "theme://images/btn_top_infection2_d.gif"; //.src = "../../../com/hismainweb/images/btn_top_infection2_d.gif";
  4061. }
  4062. // img_isolb.refresh();
  4063. // img_isolc.refresh();
  4064. // img_isola.refresh();
  4065. }
  4066. /*
  4067. * 장애인등록여부 조회
  4068. */
  4069. function getHandcapInfo(orddd, pid, beforeHandicapyn){
  4070. dsf_createDsRow("ds_handcap_handcapinfosend", [
  4071. {col:"pid", type:"STRING", size:256, val: pid}
  4072. , {col:"hngnm", type:"STRING", size:256, val: ""}
  4073. , {col:"rrgstno1", type:"STRING", size:256, val: ""}
  4074. , {col:"rrgstno2", type:"STRING", size:256, val: ""}
  4075. , {col:"checkflag", type:"STRING", size:256, val: "rcpt" }
  4076. , {col:"srchbyrrgstno", type:"STRING", size:256, val: ""}
  4077. , {col:"orddd", type:"STRING", size:256, val: orddd}
  4078. ]);
  4079. //submit("TRPAO00008");
  4080. var oParam = {};
  4081. oParam.id = "TRPAO00008";
  4082. oParam.service = "patinfomngtapp.HandcapPat";
  4083. oParam.method = "reqGetHandcapPat";
  4084. oParam.inds = "req=ds_handcap_handcapinfosend";
  4085. oParam.outds = "ds_handcap_handcapinfo=handcappatlist";
  4086. oParam.async = false;
  4087. tranf_submit(oParam);
  4088. var afterHandicapyn = "N";
  4089. if(ds_handcap_handcapinfo.rowcount > 0){
  4090. afterHandicapyn = "Y";
  4091. }
  4092. if(afterHandicapyn == "Y" && beforeHandicapyn != "Y"){
  4093. sysf_messageBox("장애수첩소지여부 확인 하시기 바랍니다. \r\n장애인환자관리 등록된 환자입니다.", "I000");
  4094. return true;
  4095. }
  4096. if(afterHandicapyn == "N" && beforeHandicapyn != 'N'){
  4097. sysf_messageBox("장애수첩소지여부 확인 하시기 바랍니다. \r\n장애인환자관리 등록되지 않은 환자입니다.", "I000");
  4098. return true;
  4099. }
  4100. return false;
  4101. }
  4102. /*
  4103. * MERS 관련 격리대상자 조회
  4104. * 2015/06/17
  4105. */
  4106. function fMersPatChk(worktype, pid){
  4107. var sRtn = "N"; // 디폴트 메르스 관련 데이터 존재하지 않음.
  4108. if(utlf_isNull(worktype)){
  4109. sysf_messageBox("업무구분이 입력되지 않았습니다.", "E");
  4110. return;
  4111. }
  4112. if(utlf_isNull(pid)){
  4113. sysf_messageBox("환자 번호가 입력되지 않았습니다.", "E");
  4114. return;
  4115. }
  4116. frmf_setParameter("SPPMO01358_worktype", String(worktype));
  4117. frmf_setParameter("SPPMO01358_pid", pid);
  4118. // modal("SPPMO01358", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  4119. frmf_modal("SPPMO01358", "SPPMO01358", "", false, 1, 0, 0, 0, 0, "", "", "", "P");
  4120. return frmf_getParameter("sRtn");
  4121. }
  4122. /*
  4123. * MERS 관련 격리대상자 조회
  4124. * 2015/06/17
  4125. */
  4126. function fMersPatChk_Bak(worktype, pid){
  4127. var sRtn = "N"; // 디폴트 메르스 관련 데이터 존재하지 않음.
  4128. if(worktype == null || worktype =="" || worktype == "undefined"){
  4129. sysf_messageBox("업무구분이 입력되지 않았습니다.", "E");
  4130. return;
  4131. }
  4132. if(pid == null || pid =="" || pid == "undefined"){
  4133. sysf_messageBox("환자 번호가 입력되지 않았습니다.", "E");
  4134. return;
  4135. }
  4136. frmf_setParameter("SPPMO01358_worktype", worktype);
  4137. frmf_setParameter("SPPMO01358_pid", pid);
  4138. var obj = frmf_findPopup("SPPMO01358") ;
  4139. if( obj == null ){
  4140. frmf_open("SPPMO01358", "SPPMO01358", "", "", "", "", "", "", "", "", "", "", "M");
  4141. obj = frmf_findPopup("SPPMO01358") ;
  4142. }
  4143. var cnt = obj.fmerschk(worktype, pid);
  4144. if(parseInt(cnt)>0){
  4145. //modal("SPPMO01358");
  4146. sRtn = "Y"; // 메르스 관련 데이터 존재
  4147. }
  4148. return sRtn;
  4149. }
  4150. /**
  4151. * 장애인 정보 취득
  4152. * @return
  4153. */
  4154. function fGetHandicapPatInfo(pid, orddd, orddeptcd, insukind){
  4155. // send
  4156. dsf_createDsRow("ds_temp_handcappat_send", [
  4157. {col:"pid", type:"STRING", size:256, val: pid}
  4158. , {col:"hngnm", type:"STRING", size:256, val: ""}
  4159. , {col:"rrgstno1", type:"STRING", size:256, val: "" }
  4160. , {col:"rrgstno2", type:"STRING", size:256, val: ""}
  4161. , {col:"checkflag", type:"STRING", size:256, val: 'Y'}
  4162. , {col:"srchbyrrgstno", type:"STRING", size:256, val: ""}
  4163. , {col:"insukind", type:"STRING", size:256, val: insukind}
  4164. , {col:"orddeptcd", type:"STRING", size:256, val: orddeptcd}
  4165. , {col:"orddd", type:"STRING", size:256, val: orddd}
  4166. ]);
  4167. //if( submit("TRPMC01701", false)) {
  4168. var oParam = {};
  4169. oParam.id = "TRPMC01701";
  4170. oParam.service = "patinfomngtapp.HandcapPat";
  4171. oParam.method = "reqGetHandcapPat";
  4172. oParam.inds = "req=ds_temp_handcappat_send";
  4173. oParam.outds = "ds_temp_handcappat_handcappatlist=handcappatlist";
  4174. oParam.async = false;
  4175. oParam.callback = "cf_TRPMC01701";
  4176. tranf_submit(oParam);
  4177. if( arErrorCode.pop("TRPMC01701") > -1 ){
  4178. if( ds_temp_handcappat_handcappatlist.rowcount > 0 ){
  4179. dsf_makeValue(ds_main_otpt, "otpt_handicaprbookpossnyn", "string", "Y");
  4180. //model.setValue("/root/main/otpt/otpt_handicaprbookpossnyn", "Y");
  4181. }
  4182. else{
  4183. dsf_makeValue(ds_main_otpt, "otpt_handicaprbookpossnyn", "string", "N");
  4184. //model.makeValue("/root/main/otpt/otpt_handicaprbookpossnyn", "N");
  4185. //model.setValue("/root/main/otpt/otpt_handicaprbookpossnyn", "N");
  4186. }
  4187. }
  4188. else{
  4189. sysf_messageBox("전산장애로 장애등록 정보를 확인할 수 없습니다. '장애인수첩 소지자 여부'를 직접 입력해 주세요", "E999", "");
  4190. //model.setFocus("radio3");
  4191. return false;
  4192. }
  4193. }
  4194. /**
  4195. * 장애인 등록
  4196. *
  4197. */
  4198. function fHndcRegister(pid, orddd, orddeptcd, insukind){
  4199. // model.makeValue("/root/source/srchcond", 1);
  4200. // model.makeValue("/root/source/pid", pid);
  4201. dsf_makeValue(ds_source, "srchcond", "string", "1");
  4202. dsf_makeValue(ds_source, "pid", "string", pid);
  4203. //modal("SMPMC01700", "1","100", "100", "SMPMC01700", "/root/source", "/root/source");
  4204. var objArg = new Object();
  4205. objArg.arg_ds_source = ds_source;
  4206. frmf_modal("SMPMC01700", "SMPMC01700", objArg, false, "1", "100", "100", "", "", "", "", "", "M");
  4207. fGetHandicapPatInfo(pid, orddd, orddeptcd, insukind);
  4208. //model.refresh();
  4209. }
  4210. /**
  4211. * 대구 장애인구강센터 환자 체크
  4212. */
  4213. function fClinicCheck(pid, orddd, orddeptcd, insukind){
  4214. var hndc_slflag = "";
  4215. var uncocd ="";
  4216. if(orddeptcd == "2242400000"){ // // 대구장애인구강센터
  4217. if(utlf_isNull(pid)){
  4218. sysf_messageBox("환자번호가 입력되지 않았습니다.", "E");
  4219. return false;
  4220. }
  4221. if(utlf_isNull(orddeptcd)){
  4222. sysf_messageBox("진료과가 선택되지 않았습니다.", "E");
  4223. return false;
  4224. }
  4225. if(utlf_isNull(insukind)){
  4226. sysf_messageBox("보험유형이 선택되지 않았습니다.", "E");
  4227. return false;
  4228. }
  4229. if(utlf_isNull(orddd)){
  4230. sysf_messageBox("진료일자가 입력되지 않았습니다.", "E");
  4231. return false;
  4232. }
  4233. fGetHandicapPatInfo(pid, orddd, orddeptcd, insukind); // 장애인 등록여부 확인
  4234. //장애인등록여부 분기처리 수정_서재영 2019.03.22
  4235. if(ds_temp_handcappat_handcappatlist.rowcount > 0){
  4236. hndc_slflag = utlf_transNullToEmpty(ds_temp_handcappat_handcappatlist.getColumn(0, "hndc_slflag"));
  4237. if(hndc_slflag == "" || hndc_slflag=="-"){
  4238. return true;
  4239. }
  4240. if(hndc_slflag!="" && hndc_slflag!="-"){
  4241. dsf_makeValue( ds_hidden_m_etc, "uncocd", "string", hndc_slflag);
  4242. dsf_makeValue( ds_main_otpt, "otpt_uncocd", "string", hndc_slflag);
  4243. return true;
  4244. }
  4245. }else{
  4246. sysf_messageBox("해당 환자는 장애인 등록이 되어 있지 않습니다.\n장애인 등록 후 진행부탁드립니다.", "E");
  4247. fHndcRegister(pid, orddd, orddeptcd, insukind); // 장애인등록
  4248. if(ds_temp_handcappat_handcappatlist.rowcount > 0){
  4249. hndc_slflag = utlf_transNullToEmpty(ds_temp_handcappat_handcappatlist.getColumn(0, "hndc_slflag"));
  4250. if(hndc_slflag == "" || hndc_slflag=="-"){
  4251. return true;
  4252. }
  4253. if(hndc_slflag!="" && hndc_slflag!="-"){
  4254. dsf_makeValue( ds_hidden_m_etc, "uncocd", "string", hndc_slflag);
  4255. dsf_makeValue( ds_main_otpt, "otpt_uncocd", "string", hndc_slflag);
  4256. return true;
  4257. }
  4258. }else{
  4259. sysf_messageBox("장애인 등록에 실패하였습니다.", "E");
  4260. return false;
  4261. }
  4262. }
  4263. }else{
  4264. return true;
  4265. }
  4266. }
  4267. /**
  4268. * 대구 장애인구강센터 미수코드체크
  4269. */
  4270. function fUncoCdCheck(pid, orddd, orddeptcd, insukind, uncocd){
  4271. var hndc_slflag = "";
  4272. if(utlf_isNull(pid)){
  4273. sysf_messageBox("환자번호가 입력되지 않았습니다.", "E");
  4274. return false;
  4275. }
  4276. if(utlf_isNull(orddeptcd)){
  4277. sysf_messageBox("진료과가 선택되지 않았습니다.", "E");
  4278. return false;
  4279. }
  4280. if(utlf_isNull(insukind)){
  4281. sysf_messageBox("보험유형이 선택되지 않았습니다.", "E");
  4282. return false;
  4283. }
  4284. if(utlf_isNull(orddd)){
  4285. sysf_messageBox("진료일자가 입력되지 않았습니다.", "E");
  4286. return false;
  4287. }
  4288. if(utlf_isNull(uncocd)){
  4289. sysf_messageBox("미수코드 입력되지 않았습니다.", "E");
  4290. return false;
  4291. }
  4292. if(orddeptcd == "2242400000"){ // // 대구장애인구강센터
  4293. if(uncocd != "A43" && uncocd != "A44" && uncocd != "A45"){ // 대구 장애인구강센터 미수코드인 A43, A44, A45가 아닐시에는 리턴
  4294. return true;
  4295. }
  4296. fGetHandicapPatInfo(pid, orddd, orddeptcd, insukind); // 장애인 등록여부 확인
  4297. var cnt = ds_temp_handcappat_handcappatlist.rowcount;
  4298. var slflag_chk = false;
  4299. if(cnt>0){
  4300. hndc_slflag = utlf_transNullToEmpty(ds_temp_handcappat_handcappatlist.getColumn(0, "hndc_slflag"));
  4301. if(hndc_slflag==uncocd){
  4302. slflag_chk = true;
  4303. }
  4304. if(!slflag_chk){
  4305. sysf_messageBox("해당 미수코드를 적용 할 수 없습니다", "E");
  4306. return false;
  4307. }else{
  4308. return true;
  4309. }
  4310. }else{
  4311. sysf_messageBox("해당 미수코드를 적용 할 수 없습니다", "E");
  4312. return false;;
  4313. }
  4314. }else{
  4315. if(orddeptcd != "2242400000" && (uncocd == "A43" || uncocd == "A44" || uncocd == "A45")){
  4316. sysf_messageBox("해당 과에는 적용 할 수 없는 미수코드입니다.", "E");
  4317. return false
  4318. }else{
  4319. return true;
  4320. }
  4321. }
  4322. }
  4323. function fUncoCdCheck_Bak(pid, orddd, orddeptcd, insukind, uncocd){
  4324. var hndc_slflag = "";
  4325. var cnt = "";
  4326. if(orddeptcd == "2242400000"){ // // 대구장애인구강센터
  4327. if(utlf_isNull(pid)){
  4328. sysf_messageBox("환자번호가 입력되지 않았습니다.", "E");
  4329. return false;
  4330. }
  4331. if(utlf_isNull(orddeptcd)){
  4332. sysf_messageBox("진료과가 선택되지 않았습니다.", "E");
  4333. return false;
  4334. }
  4335. if(utlf_isNull(insukind)){
  4336. sysf_messageBox("보험유형이 선택되지 않았습니다.", "E");
  4337. return false;
  4338. }
  4339. if(utlf_isNull(orddd)){
  4340. sysf_messageBox("진료일자가 입력되지 않았습니다.", "E");
  4341. return false;
  4342. }
  4343. if(utlf_isNull(uncocd)){
  4344. sysf_messageBox("미수코드가 입력되지 않았습니다.", "E");
  4345. return false;
  4346. }
  4347. if(uncocd != "A43" && uncocd != "A44" && uncocd != "A45"){ // 대구 장애인구강센터 미수코드인 A43, A44, A45가 아닐시에는 입력된 미수코드를 그대로 리턴
  4348. return true;
  4349. }
  4350. fGetHandicapPatInfo(pid, orddd, orddeptcd, insukind); // 장애인 등록여부 확인
  4351. cnt = ds_temp_handcappat_handcappatlist.rowcount;
  4352. if(cnt>0){
  4353. hndc_slflag = utlf_transNullToEmpty(ds_temp_handcappat_handcappatlist.getColumn(0, "hndc_slflag"));
  4354. if(utlf_transNullToEmpty(hndc_slflag) != "" && hndc_slflag != "-"){
  4355. return true;
  4356. }else{
  4357. sysf_messageBox("해당 미수코드를 적용 할 수 없습니다", "E");
  4358. return false;
  4359. }
  4360. }else{
  4361. sysf_messageBox("해당 환자는 장애인 등록이 되어 있지 않습니다.\n장애인 등록 후 진행부탁드립니다.", "E");
  4362. fHndcRegister(pid, orddd, orddeptcd, insukind); // 장애인등록
  4363. cnt = ds_temp_handcappat_handcappatlist.rowcount;
  4364. if(cnt>0){
  4365. hndc_slflag = utlf_transNullToEmpty(ds_temp_handcappat_handcappatlist.getColumn(0, "hndc_slflag"));
  4366. if(utlf_transNullToEmpty(hndc_slflag) != "" && hndc_slflag != "-"){
  4367. return true;
  4368. }else{
  4369. sysf_messageBox("해당 미수코드를 적용 할 수 없습니다", "E");
  4370. return false;
  4371. }
  4372. }else{
  4373. sysf_messageBox("장애인 등록에 실패하였습니다.", "E");
  4374. return false;
  4375. }
  4376. }
  4377. }else{
  4378. if(orddeptcd != "2242400000" && (uncocd == "A43" || uncocd == "A44" || uncocd == "A45")){
  4379. sysf_messageBox("해당 과에는 적용 할 수 없는 미수코드입니다.", "E");
  4380. return false
  4381. }else{
  4382. return true;
  4383. }
  4384. }
  4385. }
  4386. /**
  4387. * 미수율에 대한 미수금액 자동계산 처리(미수발생배치 동기화 필요)
  4388. * parameter
  4389. * payapprate : 급여미수율
  4390. * nopyapprate : 비급여미수율
  4391. * specapprate : 선택진료미수율
  4392. * payownbamt : 급여본인부담금액
  4393. * nopyownbamt : 비급여본인부담금액
  4394. * specownbamt : 선택진료본인부담금액
  4395. * by 조중래 20150625
  4396. */
  4397. function fGetUncoAmt(payapprate, nopyapprate, specapprate, payownbamt, nopyownbamt, specownbamt) {
  4398. var uncoPayAmt = 0;
  4399. var uncoNopyAmt = 0;
  4400. var uncoSpecAmt = 0;
  4401. var uncoTotAmt = 0;
  4402. payownbamt = parseInt(payownbamt);
  4403. nopyownbamt = parseInt(nopyownbamt);
  4404. specownbamt = parseInt(specownbamt);
  4405. // 금액은 본인부담금 총액을 넘기지 않는 범위에서 원단위 반올림하여 처리
  4406. uncoPayAmt = Math.ceil((payownbamt * payapprate / 100) / 10) * 10;
  4407. uncoNopyAmt = Math.ceil((nopyownbamt * nopyapprate / 100) / 10) * 10;
  4408. uncoSpecAmt = Math.ceil((specownbamt * specapprate / 100) / 10) * 10;
  4409. uncoTotAmt = uncoPayAmt + uncoNopyAmt + uncoSpecAmt;
  4410. // 元금액을 초과하는 경우 元금액으로 재설정 (원단위절사)
  4411. if (uncoTotAmt > payownbamt + nopyownbamt + specownbamt) {
  4412. uncoTotAmt = Math.floor((payownbamt + nopyownbamt + specownbamt) / 10) * 10;
  4413. }
  4414. // 0원미만인 경우 0원으로 재설정
  4415. if (uncoTotAmt < 0) {
  4416. uncoTotAmt = 0;
  4417. }
  4418. var retArr = uncoTotAmt + "▦" + uncoPayAmt + "▦" + uncoNopyAmt + "▦" + uncoSpecAmt + "▦";
  4419. // 배열형태로 리턴
  4420. // retArr[0] : 미수총금액
  4421. // retArr[1] : 급여미수금액
  4422. // retArr[2] : 비급여미수금액
  4423. // retArr[3] : 선택진료미수금액
  4424. return retArr.split("▦");
  4425. }
  4426. /**
  4427. * 장애인 구강센터 미수코드 조회
  4428. */
  4429. function fGetHndcUncocd(pid, orddd, orddeptcd, insukind){
  4430. var uncocd ="";
  4431. if(orddeptcd == "2242400000"){ // // 대구장애인구강센터
  4432. if(utlf_isNull(pid)){
  4433. sysf_messageBox("환자번호가 입력되지 않았습니다.", "E");
  4434. return "";
  4435. }
  4436. if(utlf_isNull(orddeptcd)){
  4437. sysf_messageBox("진료과가 선택되지 않았습니다.", "E");
  4438. return "";
  4439. }
  4440. if(utlf_isNull(insukind)){
  4441. sysf_messageBox("보험유형이 선택되지 않았습니다.", "E");
  4442. return "";
  4443. }
  4444. if(utlf_isNull(orddd)){
  4445. sysf_messageBox("진료일자가 입력되지 않았습니다.", "E");
  4446. return "";
  4447. }
  4448. fGetHandicapPatInfo(pid, orddd, orddeptcd, insukind); // 장애인 등록여부 확인
  4449. if (ds_temp_handcappat_handcappatlist.rowcount >0) {
  4450. hndc_slflag = utlf_transNullToEmpty(ds_temp_handcappat_handcappatlist.getColumn(0, "hndc_slflag"));
  4451. } else {
  4452. sysf_messageBox("해당 환자는 장애인 등록이 되어 있지 않습니다.\n장애인 등록 후 진행부탁드립니다.", "E");
  4453. fHndcRegister(pid, orddd, orddeptcd, insukind); // 장애인등록
  4454. return hndc_slflag = utlf_transNullToEmpty(ds_temp_handcappat_handcappatlist.getColumn(0, "hndc_slflag"));
  4455. }
  4456. }else{
  4457. return "";
  4458. }
  4459. }
  4460. /**
  4461. * 신 우편번호 체계에 따른 우편번호 확인
  4462. */
  4463. function fNewZipCode(zipcd1, zipcd2){
  4464. if(zipcd2.length!=2){
  4465. var rtn = sysf_messageBox("우편번호 변경 대상자 입니다. 변경하시겠습니까?", "Q000");
  4466. if(rtn==6){
  4467. return true;
  4468. }else{
  4469. return false;
  4470. }
  4471. }
  4472. }
  4473. /**
  4474. * 신용카드 / 현금영수증 승인 및 취소처리
  4475. * aprvFlag 승인구분
  4476. * pid 등록번호
  4477. * ordtype 진료구분
  4478. * allotmm 할부개월수
  4479. * aprvamt 승인금액
  4480. * aprvNo 승인번호
  4481. * aprvDd 승인일자
  4482. * keyInptFlag 키입력구분
  4483. * indInstFlag 개인법인구분
  4484. * qualCnfmNo 현금영수증 자격확인번호
  4485. */
  4486. function fReqICVanAprv(ordergb, pano, iogb, carddivide, netamt, appno, appdate, entrymode, indInstFlag, qualCnfmNo) {
  4487. // 업무구분(F1:신용승인, F2:신용취소, H3:현금승인, H4:현금취소) 매핑처리
  4488. var pTrdType = "";
  4489. if (ordergb == "11") { pTrdType = "F1";
  4490. } else if (ordergb == "21") { pTrdType = "F2";
  4491. } else if (ordergb == "41") { pTrdType = "H3";
  4492. } else if (ordergb == "51") { pTrdType = "H4";
  4493. } else {
  4494. alert("신용카드/현금영수증 승인 구분을 확인해주십시오.");
  4495. return false;
  4496. }
  4497. // 가맹점 사용영역 : 사후 트레이스를 위한 내역임(KOCES DB 저장)
  4498. var pAuData = pano + "_" + iogb; // 등록번호(10)_진료구분(1)
  4499. // 할부개월수
  4500. var pMonth = "00";
  4501. if (ordergb == "11") { // 카드승인
  4502. pMonth = carddivide;
  4503. }
  4504. // 순매출액
  4505. var pTrdAmt = netamt;
  4506. // 원승인번호 / 원승인일자
  4507. var pAuNo = " ";
  4508. var pAuDate = " ";
  4509. if (ordergb == "21" || ordergb == "51") {
  4510. pAuNo = appno;
  4511. pAuDate = appdate;
  4512. }
  4513. // Swipe구분
  4514. var pKeyYn = " ";
  4515. if (ordergb == "11") {
  4516. if (entrymode == "S") {
  4517. pKeyYn = "I"; // IC단말기로 거래시 Swipe -> I로 처리
  4518. } else {
  4519. pKeyYn = entrymode;
  4520. }
  4521. } else {
  4522. pKeyYn = entrymode;
  4523. }
  4524. // 현금영수증 구분(1:개인, 2:법인)
  4525. var pInsYn = "0";
  4526. if (ordergb == "41" || ordergb == "51") { // 승인 / 취소
  4527. if (indInstFlag == "00") { // 소득공제
  4528. pInsYn = "1";
  4529. } else if (indInstFlag == "01") { // 지출증빙
  4530. pInsYn = "2";
  4531. } else {
  4532. alert("소득공제/지출증빙 구분을 확인해주십시오.");
  4533. return false;
  4534. }
  4535. }
  4536. // 현금영수증 신분확인번호
  4537. var pCashNum = " ";
  4538. if (ordergb == "41" || ordergb == "51") { // 승인 / 취소
  4539. pCashNum = qualCnfmNo;
  4540. }
  4541. // 현금영수증 취소사유
  4542. var pCancelReason = " ";
  4543. if (ordergb == "51") { // 취소
  4544. pCancelReason = "1"; // 1:거래취소, 2:오류발급, 3:기타
  4545. }
  4546. // ★★★★★ ICPos 승인요청 ★★★★★
  4547. var aprvResult = KocesICAx.KocesICRequest( pTrdType, // 업무구분
  4548. pAuData, // 가맹점사용 영역
  4549. pMonth, // 할부개월수
  4550. pTrdAmt, // 순매출액
  4551. "0", // pSvcAmt 봉사료-해당사항 없음
  4552. "0", // pTaxAmt 세금 -해당사항 없음
  4553. "0", // pTaxFreeAmt 비과세-해당사항 없음
  4554. pAuNo, // 원승인번호
  4555. pAuDate, // 원승인일자
  4556. pKeyYn, // Swipe구분
  4557. pInsYn, // 현금영수증 구분
  4558. pCashNum, // 현금영수증 신분확인번호
  4559. pCancelReason, // 현금영수증 취소사유
  4560. " ", // pPtSvrCd 서비스구분(포인트 적립관련 - 해당사항 없음)
  4561. " ", // pPtInsYn 결제구분 (포인트 적립관련 - 해당사항 없음)
  4562. " " // pPtCardCd 포인트코드(포인트 적립관련 - 해당사항 없음)
  4563. );
  4564. // var aprvResult = 0;
  4565. // 요청결과 : 정상
  4566. if (aprvResult == "0") {
  4567. var aprvResultStr = KocesICAx.ICReqStr();
  4568. //var aprvResultStr = "A1TFF2R07100000012016042908423800000000011496619_O 0000 70091139 20160429084238테스트 버전 입니다. 636093 NH농협체크 1106NH농협체크 1106비씨카드733842008 012000000232491";
  4569. dsf_makeValue(ds_hidden, "cardaprvresult", "string", aprvResultStr);
  4570. //model.refresh();
  4571. // 처리결과 파싱(실제 승인여부는 처리결과를 파싱해보아야 알 수 있음)
  4572. if (!fGetCardAprvResult(aprvResultStr)) {
  4573. return false;
  4574. // 정상처리 된 경우에만 서명정보 처리
  4575. } else {
  4576. // 전자서명 이미지 저장(신용카드거래의 경우에만 처리)
  4577. if (pTrdType == "F1" || pTrdType == "F2") {
  4578. var aprv_Min_Amt = sysf_getGlobalVariable("SPPAO00100_P0082_00_nm","p");
  4579. if (aprv_Min_Amt == null || aprv_Min_Amt == "") {
  4580. //modal("SPPAO00100"); //공통코드 초기화처리
  4581. frmf_modal("SPPAO00100", "SPPAO00100", "", "", "", "", "", "", "", "", "", "", "M");
  4582. aprv_Min_Amt = sysf_getGlobalVariable("SPPAO00100_P0082_00_nm","p");
  4583. }
  4584. if (aprv_Min_Amt == null || aprv_Min_Amt == "") {
  4585. aprv_Min_Amt = 0;
  4586. }
  4587. // 5만원 초과하는 경우에만 서명처리
  4588. if(pTrdAmt > parseInt(aprv_Min_Amt)){
  4589. var filePath="C:\\Koces\\KocesICPos\\outfile.bmp"
  4590. KocesImage.GetSign(filePath); // OCX 상에서 헥사값으로 변환
  4591. var strKoces = KocesImage.Signstr; // OCX 상에서 헥사값을 취득
  4592. var strDB = Sign_img_esign.getBase64data(); // DB보관용
  4593. dsf_makeValue(ds_send_card, "aprv_elctsignkey", "string", strKoces);
  4594. dsf_makeValue(ds_send_card, "aprv_elctsigncnts", "string", strDB);
  4595. } else {
  4596. dsf_makeValue(ds_send_card, "aprv_elctsignkey", "string", "");
  4597. dsf_makeValue(ds_send_card, "aprv_elctsigncnts", "string", "");
  4598. }
  4599. // // 전자서명 이미지 검증용 소스 for 테스트 only
  4600. // model.makeValue("/root/result/sign/elctsigncnts" , strDB , true);
  4601. // setImageRefInstance("/root/result/sign/elctsigncnts");
  4602. // Sign_img_output.attribute("ref") = "/root/temp";
  4603. // Sign_img_output.refresh();
  4604. // Sign_img_output.attribute("ref") = "/root/result/sign/elctsigncnts";
  4605. // Sign_img_output.refresh();
  4606. }
  4607. }
  4608. // 요청결과 : 비정상
  4609. } else {
  4610. var msg = "";
  4611. if (aprvResult == "-1") {
  4612. msg = "승인요구에러";
  4613. } else if (aprvResult == "-2") {
  4614. msg = "TimeOut";
  4615. } else if (aprvResult == "-3") {
  4616. msg = "ICPos 미실행";
  4617. }
  4618. alert("승인/취소 요청실패 : " + msg);
  4619. return false;
  4620. }
  4621. return true;
  4622. }
  4623. // 결과전문 파싱
  4624. // ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  4625. // ★★★ KOCES와 연동되는 데이터이니 사전협의 없이 임의수정 금지!!! ★★★
  4626. // ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  4627. function fGetCardAprvResult(param) {
  4628. var startIdx = 0;
  4629. var sApprVer = param.substring(startIdx, startIdx + 2); startIdx += 2; // 전문버전
  4630. var sSvcType = param.substring(startIdx, startIdx + 2); startIdx += 2; // 서비스 종류
  4631. var sTrdType = param.substring(startIdx, startIdx + 2); startIdx += 2; // 업무구분
  4632. var sSndType = param.substring(startIdx, startIdx + 1); startIdx += 1; // 전송구분
  4633. var sTermID = param.substring(startIdx, startIdx + 10); startIdx += 10; // 단말기번호
  4634. var sTrdDate = param.substring(startIdx, startIdx + 14); startIdx += 14; // 거래일시
  4635. var sTrdNo = param.substring(startIdx, startIdx + 10); startIdx += 10; // 거래일련번호
  4636. var sMchData = param.substring(startIdx, startIdx + 20); startIdx += 20; // 가맹점사용 영역
  4637. var sAnsCode = param.substring(startIdx, startIdx + 4); startIdx += 4; // 응답코드
  4638. var sTradeNo = param.substring(startIdx, startIdx + 12); startIdx += 12; // Van서 부여하는 거래 고유번호
  4639. var sAuNo = param.substring(startIdx, startIdx + 12); startIdx += 12; // 승인번호
  4640. var sTradeDate = param.substring(startIdx, startIdx + 14); startIdx += 14; // 승인시간
  4641. // 응답메시지 한글처리
  4642. var endIdx = 0;
  4643. var sum = 0;
  4644. for (var i = startIdx; i < startIdx + 32; i++) {
  4645. var str1 = param.substring(i, i + 1);
  4646. var str2 = escape(str1);
  4647. if ( str2.length <= 4 ) {
  4648. sum++; // 영어숫자기호
  4649. } else {
  4650. sum += 2; // 한글
  4651. }
  4652. endIdx = i + 1;
  4653. if (sum == 32) { // 32byte 가 되는 시점에 종료
  4654. break;
  4655. }
  4656. }
  4657. var sMessage = param.substring(startIdx, endIdx); startIdx = endIdx; // 응답메시지 *한글처리필요
  4658. var sCardNo = param.substring(startIdx, startIdx + 40); startIdx += 40; // 카드 Bin
  4659. // 카드종류명 한글처리
  4660. sum = 0;
  4661. for (var i = startIdx; i < startIdx + 12; i++) {
  4662. var str1 = param.substring(i, i + 1);
  4663. var str2 = escape(str1);
  4664. if ( str2.length <= 4 ) {
  4665. sum++; // 영어숫자기호
  4666. } else {
  4667. sum += 2; // 한글
  4668. }
  4669. endIdx = i + 1;
  4670. if (sum == 12) { // 12byte 가 되는 시점에 종료
  4671. break;
  4672. }
  4673. }
  4674. var sCardKind = param.substring(startIdx, endIdx); startIdx = endIdx; // 카드종류명 *한글처리필요
  4675. var sOrdCd = param.substring(startIdx, startIdx + 4); startIdx += 4; // 발급사코드
  4676. // 발급사명 한글처리
  4677. sum = 0;
  4678. for (var i = startIdx; i < startIdx + 12; i++) {
  4679. var str1 = param.substring(i, i + 1);
  4680. var str2 = escape(str1);
  4681. if ( str2.length <= 4 ) {
  4682. sum++; // 영어숫자기호
  4683. } else {
  4684. sum += 2; // 한글
  4685. }
  4686. endIdx = i + 1;
  4687. if (sum == 12) { // 12byte 가 되는 시점에 종료
  4688. break;
  4689. }
  4690. }
  4691. var sOrdNm = param.substring(startIdx, endIdx); startIdx = endIdx; // 발급사명 *한글처리필요
  4692. var sInpCd = param.substring(startIdx, startIdx + 4); startIdx += 4; // 매입사코드
  4693. sInpCd = sInpCd.substring(0, 2); // 매입사코드는 앞뒷자리만 처리
  4694. // 매입사명 한글처리
  4695. sum = 0;
  4696. for (var i = startIdx; i < startIdx + 8; i++) {
  4697. var str1 = param.substring(i, i + 1);
  4698. var str2 = escape(str1);
  4699. if ( str2.length <= 4 ) {
  4700. sum++; // 영어숫자기호
  4701. } else {
  4702. sum += 2; // 한글
  4703. }
  4704. endIdx = i + 1;
  4705. if (sum == 8) { // 8byte 가 되는 시점에 종료
  4706. break;
  4707. }
  4708. }
  4709. var sInpNm = param.substring(startIdx, endIdx); startIdx = endIdx; // 매입사명 *한글처리필요
  4710. var sMchNo = param.substring(startIdx, startIdx + 16); startIdx += 16; // 가맹점번호
  4711. var sPtCardCd = param.substring(startIdx, startIdx + 2); startIdx += 2;
  4712. // 포인트카드사명 한글처리
  4713. sum = 0;
  4714. for (var i = startIdx; i < startIdx + 8; i++) {
  4715. var str1 = param.substring(i, i + 1);
  4716. var str2 = escape(str1);
  4717. if ( str2.length <= 4 ) {
  4718. sum++; // 영어숫자기호
  4719. } else {
  4720. sum += 2; // 한글
  4721. }
  4722. endIdx = i + 1;
  4723. if (sum == 8) { // 8byte 가 되는 시점에 종료
  4724. break;
  4725. }
  4726. }
  4727. var sPtCardNm = param.substring(startIdx, endIdx); startIdx = endIdx; // 포인트카드사명 *한글처리필요
  4728. var sJukPoint = param.substring(startIdx, startIdx + 9); startIdx += 9;
  4729. var sGayPoint = param.substring(startIdx, startIdx + 9); startIdx += 9;
  4730. var sNujPoint = param.substring(startIdx, startIdx + 9); startIdx += 9;
  4731. var sSaleRate = param.substring(startIdx, startIdx + 9); startIdx += 9;
  4732. var sPtAuNo = param.substring(startIdx, startIdx + 20); startIdx += 20;
  4733. var sPtMchNo = param.substring(startIdx, startIdx + 15); startIdx += 15;
  4734. var sPtAnswerCd = param.substring(startIdx, startIdx + 4); startIdx += 4;
  4735. var sPtMessage = param.substring(startIdx, startIdx + 48); startIdx += 48;
  4736. var sDDCYN = param.substring(startIdx, startIdx + 1); startIdx += 1; // DDC 여부
  4737. var sEDIYN = param.substring(startIdx, startIdx + 1); startIdx += 1; // EDI 여부
  4738. var sCardType = param.substring(startIdx, startIdx + 1); startIdx += 1; // 카드구분
  4739. var sTrdKey = param.substring(startIdx, startIdx + 12); startIdx += 12; // 거래 고유키
  4740. var sKeyRenewal = param.substring(startIdx, startIdx + 2); startIdx += 2; // 키 갱신일자
  4741. // 여유필드 한글처리
  4742. sum = 0;
  4743. for (var i = startIdx; i < startIdx + 50; i++) {
  4744. var str1 = param.substring(i, i + 1);
  4745. var str2 = escape(str1);
  4746. if ( str2.length <= 4 ) {
  4747. sum++; // 영어숫자기호
  4748. } else {
  4749. sum += 2; // 한글
  4750. }
  4751. endIdx = i + 1;
  4752. if (sum == 50) { // 50byte 가 되는 시점에 종료
  4753. break;
  4754. }
  4755. }
  4756. var sFiller = param.substring(startIdx, endIdx); // 여유필드 *한글처리필요 end of file
  4757. // alert(
  4758. // "sApprVer : " + sApprVer + "\r\n" +
  4759. // "sSvcType : " + sSvcType + "\r\n" +
  4760. // "sTrdType : " + sTrdType + "\r\n" +
  4761. // "sSndType : " + sSndType + "\r\n" +
  4762. // "sTermID : " + sTermID + "\r\n" +
  4763. // "sTrdDate : " + sTrdDate + "\r\n" +
  4764. // "sTrdNo : " + sTrdNo + "\r\n" +
  4765. // "sMchData : " + sMchData + "\r\n" +
  4766. // "sAnsCode : " + sAnsCode + "\r\n" +
  4767. // "sTradeNo : " + sTradeNo + "\r\n" +
  4768. // "sAuNo : " + sAuNo + "\r\n" +
  4769. // "sTradeDate : " + sTradeDate + "\r\n" +
  4770. // "sMessage : " + sMessage + "\r\n" +
  4771. // "sCardNo : " + sCardNo + "\r\n" +
  4772. // "sCardKind : " + sCardKind + "\r\n" +
  4773. // "sOrdCd : " + sOrdCd + "\r\n" +
  4774. // "sOrdNm : " + sOrdNm + "\r\n" +
  4775. // "sInpCd : " + sInpCd + "\r\n" +
  4776. // "sInpNm : " + sInpNm + "\r\n" +
  4777. // "sMchNo : " + sMchNo + "\r\n" +
  4778. // "sPtCardCd : " + sPtCardCd + "\r\n" +
  4779. // "sPtCardNm : " + sPtCardNm + "\r\n" +
  4780. // "sJukPoint : " + sJukPoint + "\r\n" +
  4781. // "sGayPoint : " + sGayPoint + "\r\n" +
  4782. // "sNujPoint : " + sNujPoint + "\r\n" +
  4783. // "sSaleRate : " + sSaleRate + "\r\n" +
  4784. // "sPtAuNo : " + sPtAuNo + "\r\n" +
  4785. // "sPtMchNo : " + sPtMchNo + "\r\n" +
  4786. // "sPtAnswerCd : " + sPtAnswerCd + "\r\n" +
  4787. // "sPtMessage : " + sPtMessage + "\r\n" +
  4788. // "sDDCYN : " + sDDCYN + "\r\n" +
  4789. // "sEDIYN : " + sEDIYN + "\r\n" +
  4790. // "sCardType : " + sCardType + "\r\n" +
  4791. // "sTrdKey : " + sTrdKey + "\r\n" +
  4792. // "sKeyRenewal : " + sKeyRenewal + "\r\n" +
  4793. // "sFiller : " + sFiller
  4794. // );
  4795. model.resetInstanceNode("/root/hidden/temp");
  4796. // 정상이외의 경우는 오류처리
  4797. if (sAnsCode == "0000") {
  4798. var msg = "";
  4799. // 거래구분에 따른 메세지 설정
  4800. if (sTrdType == "F1") { // 신용카드 승인
  4801. msg = "신용카드 승인";
  4802. } else if (sTrdType == "F2") { // 신용카드 취소
  4803. msg = "신용카드 취소";
  4804. } else if (sTrdType == "H3") { // 현금영수증 승인
  4805. msg = "현금영수증 승인";
  4806. } else if (sTrdType == "H4") { // 현금영수증 취소
  4807. msg = "현금영수증 취소";
  4808. }
  4809. } else {
  4810. // 비정상처리 시에는 오류메세지 팝업처리
  4811. alert("신용카드/현금영수증 처리실패!! \r\n" + sMessage);
  4812. return false;
  4813. }
  4814. // 거래구분 변환
  4815. if (sTrdType == "F1") { // 신용카드 승인
  4816. sTrdType = "12";
  4817. } else if (sTrdType == "F2") { // 신용카드 취소
  4818. sTrdType = "22";
  4819. } else if (sTrdType == "H3") { // 현금영수증 승인
  4820. sTrdType = "42";
  4821. } else if (sTrdType == "H4") { // 현금영수증 취소
  4822. sTrdType = "52";
  4823. }
  4824. // 해외카드 구분변환
  4825. if (sCardType == "5") {
  4826. sCardType = "3";
  4827. }
  4828. model.makeValue("/root/send/card/aprv_ordergb", sTrdType);
  4829. //model.makeValue("/root/send/card/aprv_pid", "");
  4830. model.makeValue("/root/send/card/aprv_appdate", sTradeDate.substring(0, 8));
  4831. model.makeValue("/root/send/card/aprv_apptime", sTradeDate.substring(8,14));
  4832. model.makeValue("/root/send/card/aprv_appno", sAuNo);
  4833. //model.makeValue("/root/send/card/aprv_instcd", "");
  4834. //model.makeValue("/root/send/card/aprv_keyinptflag", "");
  4835. model.makeValue("/root/send/card/aprv_cardcmpycd", sInpCd);
  4836. model.makeValue("/root/send/card/aprv_cardnumber", sCardNo.substring(0,4) + "************");
  4837. //model.makeValue("/root/send/card/aprv_vancd", "");
  4838. //model.makeValue("/root/send/card/aprv_allotmm", "");
  4839. //model.makeValue("/root/send/card/aprv_valiterm", ); // 유효기간 없음
  4840. //model.makeValue("/root/send/card/aprv_cardamt", "");
  4841. model.makeValue("/root/send/card/aprv_trmnno", sTermID);
  4842. //model.makeValue("/root/send/card/aprv_rcptexecdd", ); // java단에서
  4843. //model.makeValue("/root/send/card/aprv_rcpttm", ); // java단에서
  4844. //model.makeValue("/root/send/card/aprv_rcptrid", ); // java단에서
  4845. //model.makeValue("/root/send/card/aprv_remfact", "");
  4846. model.makeValue("/root/send/card/aprv_cardtype", sCardType);
  4847. model.makeValue("/root/send/card/aprv_replystat", sAnsCode);
  4848. return true;
  4849. }
  4850. /* 함수 호출값 구분
  4851. rqvan 벤구분
  4852. rqtrgb 전문구분
  4853. rqamt 요청금액
  4854. rqtax 부가세
  4855. rqtip 봉사료
  4856. rqinst 할부개월
  4857. rqopt 거래옵션
  4858. rqoad 원승인일자
  4859. rqoan 원승인번호
  4860. rqtrd 거래일련번호
  4861. rqsgn 서명데이터
  4862. rquda 가맹점정보
  4863. rqext01 예비필드
  4864. rqext02 예비필드2
  4865. */
  4866. function fReqICAprv(ordergb, pano, iogb, carddivide, netamt, appno, appdate, indInstFlag, qualCnfmNo, vangb, elctsignkey, aprvunino, diagdate, cardperiod, trmnno, deptcode, clientid) {
  4867. // 밴구분
  4868. /* pam.pmcmcode(cdgrupid = 'P0032', cdid='200', remark에 기술되어 있는 값을 전달)
  4869. 01:KSNET
  4870. 02:KICC
  4871. 03:KOCES
  4872. 04:DAOU
  4873. 05:NICE
  4874. 06:KIS
  4875. 07:SMATRO
  4876. 08:FD
  4877. 09:KOVAN
  4878. 10:JTNET
  4879. */
  4880. var rqvan = vangb;
  4881. // 전문구분
  4882. /*
  4883. D1:신용카드 승인
  4884. D2:신용카드 취소
  4885. DT:신용카드 거래일련번호 취소
  4886. H1:현금영수증 승인
  4887. H2:현금영수증 취소
  4888. HT:현금영수증 거래일련번호 취소
  4889. C1:현금IC 승인
  4890. C2:현금IC 취소
  4891. C3:현금IC 잔액조회
  4892. P1:수표조회
  4893. U1:비대면결제 승인
  4894. U2:비대면결제 취소
  4895. U5:비대면결제 등록
  4896. U4:비대면결제 삭제
  4897. */
  4898. var rqtrgb = "";
  4899. if(ordergb == "11"){ // 신용카드결제
  4900. rqtrgb = "D1";
  4901. }else if(ordergb == "21"){ //신용카드취소
  4902. rqtrgb = "D2";
  4903. /* 아직 OCX에서 지원되지 않음(사용하지 않기로하고 모든 신용카드 취소는 D2로 통일(2018/05/31))
  4904. if(!utlf_isNull(aprvunino) && aprvunino!="-"){
  4905. rqtrgb = "DT"; //
  4906. }else{
  4907. rqtrgb = "D2";
  4908. }
  4909. */
  4910. }else if(ordergb == "41"){ // 현금영수증 승인
  4911. if(cardperiod=='3'){
  4912. rqtrgb = "H3"; // 현금영수증 국세청카드 KEYIN승인
  4913. }else{
  4914. rqtrgb = "H1"; // 전화번호/주민번호/사업자번호 승인
  4915. }
  4916. }else if(ordergb == "51"){ // 현금영수증 취소
  4917. if(cardperiod=='3'){
  4918. rqtrgb = "H4"; // 현금영수증 국세청카드 KEYIN취소
  4919. }else{
  4920. rqtrgb = "H2"; // 전화번호/주민번호/사업자번호 취소
  4921. }
  4922. /* 아직 OCX에서 지원되지 않음(사용하지 않기로하고 모든 현금영수증 취소는 H2로 통일(2018/05/31))
  4923. if(!utlf_isNull(aprvunino) && aprvunino!="-"){
  4924. rqtrgb = "HT"; //
  4925. }else{
  4926. rqtrgb = "H2";
  4927. }
  4928. */
  4929. }else if(ordergb == "31"){ // 수표조회
  4930. rqtrgb = "P1";
  4931. }else if(ordergb == "C1"){
  4932. rqtrgb = "C1";
  4933. }else if(ordergb == "C2"){
  4934. rqtrgb = "C2";
  4935. }else if(ordergb == "C3"){
  4936. rqtrgb = "C3";
  4937. }else if(ordergb == "U1"){
  4938. rqtrgb = "U1";
  4939. }else if(ordergb == "U2"){
  4940. rqtrgb = "U2";
  4941. }else if(ordergb == "U5"){
  4942. rqtrgb = "U5";
  4943. }else if(ordergb == "U4"){
  4944. rqtrgb = "U4";
  4945. }else {
  4946. trace("ordergb :: " +ordergb);
  4947. sysf_messageBox("신용카드/현금영수증/수표조회 구분을 확인해주십시오.", "E999", "");
  4948. return false;
  4949. }
  4950. // 요청금액
  4951. var rqamt = netamt;
  4952. //부가세
  4953. var rqtax = "";
  4954. //봉사료
  4955. var rqtip = "";
  4956. // 예비필드1
  4957. var rqext01 = "";
  4958. // 예비필드2
  4959. var rqext02 = "";
  4960. //할부개월
  4961. var rqinst = "00";
  4962. if (ordergb == "11" || ordergb == "21" || ordergb == "U1" || ordergb == "U2") { // 카드승인 / 카드승인취소 / 비대면결제 승인 / 비대면결제 취소
  4963. if(parseInt(escape(carddivide).length)==2){
  4964. rqinst = carddivide;
  4965. }else if(parseInt(escape(carddivide).length)<2){
  4966. rqinst = parseInt(carddivide)<9?'0'+carddivide:carddivide;
  4967. }
  4968. }else if(ordergb=="31"){ // 수표조회
  4969. if(utlf_isNull(carddivide)){
  4970. sysf_messageBox("수표조회시 권종이 전달되지 않았습니다.", "E999", "");
  4971. }else{
  4972. rqinst = carddivide;
  4973. }
  4974. }else if(ordergb == "41" || ordergb == "51") { // 현금영수증 승인 / 취소
  4975. if (indInstFlag == "00") { // 소득공제
  4976. if(cardperiod=="3"){ // 신분확인구분이 국세청 카드일 경우
  4977. if(qualCnfmNo.substring(8, 9) == "9"){
  4978. rqinst = "01"; // 국세청 9번째자리가 9인경우는 지출증빙으로 변경처리
  4979. }else{
  4980. rqinst = "00"; // 국세청 9번째자리가 9가 아닌 경우는 소득공제로 처리
  4981. }
  4982. }else if(cardperiod=="4"){ // 사업자번호
  4983. rqinst = "01";
  4984. }else{
  4985. rqinst = "00";
  4986. }
  4987. } else if (indInstFlag == "01") { // 지출증빙
  4988. rqinst = "01";
  4989. } else {
  4990. sysf_messageBox("소득공제/지출증빙 구분을 확인해주십시오.", "E999", "");
  4991. return false;
  4992. }
  4993. }
  4994. //거래옵션
  4995. var rqopt = "";
  4996. //콜백정보(원승인카드번호/원승인현금영수증자격번호를 취소후에 리턴받기 위해서 추가함)
  4997. var rqrtn = "";
  4998. if(ordergb=='41'){ // 현금영수증 승인
  4999. if(!utlf_isNull(qualCnfmNo) && qualCnfmNo != '-'){
  5000. rqopt = "02"; //(KEYIN 방식입력)
  5001. rqrtn = qualCnfmNo; // CALLBACK 정보 세팅
  5002. }else{
  5003. rqopt = "01"; //(PIN 방식입력)
  5004. }
  5005. } else if(ordergb == "51" || ordergb == "U2") { // 현금영수증 취소 / 비대면 취소
  5006. if(ordergb == "U2"){ // 비대면 취소
  5007. rqrtn = qualCnfmNo;
  5008. }else if(ordergb == "51" ){ // 현금영수증 취소
  5009. rqrtn = qualCnfmNo; // CALLBACK 정보 세팅
  5010. rqopt = "02"; // KEYIN취소
  5011. /* 2018/08/02 이정택 주석처리
  5012. if(rqtrgb == 'H4'){ // 현금영수증 국세청카드 KEYIN취소
  5013. rqrtn = qualCnfmNo; // CALLBACK 정보 세팅
  5014. rqopt = "02"; // KEYIN취소
  5015. }else{
  5016. rqrtn = qualCnfmNo; // CALLBACK 정보 세팅
  5017. rqopt = "01"; // 01:일반취소, 02:오류취소, 03:기타취소
  5018. }
  5019. */
  5020. }
  5021. //} else if (ordergb == "U5") { // U5:비대면 등록
  5022. //} else if (ordergb == "U5" || ordergb == "U4") { // U5:비대면 등록, U4:비대면 삭제(삭제예정)
  5023. // rqopt = cardperiod;
  5024. }
  5025. //신용카드결제 거래옵션 rqopt 설정 서재영_수정 2019.01.21
  5026. else if (ordergb == "11"){ // 신용카드 결제
  5027. /* 00:서명데이터 이용(binary data)
  5028. 01:서명파일이용(bmp file)
  5029. 02:KICC 서명패드 이용시
  5030. 99:서명없음
  5031. */
  5032. if(parseInt(rqamt) < 50000) { // 5만원미만 결재 시 서명없음
  5033. rqopt = "99";
  5034. }else{ // 5만원이상 결재 시 서명파일이용(bmp file)
  5035. rqopt = "01";
  5036. }
  5037. }else if (ordergb == "21"){ // 신용카드 취소
  5038. rqrtn = qualCnfmNo;
  5039. if(rqvan!='06'){ // 2019/03/13 모바일 결제가 아닌 경우 아래로직 타도록 수정(2019/03/13 이정택)
  5040. if(parseInt(rqamt) < 50000) { // 5만원미만 취소 시 서명없음
  5041. rqopt = "99";
  5042. }else{ // 5만원이상 취소 시 서명파일이용(bmp file)
  5043. rqopt = "01";
  5044. }
  5045. }
  5046. }
  5047. //원승인일자
  5048. //원승인번호
  5049. //거래일련번호
  5050. var rqoad = ""; // 원승인일자
  5051. var rqoan = ""; // 원승인번호
  5052. var rqtrd = ""; // 거래일련번호
  5053. if (ordergb == "21" || ordergb == "51" || ordergb == "U2") { //신용카드취소/현금영수증취소/비대면 결제취소
  5054. rqoad = appdate; // 원승인일자
  5055. rqoan = appno; // 원승인번호
  5056. if(!utlf_isNull(aprvunino) && aprvunino!="-"){
  5057. rqtrd = aprvunino; // 거래일련번호
  5058. }
  5059. }else if(ordergb == "31"){ //수표조회
  5060. rqoad = diagdate; // 발행일자
  5061. rqtrd = qualCnfmNo + cardperiod; // 수표번호 + 발행점코드
  5062. } else if (ordergb == 'U5' || ordergb == 'U4' || ordergb == 'U1') { // 비대면 등록 : 신용카드번호, 비대면 삭제/승인 : 토큰번호
  5063. rqtrd = qualCnfmNo;
  5064. }
  5065. //현금영수증 KEYIN 방식으로 승인요청 또는 신용카드 승인시 서명데이터
  5066. var rqsgn = "";
  5067. if(rqopt == '01' || rqopt == '02'){ // 신용카드, 현금영수증 keyin 승인의 경우 서명데이터에 자격을 태워서 보냄
  5068. /* 2018/078/02 이정택 주석처리
  5069. if(rqtrgb == 'H4'){ // 현금영수증 키인취소
  5070. // 국세청카드로 취소시에는 암호화 안된 자격번호를 태워서 보내야함
  5071. dsf_createDsRow("ds_send_cashinfo", [
  5072. {col:"pid", val: pano}
  5073. ]);
  5074. var oParam = {};
  5075. oParam.id = "TRPAO01801";
  5076. oParam.service = "pamcomnapp.PamComn";
  5077. oParam.method = "reqGetCashBaseInfo";
  5078. oParam.inds = "req=ds_send_cashinfo";
  5079. oParam.outds = "ds_rcv_cashinfo=cashbase";
  5080. oParam.async = false;
  5081. tranf_submit(oParam);
  5082. if(!utlf_isNull(ds_rcv_cashinfo.getColumn(0, "qualcnfmno")) && ds_rcv_cashinfo.getColumn(0, "qualcnfmno")!= '-'){
  5083. rqsgn = ds_rcv_cashinfo.getColumn(0, "qualcnfmno");
  5084. }else{
  5085. rqopt = '01'; // 현금영수증 기준자료가 없다 하면 01(일반취소) 로 플래그 세팅해서 현금영수증 취소처리
  5086. }
  5087. }else if (rqtrgb == 'H1' || rqtrgb == 'H3'){ // 현금영수증 KEYIN승인
  5088. rqsgn = qualCnfmNo;
  5089. }
  5090. */
  5091. // 수정전rqsgn = qualCnfmNo;
  5092. //신용카드결제 서명데이터 rqsgn 설정 서재영_수정 2019.01.21
  5093. var signFilePath = "C:\\receipt\\esign.bmp"; // 5만원 이상 서명시 서명데이터(bmp)가 저장되는 절대위치
  5094. if(rqtrgb == 'D1' || rqtrgb == 'D2'){ // 신용카드 승인의 경우 서명데이터
  5095. rqsgn = signFilePath;
  5096. }else { // 신용카드 제외
  5097. rqsgn = qualCnfmNo;
  5098. }
  5099. trace("seo :" + rqsgn);
  5100. }else if(rqvan=='06' && !utlf_isNull(trmnno) && trmnno!='-'){ // 모바일결제건 취소처리
  5101. // 모바일 결제건 취소는 knuh_conf.ini의 [MOBILE]에 설정되어 있는 MOBTID를 이용하여 취소처리(2019/06/27)
  5102. // rqsgn = trmnno;
  5103. // 모바일 결제건 취소는 knuh_conf.ini의 [MOBILE]에 설정되어 있는 MOBTID를 이용하여 취소처리(2019/06/27)
  5104. }else{
  5105. // 수정전 rqsgn = elctsignkey;
  5106. //신용카드결제 서명데이터 rqsgn 설정 서재영_수정 2019.01.21
  5107. if(rqopt == '99'){ // 5만원 미만 시 서명없음
  5108. rqsgn = "";
  5109. }else{
  5110. rqsgn = elctsignkey;
  5111. }
  5112. }
  5113. // 가맹점정보(FS코드를 사용하여 세팅필요)
  5114. var rquda = "";
  5115. //rquda = pano + "0x1C" + iogb + "0x1C" + deptcode + "0x1C" + diagdate + "0x1C" + clientid; // 등록번호/진료구분/진료과코드/진료일자/수납자ID
  5116. rquda = utlf_getCurrentDate() + ":" + pano + ":" + iogb + ":" + deptcode + ":" + diagdate + ":" + clientid; // 회계일자/등록번호/진료구분/진료과코드/진료일자/수납자ID
  5117. trace("------------------------------------요청전문------------------------------------")
  5118. trace("밴구분:" + rqvan);
  5119. trace("전문구분:" + rqtrgb);
  5120. trace("요청금액:" + rqamt);
  5121. trace("부가세:" + rqtax);
  5122. trace("봉사료:" + rqtip);
  5123. trace("할부개월:" + rqinst);
  5124. trace("거래옵션:" + rqopt);
  5125. trace("원승인일자:" + rqoad);
  5126. trace("원승인번호:" + rqoan);
  5127. trace("거래일련번호:" + rqtrd);
  5128. trace("서명데이터:" + rqsgn);
  5129. trace("가맹점정보:" + rquda);
  5130. trace("콜백정보 :" + rqrtn);
  5131. trace("예비필드1:" + rqext01);
  5132. trace("예비필드2:" + rqext02);
  5133. trace("------------------------------------요청전문------------------------------------")
  5134. // ★★★★★ ICPos 승인요청 ★★★★★
  5135. var aprvResultStr = KNUH_IC_OCX.gaon_ic_request(rqvan, //밴구분
  5136. rqtrgb, //전문구분
  5137. rqamt, //요청금액
  5138. rqtax, //부가세
  5139. rqtip, //봉사료
  5140. rqinst, //할부개월
  5141. rqopt, //거래옵션(현금영수증 KEYIN 승인시 02로 세팅)
  5142. rqoad, //원승인일자
  5143. rqoan, //원승인번호
  5144. rqtrd, //거래일련번호
  5145. rqsgn, //서명데이터(현금영수증 승인이 환자자격번호로 사용)
  5146. rquda, //가맹점추가정보
  5147. rqrtn, //콜백정보
  5148. rqext01, //예비필드1
  5149. rqext02 //예비필드2
  5150. );
  5151. trace("승인요청 리턴값 : :" + aprvResultStr);
  5152. trace("응답메시지:" + KNUH_IC_OCX.gaon_rsmsg());
  5153. trace("응답코드:" + KNUH_IC_OCX.gaon_rsrtncd());
  5154. if(KNUH_IC_OCX.gaon_rsrtncd()=="0000"){ // 정상
  5155. //var aprvrtn = KNUH_IC_OCX.gaon_ic_respone();
  5156. trace("------------------------------------승인전문------------------------------------")
  5157. trace("승인결과전문: " + KNUH_IC_OCX.gaon_ic_respone());
  5158. trace("------------------------------------승인전문------------------------------------")
  5159. //dsf_makeValue(ds_hidden, "cardaprvresult", "string", aprvResultStr);
  5160. var sTrdType = KNUH_IC_OCX.gaon_rstrgb();
  5161. //거래구분변경
  5162. if (sTrdType == "D1" || sTrdType == "U1") { // 신용카드 승인 / 비대면 승인
  5163. sTrdType = "12";
  5164. } else if (sTrdType == "D2" || sTrdType == "U2") { // 신용카드 취소 / 비대면 취소
  5165. sTrdType = "22";
  5166. } else if (sTrdType == "DT") { // 신용카드 거래일련번호 취소
  5167. sTrdType = "22";
  5168. } else if (sTrdType == "H1" || sTrdType == "H3") { // 현금영수증 승인
  5169. sTrdType = "42";
  5170. } else if (sTrdType == "H2" || sTrdType == "H4") { // 현금영수증 취소
  5171. sTrdType = "52";
  5172. }else if (sTrdType == "HT") { // 현금영수증 거래일련번호 취소
  5173. sTrdType = "52";
  5174. }else if (sTrdType == "P1") { // 수표조회
  5175. sysf_messageBox("조회결과 : " + KNUH_IC_OCX.gaon_rsmsg(), "I");
  5176. return true;
  5177. }
  5178. ds_send_card.setColumn(0, "aprv_ordergb", sTrdType);
  5179. ds_send_card.setColumn(0, "aprv_appdate", KNUH_IC_OCX.gaon_rsadd());
  5180. ds_send_card.setColumn(0, "aprv_apptime", KNUH_IC_OCX.gaon_rsatm());
  5181. ds_send_card.setColumn(0, "aprv_appno", KNUH_IC_OCX.gaon_rsapn());
  5182. ds_send_card.setColumn(0, "aprv_cardcmpycd", KNUH_IC_OCX.gaon_rsmcd().substring(1, 3));
  5183. if (ordergb=='11'){ // 신용카드 승인
  5184. ds_send_card.setColumn(0, "aprv_cardnumber", KNUH_IC_OCX.gaon_rscardno().substring(0, 6)+'**********');
  5185. } else if (ordergb=='41'){ // 현금영수증 승인(마스킹 처리 안된 원자격번호가 저장되도록 수정 2018/08/02)
  5186. ds_send_card.setColumn(0, "aprv_cardnumber", KNUH_IC_OCX.gaon_rscallrtn().trim());
  5187. } else if (ordergb == 'U5'){ // 비대면 등록
  5188. ds_send_card.setColumn(0, "aprv_cardnumber", KNUH_IC_OCX.gaon_rscardno().trim());
  5189. } else if (ordergb=='21' || ordergb =='51' || ordergb == 'U2'){ // 신용카드 취소/ 현금영수증 취소 / 비대면 취소 시에는 콜백데이터를 저장함
  5190. ds_send_card.setColumn(0, "aprv_cardnumber", KNUH_IC_OCX.gaon_rscallrtn().trim());
  5191. } else if (ordergb == 'U1') { // 비대면 승인 시 카드정보 / 토큰정보
  5192. ds_send_card.setColumn(0, "aprv_cardnumber", KNUH_IC_OCX.gaon_rscardno().substring(0, 6)+'**********');
  5193. ds_send_card.setColumn(0, "track2data", rqtrd);
  5194. }
  5195. ds_send_card.setColumn(0, "aprv_trmnno", KNUH_IC_OCX.gaon_rsmid());
  5196. ds_send_card.setColumn(0, "aprv_cardtype", KNUH_IC_OCX.gaon_rscardchk());
  5197. ds_send_card.setColumn(0, "aprv_replystat", KNUH_IC_OCX.gaon_rsrtncd());
  5198. ds_send_card.setColumn(0, "aprv_aprvunino", KNUH_IC_OCX.gaon_rstridx());
  5199. ds_send_card.setColumn(0, "aprv_vangb", KNUH_IC_OCX.gaon_rsvan());
  5200. trace("------------------------------------리턴값------------------------------------");
  5201. trace("승인/취소된 밴구분 : " + KNUH_IC_OCX.gaon_rsvan());
  5202. trace("승인구분 : " + KNUH_IC_OCX.gaon_rstrgb());
  5203. trace("단말기번호 : " + KNUH_IC_OCX.gaon_rstid());
  5204. trace("카드번호 : " + KNUH_IC_OCX.gaon_rscardno());
  5205. trace("응답결과 : " + KNUH_IC_OCX.gaon_rsrtncd());
  5206. trace("거래일련번호 : " + KNUH_IC_OCX.gaon_rstridx());
  5207. trace("승인번호 : " + KNUH_IC_OCX.gaon_rsapn());
  5208. trace("승인일자 : " + KNUH_IC_OCX.gaon_rsadd());
  5209. trace("승인시간 : " + KNUH_IC_OCX.gaon_rsatm());
  5210. trace("매입사코드 : " + KNUH_IC_OCX.gaon_rsmcd());
  5211. trace("매입사명 : " + KNUH_IC_OCX.gaon_rsmnm());
  5212. trace("발급사코드 : " + KNUH_IC_OCX.gaon_rsicd());
  5213. trace("발급사명 : " + KNUH_IC_OCX.gaon_rsinm());
  5214. trace("가맹점번호 : " + KNUH_IC_OCX.gaon_rsmid());
  5215. trace("서명유무 : " + KNUH_IC_OCX.gaon_rssignchk());
  5216. trace("카드구분 : " + KNUH_IC_OCX.gaon_rscardchk());
  5217. trace("결제후 잔액 : " + KNUH_IC_OCX.gaon_rsremamt());
  5218. trace("콜백리턴 : " + KNUH_IC_OCX.gaon_rscallrtn());
  5219. trace("응답메시지 : " + KNUH_IC_OCX.gaon_rsmsg());
  5220. trace("------------------------------------리턴값------------------------------------");
  5221. return true;
  5222. }else{
  5223. ds_send_card.setColumn(0, "aprv_replystat", KNUH_IC_OCX.gaon_rsrtncd());
  5224. ds_send_card.setColumn(0, "aprv_replymsg", KNUH_IC_OCX.gaon_rsmsg());
  5225. // 비대면 결제승인의 경우 팝업처리 예외(loop 처리용)
  5226. if (rqtrgb != 'U1') {
  5227. sysf_messageBox("승인실패 : " + KNUH_IC_OCX.gaon_rsmsg(), "E999", "");
  5228. }
  5229. return false;
  5230. }
  5231. }
  5232. //=======================================================================================
  5233. // Function 이전에 작엄된 내용들. ...
  5234. // 2016.8.6 이전에 적용된 것들....
  5235. //---------------------------------------------------------------------------------------
  5236. /****************************************************************************************
  5237. * Function : pamGetDeptCDDrIDList
  5238. * Description : 현재일자 시스템일자 기준으로 조회
  5239. * Argument : sDeptlist : 과정보를 담을 Dataset Name
  5240. * : sDrlist : 의사정보를 담을 Dataset Name
  5241. * : sCentlist : 센터정보를 담을 Dataset Name
  5242. * : sSubdeptlist : 보조 과정보를 담을 Dataset Name
  5243. * return type :
  5244. * Creator :
  5245. ****************************************************************************************/
  5246. function pamGetDeptCDDrIDList(sDeptlist, sDrlist, sCentlist, sSubdeptlist){
  5247. // submit("TRPAM00101");
  5248. dsf_createDs("ds_tmp_orddeptcdlist");
  5249. dsf_createDs("ds_tmp_orddridlist");
  5250. dsf_createDs("ds_tmp_centcdlist");
  5251. dsf_createDs("ds_tmp_subdeptcdlist");
  5252. var oParam = {};
  5253. oParam.id = "TRPAM00101";
  5254. oParam.service = "pamcomnapp.PamComn";
  5255. oParam.method = "reqGetDeptCDDrID";
  5256. oParam.outds = "ds_tmp_orddeptcdlist=orddeptcd ds_tmp_orddridlist=orddrid ds_tmp_centcdlist=centcd ds_tmp_subdeptcdlist=subdeptcd";
  5257. oParam.async = false;
  5258. tranf_submit(oParam);
  5259. // 주과정보
  5260. if(utlf_isNull(sDeptlist)){
  5261. dsf_createDs("ds_init_orddeptcdlist");
  5262. dsf_copyDs(ds_init_orddeptcdlist,ds_tmp_orddeptcdlist,"replace");
  5263. }else{
  5264. dsf_createDs(sDeptlist);
  5265. dsf_copyDs(this.objects[sDeptlist],ds_tmp_orddeptcdlist,"replace");
  5266. }
  5267. // 주치의정보
  5268. if(utlf_isNull(sDrlist)){
  5269. dsf_createDs("ds_init_orddridlist");
  5270. dsf_copyDs(ds_init_orddridlist ,ds_tmp_orddridlist ,"replace");
  5271. }else{
  5272. dsf_createDs(sDrlist);
  5273. dsf_copyDs(this.objects[sDrlist],ds_tmp_orddridlist,"replace");
  5274. }
  5275. // 센터정보
  5276. if(utlf_isNull(sCentlist)){
  5277. dsf_createDs("ds_init_centcdlist");
  5278. dsf_copyDs(ds_init_centcdlist ,ds_tmp_centcdlist ,"replace");
  5279. }else{
  5280. dsf_createDs(sCentlist);
  5281. dsf_copyDs(this.objects[sCentlist],ds_tmp_centcdlist,"replace");
  5282. }
  5283. // 보조과정보
  5284. if(utlf_isNull(sSubdeptlist)){
  5285. dsf_createDs("ds_init_subdeptcdlist");
  5286. dsf_copyDs(ds_init_subdeptcdlist,ds_tmp_subdeptcdlist,"replace");
  5287. }else{
  5288. dsf_createDs(sSubdeptlist);
  5289. dsf_copyDs(this.objects[sDeptlist],ds_tmp_subdeptcdlist,"replace");
  5290. }
  5291. dsf_deleteDs("ds_tmp_orddeptcdlist");
  5292. dsf_deleteDs("ds_tmp_orddridlist");
  5293. dsf_deleteDs("ds_tmp_centcdlist");
  5294. dsf_deleteDs("ds_tmp_subdeptcdlist");
  5295. }
  5296. /****************************************************************************************
  5297. * Function : fApproveHeallifeAmt2
  5298. * Description : 자격조회 - 임플란트등록신청, 레진틀니등록신청에서 호출 의료급여자격조회승인화면이 만들어져야 가능.
  5299. * Argument :
  5300. * :
  5301. * return type :
  5302. * Creator :
  5303. ****************************************************************************************/
  5304. function fApproveHeallifeAmt2(){
  5305. //보험증번호 조회(보험자격조회)
  5306. // var starttime = utlf_getCurrentTime();
  5307. //
  5308. //
  5309. // // var ivrObjt = document.all("ivr_insupopup");
  5310. // // if( utlf_isNull(ivrObjt) ){
  5311. // // body.createChild("xforms:iviewer", "id:ivr_insupopup; src:../../../pam/pamcomnweb/xrw/SPPMC03900_의료급여자격조회승인.xrw");
  5312. // // ivrObjt = document.all("ivr_insupopup");
  5313. // // //공통코드 초기화
  5314. // // ivrObjt.fGetInitCode();
  5315. // // }
  5316. //
  5317. // frmf_open("SPPMC03900", "SPPMC03900", "", "", "", "", "", "", "", "", "", "", "P");
  5318. // var ivrObjt = frmf_findPopup("SPPMC03900");
  5319. // ivrObjt.fGetInitCode();
  5320. //
  5321. //
  5322. //
  5323. // //팝업타입 - 아이뷰어로 세팅 메세지 처리시 필요
  5324. // frmf_setParameter("SPPMC03900_POPUPTYPE", "I"); //iviewer
  5325. //
  5326. // //데이터 초기화 및 자격조회
  5327. // if( ivrObjt.fInit() != true ){
  5328. // //messageBox("[보험 자격조회 오류]건유비청구가 정상적으로 되지 않았습니다. 건유비청구 팝업에서 직접 차감해주세요.", "E999", "");
  5329. // //ivrObjt.fClose();
  5330. // //return false;
  5331. // }
  5332. //
  5333. // ivrObjt.fClose();
  5334. // var finishtime = utlf_getCurrentTime();
  5335. var objDiv = this.components["ivr_insupopup"];
  5336. if (objDiv == null) {
  5337. objDiv = new Div("ivr_insupopup", 0, 0, 0, 0);
  5338. objDiv.url = sysf_getScreenURL("SPPMC03900");
  5339. this.addChild("ivr_insupopup", objDiv);
  5340. objDiv.asyncmode = false;
  5341. objDiv.show();
  5342. objDiv.fGetInitCode();
  5343. }
  5344. objDiv.frmf_setParameter("SPPMC03900_POPUPTYPE", "I");
  5345. objDiv.fInit();
  5346. objDiv.fClose();
  5347. //this.removeChild("ivr_insupopup");
  5348. }
  5349. /**
  5350. * @desc : 의사휴진일정 및 진료환자정원 조회
  5351. * <pre>
  5352. * input : insucd 보험자기호(보험자코드)
  5353. * insuflag 보험자형태
  5354. * 1:공단/2:의료급여/3:자보/4:산재공상/5:일반/6:외국인
  5355. * </pre>
  5356. * @param : orddrid, orddeptcd, orddd, ordtm, fsexamflag
  5357. * @return :
  5358. * @---------------------------------------------------
  5359. */
  5360. function fGetVerifyHoli2(centcd, orddrid, orddeptcd, subdeptcd, orddd, ordtm, fsexamflag, rsrvflag, reglscheyn){
  5361. // if(centcd == '-')
  5362. // centcd = '';
  5363. var arrColInfo = [{col: "otpt_orddrid", type:"string", size:256, val:orddrid},
  5364. {col: "otpt_orddeptcd", type:"string", size:256, val:orddeptcd},
  5365. {col: "otpt_subdeptcd", type:"string", size:256, val:subdeptcd},
  5366. {col: "otpt_centcd", type:"string", size:256, val:centcd},
  5367. {col: "otpt_orddd", type:"string", size:256, val:orddd},
  5368. {col: "otpt_ordtm", type:"string", size:256, val:ordtm},
  5369. {col: "otpt_fsexamflag", type:"string", size:256, val:fsexamflag},
  5370. {col: "otpt_rsrvflag", type:"string", size:256, val:rsrvflag}
  5371. ];
  5372. dsf_createDsRow("ds_hidden_temp_send",arrColInfo);
  5373. var oParam = {};
  5374. oParam.id = "TRPMO00112";
  5375. oParam.service = "opatmngtapp.OPatMngt";
  5376. oParam.method = "reqGetVeriHoli";
  5377. oParam.inds = "req=ds_hidden_temp_send";
  5378. oParam.outds = "ds_hidden_temp_result_veryholi=veryholi";
  5379. oParam.async = false;
  5380. oParam.callback = "cf_TRPMO00112";
  5381. tranf_submit(oParam);
  5382. if(arErrorCode.pop("TRPMO00112") > -1){
  5383. var msg = utlf_transNullToEmpty(ds_hidden_temp_result_veryholi.getColumn(0,"msg"));
  5384. var msgtype = ds_hidden_temp_result_veryholi.getColumn(0,"msgtype");
  5385. if( msgtype != 'E999' && msgtype != 'Q999' ){
  5386. msgtype = 'Q999';
  5387. }
  5388. dsf_deleteDs("ds_hidden_temp_send");
  5389. if( ds_hidden_temp_result_veryholi.getColumn(0,"exception") != "OK" &&
  5390. ds_hidden_temp_result_veryholi.getColumn(0,"exception") != "Center" ){
  5391. if( utlf_isNull(msg) ){
  5392. if( msgtype == "Q999" ){
  5393. if( sysf_messageBox("의사휴진일정 및 정원 확인 오류!. 계속 진행 하시겠습니까?", msgtype, "") == "6"){
  5394. return true;
  5395. }else{
  5396. return false;
  5397. }
  5398. }else{
  5399. sysf_messageBox("의사휴진일정 및 정원 확인 오류!", msgtype, "");
  5400. return false;
  5401. }
  5402. }else{
  5403. if( reglscheyn == "Y" ){
  5404. if( msgtype == "Q999" ){
  5405. if( sysf_messageBox(msg + " 계속 진행 하시겠습니까?", msgtype, "") == "6"){
  5406. var centcd = "";
  5407. if (!utlf_isNull(ds_hidden_temp_result_veryholi.getColumnInfo("centcd"))) {
  5408. centcd = ds_hidden_temp_result_veryholi.getColumn(0, "centcd");
  5409. }
  5410. if (utlf_isNull(centcd) || centcd == " " || centcd == "-") {
  5411. centcd = true;
  5412. }
  5413. return centcd
  5414. }else{
  5415. return false;
  5416. }
  5417. }else{
  5418. sysf_messageBox(msg, msgtype, "");
  5419. return false;
  5420. }
  5421. }else{
  5422. sysf_messageBox(msg, "E999", "");
  5423. return false;
  5424. }
  5425. }
  5426. }else if( ds_hidden_temp_result_veryholi.getColumn(0,"exception") == "Center" ){
  5427. if( sysf_messageBox(msg + "해당 센터로 접수[예약]하시겠습니까?", "Q999", "") == "6"){
  5428. var centcd = "";
  5429. if (!utlf_isNull(ds_hidden_temp_result_veryholi.getColumnInfo("centcd"))) {
  5430. centcd = ds_hidden_temp_result_veryholi.getColumn(0, "centcd");
  5431. }
  5432. return centcd;
  5433. }else{
  5434. return false;
  5435. }
  5436. }
  5437. }else{
  5438. dsf_deleteDs("ds_hidden_temp_send");
  5439. if( sysf_messageBox("의사휴진일정 및 정원 확인 실패!. 계속 진행 하시겠습니까?", "Q999", "") == "6"){
  5440. return true;
  5441. }else{
  5442. return false;
  5443. }
  5444. return false;
  5445. }
  5446. return true;
  5447. }
  5448. function cf_TRPMO00112(sSvcId, nErrorCode, sErrorMsg) {
  5449. arErrorCode.push(sSvcId, nErrorCode);
  5450. }
  5451. /****************************************************************************************
  5452. * Argument : N/A
  5453. * Description : 참고사항 팝업 호출
  5454. ****************************************************************************************/
  5455. function fCallSpecPopUp_remfact(pid,remfact){
  5456. var remfact_rtn = "";
  5457. sysf_setGlobalVariable('ptbs_pid', pid, 'p');
  5458. sysf_setGlobalVariable('ptbs_remfact', remfact, 'p');
  5459. //2018/04/26 이정택 수정
  5460. // frmf_modal('SMPAI02200', 'SMPAI02200', '', '', '', '', '', '', '', '', '', '', 'M');
  5461. frmf_modal('SMPAI02200', 'SMPAI02200', '', false, 1, '', '', 556, 310, '', '', '', 'M');
  5462. //2018/04/26 이정택 수정
  5463. remfact_rtn = sysf_getGlobalVariable('ptbs_remfact', 'p');
  5464. sysf_setGlobalVariable('ptbs_pid', '', 'p');
  5465. sysf_setGlobalVariable('ptbs_remfact', '', 'p');
  5466. return remfact_rtn;
  5467. }
  5468. function fCheckDrSche(orddrid, orddeptcd, orddd, ordtm, medamtestmyn, etcordflag, insukind, suppkind){
  5469. if(utlf_isNull(orddrid)){
  5470. sysf_messageBox("진료의사 코드가 비어있습니다", "E999", "");
  5471. return false;
  5472. }
  5473. if(utlf_isNull(orddeptcd)){
  5474. sysf_messageBox("진료과 코드가 비어있습니다", "E999", "");
  5475. return false;
  5476. }
  5477. if(utlf_isValidDateTime(orddd, "YYYYMMDD") == false){
  5478. sysf_messageBox("진료일자 6자리 형식오류입니다.", "E999", "");
  5479. return false;
  5480. }
  5481. if(utlf_isValidDateTime(ordtm, "hhmm") == false){
  5482. sysf_messageBox("진료시간 4자리 형식오류입니다.", "E999", "");
  5483. return false;
  5484. }
  5485. if(utlf_isNull(medamtestmyn)){
  5486. sysf_messageBox("잔찰료산정여부 코드가 비어있습니다", "E999", "");
  5487. return false;
  5488. }
  5489. if(utlf_isNull(etcordflag)){
  5490. sysf_messageBox("연속처방/기타구분 코드가 비어있습니다", "E999", "");
  5491. return false;
  5492. }
  5493. var arrColInfo = [{col:"orddrid", type:"string", size:256, val:orddrid},
  5494. {col:"orddeptcd", type:"string", size:256, val:orddeptcd},
  5495. {col:"orddd", type:"string", size:256, val:orddd},
  5496. {col:"ordtm", type:"string", size:256, val:ordtm},
  5497. {col:"medamtestmyn", type:"string", size:256, val:medamtestmyn},
  5498. {col:"etcordflag", type:"string", size:256, val:etcordflag},
  5499. {col:"insukind", type:"string", size:256, val:insukind},
  5500. {col:"suppkind", type:"string", size:256, val:suppkind}
  5501. ];
  5502. dsf_createDsRow("ds_checkdrschesend",arrColInfo);
  5503. var oParam = {};
  5504. oParam.id = "TRPAO00004";
  5505. oParam.service = "pamcomnapp.PamComn";
  5506. oParam.method = "reqGetDrUseFlagForSche_xp";
  5507. oParam.inds = "req=ds_checkdrschesend";
  5508. oParam.outds = "ds_temp_checkdrscheResult_useinfo=useinfo";
  5509. oParam.async = false;
  5510. oParam.callback = "cf_TRPAO00004";
  5511. tranf_submit(oParam);
  5512. if(arErrorCode.pop("TRPAO00004") > -1){
  5513. return true;
  5514. }
  5515. }
  5516. function cf_TRPAO00004(sSvcId, nErrorCode, sErrorMsg) {
  5517. arErrorCode.push(sSvcId, nErrorCode);
  5518. }
  5519. /*
  5520. * 수납마감 사용자관리 정보 조회
  5521. * 수납자 마감결제 여부를 조회
  5522. */
  5523. function isMagmAprv(){
  5524. //로그인ID
  5525. var rcptrid = sysf_getUserId();
  5526. //현재시간
  5527. var rcptexecdd = utlf_getCurrentDate();
  5528. //수납마감 사용자관리 정보 체크
  5529. // 전송을 위한 데이터셋 생성
  5530. dsf_createDsRow('ds_req_MagmAprv', [
  5531. { col: 'rcptrid', type: 'string', size: 256, val: rcptrid },
  5532. { col: 'rcptexecdd', type: 'string', size: 256, val: rcptexecdd }
  5533. ], false);
  5534. // 수신받은ㄹ 데이터셋 생성
  5535. dsf_createDs('ds_out_rcptuserinfo', [ { col: 'useyn', type: 'string', size: 256} ]);
  5536. // 전송 파라미터 생성
  5537. var oParam = {};
  5538. oParam.id = "TRPAO00006";
  5539. oParam.service = "pamcomnapp.PamComn";
  5540. oParam.method = "reqGetRcptuserInfo";
  5541. oParam.inds = "req=ds_req_MagmAprv";
  5542. oParam.outds = "ds_out_rcptuserinfo=rcptuserinfo";
  5543. oParam.async = false;
  5544. // oParam.callback = "cf_TRPAO00006";
  5545. tranf_submit(oParam);
  5546. if(ds_out_rcptuserinfo.rowcount > 0){
  5547. if(ds_out_rcptuserinfo.getColumn(0, 'useyn') == 'N'){
  5548. sysf_messageBox('수납마감 사용자관리에 등록되지 않은 사용자 입니다.\r\n접수/수납업무는 더이상 진행할 수 없습니다.', 'C000');
  5549. return true;
  5550. }
  5551. }
  5552. //수납자 마감결제 여부 체크
  5553. // 수신받은ㄹ 데이터셋 생성
  5554. dsf_createDs('ds_out_aprvinfo', [ { col: 'aprvyn', type: 'string', size: 256} ]);
  5555. oParam = {};
  5556. oParam.id = "TRPAO00005";
  5557. oParam.service = "pamcomnapp.PamComn";
  5558. oParam.method = "reqGetMagmAprv";
  5559. oParam.inds = "req=ds_req_MagmAprv";
  5560. oParam.outds = "ds_out_aprvinfo=aprvinfo";
  5561. oParam.async = false;
  5562. //oParam.callback = "cf_TRPAO00005";
  5563. tranf_submit(oParam);
  5564. var aprvyn = ds_out_aprvinfo.getColumn(0, 'aprvyn');
  5565. if(aprvyn == 'Y'){
  5566. sysf_messageBox(rcptexecdd.substr(0, 4) + '년 ' + rcptexecdd.substr(4, 2) + '월 ' + rcptexecdd.substr(6, 2)
  5567. + '일자의 수납마감이 완료되었습니다!!!\r\n해당일자의 접수/수납업무는 더이상 진행할 수 없습니다.\r\n(마감 결제취소 후 업무진행이 가능)', 'C000');
  5568. return true;
  5569. }
  5570. return false;
  5571. }
  5572. /**
  5573. 공통코드에 세팅된 프린터 명칭과 트레이번호 가져오기
  5574. */
  5575. function fGetPrintName(pCaller) {
  5576. frmf_modal("SPPAO00100", "SPPAO00100", "", "","", "", "", "", "", "", "", "", "M"); //프린터 공통코드 세팅 호출
  5577. //frmf_modal("SPPAI02600", "SPPAI02600", objArg, "", 1, 200, 200, "", "", "", "", "", "M");
  5578. //화면단에서 수동으로 출력할경우 아래여부가 Y이면 디폴트프린터로 강제로 출력한다.
  5579. var force_print = sysf_getGlobalVariable("SPPAO00100_강제출력여부","p");
  5580. if(sysf_getGlobalVariable("SPPAO00100_P0045_1_nm_org","p") == "false" && force_print == "Y") {
  5581. sysf_setGlobalVariable("SPPAO00100_P0045_1_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5582. }
  5583. if(sysf_getGlobalVariable("SPPAO00100_P0045_2_nm_org","p") == "false" && force_print == "Y") {
  5584. sysf_setGlobalVariable("SPPAO00100_P0045_2_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5585. }
  5586. if(sysf_getGlobalVariable("SPPAO00100_P0045_3_nm_org","p") == "false" && force_print == "Y") {
  5587. sysf_setGlobalVariable("SPPAO00100_P0045_3_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5588. }
  5589. if(sysf_getGlobalVariable("SPPAO00100_P0045_4_nm_org","p") == "false" && force_print == "Y") {
  5590. sysf_setGlobalVariable("SPPAO00100_P0045_4_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5591. }
  5592. if(sysf_getGlobalVariable("SPPAO00100_P0045_5_nm_org","p") == "false" && force_print == "Y") {
  5593. sysf_setGlobalVariable("SPPAO00100_P0045_5_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5594. }
  5595. if(sysf_getGlobalVariable("SPPAO00100_P0045_6_nm_org","p") == "false" && force_print == "Y") {
  5596. sysf_setGlobalVariable("SPPAO00100_P0045_6_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5597. }
  5598. if(sysf_getGlobalVariable("SPPAO00100_P0045_7_nm_org","p") == "false" && force_print == "Y") {
  5599. sysf_setGlobalVariable("SPPAO00100_P0045_7_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5600. }
  5601. if(sysf_getGlobalVariable("SPPAO00100_P0045_8_nm_org","p") == "false" && force_print == "Y") {
  5602. sysf_setGlobalVariable("SPPAO00100_P0045_8_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5603. }
  5604. if(sysf_getGlobalVariable("SPPAO00100_P0045_9_nm_org","p") == "false" && force_print == "Y") {
  5605. sysf_setGlobalVariable("SPPAO00100_P0045_9_nm",sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p"),"p");
  5606. }
  5607. //강제출력여부 초기화 sysf_setGlobalVariable("SPPAO00100_강제출력여부", "" ,"p");
  5608. }
  5609. /**
  5610. 선택진료 팝업 호출
  5611. */
  5612. function fCallSpecPopUp(pid,ordtype,orddd,orddeptcd,orddrid,fromdd,hngnm,rrgstno1,rrgstno2,cretno,autoprntyn) {
  5613. frmf_modal("SPPAO00100", "SPPAO00100", "", "", "", "", "", "", "", "", "", "","M");
  5614. var P0032_250 = sysf_getGlobalVariable("SPPAO00100_P0032_250_nm","p");
  5615. // 구화면 / 신화면 사용안함 by 조중래 20151202
  5616. // //구화면
  5617. // if(P0032_250 == "N") {
  5618. //
  5619. // model.makeValue("/root/tempchk/specchk/stat" , "");
  5620. // model.makeValue("/root/tempchk/specchk/pid" , pid);
  5621. // model.makeValue("/root/tempchk/specchk/hngnm" , hngnm);
  5622. // model.makeValue("/root/tempchk/specchk/rrgstno1" , rrgstno1);
  5623. // model.makeValue("/root/tempchk/specchk/rrgstno2" , rrgstno2);
  5624. // model.makeValue("/root/tempchk/specchk/choiflag" , "");
  5625. // model.makeValue("/root/tempchk/specchk/ordtype" , ordtype);
  5626. // model.makeValue("/root/tempchk/specchk/orddd" , orddd);
  5627. // model.makeValue("/root/tempchk/specchk/orddeptcd", orddeptcd);
  5628. // model.makeValue("/root/tempchk/specchk/orddrid" , orddrid);
  5629. // model.makeValue("/root/tempchk/specchk/specordyn", "Y");
  5630. // model.makeValue("/root/tempchk/specchk/fromdd" , fromdd);
  5631. // model.makeValue("/root/tempchk/specchk/rsrvdd" , "");
  5632. //
  5633. // modal("SMPMC06500", "1", "0", "0" ,"SMPMC06500", "/root/tempchk/specchk", "/root/main/patappinfo/patappinfo1");
  5634. //
  5635. // }
  5636. //
  5637. // //신화면
  5638. // if(P0032_250 == "Y") {
  5639. //
  5640. // model.makeValue("/root/tempchk/specchk/pid" , pid);
  5641. // model.makeValue("/root/tempchk/specchk/ordtype" , ordtype);
  5642. // model.makeValue("/root/tempchk/specchk/orddd" , orddd);
  5643. // model.makeValue("/root/tempchk/specchk/orddeptcd" , orddeptcd);
  5644. // model.makeValue("/root/tempchk/specchk/orddrid" , orddrid);
  5645. // model.makeValue("/root/tempchk/specchk/fromdd" , fromdd);
  5646. //
  5647. // modal("SMPMC06501", "1", "0", "0" ,"SMPMC06501", "/root/tempchk/specchk", "/root/main/patappinfo/patappinfo1");
  5648. // }
  5649. //2011.10 고시반영 - OCR 서식 사용
  5650. if(P0032_250 == "A") {
  5651. frmf_setParameter("SMPMC06502_PARM_PID", pid);
  5652. frmf_setParameter("SMPMC06502_PARM_ORDTYPE", ordtype);
  5653. frmf_setParameter("SMPMC06502_PARM_ORDDD", orddd);
  5654. frmf_setParameter("SMPMC06502_PARM_CRETNO", cretno);
  5655. frmf_setParameter("SMPMC06502_PARM_ORDDEPTCD", orddeptcd);
  5656. frmf_setParameter("SMPMC06502_PARM_ORDDRID", orddrid);
  5657. frmf_setParameter("SMPMC06502_PARM_FROMDD", fromdd);
  5658. frmf_setParameter("SMPMC06502_PARM_AUTOPRNTYN", autoprntyn);
  5659. //modal("SMPMC06502", "1", "0", "0" ,"SMPMC06502", "/root/tempchk/specchk", "/root/main/patappinfo/patappinfo1");
  5660. //frmf_modal("SMPMC06502", "SMPMC06502", "", "", "", "", "", "", "", "", "", "","M");
  5661. dsf_createDsRow("ds_tempchk_specchk" , [
  5662. {col: "pid", val:pid}
  5663. ,{col: "cretno", val:cretno}
  5664. ,{col: "ordtype", val:ordtype}
  5665. ,{col: "orddd", val:orddd}
  5666. ,{col: "orddeptcd", val:orddeptcd}
  5667. ,{col: "orddrid", val:orddrid}
  5668. ,{col: "fromdd", val:fromdd}
  5669. ,{col: "autoprntyn", val:autoprntyn}
  5670. ]);
  5671. var objArg = new Object();
  5672. objArg.arg_ds_patappinfo_patappinfo1 = ds_tempchk_specchk;
  5673. frmf_modal("SMPMC06502", "SMPMC06502", objArg, null, null, null, null, null, null, null, null, null, "M");
  5674. }
  5675. }
  5676. /**
  5677. * @desc :
  5678. * @param : @dest: 원본
  5679. @target: 비교대상
  5680. * @return : 두 데이터셋이 같다면 true, 그렇지 않다면 false
  5681. * @---------------------------------------------------
  5682. */
  5683. function pamCompareNodes(dest:Dataset, target:Dataset){
  5684. if(utlf_isNull(dest) || utlf_isNull(target)){
  5685. return false;
  5686. }
  5687. if(dest.rowcount != target.rowcount){
  5688. return false;
  5689. }
  5690. // 행만큼 반복 하며 확인
  5691. for(var i = 0; i < dest.rowcount; i++){
  5692. // 열만큼 반복하며 확인
  5693. for(var j = 0; j < dest.colcount; j++){
  5694. if(dest.getColumn(i, j) != target.getColumn(i, dest.getColID(j))){
  5695. return false;
  5696. }
  5697. }
  5698. }
  5699. return true;
  5700. }
  5701. /*
  5702. * 선택진료비제도 개선관련 추가징수/환불대상(실시정산) 조회기능 추가 by 조중래 (2014년 7월 28일)
  5703. * openType을 지정하지 않는경우 modal로 처리(진료지원 등)
  5704. */
  5705. function getPrcpRcptCheck(workType, pid, orddd, cretno, prcpdd, execPrcpUniqno, openType) {
  5706. var cnt = 0;
  5707. // 정산대상처방조회
  5708. var obj = this.components["prcpRcptCheckObj"];
  5709. if (utlf_isNull(obj)) {
  5710. obj = new Div("prcpRcptCheckObj");
  5711. obj.asyncmode = false;
  5712. obj.url = "pam_pamcomnxp::SPPMO02001_정산대상처방조회.xfdl";
  5713. this.addChild("prcpRcptCheckObj", obj);
  5714. obj.show();
  5715. }
  5716. var msg = obj.fCheckNhicInfo(workType, pid, orddd, cretno, prcpdd, execPrcpUniqno);
  5717. if (!utlf_isNull(msg)) {
  5718. var msgArr = msg.split("|");
  5719. this.enable = false;
  5720. alert(msgArr[1], msgArr[0], "48");
  5721. this.enable = true;
  5722. }
  5723. // 실시정산 대상이 존재하는 경우에만 처리
  5724. cnt = obj.getPrcpRcptCheck(workType, pid, orddd, cretno, prcpdd, execPrcpUniqno);
  5725. if (cnt > 0) {
  5726. if (openType == "open") {
  5727. frmf_open("SPPMO02001" ,"SPPMO02001", '', false, 1, '', '', 825, 360, "", "", "", "M");
  5728. } else {
  5729. frmf_setParameter("SPPMO02001_PARM", pid);
  5730. frmf_modal("SPPMO02001" ,"SPPMO02001", "", false, 1, '', '', 825, 360, "", "", "", "M");
  5731. }
  5732. }
  5733. return cnt;
  5734. }
  5735. // 개인정보이용동의서 자동출력
  5736. function fPerPrintOCR(formcd, pid, orddd, cretno, ordtype, ocrtype) {
  5737. // 개인정보이용동의서 전자동의서 사용가능하도록 수정 by 조중래 20130305
  5738. if (ocrtype == "S") {
  5739. frmf_setParameter("SSMRC03160_param_patid", pid);
  5740. frmf_setParameter("SSMRC03160_param_cretno", cretno);
  5741. frmf_setParameter("SSMRC03160_param_indate", orddd);
  5742. frmf_setParameter("SSMRC03160_param_instcd", sysf_getUserInfo("dutplceinstcd"));
  5743. frmf_setParameter("SSMRC03160_param_class", ordtype);
  5744. frmf_setParameter("SSMRC03160_param_docucd", formcd);
  5745. frmf_setParameter("SSMRC03160_param_cuser", sysf_getUserInfo("userid"));
  5746. frmf_setParameter("SSMRC03160_param_flag", "G"); // 일반동의서
  5747. //이윤주 수정(20200130)
  5748. if (lf_ContainsHardCD("6950", "Y") && lf_ContainsHardCD("6951", sysf_getUserInfo("userid"))) {
  5749. frmf_modal("SPMRF04601", "SPMRF04601", '', "", '', '', '', "", "", "", "", "", "M");
  5750. }
  5751. else {
  5752. frmf_modal("SSMRC03160", "SSMRC03160", '', "", '', '', '', "", "", "", "", "", "M");
  5753. }
  5754. } else {
  5755. frmf_setParameter ("formcd", formcd );
  5756. frmf_setParameter ("pid", pid);
  5757. frmf_setParameter ("orddd", orddd );
  5758. frmf_setParameter ("cretno", cretno);
  5759. frmf_setParameter ("ordtype", ordtype );
  5760. frmf_modal("SSMRF03700", "SSMRF03700", null, null, null, null, null, null, null, null, null, null, "M");
  5761. }
  5762. }
  5763. function lf_showDsValue(ds_target, cdcol, nmcol){
  5764. var nDsRowCount = ds_target.getRowCount();
  5765. if( nDsRowCount != 0 ){
  5766. ds_target.addColumn("cdnm","string",256);
  5767. for(var i = 0; i < nDsRowCount; i++){
  5768. ds_target.setColumn(i, "cdnm", "[" + ds_target.getColumn(i, cdcol) + "]" + ds_target.getColumn(i, nmcol));
  5769. }
  5770. }
  5771. }
  5772. function lf_isResidentNo(pResidnetNo) {
  5773. if (isNaN(pResidnetNo)) return false;
  5774. if (pResidnetNo.length != 13) return false;
  5775. var c = pResidnetNo.substr(6, 1);
  5776. if (c == "5" || c == "6") return true;
  5777. var last = pResidnetNo.substr(12, 1);
  5778. var regNo = new Array(12);
  5779. regNo[12] = 0;
  5780. for (var i = 0; i < regNo.length - 1; i++) {
  5781. regNo[i] = eval(pResidnetNo.substr(i, 1)) * ((i % 8) + 2);
  5782. }
  5783. for (var i = 0; i < regNo.length - 1; i++) {
  5784. regNo[12] += regNo[i];
  5785. }
  5786. var result = ( 11 - ( regNo[12] % 11 ) ) % 10;
  5787. if (result == eval(last)) {
  5788. return true;
  5789. } else {
  5790. return lf_isForegnResidentNo(pResidnetNo);
  5791. }
  5792. }
  5793. function lf_isForegnResidentNo(pResidnetNo) {
  5794. var sum = 0;
  5795. var odd = 0;
  5796. buf = new Array(13);
  5797. for (var i = 0; i < 13; i++) {
  5798. buf[i] = parseInt(pResidnetNo.charAt(i));
  5799. }
  5800. odd = buf[7] * 10 + buf[8];
  5801. // 기관번호 검사, 기관번호를 2로 나눈 경우, 나머지 있는 경우, 주민등록번호 무효
  5802. if (odd%2 != 0) {
  5803. return false;
  5804. }
  5805. //등록자구분이 아래와 같지 않은 경우 오류
  5806. // 6 : ??
  5807. // 7 : 외국국적동포
  5808. // 8 : 재외국인
  5809. // 9 : 순수외국인
  5810. if ( buf[11] != 6 && buf[11] != 7 && buf[11] != 8 && buf[11] != 9 ) {
  5811. return false;
  5812. }
  5813. //주민번호 13자리 중 12자리를 처음부터 12자리까지 배열값의 순서대로 곱한 후 합계를 낸다.
  5814. //Total = (A * 2) + (B * 3) + (C * 4) + (D * 5) + (E * 6) + (F * 7)
  5815. // + (G * 8) + (H * 9) + (I * 2) + (J * 3) + (K * 4) + (L * 5)
  5816. multipliers = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5];
  5817. for (var i = 0, sum = 0; i < 12; i++) {
  5818. sum += ( buf[i] *= multipliers[i] );
  5819. }
  5820. sum = 11 - ( sum%11 );
  5821. if (sum >= 10) sum -= 10;
  5822. sum += 2;
  5823. if (sum >= 10) sum -= 10;
  5824. if (sum != buf[12]) {
  5825. return false;
  5826. } else {
  5827. return true;
  5828. }
  5829. }
  5830. function leftPad(str, fillChar, length) {
  5831. if (fillChar.length <> 1) {
  5832. alert('fillChar must be a single character');
  5833. return "";
  5834. }
  5835. if (str.length > length)
  5836. return str;
  5837. var returnStr = "";
  5838. var i;
  5839. for (i = str.length; i < length; i++) {
  5840. returnStr = returnStr + fillChar;
  5841. }
  5842. returnStr = returnStr + str;
  5843. return returnStr;
  5844. }
  5845. function rightPad(str, fillChar, length) {
  5846. if (fillChar.length <> 1) {
  5847. alert('fillChar must be a single character');
  5848. return "";
  5849. }
  5850. if (str.length > length)
  5851. return str;
  5852. var returnStr = str;
  5853. var i;
  5854. for (i = str.length; i < length; i++) {
  5855. returnStr = returnStr + fillChar;
  5856. }
  5857. return returnStr;
  5858. }
  5859. // DUR조회를 특정함수로 뺌(2020/02/10 이정택)
  5860. // 기준자료조회값(pam.pmcmcocde(cdgrupid, cdid) -> P0032, 6610), 환자번호
  5861. function fDur_Check(cdnm, pid){
  5862. if(cdnm=='Y'){
  5863. if (!utlf_isNull(pid)) {
  5864. frmf_setParameter("SPMMD00100_ifyn", "Y");
  5865. frmf_setParameter("SPMMD00100_pid", pid);
  5866. var argxpt = system.clientToScreenX(this, 0) + 450;
  5867. var argypt = system.clientToScreenY(this, 0) + 250;
  5868. frmf_modal("SPMMO51000", "SPMMO51000", null, false, null, argxpt, argypt, null, null, null, null, null, "M");
  5869. }
  5870. }
  5871. }]]></Script>