SSLLC80100_채혈검사처방상세.xfdl 437 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SSLLC80100" position="absolute 0 0 870 780" titletext="채혈검사처방상세" onload="SSLLC80100_onload" onkeydown="SSLLC80100_onkeydown" scrollbars="none" oninit="SSLLC80100_oninit">
  5. <Layouts>
  6. <Layout>
  7. <Div id="grp4" position="absolute 0 0 876 780" anchor="all" positiontype="position" scrollbars="none">
  8. <Layouts>
  9. <Layout width="926" height="780">
  10. <Static id="Static01" class="sta_DA_box" position="absolute 393 731 870 757" anchor="left bottom"/>
  11. <Static id="Static00" class="sta_DA_box" position="absolute 0 731 377 757" anchor="left bottom"/>
  12. <Static id="caption4" class="cell_1" position="absolute 3 735 74 755" anchor="left bottom" text="범례" positiontype="position"/>
  13. <Static id="caption7" position="absolute 74 735 149 755" anchor="left bottom" text="혈액은행" style="background:white URL('..\..\commonxp\images\icnGS_HyeolAekEunHaeng.gif');align:center middle;" positiontype="position"/>
  14. <Static id="caption10" position="absolute 149 735 224 755" anchor="left bottom" text="분자유전" style="background:white URL('..\..\commonxp\images\icnGS_BunJaYuJeon.gif');align:center middle;" positiontype="position"/>
  15. <Static id="caption11" position="absolute 224 735 299 755" anchor="left bottom" text="핵의학" style="background:white URL('..\..\commonxp\images\icnGS_HaekEuiHak.gif');align:center middle;" positiontype="position"/>
  16. <Shape id="line2" class="line_1" position="absolute 0 131 860 131" anchor="default" linetype="horizontal" positiontype="position"/>
  17. <Shape id="line1" class="line_3" position="absolute 0 100 860 100" anchor="default" linetype="horizontal" positiontype="position"/>
  18. <Static id="caption8" class="tit_2" position="absolute 0 135 115 160" anchor="default" text="처방상세목록" positiontype="position"/>
  19. <Grid id="grd_TestInfoCnts" position="absolute 0 153 870 733" onclick="grd_TestInfoCnts_onclick" anchor="all" oncellclick="grp4_grd_TestInfoCnts_oncellclick" binddataset="ds_grd_TestInfoCnts" onmousemove="grp4_grd_TestInfoCnts_onmousemove" onrbuttondown="grp4_grd_TestInfoCnts_onrbuttondown" cellsizingtype="col" cellmovingtype="none" onchar="grp4_grd_TestInfoCnts_onchar" onexpanddown="grp4_grd_TestInfoCnts_onexpanddown" selecttype="cell" autoenter="select" autosizebandtype="head" positiontype="position" cellsizebandtype="allband">
  20. <Formats>
  21. <Format id="default">
  22. <Columns>
  23. <Column size="23" band="left"/>
  24. <Column size="0" band="left"/>
  25. <Column size="27" band="left"/>
  26. <Column size="32" band="left"/>
  27. <Column size="101" band="left"/>
  28. <Column size="78" band="left"/>
  29. <Column size="76" band="left"/>
  30. <Column size="136" band="left"/>
  31. <Column size="34"/>
  32. <Column size="63"/>
  33. <Column size="31"/>
  34. <Column size="81"/>
  35. <Column size="189"/>
  36. <Column size="25"/>
  37. <Column size="53"/>
  38. <Column size="85"/>
  39. <Column size="27"/>
  40. <Column size="55"/>
  41. <Column size="126"/>
  42. <Column size="50"/>
  43. <Column size="142"/>
  44. <Column size="45"/>
  45. <Column size="65"/>
  46. <Column size="0"/>
  47. <Column size="81"/>
  48. <Column size="140"/>
  49. <Column size="60"/>
  50. <Column size="119"/>
  51. <Column size="80"/>
  52. <Column size="100"/>
  53. <Column size="119"/>
  54. <Column size="140"/>
  55. <Column size="0"/>
  56. <Column size="0"/>
  57. <Column size="0"/>
  58. <Column size="0"/>
  59. <Column size="0"/>
  60. <Column size="0"/>
  61. <Column size="0"/>
  62. <Column size="0"/>
  63. <Column size="0"/>
  64. <Column size="0"/>
  65. <Column size="0"/>
  66. <Column size="0"/>
  67. <Column size="0"/>
  68. <Column size="0"/>
  69. <Column size="0"/>
  70. <Column size="0"/>
  71. <Column size="0"/>
  72. <Column size="0"/>
  73. <Column size="0"/>
  74. <Column size="0"/>
  75. <Column size="0"/>
  76. <Column size="74"/>
  77. <Column size="0"/>
  78. <Column size="0"/>
  79. <Column size="0"/>
  80. <Column size="0"/>
  81. <Column size="0"/>
  82. <Column size="150"/>
  83. </Columns>
  84. <Rows>
  85. <Row size="27" band="head"/>
  86. <Row size="24"/>
  87. </Rows>
  88. <Band id="head">
  89. <Cell/>
  90. <Cell col="1" text="상태"/>
  91. <Cell col="2" colspan="2" text="바코드"/>
  92. <Cell col="4" text="바코드번호"/>
  93. <Cell col="5" text="검사희망일"/>
  94. <Cell col="6" text="처방등록일" wordwrap="none"/>
  95. <Cell col="7" text="처방일시"/>
  96. <Cell col="8" text="수납"/>
  97. <Cell col="9" text="시행부서"/>
  98. <Cell col="10" text="구분"/>
  99. <Cell col="11" text="처방코드"/>
  100. <Cell col="12" text="검사항목"/>
  101. <Cell col="13" colspan="2" text="용기명" taborder="undefined"/>
  102. <Cell col="15" text="검체명"/>
  103. <Cell col="16" style="align:center middle;" text="응급"/>
  104. <Cell col="17" text="바코드&#10;갯 수"/>
  105. <Cell col="18" text="의사Remark"/>
  106. <Cell col="19" text="재발행&#10;범 위"/>
  107. <Cell col="20" text="바코드출력일시"/>
  108. <Cell col="21" text="진료과"/>
  109. <Cell col="22" text="의뢰의사"/>
  110. <Cell col="23" text="미채혈사유코드"/>
  111. <Cell col="24" text="Comment"/>
  112. <Cell col="25" text="채혈일시&#10;(검체이송)"/>
  113. <Cell col="26" text="채혈자"/>
  114. <Cell col="27" text="취소일시"/>
  115. <Cell col="28" text="취소자"/>
  116. <Cell col="29" text="취소사유"/>
  117. <Cell col="30" text="접수일시"/>
  118. <Cell col="31" text="결과일시"/>
  119. <Cell col="32" text="처방키"/>
  120. <Cell col="33" text="처방구분"/>
  121. <Cell col="34" text="등록번호"/>
  122. <Cell col="35" text="testlrgkind"/>
  123. <Cell col="36" text="처방번호"/>
  124. <Cell col="37" text="의뢰지번호"/>
  125. <Cell col="38" text="검사코드"/>
  126. <Cell col="39" text="검체코드"/>
  127. <Cell col="40" text="bcno2"/>
  128. <Cell col="41" text="의뢰지구분코드"/>
  129. <Cell col="42" text="검체일련번호"/>
  130. <Cell col="43" text="검체일련번호명"/>
  131. <Cell col="44" text="성별"/>
  132. <Cell col="45" text="나이"/>
  133. <Cell col="46" text="병동병실"/>
  134. <Cell col="47" text="caption1"/>
  135. <Cell col="48" text="spcstat"/>
  136. <Cell col="49" text="orgprcpstatcd"/>
  137. <Cell col="50" text="testdeptcd"/>
  138. <Cell col="51" text="testdeptflagcd"/>
  139. <Cell col="52" text="prcphopedd2"/>
  140. <Cell col="53" text="공여자명"/>
  141. <Cell col="54" text="orddd"/>
  142. <Cell col="55" text="spclrsltformkind"/>
  143. <Cell col="56" text="testreqlnkno"/>
  144. <Cell col="57" text="prcpkindcd"/>
  145. <Cell col="58" text="oproomnm"/>
  146. <Cell col="59" text="의사Remark"/>
  147. <Cell col="60"/>
  148. </Band>
  149. <Band id="body">
  150. <Cell celltype="head"/>
  151. <Cell col="1" displaytype="image" style="align:center middle;" text="bind:blank3" expr="expr:expr: getRowType(currow) == 2 ?'theme://images/ico_i.png' : (getRowType(currow) == 4 ? 'theme://images/ico_u.png' : (getRowType(currow) == 8 ? 'theme://images/ico_d.png' : 'theme://images/ico_e.png'))"/>
  152. <Cell col="2" style="background:center middle;background2:center middle;font:돋움,9,bold;selectbackground:expr:utlf_isNull(bcchk) ? '' : (bcchk == 'true' ? &quot;URL('IMG::/lis/chkBC1.png') center middle&quot; : (bcchk == 'false' ? &quot;URL('IMG::/lis/chkBC0.png') center middle&quot; : (bcchk == '-' ? &quot;URL('IMG::/lis/chkBC0.png') center middle&quot; : '')));backgroundimage:expr:utlf_isNull(bcchk) ? '' : (bcchk == 'true' ? &quot;URL('IMG::lis/chkBC1.png')&quot; : (bcchk == 'false' ? &quot;URL('IMG::lis/chkBC0.png')&quot; : (bcchk == '-' ? &quot;URL('IMG::lis/chkBC0.png')&quot; : '')));" text="bind:bcgbn"/>
  153. <Cell col="3" displaytype="checkbox" edittype="checkbox" style="font:돋움,9,bold;" text="bind:choi"/>
  154. <Cell col="4" edittype="readonly" style="align:left middle;background:no-repeat right middle;background2:no-repeat right middle;font:돋움,9,bold;backgroundimage:EXPR(lf_bcnoimg(currow));" text="bind:bcno" editautoselect="true"/>
  155. <Cell col="5" displaytype="date" style="font:돋움,8,bold;" text="bind:prcphopedd" mask="yyyy-MM-dd" calendardisplaynulltype="none"/>
  156. <Cell col="6" displaytype="date" style="align:center middle;font:돋움,8,bold;" text="bind:prcpdd" mask="yyyy-MM-dd" calendardisplaynulltype="nulltext"/>
  157. <Cell col="7" displaytype="date" style="font:돋움,8,bold;" text="bind:rgstdt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="nulltext"/>
  158. <Cell col="8" style="color:EXPR(rcpt == 'N' ? 'red' : 'green');color2:EXPR(rcpt == 'N' ? 'red' : 'green');font:돋움,9,bold;" text="bind:rcpt"/>
  159. <Cell col="9" style="align:left;color:EXPR(lf_gbnOutcoll(currow));color2:EXPR(lf_gbnOutcoll(currow));font:돋움,8,bold;" text="bind:prcpexecdeptnm"/>
  160. <Cell col="10" displaytype="combo" edittype="combo" style="align:left;font:돋움,8,bold;" text="bind:prcpkindcd" combodataset="ds_init_lb0139" combocodecol="cd" combodatacol="nm"/>
  161. <Cell col="11" style="align:center middle;color:EXPR(lf_gbnOutcoll(currow));color2:EXPR(lf_gbnOutcoll(currow));font:돋움,9,bold;" text="bind:tclscd"/>
  162. <Cell col="12" displaytype="normal" style="align:left;padding:EXPR(lf_testpadding(currow));background:no-repeat left middle;background2:no-repeat left middle;color:EXPR(lf_gbnOutcoll(currow));color2:EXPR(lf_gbnOutcoll(currow));font:돋움,9,bold;backgroundimage:EXPR(lf_testimage(currow));controlalign:left;" text="bind:tclsscrnm" expandshow="hide"/>
  163. <Cell col="13" displaytype="image" style="line:1 solid #ccccccff,0 none #808080ff;background:no-repeat;background2:no-repeat;font:돋움,9,bold;backgroundimage:EXPR(lf_tubeimg(currow));" text="bind:tubeiconimg"/>
  164. <Cell col="14" style="align:left;font:돋움,9,bold;" text="bind:tubenm"/>
  165. <Cell col="15" style="align:left;font:돋움,9,bold;" text="bind:spcnm"/>
  166. <Cell col="16" style="color:EXPR(erprcpflag == 'Y' || erprcpflag == '당일' ? 'red' : 'green');color2:EXPR(erprcpflag == 'Y' || erprcpflag == '당일' ? 'red' : 'green');font:돋움,9,bold;" text="bind:erprcpflag"/>
  167. <Cell col="17" edittype="text" style="font:돋움,9,bold;" text="bind:bcollbarcdprntcnt" editautoselect="true" expandshow="show" expandsize="20"/>
  168. <Cell col="18" style="align:left;" text="bind:prcpdelivefact"/>
  169. <Cell col="19" displaytype="normal" edittype="text" style="font:돋움,9,bold;" text="bind:reprntcnt" expr="expr:utlf_isNull(reprntcnt)==true?&quot;1&quot;:reprntcnt" editautoselect="true"/>
  170. <Cell col="20" displaytype="date" style="font:돋움,9;" text="bind:barcdprntdt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="none"/>
  171. <Cell col="21" style="font:돋움,9,bold;" text="bind:orddeptnm"/>
  172. <Cell col="22" style="font:돋움,9,bold;" text="bind:orddrnm"/>
  173. <Cell col="23" style="font:돋움,9,bold;" text="bind:nobcollcd"/>
  174. <Cell col="24" edittype="text" style="font:돋움,9,bold;" text="bind:cmt"/>
  175. <Cell col="25" displaytype="date" style="font:돋움,9,bold;" text="bind:bcolldt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="none"/>
  176. <Cell col="26" style="font:돋움,9,bold;" text="bind:bcollid"/>
  177. <Cell col="27" displaytype="date" style="font:돋움,9,bold;" text="bind:canceldt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="none"/>
  178. <Cell col="28" style="font:돋움,9,bold;" text="bind:cancelid"/>
  179. <Cell col="29" style="font:돋움,9,bold;" text="bind:canceldesc"/>
  180. <Cell col="30" displaytype="date" edittype="date" style="font:돋움,9;" text="bind:spcacptdt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="none"/>
  181. <Cell col="31" displaytype="date" text="bind:lstreptdt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="none"/>
  182. <Cell col="32" text="bind:execprcpuniqno"/>
  183. <Cell col="33" text="bind:prcpgenrflag"/>
  184. <Cell col="34" text="bind:pid"/>
  185. <Cell col="35" text="bind:testlrgkind"/>
  186. <Cell col="36" text="bind:prcpno"/>
  187. <Cell col="37" text="bind:reqfrmno"/>
  188. <Cell col="38" text="bind:tclscd"/>
  189. <Cell col="39" text="bind:spccd"/>
  190. <Cell col="40" text="bind:bcno2"/>
  191. <Cell col="41" text="bind:reqfrmflagcd"/>
  192. <Cell col="42" text="bind:spcseqno"/>
  193. <Cell col="43" text="bind:spcseqnm"/>
  194. <Cell col="44" text="bind:sex"/>
  195. <Cell col="45" text="bind:dage"/>
  196. <Cell col="46" text="bind:wardroom"/>
  197. <Cell col="47" text="bind:prcpdd2"/>
  198. <Cell col="48" text="bind:spcstat"/>
  199. <Cell col="49" text="bind:orgprcpstatcd"/>
  200. <Cell col="50" text="bind:testdeptcd" expr="expr:utlf_isNull(testdeptcd)==true?&quot;-&quot;:&quot;&quot;"/>
  201. <Cell col="51" text="bind:testdeptflagcd" expr="expr:utlf_isNull(testdeptflagcd)==true?&quot;-&quot;:&quot;&quot;"/>
  202. <Cell col="52" text="bind:prcphopedd2"/>
  203. <Cell col="53" text="bind:dnornm"/>
  204. <Cell col="54" text="bind:orddd"/>
  205. <Cell col="55" text="bind:spclrsltformkind"/>
  206. <Cell col="56" text="bind:testreqlnkno"/>
  207. <Cell col="57" text="bind:prcpkindcd"/>
  208. <Cell col="58" text="bind:oproomnm"/>
  209. <Cell col="59" text="bind:prcpdelivefact"/>
  210. </Band>
  211. </Format>
  212. <Format id="format_copy"/>
  213. </Formats>
  214. </Grid>
  215. <Static id="caption1" class="flag_m" position="absolute 299 735 374 755" anchor="left bottom" text="해부병리" style="background:white URL('..\..\commonxp\images\icon_microscope.gif');align:center middle;" positiontype="position"/>
  216. <CheckBox id="chk_prntYN" visible="false" position="absolute 745 545 830 565" anchor="default" text="바코드출력" truevalue="1" falsevalue="" positiontype="position"/>
  217. <Combo id="cbo_prcpkindcd" class="combo_search" visible="false" position="absolute 426 132 536 152" anchor="default" innerdataset="ds_init_lb0139" codecolumn="cd" datacolumn="nm" onitemchanged="grp4_cbo_prcpkindcd_onitemchanged" positiontype="position" index="-1"/>
  218. <Button id="btn_rsltinput" class="btn2" visible="false" position="absolute 714 132 778 152" anchor="top right" text="결과입력" onclick="grp4_btn_rsltinput_onclick" positiontype="position"/>
  219. <ImageViewer id="img2" image="URL('IMG::lis/icnCJ_Label.png')" position="absolute 400 737 415 752" anchor="left bottom" onclick="grp4_img2_onclick" positiontype="position"/>
  220. <Static id="caption6" position="absolute 418 738 503 753" anchor="left bottom" text="바코드출력" positiontype="position"/>
  221. <ImageViewer id="img1" image="URL('IMG::lis/icnCJ_CheHyeol.png')" position="absolute 483 737 498 752" anchor="left bottom" positiontype="position"/>
  222. <Static id="caption3" position="absolute 501 738 586 753" anchor="left bottom" text="채취일시등록" positiontype="position"/>
  223. <Static id="caption9" position="absolute 726 738 811 753" anchor="left bottom" text="검사실접수" positiontype="position"/>
  224. <ImageViewer id="img4" image="URL('..\..\commonxp\images\icnCJ_JubSu.gif')" position="absolute 708 737 723 752" anchor="left bottom" positiontype="position"/>
  225. <ImageViewer id="img3" image="URL('IMG::lis/icnCJ_HwakIn.png')" position="absolute 588 737 603 752" anchor="left bottom" positiontype="position"/>
  226. <Static id="caption12" position="absolute 605 738 706 753" anchor="left bottom" text="가접수(병리확인)" positiontype="position"/>
  227. <Button id="btn_formprnt" enable="false" position="absolute 177 132 264 152" anchor="default" text="" onclick="grp4_btn_formprnt_onclick" positiontype="position"/>
  228. <Button id="btn_set2" class="btn2" visible="true" position="absolute 633 132 670 152" anchor="top right" text="2" onclick="grp4_btn_set2_onclick" positiontype="position"/>
  229. <Button id="btn_set1" class="btn2" visible="true" position="absolute 596 132 632 152" anchor="top right" text="1" onclick="grp4_btn_set1_onclick" positiontype="position"/>
  230. <Button id="btn_set0" class="btn2" visible="true" position="absolute 542 132 595 152" anchor="top right" text="초기화" onclick="grp4_btn_set0_onclick" positiontype="position"/>
  231. <Button id="btn_aprv" class="btn3" visible="false" position="absolute 308 132 412 152" anchor="default" text="유전자동의서" onclick="grp4_btn_aprv_onclick" cancolumnchange="" positiontype="position"/>
  232. <Static id="caption16" position="absolute 216 760 764 780" anchor="right bottom" text="※보관검체 출력 버튼은 수혈용보관검체 바코드 이외의 용도로 사용하지 마시기 바랍니다." style="color:red;align:right middle;font:돋움,9,bold;" visible="true" positiontype="position"/>
  233. <Button id="btn_keepPrnt" class="btn5" position="absolute 771 760 870 780" anchor="right bottom" text="보관검체출력" onclick="grp4_btn_keepPrnt_onclick" visible="true" style="align:center middle;" positiontype="position"/>
  234. <ImageViewer id="img6" image="URL('IMG::lis/icnCJ_End.png')" position="absolute 795 737 810 752" anchor="left bottom" positiontype="position"/>
  235. <Static id="caption13" position="absolute 813 738 865 752" anchor="left bottom" text="검사완료" positiontype="position"/>
  236. <Shape id="line17" class="line_1" position="absolute 0 1 860 1" anchor="default" linetype="horizontal" positiontype="position"/>
  237. <Shape id="line39" class="line_2" position="absolute 0 27 860 27" anchor="default" linetype="horizontal" positiontype="position"/>
  238. <Static id="caption2" class="hand" position="absolute 95 133 176 153" anchor="default" text="동의서 :" positiontype="position"/>
  239. <CheckBox id="chk_barcdyn" taborder="1" text="바코드기준" value="0" truevalue="0" visible="false" position="absolute 745 565 830 585" anchor="default"/>
  240. <Button id="btn_addSpcfCnts00" taborder="2" text="환자특이사항추가" onclick="grp4_btn_addSpcfCnts_onclick" class="btn2" position="absolute 759 2 870 22" anchor="top right"/>
  241. <Button id="btn_chky" taborder="3" text="전체선택" onclick="grp4_btn_chky_onclick" class="btn2" visible="false" position="absolute 801 132 870 152" anchor="top right"/>
  242. <Button id="btn_chkn" taborder="4" text="전체선택해제" onclick="grp4_btn_chkn_onclick" class="btn2" visible="false" position="absolute 781 132 870 152" anchor="top right"/>
  243. <Button id="btn_prnt" taborder="10" class="btn1" enable="false" position="absolute 279 132 299 152" hotkey="F4" onclick="grp4_btn_prnt_onclick" anchor="default" visible="false"/>
  244. <Static id="Static02" text="채혈시주의사항" position="absolute 0 6 134 20" style="background:transparent URL('..\..\..\com\commonxp\images\tit_bullet2.gif');" class="tit_2" anchor="default"/>
  245. <TextArea id="tar_bcollcau" taborder="13" wordwrap="char" readonly="false" position="absolute 0 27 324 120" anchor="left top right" scrollbars="alwaysvert" style="background:URL('theme://images/bg_edit_N.png') stretch 5,5;"/>
  246. <Static id="Static03" text="의뢰의사Remark" class="tit_2" position="absolute 329 6 463 20" style="background:transparent URL('..\..\..\com\commonxp\images\tit_bullet2.gif');" anchor="top right"/>
  247. <Static id="Static04" text="환자특이사항" class="tit_2" position="absolute 600 6 734 20" style="background:transparent URL('..\..\..\com\commonxp\images\tit_bullet2.gif');" anchor="top right"/>
  248. <Static id="caption17" text="처방구분별조회" class="tit_2" position="absolute 312 135 427 155" visible="false" anchor="default"/>
  249. <Button id="btn_set3" taborder="14" text="3" onclick="grp4_btn_set3_onclick" class="btn2" position="absolute 670 132 707 152" anchor="top right"/>
  250. <Shape id="Shape00" position="absolute 0 23 324 27" class="line_10" anchor="left top right"/>
  251. <Shape id="Shape01" class="line_10" position="absolute 327 23 597 27" anchor="top right"/>
  252. <Shape id="Shape02" class="line_10" position="absolute 600 23 870 27" anchor="top right"/>
  253. </Layout>
  254. </Layouts>
  255. </Div>
  256. <TextArea id="tar_prcpDeliveFact" taborder="4" readonly="false" position="absolute 327 27 597 120" anchor="top right" wordwrap="both" style="background:URL('theme://images/bg_edit_N.png') stretch 5,5;" scrollbars="alwaysvert"/>
  257. <TextArea id="tar_barcdTubeCnt" taborder="5" readonly="true" class="left top right" position="absolute 945 69 1272 104" anchor="left top right" visible="false"/>
  258. <TextArea id="tar_spcfcnts" taborder="2" readonly="false" position="absolute 600 27 870 120" anchor="top right" style="caretcolor:#6a543aff;background:URL('theme://images/bg_edit_N.png') stretch 5,5;" wordwrap="both" scrollbars="alwaysvert"/>
  259. </Layout>
  260. </Layouts>
  261. <Objects>
  262. <Dataset id="ds_selectgbn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  263. <ColumnInfo>
  264. <Column id="cd" type="STRING" size="256"/>
  265. <Column id="nm" type="STRING" size="256"/>
  266. </ColumnInfo>
  267. <Rows>
  268. <Row>
  269. <Col id="cd">1</Col>
  270. <Col id="nm">검사분류</Col>
  271. </Row>
  272. <Row>
  273. <Col id="cd">2</Col>
  274. <Col id="nm">시행부서</Col>
  275. </Row>
  276. </Rows>
  277. </Dataset>
  278. <Dataset id="ds_grid_grd_calf" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  279. <ColumnInfo>
  280. <Column id="tclscd" type="STRING"/>
  281. <Column id="tclsnm" type="STRING"/>
  282. <Column id="spccd" type="STRING"/>
  283. <Column id="spcnm" type="STRING"/>
  284. <Column id="acptcnt" type="STRING"/>
  285. <Column id="acpt01" type="STRING"/>
  286. <Column id="acpt02" type="STRING"/>
  287. <Column id="acpt03" type="STRING"/>
  288. <Column id="acpt04" type="STRING"/>
  289. <Column id="acpt05" type="STRING"/>
  290. <Column id="acpt06" type="STRING"/>
  291. <Column id="acpt07" type="STRING"/>
  292. <Column id="acpt08" type="STRING"/>
  293. <Column id="acpt09" type="STRING"/>
  294. <Column id="acpt10" type="STRING"/>
  295. <Column id="apptclscd" type="STRING"/>
  296. <Column id="apptestcnt" type="STRING"/>
  297. <Column id="calformkind" type="STRING"/>
  298. <Column id="calformcnts" type="STRING"/>
  299. <Column id="resndispseq" type="STRING"/>
  300. </ColumnInfo>
  301. </Dataset>
  302. <Dataset id="ds_return" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  303. <ColumnInfo>
  304. <Column id="nm" type="STRING"/>
  305. </ColumnInfo>
  306. </Dataset>
  307. <Dataset id="ds_grd_TestInfoCnts" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grd_TestInfoCnts_oncolumnchanged">
  308. <ColumnInfo>
  309. <Column id="bcgbn" type="STRING"/>
  310. <Column id="bcchk" type="STRING"/>
  311. <Column id="choi" type="STRING"/>
  312. <Column id="choi2" type="STRING"/>
  313. <Column id="bcno" type="STRING"/>
  314. <Column id="prcphopedd" type="STRING"/>
  315. <Column id="prcpdd" type="STRING"/>
  316. <Column id="orddd" type="STRING"/>
  317. <Column id="orddeptcd" type="STRING"/>
  318. <Column id="orddeptnm" type="STRING"/>
  319. <Column id="prcpexecdeptcd" type="STRING"/>
  320. <Column id="prcpexecdeptnm" type="STRING"/>
  321. <Column id="orddrid" type="STRING"/>
  322. <Column id="orddrnm" type="STRING"/>
  323. <Column id="rcpt" type="STRING"/>
  324. <Column id="prcp_flag" type="STRING"/>
  325. <Column id="testlrgcd" type="STRING"/>
  326. <Column id="testmdlcd" type="STRING"/>
  327. <Column id="tclscd" type="STRING"/>
  328. <Column id="tclsscrnm" type="STRING"/>
  329. <Column id="gruptclscd" type="STRING" size="256"/>
  330. <Column id="grupspccd" type="STRING" size="256"/>
  331. <Column id="prcpimg" type="STRING"/>
  332. <Column id="tubecd" type="STRING"/>
  333. <Column id="tubenm" type="STRING"/>
  334. <Column id="spccd" type="STRING"/>
  335. <Column id="spcnm" type="STRING"/>
  336. <Column id="bcollbarcdprntcnt" type="STRING"/>
  337. <Column id="reprntcnt" type="STRING"/>
  338. <Column id="cmt" type="STRING"/>
  339. <Column id="bcolldt" type="STRING"/>
  340. <Column id="spcacptdt" type="STRING"/>
  341. <Column id="lstreptdt" type="STRING"/>
  342. <Column id="canceldt" type="STRING"/>
  343. <Column id="cancelid" type="STRING"/>
  344. <Column id="canceldesc" type="STRING"/>
  345. <Column id="groupno" type="STRING"/>
  346. <Column id="prcpgenrflag" type="STRING"/>
  347. <Column id="pid" type="STRING"/>
  348. <Column id="sectcd" type="STRING"/>
  349. <Column id="tsectcd" type="STRING"/>
  350. <Column id="rgstdd" type="STRING"/>
  351. <Column id="instcd" type="STRING"/>
  352. <Column id="hngnm" type="STRING"/>
  353. <Column id="sex" type="STRING"/>
  354. <Column id="dage" type="STRING"/>
  355. <Column id="brthdd" type="STRING"/>
  356. <Column id="rrgstno1" type="STRING"/>
  357. <Column id="rrgstno2" type="STRING"/>
  358. <Column id="erprcpflag" type="STRING"/>
  359. <Column id="execprcpuniqno" type="STRING"/>
  360. <Column id="spcstat" type="STRING"/>
  361. <Column id="tubeiconimg" type="BLOB"/>
  362. <Column id="testlrgkind" type="STRING"/>
  363. <Column id="prcpno" type="STRING"/>
  364. <Column id="reqfrmno" type="STRING"/>
  365. <Column id="bcno2" type="STRING"/>
  366. <Column id="reqfrmflagcd" type="STRING"/>
  367. <Column id="spcseqno" type="STRING"/>
  368. <Column id="spcseqnm" type="STRING"/>
  369. <Column id="sex" type="STRING"/>
  370. <Column id="dage" type="STRING"/>
  371. <Column id="wardroom" type="STRING"/>
  372. <Column id="prcpdd2" type="STRING"/>
  373. <Column id="orgprcpstatcd" type="STRING"/>
  374. <Column id="testdeptcd" type="STRING"/>
  375. <Column id="testdeptflagcd" type="STRING"/>
  376. <Column id="prcphopedd2" type="STRING"/>
  377. <Column id="rgstdt" type="STRING"/>
  378. <Column id="barcdprntdt" type="STRING"/>
  379. <Column id="dnornm" type="STRING"/>
  380. <Column id="prcpflagcd" type="STRING"/>
  381. <Column id="resncnts" type="STRING"/>
  382. <Column id="spclrsltformkind" type="STRING"/>
  383. <Column id="testreqlnkno" type="STRING"/>
  384. <Column id="prcpkindcd" type="STRING"/>
  385. <Column id="oproomnm" type="STRING"/>
  386. <Column id="prcpdelivefact" type="STRING"/>
  387. <Column id="bcollid" type="STRING"/>
  388. <Column id="prcpconttestyn" type="STRING"/>
  389. <Column id="isolabbrcd" type="STRING"/>
  390. <Column id="barcdprtncnt" type="STRING"/>
  391. <Column id="bedposcnts" type="STRING"/>
  392. <Column id="tclskind" type="STRING"/>
  393. <Column id="lvl" type="STRING"/>
  394. <Column id="prcpreteflag" type="STRING"/>
  395. <Column id="blodculyn" type="STRING"/>
  396. <Column id="grouptestno" type="STRING"/>
  397. <Column id="grouptestnm" type="STRING"/>
  398. <Column id="bcollcau" type="STRING" size="256"/>
  399. <Column id="nobcollcmt" type="STRING" size="256"/>
  400. <Column id="sexage" type="STRING" size="256"/>
  401. <Column id="spclblnm" type="STRING" size="256"/>
  402. <Column id="tubelblnm" type="STRING" size="256"/>
  403. <Column id="tclslblnm" type="STRING" size="256"/>
  404. <Column id="barcodegbn" type="STRING" size="256"/>
  405. <Column id="conttestyn" type="STRING" size="256"/>
  406. <Column id="conttesttm" type="STRING" size="256"/>
  407. <Column id="gbColor" type="STRING" size="256"/>
  408. <Column id="rslt01" type="STRING" size="256"/>
  409. <Column id="rslt02" type="STRING" size="256"/>
  410. <Column id="nobcollcd" type="STRING" size="256"/>
  411. <Column id="blank1" type="STRING" size="256"/>
  412. <Column id="blank2" type="STRING" size="256"/>
  413. <Column id="blank3" type="STRING" size="256"/>
  414. <Column id="blank4" type="STRING" size="256"/>
  415. <Column id="groupyn" type="STRING" size="256"/>
  416. <Column id="tubenm2" type="STRING" size="256"/>
  417. <Column id="spcseqcmt" type="STRING" size="256"/>
  418. </ColumnInfo>
  419. </Dataset>
  420. <Dataset id="ds_TestspcfInfo" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  421. <ColumnInfo>
  422. <Column id="bcollcau" type="STRING"/>
  423. <Column id="prcpdelivefact" type="STRING"/>
  424. <Column id="spcfcnts" type="STRING"/>
  425. <Column id="scrn" type="STRING"/>
  426. <Column id="scanyn" type="STRING"/>
  427. <Column id="formcd" type="STRING"/>
  428. <Column id="cretno" type="STRING"/>
  429. <Column id="cretno" type="STRING"/>
  430. <Column id="treatno" type="STRING"/>
  431. </ColumnInfo>
  432. </Dataset>
  433. <Dataset id="ds_roundinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  434. <ColumnInfo>
  435. <Column id="roundflag" type="STRING"/>
  436. </ColumnInfo>
  437. </Dataset>
  438. <Dataset id="ds_algytestlist2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  439. <ColumnInfo>
  440. <Column id="prcpdd" type="STRING"/>
  441. <Column id="testlist" type="STRING"/>
  442. </ColumnInfo>
  443. </Dataset>
  444. <Dataset id="ds_hospenvinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  445. <ColumnInfo>
  446. <Column id="instcd" type="STRING"/>
  447. <Column id="lendrtnterm" type="STRING"/>
  448. <Column id="recvqualmthdcd" type="STRING"/>
  449. <Column id="plgydeptcd" type="STRING"/>
  450. <Column id="plgyteamcd" type="STRING"/>
  451. <Column id="doctjobgradcd" type="STRING"/>
  452. <column id="teamjobgradcd" type="STRING"/>
  453. <column id="csteeqmtip" type="STRING"/>
  454. <column id="csteeqmtport" type="STRING"/>
  455. <column id="slideqmtip" type="STRING"/>
  456. <column id="norcptacptyn" type="STRING"/>
  457. <column id="slidbceqmtip" type="STRING"/>
  458. <column id="acptreaddr" type="STRING"/>
  459. <column id="slidbceqmtip2" type="STRING"/>
  460. <column id="slidbceqmtport2" type="STRING"/>
  461. <column id="repttitl" type="STRING"/>
  462. <column id="repttitl2" type="STRING"/>
  463. <column id="plgyrecroom1" type="STRING"/>
  464. <column id="plgyrecroom2" type="STRING"/>
  465. <column id="ptnoacptflag" type="STRING"/>
  466. <column id="autoacptflagcd" type="STRING"/>
  467. </ColumnInfo>
  468. </Dataset>
  469. <Dataset id="ds_infdisinfolist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  470. <ColumnInfo>
  471. <Column id="lglydisnm" type="STRING"/>
  472. <Column id="deptnm" type="STRING"/>
  473. <Column id="writ" type="STRING"/>
  474. <Column id="reptdd" type="STRING"/>
  475. <Column id="dispfromdt" type="STRING"/>
  476. <Column id="dethyn" type="STRING"/>
  477. </ColumnInfo>
  478. </Dataset>
  479. <Dataset id="ds_patNmBarCdPrint" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  480. <ColumnInfo>
  481. <Column id="pid" type="STRING"/>
  482. <Column id="patnm" type="STRING"/>
  483. <Column id="patsexage" type="STRING"/>
  484. <Column id="rrgstno" type="STRING"/>
  485. <Column id="printdt" type="STRING"/>
  486. <Column id="wardroom" type="STRING"/>
  487. <Column id="orddeptcd" type="STRING"/>
  488. </ColumnInfo>
  489. </Dataset>
  490. <Dataset id="ds_tclsnm" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  491. <ColumnInfo>
  492. <Column id="tclsscrnnm" type="STRING"/>
  493. <Column id="tclscd" type="STRING"/>
  494. <Column id="bcno" type="STRING"/>
  495. <Column id="reptrslt" type="STRING"/>
  496. <Column id="rsltunit" type="STRING"/>
  497. <Column id="testlrgkind" type="STRING"/>
  498. <Column id="execdeptcd" type="STRING"/>
  499. <Column id="ref" type="STRING"/>
  500. <Column id="prcpdd" type="STRING"/>
  501. <Column id="spccd" type="STRING"/>
  502. <Column id="spcstat" type="STRING"/>
  503. </ColumnInfo>
  504. </Dataset>
  505. <Dataset id="ds_KeepBcnoPrint" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  506. <ColumnInfo>
  507. <Column id="roomcd" type="STRING" size="256" sumtext="병실코드"/>
  508. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  509. <Column id="patnm" type="STRING" size="256" sumtext="환자명"/>
  510. <Column id="patsex" type="STRING" size="256" sumtext="환자성별"/>
  511. <Column id="patage" type="STRING" size="256" sumtext="환자나이"/>
  512. <Column id="orddeptnm" type="STRING" size="256" sumtext="진료과"/>
  513. <Column id="bcollnm" type="STRING" size="256" sumtext="채혈자"/>
  514. <Column id="bcolldt" type="STRING" size="256" sumtext="채혈일시"/>
  515. <Column id="dt" type="STRING" size="256" sumtext="현재일시"/>
  516. <Column id="btype" type="STRING" size="256" sumtext="혈액형"/>
  517. <Column id="infcinfolist" type="STRING" size="256" sumtext="감염정보"/>
  518. <Column id="bggc" type="STRING" size="256"/>
  519. </ColumnInfo>
  520. </Dataset>
  521. <Dataset id="ds_reqfrminfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  522. <ColumnInfo>
  523. <Column id="pid" type="STRING"/>
  524. <Column id="prcpcd" type="STRING"/>
  525. <Column id="spccd" type="STRING"/>
  526. <Column id="reqno" type="STRING"/>
  527. <Column id="prcpnm" type="STRING"/>
  528. <Column id="spcnm" type="STRING"/>
  529. <Column id="prcpdd" type="STRING"/>
  530. <Column id="prcpno" type="STRING"/>
  531. <Column id="execprcpuniqno" type="STRING"/>
  532. <Column id="workflagcd" type="STRING"/>
  533. <Column id="xrwGBN" type="STRING"/>
  534. <Column id="bcbgn" type="STRING"/>
  535. <Column id="prcpstatcd" type="STRING"/>
  536. <Column id="spccnt" type="STRING"/>
  537. <Column id="spcseqno" type="STRING"/>
  538. <Column id="spcseqnm" type="STRING"/>
  539. <Column id="spcstrno" type="STRING"/>
  540. <Column id="spcendno" type="STRING"/>
  541. <Column id="bcgbn" type="STRING" size="256"/>
  542. <Column id="reqfrmflagcd" type="STRING" size="256"/>
  543. <Column id="spccnt" type="STRING" size="256"/>
  544. </ColumnInfo>
  545. </Dataset>
  546. <Dataset id="ds_strip" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  547. <ColumnInfo>
  548. <Column id="prcpdd" type="STRING"/>
  549. <Column id="bcno" type="STRING"/>
  550. <Column id="testcd" type="STRING"/>
  551. </ColumnInfo>
  552. </Dataset>
  553. <Dataset id="ds_plgybarcdinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  554. <ColumnInfo>
  555. <column id="instcd" type="STRING"/>
  556. <column id="spctrandd" type="STRING"/>
  557. <column id="spctranno" type="STRING"/>
  558. <column id="spctranseqno" type="STRING"/>
  559. <column id="pid" type="STRING"/>
  560. <column id="patnm" type="STRING"/>
  561. <column id="sexage" type="STRING"/>
  562. <column id="orddeptnm" type="STRING"/>
  563. <column id="wardroom" type="STRING"/>
  564. <column id="prcpdd" type="STRING"/>
  565. <column id="spccd" type="STRING"/>
  566. <column id="spcnm" type="STRING"/>
  567. <column id="spcbarcdno" type="STRING"/>
  568. <column id="prcpdispnm" type="STRING"/>
  569. <column id="prcpdispnm2" type="STRING"/>
  570. <column id="spcdispnm" type="STRING"/>
  571. <column id="orddrnm" type="STRING"/>
  572. <column id="isolabbrcd" type="STRING"/>
  573. <column id="prcphopedt" type="STRING"/>
  574. <column id="bedposcnts" type="STRING"/>
  575. <column id="prcpgenrflag" type="STRING"/>
  576. </ColumnInfo>
  577. <Rows>
  578. <Row/>
  579. </Rows>
  580. </Dataset>
  581. <Dataset id="ds_data_resncd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" onrowposchanged="ds_grid_grd_rslt_onrowposchanged">
  582. <ColumnInfo>
  583. <column id="resncd" type="STRING" size="256"/>
  584. <column id="resndesc" type="STRING" size="256"/>
  585. <Column id="resncdkind" type="STRING" size="256"/>
  586. </ColumnInfo>
  587. </Dataset>
  588. <Dataset id="ds_errorinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  589. <Dataset id="ds_urin" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  590. <Dataset id="ds_bldcyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  591. <Dataset id="ds_msg" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  592. <Dataset id="ds_CrossMatchinBarCodeInfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  593. <Dataset id="ds_data_nobcollcmt" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  594. <Dataset id="ds_data_tubeCnt" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  595. <ColumnInfo>
  596. <Column id="prcpexecdeptnm" type="STRING" size="256"/>
  597. <Column id="tubecd" type="STRING" size="256"/>
  598. <Column id="tubenm" type="STRING" size="256"/>
  599. <Column id="cnt" type="STRING" size="256"/>
  600. <Column id="prcpexecdeptcd" type="STRING" size="256"/>
  601. </ColumnInfo>
  602. </Dataset>
  603. <Dataset id="ds_tube" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  604. <ColumnInfo>
  605. <Column id="prcpexecdeptnm" type="STRING" size="256"/>
  606. <Column id="tubenm" type="STRING" size="256"/>
  607. <Column id="cnt" type="STRING" size="256"/>
  608. </ColumnInfo>
  609. <Rows>
  610. <Row/>
  611. <Row/>
  612. <Row/>
  613. <Row/>
  614. </Rows>
  615. </Dataset>
  616. <Dataset id="ds_iemr" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  617. <ColumnInfo>
  618. <Column id="docucd"/>
  619. <Column id="treatno"/>
  620. </ColumnInfo>
  621. <Rows>
  622. <Row/>
  623. </Rows>
  624. </Dataset>
  625. <Dataset id="ds_uuee" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  626. <ColumnInfo>
  627. <Column id="scrnid" type="STRING" size="256"/>
  628. <Column id="compsnm" type="STRING" size="256"/>
  629. <Column id="compscnts" type="STRING" size="256"/>
  630. <Column id="compsrefcnts" type="STRING" size="256"/>
  631. <Column id="compssizecnts" type="STRING" size="256"/>
  632. </ColumnInfo>
  633. </Dataset>
  634. <Dataset id="ds_send_uuee" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  635. <ColumnInfo>
  636. <Column id="flag" type="STRING" size="256"/>
  637. <column id="scrnid" type="STRING" size="256"/>
  638. <column id="compsnm" type="STRING" size="256"/>
  639. <Column id="instcd" type="STRING" size="256"/>
  640. <column id="compscnts" type="STRING" size="256"/>
  641. <column id="compsrefcnts" type="STRING" size="256"/>
  642. <column id="compssizecnts" type="STRING" size="256"/>
  643. </ColumnInfo>
  644. </Dataset>
  645. <Dataset id="ds_consent" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  646. <ColumnInfo>
  647. <Column id="stat" type="STRING" size="0"/>
  648. <Column id="scrn" type="STRING" size="0"/>
  649. <Column id="scanyn" type="STRING" size="0"/>
  650. <Column id="formcd" type="STRING" size="0"/>
  651. <Column id="cretno" type="STRING" size="0"/>
  652. <Column id="treatno" type="STRING" size="0"/>
  653. <Column id="execprcpuniqno" type="STRING" size="0"/>
  654. </ColumnInfo>
  655. </Dataset>
  656. <Dataset id="ds_temp_consent" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  657. <ColumnInfo>
  658. <Column id="stat" type="STRING" size="0"/>
  659. <Column id="scrn" type="STRING" size="0"/>
  660. <Column id="scanyn" type="STRING" size="0"/>
  661. <Column id="formcd" type="STRING" size="0"/>
  662. <Column id="cretno" type="STRING" size="0"/>
  663. <Column id="treatno" type="STRING" size="0"/>
  664. <Column id="execprcpuniqno" type="STRING" size="0"/>
  665. </ColumnInfo>
  666. </Dataset>
  667. <Dataset id="ds_etc_uuee" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  668. <ColumnInfo>
  669. <Column id="scrnid" type="STRING" size="256"/>
  670. <Column id="compsnm" type="STRING" size="256"/>
  671. <Column id="compscnts" type="STRING" size="256"/>
  672. <Column id="compsrefcnts" type="STRING" size="256"/>
  673. <Column id="compssizecnts" type="STRING" size="256"/>
  674. <Column id="tubenm2" type="STRING" size="256"/>
  675. </ColumnInfo>
  676. <Rows>
  677. <Row>
  678. <Col id="compsnm">grp4.grd_TestInfoCnts</Col>
  679. <Col id="compsrefcnts">-</Col>
  680. <Col id="compscnts">currow+1^blank3^prcpdd^blank4^blank1^tclsscrnm^bcno^blank2^rslt01^rslt02^prcphopedd^rgstdt^rcpt^prcpkindcd^prcpimg^tubeiconimg^tubenm^spcnm^bcgbn^choi^tclscd^bcollcau^erprcpflag^bcollbarcdprntcnt^reprntcnt^prcpdelivefact^orddeptnm^orddrnm^bcolldt^lstreptdt^prcpexecdeptnm^barcdprntdt^nobcollcd^nobcollcd^nobcollcmt^cmt^bcollid^canceldt^cancelid^canceldesc^spcacptdt^execprcpuniqno^prcpgenrflag^pid^testlrgkind^prcpno^reqfrmno^tclscd^spccd^bcno2^reqfrmflagcd^spcseqno^spcseqnm^sex^dage^wardroom^prcpdd2^spcstat^orgprcpstatcd^testdeptcd^testdeptflagcd^prcphopedd2^dnornm^orddd^spclrsltformkind^testreqlnkno^prcpkindcd^oproomnm^isolabbrcd^barcdprtncnt^lvl</Col>
  681. <Col id="compssizecnts">30^0^100^0^17^135^0^0^0^0^0^0^0^0^0^0^75^85^28^31^77^140^35^50^50^100^45^65^100^100^100^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0</Col>
  682. </Row>
  683. </Rows>
  684. </Dataset>
  685. <Dataset id="ds_reagentbarcdinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  686. <Dataset id="ds_copy_barcodeinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  687. <Dataset id="ds_copy_plgybarcdinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  688. <Dataset id="ds_copy_errorinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  689. <Dataset id="ds_bfcontrol" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  690. <ColumnInfo>
  691. <Column id="bfcontrolyn" type="STRING" size="256"/>
  692. </ColumnInfo>
  693. <Rows>
  694. <Row/>
  695. </Rows>
  696. </Dataset>
  697. <Dataset id="ds_barcdprntsetup" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  698. <ColumnInfo>
  699. <Column id="prntsetupinfo" type="STRING" size="255"/>
  700. <Column id="macaddr" type="STRING" size="255"/>
  701. </ColumnInfo>
  702. <Rows>
  703. <Row/>
  704. </Rows>
  705. </Dataset>
  706. <Dataset id="ds_data_setupinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  707. <ColumnInfo>
  708. <Column id="dsvaluepath" type="STRING" size="256"/>
  709. <Column id="prntkind" type="STRING" size="256"/>
  710. <Column id="commkind" type="STRING" size="256"/>
  711. <Column id="rexgbn" type="STRING" size="256"/>
  712. </ColumnInfo>
  713. <Rows>
  714. <Row/>
  715. </Rows>
  716. </Dataset>
  717. <Dataset id="ds_data_blank" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  718. <ColumnInfo>
  719. <Column id="dsvaluepath" type="STRING" size="256"/>
  720. <Column id="left" type="STRING" size="256"/>
  721. <Column id="top" type="STRING" size="256"/>
  722. <Column id="b472size" type="STRING" size="256"/>
  723. </ColumnInfo>
  724. </Dataset>
  725. <Dataset id="ds_data_comm01" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  726. <ColumnInfo>
  727. <Column id="setupval" type="STRING" size="256"/>
  728. </ColumnInfo>
  729. </Dataset>
  730. <Dataset id="ds_data_comm02" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  731. <ColumnInfo>
  732. <Column id="dsvaluepath" type="STRING" size="256"/>
  733. <Column id="comm" type="STRING" size="256"/>
  734. <Column id="databit" type="STRING" size="256"/>
  735. <Column id="stopbit" type="STRING" size="256"/>
  736. <Column id="baudrate" type="STRING" size="256"/>
  737. <Column id="parity" type="STRING" size="256"/>
  738. </ColumnInfo>
  739. <Rows>
  740. <Row>
  741. <Col id="dsvaluepath">/setupinfo</Col>
  742. <Col id="comm">2</Col>
  743. <Col id="databit">8</Col>
  744. <Col id="stopbit">1</Col>
  745. <Col id="baudrate">9600</Col>
  746. <Col id="parity">n</Col>
  747. </Row>
  748. </Rows>
  749. </Dataset>
  750. <Dataset id="ds_data_comm03" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  751. <ColumnInfo>
  752. <Column id="dsvaluepath" type="STRING" size="256"/>
  753. <Column id="comm" type="STRING" size="256"/>
  754. <Column id="databit" type="STRING" size="256"/>
  755. <Column id="stopbit" type="STRING" size="256"/>
  756. <Column id="baudrate" type="STRING" size="256"/>
  757. <Column id="parity" type="STRING" size="256"/>
  758. <Column id="daegiip" type="STRING" size="256"/>
  759. </ColumnInfo>
  760. <Rows>
  761. <Row>
  762. <Col id="dsvaluepath">/setupinfo</Col>
  763. <Col id="comm">2</Col>
  764. <Col id="databit">8</Col>
  765. <Col id="stopbit">1</Col>
  766. <Col id="baudrate">9600</Col>
  767. <Col id="parity">n</Col>
  768. </Row>
  769. </Rows>
  770. </Dataset>
  771. <Dataset id="ds_barcdprntsetup_genr" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  772. <ColumnInfo>
  773. <Column id="prntsetupinfo" type="STRING" size="255"/>
  774. <Column id="macaddr" type="STRING" size="255"/>
  775. </ColumnInfo>
  776. </Dataset>
  777. <Dataset id="ds_barcdprntsetup_auto" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  778. <ColumnInfo>
  779. <Column id="prntsetupinfo" type="STRING" size="255"/>
  780. <Column id="macaddr" type="STRING" size="255"/>
  781. </ColumnInfo>
  782. </Dataset>
  783. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  784. <ColumnInfo>
  785. <Column id="testdeptcd" type="STRING" size="256"/>
  786. </ColumnInfo>
  787. <Rows>
  788. <Row/>
  789. </Rows>
  790. </Dataset>
  791. <Dataset id="ds_grd_TestInfoCnts00" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grd_TestInfoCnts_oncolumnchanged">
  792. <ColumnInfo>
  793. <Column id="bcgbn" type="STRING"/>
  794. <Column id="bcchk" type="STRING"/>
  795. <Column id="choi" type="STRING"/>
  796. <Column id="choi2" type="STRING"/>
  797. <Column id="bcno" type="STRING"/>
  798. <Column id="prcphopedd" type="STRING"/>
  799. <Column id="prcpdd" type="STRING"/>
  800. <Column id="orddd" type="STRING"/>
  801. <Column id="orddeptcd" type="STRING"/>
  802. <Column id="orddeptnm" type="STRING"/>
  803. <Column id="prcpexecdeptcd" type="STRING"/>
  804. <Column id="prcpexecdeptnm" type="STRING"/>
  805. <Column id="orddrid" type="STRING"/>
  806. <Column id="orddrnm" type="STRING"/>
  807. <Column id="rcpt" type="STRING"/>
  808. <Column id="prcp_flag" type="STRING"/>
  809. <Column id="testlrgcd" type="STRING"/>
  810. <Column id="testmdlcd" type="STRING"/>
  811. <Column id="tclscd" type="STRING"/>
  812. <Column id="tclsscrnm" type="STRING"/>
  813. <Column id="gruptclscd" type="STRING" size="256"/>
  814. <Column id="grupspccd" type="STRING" size="256"/>
  815. <Column id="prcpimg" type="STRING"/>
  816. <Column id="tubecd" type="STRING"/>
  817. <Column id="tubenm" type="STRING"/>
  818. <Column id="spccd" type="STRING"/>
  819. <Column id="spcnm" type="STRING"/>
  820. <Column id="bcollbarcdprntcnt" type="STRING"/>
  821. <Column id="reprntcnt" type="STRING"/>
  822. <Column id="cmt" type="STRING"/>
  823. <Column id="bcolldt" type="STRING"/>
  824. <Column id="spcacptdt" type="STRING"/>
  825. <Column id="lstreptdt" type="STRING"/>
  826. <Column id="canceldt" type="STRING"/>
  827. <Column id="cancelid" type="STRING"/>
  828. <Column id="canceldesc" type="STRING"/>
  829. <Column id="groupno" type="STRING"/>
  830. <Column id="prcpgenrflag" type="STRING"/>
  831. <Column id="pid" type="STRING"/>
  832. <Column id="sectcd" type="STRING"/>
  833. <Column id="tsectcd" type="STRING"/>
  834. <Column id="rgstdd" type="STRING"/>
  835. <Column id="instcd" type="STRING"/>
  836. <Column id="hngnm" type="STRING"/>
  837. <Column id="sex" type="STRING"/>
  838. <Column id="dage" type="STRING"/>
  839. <Column id="brthdd" type="STRING"/>
  840. <Column id="rrgstno1" type="STRING"/>
  841. <Column id="rrgstno2" type="STRING"/>
  842. <Column id="erprcpflag" type="STRING"/>
  843. <Column id="execprcpuniqno" type="STRING"/>
  844. <Column id="spcstat" type="STRING"/>
  845. <Column id="tubeiconimg" type="BLOB"/>
  846. <Column id="testlrgkind" type="STRING"/>
  847. <Column id="prcpno" type="STRING"/>
  848. <Column id="reqfrmno" type="STRING"/>
  849. <Column id="bcno2" type="STRING"/>
  850. <Column id="reqfrmflagcd" type="STRING"/>
  851. <Column id="spcseqno" type="STRING"/>
  852. <Column id="spcseqnm" type="STRING"/>
  853. <Column id="sex" type="STRING"/>
  854. <Column id="dage" type="STRING"/>
  855. <Column id="wardroom" type="STRING"/>
  856. <Column id="prcpdd2" type="STRING"/>
  857. <Column id="orgprcpstatcd" type="STRING"/>
  858. <Column id="testdeptcd" type="STRING"/>
  859. <Column id="testdeptflagcd" type="STRING"/>
  860. <Column id="prcphopedd2" type="STRING"/>
  861. <Column id="rgstdt" type="STRING"/>
  862. <Column id="barcdprntdt" type="STRING"/>
  863. <Column id="dnornm" type="STRING"/>
  864. <Column id="prcpflagcd" type="STRING"/>
  865. <Column id="resncnts" type="STRING"/>
  866. <Column id="spclrsltformkind" type="STRING"/>
  867. <Column id="testreqlnkno" type="STRING"/>
  868. <Column id="prcpkindcd" type="STRING"/>
  869. <Column id="oproomnm" type="STRING"/>
  870. <Column id="prcpdelivefact" type="STRING"/>
  871. <Column id="bcollid" type="STRING"/>
  872. <Column id="prcpconttestyn" type="STRING"/>
  873. <Column id="isolabbrcd" type="STRING"/>
  874. <Column id="barcdprtncnt" type="STRING"/>
  875. <Column id="bedposcnts" type="STRING"/>
  876. <Column id="tclskind" type="STRING"/>
  877. <Column id="lvl" type="STRING"/>
  878. <Column id="prcpreteflag" type="STRING"/>
  879. <Column id="blodculyn" type="STRING"/>
  880. <Column id="grouptestno" type="STRING"/>
  881. <Column id="grouptestnm" type="STRING"/>
  882. <Column id="bcollcau" type="STRING" size="256"/>
  883. <Column id="nobcollcmt" type="STRING" size="256"/>
  884. <Column id="sexage" type="STRING" size="256"/>
  885. <Column id="spclblnm" type="STRING" size="256"/>
  886. <Column id="tubelblnm" type="STRING" size="256"/>
  887. <Column id="tclslblnm" type="STRING" size="256"/>
  888. <Column id="barcodegbn" type="STRING" size="256"/>
  889. <Column id="conttestyn" type="STRING" size="256"/>
  890. <Column id="conttesttm" type="STRING" size="256"/>
  891. <Column id="gbColor" type="STRING" size="256"/>
  892. <Column id="rslt01" type="STRING" size="256"/>
  893. <Column id="rslt02" type="STRING" size="256"/>
  894. <Column id="nobcollcd" type="STRING" size="256"/>
  895. <Column id="blank1" type="STRING" size="256"/>
  896. <Column id="blank2" type="STRING" size="256"/>
  897. <Column id="blank3" type="STRING" size="256"/>
  898. <Column id="blank4" type="STRING" size="256"/>
  899. <Column id="groupyn" type="STRING" size="256"/>
  900. <Column id="tubenm2" type="STRING" size="256"/>
  901. <Column id="spcseqcmt" type="STRING" size="256"/>
  902. </ColumnInfo>
  903. </Dataset>
  904. <Dataset id="ds_barcodeinfo" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  905. <ColumnInfo>
  906. <Column id="tsectlblnm" type="STRING" size="256" sumtext="검사계라벨명"/>
  907. <Column id="bcno" type="STRING" size="256" sumtext="검체번호"/>
  908. <Column id="barcdprntdt" type="STRING" size="256" sumtext="라벨발행일자"/>
  909. <Column id="patnm" type="STRING" size="256" sumtext="환자성명"/>
  910. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  911. <Column id="sexage" type="STRING" size="256" sumtext="성별연령"/>
  912. <Column id="deptroom" type="STRING" size="256" sumtext="진료과병실"/>
  913. <Column id="spclblnm" type="STRING" size="256" sumtext="검체라벨명"/>
  914. <Column id="tubelblnm" type="STRING" size="256" sumtext="용기라벨명"/>
  915. <Column id="secttsect" type="STRING" size="256" sumtext="계검사계"/>
  916. <Column id="tclslblnmlist" type="STRING" size="256" sumtext="검사라벨명"/>
  917. <Column id="infcinfolist" type="STRING" size="256" sumtext="감염정보"/>
  918. <Column id="erprcpflag" type="STRING" size="256" sumtext="응급구분"/>
  919. <Column id="tclscd" type="STRING" size="256" sumtext="검사코드"/>
  920. <Column id="bcollbarcdprntcnt" type="STRING" size="256" sumtext="바코드수"/>
  921. <Column id="dnornm" type="STRING" size="256" sumtext="공여자명"/>
  922. <Column id="spcacptbarcdprntcnt" type="STRING" size="256"/>
  923. <Column id="microbarcdprntcnt" type="STRING" size="256"/>
  924. <!-- auto label -->
  925. <Column id="sex" type="STRING" size="256" sumtext="성별"/>
  926. <Column id="age" type="STRING" size="256" sumtext="연령"/>
  927. <Column id="deptnm" type="STRING" size="256" sumtext="진료과"/>
  928. <Column id="wardroom" type="STRING" size="256" sumtext="병동/병실"/>
  929. <Column id="lpflag" type="STRING" size="256" sumtext="진검병리구분"/>
  930. <Column id="tubecd" type="STRING" size="256" sumtext="용기코드"/>
  931. <Column id="tclscdlist" type="STRING" size="256" sumtext="검사코드리스트"/>
  932. <Column id="spcfcntslist" type="STRING" size="256" sumtext="환자특이사항"/>
  933. <Column id="bcollcau" type="STRING" size="256" sumtext="환자특이사항"/>
  934. <!-- 병리 auto label -->
  935. <Column id="spctranseqno" type="STRING" size="256" sumtext="검체순번"/>
  936. <Column id="spctotalcnt" type="STRING" size="256" sumtext="검체토탈갯수"/>
  937. <Column id="orgprcpnm" type="STRING" size="256" sumtext="원처방명"/>
  938. <Column id="addprcpnm" type="STRING" size="256" sumtext="추가처방명"/>
  939. <Column id="orddrnm" type="STRING" size="256" sumtext="진료의명"/>
  940. <Column id="prcpdd" type="STRING" size="256" sumtext="처방일자"/>
  941. <Column id="prcphopedd" type="STRING" size="256" sumtext="진료의명"/>
  942. <Column id="bedposcnts" type="STRING" size="256" sumtext="처방일자"/>
  943. <Column id="bedposcnts" type="STRING" size="256" sumtext="처방일자"/>
  944. <!-- 2.0 코멘트 추가 -->
  945. <Column id="prcpdelivefact" type="STRING" size="256" sumtext="코멘트"/>
  946. <Column id="tsectlblnm2" type="STRING" size="256"/>
  947. <Column id="patnm2" type="STRING" size="256"/>
  948. <Column id="tclslblnmlist2" type="STRING" size="256"/>
  949. <Column id="cntflag" type="STRING" size="256"/>
  950. </ColumnInfo>
  951. <Rows>
  952. <Row/>
  953. </Rows>
  954. </Dataset>
  955. <Dataset id="ds_main_KeepBcnoPrint_printinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  956. <ColumnInfo>
  957. <Column id="roomcd" type="STRING" size="256" sumtext="병실코드"/>
  958. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  959. <Column id="patnm" type="STRING" size="256" sumtext="환자명"/>
  960. <Column id="patsex" type="STRING" size="256" sumtext="환자성별"/>
  961. <Column id="patage" type="STRING" size="256" sumtext="환자나이"/>
  962. <Column id="orddeptnm" type="STRING" size="256" sumtext="진료과"/>
  963. <Column id="bcollnm" type="STRING" size="256" sumtext="채혈자"/>
  964. <Column id="bcolldt" type="STRING" size="256" sumtext="채혈일시"/>
  965. <Column id="dt" type="STRING" size="256" sumtext="현재일시"/>
  966. <Column id="btype" type="STRING" size="256" sumtext="혈액형"/>
  967. <Column id="infcinfolist" type="STRING" size="256" sumtext="감염정보"/>
  968. </ColumnInfo>
  969. </Dataset>
  970. <Dataset id="ds_data_setupinfo_auto" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  971. <ColumnInfo>
  972. <Column id="dsvaluepath" type="STRING" size="256"/>
  973. <Column id="prntkind" type="STRING" size="256"/>
  974. <Column id="commkind" type="STRING" size="256"/>
  975. <Column id="rexgbn" type="STRING" size="256"/>
  976. </ColumnInfo>
  977. <Rows>
  978. <Row/>
  979. </Rows>
  980. </Dataset>
  981. <Dataset id="ds_data_setupinfo_genr" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  982. <ColumnInfo>
  983. <Column id="dsvaluepath" type="STRING" size="256"/>
  984. <Column id="prntkind" type="STRING" size="256"/>
  985. <Column id="commkind" type="STRING" size="256"/>
  986. <Column id="rexgbn" type="STRING" size="256"/>
  987. </ColumnInfo>
  988. <Rows>
  989. <Row/>
  990. </Rows>
  991. </Dataset>
  992. <Dataset id="ds_canceldata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  993. <ColumnInfo>
  994. <Column id="data1" type="STRING" size="256"/>
  995. <Column id="data2" type="STRING" size="256"/>
  996. <Column id="data3" type="STRING" size="256"/>
  997. </ColumnInfo>
  998. <Rows>
  999. <Row/>
  1000. </Rows>
  1001. </Dataset>
  1002. <Dataset id="ds_data_setupinfo_genr_comm01" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1003. <ColumnInfo>
  1004. <Column id="dsvaluepath" type="STRING" size="256"/>
  1005. <Column id="prntkind" type="STRING" size="256"/>
  1006. <Column id="commkind" type="STRING" size="256"/>
  1007. <Column id="rexgbn" type="STRING" size="256"/>
  1008. </ColumnInfo>
  1009. <Rows>
  1010. <Row/>
  1011. </Rows>
  1012. </Dataset>
  1013. <Dataset id="ds_data_setupinfo_genr_comm02" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1014. <ColumnInfo>
  1015. <Column id="dsvaluepath" type="STRING" size="256"/>
  1016. <Column id="prntkind" type="STRING" size="256"/>
  1017. <Column id="commkind" type="STRING" size="256"/>
  1018. <Column id="rexgbn" type="STRING" size="256"/>
  1019. </ColumnInfo>
  1020. <Rows>
  1021. <Row/>
  1022. </Rows>
  1023. </Dataset>
  1024. <Dataset id="ds_data_setupinfo_genr_comm03" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1025. <ColumnInfo>
  1026. <Column id="dsvaluepath" type="STRING" size="256"/>
  1027. <Column id="prntkind" type="STRING" size="256"/>
  1028. <Column id="commkind" type="STRING" size="256"/>
  1029. <Column id="rexgbn" type="STRING" size="256"/>
  1030. </ColumnInfo>
  1031. <Rows>
  1032. <Row/>
  1033. </Rows>
  1034. </Dataset>
  1035. <Dataset id="ds_data_setupinfo_auto_comm01" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1036. <ColumnInfo>
  1037. <Column id="dsvaluepath" type="STRING" size="256"/>
  1038. <Column id="prntkind" type="STRING" size="256"/>
  1039. <Column id="commkind" type="STRING" size="256"/>
  1040. <Column id="rexgbn" type="STRING" size="256"/>
  1041. </ColumnInfo>
  1042. <Rows>
  1043. <Row/>
  1044. </Rows>
  1045. </Dataset>
  1046. <Dataset id="ds_data_setupinfo_auto_comm02" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1047. <ColumnInfo>
  1048. <Column id="dsvaluepath" type="STRING" size="256"/>
  1049. <Column id="prntkind" type="STRING" size="256"/>
  1050. <Column id="commkind" type="STRING" size="256"/>
  1051. <Column id="rexgbn" type="STRING" size="256"/>
  1052. </ColumnInfo>
  1053. <Rows>
  1054. <Row/>
  1055. </Rows>
  1056. </Dataset>
  1057. <Dataset id="ds_data_setupinfo_auto_comm03" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1058. <ColumnInfo>
  1059. <Column id="dsvaluepath" type="STRING" size="256"/>
  1060. <Column id="prntkind" type="STRING" size="256"/>
  1061. <Column id="commkind" type="STRING" size="256"/>
  1062. <Column id="rexgbn" type="STRING" size="256"/>
  1063. </ColumnInfo>
  1064. <Rows>
  1065. <Row/>
  1066. </Rows>
  1067. </Dataset>
  1068. <Dataset id="ds_data_setupinfo_genr_blank" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1069. <ColumnInfo>
  1070. <Column id="dsvaluepath" type="STRING" size="256"/>
  1071. <Column id="prntkind" type="STRING" size="256"/>
  1072. <Column id="commkind" type="STRING" size="256"/>
  1073. <Column id="rexgbn" type="STRING" size="256"/>
  1074. </ColumnInfo>
  1075. <Rows>
  1076. <Row/>
  1077. </Rows>
  1078. </Dataset>
  1079. <Dataset id="ds_data_setupinfo_auto_blank" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  1080. <ColumnInfo>
  1081. <Column id="dsvaluepath" type="STRING" size="256"/>
  1082. <Column id="prntkind" type="STRING" size="256"/>
  1083. <Column id="commkind" type="STRING" size="256"/>
  1084. <Column id="rexgbn" type="STRING" size="256"/>
  1085. </ColumnInfo>
  1086. <Rows>
  1087. <Row/>
  1088. </Rows>
  1089. </Dataset>
  1090. </Objects>
  1091. <Bind>
  1092. <BindItem id="item2" compid="grp4.cbo_prcpkindcd" propid="value" datasetid="ds_johoi" columnid="prcpkindcd"/>
  1093. <BindItem id="item1" compid="tar_spcfcnts" propid="value" datasetid="ds_TestspcfInfo" columnid="spcfcnts"/>
  1094. <BindItem id="item3" compid="tar_prcpDeliveFact" propid="value" datasetid="ds_TestspcfInfo" columnid="prcpdelivefact"/>
  1095. <BindItem id="item4" compid="grp4.tar_bcollcau" propid="value" datasetid="ds_TestspcfInfo" columnid="bcollcau"/>
  1096. <BindItem id="item0" compid="grp4.btn_formprnt" propid="text" datasetid="ds_TestspcfInfo" columnid="scrn"/>
  1097. </Bind>
  1098. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  1099. * System Name : KU 2.0
  1100. * Job Name :
  1101. * File Name : SSLLC80100_채혈검사처방상세.xfdl
  1102. * Creator :
  1103. * Make Date : 2015-11-10
  1104. *
  1105. * Description :
  1106. *---------------------------------------------------------------------------------------
  1107. * Modify Date Modifier Modify Description
  1108. *---------------------------------------------------------------------------------------
  1109. *
  1110. *---------------------------------------------------------------------------------------
  1111. ****************************************************************************************/
  1112. //=======================================================================================
  1113. // Lib Include
  1114. //---------------------------------------------------------------------------------------
  1115. include "com_commonxp::comm_main.xjs";
  1116. include "lis_commonxp::LLZ001.xjs";
  1117. include "lis_commonxp::LZZ001.xjs";
  1118. include "lis_commonxp::LZZ002.xjs";
  1119. include "lis_commonxp::LPZ001.xjs";
  1120. include "com_commodulexp::SSZFM00901.xjs";
  1121. // Global Form Variable
  1122. //---------------------------------------------------------------------------------------
  1123. var condparam = "";
  1124. var gv_flag = "";
  1125. var gv_ICGTF = "";
  1126. var plgv_SMMMI00100_pid = "";
  1127. var noBcollCmtCheckClick=false; //미채혈사유 셀체크
  1128. var rowposition_value = "";
  1129. var gColSizeFlag = "";
  1130. var sPrestDeptCd = frmf_getPrestDeptCd(); //메뉴그룹의 사용처 부서코드
  1131. var gv_scrnid = "";
  1132. var arErrorCode = new HashArray();
  1133. var scrflag = "";
  1134. if(utlf_transNullToEmpty(sPrestDeptCd) == ''){
  1135. sPrestDeptCd = sysf_getUserInfo("posdeptcd");
  1136. }
  1137. //=======================================================================================
  1138. // Function
  1139. //---------------------------------------------------------------------------------------
  1140. //초기화
  1141. function lf_initDetailForm(){
  1142. ds_grd_BcollInfo.clearData();
  1143. ds_grd_TestInfoCnts.clearData();
  1144. ds_TestspcfInfo.clearData();
  1145. ds_tube.clearData();
  1146. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll"){
  1147. ds_johoi.setColumn(0,"erflag",""); //당일응급
  1148. ds_johoi.setColumn(0,"arvtime",""); //자체검사제외
  1149. }
  1150. }
  1151. //환자리스트 클릭후에 그리드 변경
  1152. function lf_gridReMake(){
  1153. fUpPatinfo();
  1154. grp4.grd_TestInfoCnts.enableredraw = false;
  1155. if(ds_TestspcfInfo.getColumn(0,"scanyn") == "Y"){
  1156. grp4.btn_formprnt.enable = true;
  1157. grp4.btn_formprnt.text = utlf_transNullToEmpty(ds_TestspcfInfo.getColumn(0,"scrn"));
  1158. } else {
  1159. grp4.btn_formprnt.text = utlf_transNullToEmpty(ds_TestspcfInfo.getColumn(0,"scrn"));
  1160. grp4.btn_formprnt.enable = false;
  1161. }
  1162. if(frmf_getScreenID() != "SMLLC00100") { //외래 채혈화면이 아닐경우. 동일 pid 라도 감염정보창 띄우기
  1163. //감염정보 조회
  1164. //model.makeValue("/root/send/pid", "20493"); //test 용
  1165. var pid = parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid");
  1166. if (utlf_isNull(pid)) {
  1167. pid = ds_johoi.getColumn(0,"pat");
  1168. }
  1169. dsf_createDsRow("ds_send_pid" , [{col: "pid", val:pid}]);
  1170. var oParam = {};
  1171. oParam.id = "TRLLC90801";
  1172. oParam.service = "bcollmngtapp.BCollMngt";
  1173. oParam.method = "reqGetInfDisInfo";
  1174. oParam.inds = "cond=ds_send_pid";
  1175. oParam.outds = "ds_infdisinfolist=getinfdisinfo";
  1176. oParam.async = false;
  1177. //oParam.callback = "cf_TRLLC90801";
  1178. tranf_submit(oParam);
  1179. if(ds_infdisinfolist.rowcount > 0) { //감염정보가 있다면..
  1180. var objArg = new Object();
  1181. objArg.arg_ds_infdisinfolist = ds_infdisinfolist;
  1182. frmf_modal("SPLLC90800", "SPLLC90800", objArg,"", "", "", "","", "", "", "","","M" ); //감염정보창 띄우기
  1183. }
  1184. }
  1185. for(iRow=0;iRow < ds_grd_TestInfoCnts.rowcount; iRow++){
  1186. var groupno = ds_grd_TestInfoCnts.getColumn(iRow,"groupno");
  1187. // 신규발행
  1188. if(ds_johoi.getColumn(0,"bcollflag") == "1"){ //미채혈
  1189. if((ds_grd_TestInfoCnts.getColumn(iRow,"choi") == "1") //체크
  1190. && (ds_grd_TestInfoCnts.getColumn(iRow,"spclrsltformkind") == "06")) { //특수결과입력유형이 ICG 인 경우
  1191. if(ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"testreqlnkno") == "0"){ //의뢰지 등록이 안된 경우
  1192. var objArg = new Object();
  1193. objArg.icg_prcpdd = ds_grd_TestInfoCnts.getColumn(iRow,"prcpdd"); //처방일자
  1194. objArg.icg_row = iRow; //처방상세목록에 ICG 검사 로우
  1195. objArg.icg_scrnno = "10"; //채혈화면에서 띄울 경우만 의뢰서 등록 가능하게 하기 위해.
  1196. frmf_modal("SPLRR91100","SPLRR91100",objArg);
  1197. ds_grd_BcollInfo.setColumn(ds_grd_BcollInfo.rowposition,"testreqlnkno",ds_grd_TestInfoCnts.getColumn(iRow,"testreqlnkno"));
  1198. } else { //의뢰지 등록이 되어 있다면(환자목록의 체크박스 선택한 경우 등등)
  1199. ds_grd_TestInfoCnts.setColumn(iRow,"testreqlnkno", ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"testreqlnkno"));
  1200. }
  1201. }
  1202. }
  1203. else if (ds_johoi.getColumn(0,"bcollflag") == "2" || ds_johoi.getColumn(0,"bcollflag") == "3") { //채혈
  1204. ds_grd_TestInfoCnts.updatecontrol = false;
  1205. if (ds_grd_TestInfoCnts.getColumn(iRow,"spcstat") == "3" || //가접수, 병리확인
  1206. ds_grd_TestInfoCnts.getColumn(iRow,"spcstat") == "4" || //접수
  1207. ds_grd_TestInfoCnts.getColumn(iRow,"spcstat") == "5" ) { //최종보고
  1208. if(!utlf_isNull(ds_grd_TestInfoCnts.getColumn(iRow,"bcchk"))){
  1209. //--------------------------------------------------------------------------
  1210. // 병리과의 Frozen(동결절편) 계열의 처방은 접수 후 에도 바코드 재발행이 필요
  1211. // 2008-08-02 : 유동철
  1212. if(ds_grd_TestInfoCnts.getColumn(iRow,"testlrgkind") == "P"){
  1213. if(ds_grd_TestInfoCnts.getColumn(iRow,"tubecd") == "1002"){
  1214. ds_grd_TestInfoCnts.setColumn(iRow,"bcchk","false");
  1215. } else {
  1216. ds_grd_TestInfoCnts.setColumn(iRow,"bcchk","-");
  1217. }
  1218. } else {
  1219. ds_grd_TestInfoCnts.setColumn(iRow,"bcchk","-");
  1220. }
  1221. }
  1222. //----------------------------------------------------------------------------
  1223. ds_grd_TestInfoCnts.setColumn(iRow,"choi","0");
  1224. ds_grd_TestInfoCnts.setColumn(iRow,"choi2","false");
  1225. }
  1226. ds_grd_TestInfoCnts.updatecontrol = true;
  1227. }
  1228. }
  1229. //grdf_setRowStyle(grp4.grd_TestInfoCnts,"0" , "35" , "prcpkindcd" , "equal" ); //수술중 색깔표시
  1230. var col = "prcpkindcd";
  1231. var bfont = "expr:String(";
  1232. var dataValue = "35";
  1233. var bcolor = "#fcd2c1 center middle" +"' : "+"'"+"#FFFFFF"+" no-repeat center middle'";
  1234. var bcolor1 = "#fcd2c1" +"' : "+"''";
  1235. var bcolor2 = "#fcd2c1 right middle" +"' : "+"'"+"#FFFFFF"+" no-repeat right middle'";
  1236. var bcolor3 = "#fcd2c1 left middle" +"' : "+"'"+"#FFFFFF"+" no-repeat left middle'";
  1237. var ctrl = "";
  1238. var bfont1 = "";
  1239. var bfont2 = "";
  1240. var bfont3 = "";
  1241. bfont1 = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor1;
  1242. bfont2 = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor2;
  1243. bfont3 = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor3;
  1244. bfont = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor;
  1245. grp4.grd_TestInfoCnts.setCellProperty("body", 3, "background" ,bfont1);
  1246. grp4.grd_TestInfoCnts.setCellProperty("body", 3, "background2" ,bfont1);
  1247. grp4.grd_TestInfoCnts.setCellProperty("body", 5, "background" ,bfont1);
  1248. grp4.grd_TestInfoCnts.setCellProperty("body", 5, "background2" ,bfont1);
  1249. grp4.grd_TestInfoCnts.setCellProperty("body", 6, "background" ,bfont1);
  1250. grp4.grd_TestInfoCnts.setCellProperty("body", 6, "background2" ,bfont1);
  1251. grp4.grd_TestInfoCnts.setCellProperty("body", 7, "background" ,bfont1);
  1252. grp4.grd_TestInfoCnts.setCellProperty("body", 7, "background2" ,bfont1);
  1253. grp4.grd_TestInfoCnts.setCellProperty("body", 8, "background" ,bfont1);
  1254. grp4.grd_TestInfoCnts.setCellProperty("body", 8, "background2" ,bfont1);
  1255. grp4.grd_TestInfoCnts.setCellProperty("body", 9, "background" ,bfont1);
  1256. grp4.grd_TestInfoCnts.setCellProperty("body", 9, "background2" ,bfont1);
  1257. grp4.grd_TestInfoCnts.setCellProperty("body", 10, "background" ,bfont1);
  1258. grp4.grd_TestInfoCnts.setCellProperty("body", 10, "background2" ,bfont1);
  1259. grp4.grd_TestInfoCnts.setCellProperty("body", 11, "background" ,bfont1);
  1260. grp4.grd_TestInfoCnts.setCellProperty("body", 11, "background2" ,bfont1);
  1261. grp4.grd_TestInfoCnts.setCellProperty("body", 13, "background" ,bfont1);
  1262. grp4.grd_TestInfoCnts.setCellProperty("body", 13, "background2" ,bfont1);
  1263. grp4.grd_TestInfoCnts.setCellProperty("body", 14, "background" ,bfont1);
  1264. grp4.grd_TestInfoCnts.setCellProperty("body", 14, "background2" ,bfont1);
  1265. grp4.grd_TestInfoCnts.setCellProperty("body", 15, "background" ,bfont1);
  1266. grp4.grd_TestInfoCnts.setCellProperty("body", 15, "background2" ,bfont1);
  1267. grp4.grd_TestInfoCnts.setCellProperty("body", 16, "background" ,bfont1);
  1268. grp4.grd_TestInfoCnts.setCellProperty("body", 16, "background2" ,bfont1);
  1269. grp4.grd_TestInfoCnts.setCellProperty("body", 17, "background" ,bfont1);
  1270. grp4.grd_TestInfoCnts.setCellProperty("body", 17, "background2" ,bfont1);
  1271. grp4.grd_TestInfoCnts.setCellProperty("body", 18, "background" ,bfont1);
  1272. grp4.grd_TestInfoCnts.setCellProperty("body", 18, "background2" ,bfont1);
  1273. grp4.grd_TestInfoCnts.setCellProperty("body", 19, "background" ,bfont1);
  1274. grp4.grd_TestInfoCnts.setCellProperty("body", 19, "background2" ,bfont1);
  1275. grp4.grd_TestInfoCnts.setCellProperty("body", 20, "background" ,bfont1);
  1276. grp4.grd_TestInfoCnts.setCellProperty("body", 20, "background2" ,bfont1);
  1277. grp4.grd_TestInfoCnts.setCellProperty("body", 21, "background" ,bfont1);
  1278. grp4.grd_TestInfoCnts.setCellProperty("body", 21, "background2" ,bfont1);
  1279. grp4.grd_TestInfoCnts.setCellProperty("body", 22, "background" ,bfont1);
  1280. grp4.grd_TestInfoCnts.setCellProperty("body", 22, "background2" ,bfont1);
  1281. grp4.grd_TestInfoCnts.setCellProperty("body", 23, "background" ,bfont1);
  1282. grp4.grd_TestInfoCnts.setCellProperty("body", 23, "background2" ,bfont1);
  1283. grp4.grd_TestInfoCnts.setCellProperty("body", 24, "background" ,bfont1);
  1284. grp4.grd_TestInfoCnts.setCellProperty("body", 24, "background2" ,bfont1);
  1285. grp4.grd_TestInfoCnts.setCellProperty("body", 25, "background" ,bfont1);
  1286. grp4.grd_TestInfoCnts.setCellProperty("body", 25, "background2" ,bfont1);
  1287. grp4.grd_TestInfoCnts.setCellProperty("body", 26, "background" ,bfont1);
  1288. grp4.grd_TestInfoCnts.setCellProperty("body", 26, "background2" ,bfont1);
  1289. grp4.grd_TestInfoCnts.setCellProperty("body", 27, "background" ,bfont1);
  1290. grp4.grd_TestInfoCnts.setCellProperty("body", 27, "background2" ,bfont1);
  1291. grp4.grd_TestInfoCnts.setCellProperty("body", 28, "background" ,bfont1);
  1292. grp4.grd_TestInfoCnts.setCellProperty("body", 28, "background2" ,bfont1);
  1293. grp4.grd_TestInfoCnts.setCellProperty("body", 29, "background" ,bfont1);
  1294. grp4.grd_TestInfoCnts.setCellProperty("body", 29, "background2" ,bfont1);
  1295. grp4.grd_TestInfoCnts.setCellProperty("body", 30, "background" ,bfont1);
  1296. grp4.grd_TestInfoCnts.setCellProperty("body", 30, "background2" ,bfont1);
  1297. grp4.grd_TestInfoCnts.setCellProperty("body", 31, "background" ,bfont1);
  1298. grp4.grd_TestInfoCnts.setCellProperty("body", 31, "background2" ,bfont1);
  1299. grp4.grd_TestInfoCnts.setCellProperty("body", 53, "background" ,bfont1);
  1300. grp4.grd_TestInfoCnts.setCellProperty("body", 53, "background2" ,bfont1);
  1301. grp4.grd_TestInfoCnts.setCellProperty("body", 59, "background" ,bfont1);
  1302. grp4.grd_TestInfoCnts.setCellProperty("body", 59, "background2" ,bfont1);
  1303. grp4.grd_TestInfoCnts.setCellProperty("body", 2, "background" ,bfont);
  1304. grp4.grd_TestInfoCnts.setCellProperty("body", 2, "background2" ,bfont);
  1305. grp4.grd_TestInfoCnts.setCellProperty("body", 12, "background" ,bfont3);
  1306. grp4.grd_TestInfoCnts.setCellProperty("body", 12, "background2" ,bfont3);
  1307. grp4.grd_TestInfoCnts.setCellProperty("body", 4, "background" ,bfont2);
  1308. grp4.grd_TestInfoCnts.setCellProperty("body", 4, "background2" ,bfont2);
  1309. grp4.grd_TestInfoCnts.enableredraw = true;
  1310. }
  1311. function fUpPatinfo(){
  1312. //trace("fUpPatinfo :"+appf_getPatientInfo("pid")+' / '+parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid"));
  1313. if(appf_getPatientInfo("pid") != parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid")) {
  1314. // alert("fUpPatinfo1 "+appf_getPatientInfo("pid"));
  1315. // alert("fUpPatinfo2 "+parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid"));
  1316. if(ds_grd_TestInfoCnts.rowcount > 0){
  1317. frmf_setParameter("errflag", "Y");
  1318. //alert("fUpPatinfo2");
  1319. //var ordtype = "";
  1320. var genrflag = ds_grd_TestInfoCnts.getColumn(0,"prcpgenrflag");
  1321. //DSC 환자인 경우 genrflag를 I 로 보냄. 오류나서 2008.12.03 김성희 수정
  1322. //SPMMO08900.js 파일(fInitialize_SPMMO08900())에서 genrflag가 "D"인 것을 처리하는 구문이 없음.("I" 로 처리해야함.)
  1323. if(genrflag =="D"){
  1324. genrflag = "I";
  1325. }
  1326. // trace("fUpPatinfo3");
  1327. // trace('1 prcpdd :'+ds_grd_TestInfoCnts.getColumn(0,"prcpdd"));
  1328. // trace('2 execprcpuniqno :'+ds_grd_TestInfoCnts.getColumn(0,"execprcpuniqno"));
  1329. // trace('3 instcd :'+ds_grd_TestInfoCnts.getColumn(0,"instcd"));
  1330. var cnt = ds_grd_TestInfoCnts.rowcount;
  1331. //modal("SPMMO08900");
  1332. if((genrflag == "I") || (genrflag =="E")){
  1333. if (cnt > 0 ) {
  1334. frmf_setParameter("condparam", "S" + "▦" + ds_grd_TestInfoCnts.getColumn(0,"prcpdd")+ "▦"
  1335. + ds_grd_TestInfoCnts.getColumn(0,"execprcpuniqno") + "▦"
  1336. + ds_grd_TestInfoCnts.getColumn(0,"instcd") );
  1337. }
  1338. }else if((genrflag =="O") || (genrflag =="S")){
  1339. frmf_setParameter("condparam", "S" + "▦" + ds_grd_TestInfoCnts.getColumn(0,"prcpdd")+ "▦"
  1340. + ds_grd_TestInfoCnts.getColumn(0,"execprcpuniqno") + "▦"
  1341. + ds_grd_TestInfoCnts.getColumn(0,"instcd") );
  1342. }
  1343. //frmf_modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  1344. appf_initPatientInfo(frmf_getParameter("condparam"));
  1345. }
  1346. //trace("fUpPatinfo333");
  1347. var paminfo = sysf_getGlobalVariable("paminfo");
  1348. var cnt = ds_grd_TestInfoCnts.rowcount;
  1349. //trace("cnt :"+cnt+' / '+paminfo+' / '+appf_getPatientInfo("pid") );
  1350. //trace("pid1 :"+appf_getPatientInfo("pid") );
  1351. //trace("pid2 :"+parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid"));
  1352. if(utlf_isNull(paminfo) || (appf_getPatientInfo("pid") != parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid"))){ //상단정보가 없는 경우
  1353. if (cnt > 0 ) {
  1354. appf_delPatientInfos(); //환자정보 전체 삭제
  1355. var pid = parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid");
  1356. var hngnm = parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"hngnm");
  1357. //상단에 올릴 수 있는 정보가 있으면 아래와 같이 설정해 주시면 됩니다. 없으면 안 해주셔도 되구요..
  1358. var scrid = this.parent.parent.frmf_getScreenID(); //components[frmf_getScreenID()].getOwnerFrame().form.name;
  1359. if ((utlf_isNull(pid)) && (scrid == "SMLLC00200") ){
  1360. pid = ds_johoi.getColumn(0,"pat");
  1361. }
  1362. appf_setPatientInfo("pid" , pid); //등록번호
  1363. appf_setPatientInfo("pname" , pid + "|" + hngnm); //환자명
  1364. }
  1365. }
  1366. //trace("fUpPatinfo4444");
  1367. if(frmf_getScreenID() == "SMLLC00100") { //외래 채혈화면인 경우, 탑정보가 바뀔때만 감염정보창을 띄운다.
  1368. //감염정보 조회
  1369. //model.makeValue("/root/send/pid", "20493"); //test 용
  1370. dsf_createDsRow("ds_send_pid"
  1371. , [{col: "pid", val:parent.parent.ds_grd_BcollInfo.getColumn(parent.parent.ds_grd_BcollInfo.rowposition,"pid")}]);
  1372. var oParam = {};
  1373. oParam.id = "TRLLC90801";
  1374. oParam.service = "bcollmngtapp.BCollMngt";
  1375. oParam.method = "reqGetInfDisInfo";
  1376. oParam.inds = "cond=ds_send_pid";
  1377. oParam.outds = "ds_infdisinfolist=getinfdisinfo";
  1378. oParam.async = false;
  1379. //oParam.callback = "cf_TRLLC90801";
  1380. tranf_submit(oParam);
  1381. if(ds_infdisinfolist.rowcount > 0) { //감염정보가 있다면..
  1382. var objArg = new Object();
  1383. objArg.arg_ds_infdisinfolist = ds_infdisinfolist;
  1384. frmf_modal("SPLLC90800", "SPLLC90800", objArg,"", "", "", "","", "", "", "","","M" ); //감염정보창 띄우기
  1385. }
  1386. }
  1387. }
  1388. }
  1389. //외래일때 검사에 따른 글자색 설정
  1390. function lf_gbnOutcoll(currow){
  1391. var returnvalue = "";
  1392. var prcpexecdeptcd = ds_grd_TestInfoCnts.getColumn(currow,"prcpexecdeptcd");
  1393. var exec = prcpexecdeptcd.substr(0,1);
  1394. //외래에서 검사에 따른 배경변경
  1395. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll"){
  1396. if(exec == "C"){
  1397. returnvalue = "#0060FF";//blue
  1398. }else if(exec == "H"){
  1399. returnvalue = "#FF3300";//red
  1400. }else if(exec == "U"){
  1401. returnvalue = "#33a02c";//green
  1402. }
  1403. }
  1404. return returnvalue;
  1405. }
  1406. //용기이미지표시
  1407. function lf_tubeimg(currow){
  1408. var returnvalue = "";
  1409. var bData = ds_grd_TestInfoCnts.getColumn(currow,"tubeiconimg");
  1410. var bData = new Buffer(bData);
  1411. if(bData.length == 0 && !utlf_isNull(ds_grd_TestInfoCnts.getColumn(currow,"tubenm"))){
  1412. returnvalue = "../../../lis/commonxp/images/icnTB_NotExists.gif";
  1413. }else{
  1414. returnvalue = "";
  1415. }
  1416. return returnvalue;
  1417. }
  1418. function lf_testimage(currow)
  1419. {
  1420. var returnvalue = "";
  1421. //var tclsscrnmCol = grp4.grd_TestInfoCnts.getBindCellIndex("body","tclsscrnm");
  1422. var tclsscrnmCol = ds_grd_TestInfoCnts.getColumn(currow,"tclsscrnm")
  1423. if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "B"){
  1424. returnvalue = "../../../lis/commonxp/images/icnGS_HyeolAekEunHaeng.gif";
  1425. }else if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "G"){
  1426. returnvalue = "../../../lis/commonxp/images/icnGS_BunJaYuJeon.gif";
  1427. }else if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "N"){
  1428. returnvalue = "../../../lis/commonxp/images/icnGS_HaekEuiHak.gif";
  1429. }else if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "P"){
  1430. returnvalue = "../../../lis/commonxp/images/icon_microscope.gif";
  1431. }
  1432. return returnvalue;
  1433. }
  1434. //용기이미지표시
  1435. function lf_bcnoimg(currow){
  1436. //var spcstat = grp4.grd_TestInfoCnts.getBindCellIndex("body","spcstat");
  1437. var spcstat = ds_grd_TestInfoCnts.getColumn(currow,"spcstat")
  1438. var bcno = ds_grd_TestInfoCnts.getColumn(currow,"bcno")
  1439. var returnvalue = "";
  1440. ds_grd_TestInfoCnts.updatecontrol = false;
  1441. if(spcstat == "1"){
  1442. returnvalue = "../../../lis/commonxp/images/icnCJ_Label.gif";
  1443. }else if(spcstat == "2"){
  1444. returnvalue = "../../../lis/commonxp/images/icnCJ_CheHyeol.gif";
  1445. }else if(spcstat == "3"){
  1446. returnvalue = "../../../lis/commonxp/images/icnCJ_HwakIn.gif";
  1447. }else if(spcstat == "4"){
  1448. returnvalue = "../../../lis/commonxp/images/icnCJ_JubSu.gif";
  1449. }
  1450. else if(spcstat >= 5){
  1451. returnvalue = "../../../lis/commonxp/images/icnCJ_End.gif";
  1452. }
  1453. if(utlf_isNull(bcno)){
  1454. var returnvalue = "";
  1455. }
  1456. ds_grd_TestInfoCnts.updatecontrol = true;
  1457. return returnvalue;
  1458. }
  1459. function lf_testpadding(currow)
  1460. {
  1461. var tclsscrnmCol = grp4.grd_TestInfoCnts.getBindCellIndex("body","tclsscrnm");
  1462. var tclsscrnmCol = ds_grd_TestInfoCnts.getColumn(currow,"tclsscrnm")
  1463. var returnvalue = "";
  1464. if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "B"){
  1465. returnvalue = "0 0 0 15";
  1466. }else if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "G"){
  1467. returnvalue = "0 0 0 15";
  1468. }else if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "N"){
  1469. returnvalue = "0 0 0 15";
  1470. }else if(ds_grd_TestInfoCnts.getColumn(currow,"testlrgkind") == "P"){
  1471. returnvalue = "0 0 0 15";
  1472. }
  1473. else{
  1474. returnvalue = "0 0 0 5";
  1475. }
  1476. return returnvalue;
  1477. }
  1478. //검사정보 조회
  1479. function lf_testInfo(){
  1480. var row = ds_grd_TestInfoCnts.rowposition;
  1481. dsf_createDsRow("ds_hidden_testinfo"
  1482. , [{col: "tclscd" , val: ds_grd_TestInfoCnts.getColumn(row,"tclscd")}
  1483. , {col: "spccd" , val: ds_grd_TestInfoCnts.getColumn(row,"spccd")}
  1484. , {col: "tclsnm" , val: ""}
  1485. ]);
  1486. var objArg = new Object();
  1487. objArg.arg_ds_hidden = ds_hidden_testinfo;
  1488. frmf_modal("SMLLF90100", "SMLLF90100", objArg, null, null, null, null, null, null, null, null, null, "M");
  1489. }
  1490. //그리드에서 row 선택시
  1491. function lf_setGridChoi() {
  1492. var nRow = ds_grd_TestInfoCnts.rowposition;
  1493. var nCol = grp4.grd_TestInfoCnts.currentcol;
  1494. //var spcstat = ds_grd_TestInfoCnts.getColumn(currow,"spcstat")
  1495. //if (spcstat=="1") {
  1496. if ( nCol == grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcgbn") ) {
  1497. if(ds_grd_TestInfoCnts.getColumn(nRow,"bcchk") == "true") { // 체크 되어 있는거 풀렸을때
  1498. ds_grd_TestInfoCnts.updatecontrol = false;
  1499. ds_grd_TestInfoCnts.setColumn(nRow,"bcchk","false");
  1500. ds_grd_TestInfoCnts.setColumn(nRow,"choi","0");
  1501. //var execprcpuniqno = ds_grd_TestInfoCnts.getColumn(nRow,"execprcpuniqno");
  1502. //lf_groupTestChecking (execprcpuniqno, "0" );
  1503. //바코드버튼 클릭시 바코드 단위로 체크 풀리도록
  1504. var groupno = ds_grd_TestInfoCnts.getColumn(nRow,"groupno");
  1505. lf_groupTestChecking (groupno, "0" );
  1506. if(nRow+1 <= ds_grd_TestInfoCnts.rowcount-1){
  1507. for(iRow = nRow + 1 ; ; iRow ++ ){
  1508. //var execprcpuniqno = ds_grd_TestInfoCnts.getColumn(iRow,"execprcpuniqno");
  1509. var groupno = ds_grd_TestInfoCnts.getColumn(iRow,"groupno");
  1510. if( ds_grd_TestInfoCnts.getColumn(iRow,"bcchk")== "true" ||
  1511. ds_grd_TestInfoCnts.getColumn(iRow,"bcchk")== "false" ||
  1512. iRow > ds_grd_TestInfoCnts.rowcount-1){
  1513. break;
  1514. }
  1515. ds_grd_TestInfoCnts.setColumn(iRow,"choi","0");
  1516. //lf_groupTestChecking (execprcpuniqno, "0" );
  1517. lf_groupTestChecking (groupno, "0" );
  1518. }
  1519. }
  1520. ds_grd_TestInfoCnts.updatecontrol = true;
  1521. } else if(ds_grd_TestInfoCnts.getColumn(nRow,"bcchk") == "false" || ds_grd_TestInfoCnts.getColumn(nRow,"bcchk") == "-") { // 선택 안돼있다가 체크했을때
  1522. //} else if(ds_grd_TestInfoCnts.getColumn(nRow,"bcchk") == "false" ) { // 선택 안돼있다가 체크했을때
  1523. ds_grd_TestInfoCnts.updatecontrol = false;
  1524. ds_grd_TestInfoCnts.setColumn(nRow,"bcchk","true");
  1525. ds_grd_TestInfoCnts.setColumn(nRow,"choi","1");
  1526. //var execprcpuniqno = ds_grd_TestInfoCnts.getColumn(nRow,"execprcpuniqno");
  1527. //lf_groupTestChecking (execprcpuniqno, "1" );
  1528. //바코드버튼 클릭시 바코드 단위로 체크 풀리도록
  1529. var groupno = ds_grd_TestInfoCnts.getColumn(nRow,"groupno");
  1530. lf_groupTestChecking (groupno, "1" );
  1531. if(nRow+1 <= ds_grd_TestInfoCnts.rowcount-1){
  1532. for(iRow = nRow + 1 ; ; iRow ++ ){
  1533. //var execprcpuniqno = ds_grd_TestInfoCnts.getColumn(iRow,"execprcpuniqno");
  1534. var groupno = ds_grd_TestInfoCnts.getColumn(iRow,"groupno");
  1535. if( ds_grd_TestInfoCnts.getColumn(iRow,"bcchk")== "true" ||
  1536. ds_grd_TestInfoCnts.getColumn(iRow,"bcchk")== "false" ||
  1537. ds_grd_TestInfoCnts.getColumn(iRow,"bcchk")== "-" ||
  1538. iRow > ds_grd_TestInfoCnts.rowcount-1){
  1539. break;
  1540. }
  1541. ds_grd_TestInfoCnts.setColumn(iRow,"choi","1");
  1542. //lf_groupTestChecking (execprcpuniqno, "1" );
  1543. lf_groupTestChecking (groupno, "1" );
  1544. }
  1545. }
  1546. ds_grd_TestInfoCnts.updatecontrol = true;
  1547. }
  1548. } else if ( nCol == grp4.grd_TestInfoCnts.getBindCellIndex("Body","choi") ) {
  1549. //바코드 체크박스 클릭시 체크한것만 체크되고,체크해제되도록
  1550. //var execprcpuniqno = ds_grd_TestInfoCnts.getColumn(nRow,"execprcpuniqno");
  1551. // var chkgbn = ds_grd_TestInfoCnts.getColumn(nRow,"choi");
  1552. //
  1553. // ds_grd_TestInfoCnts.updatecontrol = false;
  1554. // if ((chkgbn == "1") || (chkgbn == true)) {
  1555. // //lf_groupTestChecking (execprcpuniqno, "1" );
  1556. // ds_grd_TestInfoCnts.setColumn(nRow,"choi", "1");
  1557. // ds_grd_TestInfoCnts.setColumn(nRow,"choi", true);
  1558. //
  1559. // } else {
  1560. // //lf_groupTestChecking (execprcpuniqno, "0" );
  1561. // ds_grd_TestInfoCnts.setColumn(nRow,"choi", "0");
  1562. // ds_grd_TestInfoCnts.setColumn(nRow,"choi", false);
  1563. // }
  1564. }
  1565. //}
  1566. }
  1567. //처방키체크
  1568. function lf_groupTestChecking(pExecprcpunipno, chkgbn) {
  1569. var r = ds_grd_TestInfoCnts.findRow("execprcpuniqno", pExecprcpunipno);
  1570. while ( r >= 0 ) {
  1571. ds_grd_TestInfoCnts.setColumn(r,"choi",chkgbn);
  1572. //0일때 상태초기화시킴
  1573. if(chkgbn == "0"){
  1574. var arrPostion = new Array();
  1575. arrPostion[0] = r;
  1576. grdf_setStatus(grp4.grd_TestInfoCnts, "", arrPostion);
  1577. }
  1578. r++;
  1579. if ( r > ds_grd_TestInfoCnts.rowcount) {
  1580. break;
  1581. }
  1582. r = ds_grd_TestInfoCnts.findRow("execprcpuniqno", pExecprcpunipno,r);
  1583. }
  1584. }
  1585. // 채혈취소 버튼
  1586. function lf_exeBcollCan(lfcancelYN){
  1587. var cancelTF = false;
  1588. var bcnolist = "" //취소시 오토라벨 연동을 위해~
  1589. if(lfcancelYN == "1") cancelTF = true; //취소사유등록여부 체크시
  1590. //cancelTF = true;
  1591. var bcollTF = false;
  1592. lf_lisClearStatus(grp4.grd_TestInfoCnts);
  1593. for(iRow=0;iRow < ds_grd_TestInfoCnts.rowcount; iRow ++){
  1594. if(ds_grd_TestInfoCnts.getColumn(iRow,"bcno").substr(0, 1) != "G") {
  1595. if(ds_grd_TestInfoCnts.getColumn(iRow,"choi") == "true") {
  1596. if((ds_grd_TestInfoCnts.getColumn(iRow,"spcstat") == "1")
  1597. || (ds_grd_TestInfoCnts.getColumn(iRow,"spcstat") == "2")) {
  1598. var arrPostion = new Array();
  1599. arrPostion[0] = iRow;
  1600. grdf_setStatus(grp4.grd_TestInfoCnts, "I", arrPostion);
  1601. if(bcnolist.indexOf(ds_grd_TestInfoCnts.getColumn(iRow,"bcno2")) == -1) {
  1602. bcnolist += ds_grd_TestInfoCnts.getColumn(iRow,"bcno2") + ",";
  1603. }
  1604. bcollTF = true;
  1605. } else {
  1606. sysf_messageBox("채혈 취소", "E001");
  1607. return;
  1608. }
  1609. //----------------------------
  1610. // 2008-12-22 : 11:20 : 유동철
  1611. // 병리검사중 일부 검사만 취소할 경우 처방일자가 없기 때문에 재 설정한다.
  1612. if(ds_grd_TestInfoCnts.getColumn(iRow,"testlrgkind") == "P"){ //병리검사일 경우만 처리
  1613. ds_grd_TestInfoCnts.setColumn(iRow,"prcpdd",ds_grd_TestInfoCnts.getColumn(iRow,"prcpdd2"));
  1614. }
  1615. }
  1616. }
  1617. }
  1618. if(bcollTF){
  1619. //채혈상세목록 변경내역데이터셋생성(넘기는 부분과 받는 부분 상이하여 새로 생성함
  1620. dsf_createDs("ds_tempFilterDs");
  1621. var strXML = ds_grd_TestInfoCnts.saveXML("ds_grd_TestInfoCnts","u");
  1622. ds_tempFilterDs.loadXML(strXML);
  1623. //ds_tempFilterDs.assign(ds_grd_TestInfoCnts);
  1624. ds_tempFilterDs.updatecontrol = false;
  1625. ds_tempFilterDs.deleteColumn("bcno");
  1626. ds_tempFilterDs.updateColID("bcno2","bcno");
  1627. ds_tempFilterDs.updateColID("prcphopedd","prcphopedt");
  1628. ds_tempFilterDs.updatecontrol = true;
  1629. if(cancelTF){
  1630. var objArg = new Object();
  1631. ds_canceldata.setColumn(0,'data2','01');
  1632. ds_canceldata.setColumn(0,'data1',ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcno"));
  1633. objArg.arg_ds_canceldata = ds_canceldata;
  1634. //objArg.arg_ds_canceldata.cnfm_resn = "01";
  1635. //objArg.arg_ds_canceldata.opnerBcno = ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcno");
  1636. var strXML = ds_tempFilterDs.saveXML("ds_tempFilterDs","u");
  1637. objArg.strXML = strXML;
  1638. objArg.arg_ds_openerdata = ds_canceldata;
  1639. frmf_modal("SPLLC90400", "SPLLC90400", objArg, "", "", "", "", "", "", "", "", "", "M");
  1640. } else{
  1641. var yn = sysf_messageBox("채혈" , "Q007" , "");
  1642. if(yn == 6 ) {
  1643. var sInDsName = dsf_createDsRow("ds_temp_search"
  1644. , [{col: "resndesc", val: ""}
  1645. , {col: "resncd", val: ""}
  1646. , {col: "resncdkind", val: "01"}
  1647. , {col: "cancelgbn", val: "01"}]);
  1648. tranf_submit({
  1649. id: "TXLLC90401"
  1650. , service: "diagtestapplib.LisCommon"
  1651. , method: "reqExeCanCel"
  1652. , inds : "TestData=ds_tempFilterDs:A CanCelData="+sInDsName
  1653. , transaction: false
  1654. , callback: "cbf_SSLLC80100"
  1655. , async: false
  1656. });
  1657. }
  1658. }
  1659. //dataset 삭제
  1660. var objDs = this.removeChild("ds_tempFilterDs");
  1661. delete objDs;
  1662. objDs = null;
  1663. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll"){
  1664. if(ds_data_setupinfo.getColumn(0,"prntkind") == "3"){
  1665. //var ip = ds_data_setupinfo.getColumn(0,"setupval03");
  1666. var ip = ds_data_comm03.getColumn(0,"setupval");
  1667. var sCancelData = "CANCEL|" + bcnolist + "|";
  1668. var sReturnValue = AutoLabel.TRANSDATA(0, ip, sCancelData);
  1669. }
  1670. }
  1671. lf_lisClearStatus(grp4.grd_TestInfoCnts);//그리드 상태초기화
  1672. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll") {
  1673. //trace('aaaaaaaaaaaaaaaa');
  1674. parent.parent.lf_GetTclscdList(ds_grd_BcollInfo.rowposition); //처방상세목록 조회
  1675. }
  1676. if(ds_johoi.getColumn(0,"xrwGBN") == "inbcoll") {
  1677. //trace('aaaaaaaaaaaaaaaa');
  1678. parent.parent.fGetTclscdList(ds_grd_BcollInfo.rowposition); //처방상세목록 조회
  1679. }
  1680. // trace("1 : "+this.getOwnerFrame().form.frmf_getScreenID()); // 호출한 화면 ID/
  1681. // trace("2 : "+this.frmf_getMainFormScreenID()); // 호출한 DIV 중 최상위 DIV ID
  1682. // trace("3 : "+this.frmf_getScreenID()); // 호출된(현재) 화면 ID
  1683. // trace("4 : "+this.parent.name); // 바로위(호출한) DIV ID
  1684. // trace("5 : "+ds_grd_TestInfoCnts.rowcount); // 바로위(호출한) DIV ID
  1685. if(ds_grd_TestInfoCnts.rowcount <= 0){ //처방상세목록이 없을 경우 환자목록 재 조회
  1686. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll") {
  1687. lf_getOutBCollJoHoi("Q");
  1688. } else if(ds_johoi.getColumn(0,"xrwGBN") == "inbcoll") {
  1689. if(ds_johoi.getColumn(0,"regnopatnm") != ""){
  1690. //parent.parent.lf_getInBCollJoHoi("Q");
  1691. }else {
  1692. lf_getInBCollJoHoi();
  1693. }
  1694. } else if(ds_johoi.getColumn(0,"xrwGBN") == "patbcoll") {
  1695. if(ds_johoi.getColumn(0,"regnopatnm") != ""){
  1696. lf_getBCollJoHoi("Q");
  1697. }else {
  1698. lf_getBCollJoHoi();
  1699. }
  1700. }
  1701. }else {
  1702. //trace('취소 재 갱신');
  1703. lf_gridReMake();
  1704. // if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll") {
  1705. // //parent.parent.lf_getOutBCollJoHoi("Q");
  1706. // } else if(ds_johoi.getColumn(0,"xrwGBN") == "inbcoll") {
  1707. // if(ds_johoi.getColumn(0,"regnopatnm") != ""){
  1708. // lf_getInBCollJoHoi("Q");
  1709. // }else {
  1710. // lf_getInBCollJoHoi();
  1711. // }
  1712. // } else if(ds_johoi.getColumn(0,"xrwGBN") == "patbcoll") {
  1713. // if(ds_johoi.getColumn(0,"regnopatnm") != ""){
  1714. // lf_getBCollJoHoi("Q");
  1715. // }else {
  1716. // lf_getBCollJoHoi();
  1717. // }
  1718. // } else {
  1719. // lf_getBCollJoHoi();
  1720. // }
  1721. }
  1722. }
  1723. }
  1724. // 채혈 버튼
  1725. function lf_exeBcoll(flag){
  1726. gv_flag = flag;
  1727. rowposition_value = "";
  1728. ds_barcodeinfo.clearData();
  1729. var bcollTF = false; //채혈여부
  1730. var gv_ICGTF = false; //ICG채혈여부(의뢰서 등록이 되지 않아 채혈이 되지 않을 경우 = true)
  1731. var oldGroupno = "";
  1732. var tclscdlist = "";
  1733. var tclsscrnmlist = "";
  1734. //BT, MR외 검사항목이 있을경우 return; 하기 위한 변수
  1735. var dongil = "N"; //접수할수있는 항목인 경우 "Y"
  1736. var roundyn = "Y"; //접수가능여부
  1737. var Mustroundyn = "Y"; //필수접수가능여부
  1738. lf_lisClearStatus(grp4.grd_TestInfoCnts); //검사항목상세 status 초기화
  1739. for(iRow=0;iRow < ds_grd_TestInfoCnts.rowcount; iRow++){
  1740. //BT, MR외 검사항목이 있을경우 return; 하기 위한 변수
  1741. dongil = "N"; //접수할수있는 항목인 경우 "Y" 변수 초기화(검사마다 비교하기 위해)
  1742. // trace('bcck '+iRow+' / '+ds_grd_TestInfoCnts.getColumn(iRow,"bcchk"));
  1743. if(ds_grd_TestInfoCnts.getColumn(iRow,"choi") == "true" || ds_grd_TestInfoCnts.getColumn(iRow,"choi") == "1" ||
  1744. ds_grd_TestInfoCnts.getColumn(iRow,"tclscd") == "BTS00001" ){ //선택된 검사 X-matching 검사가 아닌경우
  1745. bcollTF = true; //채혈 true
  1746. var arrPostion = new Array();
  1747. arrPostion[0] = iRow;
  1748. grdf_setStatus(grp4.grd_TestInfoCnts, "I", arrPostion);//status는 insert
  1749. var tclscd = ds_grd_TestInfoCnts.getColumn(iRow,"tclscd");
  1750. var tclsscrnm = ds_grd_TestInfoCnts.getColumn(iRow,"tclsscrnm");
  1751. var prcpconttestyn = ds_grd_TestInfoCnts.getColumn(iRow,"prcpconttestyn"); //연속검사여부
  1752. var groupno = ds_grd_TestInfoCnts.getColumn(iRow,"groupno");
  1753. if(!(ds_grd_TestInfoCnts.getColumn(iRow,"testlrgkind") == "P")) { //병리검사가 아니면..
  1754. if(oldGroupno == groupno){ //현재 그룹No와 이전 그룹No가 동일
  1755. if(prcpconttestyn == "N") {
  1756. if(tclscdlist.indexOf(tclscd + "|") >= 0 ){ //tclscd| 가 처음으로 나오는 문자위치
  1757. lf_lisClearStatus(grp4.grd_TestInfoCnts); //status 초기화
  1758. sysf_messageBox("중복처방이", "E005");
  1759. //중복처방
  1760. return;
  1761. }
  1762. }else{
  1763. if(tclsscrnmlist.indexOf(tclsscrnm + "|") >= 0 ){ //tclsscrnm| 가 처음으로 나오는 문자위치
  1764. lf_lisClearStatus(grp4.grd_TestInfoCnts); //status 초기화
  1765. sysf_messageBox("중복처방이", "E005");
  1766. //중복처방
  1767. return;
  1768. }
  1769. }
  1770. tclscdlist += tclscd + "|" ;
  1771. tclsscrnmlist += tclsscrnm + "|" ;
  1772. }
  1773. else{ //현재 그룹No와 이전 그룹No가 동일 하지 않다.
  1774. tclscdlist = tclscd + "|";
  1775. tclsscrnmlist += tclsscrnm + "|" ;
  1776. oldGroupno = groupno;
  1777. }
  1778. }
  1779. if(ds_grd_TestInfoCnts.getColumn(iRow,"rcpt")=="N" && //수납이 안됐고
  1780. (ds_grd_TestInfoCnts.getColumn(iRow,"prcpgenrflag") == "S" //건진 처방 또는
  1781. || ds_grd_TestInfoCnts.getColumn(iRow,"prcpgenrflag") == "O" )){ //&& //외래처방이고
  1782. // (model.getvalue("/root/main/TestInfo/getTestInfoCnts["+iRow+"]/testlrgkind") == "P")){ //병리 검사가 아니라면 //110816 병리 미수납 막기
  1783. lf_lisClearStatus(grp4.grd_TestInfoCnts); //status 초기화
  1784. sysf_messageBox("미수납 항목이 있습니다." , "I","");
  1785. return;
  1786. }
  1787. //병리 외래 수납여부 체크
  1788. if(ds_hospenvinfo.getColumn(0,"norcptacptyn") != "Y") { //병리병원환경설정에서 외래미수납접수 여부를 체크
  1789. if(ds_grd_TestInfoCnts.getColumn(iRow,"testlrgkind") == "P") { //병리검사
  1790. if(ds_grd_TestInfoCnts.getColumn(iRow,"rcpt")=="N" && //수납이 안됐고
  1791. (ds_grd_TestInfoCnts.getColumn(iRow,"prcpgenrflag") == "S" //건진 처방 또는
  1792. || ds_grd_TestInfoCnts.getColumn(iRow,"prcpgenrflag") == "O" )) {//외래처방
  1793. sysf_messageBox("병리 미수납 항목이 있습니다." , "I","");
  1794. return;
  1795. }
  1796. }
  1797. }
  1798. if(flag == "R") { //병동에서만 실행
  1799. if(ds_johoi.getColumn(0,"roundkind") == "-") { //접수항목이 선택 안된 경우.
  1800. lf_lisClearStatus(grp4.grd_TestInfoCnts);
  1801. sysf_messageBox("접수항목을" , "C002","");
  1802. return;
  1803. }
  1804. if(ds_grd_TestInfoCnts.getColumn(iRow,"testlrgkind") == "P") { //접수시 병리검사는 뺀다.
  1805. lf_lisClearStatus(grp4.grd_TestInfoCnts);
  1806. sysf_messageBox("병리검사는 접수를" , "E001","");
  1807. return;
  1808. }
  1809. //BT, MR외 검사항목이 있을경우 return;하기 위해 체크.
  1810. for(i = 3; i <= ds_init_lb0004.rowcount; i++) { //1 = 전체이고, 2=아침채혈 이므로 제외한 3부터 for
  1811. if(ds_grd_TestInfoCnts.getColumn(iRow,"tclscd") == ds_init_lb0004.getColumn(i,"etc01")) {
  1812. dongil = "Y";
  1813. break;
  1814. }
  1815. }
  1816. if(dongil == "N") { //접수할수있는 코드가 아닐경우.
  1817. roundyn= "N"; //접수할수 없다.
  1818. }
  1819. if(ds_johoi.getColumn(0,"xrwGBN") == "inbcoll"){
  1820. Mustroundyn = ds_roundinfo.getColumn(0,"roundflag");
  1821. }
  1822. }
  1823. if((ds_grd_TestInfoCnts.getColumn(iRow,"spclrsltformkind") == "06") //특수결과입력유형이 ICG 인 경우
  1824. && (ds_grd_TestInfoCnts.getColumn(iRow,"testreqlnkno") == "0")) { //의뢰지 등록이 안된경우
  1825. ds_grd_TestInfoCnts.updatecontrol = false;
  1826. ds_grd_TestInfoCnts.setColumn(iRow,"choi", "0");
  1827. ds_grd_TestInfoCnts.updatecontrol = true;
  1828. var arrPostion = new Array();
  1829. arrPostion[0] = iRow;
  1830. grdf_setStatus(grp4.grd_TestInfoCnts, "", arrPostion);//status 초기화.. 채혈 되지 않게 하기 위해.
  1831. gv_ICGTF = true;
  1832. }
  1833. } // end if(model.getvalue("/root/main/TestInfo/getTestInfoCnts["+iRow+"]/choi") == "1")
  1834. } //end for(iRow=1;iRow < grd_TestInfoCnts.rows; iRow ++){
  1835. if(roundyn == "N") {
  1836. lf_lisClearStatus(grp4.grd_TestInfoCnts); //status 초기화
  1837. sysf_messageBox("접수할 수 없는 항목이 포함되었습니다." , "E");
  1838. return;
  1839. }
  1840. if(Mustroundyn == "N") { //필수항목 여부
  1841. //var retval = window.alert( "BC 검사가 포함되지 않았습니다. \n계속 진행 하시겠습니까?", "결과관리", "35" );
  1842. var retval = sysf_messageBox("BC 검사가 포함되지 않았습니다. \n" , "Q003" , "");
  1843. if (retval != "6"){// yes = 6, no = 7
  1844. lf_lisClearStatus(grp4.grd_TestInfoCnts); //status 초기화
  1845. //sysf_messageBox("접수할 수 없는 항목이 포함되었습니다." , "E");
  1846. return;
  1847. }
  1848. }
  1849. if(bcollTF){
  1850. var scrid = gv_scrnid;
  1851. scrflag = false; //병동, 환자별 채혈 일 경우 true
  1852. if(scrid == "SMLLC00100") { //외래채혈관리이면
  1853. if( ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"tnsyn") == "Y") { //수혈처방여부가 'Y'일 때 Cross-matching 출력
  1854. scrflag = true;
  1855. }
  1856. } else { //외래채혈관리가 아니면
  1857. scrflag = true; //ABO 처방이 있으면 Cross-matching 출력을 위해.
  1858. }
  1859. trace('scrid :'+scrid+' / '+scrflag);
  1860. //채혈상세목록 변경내역데이터셋생성(넘기는 부분과 받는 부분 상이하여 새로 생성함
  1861. dsf_createDs("ds_tempFilterDs");
  1862. ds_grd_TestInfoCnts.updatecontrol = false;
  1863. grdf_setStatusColumn(ds_grd_TestInfoCnts,"status");
  1864. ds_grd_TestInfoCnts.updatecontrol = true;
  1865. var strXML = ds_grd_TestInfoCnts.saveXML("ds_grd_TestInfoCnts","u");
  1866. //trace(strXML);
  1867. ds_tempFilterDs.loadXML(strXML);
  1868. //ds_tempFilterDs.assign(ds_grd_TestInfoCnts);
  1869. ds_tempFilterDs.updatecontrol = false;
  1870. ds_tempFilterDs.updateColID("cmt","bcollcmt");
  1871. ds_tempFilterDs.updateColID("prcphopedd","prcphopedt");
  1872. ds_tempFilterDs.updatecontrol = true;
  1873. //trace("ds_temp_search1 "+ds_temp_search.saveXML());
  1874. //2009.10.09 김성희 추가 - 조회했을때와 같은 조건으로 채혈하기 위해서
  1875. if(utlf_transNullToEmpty(ds_johoi.getColumn(0,"hdisp")) != "1"){ //통합표시 아닐때.
  1876. rowposition_value = ds_grd_BcollInfo.rowposition; //전역변수로 rowposition넘겨주기 -옥희
  1877. //trace('aaa '+ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"pid") + ' / '+rowposition_value);
  1878. dsf_createDsRow("ds_temp_search"
  1879. , [{col: "refflag", val: ds_johoi.getColumn(0,"refflag")}
  1880. , {col: "bcollflag", val: ds_johoi.getColumn(0,"bcollflag")}
  1881. , {col: "bcollflag1", val: ds_johoi.getColumn(0,"bcollflag1")}
  1882. , {col: "bizflag", val: ds_johoi.getColumn(0,"bizflag")}
  1883. , {col: "xrwGBN", val: ds_johoi.getColumn(0,"xrwGBN")}
  1884. , {col: "erflag", val: ds_johoi.getColumn(0,"erflag")}
  1885. , {col: "arvtime", val: ds_johoi.getColumn(0,"arvtime")}
  1886. , {col: "hdisp", val: ds_johoi.getColumn(0,"hdisp")}
  1887. , {col: "roundkind", val: ds_johoi.getColumn(0,"roundkind")}
  1888. , {col: "testdeptcd", val: ds_johoi.getColumn(0,"testdeptcd")}
  1889. , {col: "testdeptflagcd", val: utlf_transNullToEmpty(ds_johoi.getColumn(0,"testdeptflagcd"))}
  1890. //, {col: "atdoctid", val: utlf_transNullToEmpty(ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"atdoctid"))}
  1891. , {col: "atdoctid", val: ""}
  1892. , {col: "ibftest", val: ds_johoi.getColumn(0,"ibftest")}
  1893. , {col: "ibftestp", val: utlf_transNullToEmpty(ds_johoi.getColumn(0,"ibftestp"))}
  1894. , {col: "prntkind", val: utlf_transNullToEmpty(ds_data_setupinfo.getColumn(0,"prntkind"))}
  1895. , {col: "pid", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"pid")}
  1896. , {col: "prcpgenrflag", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"prcpgenrflag")}
  1897. , {col: "prcpddlist", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"prcpdd")}
  1898. , {col: "prcphopeddlist", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"prcphopedd")}
  1899. , {col: "orddeptcdlist", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"orddeptcd")}
  1900. // , {col: "infcinfolist", val: utlf_transNullToEmpty(appf_getPatientInfo("infection"))}
  1901. , {col: "orddridlist", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"orddrid")}]);
  1902. }
  1903. else{ //통합표시일 경우.
  1904. if(ds_johoi.getColumn(0,"bcollflag1") == "1"){ //희망일시인 경우
  1905. var prcphopedtList = "";
  1906. var orddeptcdList = "";
  1907. var orddridList = "";
  1908. var prcpddList = "";
  1909. if(ds_grd_BcollInfo.rowcount > 0) {
  1910. var fRow = ds_grd_BcollInfo.findRow("chk", 1);
  1911. if(fRow < 0) return;
  1912. prcphopedtList = "'" + ds_grd_BcollInfo.getColumn(fRow,"prcphopedd") + "'";
  1913. orddeptcdList = "'" + ds_grd_BcollInfo.getColumn(fRow,"orddeptcd") + "'";
  1914. orddridList = "'" + ds_grd_BcollInfo.getColumn(fRow,"orddrid") + "'";
  1915. prcpddList = "'" + ds_grd_BcollInfo.getColumn(fRow,"prcpdd") + "'";
  1916. for(iRow = fRow + 1; iRow < ds_grd_BcollInfo.rowcount;iRow++){
  1917. if(ds_grd_BcollInfo.getColumn(iRow,"chk") == "1"){
  1918. prcphopedtList = prcphopedtList + "," + "'" + ds_grd_BcollInfo.getColumn(iRow,"prcphopedd") + "'";
  1919. orddeptcdList = orddeptcdList + "," + "'" + ds_grd_BcollInfo.getColumn(iRow,"orddeptcd") + "'";
  1920. orddridList = orddridList + "," + "'" + ds_grd_BcollInfo.getColumn(iRow,"orddrid") + "'";
  1921. prcpddList = prcpddList + "," + "'" + ds_grd_BcollInfo.getColumn(iRow,"prcpdd") + "'";
  1922. rowposition_value = ds_grd_BcollInfo.rowposition; //전역변수로 rowposition넘겨주기 -옥희
  1923. }
  1924. }
  1925. dsf_createDsRow("ds_temp_search"
  1926. , [{col: "refflag", val: ds_johoi.getColumn(0,"refflag")}
  1927. , {col: "bcollflag", val: ds_johoi.getColumn(0,"bcollflag")}
  1928. , {col: "bcollflag1", val: ds_johoi.getColumn(0,"bcollflag1")}
  1929. , {col: "bizflag", val: ds_johoi.getColumn(0,"bizflag")}
  1930. , {col: "xrwGBN", val: ds_johoi.getColumn(0,"xrwGBN")}
  1931. , {col: "erflag", val: ds_johoi.getColumn(0,"erflag")}
  1932. , {col: "arvtime", val: ds_johoi.getColumn(0,"arvtime")}
  1933. , {col: "hdisp", val: ds_johoi.getColumn(0,"hdisp")}
  1934. , {col: "roundkind", val: ds_johoi.getColumn(0,"roundkind")}
  1935. , {col: "testdeptcd", val: ds_johoi.getColumn(0,"testdeptcd")}
  1936. , {col: "testdeptflagcd", val: ds_johoi.getColumn(0,"testdeptflagcd")}
  1937. , {col: "atdoctid", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"atdoctid")}
  1938. , {col: "ibftest", val: ds_johoi.getColumn(0,"ibftest")}
  1939. , {col: "ibftestp", val: ds_johoi.getColumn(0,"ibftestp")}
  1940. , {col: "prntkind", val: ds_data_setupinfo.getColumn(0,"prntkind")}
  1941. , {col: "pid", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"pid")}
  1942. , {col: "prcpgenrflag", val: ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"prcpgenrflag")}
  1943. , {col: "prcpddlist", val: prcpddList}
  1944. , {col: "prcphopeddlist", val: prcphopedtList}
  1945. , {col: "orddeptcdlist", val: orddeptcdList}
  1946. // , {col: "infcinfolist", val: utlf_transNullToEmpty(appf_getPatientInfo("infection"))}
  1947. //, {col: "userdeptflagcd", val: ds_init_lb0000.getColumn(0,"nm")}
  1948. , {col: "orddridlist", val: orddridList}]);
  1949. }
  1950. }
  1951. }
  1952. ds_grd_TestInfoCnts.clearData();
  1953. ds_plgybarcdinfo.clearData();
  1954. ds_barcodeinfo.clearData();
  1955. ds_errorinfo.clearData();
  1956. ds_TestspcfInfo.clearData();
  1957. ds_urin.clearData();
  1958. ds_bldcyn.clearData();
  1959. ds_msg.clearData();
  1960. var oParam = {};
  1961. oParam.id = "TXLLC80101";
  1962. oParam.service = "bcollmngtapp.BCollMngt";
  1963. oParam.method = "reqSetExecBColl";
  1964. oParam.inds = "TestData=ds_tempFilterDs:A BCollRefData=ds_temp_search";
  1965. oParam.outds = "ds_grd_TestInfoCnts=testlist ds_plgybarcdinfo=plgybcnoVO ds_errorinfo=bcollerr ds_barcodeinfo=barcodeinfo ds_TestspcfInfo=patinfo ds_msg=msg";
  1966. oParam.transaction = false;
  1967. oParam.async = false;
  1968. oParam.callback = "cf_TXLLC80101";
  1969. tranf_submit(oParam);
  1970. trace("ds_plgybarcdinfo 출력 "+ds_plgybarcdinfo.saveXML());
  1971. trace("ds_barcodeinfo 출력 "+ds_barcodeinfo.saveXML());
  1972. ds_grd_TestInfoCnts.updatecontrol = false;
  1973. fMakeCopyColumn(ds_grd_TestInfoCnts,"choi","choi2");
  1974. ds_grd_TestInfoCnts.updatecontrol = true;
  1975. //dataset 삭제
  1976. var objDs = this.removeChild("ds_temp_search");
  1977. delete objDs;
  1978. objDs = null;
  1979. } //end if(bcollTF){
  1980. }
  1981. function fMakeCopyColumn(objDs,sColSrc,sColTgt) {
  1982. if(utlf_isNull(objDs.getColumnInfo(sColTgt))) objDs.addColumn(sColTgt,"string");
  1983. for(var i = 0 ; i < objDs.rowcount ; i++) {
  1984. objDs.setColumn(i,sColTgt,objDs.getColumn(i,sColSrc));
  1985. }
  1986. }
  1987. function cf_TXLLC80101(sSvcId, nErrorCode, sErrorMsg) {
  1988. //trace("nErrorCode: "+nErrorCode);
  1989. if(nErrorCode < 0) return;
  1990. // model.copyNode("/root/send/data1","/root/hidden/default");
  1991. // model.copyNode("/root/send/data2","/root/hidden/default");
  1992. // model.removeNodeset("/root/send/data1");
  1993. // model.makeNode("/root/send/data1");
  1994. dsf_setFixVal(ds_grd_TestInfoCnts, "testdeptcd:-,testdeptflagcd:-");
  1995. iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  1996. for (var iNo=0; iNo < iMaxRowCnt; iNo++) {
  1997. ds_grd_TestInfoCnts.setColumn(iNo,"testdeptcd", ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"testdeptcd"));
  1998. ds_grd_TestInfoCnts.setColumn(iNo,"testdeptflagcd", ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"testdeptflagcd"));
  1999. }
  2000. lf_lisClearStatus(grp4.grd_TestInfoCnts);
  2001. //alert('1');
  2002. if(gv_flag != "R") {
  2003. var print = ds_data_setupinfo.getColumn(0,"prntkind");
  2004. var scrid = this.parent.parent.frmf_getScreenID(); //components[frmf_getScreenID()].getOwnerFrame().form.name;
  2005. if (scrid == 'SMLLC00100') {
  2006. ds_data_comm01.copyData(ds_data_setupinfo_comm01);
  2007. ds_data_comm02.copyData(ds_data_setupinfo_comm02);
  2008. ds_data_comm03.copyData(ds_data_setupinfo_comm03);
  2009. ds_data_blank.copyData(ds_data_setupinfo_blank);
  2010. }
  2011. //trace("print ="+print);
  2012. if(print != "3") {//zebra 오토라벨 아닐때
  2013. KCount = ds_KeepBcnoPrint.rowcount; //보관검체 바코드 갯수
  2014. PCount = ds_plgybarcdinfo.rowcount; //병리 바코드 갯수
  2015. var prtkind = ds_data_setupinfo.getColumn(0,"prntkind");
  2016. var portnm = ds_data_setupinfo.getColumn(0,"commkind");
  2017. /* 이재오 막다 20186월 18일
  2018. var mGroup = frmf_getMenuGroupCD();
  2019. if ( mGroup == "MG00430000" ) { //핵의학 바코드용
  2020. trace('핵의학 11111111111111');
  2021. //lf_LisSpcBarcodePrint_test(ds_barcodeinfo,"", 0, 0, scrflag); //fLisSpcBarcodePrint(진검바코드인스턴스, 보관검체바코드갯수, 병리바코드갯수, 화면구분(병동,환자별일때 true))
  2022. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2023. //var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  2024. barcdRef = barcdRef.replace("/setupinfo", "");
  2025. ds_barcodeinfo.addColumn("sectauto","string");
  2026. var prcpdelivefact = "";
  2027. for (i=0; i<ds_barcodeinfo.rowcount; i++) {
  2028. prcpdelivefact = ds_barcodeinfo.getColumn(i,"prcpdelivefact");
  2029. //2.0 remark 출력 start
  2030. if((!utlf_isNull(prcpdelivefact)) && ((prcpdelivefact.length) == 1)){
  2031. prcpdelivefact = prcpdelivefact.replace("-", ""); //Remark
  2032. }
  2033. if(utlf_isNull(prcpdelivefact)){
  2034. prcpdelivefact = "";
  2035. }
  2036. ds_barcodeinfo.setColumn(i,"prcpdelivefact",prcpdelivefact);
  2037. ds_barcodeinfo.setColumn(i,"sectauto",(ds_barcodeinfo.getColumn(i,"secttsect").substr(0,1))); //자동화 줄 표시용 추가
  2038. }
  2039. var objDOM = rptf_createDOM(); // DOM 객체 설정
  2040. rptf_setNodeListToDOM(objDOM, "root/BarCodeNode", ds_barcodeinfo); // 데이터셋
  2041. var objParam = new Object();
  2042. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  2043. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  2044. //var sOption = "copies=" + prncnt;
  2045. var sOption = "";
  2046. rptf_printRexNmbar("RPMNO00112", "", "root/BarCodeNode", ds_barcodeinfo,"", "", sOption);
  2047. }
  2048. * 이재오 막다 20186월 18일 *
  2049. */
  2050. if( (prtkind == "9" && portnm == "01") || (prtkind == "11" && portnm == "01") || prtkind == "10" || prtkind == "2" || prtkind == "6" || prtkind == "7"){ // sato 바코드
  2051. lf_LisSpcBarcodePrint2(ds_barcodeinfo,"", 0, 0, scrflag); //fLisSpcBarcodePrint(진검바코드인스턴스, 보관검체바코드갯수, 병리바코드갯수, 화면구분(병동,환자별일때 true))
  2052. }else if(prtkind == "8"){ // B472 바코드
  2053. lf_LisSpcBarcodePrint3(ds_barcodeinfo,"", 0, 0, scrflag);
  2054. }else{ // zebra 바코드
  2055. lf_LisSpcBarcodePrint(ds_barcodeinfo,"", 0, 0, scrflag); //fLisSpcBarcodePrint(진검바코드인스턴스, 보관검체바코드갯수, 병리바코드갯수, 화면구분(병동,환자별일때 true))
  2056. }
  2057. //-------------------
  2058. // 병리과 바코드 출력
  2059. //LCount = getNodesetCount("/root/main/TestInfo/barcodeinfo"); //진검 바코드 갯수
  2060. LCount = 0 //getNodesetCount("/root/main/TestInfo/barcodeinfo"); //진검 바코드 갯수
  2061. //---------------------------------------------------------
  2062. if ( prtkind == "2" || prtkind == "6" || prtkind == "7") {
  2063. lf_LisPlgySpcBarcodePrint(LCount,""); // sato
  2064. //--------------------------
  2065. } else if(prtkind == "8") {
  2066. lf_LisPlgySpcBarcodePrint3(LCount,""); //B472
  2067. //----------------------------
  2068. } else if (prtkind == "10") {
  2069. fExePlgyBarCdPrntEPL(LCount); // Zebra EPL(TLP2844, TLP2842)용
  2070. //---------------------------
  2071. //} else if (prtkind == "9") {
  2072. } else if ( prtkind == "9" || prtkind == "5" ) { // 외래채혈실 바코드 추가(5)
  2073. lf_ExePlgyBarCdPrnt300(LCount); // zebra 300 DPI
  2074. } else {
  2075. fExePlgyBarCdPrnt(LCount); // zebra 200 DPI
  2076. }
  2077. } else if(print == "3") { //auto label
  2078. //운영반영금지
  2079. KCount = ds_KeepBcnoPrint.rowcount; //보관검체 바코드 갯수
  2080. PCount = ds_plgybarcdinfo.rowcount; //병리 바코드 갯수
  2081. //trace(ds_barcodeinfo.saveXML());
  2082. lf_LisSpcBarcodePrint(ds_barcodeinfo,"", KCount, PCount, scrflag); //fLisSpcBarcodePrint(진검바코드인스턴스, 보관검체바코드갯수, 병리바코드갯수, 화면구분(병동,환자별일때 true))
  2083. }
  2084. } else {
  2085. sysf_messageBox("접수가", "I002");
  2086. }
  2087. //alert('2');
  2088. if(gv_ICGTF) { //의뢰서 등록이 되지 않은 ICG 검사 있을경우.
  2089. sysf_messageBox("ICG 검사 의뢰서 등록이 되지 않아 ICG 검사 바코드발행이 되지", "E007");
  2090. }
  2091. if(gv_scrnid == "SMLLC00100") {// 외래 일때 strip, br, mr이 있으면 팝업창 띄우기..
  2092. if(ds_barcodeinfo.rowcount > 0) {
  2093. var bcno = "'" + ds_barcodeinfo.getColumn(0,"bcno") + "'";
  2094. for(i = 1; i < ds_barcodeinfo.rowcount; i++) {
  2095. bcno = bcno + ",'" + ds_barcodeinfo.getColumn(i,"bcno") + "'";
  2096. }
  2097. dsf_createDsRow("ds_temp_search"
  2098. , [{col: "refflag", val: "3"}
  2099. , {col: "search", val: bcno}
  2100. , {col: "prcpdd", val: ds_grd_BcollInfo.getColumn(grd_BcollInfo.rowposition,"prcpdd")}
  2101. ]);
  2102. var oParam = {};
  2103. oParam.id = "TRLLR91202";
  2104. oParam.service = "rsltmngtapp.RsltMngt";
  2105. oParam.method = "reqGetBTRslt";
  2106. oParam.inds = "cond=ds_temp_search";
  2107. oParam.outds = "ds_tclsnm=getBTRslt";
  2108. oParam.async = false;
  2109. // oParam.callback = "cf_TRLLR91202";
  2110. tranf_submit(oParam);
  2111. dsf_createDs("ds_hidden_tclsnm");
  2112. dsf_copyColInfo(ds_hidden_tclsnm,ds_tclsnm,"replace");
  2113. ds_hidden_tclsnm.addRow();
  2114. var objArg = new Object();
  2115. if(ds_tclsnm.rowcount > 0){
  2116. //trace('aaaa');
  2117. for(i = 0; i < ds_tclsnm.rowcount; i++) {
  2118. trace('bbb '+i);
  2119. ds_hidden_tclsnm.copyRow(0,ds_tclsnm,i);
  2120. objArg.arg_ds_strip = ds_hidden_tclsnm;
  2121. frmf_modal("SPLLR91200","SPLLR91200",objArg,"","","","","","","","","","M");
  2122. }
  2123. }
  2124. }
  2125. }
  2126. //alert('3');
  2127. if(ds_msg.rowcount > 0) { //외래환자의 경우 입원이 된 경우 채혈을 하지 않는다.
  2128. var hngnm = "";
  2129. for(i = 0; i < ds_msg.rowcount; i++) {
  2130. hngnm += ds_msg.getColumn(0,"jhngnm") + ", ";
  2131. }
  2132. hngnm = hngnm.substr(0, hngnm.length - 2);
  2133. sysf_messageBox(hngnm + "환자는 입원이 되어 채혈되지", "E007");
  2134. }
  2135. //alert('4 '+ds_grd_TestInfoCnts.rowcount);
  2136. if(ds_grd_TestInfoCnts.rowcount <= 0) { //미채혈 항목이 없을 경우 환자목록 재 조회
  2137. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll") {
  2138. lf_GetOutBCollJoHoi();
  2139. } else if(ds_johoi.getColumn(0,"xrwGBN") == "inbcoll") {
  2140. if(!utlf_isNull(ds_johoi.getColumn(0,"regnopatnm"))) {
  2141. lf_getInBCollJoHoi("Q");
  2142. }else {
  2143. lf_getInBCollJoHoi();
  2144. }
  2145. } else if(ds_johoi.getColumn(0,"xrwGBN") == "patbcoll") {
  2146. if(!utlf_isNull(ds_johoi.getColumn(0,"regnopatnm"))) {
  2147. lf_getBCollJoHoi("Q");//lf_GetBCollJoHoi("Q");
  2148. }else {
  2149. lf_getBCollJoHoi();
  2150. }
  2151. }
  2152. } else {
  2153. // alert('5');
  2154. // lf_gridReMake();
  2155. }
  2156. // alert('6');
  2157. // lf_gridReMake();
  2158. //
  2159. }
  2160. //미채혈 사유 저장
  2161. function lf_noBcollCmtSave(){
  2162. ds_data_nobcollcmt.clear(); //데이타셋 초기화 2014.12.29
  2163. //처방상세 그리드에 미채혈사유 입력된것만 저장
  2164. ds_data_nobcollcmt.addColumn("instcd", "string");
  2165. ds_data_nobcollcmt.addColumn("pid", "string");
  2166. ds_data_nobcollcmt.addColumn("execprcpuniqno", "string");
  2167. ds_data_nobcollcmt.addColumn("tclscd", "string");
  2168. ds_data_nobcollcmt.addColumn("testcd", "string");
  2169. ds_data_nobcollcmt.addColumn("spccd", "string");
  2170. ds_data_nobcollcmt.addColumn("nobcollcd", "string");
  2171. ds_data_nobcollcmt.addColumn("nobcollcmt", "string");
  2172. ds_data_nobcollcmt.addColumn("gruptclscd", "string");
  2173. var tclscd = "";
  2174. var gruptclscd = "";
  2175. for(var i=0; i < ds_grd_TestInfoCnts.rowcount; i++){
  2176. if(gruptclscd == ""){
  2177. tclscd = ds_grd_TestInfoCnts.getColumn(i, "tclscd");
  2178. }else{
  2179. tclscd = ds_grd_TestInfoCnts.getColumn(i, "gruptclscd");
  2180. }
  2181. ds_data_nobcollcmt.addRow();
  2182. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "instcd", ds_grd_TestInfoCnts.getColumn(i, "instcd"));
  2183. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "pid", ds_grd_TestInfoCnts.getColumn(i, "pid"));
  2184. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "execprcpuniqno", ds_grd_TestInfoCnts.getColumn(i, "execprcpuniqno"));
  2185. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "tclscd", tclscd);
  2186. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "testcd", ds_grd_TestInfoCnts.getColumn(i, "tclscd"));
  2187. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "spccd", ds_grd_TestInfoCnts.getColumn(i, "spccd"));
  2188. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "nobcollcd", ds_grd_TestInfoCnts.getColumn(i, "nobcollcd"));
  2189. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "nobcollcmt", ds_grd_TestInfoCnts.getColumn(i, "nobcollcmt"));
  2190. ds_data_nobcollcmt.setColumn(ds_data_nobcollcmt.rowcount-1, "gruptclscd", ds_grd_TestInfoCnts.getColumn(i, "gruptclscd"));
  2191. //}
  2192. }
  2193. if(ds_data_nobcollcmt.rowcount > 0){
  2194. tranf_submit({
  2195. id: ""
  2196. , service: "bcollmngtapp.BCollMngt"
  2197. , method: "reqExecNoBcollCmt"
  2198. , inds : "cond=ds_data_nobcollcmt"
  2199. , async: false
  2200. });
  2201. }else{
  2202. sysf_messageBox("저장 할 미채혈사유가 없습니다.","I");
  2203. }
  2204. }
  2205. //미채혈 사유 선택시 셋팅 처리
  2206. function lf_setNoBcollCmt(){
  2207. }
  2208. // 병리과 의뢰지 팝업창 표시
  2209. function lf_getReqFrmInfo() {
  2210. var sPid = "";
  2211. var sReqFrmNo = 0;
  2212. var iOrgMaxCnt = 0;
  2213. var iMaxCnt = 0;
  2214. var bAddStatus = false;
  2215. var iFrznBcCnt = 1;
  2216. ds_reqfrminfo.clearData();
  2217. //-----------------------------------
  2218. // 병리과 처방일경우 의뢰지 팝업을 호출
  2219. if(ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"testlrgkind") == "P"){
  2220. ds_reqfrminfo.addRow();
  2221. ds_reqfrminfo.setColumn(0,"pid",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"pid"));
  2222. ds_reqfrminfo.setColumn(0,"prcpcd",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"tclscd"));
  2223. ds_reqfrminfo.setColumn(0,"spccd",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"spccd"));
  2224. ds_reqfrminfo.setColumn(0,"reqno",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"reqfrmno"));
  2225. ds_reqfrminfo.setColumn(0,"prcpnm",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"tclsscrnm"));
  2226. ds_reqfrminfo.setColumn(0,"spcnm",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"spcnm"));
  2227. ds_reqfrminfo.setColumn(0,"prcpdd",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"prcpdd"));
  2228. ds_reqfrminfo.setColumn(0,"prcpno",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"prcpno"));
  2229. ds_reqfrminfo.setColumn(0,"execprcpuniqno",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"execprcpuniqno"));
  2230. ds_reqfrminfo.setColumn(0,"workflagcd",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"tubecd"));
  2231. ds_reqfrminfo.setColumn(0,"xrwGBN",ds_johoi.getColumn(0,"xrwGBN"));
  2232. ds_reqfrminfo.setColumn(0,"reqfrmflagcd",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"reqfrmflagcd"));
  2233. //ds_reqfrminfo.setColumn(0,"bcgbn",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcchk"));
  2234. ds_reqfrminfo.setColumn(0,"bcgbn",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcchk"));
  2235. //-----------------------------------------------
  2236. // 의뢰지 내용 수정의 기준을 위해 처방상태를 전단
  2237. ds_reqfrminfo.setColumn(0,"prcpstatcd",ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"orgprcpstatcd"));
  2238. //arg_ds_hidden_reqfrminfo
  2239. //의뢰지 팝업호출
  2240. //lpzfExeReqFrmInfo(ds_grd_TestInfoCnts,ds_grd_TestInfoCnts.rowposition);
  2241. lpzfExeReqFrmInfo(ds_reqfrminfo,0);
  2242. //--내용추가 종료------------------------------------------------------------------------------------------------------------------/
  2243. //lf_getTclscdList(ds_grd_BcollInfo.rowposition);
  2244. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll") {
  2245. //trace('aaaaaaaaaaaaaaaa');
  2246. parent.parent.lf_GetTclscdList(ds_grd_BcollInfo.rowposition); //처방상세목록 조회
  2247. }
  2248. if(ds_johoi.getColumn(0,"xrwGBN") == "inbcoll") {
  2249. //trace('aaaaaaaaaaaaaaaa');
  2250. parent.parent.fGetTclscdList(ds_grd_BcollInfo.rowposition); //처방상세목록 조회
  2251. }
  2252. /*
  2253. //팝업에서 opener dataset변경처리한다.
  2254. //-------------------------------------------------------------------------
  2255. if(ds_reqfrminfo.getColumn(0,"spcseqno")) return false;
  2256. //-------------------------------------------------------------------------
  2257. sPid = ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"pid");
  2258. sReqFrmNo = ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"reqfrmno");
  2259. //-----------------
  2260. bAddStatus = false;
  2261. //------------------------------------------
  2262. // 의뢰지상의 검체 수 를 화면에 재 표시한다.
  2263. for(var iNo=0; iNo < ds_grd_TestInfoCnts.rowcount; iNo++){
  2264. if (sPid == ds_grd_TestInfoCnts.getColumn(iNo,"pid") &&
  2265. sReqFrmNo == ds_grd_TestInfoCnts.getColumn(iNo,"reqfrmno")) {
  2266. //-------------------------------------------------------------------------
  2267. iOrgMaxCnt = Number(ds_grd_TestInfoCnts.getColumn(iNo,"bcollbarcdprntcnt"))+1;
  2268. iMaxCnt = Number(ds_reqfrminfo.getColumn(0,"spccnt"));
  2269. trace("spccnt: "+objRetVal.spccnt);
  2270. trace("spcseqno: "+objRetVal.spcseqno);
  2271. trace("spcseqnm: "+objRetVal.spcseqnm);
  2272. ds_grd_TestInfoCnts.setColumn(iNo,"bcollbarcdprntcnt",objRetVal.spccnt);
  2273. // ds_grd_TestInfoCnts.setColumn(iNo,"bcollbarcdprntcnt",ds_reqfrminfo.getColumn(0,"spccnt"));
  2274. ds_grd_TestInfoCnts.setColumn(iNo,"spcseqno",ds_reqfrminfo.getColumn(0,"spcseqno"));
  2275. ds_grd_TestInfoCnts.setColumn(iNo,"spcseqnm",ds_reqfrminfo.getColumn(0,"spcseqnm"));
  2276. var aSpcSeqNo = ds_grd_TestInfoCnts.getColumn(iNo,"spcseqno").getTrim().split("▨");
  2277. var aSpcSeqNm = ds_grd_TestInfoCnts.getColumn(iNo,"spcseqnm").getTrim().split("▨");
  2278. //-----------------------------------------------------------
  2279. for (var iSpcCnt=iOrgMaxCnt; iSpcCnt <= iMaxCnt; iSpcCnt++) {
  2280. //-----------------------
  2281. iSpcNo = Number(iSpcCnt);
  2282. sRePrntCnt = iSpcNo.toString();
  2283. aSpcSeqNo[Number(iSpcNo)] = iSpcNo.toString().getLeftPad(3, "0");
  2284. aSpcSeqNm[Number(iSpcNo)] = ".";
  2285. //------------------------
  2286. if (bAddStatus == false) {
  2287. bAddStatus = true;
  2288. }
  2289. }
  2290. }
  2291. } */
  2292. }
  2293. }
  2294. //우클릭팝업메뉴
  2295. function lf_GetRMouseDown(screenX, screenY, row, col){
  2296. if(row > -1){
  2297. //frmfds_pm_SubMenu.clearData();
  2298. if(ds_grd_TestInfoCnts.getColumn(row,"testlrgkind") == "P" //병리
  2299. && ds_grd_TestInfoCnts.getColumn(row,"tubecd") == "1002" //동결절편(frozen)처방일때 LIS.LPCMTEST.WORKFLAGCD = '1002'
  2300. && ds_grd_TestInfoCnts.getColumn(row,"orgprcpstatcd") >= "400" //바코드발행 상태 이상
  2301. && ds_johoi.getColumn(0,"xrwGBN") == "inbcoll"){ //병동채혈
  2302. frmf_setPopupMenuDs("pm_SubMenu", [{id: "fGetFrozen", level: "0", title: "▶ frozen 검체현황조회"}
  2303. , {id: "", level: "0", title: "-"}
  2304. , {id: "fTestInfo", level: "0", title: "▶ 검사정보"}
  2305. , {id: "", level: "0", title: "-"}
  2306. , {id: "fGetResultRef", level: "0", title: "▶ 통합결과조회"}]);
  2307. }else if(ds_grd_TestInfoCnts.getColumn(row,"testlrgkind") == "P" //병리
  2308. && ds_grd_TestInfoCnts.getColumn(row,"tubecd") != "1002" //동결절편(frozen)처방아닐때
  2309. && ds_grd_TestInfoCnts.getColumn(row,"orgprcpstatcd") >= "400" //바코드발행 상태 이상
  2310. && ds_johoi.getColumn(0,"xrwGBN") == "inbcoll"){ //병동채혈
  2311. frmf_setPopupMenuDs("pm_SubMenu", [{id: "fGetTissu", level: "0", title: "▶ 조직검체현황조회"}
  2312. , {id: "", level: "0", title: "-"}
  2313. , {id: "fTestInfo", level: "0", title: "▶ 검사정보"}
  2314. , {id: "", level: "0", title: "-"}
  2315. , {id: "fGetResultRef", level: "0", title: "▶ 통합결과조회"}]);
  2316. }else{
  2317. frmf_setPopupMenuDs("pm_SubMenu", [{id: "fTestInfo", level: "0", title: "▶ 검사정보"}
  2318. , {id: "", level: "0", title: "-"}
  2319. , {id: "fGetResultRef", level: "0", title: "▶ 통합결과조회"}]);
  2320. if(ds_johoi.getColumn(0,"bcollflag") != "1"
  2321. && ds_grd_TestInfoCnts.getColumn(row,"testlrgkind") != "P"
  2322. && ds_grd_TestInfoCnts.getColumn(row,"blodculyn") == "Y"){
  2323. frmf_setPopupMenuDs("pm_SubMenu", [{id: "fTestInfo", level: "0", title: "▶ 검사정보"}
  2324. , {id: "", level: "0", title: "-"}
  2325. , {id: "fGetResultRef", level: "0", title: "▶ 통합결과조회"}
  2326. , {id: "", level: "0", title: "-"}
  2327. , {id: "fexeBlodculyn", level: "0", title: "▶ 혈액배양정보등록"}]);
  2328. }
  2329. }
  2330. pm_SubMenu.trackPopup(screenX+5,screenY+5,"right bottom");
  2331. }
  2332. }
  2333. //우클릭팝업메뉴 선택
  2334. function lf_Onmenu(id){
  2335. if(id == "fGetFrozen"){//frozen 검체현황조회
  2336. lf_getFrozen();
  2337. }else if(id == "fTestInfo"){//검사정보
  2338. lf_testInfo();
  2339. }else if(id == "fGetResultRef"){//통합결과조회
  2340. lf_getResultRef();
  2341. }else if(id == "fGetTissu"){//조직검체현황조회
  2342. lf_getTissu();
  2343. }
  2344. }
  2345. // 바코드 재출력
  2346. function lf_lzzfBarCodeRePrinf(pFlagCd) {
  2347. trace("lf_lzzfBarCodeRePrinf 1");
  2348. ds_barcodeinfo.clearData();
  2349. ds_plgybarcdinfo.clearData();
  2350. var bcollTF = false;
  2351. var bcollPlgyTF = false;
  2352. var bcno = "";
  2353. var strPlgyRowNo = "";
  2354. var strRePrntCnt = "";
  2355. var strNo = "";
  2356. var strSubNo = "";
  2357. var mTF = false;
  2358. var sFlagCd = "1";
  2359. //멀티레포트 입력변수
  2360. var reportNames = new Array(); //레포트명
  2361. var reportParams = new Array(); //레포트 파라미터
  2362. //------------------------------------------------
  2363. for(iRow=0;iRow < ds_grd_TestInfoCnts.rowcount; iRow++) {
  2364. // 선택된 검체만 처리
  2365. if(ds_grd_TestInfoCnts.getColumn(iRow,"bcchk") == "true"){
  2366. //---------------------------------
  2367. // 병리과 검체는 직접 출력하기에 제외
  2368. if (ds_grd_TestInfoCnts.getColumn(iRow,"testlrgkind") == "P") {
  2369. //--------------------------------------------------------------
  2370. strRePrntCnt = ds_grd_TestInfoCnts.getColumn(iRow,"reprntcnt");// 재출력 범위
  2371. if (utlf_isNull(strRePrntCnt)) {
  2372. strRePrntCnt = "1";
  2373. }
  2374. //--------------------------
  2375. // 재출력 범위가 미정시 제외
  2376. bcollPlgyTF = true;
  2377. if (utlf_isNull(strRePrntCnt) || strRePrntCnt == "-") {
  2378. // Continue
  2379. mTF = false;
  2380. } else {
  2381. strPlgyRowNo = strPlgyRowNo + iRow + ",";
  2382. }
  2383. //-----------------------
  2384. // 진단검사인 경우만 처리
  2385. } else {
  2386. bcno = bcno + "'" + ds_grd_TestInfoCnts.getColumn(iRow,"bcno") + "'" + ",";
  2387. bcollTF = true;
  2388. ds_grd_TestInfoCnts.setColumn(iRow,"choi","1");
  2389. }
  2390. }
  2391. }
  2392. //---------
  2393. if(bcollTF) {
  2394. var Barcd = 1;
  2395. bcno = bcno.substring( 0 ,bcno.length - 1);
  2396. ////2.0추가 remark
  2397. dsf_createDs("ds_tempFilterDs");
  2398. ds_grd_TestInfoCnts.updatecontrol = false;
  2399. grdf_setStatusColumn(ds_grd_TestInfoCnts,"status");
  2400. ds_grd_TestInfoCnts.updatecontrol = true;
  2401. var strXML = ds_grd_TestInfoCnts.saveXML("ds_grd_TestInfoCnts","u");
  2402. ds_tempFilterDs.loadXML(strXML);
  2403. ////2.0추가 remark
  2404. //trace(strXML);
  2405. //return;
  2406. //--------------------
  2407. dsf_createDsRow("ds_temp_search"
  2408. , [{col: "bcnolist", val: bcno}
  2409. , {col: "reprint", val: "1"}]);
  2410. var oParam = {};
  2411. oParam.id = "TRLZZ00102";
  2412. oParam.service = "diagtestapplib.LisCommon";
  2413. oParam.method = "reqGetBarCodeInfo";
  2414. oParam.inds = "bcollbcnolist=ds_temp_search";
  2415. oParam.outds = "ds_barcodeinfo=barcodeinfo";
  2416. oParam.async = false;
  2417. oParam.callback = "cf_TRLZZ00102";
  2418. tranf_submit(oParam);
  2419. //trace('재출력 '+ds_barcodeinfo.saveXML());
  2420. if(arErrorCode.pop("TRLZZ00102") > -1) {
  2421. //----------------------------------------------------
  2422. trace('핵의학 2');
  2423. PCount = bcollPlgyTF ? 1 : 0;
  2424. //alert(PCount);
  2425. var prtkind = ds_data_setupinfo.getColumn(0,"prntkind");
  2426. var portnm = ds_data_setupinfo.getColumn(0,"commkind");
  2427. /* 이재오 막다 2018.6.18일
  2428. var mGroup = frmf_getMenuGroupCD();
  2429. trace('핵의학 3 '+ mGroup);
  2430. if ( mGroup == "MG00430000" ) { //핵의학 바코드용
  2431. trace('핵의학 11111111111111');
  2432. lf_LisSpcBarcodePrint_test(ds_barcodeinfo,"", 0, 0, scrflag); //fLisSpcBarcodePrint(진검바코드인스턴스, 보관검체바코드갯수, 병리바코드갯수, 화면구분(병동,환자별일때 true))
  2433. // var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2434. // //var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  2435. //
  2436. // barcdRef = barcdRef.replace("/setupinfo", "");
  2437. // ds_barcodeinfo.addColumn("sectauto","string");
  2438. //
  2439. // var prcpdelivefact = "";
  2440. // for (i=0; i<ds_barcodeinfo.rowcount; i++) {
  2441. //
  2442. // prcpdelivefact = ds_barcodeinfo.getColumn(i,"prcpdelivefact");
  2443. // //2.0 remark 출력 start
  2444. // if((!utlf_isNull(prcpdelivefact)) && ((prcpdelivefact.length) == 1)){
  2445. // prcpdelivefact = prcpdelivefact.replace("-", ""); //Remark
  2446. // }
  2447. // if(utlf_isNull(prcpdelivefact)){
  2448. // prcpdelivefact = "";
  2449. // }
  2450. //
  2451. // ds_barcodeinfo.setColumn(i,"prcpdelivefact",prcpdelivefact);
  2452. // ds_barcodeinfo.setColumn(i,"sectauto",(ds_barcodeinfo.getColumn(i,"secttsect").substr(0,1))); //자동화 줄 표시용 추가
  2453. //
  2454. // }
  2455. //
  2456. //
  2457. // var objDOM = rptf_createDOM(); // DOM 객체 설정
  2458. // rptf_setNodeListToDOM(objDOM, "root/BarCodeNode", ds_barcodeinfo); // 데이터셋
  2459. //
  2460. // var objParam = new Object();
  2461. // objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  2462. //
  2463. // var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  2464. //
  2465. // //var sOption = "copies=" + prncnt;
  2466. // var sOption = "";
  2467. //
  2468. // rptf_printRexNmbar("RPMNO00112", "", "root/BarCodeNode", ds_barcodeinfo,"", "", sOption);
  2469. }
  2470. 이재오 막다 2018.6.18일
  2471. */
  2472. if( (prtkind == "9" && portnm == "01") || (prtkind == "11" && portnm == "01") || prtkind == "10" || prtkind == "2" || prtkind == "6" || prtkind == "7"){
  2473. lf_LisSpcBarcodePrint2(ds_barcodeinfo, "",0, PCount);
  2474. }else if( prtkind == "8"){
  2475. lf_LisSpcBarcodePrint3(ds_barcodeinfo, "", 0, PCount);
  2476. }else{
  2477. lf_LisSpcBarcodePrint(ds_barcodeinfo, "", 0, PCount, "","Y");
  2478. }
  2479. }
  2480. }
  2481. trace('병리과'+bcollPlgyTF);
  2482. //-------------------------------
  2483. // 병리과 검체가 있을 경우 재출력
  2484. if (bcollPlgyTF) {
  2485. LCount = ds_barcodeinfo.rowcount;
  2486. trace("bcollPlgyTF = "+LCount+' / '+sFlagCd+' / '+strPlgyRowNo);
  2487. //var len = strPlgyRowNo.length;
  2488. var len = strPlgyRowNo.length-1;
  2489. //trace("length :"+len)
  2490. var strPlgy = strPlgyRowNo.substr(0,len);
  2491. trace('strPlgy :'+strPlgy);
  2492. fExePlgyReBarCdPrnt(strPlgy, LCount, sFlagCd);
  2493. }
  2494. if(mTF){
  2495. sysf_messageBox("재출력범위를 " , "C001" ,"");
  2496. }
  2497. }
  2498. function cf_TRLZZ00102(sSvcId, nErrorCode, sErrorMsg) {
  2499. arErrorCode.push(sSvcId, nErrorCode);
  2500. }
  2501. //--------------------
  2502. // 병리과 바코드 재출력
  2503. function fExePlgyReBarCdPrnt(pRowStr, pLCount, pFlagCd) {
  2504. trace("fExePlgyReBarCdPrnt1 "+pRowStr+"/"+pLCount+"/"+pFlagCd);
  2505. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  2506. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  2507. var sBarCdNoH = "";
  2508. var sBarCdNoD = "";
  2509. var sPrntNo = "";
  2510. var sSubPrntNo = "";
  2511. var sRePrntCnt = "";
  2512. var iStartNo = 1;
  2513. var iEndNo = 99;
  2514. var iFindColNo = -1;
  2515. var iSpcNo = 0;
  2516. var sSpcSeqNo = "";
  2517. var sSpcSeqNm = "";
  2518. var aSpcSeqNo = "";
  2519. var aSpcSeqNm = "";
  2520. var sSndMsg = "";
  2521. var sPrcpDD = "";
  2522. //-----------------------------
  2523. var sRowNo = pRowStr.split(",");
  2524. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2525. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  2526. trace('sPrntKind :'+sPrntKind);
  2527. var iLeft = ds_data_blank.getColumn(0,"left");
  2528. var iTop = ds_data_blank.getColumn(0,"top");
  2529. var iXPos = 0;
  2530. var iYPos = 0;
  2531. var iWidth = 0;
  2532. var aFlag = new Array();
  2533. var aStr = "";
  2534. var portOpenTF = "";
  2535. var LCount = 0;
  2536. var iFrznBcCnt = 1;
  2537. if(utlf_isNull(pLCount)){
  2538. LCount = 0;
  2539. }else if(pLCount > 0){
  2540. LCount = pLCount;
  2541. }
  2542. //-----------------------------------------
  2543. if (utlf_isNull(iLeft) || iLeft == "-") iLeft = 0;
  2544. if (utlf_isNull(iTop) || iTop == "-") iTop = 0;
  2545. //------------------------------
  2546. // 2008-10-12 : 병리과 여백 조정
  2547. iLeft = Number(iLeft) + Number(20);
  2548. iTop = Number(iTop) + Number(30);
  2549. if(sPrntKind != "0") {
  2550. //---------------------------------------------------
  2551. for (var iRowNo=0; iRowNo < sRowNo.length; iRowNo++) {
  2552. //----------------------------------------------------------------------------
  2553. sRePrntCnt = ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "reprntcnt"); // 재출력 범위
  2554. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "spcseqno"); // 검체일련번호 목록
  2555. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "spcseqnm"); // 검체명 목록
  2556. if (utlf_isNull(sRePrntCnt) || sRePrntCnt == "-") sRePrntCnt = 1;
  2557. //------------------------------------
  2558. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  2559. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  2560. //------------------------------------------------------------
  2561. // 병동채혈 화면에서 병리과 Frozen계열의 검사를 재발행 할 경우
  2562. // 의뢰지에 강제로 검체를 하나씩 추가하여, 추가된 검체를 출력한다.
  2563. if (ds_johoi.getColumn(0,"xrwGBN") == "inbcoll") {
  2564. //-----------------------------------
  2565. // Frozen추가 버튼을 클릭한 경우 처리
  2566. if (pFlagCd == "0") {
  2567. //-----------------------------------------------------------------
  2568. // 병리과 Frozen(동결절편) 계열의 처방만 재발행 시 검체를 추가한다.
  2569. if (ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "tubecd") == "1002") {
  2570. //----------------------------------------------------------------------------------
  2571. iSpcNo = Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "bcollbarcdprntcnt"))+1;
  2572. //-----------------------------------------------------------------------
  2573. ds_grd_TestInfoCnts.setColumn(sRowNo[iRowNo], "bcollbarcdprntcnt", iSpcNo);
  2574. sRePrntCnt = iSpcNo.toString();
  2575. aSpcSeqNo[Number(iSpcNo)-1] = iSpcNo.toString().getLeftPad(3, "0");
  2576. aSpcSeqNm[Number(iSpcNo)-1] = ".";
  2577. ds_grd_TestInfoCnts.setColumn(sRowNo[iRowNo], "spcseqno", ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "spcseqno")+"▨"+iSpcNo.toString().getLeftPad(3, "0"));
  2578. ds_grd_TestInfoCnts.setColumn(sRowNo[iRowNo], "spcseqnm", ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "spcseqnm")+"▨.");
  2579. //--------------------------------
  2580. //model.removeNodeset("/root/send");
  2581. dsf_createDsRow("ds_send",
  2582. [{col:"instcd", val:sysf_getUserInfo("dutplceinstcd")}
  2583. ,{col:"pid", val:ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "pid")}
  2584. ,{col:"reqno", val:ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "reqfrmno")}
  2585. ,{col:"maxno", val:iSpcNo }
  2586. ,{col:"prcpdd", val:ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "prcpdd")}
  2587. ,{col:"execprcpuniqno", val:ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "execprcpuniqno")}
  2588. ,{col:"prcpgenrflag", val:ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "prcpgenrflag")}
  2589. ]);
  2590. //------------------------------------------------------------------
  2591. if (ds_johoi.getColumn(0,"xrwGBN") == "patbcoll") {
  2592. dsf_makeValue(ds_send,"testdeptcd", "string", ds_hidden.getColumn(0,"testdeptcd"));
  2593. } else {
  2594. dsf_makeValue(ds_send,"testdeptcd", "string", "");
  2595. }
  2596. var oParam = {};
  2597. oParam.id = "TXLLC90403";
  2598. oParam.service = "plgycomnusemngtapp.BaseInfoCode";
  2599. oParam.method = "reqExeDetlSpcAdd";
  2600. oParam.inds = "refData=ds_send";
  2601. oParam.async = false;
  2602. oParam.callback = "cf_TXLLC90403";
  2603. tranf_submit(oParam);
  2604. if (arErrorCode.pop("TXLLC90403") < 0) {
  2605. sysf_messageBox("검체 추가 중 오류가 발생하여 재발행을 진행할 수 없습니다!", "I009");
  2606. return false;
  2607. }
  2608. }
  2609. }
  2610. }
  2611. //var aSpcSeqNm = ds_grd_TestInfoCnts.getColumn(iNo,"spcseqnm").getTrim().split(",");
  2612. //trace('병리 재출력4 '+sRePrntCnt.getTrim().split(","));
  2613. //-------------------------------------------
  2614. sRePrntCnt = sRePrntCnt+",";
  2615. //var aa = sRePrntCnt.split(",");
  2616. //trace("sRePrntCnt ="+sRePrntCnt);
  2617. //if ( aa > -1) {
  2618. if (sRePrntCnt.getTrim().indexOf(",") > -1) {
  2619. //trace("sRePrntCnt1 ="+sRePrntCnt);
  2620. trace("병리1 :"+sPrntKind);
  2621. //------------------------------
  2622. sPrntNo = sRePrntCnt.split(",");
  2623. sRowNo = pRowStr.split(",");
  2624. trace("sPrntNo ="+sPrntNo+' / '+sRowNo+'/'+ sPrntNo.length);
  2625. //-----------------------------------------------------
  2626. for (var iColNo=0; iColNo < sPrntNo.length-1; iColNo++) {
  2627. trace('병리 cnt '+iColNo);
  2628. //------------------------------------------------
  2629. if (sPrntNo[iColNo].getTrim().indexOf("-") > -1) {
  2630. trace("병리2");
  2631. //--------------------------------------
  2632. sSubPrntNo = sPrntNo[iColNo].split("-");
  2633. iFindColNo = sPrntNo[iColNo].getTrim().indexOf("-");
  2634. //------------------------
  2635. if (utlf_isNull(sSubPrntNo[0])) {
  2636. iStartNo = 1; // 재출력 시작번호
  2637. } else {
  2638. iStartNo = Number(sSubPrntNo[0]); // 재출력 시작번호
  2639. //-----------------------------
  2640. if (iStartNo < 1) iStartNo = 1;
  2641. }
  2642. //----------------------
  2643. // 종료번호를 지정한 경우
  2644. if (!utlf_isNull(sSubPrntNo[1])) {
  2645. iEndNo = Number(sSubPrntNo[1]); // 채출력 종류번호
  2646. if (iEndNo > Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "bcollbarcdprntcnt"))) {
  2647. iEndNo = Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "bcollbarcdprntcnt"));
  2648. }
  2649. } else {
  2650. iEndNo = Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "bcollbarcdprntcnt"));
  2651. }
  2652. //--------------------------------------------------------------
  2653. if( sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7") {
  2654. lpzfExePlgyBarCdRePrnt_Sato(sRowNo[iRowNo], iStartNo, iEndNo, LCount);
  2655. } else if(sPrntKind == "8" ){
  2656. lpzfExePlgyBarCdRePrnt_B472(sRowNo[iRowNo], iStartNo, iEndNo, LCount);
  2657. } else if (sPrntKind == "10" ) {
  2658. fExePlgyBarCdRePrntEPL(sRowNo[iRowNo], iStartNo, iEndNo, LCount); // Zebra EPL(TLP2844, TLP2842)용
  2659. //} else if(sPrntKind == "9" ) {
  2660. } else if( sPrntKind == "9" || sPrntKind == "5" ) { // 외래채혈실 바코드 추가(5)
  2661. fExePlgyBarCdRePrnt300(sRowNo[iRowNo], iStartNo, iEndNo, LCount);
  2662. } else {
  2663. fExePlgyBarCdRePrnt(sRowNo[iRowNo], iStartNo, iEndNo, LCount);
  2664. }
  2665. } else {
  2666. trace("병리3");
  2667. if( sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  2668. lpzfExePlgyBarCdRePrnt_Sato(sRowNo[iRowNo], sPrntNo[iColNo].getTrim(), sPrntNo[iColNo].getTrim(), LCount);
  2669. }else if(sPrntKind == "8" ){
  2670. lpzfExePlgyBarCdRePrnt_B472(sRowNo[iRowNo], sPrntNo[iColNo].getTrim(), sPrntNo[iColNo].getTrim(), LCount);
  2671. } else if (sPrntKind == "10" ) {
  2672. fExePlgyBarCdRePrntEPL(sRowNo[iRowNo], sPrntNo[iColNo].getTrim(), sPrntNo[iColNo].getTrim(), LCount); // Zebra EPL(TLP2844, TLP2842)용
  2673. //} else if(sPrntKind == "9" ) {
  2674. } else if( sPrntKind == "9" || sPrntKind == "5" ) { // 외래채혈실 바코드 추가(5)
  2675. fExePlgyBarCdRePrnt300(sRowNo[iRowNo], sPrntNo[iColNo].getTrim(), sPrntNo[iColNo].getTrim(), LCount);
  2676. } else{
  2677. trace("병리33");
  2678. //lzzfMakeBrcdPrntObjHanDo("CommAX");
  2679. fExePlgyBarCdRePrnt(sRowNo[iRowNo], sPrntNo[iColNo].getTrim(), sPrntNo[iColNo].getTrim(), LCount);
  2680. }
  2681. }
  2682. }
  2683. } else if (sRePrntCnt.getTrim().indexOf("-") > -1) {
  2684. trace("병리4 :"+sPrntKind);
  2685. //trace("sRePrntCnt2 ="+sRePrntCnt);
  2686. //---------------------------------
  2687. sSubPrntNo = sRePrntCnt.split("-");
  2688. iFindColNo = sRePrntCnt.getTrim().indexOf("-");
  2689. //------------------------
  2690. if (utlf_isNull(sSubPrntNo[0])) {
  2691. iStartNo = 1; // 재출력 시작번호
  2692. } else {
  2693. iStartNo = Number(sSubPrntNo[0]); // 재출력 시작번호
  2694. //-----------------------------
  2695. if (iStartNo < 1) iStartNo = 1;
  2696. }
  2697. //----------------------
  2698. // 종료번호를 지정한 경우
  2699. if (!utlf_isNull(sSubPrntNo[1])) {
  2700. iEndNo = Number(sSubPrntNo[1]); // 채출력 종류번호
  2701. if (iEndNo > Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "bcollbarcdprntcnt"))) {
  2702. iEndNo = Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "bcollbarcdprntcnt"));
  2703. }
  2704. } else {
  2705. iEndNo = Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "bcollbarcdprntcnt"));
  2706. }
  2707. if( sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  2708. lpzfExePlgyBarCdRePrnt_Sato(sRowNo[iRowNo], iStartNo, iEndNo, LCount);
  2709. } else if (sPrntKind == "8" ) {
  2710. lpzfExePlgyBarCdRePrnt_B472(sRowNo[iRowNo], iStartNo, iEndNo, LCount);
  2711. } else if (sPrntKind == "10" ) {
  2712. fExePlgyBarCdRePrntEPL(sRowNo[iRowNo], iStartNo, iEndNo, LCount); // Zebra EPL(TLP2844, TLP2842)용
  2713. //} else if (sPrntKind == "9" ) {
  2714. } else if( sPrntKind == "9" || sPrntKind == "5" ) { // 외래채혈실 바코드 추가(5)
  2715. fExePlgyBarCdRePrnt300(sRowNo[iRowNo], iStartNo, iEndNo, LCount); // Zebra 300 DPI용
  2716. } else{
  2717. fExePlgyBarCdRePrnt(sRowNo[iRowNo], iStartNo, iEndNo, LCount); // Zebra 200 DPI용
  2718. }
  2719. } else {
  2720. //trace("sRePrntCnt3 ="+sRePrntCnt+' / '+aa);
  2721. //---------------------------------------------------------------
  2722. if ( sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7") {
  2723. lpzfExePlgyBarCdRePrnt_Sato(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2724. } else if(sPrntKind == "8" ) {
  2725. lpzfExePlgyBarCdRePrnt_B472(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2726. } else if (sPrntKind == "10" ) {
  2727. fExePlgyBarCdRePrntEPL(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount); // Zebra EPL(TLP2844, TLP2842)용
  2728. //} else if(sPrntKind == "9" ) {
  2729. } else if( sPrntKind == "9" || sPrntKind == "5" ) { // 외래채혈실 바코드 추가(5)
  2730. fExePlgyBarCdRePrnt300(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2731. } else {
  2732. fExePlgyBarCdRePrnt(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2733. }
  2734. //-------------------------------------------------------------------------------------------
  2735. // Frzn검체 추가일 경우 병리 병원환경설정의 프로즌바코드 출력 매수에 따라 출력 매수가 결정됨.
  2736. // -> 검사정보의 바코드 출력매수로 수정(2009-09-10)
  2737. if (ds_johoi.getColumn(0,"xrwGBN") == "inbcoll") {
  2738. //if (model.getValue("/root/hidden/JoHoiFlag/xrwGBN") == "inbcoll") {
  2739. if (pFlagCd == "0") {
  2740. //if (model.getValue(strNode+"["+sRowNo[iRowNo]+"]/tubecd") == "1002") {
  2741. if (ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "tubecd") == "1002") {
  2742. //iFrznBcCnt = Number(model.getValue("/root/main/TestInfo/getTestInfoCnts[" + sRowNo[iRowNo] + "]/barcdprtncnt"));
  2743. iFrznBcCnt = Number(ds_grd_TestInfoCnts.getColumn(sRowNo[iRowNo], "barcdprtncnt"));
  2744. if(iFrznBcCnt <= 0) {
  2745. iFrznBcCnt = 1;
  2746. }
  2747. //-------------------------
  2748. iFrznBcCnt = iFrznBcCnt -1;
  2749. for (var iFrznNo = 1 ; iFrznNo <= iFrznBcCnt ; iFrznNo++) {
  2750. //---------------------------------------------------------------
  2751. if ( sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7") {
  2752. lpzfExePlgyBarCdRePrnt_Sato(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2753. } else if(sPrntKind == "8" ) {
  2754. lpzfExePlgyBarCdRePrnt_B472(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2755. } else if (sPrntKind == "10" ) {
  2756. fExePlgyBarCdRePrntEPL(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount); // Zebra EPL(TLP2844, TLP2842)용
  2757. //} else if(sPrntKind == "9" ) {
  2758. } else if( sPrntKind == "9" || sPrntKind == "5" ) { // 외래채혈실 바코드 추가(5)
  2759. fExePlgyBarCdRePrnt300(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2760. } else{
  2761. fExePlgyBarCdRePrnt(sRowNo[iRowNo], sRePrntCnt, sRePrntCnt, LCount);
  2762. }
  2763. }
  2764. }
  2765. }
  2766. }
  2767. }
  2768. }
  2769. }
  2770. }
  2771. function cf_TXLLC90403(sSvcId, nErrorCode, sErrorMsg) {
  2772. arErrorCode.push(sSvcId, nErrorCode);
  2773. }
  2774. function fExePlgyBarCdRePrnt(pRowNo, pSNo, pENo, pCount) {
  2775. trace("fExePlgyBarCdRePrnt :"+pRowNo+"/"+pSNo +"/"+ pENo+"/"+pCount);
  2776. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  2777. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  2778. var sBarCdNoH = "";
  2779. var sBarCdNoD = "";
  2780. var sPrntNo = "";
  2781. var sSubPrntNo = "";
  2782. var sRePrntCnt = "";
  2783. var iStartNo = 1;
  2784. var iEndNo = 99;
  2785. var iFindColNo = -1;
  2786. var iSpcNo = 0;
  2787. var sSpcSeqNo = "";
  2788. var sSpcSeqNm = "";
  2789. var aSpcSeqNo = "";
  2790. var aSpcSeqNm = "";
  2791. var sSndMsg = "";
  2792. var sPrcpDD = "";
  2793. var sPid = "";
  2794. var sPatnm = "";
  2795. var sDeptroom = "";
  2796. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2797. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  2798. var iLeft = ds_data_blank.getColumn(0,"left");
  2799. var iTop = ds_data_blank.getColumn(0,"top");
  2800. var iXPos = 0;
  2801. var iYPos = 0;
  2802. var iWidth = 0;
  2803. var iEGap = 12;
  2804. var iHGap = 20;
  2805. var aFlag = new Array();
  2806. var aStr = "";
  2807. var portOpenTF = "";
  2808. trace("iLeft :"+iLeft+' / '+iTop);
  2809. iLeft = Number(iLeft) + Number(20);
  2810. iTop = Number(iTop) + Number(10);
  2811. // try {
  2812. //--------------------------------------------------------
  2813. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  2814. //trace('aaaaaaaaaaaaa '+sCommKind);
  2815. //----------------------
  2816. if (sCommKind == "01") {
  2817. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  2818. } else if(sCommKind == "02") {
  2819. var sComm = ds_data_comm02.getColumn(0,"comm");
  2820. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  2821. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  2822. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  2823. var sParity = ds_data_comm02.getColumn(0,"parity");
  2824. //----------------------
  2825. CommAX.CommPort = sComm;
  2826. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  2827. //-----------------------------------------------------
  2828. // 출력할 진검 바코드 갯수가 0보다 크면 port 오픈 안함.
  2829. if (pCount > 0) {
  2830. portOpenTF = "TRUE";
  2831. } else if (pCount == 0) {
  2832. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  2833. portOpenTF = CommAX.PortOpen("true");
  2834. }
  2835. } else if(sCommKind == "03") {
  2836. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  2837. }
  2838. //---------------------------------
  2839. // 바코드번호 Header(일련번호 제외)
  2840. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  2841. sPid = ds_grd_TestInfoCnts.getColumn(pRowNo, "pid") ;
  2842. sPatnm = ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm");
  2843. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  2844. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcphopedd");
  2845. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2846. trace("sPrntKind :"+sPrntKind+'/'+portOpenTF+'/'+sCommKind+'/'+sSetUpVal+'/'+iLeft);
  2847. //--------------------------------------------------------------------------------------------------
  2848. if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") ) {
  2849. //-----------------------------------------------------
  2850. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  2851. //------------------------------------------
  2852. if(sPrntKind == "1" || sPrntKind == "11") {
  2853. //-------------------------
  2854. if ( sCommKind == "01" ) {
  2855. iEGap = 12;
  2856. iHGap = 20;
  2857. } else {
  2858. iEGap = 15;
  2859. iHGap = 20;
  2860. }
  2861. //--------------------------------------------------
  2862. sSndMsg = "";
  2863. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  2864. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  2865. //-------------------------
  2866. iXPos = Number(iLeft) + 20;
  2867. iYPos = Number(iTop) + 5;
  2868. sSndMsg += lzzfBP_ChangeFont("F", 3, 3);
  2869. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 50, sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0") ); // 바코드
  2870. iXPos = Number(iLeft) + 100;
  2871. iYPos = Number(iTop) + 60;
  2872. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2873. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0")); // 바코드번호
  2874. //--------------------
  2875. iXPos = Number(iLeft);
  2876. iYPos = Number(iTop) + 80;
  2877. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2878. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "PATHOLOGY"); // 검체도착지명
  2879. iXPos = Number(iLeft) + 115;
  2880. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  2881. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts") == "" ) {
  2882. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  2883. } else {
  2884. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"); // 응급실 환자 위치
  2885. }
  2886. } else {
  2887. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  2888. }
  2889. iWidth = 0;
  2890. aStr = sTempStr;
  2891. for (var iNo=0; iNo < aStr.length; iNo++) {
  2892. oneChar = aStr.charAt(iNo);
  2893. test_rtn = "";
  2894. test_he = "";
  2895. test_rtn = lpzfGetHanGul3(oneChar);
  2896. test_he = test_rtn.substring(0,1);
  2897. //----------------------
  2898. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  2899. if(!utlf_isNull(test_he))
  2900. {
  2901. iYPos = Number(iTop) + 80;
  2902. if (test_he == "E") {
  2903. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  2904. // iWidth = iWidth + (Number(oneChar.length) * iEGap);
  2905. sSndMsg += "^CFF10,10^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + oneChar + "^FS";
  2906. iWidth = iWidth + (Number(oneChar.length) * 14);
  2907. }else{
  2908. iYPos = Number(iTop) + 80;
  2909. // if(sCommKind == "01") { // 병렬출력
  2910. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  2911. // }else if(sCommKind == "02") { // 직렬출력
  2912. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  2913. // sSndMsg += CommAX.HanImageData();
  2914. // }
  2915. // iWidth = iWidth + (Number(oneChar.length) * iHGap);
  2916. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + oneChar + "^FS^CI1"; // 검사코드리스트(한글)
  2917. iWidth = iWidth + (Number(oneChar.length) * 30);
  2918. }
  2919. }
  2920. }
  2921. // sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2922. // sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTempStr);
  2923. iXPos = Number(iLeft) + 220;
  2924. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2925. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrcpDD); // 처방일자
  2926. iXPos = Number(iLeft) + 345
  2927. iYPos = Number(iTop) + 80;
  2928. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd"))){
  2929. //sSndMsg += "^CFA99,44^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd") + "^FS"; // 감염정보
  2930. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2931. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd"));
  2932. }
  2933. iXPos = Number(iLeft);
  2934. iYPos = Number(iTop) + 105;
  2935. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  2936. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  2937. iWidth = 0;
  2938. aStr = "";
  2939. aFlag = new Array();
  2940. iXPos = Number(iLeft) + 130;
  2941. iYPos = Number(iTop) + 105;
  2942. if(!utlf_isNull(sPatnm)){
  2943. sPatnm = sPatnm.substr(0, 20);
  2944. }
  2945. trace("sPatnm =="+sPatnm)
  2946. if(!utlf_isNull(sPatnm)) {
  2947. for (var j = 0; j < sPatnm.length; j++) {
  2948. oneChar = sPatnm.charAt(j);
  2949. test_rtn = "";
  2950. test_he = "";
  2951. test_rtn = lpzfGetHanGul3(oneChar);
  2952. test_he = test_rtn.substring(0,1);
  2953. //trace("test_rtn"+' / '+j+' / '+test_rtn);
  2954. if(!utlf_isNull(test_he))
  2955. {
  2956. //----------------------
  2957. if (test_he == "E") {
  2958. sSndMsg += "^CFF20,20^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + oneChar + "^FS";
  2959. iWidth = iWidth + (Number(oneChar.length) * 14);
  2960. } else {
  2961. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + oneChar + "^FS^CI1"; // 검사코드리스트(한글)
  2962. iWidth = iWidth + (Number(oneChar.length) * 30);
  2963. }
  2964. }
  2965. }
  2966. }else{
  2967. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2968. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatnm);
  2969. }
  2970. // //-------------------------
  2971. iXPos = Number(iLeft) + 240;
  2972. iYPos = Number(iTop) + 105;
  2973. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  2974. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_grd_TestInfoCnts.getColumn(pRowNo, "sex")+"/"+ds_grd_TestInfoCnts.getColumn(pRowNo, "dage")); // 성별/나이
  2975. iXPos = Number(iLeft) + 300;
  2976. iYPos = Number(iTop) + 105;
  2977. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  2978. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))){
  2979. sDeptroom = ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm")+ ")"; // 진료과
  2980. } else {
  2981. sDeptroom = ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm");
  2982. }
  2983. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  2984. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); // 진료과
  2985. sTempStr =="";
  2986. iXPos = Number(iLeft);
  2987. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  2988. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  2989. //------------------------------------
  2990. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  2991. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  2992. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  2993. sTempStr += aSpcSeqNm[iPrntCnt-1];
  2994. //---------
  2995. iWidth = 0;
  2996. aStr = sTempStr;
  2997. for (var iNo=0; iNo < aStr.length; iNo++) {
  2998. oneChar = aStr.charAt(iNo);
  2999. test_rtn = "";
  3000. test_he = "";
  3001. test_rtn = lpzfGetHanGul3(oneChar);
  3002. test_he = test_rtn.substring(0,1);
  3003. //----------------------
  3004. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  3005. if(!utlf_isNull(test_he))
  3006. {
  3007. iYPos = Number(iTop) + 125;
  3008. if (test_he == "E") {
  3009. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  3010. iWidth = iWidth + (Number(oneChar.length) * 14);
  3011. }else{
  3012. iYPos = Number(iTop) + 125;
  3013. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  3014. iWidth = iWidth + (Number(oneChar.length) * 30);
  3015. }
  3016. }
  3017. }
  3018. sTempStr = "";
  3019. iXPos = Number(iLeft);
  3020. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0"); //검사명(추가처방)
  3021. //---------
  3022. iWidth = 0;
  3023. aStr = '';
  3024. aStr = sTempStr;
  3025. for (var iNo=0; iNo < aStr.length; iNo++) {
  3026. oneChar = aStr.charAt(iNo);
  3027. test_rtn = "";
  3028. test_he = "";
  3029. test_rtn = lpzfGetHanGul3(oneChar);
  3030. test_he = test_rtn.substring(0,1);
  3031. //----------------------
  3032. if(!utlf_isNull(test_he))
  3033. {
  3034. iYPos = Number(iTop) + 150;
  3035. if (test_he == "E") {
  3036. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  3037. iWidth = iWidth + (Number(oneChar.length) * 14);
  3038. }else{
  3039. iYPos = Number(iTop) + 150;
  3040. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  3041. iWidth = iWidth + (Number(oneChar.length) * 30);
  3042. }
  3043. }
  3044. }
  3045. //------ 추가처방 표시 -------------------
  3046. iXPos = Number(iLeft);
  3047. sTempStr = "";
  3048. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  3049. iWidth = 0;
  3050. aStr = sTempStr;
  3051. for (var iNo=0; iNo < aStr.length; iNo++) {
  3052. oneChar = aStr.charAt(iNo);
  3053. test_rtn = "";
  3054. test_he = "";
  3055. test_rtn = lpzfGetHanGul3(oneChar);
  3056. test_he = test_rtn.substring(0,1);
  3057. if(!utlf_isNull(test_he))
  3058. {
  3059. iYPos = Number(iTop) + 175;
  3060. if (test_he == "E") {
  3061. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  3062. iWidth = iWidth + (Number(oneChar.length) * 14);
  3063. }else{
  3064. iYPos = Number(iTop) + 175;
  3065. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  3066. iWidth = iWidth + (Number(oneChar.length) * 30);
  3067. }
  3068. }
  3069. }
  3070. sSndMsg += lzzfBP_EndFormat();
  3071. CommAX.SendMsg(sSndMsg);
  3072. }
  3073. }//end for
  3074. //portopen이 true이고 통신유형이 com일때 port close
  3075. if ( portOpenTF == "TRUE" && sCommKind == "02") {
  3076. CommAX.PortOpen("false");
  3077. }
  3078. } else if (portOpenTF = "FALSE" && sCommKind == "02") {
  3079. sysf_messageBox("아래lf_lzzfBarCodeRePrinf 사항을 확인후 재출력해주십시오."
  3080. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3081. + " \n 2.케이블 확인"
  3082. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3083. return;
  3084. }
  3085. }
  3086. function fExePlgyBarCdRePrnt_backup(pRowNo, pSNo, pENo, pCount) {
  3087. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  3088. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  3089. var sBarCdNoH = "";
  3090. var sBarCdNoD = "";
  3091. var sPrntNo = "";
  3092. var sSubPrntNo = "";
  3093. var sRePrntCnt = "";
  3094. var iStartNo = 1;
  3095. var iEndNo = 99;
  3096. var iFindColNo = -1;
  3097. var iSpcNo = 0;
  3098. var sSpcSeqNo = "";
  3099. var sSpcSeqNm = "";
  3100. var aSpcSeqNo = "";
  3101. var aSpcSeqNm = "";
  3102. var sSndMsg = "";
  3103. var sPrcpDD = "";
  3104. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3105. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  3106. var iLeft = ds_data_blank.getColumn(0,"left");
  3107. var iTop = ds_data_blank.getColumn(0,"top");
  3108. var iXPos = 0;
  3109. var iYPos = 0;
  3110. var iWidth = 0;
  3111. var iEGap = 12;
  3112. var iHGap = 20;
  3113. var aFlag = new Array();
  3114. var aStr = "";
  3115. var portOpenTF = "";
  3116. trace("iLeft :"+iLeft+' / '+iTop);
  3117. iLeft = Number(iLeft) + Number(20);
  3118. iTop = Number(iTop) + Number(10);
  3119. // try {
  3120. //--------------------------------------------------------
  3121. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  3122. //trace('aaaaaaaaaaaaa '+sCommKind);
  3123. //----------------------
  3124. if (sCommKind == "01") {
  3125. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  3126. } else if(sCommKind == "02") {
  3127. var sComm = ds_data_comm02.getColumn(0,"comm");
  3128. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  3129. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  3130. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  3131. var sParity = ds_data_comm02.getColumn(0,"parity");
  3132. //----------------------
  3133. CommAX.CommPort = sComm;
  3134. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  3135. //-----------------------------------------------------
  3136. // 출력할 진검 바코드 갯수가 0보다 크면 port 오픈 안함.
  3137. if (pCount > 0) {
  3138. portOpenTF = "TRUE";
  3139. } else if (pCount == 0) {
  3140. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  3141. portOpenTF = CommAX.PortOpen("true");
  3142. }
  3143. } else if(sCommKind == "03") {
  3144. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  3145. }
  3146. //---------------------------------
  3147. // 바코드번호 Header(일련번호 제외)
  3148. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  3149. trace("sPrntKind :"+sPrntKind+'/'+portOpenTF+'/'+sCommKind+'/'+sSetUpVal+'/'+iLeft);
  3150. //--------------------------------------------------------------------------------------------------
  3151. if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") ) {
  3152. //-----------------------------------------------------
  3153. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  3154. //------------------------------------------
  3155. if(sPrntKind == "1" || sPrntKind == "11") {
  3156. //-------------------------
  3157. if ( sCommKind == "01" ) {
  3158. iEGap = 12;
  3159. iHGap = 20;
  3160. } else {
  3161. iEGap = 15;
  3162. iHGap = 20;
  3163. }
  3164. //--------------------------------------------------
  3165. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  3166. //sPrcpDD = model.getValue(strNode + "[" + pRowNo + "]/prcpdd");
  3167. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcphopedd");
  3168. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  3169. sSndMsg = "";
  3170. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  3171. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  3172. //-------------------------
  3173. iXPos = Number(iLeft) + 20;
  3174. iYPos = Number(iTop) + 5;
  3175. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0") + "^FS"; // 바코드
  3176. trace('병리 1111 '+sSndMsg);
  3177. /*
  3178. //감염정보 출력시 바코드에 줄을 그어서 표시한다.
  3179. if(getNodesetCount("/root/main/infdisinfolist") > 0) { //감염정보가 있다면..
  3180. iXPos = Number(iLeft);
  3181. iYPos = Number(iTop) + 5;
  3182. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 8, 80, 15);
  3183. }
  3184. */
  3185. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3186. sSndMsg = "";
  3187. //--------------------
  3188. iXPos = Number(iLeft);
  3189. iYPos = Number(iTop) + 115;
  3190. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  3191. //-------------------------
  3192. //iXPos = Number(iLeft) + 130;
  3193. //iYPos = Number(iTop) + 115;
  3194. //sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + model.getValue(strNode+ "["+pRowNo+"]/wardroom") + "^FS"; // 병동병실
  3195. iXPos = Number(iLeft) + 130;
  3196. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  3197. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts") == "" ) {
  3198. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  3199. } else {
  3200. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"); // 응급실 환자 위치
  3201. }
  3202. } else {
  3203. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  3204. }
  3205. //sTempStr = model.getValue(strNode+ "["+pRowNo+"]/wardroom");
  3206. iWidth = 0;
  3207. // //aStr = lpzfGetHanGul(sTempStr, aFlag);
  3208. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  3209. // aFlag = aArraySet[0];
  3210. // aStr = aArraySet[1];
  3211. // for (var iNo=0; iNo < aStr.length; iNo++) {
  3212. //
  3213. // //----------------------
  3214. // if (aFlag[iNo] == "E") {
  3215. // iYPos = Number(iTop) + 115;
  3216. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 병동병실
  3217. // iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  3218. // } else {
  3219. // iYPos = Number(iTop) + 110;
  3220. //
  3221. // if(sCommKind == "01") { // 병렬출력
  3222. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  3223. // } else if(sCommKind == "02") { // 직렬출력
  3224. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  3225. // sSndMsg += CommAX.HanImageData();
  3226. // }
  3227. // iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  3228. // }
  3229. // }
  3230. aStr = "";
  3231. aStr = sTempStr;
  3232. //trace("aStr "+aStr);
  3233. for (var iNo=0; iNo < aStr.length; iNo++) {
  3234. oneChar = aStr.charAt(iNo);
  3235. test_rtn = "";
  3236. test_he = "";
  3237. test_rtn = lpzfGetHanGul3(oneChar);
  3238. test_he = test_rtn.substring(0,1);
  3239. //----------------------
  3240. //trace('iNo'+' / '+ iNo+' / '+test_he+' / '+aStr)
  3241. if(!utlf_isNull(test_he))
  3242. {
  3243. iYPos = Number(iTop) + 115;
  3244. if (test_he == "E") {
  3245. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  3246. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  3247. }else{
  3248. iYPos = Number(iTop) + 110;
  3249. if(sCommKind == "01") { // 병렬출력
  3250. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  3251. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3252. }else if(sCommKind == "02") { // 직렬출력
  3253. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  3254. sSndMsg += CommAX.HanImageData();
  3255. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3256. }
  3257. }
  3258. }
  3259. }
  3260. fExeSendMsg(sSndMsg);
  3261. sSndMsg = "";
  3262. /*
  3263. //-------------------------
  3264. iXPos = Number(iLeft) + 280;
  3265. iYPos = Number(iTop) + 110;
  3266. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, model.getValue(strNode + "[" + pRowNo + "]/orddrnm"), 1, 1); //진료의
  3267. sSndMsg += CommAX.HanImageData();
  3268. */
  3269. //-------------------------
  3270. iXPos = Number(iLeft) + 215;
  3271. iYPos = Number(iTop) + 115;
  3272. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  3273. iXPos = Number(iLeft) + 340
  3274. iYPos = Number(iTop) + 115;
  3275. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd"))){
  3276. sSndMsg += "^CFA99,44^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd") + "^FS"; // 감염정보
  3277. }
  3278. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3279. sSndMsg = "";
  3280. //-------------------------
  3281. iXPos = Number(iLeft);
  3282. iYPos = Number(iTop) + 145;
  3283. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "pid") + "^FS"; // 등록번호
  3284. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3285. sSndMsg = "";
  3286. //-------------------------
  3287. iXPos = Number(iLeft) + 125;
  3288. iYPos = Number(iTop) + 140;
  3289. //sSndMsg += CommAX.PrtImgOut("GRAPH001", model.getValue(strNode + "[" + sRowNo[iRowNo] + "]/hngnm")); // 환자명 //이전 OCX
  3290. //sSndMsg += "^CFA,20,20^FO"+iXPos+","+iYPos+"^XGGRAPH001,1,1^FS"; //이전 OCX
  3291. if(sCommKind == "01") { // 병렬출력
  3292. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,20,20^FD"+ model.getValue(strNode + "[" + pRowNo + "]/hngnm") +"^FS^CI1";
  3293. // 110704 유민규 병리과바코드 한영 오류수정
  3294. iWidth = 0;
  3295. aStr = "";
  3296. // aFlag = new Array();
  3297. var sPatnm = ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm");
  3298. aStr = sPatnm;
  3299. //
  3300. // aStr = lpzfGetHanGul(sPatnm, aFlag);
  3301. // for (var iNo=0; iNo < aStr.length; iNo++) {
  3302. //
  3303. //
  3304. //
  3305. // if (aFlag[iNo] == "E") {
  3306. //
  3307. // sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  3308. // iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  3309. //
  3310. // } else {
  3311. //
  3312. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  3313. // iWidth = iWidth + (Number(aStr[iNo].length) * 30);
  3314. // }
  3315. //
  3316. // }
  3317. for (var iNo=0; iNo < aStr.length; iNo++) {
  3318. oneChar = aStr.charAt(iNo);
  3319. test_rtn = "";
  3320. test_he = "";
  3321. test_rtn = lpzfGetHanGul3(oneChar);
  3322. test_he = test_rtn.substring(0,1);
  3323. //----------------------
  3324. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  3325. if(!utlf_isNull(test_he))
  3326. {
  3327. if (test_he == "E") {
  3328. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  3329. iWidth = iWidth + (Number(oneChar.length) * 12);
  3330. }else{
  3331. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  3332. iWidth = iWidth + (Number(oneChar.length) * 30);
  3333. }
  3334. }
  3335. }
  3336. } else if(sCommKind == "02") { // 직렬출력
  3337. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm"), 1, 1);
  3338. sSndMsg += CommAX.HanImageData();
  3339. }
  3340. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3341. sSndMsg = "";
  3342. //-------------------------
  3343. iXPos = Number(iLeft) + 240;
  3344. iYPos = Number(iTop) + 145;
  3345. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "sex");
  3346. sSndMsg += "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "dage") + "^FS"; // 성별/나이
  3347. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3348. sSndMsg = "";
  3349. //-------------------------
  3350. iXPos = Number(iLeft) + 300;
  3351. iYPos = Number(iTop) + 145;
  3352. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  3353. //if(model.getValue(strNode+"["+pRowNo+"]/oproomnm") != "") {
  3354. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))){
  3355. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") + ")" + "^FS"; // 진료과
  3356. } else {
  3357. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "^FS"; // 진료과
  3358. }
  3359. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3360. sSndMsg = "";
  3361. //--------------------
  3362. iXPos = Number(iLeft);
  3363. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  3364. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  3365. //------------------------------------
  3366. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  3367. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  3368. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  3369. sTempStr += aSpcSeqNm[iPrntCnt-1];
  3370. //---------
  3371. iWidth = 0;
  3372. aStr = sTempStr;
  3373. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  3374. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  3375. // aFlag = aArraySet[0];
  3376. // aStr = aArraySet[1];
  3377. // for (var iNo=0; iNo < aStr.length; iNo++) {
  3378. //
  3379. // //----------------------
  3380. // if (aFlag[iNo] == "E") {
  3381. // iYPos = Number(iTop) + 175;
  3382. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  3383. // iWidth = iWidth + (Number(aStr[iNo].length) *iEGap);
  3384. // } else {
  3385. // iYPos = Number(iTop) + 170;
  3386. //
  3387. // if(sCommKind == "01") { // 병렬출력
  3388. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  3389. // } else if(sCommKind == "02") { // 직렬출력
  3390. // //sSndMsg += CommAX.PrtImgOut("GRAPH05"+iNo, aStr[iNo]); // 검체표시명(한글) //이전 OCX
  3391. // //sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^XGGRAPH05"+iNo+",1,1^FS"; //이전 OCX
  3392. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  3393. // sSndMsg += CommAX.HanImageData();
  3394. // }
  3395. // iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  3396. // }
  3397. // }
  3398. for (var iNo=0; iNo < aStr.length; iNo++) {
  3399. oneChar = aStr.charAt(iNo);
  3400. test_rtn = "";
  3401. test_he = "";
  3402. test_rtn = lpzfGetHanGul3(oneChar);
  3403. test_he = test_rtn.substring(0,1);
  3404. //----------------------
  3405. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  3406. if(!utlf_isNull(test_he))
  3407. {
  3408. iYPos = Number(iTop) + 175;
  3409. if (test_he == "E") {
  3410. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  3411. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  3412. }else{
  3413. iYPos = Number(iTop) + 170;
  3414. if(sCommKind == "01") { // 병렬출력
  3415. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  3416. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3417. }else if(sCommKind == "02") { // 직렬출력
  3418. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  3419. sSndMsg += CommAX.HanImageData();
  3420. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3421. }
  3422. }
  3423. }
  3424. }
  3425. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3426. sSndMsg = "";
  3427. //--------------------
  3428. iXPos = Number(iLeft);
  3429. //sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  3430. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0"); //검사명(추가처방)
  3431. //---------
  3432. iWidth = 0;
  3433. aStr = '';
  3434. aStr = sTempStr;
  3435. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  3436. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  3437. // aFlag = aArraySet[0];
  3438. // aStr = aArraySet[1];
  3439. // for (var iNo=0; iNo < aStr.length; iNo++) {
  3440. //
  3441. // //----------------------
  3442. // if (aFlag[iNo] == "E") {
  3443. // iYPos = Number(iTop) + 200;
  3444. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  3445. // iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  3446. // } else {
  3447. // iYPos = Number(iTop) + 195;
  3448. //
  3449. // if(sCommKind == "01") { // 병렬출력
  3450. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  3451. // } else if(sCommKind == "02") { // 직렬출력
  3452. // //sSndMsg += CommAX.PrtImgOut("GRAPH05"+iNo, aStr[iNo]); // 검사명(한글) //이전 OCX
  3453. // //sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^XGGRAPH05"+iNo+",1,1^FS"; //이전 OCX
  3454. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  3455. // sSndMsg += CommAX.HanImageData();
  3456. // }
  3457. // iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  3458. // }
  3459. // }
  3460. for (var iNo=0; iNo < aStr.length; iNo++) {
  3461. oneChar = aStr.charAt(iNo);
  3462. test_rtn = "";
  3463. test_he = "";
  3464. test_rtn = lpzfGetHanGul3(oneChar);
  3465. test_he = test_rtn.substring(0,1);
  3466. //----------------------
  3467. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  3468. if(!utlf_isNull(test_he))
  3469. {
  3470. iYPos = Number(iTop) + 200;
  3471. if (test_he == "E") {
  3472. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  3473. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  3474. }else{
  3475. iYPos = Number(iTop) + 195;
  3476. if(sCommKind == "01") { // 병렬출력
  3477. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  3478. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3479. }else if(sCommKind == "02") { // 직렬출력
  3480. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  3481. sSndMsg += CommAX.HanImageData();
  3482. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3483. }
  3484. }
  3485. }
  3486. }
  3487. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3488. sSndMsg = "";
  3489. //------ 추가처방 표시 -------------------
  3490. iXPos = Number(iLeft);
  3491. //sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  3492. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  3493. iWidth = 0;
  3494. aStr = sTempStr;
  3495. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  3496. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  3497. // aFlag = aArraySet[0];
  3498. // aStr = aArraySet[1];
  3499. // for (var iNo=0; iNo < aStr.length; iNo++) {
  3500. //
  3501. // //----------------------
  3502. // if (aFlag[iNo] == "E") {
  3503. // iYPos = Number(iTop) + 230;
  3504. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  3505. // iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  3506. // } else {
  3507. // iYPos = Number(iTop) + 225;
  3508. //
  3509. // if(sCommKind == "01") { // 병렬출력
  3510. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  3511. // } else if(sCommKind == "02") { // 직렬출력
  3512. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  3513. // sSndMsg += CommAX.HanImageData();
  3514. // }
  3515. // iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  3516. // }
  3517. // }
  3518. for (var iNo=0; iNo < aStr.length; iNo++) {
  3519. oneChar = aStr.charAt(iNo);
  3520. test_rtn = "";
  3521. test_he = "";
  3522. test_rtn = lpzfGetHanGul3(oneChar);
  3523. test_he = test_rtn.substring(0,1);
  3524. //----------------------
  3525. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  3526. if(!utlf_isNull(test_he))
  3527. {
  3528. iYPos = Number(iTop) + 230;
  3529. if (test_he == "E") {
  3530. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  3531. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  3532. }else{
  3533. iYPos = Number(iTop) + 225;
  3534. if(sCommKind == "01") { // 병렬출력
  3535. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  3536. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3537. }else if(sCommKind == "02") { // 직렬출력
  3538. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  3539. sSndMsg += CommAX.HanImageData();
  3540. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  3541. }
  3542. }
  3543. }
  3544. }
  3545. sSndMsg = sSndMsg + "^PQ1"; // 출력매수
  3546. sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  3547. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  3548. }
  3549. }//end for
  3550. //portopen이 true이고 통신유형이 com일때 port close
  3551. if ( portOpenTF == "TRUE" && sCommKind == "02") {
  3552. CommAX.PortOpen("false");
  3553. }
  3554. } else if (portOpenTF = "FALSE" && sCommKind == "02") {
  3555. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  3556. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3557. + " \n 2.케이블 확인"
  3558. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3559. return;
  3560. }
  3561. //// } catch(ee) {
  3562. //// messageBox("병리바코드출력에", "E009");
  3563. //// return;
  3564. //// }
  3565. }
  3566. // 병리과 처방명 검색
  3567. function lf_getPlgyPrcpNm(psPid, psReqFrmNo, pPrcpFlag) {
  3568. //trace('처방명1 '+psPid+' / '+psReqFrmNo + ' / '+pPrcpFlag);
  3569. var sPrcpNm = "";
  3570. var sTempPrcpNm = "";
  3571. var sCheckPrcpNm = "";
  3572. var iPrcpNo = 0;
  3573. //-------------------------------------------------
  3574. for (var iNo=0; iNo < ds_grd_TestInfoCnts.rowcount; iNo++) {
  3575. //trace('처방명11 ');
  3576. if ((ds_grd_TestInfoCnts.getColumn(iNo,"choi") =="1") || (ds_grd_TestInfoCnts.getColumn(iNo,"choi") =="true")) {
  3577. if (ds_grd_TestInfoCnts.getColumn(iNo,"testlrgkind") == "P") {
  3578. if (ds_grd_TestInfoCnts.getColumn(iNo,"pid") == psPid) {
  3579. if (ds_grd_TestInfoCnts.getColumn(iNo,"reqfrmno") == psReqFrmNo) {
  3580. //trace('처방명12 ');
  3581. //---- 추가 박중규 2008.09.09 ----------------------------
  3582. //병리 채혈바코드에 표시되는 검사명 형식 변경에 따른 추가.
  3583. //(원처방만 처방명을 그대로 보이고 추가처방은 "작업구분(처방 수)"로 표시한다.)
  3584. sTempPrcpNm = ds_grd_TestInfoCnts.getColumn(iNo,"resncnts");
  3585. // trace('처방명13 ');
  3586. if(pPrcpFlag == "0"){
  3587. // trace('처방명14 ');
  3588. if(ds_grd_TestInfoCnts.getColumn(iNo,"prcpflagcd")=="0") {
  3589. // trace('처방명15 ');
  3590. sPrcpNm = ds_grd_TestInfoCnts.getColumn(iNo,"tclsscrnm");
  3591. // trace('처방명16 '+sPrcpNm);
  3592. return sPrcpNm;
  3593. } else if(lf_getPlgyAddPrcpChk(psPid, psReqFrmNo, sTempPrcpNm)){ //원처방 없이 추가처방 하나만 처방 되었을 경우 처방명을 표시한다.
  3594. sPrcpNm = ds_grd_TestInfoCnts.getColumn(iNo,"tclsscrnm");
  3595. return sPrcpNm;
  3596. }
  3597. sPrcpNm = "";
  3598. } else if(ds_grd_TestInfoCnts.getColumn(iNo,"prcpflagcd") == "1" && sCheckPrcpNm.indexOf(sTempPrcpNm) < 0 && pPrcpFlag == "1"){
  3599. //원처방 없이 추가처방 하나만 처방 되었을 경우 처방명을 표시한다.
  3600. if(lf_getPlgyAddPrcpChk(psPid, psReqFrmNo, sTempPrcpNm)) {
  3601. //sPrcpNm = sPrcpNm = ds_grd_TestInfoCnts.getColumn(iNo,"tclsscrnm"); return sPrcpNm;
  3602. } else {
  3603. //병리 채혈 바코드에 표시하기 위해 추가처방들의 작업구분별 처방 갯수를 카운트 한다.
  3604. iPrcpNo = lf_getPlgyPrcpCount(psPid, psReqFrmNo, sTempPrcpNm);
  3605. sPrcpNm += sTempPrcpNm.substr(0, 2) + "(" + iPrcpNo + ")" + ",";
  3606. sCheckPrcpNm += ds_grd_TestInfoCnts.getColumn(iNo,"resncnts");
  3607. }
  3608. }
  3609. //sPrcpNm += model.getValue(strNode + "[" + iNo + "]/tclsscrnm") + "/";
  3610. }
  3611. }
  3612. }
  3613. }
  3614. }
  3615. //-----------------------------------------------------------------
  3616. if (sPrcpNm != "") sPrcpNm = sPrcpNm.substr(0, (sPrcpNm.length-1)); //마지막 "," 제거
  3617. //--------------
  3618. return sPrcpNm;
  3619. }
  3620. //병리 채혈 바코드에 표시하기 위해 추가처방들의 작업구분별 처방 갯수를 카운트 한다.
  3621. function lf_getPlgyPrcpCount(psPid, psReqFrmNo, pResnCnts) {
  3622. var iPrcpNo = 0;
  3623. for (var iNo=0; iNo < ds_grd_TestInfoCnts.rowcount; iNo++) {
  3624. if (ds_grd_TestInfoCnts.getColumn(iNo,"testlrgkind") == "P") {
  3625. if (ds_grd_TestInfoCnts.getColumn(iNo,"pid") == psPid) {
  3626. if (ds_grd_TestInfoCnts.getColumn(iNo,"reqfrmno") == psReqFrmNo) {
  3627. if(ds_grd_TestInfoCnts.getColumn(iNo,"resncnts") == pResnCnts){
  3628. iPrcpNo++;
  3629. }
  3630. }
  3631. }
  3632. }
  3633. }
  3634. return iPrcpNo;
  3635. }
  3636. //해당 병리 처방이 원처방(원처방+추가처방) 인지 추가처방 하나만 발행되었는지 체크한다.
  3637. function lf_getPlgyAddPrcpChk(psPid, psReqFrmNo, pResnCnts) {
  3638. var iOrgPrcpNo = 0;
  3639. var iAddPrcpNo = 0;
  3640. //-------------------------------------------------
  3641. for (var iNo=0; iNo < ds_grd_TestInfoCnts.rowcount; iNo++) {
  3642. if (ds_grd_TestInfoCnts.getColumn(iNo,"testlrgkind") == "P") {
  3643. if (ds_grd_TestInfoCnts.getColumn(iNo,"pid") == psPid) {
  3644. if (ds_grd_TestInfoCnts.getColumn(iNo,"reqfrmno") == psReqFrmNo) {
  3645. if(ds_grd_TestInfoCnts.getColumn(iNo,"prcpflagcd") == "0"){
  3646. iOrgPrcpNo++;
  3647. } else {
  3648. iAddPrcpNo++;
  3649. }
  3650. }
  3651. }
  3652. }
  3653. }
  3654. if(iOrgPrcpNo >= 1) { //처방에 원처방이 포함되어 있을 경우
  3655. return false;
  3656. } else if(iAddPrcpNo == 1){ //원처방 없이 추가처방이 하나만 처방되었을 경우
  3657. return true;
  3658. } else { //원처방 없이 추가처방만 두개 이상 처방 되었을 경우
  3659. return false;
  3660. }
  3661. }
  3662. //corss-matching 출력
  3663. //function lf_keepBcnoPrint(flag){
  3664. function fKeepBcnoPrint(flag){
  3665. //var scrid = frmf_getScreenID();
  3666. var scrid = this.parent.parent.frmf_getScreenID(); //components[frmf_getScreenID()].getOwnerFrame().form.name;
  3667. var pid = "";
  3668. var toppid = "";
  3669. var autoyn = 'N';
  3670. // if (scrid == "SMLLC00100") { //외래채혈일때
  3671. // if (group5.radio1.value == "3") {
  3672. // group5.radio1.value = "1";
  3673. // autoyn = 'Y';
  3674. // lf_PrintSetChange();
  3675. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //일반프린터
  3676. // }
  3677. // }
  3678. //채혈버튼 클릭하여 Cross-matching 출력시엔 선택된 환자 목록에서 환자 아이디 가져옴. 2008.12.04 김성희 수정.
  3679. if(flag == "B"){
  3680. pid = ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"pid");
  3681. }else{
  3682. toppid = appf_getPatientInfo("pid");
  3683. //top 정보가 없으면 조회조건에 입력한 환자번호.아무것도 없는데 '0000'조회함.버그?
  3684. // if(!utlf_isNull(toppid) && toppid != "0000"){
  3685. // pid = grp3.grp2.iptSearch.value;
  3686. // //top 정보가 있으면 탑정보의 환자번호
  3687. // }else{
  3688. // pid = toppid;
  3689. // }
  3690. pid = toppid
  3691. }
  3692. var pid2 = ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"pid");
  3693. if (pid != pid2) {
  3694. pid = pid2;
  3695. }
  3696. if(utlf_isNull(pid)) {
  3697. if (scrid == "SMLLC00200") {
  3698. pid = ds_johoi.getColumn(0,"pat");
  3699. }
  3700. }
  3701. if(utlf_isNull(pid)) {
  3702. if (scrid == "SMLLC00100") {
  3703. pid = ds_johoi.getColumn(0,"regnopatnm");
  3704. }
  3705. }
  3706. if(utlf_isNull(pid)) {
  3707. sysf_messageBox("환자등록번호를 확인해주세요." , "I");
  3708. return;
  3709. }
  3710. var sInDsName = dsf_createDsRow("ds_temp2_search"
  3711. , [{col: "pid", val: pid}]);
  3712. ds_KeepBcnoPrint.clearData();
  3713. var oParam = {};
  3714. oParam.id = "TRLLC80101";
  3715. oParam.service = "bcollmngtapp.BCollMngt";
  3716. oParam.method = "reqGetKeepBcnoPrint";
  3717. oParam.inds = "cond=ds_temp2_search";
  3718. oParam.outds = "ds_KeepBcnoPrint=printinfo";
  3719. oParam.async = false;
  3720. //oParam.callback = "cf_TRLLC80101";
  3721. tranf_submit(oParam);
  3722. trace('보관검체 :'+ds_KeepBcnoPrint.saveXML());
  3723. if(ds_KeepBcnoPrint.rowcount > 0) {
  3724. var prtkind = ds_data_setupinfo.getColumn(0,"prntkind");
  3725. var portnm = ds_data_setupinfo.getColumn(0,"commkind");
  3726. KCount = ds_KeepBcnoPrint.rowcount; //보관검체 바코드 갯수
  3727. PCount = ds_plgybarcdinfo.rowcount; //병리 바코드 갯수
  3728. //ds_KeepBcnoPrint.addColumn("bggc","string");
  3729. if( (prtkind == "9" && portnm == "01") || (prtkind == "11" && portnm == "01") || prtkind == "10" || prtkind == "2" || prtkind == "6" || prtkind == "7"){
  3730. if((flag == "B") && (scrid == "SMLLC00100")) { //외래채혈일때
  3731. LCount = ds_barcodeinfo.rowcount; //진검바코드 갯수
  3732. fKeLabel2(ds_KeepBcnoPrint, LCount,"");//portopen을 넘기기 위해
  3733. } else if ((flag == "B") && (scrid != "SMLLC00100")){ //병동채혈 및 환자별채혈일때
  3734. fKeLabel2(ds_KeepBcnoPrint,"P","");//portopen을 넘기기 위해
  3735. } else {//채혈이 아닐때..
  3736. //보관검체 출력
  3737. fKeLabel2(ds_KeepBcnoPrint,"","");
  3738. }
  3739. }else if(prtkind == "8"){ // 여의도 B472
  3740. if((flag == "B") && (scrid == "SMLLC00100")) { //외래채혈일때
  3741. LCount = ds_barcodeinfo.rowcount; //병리 바코드 갯수
  3742. fKeLabel_B472(ds_KeepBcnoPrint,LCount,"");//portopen을 넘기기 위해
  3743. } else if ((flag == "B") && (scrid != "SMLLC00100")){ //병동채혈 및 환자별채혈일때
  3744. fKeLabel_B472(ds_KeepBcnoPrint, "P","");//portopen을 넘기기 위해
  3745. } else {//채혈이 아닐때..
  3746. //보관검체 출력
  3747. fKeLabel_B472(ds_KeepBcnoPrint, "","");//portopen을 넘기기 위해
  3748. }
  3749. }else{
  3750. if((flag == "B") && (scrid == "SMLLC00100")) { //외래채혈일때
  3751. trace('보관');
  3752. LCount = ds_barcodeinfo.rowcount; //진검바코드 갯수
  3753. fKeLabel(ds_KeepBcnoPrint, LCount, "");//portopen을 넘기기 위해
  3754. } else if ((flag == "B") && (scrid != "SMLLC00100")){ //병동채혈 및 환자별채혈일때
  3755. fKeLabel(ds_KeepBcnoPrint, "","P");//portopen을 넘기기 위해
  3756. } else {//채혈이 아닐때..
  3757. //보관검체 출력
  3758. fKeLabel(ds_KeepBcnoPrint, "","");
  3759. }
  3760. }
  3761. }
  3762. // trace('aaa :'+autoyn);
  3763. // if (autoyn == 'Y') {
  3764. // group5.radio1.value = "3";
  3765. // trace('bbbb :'+autoyn);
  3766. // lf_PrintSetChange();
  3767. //
  3768. // }
  3769. }
  3770. function lf_crossMatcingBcnoPrint(flag){
  3771. var scrid = frmf_getScreenID();
  3772. var pid = "";
  3773. var toppid = "";
  3774. //채혈버튼 클릭하여 Cross-matching 출력시엔 선택된 환자 목록에서 환자 아이디 가져옴. 2008.12.04 김성희 수정.
  3775. if(flag == "B"){
  3776. pid = ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"pid");
  3777. }else{
  3778. toppid = appf_getPatientInfo("pid");
  3779. //top 정보가 없으면 조회조건에 입력한 환자번호.아무것도 없는데 '0000'조회함.버그?
  3780. if(!utlf_isNull(toppid) && toppid != "0000"){
  3781. pid = grp3.grp2.iptSearch.value;
  3782. //top 정보가 있으면 탑정보의 환자번호
  3783. }else{
  3784. pid = toppid;
  3785. }
  3786. }
  3787. if(pid=="") return;
  3788. var sInDsName = dsf_createDsRow("ds_temp2_search"
  3789. , [{col: "pid", val: pid}
  3790. , {col: "crossmatchinggbn", val: "bcoll"}]);
  3791. /*var sInDsName = dsf_createDsRow("ds_temp3_search"
  3792. , [{col: "pid", val: "000462972"}
  3793. , {col: "prcpno", val: "4001431205"}
  3794. , {col: "crossmatchinggbn", val: "nurse"}
  3795. , {col: "nurseid", val: "LISBC"}
  3796. , {col: "ioflag", val: "I"}]); */
  3797. // 서브밋호출
  3798. tranf_submit({
  3799. id: ""
  3800. , service: "bcollmngtapp.BCollMngt"
  3801. , method: "reqGetCrossMatchingBcnoPrint"
  3802. , inds : "cond="+sInDsName
  3803. , outds: "ds_CrossMatchinBarCodeInfo=crossmatchinginfo"
  3804. , callback: "cbf_SSLLC80100"
  3805. , async: false
  3806. });
  3807. if(ds_CrossMatchinBarCodeInfo.rowcount > 0) {
  3808. var sPrtPort = ds_data_setupinfo.getColumn(0,"rexgbn");
  3809. if (sPrtPort == "1"){
  3810. gfn_rex3BcnoPrint("1", ds_CrossMatchinBarCodeInfo);
  3811. } else{
  3812. lf_lisSpcBarcodeLabel(ds_CrossMatchinBarCodeInfo,ds_data_setupinfo);
  3813. }
  3814. }
  3815. }
  3816. function lf_getResultRef(){
  3817. var objParam = [{col:"pid", type:"string", size:10, val: ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"pid")}]
  3818. dsf_createDsRow("ds_send_reqdata_pid", objParam, false)
  3819. var objArg = new Object();
  3820. objArg.arg_ds_send_singdata = ds_send_reqdata_pid;
  3821. frmf_modal("SMAER00800", "SMAER00800", objArg, "", "", "", "", "", "", "", "", "", "M");
  3822. }
  3823. function lf_getFrozen(){
  3824. frmf_setParameter("opener_parameter_id", ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcno"));
  3825. frmf_modal("SPLPP02800","SPLPP02800","", "", "", "", "", "", "", "", "", "", "M");
  3826. }
  3827. function lf_getTissu(){
  3828. frmf_setParameter("opener_parameter_id", ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcno"));
  3829. frmf_modal("SPLPP03000","SPLPP03000","", "", "", "", "", "", "", "", "", "", "M");
  3830. }
  3831. //바코드 전체 선택 및 해제
  3832. function lf_chkYN(flag) {
  3833. var today = utlf_getCurrentDate();
  3834. if(flag == "Y") { //전체선택
  3835. for(i=0; i<ds_grd_TestInfoCnts.rowcount; i++){
  3836. ds_grd_TestInfoCnts.updatecontrol = false;
  3837. if(ds_grd_TestInfoCnts.getColumn(i,"spcstat") < 4 || ds_grd_TestInfoCnts.getColumn(i,"spcstat") == "-") { //접수상태이전이면
  3838. //↓ 검사당 항목 체크 (중복 검사 때문에 선택버튼 값을 choi2에도 조회해와서 그 값을 넣음.)
  3839. ds_grd_TestInfoCnts.setColumn(i,"choi",ds_grd_TestInfoCnts.getColumn(i,"choi2"));
  3840. if(ds_grd_TestInfoCnts.getColumn(i,"bcchk") == "false") { //접수상태이전이면
  3841. ds_grd_TestInfoCnts.setColumn(i,"bcchk","true"); //바코드체크,바코드체크된 이미지
  3842. }
  3843. ds_grd_TestInfoCnts.setColumn(i,"choi","1");
  3844. // 전체선택버튼 눌렀을때 이미지만 표시되는데 체크까지되게 변경요청 9104번
  3845. if(gv_scrnid == "SMLLC00800") { // 병동채혈 미래처방 중복체크못함 choi, choi2 에 몽땅 false로 넘어옴
  3846. if(ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"prcphopedd") > today){ // 미래처방은 몽땅
  3847. ds_grd_TestInfoCnts.setColumn(i,"choi","1");
  3848. } else{
  3849. if(ds_grd_TestInfoCnts.getColumn(i,"choi2") == "1"){ //중복검사 아닌것만 체크되게
  3850. ds_grd_TestInfoCnts.setColumn(i,"choi","1");
  3851. }
  3852. }
  3853. }else{
  3854. if(ds_grd_TestInfoCnts.getColumn(i,"choi2") == "1"){ //중복검사 아닌것만 체크되게
  3855. ds_grd_TestInfoCnts.setColumn(i,"choi","1");
  3856. }
  3857. }
  3858. }
  3859. // --> ICG검사
  3860. if(ds_johoi.getColumn(0,"bcollflag") == "1"){ //미채혈
  3861. if((ds_grd_TestInfoCnts.getColumn(iRow,"choi") == "1") //체크
  3862. && (ds_grd_TestInfoCnts.getColumn(iRow,"spclrsltformkind") == "06")) { //특수결과입력유형이 ICG 인 경우
  3863. if(ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"testreqlnkno") == "0"){ //의뢰지 등록이 안된 경우
  3864. dsf_createDsRow("ds_hidden_icg"
  3865. , [{col: "row" , val: iRow}
  3866. , {col: "scrnno" , val: "10"}
  3867. , {col: "prcpdd" , val: ds_grd_TestInfoCnts.getColumn(iRow,"prcpdd")} ]);
  3868. var objArg = new Object();
  3869. objArg.arg_ds_hidden_reqfrminfo = ds_hidden_icg; //처방일자
  3870. frmf_modal("SPLRR91100","SPLRR91100",objArg,"","","","","","","","","","","M");
  3871. ds_grd_BcollInfo.setColumn(ds_grd_BcollInfo.rowposition,"testreqlnkno",ds_grd_TestInfoCnts.getColumn(iRow,"testreqlnkno"));
  3872. } else { //의뢰지 등록이 되어 있다면(환자목록의 체크박스 선택한 경우 등등)
  3873. ds_grd_TestInfoCnts.setColumn(iRow,"testreqlnkno", ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"testreqlnkno"));
  3874. }
  3875. }
  3876. } // <--
  3877. ds_grd_TestInfoCnts.updatecontrol = true;
  3878. }
  3879. grp4.btn_chky.visible = false; //전체선택 숨기기
  3880. grp4.btn_chkn.visible = true; //전체선택해제 보이기
  3881. } else { //전체선택해제
  3882. ds_grd_TestInfoCnts.updatecontrol = false;
  3883. for(i=0; i<ds_grd_TestInfoCnts.rowcount; i++){
  3884. ds_grd_TestInfoCnts.setColumn(i,"choi","0"); // 검사당 항목 체크해제
  3885. //if(ds_grd_TestInfoCnts.getColumn(i,"bcchk") == "true") { //접수상태이전이면
  3886. if(ds_grd_TestInfoCnts.getColumn(i,"bcchk") == "true") { //접수상태이전이면
  3887. ds_grd_TestInfoCnts.setColumn(i,"bcchk","false"); //바코드 체크해제,바코드체크해제된 이미지
  3888. }
  3889. }
  3890. grp4.btn_chky.visible = true; //전체선택 보이기
  3891. grp4.btn_chkn.visible = false; //전체선택해제 숨기기
  3892. lf_lisClearStatus(grp4.grd_TestInfoCnts);
  3893. }
  3894. //바코드 갯수, 용기 갯수 셋팅
  3895. lf_getBarcdPrintCount();
  3896. if(ds_johoi.getColumn(0,"xrwGBN") == "outbcoll" && group3.group2.combo3.value == "1"){
  3897. //중복코드 체크
  3898. //lf_getDuplPrcpCd(); 1.0에는 없음 ..2018.01.09 pkc 주석 처리
  3899. }
  3900. }
  3901. //외래채혈 인 경우만 그리드 컨트롤
  3902. function lf_setTestGridStyle(gbn){
  3903. var param = gbn;
  3904. // trace(gbn+' / '+gbn);
  3905. // alert('a');
  3906. //환경설정 값 제거해준다 2014.12.26
  3907. ds_uuee.clearData();
  3908. var strFormats = grp4.grd_TestInfoCnts.formats;
  3909. //trace(strFormats);
  3910. grp4.grd_TestInfoCnts.formats = strFormats;
  3911. grp4.grd_TestInfoCnts.redraw();
  3912. var scrid = this.parent.parent.frmf_getScreenID(); //components[frmf_getScreenID()].getOwnerFrame().form.name;
  3913. //alert(scrid );
  3914. trace("param :"+param+' / '+scrid);
  3915. if(param == "0"){
  3916. if(scrid=="SMLLC00200") { //병동채혈
  3917. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcno"),"size",0); //바코드번호
  3918. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpkindcd"),"size",35); //구분
  3919. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpdd"),"size",0); //처방등록일
  3920. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rcpt"),"size",0); //수납
  3921. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpexecdeptnm"),"size",62); // 시행부서
  3922. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg"),"size",64); //검사항목
  3923. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg")+1,"size",20); //검사항목
  3924. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm")-1,"size",25); // 용기이미지
  3925. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm"),"size",60); // 용기명
  3926. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcnm"),"size",85); // 검체명
  3927. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","erprcpflag"),"size",35); // 응급
  3928. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddeptnm"),"size",45); // 진료과
  3929. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddrnm"),"size",65); //의사
  3930. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cmt"),"size",70); // comment
  3931. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcolldt"),"size",140); // 채혈일시
  3932. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollid"),"size",60); // 채혈자
  3933. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldt"),"size",119); // 취소일시
  3934. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cancelid"),"size",80); // 취소자
  3935. } else{
  3936. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcno"),"size",0); //바코드번호
  3937. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpkindcd"),"size",0); //구분
  3938. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpdd"),"size",0); //처방등록일
  3939. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rcpt"),"size",34); //수납
  3940. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpexecdeptnm"),"size",62); // 시행부서
  3941. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg"),"size",64); //검사항목
  3942. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg")+1,"size",20); //검사항목
  3943. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm")-1,"size",25); // 용기이미지
  3944. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm"),"size",60); // 용기명
  3945. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcnm"),"size",85); // 검체명
  3946. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","erprcpflag"),"size",35); // 응급
  3947. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddeptnm"),"size",45); // 진료과
  3948. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddrnm"),"size",65); //의사
  3949. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cmt"),"size",70); // comment
  3950. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcolldt"),"size",140); // 채혈일시
  3951. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollid"),"size",60); // 채혈자
  3952. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldt"),"size",119); // 취소일시
  3953. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cancelid"),"size",80); // 취소자
  3954. }
  3955. // if(grp3.grp2.cmb_bcollflag.value == "1"){ //미채혈
  3956. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",0); // 취소사유
  3957. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcacptdt"),"size",0); // 접수일시
  3958. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","lstreptdt"),"size",0); // 결과일시
  3959. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt01"),"size",0); // 결과
  3960. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt02"),"size",0); // 확정
  3961. // }else{
  3962. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",100); // 취소사유
  3963. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcacptdt"),"size",119); // 접수일시
  3964. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","lstreptdt"),"size",140); // 결과일시
  3965. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt01"),"size",20); // 결과
  3966. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt02"),"size",20); // 확정
  3967. // }
  3968. }else if(param == "1"){
  3969. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rcpt"),"size",0); // 수납
  3970. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpexecdeptnm"),"size",0); // 시행부서
  3971. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg"),"size",0); // 검사항목
  3972. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg")+1,"size",0); // 검사항목
  3973. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm")-1,"size",0); // 용기이미지
  3974. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm"),"size",0); // 용기명
  3975. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcnm"),"size",0); // 검체명
  3976. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","erprcpflag"),"size",35); // 응급
  3977. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddeptnm"),"size",45); // 진료과
  3978. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddrnm"),"size",65); // 의사
  3979. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cmt"),"size",70); // comment
  3980. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcolldt"),"size",140) // 채혈일시
  3981. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollid"),"size",60); // 채혈자
  3982. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldt"),"size",119); // 취소일시
  3983. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cancelid"),"size",80); // 취소자
  3984. // if(grp3.grp2.cmb_bcollflag.value == "1"){ //미채혈
  3985. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",0); // 취소사유
  3986. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcacptdt"),"size",0); // 접수일시
  3987. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","lstreptdt"),"size",0); // 결과일시
  3988. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt01"),"size",0); // 결과
  3989. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt02"),"size",0); // 확정
  3990. // }else{
  3991. //
  3992. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",100); // 취소사유
  3993. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcacptdt"),"size",119); // 접수일시
  3994. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","lstreptdt"),"size",140); // 결과일시
  3995. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt01"),"size",20); // 결과
  3996. // grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt02"),"size",20); // 확정
  3997. // }
  3998. }else if(param == "2"){
  3999. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rcpt"),"size",0); // 수납
  4000. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpexecdeptnm"),"size",0); // 시행부서
  4001. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg"),"size",0); // 검사항목
  4002. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg")+1,"size",0); // 검사항목
  4003. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm")-1,"size",0); // 용기이미지
  4004. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm"),"size",0); // 용기명
  4005. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcnm"),"size",0); // 검체명
  4006. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","erprcpflag"),"size",0); // 응급
  4007. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddeptnm"),"size",0); // 진료과
  4008. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddrnm"),"size",0); // 의사
  4009. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cmt"),"size",0); // comment
  4010. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcolldt"),"size",0); // 채혈일시
  4011. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollid"),"size",0); // 채혈자
  4012. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldt"),"size",0); // 취소일시
  4013. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cancelid"),"size",0); // 취소자
  4014. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",0); // 취소사유
  4015. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcacptdt"),"size",0); // 접수일시
  4016. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","lstreptdt"),"size",0); // 결과일시
  4017. }else if(param == "3"){
  4018. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rcpt"),"size",0); // 수납
  4019. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpdd"),"size",0); // 처방등록일
  4020. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcno"),"size",0); // 처방등록일
  4021. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpexecdeptnm"),"size",0); // 시행부서
  4022. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tclsscrnm"),"size",150); // 검사항목
  4023. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg")+1,"size",0); // 검사항목
  4024. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm")-1,"size",0); // 용기이미지
  4025. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubenm"),"size",0); // 용기명
  4026. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcnm"),"size",0); // 검체명
  4027. //grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","erprcpflag"),"size",0); // 응급
  4028. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddeptnm"),"size",0); // 진료과
  4029. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","orddrnm"),"size",0); // 의사
  4030. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cmt"),"size",0); // comment
  4031. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcolldt"),"size",0); // 채혈일시
  4032. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollid"),"size",0); // 채혈자
  4033. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldt"),"size",0); // 취소일시
  4034. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","cancelid"),"size",0); // 취소자
  4035. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",0); // 취소사유
  4036. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","spcacptdt"),"size",0); // 접수일시
  4037. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","lstreptdt"),"size",0); // 결과일시
  4038. }
  4039. //grdf_setRowStyle(grp4.grd_TestInfoCnts,"0" , "35" , "prcpkindcd" , "equal" ); //수술중 색깔표시
  4040. var col = "prcpkindcd";
  4041. var bfont = "expr:String(";
  4042. var dataValue = "35";
  4043. var bcolor = "#fcd2c1 center middle" +"' : "+"'"+"#FFFFFF"+" no-repeat center middle'";
  4044. var bcolor1 = "#fcd2c1" +"' : "+"''";
  4045. var bcolor2 = "#fcd2c1 right middle" +"' : "+"'"+"#FFFFFF"+" no-repeat right middle'";
  4046. var bcolor3 = "#fcd2c1 left middle" +"' : "+"'"+"#FFFFFF"+" no-repeat left middle'";
  4047. var ctrl = "";
  4048. var bfont1 = "";
  4049. var bfont2 = "";
  4050. var bfont3 = "";
  4051. bfont1 = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor1;
  4052. bfont2 = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor2;
  4053. bfont3 = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor3;
  4054. bfont = bfont + col + ") =="+ctrl+ " '" + dataValue +"' ? '"+ bcolor;
  4055. grp4.grd_TestInfoCnts.setCellProperty("body", 3, "background" ,bfont1);
  4056. grp4.grd_TestInfoCnts.setCellProperty("body", 3, "background2" ,bfont1);
  4057. grp4.grd_TestInfoCnts.setCellProperty("body", 5, "background" ,bfont1);
  4058. grp4.grd_TestInfoCnts.setCellProperty("body", 5, "background2" ,bfont1);
  4059. grp4.grd_TestInfoCnts.setCellProperty("body", 6, "background" ,bfont1);
  4060. grp4.grd_TestInfoCnts.setCellProperty("body", 6, "background2" ,bfont1);
  4061. grp4.grd_TestInfoCnts.setCellProperty("body", 7, "background" ,bfont1);
  4062. grp4.grd_TestInfoCnts.setCellProperty("body", 7, "background2" ,bfont1);
  4063. grp4.grd_TestInfoCnts.setCellProperty("body", 8, "background" ,bfont1);
  4064. grp4.grd_TestInfoCnts.setCellProperty("body", 8, "background2" ,bfont1);
  4065. grp4.grd_TestInfoCnts.setCellProperty("body", 9, "background" ,bfont1);
  4066. grp4.grd_TestInfoCnts.setCellProperty("body", 9, "background2" ,bfont1);
  4067. grp4.grd_TestInfoCnts.setCellProperty("body", 10, "background" ,bfont1);
  4068. grp4.grd_TestInfoCnts.setCellProperty("body", 10, "background2" ,bfont1);
  4069. grp4.grd_TestInfoCnts.setCellProperty("body", 11, "background" ,bfont1);
  4070. grp4.grd_TestInfoCnts.setCellProperty("body", 11, "background2" ,bfont1);
  4071. grp4.grd_TestInfoCnts.setCellProperty("body", 13, "background" ,bfont1);
  4072. grp4.grd_TestInfoCnts.setCellProperty("body", 13, "background2" ,bfont1);
  4073. grp4.grd_TestInfoCnts.setCellProperty("body", 14, "background" ,bfont1);
  4074. grp4.grd_TestInfoCnts.setCellProperty("body", 14, "background2" ,bfont1);
  4075. grp4.grd_TestInfoCnts.setCellProperty("body", 15, "background" ,bfont1);
  4076. grp4.grd_TestInfoCnts.setCellProperty("body", 15, "background2" ,bfont1);
  4077. grp4.grd_TestInfoCnts.setCellProperty("body", 16, "background" ,bfont1);
  4078. grp4.grd_TestInfoCnts.setCellProperty("body", 16, "background2" ,bfont1);
  4079. grp4.grd_TestInfoCnts.setCellProperty("body", 17, "background" ,bfont1);
  4080. grp4.grd_TestInfoCnts.setCellProperty("body", 17, "background2" ,bfont1);
  4081. grp4.grd_TestInfoCnts.setCellProperty("body", 18, "background" ,bfont1);
  4082. grp4.grd_TestInfoCnts.setCellProperty("body", 18, "background2" ,bfont1);
  4083. grp4.grd_TestInfoCnts.setCellProperty("body", 2, "background" ,bfont);
  4084. grp4.grd_TestInfoCnts.setCellProperty("body", 2, "background2" ,bfont);
  4085. grp4.grd_TestInfoCnts.setCellProperty("body", 12, "background" ,bfont3);
  4086. grp4.grd_TestInfoCnts.setCellProperty("body", 12, "background2" ,bfont3);
  4087. grp4.grd_TestInfoCnts.setCellProperty("body", 4, "background" ,bfont2);
  4088. grp4.grd_TestInfoCnts.setCellProperty("body", 4, "background2" ,bfont2);
  4089. }
  4090. //환자명바코드출력
  4091. function lf_getPatNmBarCdPrint(){
  4092. var pid = "";
  4093. /*
  4094. var toppid = appf_getPatientInfo("pid");
  4095. //top 정보가 없으면 조회조건에 입력한 환자번호
  4096. if(toppid == ""){
  4097. pid = grp3.grp2.iptSearch.value;
  4098. //top 정보가 있으면 탑정보의 환자번호
  4099. }else{
  4100. pid = toppid;
  4101. }
  4102. pid = utlf_isNull(pid)==true?"":pid;
  4103. if(pid==""){
  4104. sysf_messageBox("환자등록번호를 확인해주세요." , "I");
  4105. return;
  4106. }
  4107. */
  4108. //선택된row의 환자명바코드가 출력이 되게 수정
  4109. if(gv_scrnid == "SMLLC00700") {
  4110. pid = grp3.grp2.iptSearch.value;
  4111. } else{
  4112. pid = utlf_transNullToEmpty(ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition,"pid"));
  4113. }
  4114. if(pid==""){
  4115. sysf_messageBox("환자등록번호를 확인해주세요." , "I");
  4116. return;
  4117. }
  4118. /*
  4119. if(toppid != "" && toppid != grp3.grp2.iptSearch.value){
  4120. sysf_messageBox("조건의 등록번호와 상단정보가 일치하지 않습니다." , "I");
  4121. return;
  4122. };
  4123. */
  4124. var sInDsName = dsf_createDsRow("ds_temp2_search"
  4125. , [{col: "pid", val: pid}]);
  4126. // 서브밋호출
  4127. tranf_submit({
  4128. id: "TRLZZ90101"
  4129. , service: "diagtestapplib.LisCommon"
  4130. , method: "reqGetPatNmBarCdPrint"
  4131. , inds : "cond="+sInDsName
  4132. , outds: "ds_patNmBarCdPrint=printinfo"
  4133. , callback: "cbf_SSLLC80100"
  4134. , async: false
  4135. });
  4136. var rowcnt = ds_patNmBarCdPrint.rowcount;
  4137. // for(i=0;i<rowcnt;i++){
  4138. // ds_patNmBarCdPrint.deleteRow(ds_patNmBarCdPrint.rowcount- 1);
  4139. // }
  4140. if(ds_patNmBarCdPrint.rowcount > 0){
  4141. // //lf_getClobPasing(); //프린터설정정보 데이터셋으로 받아옴
  4142. // var sPrtPort = ds_data_setupinfo.getColumn(0,"rexgbn");
  4143. // if (sPrtPort == "1"){
  4144. // gfn_rex3BcnoPrint("2", ds_patNmBarCdPrint);
  4145. // } else{
  4146. // lf_patNmBarCdLabel2(ds_patNmBarCdPrint,ds_data_setupinfo);
  4147. // }
  4148. var prtkind = ds_data_setupinfo.getColumn(0,"prntkind");
  4149. var portnm = ds_data_setupinfo.getColumn(0,"commkind");
  4150. //lzzfMakeBrcdPrntObjHanDo("CommAX"); //일반프린터
  4151. if( prtkind == "10" || prtkind == "2" || prtkind == "6" || prtkind == "7" ){
  4152. lf_PatNmBarCdLabelSaTo(ds_patNmBarCdPrint,"");
  4153. //lf_PatNmBarCdLabel(ds_patNmBarCdPrint,"");
  4154. }else if(prtkind == "8"){
  4155. lf_PatNmBarCdLabel_B472(ds_patNmBarCdPrint,"");
  4156. }else{
  4157. lf_PatNmBarCdLabel(ds_patNmBarCdPrint,"");
  4158. }
  4159. }
  4160. // ds_patNmBarCdPrint.clearData();
  4161. }
  4162. //콜백함수
  4163. function cbf_SSLLC80100(strSvcID, nErrorCode, strErrorMag){
  4164. if(nErrorCode != 0){
  4165. sysf_messageBox("ID: " + strSvcID + " Error: " + strErrorMag, "E009", "");
  4166. }
  4167. if(strSvcID == "TXLLF01901" && nErrorCode==0){
  4168. //lf_fGetDiagTestPrcpCls();
  4169. sysf_messageBox("","I001","");
  4170. }
  4171. if(strSvcID == "TRZSD00109" && nErrorCode==0){
  4172. var nRow = ds_init_dept.addRow();
  4173. ds_init_dept.setColumn(nRow,"depthngnm","- 전체 -");
  4174. ds_init_dept.setColumn(nRow,"deptcd","-");
  4175. ds_johoi.setColumn(0,"testdeptcd","-");
  4176. ds_johoi.setColumn(0,"testdeptflagcd","-");
  4177. }
  4178. if(strSvcID == "TRLZZ00101" && nErrorCode==0){
  4179. if(gv_scrnid == "SMLLC00800"){
  4180. ds_data_lb0000.copyData(ds_init_lb0001);
  4181. var fRow = ds_data_lb0000.findRow("cd","00");
  4182. ds_data_lb0000.deleteRow(fRow); // 병동구분 -전체- 삭제
  4183. grp3.grp2.cp_wardcd2.setDataSet(ds_data_lb0000,"cd","nm");
  4184. grp3.grp2.cp_wardcd2.setData(ds_data_lb0000.getColumn(0,"cd"));
  4185. }
  4186. }
  4187. }
  4188. //바코드 출력 갯수, 용기 갯수
  4189. function lf_getBarcdPrintCount(){
  4190. var barcdCnt = 0;
  4191. var tubeCnt = 0;
  4192. var bf_bcchk = "";
  4193. var bf_choi = "";
  4194. var bf_groupno = "";
  4195. var bcchk = "";
  4196. var choi = "";
  4197. var groupno = "";
  4198. var tubecd = "";
  4199. var tubenm = "";
  4200. var prntcnt = 0;
  4201. var prcpexecdeptnm = "";
  4202. var prcpexecdeptcd = "";
  4203. var conttestyn = "";
  4204. var conttesttm = "";
  4205. var bf_conttestyn = "";
  4206. var bf_conttesttm = "";
  4207. var findRow = -1;
  4208. var barcdCntInfo = "";
  4209. var TubeCntInfo = "";
  4210. var cntInfo = "";
  4211. var tubenmInfo = "";
  4212. ds_data_tubeCnt.clearData();
  4213. fdsf_createDsFilter("ds_copy_TestInfoCnts", "ds_grd_TestInfoCnts", "choi=='1'");
  4214. for(var i=0; i<ds_copy_TestInfoCnts.rowcount; i++){
  4215. if(i==0){
  4216. bf_bcchk = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "bcchk"));
  4217. bf_choi = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "choi"));
  4218. bf_groupno = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "groupno"));
  4219. }else{
  4220. bf_bcchk = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i-1, "bcchk"));
  4221. bf_choi = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i-1, "choi"));
  4222. bf_groupno = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i-1, "groupno"));
  4223. }
  4224. bcchk = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "bcchk"));
  4225. choi = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "choi"));
  4226. groupno = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "groupno"));
  4227. tubecd = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "tubecd"));
  4228. tubenm = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "tubenm2"));
  4229. prntcnt = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "bcollbarcdprntcnt"));
  4230. prcpexecdeptcd = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "prcpexecdeptcd"));
  4231. prcpexecdeptnm = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "prcpexecdeptnm"));
  4232. conttestyn = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "conttestyn"));
  4233. conttesttm = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i, "conttesttm"));
  4234. if(i==0){
  4235. ds_data_tubeCnt.addRow();
  4236. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "prcpexecdeptcd", prcpexecdeptcd);
  4237. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "prcpexecdeptnm", prcpexecdeptnm);
  4238. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "tubecd", tubecd);
  4239. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "tubenm", tubenm);
  4240. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "cnt", parseInt(prntcnt));
  4241. }else{
  4242. //한바코드 기준일때
  4243. if(bf_groupno == groupno){
  4244. //연속검사이면...
  4245. if(conttestyn!="N"){
  4246. bf_conttestyn = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i-1, "conttestyn"));
  4247. bf_conttesttm = utlf_transNullToEmpty(ds_copy_TestInfoCnts.getColumn(i-1, "conttesttm"));
  4248. //용기코드가 존재하는지 체크, 존재하면 cnt +1
  4249. if(bf_conttesttm!=conttesttm){
  4250. findRow = ds_data_tubeCnt.findRowExpr("tubecd == '"+tubecd+"' && prcpexecdeptcd == '"+prcpexecdeptcd+"'");
  4251. }else{
  4252. findRow = -1;
  4253. }
  4254. }else{
  4255. findRow = -1;
  4256. }
  4257. if(findRow >= 0){
  4258. ds_data_tubeCnt.setColumn(findRow, "cnt", parseInt(utlf_transNullToEmpty(ds_data_tubeCnt.getColumn(findRow,"cnt"))) + parseInt(prntcnt));
  4259. }
  4260. }else{
  4261. findRow = ds_data_tubeCnt.findRowExpr("tubecd == '"+tubecd+"' && prcpexecdeptcd == '"+prcpexecdeptcd+"'");
  4262. if(findRow >= 0){
  4263. ds_data_tubeCnt.setColumn(findRow, "cnt", parseInt(utlf_transNullToEmpty(ds_data_tubeCnt.getColumn(findRow,"cnt"))) + parseInt(prntcnt));
  4264. //없으면 신규로
  4265. }else{
  4266. ds_data_tubeCnt.addRow();
  4267. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "prcpexecdeptcd", prcpexecdeptcd);
  4268. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "prcpexecdeptnm", prcpexecdeptnm);
  4269. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "tubecd", tubecd);
  4270. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "tubenm", tubenm);
  4271. ds_data_tubeCnt.setColumn(ds_data_tubeCnt.rowcount-1, "cnt", prntcnt);
  4272. }
  4273. }
  4274. }
  4275. }//end for
  4276. cntInfo = 0;
  4277. for(var i =0; i < ds_data_tubeCnt.rowcount; i++){
  4278. cntInfo = parseInt(cntInfo) + parseInt(utlf_transNullToEmpty(ds_data_tubeCnt.getColumn(i, "cnt")));
  4279. }
  4280. ds_data_tubeCnt.rowposition = 0;
  4281. ds_data_tubeCnt.keystring = "S:+prcpexecdeptcd+tubecd";
  4282. }
  4283. function fExePlgyBarCdPrntEPL(pLCount) {
  4284. try {
  4285. trace('fExePlgyBarCdPrntEPL 1111');
  4286. var sFixChar = "";
  4287. var sSndMsg = "";
  4288. var sPrcpDD = "";
  4289. var sTemp = "";
  4290. var sTempStr = "";
  4291. //var strNode = "/root/main/TestInfo/plgybarcdinfo";
  4292. var iLeft = ds_data_blank.getColumn(0,"left");
  4293. var iTop = ds_data_blank.getColumn(0,"top");
  4294. var iXPos = 0;
  4295. var iYPos = 0;
  4296. var iWidth = 0;
  4297. var aFlag = new Array();
  4298. var aStr = "";
  4299. var LCount = 0;
  4300. var portOpenTF = "";
  4301. //-------------------------------------
  4302. if (utlf_isNull(pLCount) || pLCount == 0) {
  4303. LCount = 0;
  4304. }else if (pLCount > 0) {
  4305. LCount = pLCount;
  4306. }
  4307. //-----------------------------------------
  4308. if (utlf_isNull(iLeft) || iLeft == "-") iLeft = 0;
  4309. if (utlf_isNull(iTop) || iTop == "-") iTop = 0;
  4310. //--------------------
  4311. iLeft = Number(iLeft);
  4312. iTop = Number(iTop);
  4313. //------------------------------------------------------------------
  4314. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  4315. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  4316. //----------------------
  4317. if (sPrntKind != "0") {
  4318. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  4319. //----------------------
  4320. if(sCommKind == "01") {
  4321. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  4322. } else if(sCommKind == "02") {
  4323. var sComm = ds_data_comm02.getColumn(0,"comm");
  4324. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  4325. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  4326. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  4327. var sParity = ds_data_comm02.getColumn(0,"parity");
  4328. //----------------------
  4329. CommAX.CommPort = sComm;
  4330. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  4331. //진검 바코드 출력 갯수가 존재하면 port 오픈 하지 않는다.
  4332. //진검 바코드 출력후 병리 바코드 갯수 체크하여 포트 클로즈 하지 않았기 때문에..
  4333. if(LCount > 0){
  4334. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  4335. portOpenTF = "TRUE";
  4336. }else if(LCount == 0){
  4337. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  4338. portOpenTF = CommAX.PortOpen("true");
  4339. }
  4340. } else if(sCommKind == "03") {
  4341. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  4342. }
  4343. if( (portOpenTF == "TRUE" && sCommKind == "02")
  4344. || (sCommKind == "01")
  4345. || (sCommKind == "07") // 정은임시 B472 테스트용
  4346. || (sCommKind == "03")){
  4347. //----------------
  4348. // 바코드내용 출력
  4349. for (var iRowNo=0; iRowNo < ds_plgybarcdinfo.rowcount; iRowNo++) {
  4350. //----------------------------------
  4351. sFixChar = String.fromCharCode(34);
  4352. //------------------------------------------------------------
  4353. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  4354. //sPrcpDD = model.getValue(strNode + "[" + iRowNo + "]/prcpdd");
  4355. sPrcpDD = String(ds_plgybarcdinfo.getColumn(iRowNo, "prcphopedt"));
  4356. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  4357. //---------------------
  4358. if(sPrntKind == "10") {
  4359. //----------------
  4360. sSndMsg = "\r\n"; // Active Command Processing
  4361. //-----------------
  4362. if ( iRowNo == 1 ) {
  4363. //sSndMsg += "^@\r\n";
  4364. //sSndMsg += "^default\r\n";
  4365. }
  4366. sSndMsg += "N" + "\r\n"; // Clear Image Buffer
  4367. sSndMsg += "JF" + "\n";
  4368. sSndMsg += "D9" + "\n";
  4369. sSndMsg += "S2" + "\n";
  4370. sSndMsg += "Q223,27" + "\n";
  4371. sSndMsg += "q456" + "\n";
  4372. //--------------------
  4373. //iXPos = Number(iLeft) - 70; // 역방향
  4374. iXPos = Number(iLeft) + 20;
  4375. iYPos = Number(iTop);
  4376. sSndMsg += "B"+iXPos+","+iYPos+",0,3,2,5,60,B,"+ sFixChar + ds_plgybarcdinfo.getColumn(iRowNo, "spcbarcdno") + sFixChar + "\r\n";
  4377. //====================
  4378. iXPos = Number(iLeft);
  4379. //iYPos = Number(iTop) - 90; // 역방향
  4380. iYPos = Number(iTop) + 90;
  4381. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + "PATHOLOGY" + sFixChar + "\r\n"; // 검체도착지명
  4382. //--------------------------
  4383. // iXPos = Number(iLeft) - 140; // 역방향
  4384. // iYPos = Number(iTop) - 90;
  4385. iXPos = Number(iLeft) + 140;
  4386. iYPos = Number(iTop) + 90;
  4387. //sTempStr = model.getValue(strNode+"["+iRowNo+"]/wardroom");
  4388. if ( ds_plgybarcdinfo.getColumn(iRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  4389. if ( utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts")) ) {
  4390. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  4391. } else {
  4392. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts"); // 응급실 환자 위치
  4393. }
  4394. } else {
  4395. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  4396. }
  4397. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 병동병실
  4398. //--------------------------
  4399. // iXPos = Number(iLeft) - 240; // 역방향
  4400. // iYPos = Number(iTop) - 90;
  4401. iXPos = Number(iLeft) + 240;
  4402. iYPos = Number(iTop) + 90;
  4403. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + sPrcpDD + sFixChar + "\r\n"; // 처방일자
  4404. //-------------
  4405. //감염정보 표시
  4406. if(!utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd"))) {
  4407. // iXPos = Number(iLeft) - 370; // 역방향
  4408. // iYPos = Number(iTop) - 90;
  4409. iXPos = Number(iLeft) + 370;
  4410. iYPos = Number(iTop) + 90;
  4411. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar +ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd") + sFixChar + "\r\n"; // 감염정보
  4412. }
  4413. //--------------------
  4414. iXPos = Number(iLeft);
  4415. //iYPos = Number(iTop) - 120; // 역방향
  4416. iYPos = Number(iTop) + 120;
  4417. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + ds_plgybarcdinfo.getColumn(iRowNo, "pid") + sFixChar + "\r\n"; // 등록번호
  4418. //-------------------------
  4419. // iXPos = Number(iLeft) - 140; // 역방향
  4420. // iYPos = Number(iTop) - 120;
  4421. iXPos = Number(iLeft) + 140;
  4422. iYPos = Number(iTop) + 120;
  4423. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + ds_plgybarcdinfo.getColumn(iRowNo, "patnm") + sFixChar + "\r\n"; // 환자명
  4424. //-------------------------
  4425. // iXPos = Number(iLeft) - 240; // 역방향
  4426. // iYPos = Number(iTop) - 120;
  4427. iXPos = Number(iLeft) + 240;
  4428. iYPos = Number(iTop) + 120;
  4429. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + ds_plgybarcdinfo.getColumn(iRowNo, "sexage") + sFixChar + "\r\n"; // 성별/나이
  4430. //-------------------------
  4431. // iXPos = Number(iLeft) - 340; // 역방향
  4432. // iYPos = Number(iTop) - 120;
  4433. iXPos = Number(iLeft) + 340;
  4434. iYPos = Number(iTop) + 120;
  4435. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + ds_plgybarcdinfo.getColumn(iRowNo, "orddeptnm") + sFixChar + "\r\n"; // 진료과
  4436. //====================
  4437. iXPos = Number(iLeft);
  4438. //iYPos = Number(iTop) - 150; // 역방향
  4439. iYPos = Number(iTop) + 150;
  4440. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "spcdispnm");
  4441. sTempStr = sTempStr.replace("▨", ",");
  4442. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검체표시명
  4443. //====================
  4444. iXPos = Number(iLeft);
  4445. //iYPos = Number(iTop) - 180; // 역방향
  4446. iYPos = Number(iTop) + 180;
  4447. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm");
  4448. sTempStr = sTempStr.replace("▨", ",");
  4449. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검사명
  4450. //------추가처방명 표시-------------------
  4451. iXPos = Number(iLeft);
  4452. //iYPos = Number(iTop) - 210; // 역방향
  4453. iYPos = Number(iTop) + 210;
  4454. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm2");
  4455. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검사명2
  4456. //-----------------------
  4457. sSndMsg += "P1" + "\r\n";
  4458. //----------------------
  4459. CommAX.SendMsg(sSndMsg);
  4460. }
  4461. }
  4462. //==================================================
  4463. // portopen이 true이고 통신유형이 com일때 port close
  4464. if( portOpenTF == "TRUE" && sCommKind == "02") {
  4465. CommAX.PortOpen("false");
  4466. }
  4467. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  4468. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  4469. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4470. + " \n 2.케이블 확인"
  4471. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4472. return;
  4473. }
  4474. }
  4475. } catch(ee) {
  4476. sysf_messageBox("병리바코드출력에", "E009");
  4477. return;
  4478. }
  4479. }
  4480. //-------------------------------------------
  4481. // 병리과 바코드 재출력 Zebra 용 다른건 js로
  4482. // 2010-12-15 : YDC
  4483. // Zebra EPL용 함수(TLP2844, TLP2842)
  4484. function fExePlgyBarCdRePrntEPL(pRowNo, pSNo, pENo, pCount) {
  4485. trace('fExePlgyBarCdRePrntEPL aaaa');
  4486. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  4487. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  4488. var sFixChar = "";
  4489. var sBarCdNoH = "";
  4490. var sBarCdNoD = "";
  4491. var sPrntNo = "";
  4492. var sSubPrntNo = "";
  4493. var sRePrntCnt = "";
  4494. var iStartNo = 1;
  4495. var iEndNo = 99;
  4496. var iFindColNo = -1;
  4497. var iSpcNo = 0;
  4498. var sSpcSeqNo = "";
  4499. var sSpcSeqNm = "";
  4500. var aSpcSeqNo = "";
  4501. var aSpcSeqNm = "";
  4502. var sSndMsg = "";
  4503. var sPrcpDD = "";
  4504. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  4505. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  4506. var iLeft = ds_data_blank.getColumn(0,"left");
  4507. var iTop = ds_data_blank.getColumn(0,"top");
  4508. var iXPos = 0;
  4509. var iYPos = 0;
  4510. var iWidth = 0;
  4511. var aFlag = new Array();
  4512. var aStr = "";
  4513. var portOpenTF = "";
  4514. //--------------------
  4515. iLeft = Number(iLeft);
  4516. iTop = Number(iTop);
  4517. // try {
  4518. //--------------------------------------------------------
  4519. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  4520. //----------------------
  4521. if (sCommKind == "01") {
  4522. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  4523. } else if(sCommKind == "02") {
  4524. var sComm = ds_data_comm02.getColumn(0,"comm");
  4525. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  4526. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  4527. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  4528. var sParity = ds_data_comm02.getColumn(0,"parity");
  4529. //----------------------
  4530. CommAX.CommPort = sComm;
  4531. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  4532. //-----------------------------------------------------
  4533. // 출력할 진검 바코드 갯수가 0보다 크면 port 오픈 안함.
  4534. if (pCount > 0) {
  4535. portOpenTF = "TRUE";
  4536. } else if (pCount == 0) {
  4537. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  4538. portOpenTF = CommAX.PortOpen("true");
  4539. }
  4540. } else if(sCommKind == "03") {
  4541. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  4542. }
  4543. //---------------------------------
  4544. // 바코드번호 Header(일련번호 제외)
  4545. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  4546. //--------------------------------------------------------------------------------------------------
  4547. if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") ) {
  4548. //-----------------------------------------------------
  4549. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  4550. //----------------------
  4551. if(sPrntKind == "10") {
  4552. //----------------------------------
  4553. sFixChar = String.fromCharCode(34);
  4554. //--------------------------------------------------
  4555. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  4556. //sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpdd");
  4557. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcphopedd");
  4558. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  4559. //-----------------
  4560. sSndMsg = "\r\n"; // Active Command Processing
  4561. //--------------------
  4562. if ( iPrntCnt == pSNo ) {
  4563. //sSndMsg += "^@\r\n";
  4564. //sSndMsg += "^default\r\n";
  4565. }
  4566. //----------------
  4567. sSndMsg += "N" + "\r\n"; // Clear Image Buffer
  4568. sSndMsg += "JF" + "\n";
  4569. sSndMsg += "D9" + "\n";
  4570. sSndMsg += "S2" + "\n";
  4571. sSndMsg += "Q223,27" + "\n";
  4572. sSndMsg += "q456" + "\n";
  4573. //-------------------------
  4574. //iXPos = Number(iLeft) - 70; // 역방향
  4575. iXPos = Number(iLeft) + 20;
  4576. iYPos = Number(iTop);
  4577. sSndMsg += "B"+iXPos+","+iYPos+",0,3,2,5,60,B,"+ sFixChar + sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0") + sFixChar + "\r\n";
  4578. //====================
  4579. iXPos = Number(iLeft);
  4580. //iYPos = Number(iTop) - 90; // 역방향
  4581. iYPos = Number(iTop) + 90;
  4582. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + "PATHOLOGY" + sFixChar + "\r\n"; // 검체도착지명
  4583. //--------------------------
  4584. // iXPos = Number(iLeft) - 140; // 역방향
  4585. // iYPos = Number(iTop) - 90;
  4586. iXPos = Number(iLeft) + 140;
  4587. iYPos = Number(iTop) + 90;
  4588. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpgenrflag") == "E" ) {
  4589. if ( utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts")) ) {
  4590. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom");
  4591. } else {
  4592. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"); // 응급실 환자 위치
  4593. }
  4594. } else {
  4595. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom");
  4596. }
  4597. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 병동병실
  4598. //-------------------------
  4599. // iXPos = Number(iLeft) - 240; // 역방향
  4600. // iYPos = Number(iTop) - 90;
  4601. iXPos = Number(iLeft) + 240;
  4602. iYPos = Number(iTop) + 90;
  4603. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + sPrcpDD + sFixChar + "\r\n"; // 처방일자
  4604. //--------------------------
  4605. // iXPos = Number(iLeft) - 370; // 역방향
  4606. // iYPos = Number(iTop) - 90;
  4607. iXPos = Number(iLeft) + 370;
  4608. iYPos = Number(iTop) + 90;
  4609. var isolabbrcd = utlf_transNullToEmpty(ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd") );
  4610. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar +isolabbrcd + sFixChar + "\r\n"; // 감염정보
  4611. //--------------------
  4612. iXPos = Number(iLeft);
  4613. //iYPos = Number(iTop) - 120; // 역방향
  4614. iYPos = Number(iTop) + 120;
  4615. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + ds_grd_TestInfoCnts.getColumn(pRowNo, "pid") + sFixChar + "\r\n"; // 등록번호
  4616. //-------------------------
  4617. // iXPos = Number(iLeft) - 140; // 역방향
  4618. // iYPos = Number(iTop) - 120;
  4619. iXPos = Number(iLeft) + 140;
  4620. iYPos = Number(iTop) + 120;
  4621. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm") + sFixChar + "\r\n"; // 환자명
  4622. //--------------------------
  4623. // iXPos = Number(iLeft) - 240; // 역방향
  4624. // iYPos = Number(iTop) - 120;
  4625. iXPos = Number(iLeft) + 240;
  4626. iYPos = Number(iTop) + 120;
  4627. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "sex") + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "dage");
  4628. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 성별/나이
  4629. //-------------------------
  4630. // iXPos = Number(iLeft) - 340; // 역방향
  4631. // iYPos = Number(iTop) - 120;
  4632. iXPos = Number(iLeft) + 340;
  4633. iYPos = Number(iTop) + 120;
  4634. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm");
  4635. //------------------------------------------------------------
  4636. // 수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  4637. if(!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))) {
  4638. sTempStr += "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") + ")";
  4639. }
  4640. sSndMsg += "A"+iXPos+","+iYPos+",0,2,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 진료과
  4641. //====================
  4642. iXPos = Number(iLeft);
  4643. //iYPos = Number(iTop) - 150; // 역방향
  4644. iYPos = Number(iTop) + 150;
  4645. //-----------------------------------------------------------------
  4646. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  4647. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  4648. //------------------------------------
  4649. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  4650. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  4651. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  4652. sTempStr += aSpcSeqNm[iPrntCnt-1];
  4653. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검체표시명
  4654. //--------------------
  4655. iXPos = Number(iLeft);
  4656. //iYPos = Number(iTop) - 180; // 역방향
  4657. iYPos = Number(iTop) + 180;
  4658. sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  4659. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검사명
  4660. //------추가처방명 표시-------------------
  4661. iXPos = Number(iLeft);
  4662. //iYPos = Number(iTop) - 210; // 역방향
  4663. iYPos = Number(iTop) - 210;
  4664. sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); // 검사명(추가처방)
  4665. sSndMsg += "A"+iXPos+","+iYPos+",0,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검사명
  4666. //-----------------------
  4667. sSndMsg += "P1" + "\r\n";
  4668. //----------------------
  4669. CommAX.SendMsg(sSndMsg);
  4670. }
  4671. }//end for
  4672. //portopen이 true이고 통신유형이 com일때 port close
  4673. if ( portOpenTF == "TRUE" && sCommKind == "02") {
  4674. CommAX.PortOpen("false");
  4675. }
  4676. } else if (portOpenTF = "FALSE" && sCommKind == "02") {
  4677. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  4678. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4679. + " \n 2.케이블 확인"
  4680. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4681. return;
  4682. }
  4683. }
  4684. //----------------------------------------
  4685. // 병리과 채혈바코드 출력( 해상도 300 DPI)
  4686. // 2010-10-19 : YDC 추가
  4687. function lf_ExePlgyBarCdPrnt300(pLCount) {
  4688. PCount = ds_plgybarcdinfo.rowcount; //병리 바코드 갯수
  4689. try {
  4690. var sSndMsg = "";
  4691. var sPrcpDD = "";
  4692. var sTemp = "";
  4693. var sTempStr = "";
  4694. //var strNode = "/root/main/TestInfo/plgybarcdinfo";
  4695. var iLeft = ds_data_blank.getColumn(0,"left");
  4696. var iTop = ds_data_blank.getColumn(0,"top");
  4697. var iXPos = 0;
  4698. var iYPos = 0;
  4699. var iWidth = 0;
  4700. var aFlag = new Array();
  4701. var aStr = "";
  4702. var LCount = 0;
  4703. var portOpenTF = "";
  4704. var test_rtn = "";
  4705. var test_he = "";
  4706. //-------------------------------------
  4707. if (utlf_isNull(pLCount) || pLCount == 0) {
  4708. LCount = 0;
  4709. }else if (pLCount > 0) {
  4710. LCount = pLCount;
  4711. }
  4712. //-----------------------------------------
  4713. if (utlf_isNull(iLeft) || iLeft == "-") iLeft = 0;
  4714. if (utlf_isNull(iTop) || iTop == "-") iTop = 0;
  4715. //------------------------------
  4716. // 2008-10-12 : 병리과 여백 조정
  4717. iLeft = Number(iLeft) + Number(20);
  4718. iTop = Number(iTop) + Number(10);
  4719. //------------------------------------------------------------------
  4720. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  4721. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  4722. //----------------------
  4723. if (sPrntKind != "0") {
  4724. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  4725. //----------------------
  4726. if(sCommKind == "01") {
  4727. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  4728. } else if(sCommKind == "02") {
  4729. var sComm = ds_data_comm02.getColumn(0,"comm");
  4730. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  4731. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  4732. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  4733. var sParity = ds_data_comm02.getColumn(0,"parity");
  4734. //----------------------
  4735. CommAX.CommPort = sComm;
  4736. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  4737. //진검 바코드 출력 갯수가 존재하면 port 오픈 하지 않는다.
  4738. //진검 바코드 출력후 병리 바코드 갯수 체크하여 포트 클로즈 하지 않았기 때문에..
  4739. if(LCount > 0){
  4740. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  4741. portOpenTF = "TRUE";
  4742. }else if(LCount == 0){
  4743. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  4744. portOpenTF = CommAX.PortOpen("true");
  4745. }
  4746. } else if(sCommKind == "03") {
  4747. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  4748. }
  4749. if( (portOpenTF == "TRUE" && sCommKind == "02")
  4750. || (sCommKind == "01")
  4751. || (sCommKind == "07") // 정은임시 B472 테스트용
  4752. || (sCommKind == "03")){
  4753. //----------------
  4754. // 바코드내용 출력
  4755. for (var iRowNo=0; iRowNo <ds_plgybarcdinfo.rowcount; iRowNo++) {
  4756. //--------------------------------------------------
  4757. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  4758. //sPrcpDD = model.getValue(strNode + "[" + iRowNo + "]/prcpdd");
  4759. sPrcpDD = String(ds_plgybarcdinfo.getColumn(iRowNo, "prcphopedt"));
  4760. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  4761. //------------------------------------------
  4762. //if( sPrntKind == "9" ) {
  4763. if( sPrntKind == "9" || sPrntKind == "5") { // 외래채혈실 바코드 추가(5)
  4764. sSndMsg = "";
  4765. //sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  4766. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  4767. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  4768. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  4769. //-------------------------
  4770. iXPos = Number(iLeft) + 20;
  4771. iYPos = Number(iTop) + 5;
  4772. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "spcbarcdno")+"^FS"; // 바코드
  4773. //--------------------
  4774. iXPos = Number(iLeft);
  4775. iYPos = Number(iTop) + 115;
  4776. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  4777. // fExeSendMsg(sSndMsg);
  4778. // sSndMsg = "";
  4779. //---------
  4780. iWidth = 0;
  4781. iXPos = Number(iLeft) + 180;
  4782. //sTempStr = model.getValue(strNode+"["+iRowNo+"]/wardroom");
  4783. if (ds_plgybarcdinfo.getColumn(iRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  4784. if ( utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts")) ) {
  4785. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  4786. } else {
  4787. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts"); // 응급실 환자 위치
  4788. }
  4789. } else {
  4790. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  4791. }
  4792. //alert(sTempStr);
  4793. aStr = "";
  4794. aStr = sTempStr;
  4795. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  4796. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  4797. // aFlag[0] = aArraySet[0];
  4798. // aFlag[0] = "H";
  4799. // aStr = aArraySet[1];
  4800. // trace('aStr _aFlag'+' / '+ aStr+' / '+ aFlag)
  4801. for (var iNo=0; iNo < aStr.length; iNo++) {
  4802. oneChar = aStr.charAt(iNo);
  4803. test_rtn = "";
  4804. test_he = "";
  4805. test_rtn = lpzfGetHanGul3(oneChar);
  4806. test_he = test_rtn.substring(0,1);
  4807. //----------------------
  4808. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  4809. if(!utlf_isNull(test_he))
  4810. {
  4811. iYPos = Number(iTop) + 115;
  4812. if (test_he == "E") {
  4813. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  4814. iWidth = iWidth + (Number(oneChar.length) * 17);
  4815. }else{
  4816. if(sCommKind == "01") { // 병렬출력
  4817. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  4818. iWidth = iWidth + (Number(oneChar.length) * 31);
  4819. }else if(sCommKind == "02") { // 직렬출력
  4820. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  4821. sSndMsg += CommAX.HanImageData();
  4822. iWidth = iWidth + (Number(oneChar.length) * 29);
  4823. }
  4824. }
  4825. }
  4826. // if (aFlag[iNo] == "E") {
  4827. // iYPos = Number(iTop) + 115;
  4828. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 병동병실 //
  4829. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 병동병실
  4830. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  4831. // iWidth = iWidth + (Number(aStr.length) * 17);
  4832. //
  4833. // } else {
  4834. // iYPos = Number(iTop) + 110;
  4835. //
  4836. // if(sCommKind == "01") { // 병렬출력
  4837. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  4838. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  4839. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  4840. // iWidth = iWidth + (Number(aStr.length) * 31);
  4841. // } else if(sCommKind == "02") { // 직렬출력
  4842. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  4843. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  4844. // sSndMsg += CommAX.HanImageData();
  4845. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  4846. // iWidth = iWidth + (Number(aStr.length) * 29);
  4847. // }
  4848. // }
  4849. }
  4850. // fExeSendMsg(sSndMsg);
  4851. //
  4852. // sSndMsg = "";
  4853. //-------------------------
  4854. iXPos = Number(iLeft) + 300;
  4855. iYPos = Number(iTop) + 115;
  4856. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  4857. //감염정보 표시
  4858. //if(model.getValue(strNode+"["+iRowNo+"]/isolabbrcd") != "") {
  4859. ds_barcodeinfo.addColumn("prcpdelivefact","string")
  4860. ds_plgybarcdinfo.addColumn("isolabbrcd","string");
  4861. ds_plgybarcdinfo.setColumn(iRowNo,"");
  4862. if(!utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd"))) {
  4863. iXPos = Number(iLeft) + 500;
  4864. iYPos = Number(iTop) + 110;
  4865. sSndMsg += "^CFA99,40^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd") + "^FS"; // 감염정보
  4866. }
  4867. //--------------------
  4868. iXPos = Number(iLeft);
  4869. iYPos = Number(iTop) + 150;
  4870. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "pid") + "^FS"; // 등록번호
  4871. // fExeSendMsg(sSndMsg);
  4872. // sSndMsg = "";
  4873. //-------------------------
  4874. iXPos = Number(iLeft) + 160;
  4875. iYPos = Number(iTop) + 150;
  4876. if(sCommKind == "01") { // 병렬출력
  4877. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FD"+ model.getValue(strNode+"["+iRowNo+"]/patnm") +"^FS^CI1";
  4878. //110630병리바코드 출력 한영오류 유민규 수정
  4879. iWidth = 0;
  4880. aStr = "";
  4881. aFlag = new Array();
  4882. var sPatnm = ds_plgybarcdinfo.getColumn(iRowNo, "patnm");
  4883. aStr = sPatnm;
  4884. for (var iNo=0; iNo < aStr.length; iNo++) {
  4885. oneChar = aStr.charAt(iNo);
  4886. test_rtn = "";
  4887. test_he = "";
  4888. test_rtn = lpzfGetHanGul3(oneChar);
  4889. test_he = test_rtn.substring(0,1);
  4890. //----------------------
  4891. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  4892. if(!utlf_isNull(test_he))
  4893. {
  4894. if (test_he == "E") {
  4895. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  4896. iWidth = iWidth + (Number(oneChar.length) * 12);
  4897. }else{
  4898. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  4899. iWidth = iWidth + (Number(oneChar.length) * 30);
  4900. }
  4901. }
  4902. }
  4903. //aStr = lpzfGetHanGul(sPatnm, aFlag);
  4904. // for (var iNo=0; iNo < aStr.length; iNo++) {
  4905. //
  4906. //
  4907. // if (aFlag[iNo] == "E") {
  4908. //
  4909. // sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  4910. // iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  4911. //
  4912. //
  4913. // } else {
  4914. //
  4915. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  4916. // iWidth = iWidth + (Number(aStr[iNo].length) * 30);
  4917. //
  4918. // }
  4919. //
  4920. // }
  4921. } else if(sCommKind == "02") { // 직렬출력
  4922. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "patnm"), 2, 1);
  4923. sSndMsg += CommAX.HanImageData();
  4924. }
  4925. // fExeSendMsg(sSndMsg);
  4926. // sSndMsg = "";
  4927. //-------------------------
  4928. iXPos = Number(iLeft) + 320;
  4929. iYPos = Number(iTop) + 150;
  4930. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "sexage") + "^FS"; // 성별/나이
  4931. //-------------------------
  4932. iXPos = Number(iLeft) + 450;
  4933. iYPos = Number(iTop) + 150;
  4934. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "orddeptnm");
  4935. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + sTempStr + "^FS"; // 진료과
  4936. // fExeSendMsg(sSndMsg);
  4937. // sSndMsg = "";
  4938. //=========================
  4939. iXPos = Number(iLeft);
  4940. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "spcdispnm");
  4941. sTempStr = sTempStr.replace("▨", ",");
  4942. //---------
  4943. iWidth = 0;
  4944. aStr = sTempStr;
  4945. //trace('1 '+aStr);
  4946. for (var iNo=0; iNo < aStr.length; iNo++) {
  4947. oneChar = aStr.charAt(iNo);
  4948. test_rtn = "";
  4949. test_he = "";
  4950. test_rtn = lpzfGetHanGul3(oneChar);
  4951. test_he = test_rtn.substring(0,1);
  4952. //----------------------
  4953. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  4954. if(!utlf_isNull(test_he))
  4955. {
  4956. iYPos = Number(iTop) + 185;
  4957. if (test_he == "E") {
  4958. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  4959. iWidth = iWidth + (Number(oneChar.length) * 17);
  4960. }else{
  4961. iYPos = Number(iTop) + 180;
  4962. if(sCommKind == "01") { // 병렬출력
  4963. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  4964. iWidth = iWidth + (Number(oneChar.length) * 31);
  4965. }else if(sCommKind == "02") { // 직렬출력
  4966. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  4967. sSndMsg += CommAX.HanImageData();
  4968. iWidth = iWidth + (Number(oneChar.length) * 29);
  4969. }
  4970. }
  4971. }
  4972. }
  4973. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  4974. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  4975. // aFlag = aArraySet[0];
  4976. // aStr = aArraySet[1];
  4977. //
  4978. // trace('aStr _aFlag 2'+ aStr+' / '+ aFlag)
  4979. // for (var iNo=0; iNo < aStr.length; iNo++) {
  4980. //
  4981. // //----------------------
  4982. // if (aFlag[iNo] == "E") {
  4983. // iYPos = Number(iTop) + 185;
  4984. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  4985. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  4986. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 검체표시명(영문)
  4987. // iWidth = iWidth + (Number(aStr.length) * 17);
  4988. // } else {
  4989. // iYPos = Number(iTop) + 180;
  4990. //
  4991. // if(sCommKind == "01") { // 병렬출력
  4992. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  4993. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  4994. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  4995. // iWidth = iWidth + (Number(aStr.length) * 31);
  4996. // } else if(sCommKind == "02") { // 직렬출력
  4997. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  4998. // //sSndMsg += CommAX.HanImageData();
  4999. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5000. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  5001. // sSndMsg += CommAX.HanImageData();
  5002. // iWidth = iWidth + (Number(aStr.length) * 29);
  5003. // }
  5004. // }
  5005. // }
  5006. // fExeSendMsg(sSndMsg);
  5007. // sSndMsg = "";
  5008. //==========================
  5009. iXPos = Number(iLeft);
  5010. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm");
  5011. sTempStr = sTempStr.replace("▨", ",");
  5012. //---------
  5013. iWidth = 0;
  5014. aStr = sTempStr;
  5015. //trace('2 '+aStr);
  5016. for (var iNo=0; iNo < aStr.length; iNo++) {
  5017. oneChar = aStr.charAt(iNo);
  5018. test_rtn = "";
  5019. test_he = "";
  5020. test_rtn = lpzfGetHanGul3(oneChar);
  5021. test_he = test_rtn.substring(0,1);
  5022. //----------------------
  5023. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5024. if(!utlf_isNull(test_he))
  5025. {
  5026. iYPos = Number(iTop) + 225;
  5027. if (test_he == "E") {
  5028. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  5029. iWidth = iWidth + (Number(oneChar.length) * 17);
  5030. }else{
  5031. iYPos = Number(iTop) + 220;
  5032. if(sCommKind == "01") { // 병렬출력
  5033. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5034. iWidth = iWidth + (Number(oneChar.length) * 31);
  5035. }else if(sCommKind == "02") { // 직렬출력
  5036. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5037. sSndMsg += CommAX.HanImageData();
  5038. iWidth = iWidth + (Number(oneChar.length) * 29);
  5039. }
  5040. }
  5041. }
  5042. }
  5043. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5044. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5045. // aFlag = aArraySet[0];
  5046. // aStr = aArraySet[1];
  5047. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5048. //
  5049. // //----------------------
  5050. // if (aFlag[iNo] == "E") {
  5051. // iYPos = Number(iTop) + 225;
  5052. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  5053. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5054. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 검사명(영문)
  5055. // iWidth = iWidth + (Number(aStr.length) * 17);
  5056. // } else {
  5057. // iYPos = Number(iTop) + 220;
  5058. //
  5059. // if(sCommKind == "01") { // 병렬출력
  5060. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5061. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5062. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  5063. // iWidth = iWidth + (Number(aStr.length) * 31);
  5064. // } else if(sCommKind == "02") { // 직렬출력
  5065. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5066. // //sSndMsg += CommAX.HanImageData();
  5067. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5068. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  5069. // sSndMsg += CommAX.HanImageData();
  5070. // iWidth = iWidth + (Number(aStr.length) * 29);
  5071. // }
  5072. // }
  5073. // }
  5074. // fExeSendMsg(sSndMsg);
  5075. // sSndMsg = "";
  5076. //-------------------------
  5077. iXPos = Number(iLeft);
  5078. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm2"); //검사명(추가처방)
  5079. sTempStr = sTempStr.replace("▨", ",");
  5080. iWidth = 0;
  5081. aStr = sTempStr;
  5082. //trace('3 '+aStr);
  5083. for (var iNo=0; iNo < aStr.length; iNo++) {
  5084. oneChar = aStr.charAt(iNo);
  5085. test_rtn = "";
  5086. test_he = "";
  5087. test_rtn = lpzfGetHanGul3(oneChar);
  5088. test_he = test_rtn.substring(0,1);
  5089. //----------------------
  5090. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5091. if(!utlf_isNull(test_he))
  5092. {
  5093. iYPos = Number(iTop) + 260;
  5094. if (test_he == "E") {
  5095. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  5096. iWidth = iWidth + (Number(oneChar.length) * 17);
  5097. }else{
  5098. iYPos = Number(iTop) + 255;
  5099. if(sCommKind == "01") { // 병렬출력
  5100. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5101. iWidth = iWidth + (Number(oneChar.length) * 31);
  5102. }else if(sCommKind == "02") { // 직렬출력
  5103. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5104. sSndMsg += CommAX.HanImageData();
  5105. iWidth = iWidth + (Number(oneChar.length) * 29);
  5106. }
  5107. }
  5108. }
  5109. }
  5110. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5111. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5112. // aFlag = aArraySet[0];
  5113. // aStr = aArraySet[1];
  5114. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5115. //
  5116. // //----------------------
  5117. // if (aFlag[iNo] == "E") {
  5118. // iYPos = Number(iTop) + 260;
  5119. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  5120. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5121. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 검사명(영문)
  5122. // iWidth = iWidth + (Number(aStr.length) * 17);
  5123. // } else {
  5124. // iYPos = Number(iTop) + 255;
  5125. //
  5126. // if(sCommKind == "01") { // 병렬출력
  5127. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5128. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5129. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  5130. // iWidth = iWidth + (Number(aStr.length) * 31);
  5131. // } else if(sCommKind == "02") { // 직렬출력
  5132. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5133. // //sSndMsg += CommAX.HanImageData();
  5134. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5135. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  5136. // sSndMsg += CommAX.HanImageData();
  5137. // iWidth = iWidth + (Number(aStr.length) * 29);
  5138. // }
  5139. // }
  5140. // }
  5141. // sSndMsg += sSndMsg + "^PQ1"; // 출력매수
  5142. // sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  5143. // fExeSendMsg(sSndMsg);
  5144. // fExeSendMsg("^XZ");
  5145. sSndMsg += lzzfBP_EndFormat();
  5146. CommAX.SendMsg(sSndMsg);
  5147. }
  5148. }
  5149. //==================================================
  5150. // portopen이 true이고 통신유형이 com일때 port close
  5151. if( portOpenTF == "TRUE" && sCommKind == "02") {
  5152. CommAX.PortOpen("false");
  5153. }
  5154. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  5155. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  5156. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5157. + " \n 2.케이블 확인"
  5158. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5159. return;
  5160. }
  5161. }
  5162. } catch(ee) {
  5163. sysf_messageBox("병리바코드출력에", "E009");
  5164. return;
  5165. }
  5166. }
  5167. //----------------------------------------
  5168. // 병리과 채혈바코드 출력( 해상도 300 DPI)
  5169. // 2010-10-19 : YDC 추가
  5170. function lf_ExePlgyBarCdPrnt300_backup(pLCount) {
  5171. PCount = ds_plgybarcdinfo.rowcount; //병리 바코드 갯수
  5172. try {
  5173. var sSndMsg = "";
  5174. var sPrcpDD = "";
  5175. var sTemp = "";
  5176. var sTempStr = "";
  5177. //var strNode = "/root/main/TestInfo/plgybarcdinfo";
  5178. var iLeft = ds_data_blank.getColumn(0,"left");
  5179. var iTop = ds_data_blank.getColumn(0,"top");
  5180. var iXPos = 0;
  5181. var iYPos = 0;
  5182. var iWidth = 0;
  5183. var aFlag = new Array();
  5184. var aStr = "";
  5185. var LCount = 0;
  5186. var portOpenTF = "";
  5187. var test_rtn = "";
  5188. var test_he = "";
  5189. //-------------------------------------
  5190. if (utlf_isNull(pLCount) || pLCount == 0) {
  5191. LCount = 0;
  5192. }else if (pLCount > 0) {
  5193. LCount = pLCount;
  5194. }
  5195. //-----------------------------------------
  5196. if (utlf_isNull(iLeft) || iLeft == "-") iLeft = 0;
  5197. if (utlf_isNull(iTop) || iTop == "-") iTop = 0;
  5198. //------------------------------
  5199. // 2008-10-12 : 병리과 여백 조정
  5200. iLeft = Number(iLeft) + Number(20);
  5201. iTop = Number(iTop) + Number(10);
  5202. //------------------------------------------------------------------
  5203. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  5204. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  5205. //----------------------
  5206. if (sPrntKind != "0") {
  5207. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  5208. //----------------------
  5209. if(sCommKind == "01") {
  5210. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  5211. } else if(sCommKind == "02") {
  5212. var sComm = ds_data_comm02.getColumn(0,"comm");
  5213. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  5214. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  5215. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  5216. var sParity = ds_data_comm02.getColumn(0,"parity");
  5217. //----------------------
  5218. CommAX.CommPort = sComm;
  5219. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  5220. //진검 바코드 출력 갯수가 존재하면 port 오픈 하지 않는다.
  5221. //진검 바코드 출력후 병리 바코드 갯수 체크하여 포트 클로즈 하지 않았기 때문에..
  5222. if(LCount > 0){
  5223. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  5224. portOpenTF = "TRUE";
  5225. }else if(LCount == 0){
  5226. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  5227. portOpenTF = CommAX.PortOpen("true");
  5228. }
  5229. } else if(sCommKind == "03") {
  5230. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  5231. }
  5232. if( (portOpenTF == "TRUE" && sCommKind == "02")
  5233. || (sCommKind == "01")
  5234. || (sCommKind == "07") // 정은임시 B472 테스트용
  5235. || (sCommKind == "03")){
  5236. //----------------
  5237. // 바코드내용 출력
  5238. for (var iRowNo=0; iRowNo <ds_plgybarcdinfo.rowcount; iRowNo++) {
  5239. //--------------------------------------------------
  5240. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  5241. //sPrcpDD = model.getValue(strNode + "[" + iRowNo + "]/prcpdd");
  5242. sPrcpDD = String(ds_plgybarcdinfo.getColumn(iRowNo, "prcphopedt"));
  5243. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  5244. //------------------------------------------
  5245. //if( sPrntKind == "9" ) {
  5246. if( sPrntKind == "9" || sPrntKind == "5") { // 외래채혈실 바코드 추가(5)
  5247. sSndMsg = "";
  5248. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  5249. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  5250. //-------------------------
  5251. iXPos = Number(iLeft) + 20;
  5252. iYPos = Number(iTop) + 5;
  5253. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "spcbarcdno")+"^FS"; // 바코드
  5254. //--------------------
  5255. iXPos = Number(iLeft);
  5256. iYPos = Number(iTop) + 115;
  5257. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  5258. fExeSendMsg(sSndMsg);
  5259. sSndMsg = "";
  5260. //---------
  5261. iWidth = 0;
  5262. iXPos = Number(iLeft) + 180;
  5263. //sTempStr = model.getValue(strNode+"["+iRowNo+"]/wardroom");
  5264. if (ds_plgybarcdinfo.getColumn(iRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  5265. if ( utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts")) ) {
  5266. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  5267. } else {
  5268. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts"); // 응급실 환자 위치
  5269. }
  5270. } else {
  5271. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  5272. }
  5273. //alert(sTempStr);
  5274. aStr = "";
  5275. aStr = sTempStr;
  5276. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5277. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5278. // aFlag[0] = aArraySet[0];
  5279. // aFlag[0] = "H";
  5280. // aStr = aArraySet[1];
  5281. // trace('aStr _aFlag'+' / '+ aStr+' / '+ aFlag)
  5282. for (var iNo=0; iNo < aStr.length; iNo++) {
  5283. oneChar = aStr.charAt(iNo);
  5284. test_rtn = "";
  5285. test_he = "";
  5286. test_rtn = lpzfGetHanGul3(oneChar);
  5287. test_he = test_rtn.substring(0,1);
  5288. //----------------------
  5289. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5290. if(!utlf_isNull(test_he))
  5291. {
  5292. iYPos = Number(iTop) + 115;
  5293. if (test_he == "E") {
  5294. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  5295. iWidth = iWidth + (Number(oneChar.length) * 17);
  5296. }else{
  5297. if(sCommKind == "01") { // 병렬출력
  5298. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5299. iWidth = iWidth + (Number(oneChar.length) * 31);
  5300. }else if(sCommKind == "02") { // 직렬출력
  5301. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5302. sSndMsg += CommAX.HanImageData();
  5303. iWidth = iWidth + (Number(oneChar.length) * 29);
  5304. }
  5305. }
  5306. }
  5307. // if (aFlag[iNo] == "E") {
  5308. // iYPos = Number(iTop) + 115;
  5309. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 병동병실 //
  5310. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 병동병실
  5311. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5312. // iWidth = iWidth + (Number(aStr.length) * 17);
  5313. //
  5314. // } else {
  5315. // iYPos = Number(iTop) + 110;
  5316. //
  5317. // if(sCommKind == "01") { // 병렬출력
  5318. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5319. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  5320. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5321. // iWidth = iWidth + (Number(aStr.length) * 31);
  5322. // } else if(sCommKind == "02") { // 직렬출력
  5323. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5324. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  5325. // sSndMsg += CommAX.HanImageData();
  5326. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5327. // iWidth = iWidth + (Number(aStr.length) * 29);
  5328. // }
  5329. // }
  5330. }
  5331. fExeSendMsg(sSndMsg);
  5332. sSndMsg = "";
  5333. //-------------------------
  5334. iXPos = Number(iLeft) + 300;
  5335. iYPos = Number(iTop) + 115;
  5336. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  5337. //감염정보 표시
  5338. //if(model.getValue(strNode+"["+iRowNo+"]/isolabbrcd") != "") {
  5339. ds_barcodeinfo.addColumn("prcpdelivefact","string")
  5340. ds_plgybarcdinfo.addColumn("isolabbrcd","string");
  5341. ds_plgybarcdinfo.setColumn(iRowNo,"");
  5342. if(!utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd"))) {
  5343. iXPos = Number(iLeft) + 500;
  5344. iYPos = Number(iTop) + 110;
  5345. sSndMsg += "^CFA99,40^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd") + "^FS"; // 감염정보
  5346. }
  5347. //--------------------
  5348. iXPos = Number(iLeft);
  5349. iYPos = Number(iTop) + 150;
  5350. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "pid") + "^FS"; // 등록번호
  5351. fExeSendMsg(sSndMsg);
  5352. sSndMsg = "";
  5353. //-------------------------
  5354. iXPos = Number(iLeft) + 160;
  5355. iYPos = Number(iTop) + 150;
  5356. if(sCommKind == "01") { // 병렬출력
  5357. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FD"+ model.getValue(strNode+"["+iRowNo+"]/patnm") +"^FS^CI1";
  5358. //110630병리바코드 출력 한영오류 유민규 수정
  5359. iWidth = 0;
  5360. aStr = "";
  5361. aFlag = new Array();
  5362. var sPatnm = ds_plgybarcdinfo.getColumn(iRowNo, "patnm");
  5363. aStr = sPatnm;
  5364. for (var iNo=0; iNo < aStr.length; iNo++) {
  5365. oneChar = aStr.charAt(iNo);
  5366. test_rtn = "";
  5367. test_he = "";
  5368. test_rtn = lpzfGetHanGul3(oneChar);
  5369. test_he = test_rtn.substring(0,1);
  5370. //----------------------
  5371. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5372. if(!utlf_isNull(test_he))
  5373. {
  5374. if (test_he == "E") {
  5375. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  5376. iWidth = iWidth + (Number(oneChar.length) * 12);
  5377. }else{
  5378. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5379. iWidth = iWidth + (Number(oneChar.length) * 30);
  5380. }
  5381. }
  5382. }
  5383. //aStr = lpzfGetHanGul(sPatnm, aFlag);
  5384. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5385. //
  5386. //
  5387. // if (aFlag[iNo] == "E") {
  5388. //
  5389. // sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  5390. // iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  5391. //
  5392. //
  5393. // } else {
  5394. //
  5395. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  5396. // iWidth = iWidth + (Number(aStr[iNo].length) * 30);
  5397. //
  5398. // }
  5399. //
  5400. // }
  5401. } else if(sCommKind == "02") { // 직렬출력
  5402. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "patnm"), 2, 1);
  5403. sSndMsg += CommAX.HanImageData();
  5404. }
  5405. fExeSendMsg(sSndMsg);
  5406. sSndMsg = "";
  5407. //-------------------------
  5408. iXPos = Number(iLeft) + 320;
  5409. iYPos = Number(iTop) + 150;
  5410. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "sexage") + "^FS"; // 성별/나이
  5411. //-------------------------
  5412. iXPos = Number(iLeft) + 450;
  5413. iYPos = Number(iTop) + 150;
  5414. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "orddeptnm");
  5415. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + sTempStr + "^FS"; // 진료과
  5416. fExeSendMsg(sSndMsg);
  5417. sSndMsg = "";
  5418. //=========================
  5419. iXPos = Number(iLeft);
  5420. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "spcdispnm");
  5421. sTempStr = sTempStr.replace("▨", ",");
  5422. //---------
  5423. iWidth = 0;
  5424. aStr = sTempStr;
  5425. //trace('1 '+aStr);
  5426. for (var iNo=0; iNo < aStr.length; iNo++) {
  5427. oneChar = aStr.charAt(iNo);
  5428. test_rtn = "";
  5429. test_he = "";
  5430. test_rtn = lpzfGetHanGul3(oneChar);
  5431. test_he = test_rtn.substring(0,1);
  5432. //----------------------
  5433. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5434. if(!utlf_isNull(test_he))
  5435. {
  5436. iYPos = Number(iTop) + 185;
  5437. if (test_he == "E") {
  5438. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  5439. iWidth = iWidth + (Number(oneChar.length) * 17);
  5440. }else{
  5441. iYPos = Number(iTop) + 180;
  5442. if(sCommKind == "01") { // 병렬출력
  5443. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5444. iWidth = iWidth + (Number(oneChar.length) * 31);
  5445. }else if(sCommKind == "02") { // 직렬출력
  5446. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5447. sSndMsg += CommAX.HanImageData();
  5448. iWidth = iWidth + (Number(oneChar.length) * 29);
  5449. }
  5450. }
  5451. }
  5452. }
  5453. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5454. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5455. // aFlag = aArraySet[0];
  5456. // aStr = aArraySet[1];
  5457. //
  5458. // trace('aStr _aFlag 2'+ aStr+' / '+ aFlag)
  5459. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5460. //
  5461. // //----------------------
  5462. // if (aFlag[iNo] == "E") {
  5463. // iYPos = Number(iTop) + 185;
  5464. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  5465. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5466. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 검체표시명(영문)
  5467. // iWidth = iWidth + (Number(aStr.length) * 17);
  5468. // } else {
  5469. // iYPos = Number(iTop) + 180;
  5470. //
  5471. // if(sCommKind == "01") { // 병렬출력
  5472. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5473. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5474. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  5475. // iWidth = iWidth + (Number(aStr.length) * 31);
  5476. // } else if(sCommKind == "02") { // 직렬출력
  5477. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5478. // //sSndMsg += CommAX.HanImageData();
  5479. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5480. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  5481. // sSndMsg += CommAX.HanImageData();
  5482. // iWidth = iWidth + (Number(aStr.length) * 29);
  5483. // }
  5484. // }
  5485. // }
  5486. fExeSendMsg(sSndMsg);
  5487. sSndMsg = "";
  5488. //==========================
  5489. iXPos = Number(iLeft);
  5490. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm");
  5491. sTempStr = sTempStr.replace("▨", ",");
  5492. //---------
  5493. iWidth = 0;
  5494. aStr = sTempStr;
  5495. //trace('2 '+aStr);
  5496. for (var iNo=0; iNo < aStr.length; iNo++) {
  5497. oneChar = aStr.charAt(iNo);
  5498. test_rtn = "";
  5499. test_he = "";
  5500. test_rtn = lpzfGetHanGul3(oneChar);
  5501. test_he = test_rtn.substring(0,1);
  5502. //----------------------
  5503. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5504. if(!utlf_isNull(test_he))
  5505. {
  5506. iYPos = Number(iTop) + 225;
  5507. if (test_he == "E") {
  5508. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  5509. iWidth = iWidth + (Number(oneChar.length) * 17);
  5510. }else{
  5511. iYPos = Number(iTop) + 220;
  5512. if(sCommKind == "01") { // 병렬출력
  5513. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5514. iWidth = iWidth + (Number(oneChar.length) * 31);
  5515. }else if(sCommKind == "02") { // 직렬출력
  5516. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5517. sSndMsg += CommAX.HanImageData();
  5518. iWidth = iWidth + (Number(oneChar.length) * 29);
  5519. }
  5520. }
  5521. }
  5522. }
  5523. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5524. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5525. // aFlag = aArraySet[0];
  5526. // aStr = aArraySet[1];
  5527. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5528. //
  5529. // //----------------------
  5530. // if (aFlag[iNo] == "E") {
  5531. // iYPos = Number(iTop) + 225;
  5532. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  5533. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5534. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 검사명(영문)
  5535. // iWidth = iWidth + (Number(aStr.length) * 17);
  5536. // } else {
  5537. // iYPos = Number(iTop) + 220;
  5538. //
  5539. // if(sCommKind == "01") { // 병렬출력
  5540. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5541. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5542. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  5543. // iWidth = iWidth + (Number(aStr.length) * 31);
  5544. // } else if(sCommKind == "02") { // 직렬출력
  5545. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5546. // //sSndMsg += CommAX.HanImageData();
  5547. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5548. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  5549. // sSndMsg += CommAX.HanImageData();
  5550. // iWidth = iWidth + (Number(aStr.length) * 29);
  5551. // }
  5552. // }
  5553. // }
  5554. fExeSendMsg(sSndMsg);
  5555. sSndMsg = "";
  5556. //-------------------------
  5557. iXPos = Number(iLeft);
  5558. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm2"); //검사명(추가처방)
  5559. sTempStr = sTempStr.replace("▨", ",");
  5560. iWidth = 0;
  5561. aStr = sTempStr;
  5562. //trace('3 '+aStr);
  5563. for (var iNo=0; iNo < aStr.length; iNo++) {
  5564. oneChar = aStr.charAt(iNo);
  5565. test_rtn = "";
  5566. test_he = "";
  5567. test_rtn = lpzfGetHanGul3(oneChar);
  5568. test_he = test_rtn.substring(0,1);
  5569. //----------------------
  5570. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5571. if(!utlf_isNull(test_he))
  5572. {
  5573. iYPos = Number(iTop) + 260;
  5574. if (test_he == "E") {
  5575. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  5576. iWidth = iWidth + (Number(oneChar.length) * 17);
  5577. }else{
  5578. iYPos = Number(iTop) + 255;
  5579. if(sCommKind == "01") { // 병렬출력
  5580. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5581. iWidth = iWidth + (Number(oneChar.length) * 31);
  5582. }else if(sCommKind == "02") { // 직렬출력
  5583. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5584. sSndMsg += CommAX.HanImageData();
  5585. iWidth = iWidth + (Number(oneChar.length) * 29);
  5586. }
  5587. }
  5588. }
  5589. }
  5590. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5591. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5592. // aFlag = aArraySet[0];
  5593. // aStr = aArraySet[1];
  5594. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5595. //
  5596. // //----------------------
  5597. // if (aFlag[iNo] == "E") {
  5598. // iYPos = Number(iTop) + 260;
  5599. // //sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  5600. // //iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5601. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr + "^FS"; // 검사명(영문)
  5602. // iWidth = iWidth + (Number(aStr.length) * 17);
  5603. // } else {
  5604. // iYPos = Number(iTop) + 255;
  5605. //
  5606. // if(sCommKind == "01") { // 병렬출력
  5607. // //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5608. // //iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5609. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr.getTrim() +"^FS^CI1";
  5610. // iWidth = iWidth + (Number(aStr.length) * 31);
  5611. // } else if(sCommKind == "02") { // 직렬출력
  5612. // //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5613. // //sSndMsg += CommAX.HanImageData();
  5614. // //iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5615. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr, 1, 1);
  5616. // sSndMsg += CommAX.HanImageData();
  5617. // iWidth = iWidth + (Number(aStr.length) * 29);
  5618. // }
  5619. // }
  5620. // }
  5621. sSndMsg += sSndMsg + "^PQ1"; // 출력매수
  5622. sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  5623. fExeSendMsg(sSndMsg);
  5624. fExeSendMsg("^XZ");
  5625. }
  5626. }
  5627. //==================================================
  5628. // portopen이 true이고 통신유형이 com일때 port close
  5629. if( portOpenTF == "TRUE" && sCommKind == "02") {
  5630. CommAX.PortOpen("false");
  5631. }
  5632. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  5633. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  5634. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5635. + " \n 2.케이블 확인"
  5636. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5637. return;
  5638. }
  5639. }
  5640. } catch(ee) {
  5641. sysf_messageBox("병리바코드출력에", "E009");
  5642. return;
  5643. }
  5644. }
  5645. //-------------------------------------------
  5646. // 병리과 바코드 재출력 Zebra 용 다른건 js로
  5647. // 2020-10-20 : YDC
  5648. // Zebra 300 DPI용 함수
  5649. function fExePlgyBarCdRePrnt300(pRowNo, pSNo, pENo, pCount) {
  5650. //trace("pSNo ="+pSNo+' / '+pENo);
  5651. // pSNo = pSNo.replace(",","");
  5652. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  5653. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  5654. var sBarCdNoH = "";
  5655. var sBarCdNoD = "";
  5656. var sPrntNo = "";
  5657. var sSubPrntNo = "";
  5658. var sRePrntCnt = "";
  5659. var iStartNo = 1;
  5660. var iEndNo = 99;
  5661. var iFindColNo = -1;
  5662. var iSpcNo = 0;
  5663. var sSpcSeqNo = "";
  5664. var sSpcSeqNm = "";
  5665. var aSpcSeqNo = "";
  5666. var aSpcSeqNm = "";
  5667. var sSndMsg = "";
  5668. var sPrcpDD = "";
  5669. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  5670. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  5671. var iLeft = ds_data_blank.getColumn(0,"left");
  5672. var iTop = ds_data_blank.getColumn(0,"top");
  5673. var iXPos = 0;
  5674. var iYPos = 0;
  5675. var iWidth = 0;
  5676. var aFlag = new Array();
  5677. var aStr = "";
  5678. var aArraySet = new Array();
  5679. var portOpenTF = "";
  5680. var test_rtn = "";
  5681. var test_he = "";
  5682. //---------------------------------
  5683. iLeft = Number(iLeft) + Number(20);
  5684. iTop = Number(iTop) + Number(10);
  5685. // try {
  5686. //--------------------------------------------------------
  5687. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  5688. //----------------------
  5689. if (sCommKind == "01") {
  5690. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  5691. } else if(sCommKind == "02") {
  5692. var sComm = ds_data_comm02.getColumn(0,"comm");
  5693. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  5694. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  5695. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  5696. var sParity = ds_data_comm02.getColumn(0,"parity");
  5697. //----------------------
  5698. CommAX.CommPort = sComm;
  5699. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  5700. //-----------------------------------------------------
  5701. // 출력할 진검 바코드 갯수가 0보다 크면 port 오픈 안함.
  5702. if (pCount > 0) {
  5703. portOpenTF = "TRUE";
  5704. } else if (pCount == 0) {
  5705. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  5706. portOpenTF = CommAX.PortOpen("true");
  5707. }
  5708. } else if(sCommKind == "03") {
  5709. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  5710. }
  5711. //---------------------------------
  5712. // 바코드번호 Header(일련번호 제외)
  5713. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  5714. //--------------------------------------------------------------------------------------------------
  5715. if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") ) {
  5716. //-----------------------------------------------------
  5717. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  5718. //--------------------
  5719. //if(sPrntKind == "9") {
  5720. if( sPrntKind == "9" || sPrntKind == "5" ) { // 외래채혈실 바코드 추가(5)
  5721. //--------------------------------------------------
  5722. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  5723. //sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpdd");
  5724. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcphopedd");
  5725. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  5726. sSndMsg = "";
  5727. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  5728. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  5729. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  5730. //-------------------------
  5731. iXPos = Number(iLeft) + 20;
  5732. iYPos = Number(iTop) + 5;
  5733. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0") + "^FS"; // 바코드
  5734. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  5735. // sSndMsg = "";
  5736. //--------------------
  5737. iXPos = Number(iLeft);
  5738. iYPos = Number(iTop) + 115;
  5739. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  5740. //--------------------------
  5741. iXPos = Number(iLeft) + 180;
  5742. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  5743. if ( utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"))) {
  5744. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  5745. } else {
  5746. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"); // 응급실 환자 위치
  5747. }
  5748. } else {
  5749. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  5750. }
  5751. //trace("wardroom "+sTempStr);
  5752. //sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom");
  5753. iWidth = 0;
  5754. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5755. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5756. // aFlag = aArraySet[0];
  5757. // aStr = aArraySet[1];
  5758. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5759. //
  5760. // //----------------------
  5761. // if (aFlag[iNo] == "E") {
  5762. // iYPos = Number(iTop) + 115;
  5763. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 병동병실
  5764. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5765. // } else {
  5766. // iYPos = Number(iTop) + 110;
  5767. //
  5768. // if(sCommKind == "01") { // 병렬출력
  5769. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5770. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5771. //
  5772. // } else if(sCommKind == "02") { // 직렬출력
  5773. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5774. // sSndMsg += CommAX.HanImageData();
  5775. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5776. // }
  5777. // }
  5778. // }
  5779. aStr = "";
  5780. aStr = sTempStr;
  5781. //trace("aStr "+aStr);
  5782. for (var iNo=0; iNo < aStr.length; iNo++) {
  5783. oneChar = aStr.charAt(iNo);
  5784. test_rtn = "";
  5785. test_he = "";
  5786. test_rtn = lpzfGetHanGul3(oneChar);
  5787. test_he = test_rtn.substring(0,1);
  5788. //----------------------
  5789. //trace('iNo'+' / '+ iNo+' / '+test_he+' / '+aStr)
  5790. if(!utlf_isNull(test_he))
  5791. {
  5792. iYPos = Number(iTop) + 115;
  5793. if (test_he == "E") {
  5794. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  5795. iWidth = iWidth + (Number(oneChar.length) * 17);
  5796. }else{
  5797. iYPos = Number(iTop) + 110;
  5798. if(sCommKind == "01") { // 병렬출력
  5799. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5800. iWidth = iWidth + (Number(oneChar.length) * 31);
  5801. }else if(sCommKind == "02") { // 직렬출력
  5802. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5803. sSndMsg += CommAX.HanImageData();
  5804. iWidth = iWidth + (Number(oneChar.length) * 29);
  5805. }
  5806. }
  5807. }
  5808. }
  5809. //trace("병동병실 "+sSndMsg);
  5810. // fExeSendMsg(sSndMsg);
  5811. // sSndMsg = "";
  5812. //-------------------------
  5813. iXPos = Number(iLeft) + 300;
  5814. iYPos = Number(iTop) + 115;
  5815. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  5816. iXPos = Number(iLeft) + 500;
  5817. iYPos = Number(iTop) + 115;
  5818. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd"))){
  5819. sSndMsg += "^CFA99,44^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd") + "^FS"; // 감염정보
  5820. }
  5821. //trace("감영정보 "+sSndMsg);
  5822. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  5823. // sSndMsg = "";
  5824. //-------------------------
  5825. iXPos = Number(iLeft);
  5826. iYPos = Number(iTop) + 150;
  5827. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "pid") + "^FS"; // 등록번호
  5828. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  5829. // sSndMsg = "";
  5830. //-------------------------
  5831. iXPos = Number(iLeft) + 160;
  5832. iYPos = Number(iTop) + 150;
  5833. if(sCommKind == "01") { // 병렬출력
  5834. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FD"+ ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm") +"^FS^CI1";
  5835. //110630 유민규 병리바코드재출력 한영 오류추가
  5836. iWidth = 0;
  5837. aStr = "";
  5838. aFlag = new Array();
  5839. var sPatnm = ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm");
  5840. //aStr = lpzfGetHanGul(sPatnm, aFlag);
  5841. aStr = sPatnm;
  5842. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5843. //
  5844. // //----------------------
  5845. //
  5846. // if (aFlag[iNo] == "E") {
  5847. //
  5848. // sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  5849. // iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  5850. //
  5851. // } else {
  5852. //
  5853. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  5854. // iWidth = iWidth + (Number(aStr[iNo].length) * 30);
  5855. // }
  5856. //
  5857. // }
  5858. for (var iNo=0; iNo < aStr.length; iNo++) {
  5859. oneChar = aStr.charAt(iNo);
  5860. test_rtn = "";
  5861. test_he = "";
  5862. test_rtn = lpzfGetHanGul3(oneChar);
  5863. test_he = test_rtn.substring(0,1);
  5864. //----------------------
  5865. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5866. if(!utlf_isNull(test_he))
  5867. {
  5868. if (test_he == "E") {
  5869. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  5870. iWidth = iWidth + (Number(oneChar.length) * 12);
  5871. }else{
  5872. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5873. iWidth = iWidth + (Number(oneChar.length) * 30);
  5874. }
  5875. }
  5876. }
  5877. } else if(sCommKind == "02") { // 직렬출력
  5878. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm"), 1, 1);
  5879. sSndMsg += CommAX.HanImageData();
  5880. }
  5881. //-------------------------
  5882. iXPos = Number(iLeft) + 320;
  5883. iYPos = Number(iTop) + 150;
  5884. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "sex");
  5885. sSndMsg += "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "dage") + "^FS"; // 성별/나이
  5886. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  5887. // sSndMsg = "";
  5888. //-------------------------
  5889. iXPos = Number(iLeft) + 450;
  5890. iYPos = Number(iTop) + 150;
  5891. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  5892. //if(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") != "") {
  5893. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))){
  5894. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") + ")" + "^FS"; // 진료과
  5895. } else {
  5896. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "^FS"; // 진료과
  5897. }
  5898. //trace('진료과 '+sSndMsg);
  5899. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  5900. // sSndMsg = "";
  5901. //--------------------
  5902. iXPos = Number(iLeft);
  5903. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  5904. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  5905. //------------------------------------
  5906. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  5907. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  5908. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  5909. sTempStr += aSpcSeqNm[iPrntCnt-1];
  5910. //---------
  5911. iWidth = 0;
  5912. aStr = sTempStr;
  5913. //trace('검체명1 '+aStr);
  5914. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5915. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5916. // aFlag = aArraySet[0];
  5917. // aStr = aArraySet[1];
  5918. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5919. //
  5920. // //----------------------
  5921. // if (aFlag[iNo] == "E") {
  5922. // iYPos = Number(iTop) + 185;
  5923. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  5924. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5925. // } else {
  5926. // iYPos = Number(iTop) + 180;
  5927. //
  5928. // //----------------------
  5929. // if(sCommKind == "01") { // 병렬출력
  5930. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5931. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5932. // } else if(sCommKind == "02") { // 직렬출력
  5933. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5934. // sSndMsg += CommAX.HanImageData();
  5935. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  5936. // }
  5937. // }
  5938. // }
  5939. for (var iNo=0; iNo < aStr.length; iNo++) {
  5940. oneChar = aStr.charAt(iNo);
  5941. test_rtn = "";
  5942. test_he = "";
  5943. test_rtn = lpzfGetHanGul3(oneChar);
  5944. test_he = test_rtn.substring(0,1);
  5945. //----------------------
  5946. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  5947. if(!utlf_isNull(test_he))
  5948. {
  5949. iYPos = Number(iTop) + 185;
  5950. if (test_he == "E") {
  5951. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  5952. iWidth = iWidth + (Number(oneChar.length) * 17);
  5953. }else{
  5954. iYPos = Number(iTop) + 180;
  5955. if(sCommKind == "01") { // 병렬출력
  5956. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  5957. iWidth = iWidth + (Number(oneChar.length) * 31);
  5958. }else if(sCommKind == "02") { // 직렬출력
  5959. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  5960. sSndMsg += CommAX.HanImageData();
  5961. iWidth = iWidth + (Number(oneChar.length) * 29);
  5962. }
  5963. }
  5964. }
  5965. }
  5966. //trace('검체명 '+sSndMsg);
  5967. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  5968. // sSndMsg = "";
  5969. //--------------------
  5970. iXPos = Number(iLeft);
  5971. //sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  5972. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  5973. // trace('검사명 1 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"));
  5974. // trace('검사명 11 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"));
  5975. // trace('검사명 111 '+sTempStr);
  5976. //---------
  5977. iWidth = 0;
  5978. aStr = sTempStr;
  5979. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  5980. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  5981. // aFlag = aArraySet[0];
  5982. // aStr = aArraySet[1];
  5983. // for (var iNo=0; iNo < aStr.length; iNo++) {
  5984. //
  5985. // //----------------------
  5986. // if (aFlag[iNo] == "E") {
  5987. // iYPos = Number(iTop) + 225;
  5988. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  5989. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  5990. // } else {
  5991. // iYPos = Number(iTop) + 220;
  5992. //
  5993. // //----------------------
  5994. // if(sCommKind == "01") { // 병렬출력
  5995. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  5996. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  5997. // } else if(sCommKind == "02") { // 직렬출력
  5998. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5999. // sSndMsg += CommAX.HanImageData();
  6000. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  6001. // }
  6002. // }
  6003. // }
  6004. for (var iNo=0; iNo < aStr.length; iNo++) {
  6005. oneChar = aStr.charAt(iNo);
  6006. test_rtn = "";
  6007. test_he = "";
  6008. test_rtn = lpzfGetHanGul3(oneChar);
  6009. test_he = test_rtn.substring(0,1);
  6010. //----------------------
  6011. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6012. if(!utlf_isNull(test_he))
  6013. {
  6014. iYPos = Number(iTop) + 225;
  6015. if (test_he == "E") {
  6016. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6017. iWidth = iWidth + (Number(oneChar.length) * 17);
  6018. }else{
  6019. iYPos = Number(iTop) + 220;
  6020. if(sCommKind == "01") { // 병렬출력
  6021. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6022. iWidth = iWidth + (Number(oneChar.length) * 31);
  6023. }else if(sCommKind == "02") { // 직렬출력
  6024. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6025. sSndMsg += CommAX.HanImageData();
  6026. iWidth = iWidth + (Number(oneChar.length) * 29);
  6027. }
  6028. }
  6029. }
  6030. }
  6031. // trace('검사명1 '+sSndMsg);
  6032. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6033. // sSndMsg = "";
  6034. //------ 추가처방 표시 -------------------
  6035. iXPos = Number(iLeft);
  6036. //sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  6037. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  6038. iWidth = 0;
  6039. aStr = sTempStr;
  6040. //trace('검사명 2 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"));
  6041. //trace('검사명 21 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"));
  6042. //trace('검사명 211 '+sTempStr);
  6043. //---------
  6044. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  6045. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  6046. // aFlag = aArraySet[0];
  6047. // aStr = aArraySet[1];
  6048. // for (var iNo=0; iNo < aStr.length; iNo++) {
  6049. //
  6050. // //----------------------
  6051. // if (aFlag[iNo] == "E") {
  6052. // iYPos = Number(iTop) + 260;
  6053. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  6054. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  6055. // } else {
  6056. // iYPos = Number(iTop) + 255;
  6057. //
  6058. // //----------------------
  6059. // if(sCommKind == "01") { // 병렬출력
  6060. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  6061. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  6062. // } else if(sCommKind == "02") { // 직렬출력
  6063. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  6064. // sSndMsg += CommAX.HanImageData();
  6065. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  6066. // }
  6067. // }
  6068. // }
  6069. for (var iNo=0; iNo < aStr.length; iNo++) {
  6070. oneChar = aStr.charAt(iNo);
  6071. test_rtn = "";
  6072. test_he = "";
  6073. test_rtn = lpzfGetHanGul3(oneChar);
  6074. test_he = test_rtn.substring(0,1);
  6075. //----------------------
  6076. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6077. if(!utlf_isNull(test_he))
  6078. {
  6079. iYPos = Number(iTop) + 260;
  6080. if (test_he == "E") {
  6081. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6082. iWidth = iWidth + (Number(oneChar.length) * 17);
  6083. }else{
  6084. iYPos = Number(iTop) + 255;
  6085. if(sCommKind == "01") { // 병렬출력
  6086. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6087. iWidth = iWidth + (Number(oneChar.length) * 31);
  6088. }else if(sCommKind == "02") { // 직렬출력
  6089. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6090. sSndMsg += CommAX.HanImageData();
  6091. iWidth = iWidth + (Number(oneChar.length) * 29);
  6092. }
  6093. }
  6094. }
  6095. }
  6096. //trace('검사명2 ' +sSndMsg);
  6097. // sSndMsg += sSndMsg + "^PQ1"; // 출력매수
  6098. // sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  6099. //
  6100. // fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6101. // fExeSendMsg("^XZ");
  6102. sSndMsg += lzzfBP_EndFormat();
  6103. CommAX.SendMsg(sSndMsg);
  6104. }
  6105. }//end for
  6106. //portopen이 true이고 통신유형이 com일때 port close
  6107. if ( portOpenTF == "TRUE" && sCommKind == "02") {
  6108. CommAX.PortOpen("false");
  6109. }
  6110. } else if (portOpenTF = "FALSE" && sCommKind == "02") {
  6111. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  6112. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  6113. + " \n 2.케이블 확인"
  6114. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  6115. return;
  6116. }
  6117. }
  6118. //-------------------------------------------
  6119. // 병리과 바코드 재출력 Zebra 용 다른건 js로
  6120. // 2020-10-20 : YDC
  6121. // Zebra 300 DPI용 함수
  6122. function fExePlgyBarCdRePrnt300_backup(pRowNo, pSNo, pENo, pCount) {
  6123. //trace("pSNo ="+pSNo+' / '+pENo);
  6124. // pSNo = pSNo.replace(",","");
  6125. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  6126. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  6127. var sBarCdNoH = "";
  6128. var sBarCdNoD = "";
  6129. var sPrntNo = "";
  6130. var sSubPrntNo = "";
  6131. var sRePrntCnt = "";
  6132. var iStartNo = 1;
  6133. var iEndNo = 99;
  6134. var iFindColNo = -1;
  6135. var iSpcNo = 0;
  6136. var sSpcSeqNo = "";
  6137. var sSpcSeqNm = "";
  6138. var aSpcSeqNo = "";
  6139. var aSpcSeqNm = "";
  6140. var sSndMsg = "";
  6141. var sPrcpDD = "";
  6142. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  6143. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  6144. var iLeft = ds_data_blank.getColumn(0,"left");
  6145. var iTop = ds_data_blank.getColumn(0,"top");
  6146. var iXPos = 0;
  6147. var iYPos = 0;
  6148. var iWidth = 0;
  6149. var aFlag = new Array();
  6150. var aStr = "";
  6151. var aArraySet = new Array();
  6152. var portOpenTF = "";
  6153. var test_rtn = "";
  6154. var test_he = "";
  6155. //---------------------------------
  6156. iLeft = Number(iLeft) + Number(20);
  6157. iTop = Number(iTop) + Number(10);
  6158. // try {
  6159. //--------------------------------------------------------
  6160. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  6161. //----------------------
  6162. if (sCommKind == "01") {
  6163. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  6164. } else if(sCommKind == "02") {
  6165. var sComm = ds_data_comm02.getColumn(0,"comm");
  6166. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  6167. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  6168. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  6169. var sParity = ds_data_comm02.getColumn(0,"parity");
  6170. //----------------------
  6171. CommAX.CommPort = sComm;
  6172. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  6173. //-----------------------------------------------------
  6174. // 출력할 진검 바코드 갯수가 0보다 크면 port 오픈 안함.
  6175. if (pCount > 0) {
  6176. portOpenTF = "TRUE";
  6177. } else if (pCount == 0) {
  6178. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  6179. portOpenTF = CommAX.PortOpen("true");
  6180. }
  6181. } else if(sCommKind == "03") {
  6182. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  6183. }
  6184. //---------------------------------
  6185. // 바코드번호 Header(일련번호 제외)
  6186. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  6187. //--------------------------------------------------------------------------------------------------
  6188. if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") ) {
  6189. //-----------------------------------------------------
  6190. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  6191. //--------------------
  6192. //if(sPrntKind == "9") {
  6193. if( sPrntKind == "9" || sPrntKind == "5" ) { // 외래채혈실 바코드 추가(5)
  6194. //--------------------------------------------------
  6195. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  6196. //sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpdd");
  6197. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcphopedd");
  6198. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  6199. sSndMsg = "";
  6200. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  6201. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  6202. //-------------------------
  6203. iXPos = Number(iLeft) + 20;
  6204. iYPos = Number(iTop) + 5;
  6205. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0") + "^FS"; // 바코드
  6206. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6207. sSndMsg = "";
  6208. //--------------------
  6209. iXPos = Number(iLeft);
  6210. iYPos = Number(iTop) + 115;
  6211. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  6212. //--------------------------
  6213. iXPos = Number(iLeft) + 180;
  6214. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  6215. if ( utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"))) {
  6216. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  6217. } else {
  6218. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"); // 응급실 환자 위치
  6219. }
  6220. } else {
  6221. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  6222. }
  6223. //trace("wardroom "+sTempStr);
  6224. //sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom");
  6225. iWidth = 0;
  6226. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  6227. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  6228. // aFlag = aArraySet[0];
  6229. // aStr = aArraySet[1];
  6230. // for (var iNo=0; iNo < aStr.length; iNo++) {
  6231. //
  6232. // //----------------------
  6233. // if (aFlag[iNo] == "E") {
  6234. // iYPos = Number(iTop) + 115;
  6235. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 병동병실
  6236. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  6237. // } else {
  6238. // iYPos = Number(iTop) + 110;
  6239. //
  6240. // if(sCommKind == "01") { // 병렬출력
  6241. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  6242. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  6243. //
  6244. // } else if(sCommKind == "02") { // 직렬출력
  6245. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  6246. // sSndMsg += CommAX.HanImageData();
  6247. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  6248. // }
  6249. // }
  6250. // }
  6251. aStr = "";
  6252. aStr = sTempStr;
  6253. //trace("aStr "+aStr);
  6254. for (var iNo=0; iNo < aStr.length; iNo++) {
  6255. oneChar = aStr.charAt(iNo);
  6256. test_rtn = "";
  6257. test_he = "";
  6258. test_rtn = lpzfGetHanGul3(oneChar);
  6259. test_he = test_rtn.substring(0,1);
  6260. //----------------------
  6261. //trace('iNo'+' / '+ iNo+' / '+test_he+' / '+aStr)
  6262. if(!utlf_isNull(test_he))
  6263. {
  6264. iYPos = Number(iTop) + 115;
  6265. if (test_he == "E") {
  6266. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  6267. iWidth = iWidth + (Number(oneChar.length) * 17);
  6268. }else{
  6269. iYPos = Number(iTop) + 110;
  6270. if(sCommKind == "01") { // 병렬출력
  6271. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6272. iWidth = iWidth + (Number(oneChar.length) * 31);
  6273. }else if(sCommKind == "02") { // 직렬출력
  6274. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6275. sSndMsg += CommAX.HanImageData();
  6276. iWidth = iWidth + (Number(oneChar.length) * 29);
  6277. }
  6278. }
  6279. }
  6280. }
  6281. //trace("병동병실 "+sSndMsg);
  6282. fExeSendMsg(sSndMsg);
  6283. sSndMsg = "";
  6284. //-------------------------
  6285. iXPos = Number(iLeft) + 300;
  6286. iYPos = Number(iTop) + 115;
  6287. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  6288. iXPos = Number(iLeft) + 500;
  6289. iYPos = Number(iTop) + 115;
  6290. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd"))){
  6291. sSndMsg += "^CFA99,44^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd") + "^FS"; // 감염정보
  6292. }
  6293. //trace("감영정보 "+sSndMsg);
  6294. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6295. sSndMsg = "";
  6296. //-------------------------
  6297. iXPos = Number(iLeft);
  6298. iYPos = Number(iTop) + 150;
  6299. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "pid") + "^FS"; // 등록번호
  6300. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6301. sSndMsg = "";
  6302. //-------------------------
  6303. iXPos = Number(iLeft) + 160;
  6304. iYPos = Number(iTop) + 150;
  6305. if(sCommKind == "01") { // 병렬출력
  6306. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FD"+ ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm") +"^FS^CI1";
  6307. //110630 유민규 병리바코드재출력 한영 오류추가
  6308. iWidth = 0;
  6309. aStr = "";
  6310. aFlag = new Array();
  6311. var sPatnm = ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm");
  6312. //aStr = lpzfGetHanGul(sPatnm, aFlag);
  6313. aStr = sPatnm;
  6314. // for (var iNo=0; iNo < aStr.length; iNo++) {
  6315. //
  6316. // //----------------------
  6317. //
  6318. // if (aFlag[iNo] == "E") {
  6319. //
  6320. // sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  6321. // iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  6322. //
  6323. // } else {
  6324. //
  6325. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  6326. // iWidth = iWidth + (Number(aStr[iNo].length) * 30);
  6327. // }
  6328. //
  6329. // }
  6330. for (var iNo=0; iNo < aStr.length; iNo++) {
  6331. oneChar = aStr.charAt(iNo);
  6332. test_rtn = "";
  6333. test_he = "";
  6334. test_rtn = lpzfGetHanGul3(oneChar);
  6335. test_he = test_rtn.substring(0,1);
  6336. //----------------------
  6337. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6338. if(!utlf_isNull(test_he))
  6339. {
  6340. if (test_he == "E") {
  6341. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  6342. iWidth = iWidth + (Number(oneChar.length) * 12);
  6343. }else{
  6344. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6345. iWidth = iWidth + (Number(oneChar.length) * 30);
  6346. }
  6347. }
  6348. }
  6349. } else if(sCommKind == "02") { // 직렬출력
  6350. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm"), 1, 1);
  6351. sSndMsg += CommAX.HanImageData();
  6352. }
  6353. //-------------------------
  6354. iXPos = Number(iLeft) + 320;
  6355. iYPos = Number(iTop) + 150;
  6356. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "sex");
  6357. sSndMsg += "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "dage") + "^FS"; // 성별/나이
  6358. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6359. sSndMsg = "";
  6360. //-------------------------
  6361. iXPos = Number(iLeft) + 450;
  6362. iYPos = Number(iTop) + 150;
  6363. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  6364. //if(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") != "") {
  6365. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))){
  6366. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") + ")" + "^FS"; // 진료과
  6367. } else {
  6368. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "^FS"; // 진료과
  6369. }
  6370. //trace('진료과 '+sSndMsg);
  6371. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6372. sSndMsg = "";
  6373. //--------------------
  6374. iXPos = Number(iLeft);
  6375. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  6376. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  6377. //------------------------------------
  6378. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  6379. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  6380. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  6381. sTempStr += aSpcSeqNm[iPrntCnt-1];
  6382. //---------
  6383. iWidth = 0;
  6384. aStr = sTempStr;
  6385. //trace('검체명1 '+aStr);
  6386. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  6387. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  6388. // aFlag = aArraySet[0];
  6389. // aStr = aArraySet[1];
  6390. // for (var iNo=0; iNo < aStr.length; iNo++) {
  6391. //
  6392. // //----------------------
  6393. // if (aFlag[iNo] == "E") {
  6394. // iYPos = Number(iTop) + 185;
  6395. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  6396. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  6397. // } else {
  6398. // iYPos = Number(iTop) + 180;
  6399. //
  6400. // //----------------------
  6401. // if(sCommKind == "01") { // 병렬출력
  6402. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  6403. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  6404. // } else if(sCommKind == "02") { // 직렬출력
  6405. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  6406. // sSndMsg += CommAX.HanImageData();
  6407. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  6408. // }
  6409. // }
  6410. // }
  6411. for (var iNo=0; iNo < aStr.length; iNo++) {
  6412. oneChar = aStr.charAt(iNo);
  6413. test_rtn = "";
  6414. test_he = "";
  6415. test_rtn = lpzfGetHanGul3(oneChar);
  6416. test_he = test_rtn.substring(0,1);
  6417. //----------------------
  6418. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6419. if(!utlf_isNull(test_he))
  6420. {
  6421. iYPos = Number(iTop) + 185;
  6422. if (test_he == "E") {
  6423. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  6424. iWidth = iWidth + (Number(oneChar.length) * 17);
  6425. }else{
  6426. iYPos = Number(iTop) + 180;
  6427. if(sCommKind == "01") { // 병렬출력
  6428. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6429. iWidth = iWidth + (Number(oneChar.length) * 31);
  6430. }else if(sCommKind == "02") { // 직렬출력
  6431. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6432. sSndMsg += CommAX.HanImageData();
  6433. iWidth = iWidth + (Number(oneChar.length) * 29);
  6434. }
  6435. }
  6436. }
  6437. }
  6438. //trace('검체명 '+sSndMsg);
  6439. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6440. sSndMsg = "";
  6441. //--------------------
  6442. iXPos = Number(iLeft);
  6443. //sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  6444. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  6445. // trace('검사명 1 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"));
  6446. // trace('검사명 11 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"));
  6447. // trace('검사명 111 '+sTempStr);
  6448. //---------
  6449. iWidth = 0;
  6450. aStr = sTempStr;
  6451. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  6452. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  6453. // aFlag = aArraySet[0];
  6454. // aStr = aArraySet[1];
  6455. // for (var iNo=0; iNo < aStr.length; iNo++) {
  6456. //
  6457. // //----------------------
  6458. // if (aFlag[iNo] == "E") {
  6459. // iYPos = Number(iTop) + 225;
  6460. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  6461. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  6462. // } else {
  6463. // iYPos = Number(iTop) + 220;
  6464. //
  6465. // //----------------------
  6466. // if(sCommKind == "01") { // 병렬출력
  6467. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  6468. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  6469. // } else if(sCommKind == "02") { // 직렬출력
  6470. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  6471. // sSndMsg += CommAX.HanImageData();
  6472. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  6473. // }
  6474. // }
  6475. // }
  6476. for (var iNo=0; iNo < aStr.length; iNo++) {
  6477. oneChar = aStr.charAt(iNo);
  6478. test_rtn = "";
  6479. test_he = "";
  6480. test_rtn = lpzfGetHanGul3(oneChar);
  6481. test_he = test_rtn.substring(0,1);
  6482. //----------------------
  6483. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6484. if(!utlf_isNull(test_he))
  6485. {
  6486. iYPos = Number(iTop) + 225;
  6487. if (test_he == "E") {
  6488. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6489. iWidth = iWidth + (Number(oneChar.length) * 17);
  6490. }else{
  6491. iYPos = Number(iTop) + 220;
  6492. if(sCommKind == "01") { // 병렬출력
  6493. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6494. iWidth = iWidth + (Number(oneChar.length) * 31);
  6495. }else if(sCommKind == "02") { // 직렬출력
  6496. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6497. sSndMsg += CommAX.HanImageData();
  6498. iWidth = iWidth + (Number(oneChar.length) * 29);
  6499. }
  6500. }
  6501. }
  6502. }
  6503. // trace('검사명1 '+sSndMsg);
  6504. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6505. sSndMsg = "";
  6506. //------ 추가처방 표시 -------------------
  6507. iXPos = Number(iLeft);
  6508. //sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  6509. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  6510. iWidth = 0;
  6511. aStr = sTempStr;
  6512. //trace('검사명 2 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"));
  6513. //trace('검사명 21 '+ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"));
  6514. //trace('검사명 211 '+sTempStr);
  6515. //---------
  6516. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  6517. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  6518. // aFlag = aArraySet[0];
  6519. // aStr = aArraySet[1];
  6520. // for (var iNo=0; iNo < aStr.length; iNo++) {
  6521. //
  6522. // //----------------------
  6523. // if (aFlag[iNo] == "E") {
  6524. // iYPos = Number(iTop) + 260;
  6525. // sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  6526. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  6527. // } else {
  6528. // iYPos = Number(iTop) + 255;
  6529. //
  6530. // //----------------------
  6531. // if(sCommKind == "01") { // 병렬출력
  6532. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  6533. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  6534. // } else if(sCommKind == "02") { // 직렬출력
  6535. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  6536. // sSndMsg += CommAX.HanImageData();
  6537. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  6538. // }
  6539. // }
  6540. // }
  6541. for (var iNo=0; iNo < aStr.length; iNo++) {
  6542. oneChar = aStr.charAt(iNo);
  6543. test_rtn = "";
  6544. test_he = "";
  6545. test_rtn = lpzfGetHanGul3(oneChar);
  6546. test_he = test_rtn.substring(0,1);
  6547. //----------------------
  6548. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6549. if(!utlf_isNull(test_he))
  6550. {
  6551. iYPos = Number(iTop) + 260;
  6552. if (test_he == "E") {
  6553. sSndMsg += "^CFA30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6554. iWidth = iWidth + (Number(oneChar.length) * 17);
  6555. }else{
  6556. iYPos = Number(iTop) + 255;
  6557. if(sCommKind == "01") { // 병렬출력
  6558. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6559. iWidth = iWidth + (Number(oneChar.length) * 31);
  6560. }else if(sCommKind == "02") { // 직렬출력
  6561. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6562. sSndMsg += CommAX.HanImageData();
  6563. iWidth = iWidth + (Number(oneChar.length) * 29);
  6564. }
  6565. }
  6566. }
  6567. }
  6568. //trace('검사명2 ' +sSndMsg);
  6569. sSndMsg = sSndMsg + "^PQ1"; // 출력매수
  6570. sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  6571. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  6572. }
  6573. }//end for
  6574. //portopen이 true이고 통신유형이 com일때 port close
  6575. if ( portOpenTF == "TRUE" && sCommKind == "02") {
  6576. CommAX.PortOpen("false");
  6577. }
  6578. } else if (portOpenTF = "FALSE" && sCommKind == "02") {
  6579. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  6580. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  6581. + " \n 2.케이블 확인"
  6582. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  6583. return;
  6584. }
  6585. }
  6586. //----------------------------------------
  6587. // 병리과 채혈바코드 출력( 해상도 200 DPI)
  6588. function fExePlgyBarCdPrnt(pLCount) {
  6589. try{
  6590. var sSndMsg = "";
  6591. var sPrcpDD = "";
  6592. var sTemp = "";
  6593. var sTempStr = "";
  6594. //var strNode = "/root/main/TestInfo/plgybarcdinfo";
  6595. var iLeft = ds_data_blank.getColumn(0,"left");
  6596. var iTop = ds_data_blank.getColumn(0,"top");
  6597. trace("병리 바코드 fExePlgyBarCdPrnt "+iLeft+"/"+iTop);
  6598. //trace(ds_plgybarcdinfo.saveXML());
  6599. var iXPos = 0;
  6600. var iYPos = 0;
  6601. var iWidth = 0;
  6602. var iEGap = 0;
  6603. var iHGap = 0;
  6604. var test_rtn = "";
  6605. var test_he = "";
  6606. var aFlag = new Array();
  6607. var aStr = "";
  6608. var LCount = 0;
  6609. var portOpenTF = "";
  6610. if(utlf_isNull(pLCount) || pLCount == 0){
  6611. LCount = 0;
  6612. }else if(pLCount > 0){
  6613. LCount = pLCount;
  6614. }
  6615. //-----------------------------------------
  6616. if (utlf_isNull(iLeft) || iLeft == "-") iLeft = 0;
  6617. if (utlf_isNull(iTop) || iTop == "-") iTop = 0;
  6618. //------------------------------
  6619. // 2008-10-12 : 병리과 여백 조정
  6620. iLeft = Number(iLeft) + Number(20);
  6621. iTop = Number(iTop) + Number(10);
  6622. //----------------
  6623. // Serial Port Open
  6624. //fExeCommPortOpen();
  6625. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  6626. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  6627. if(sPrntKind != "0"){
  6628. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  6629. if(sCommKind == "01") {
  6630. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  6631. } else if(sCommKind == "02") {
  6632. var sComm = ds_data_comm02.getColumn(0,"comm");
  6633. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  6634. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  6635. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  6636. var sParity = ds_data_comm02.getColumn(0,"parity");
  6637. CommAX.CommPort = sComm;
  6638. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  6639. //진검 바코드 출력 갯수가 존재하면 port 오픈 하지 않는다.
  6640. //진검 바코드 출력후 병리 바코드 갯수 체크하여 포트 클로즈 하지 않았기 때문에..
  6641. if(LCount > 0){
  6642. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  6643. portOpenTF = "TRUE";
  6644. }else if(LCount == 0){
  6645. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  6646. portOpenTF = CommAX.PortOpen("true");
  6647. }
  6648. } else if(sCommKind == "03") {
  6649. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  6650. }
  6651. if( (portOpenTF == "TRUE" && sCommKind == "02")
  6652. || (sCommKind == "01")
  6653. || (sCommKind == "07") // 정은임시 B472 테스트용
  6654. || (sCommKind == "03")){
  6655. //---------------
  6656. // 바코드내용 출력
  6657. for (var iRowNo=0; iRowNo < ds_plgybarcdinfo.rowcount; iRowNo++) {
  6658. //-------------------------
  6659. if ( sCommKind == "01" ) {
  6660. iEGap = 12;
  6661. iHGap = 20;
  6662. } else {
  6663. iEGap = 15;
  6664. iHGap = 20;
  6665. }
  6666. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  6667. //sPrcpDD = model.getValue(strNode + "[" + iRowNo + "]/prcpdd");
  6668. sPrcpDD = ds_plgybarcdinfo.getColumn(iRowNo, "prcphopedt");
  6669. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  6670. if( sPrntKind == "1" || sPrntKind == "11") {
  6671. sSndMsg = "";
  6672. if (sPrntKind == "11") {
  6673. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  6674. }
  6675. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  6676. // sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  6677. // sSndMsg += "^BY2,1"; // 바코드 Width 조절
  6678. //-------------------------
  6679. iXPos = Number(iLeft) + 20;
  6680. iYPos = Number(iTop) + 5;
  6681. //sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "spcbarcdno")+"^FS"; // 바코드
  6682. sSndMsg += lzzfBP_ChangeFont("F", 5, 5);
  6683. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 50, ds_plgybarcdinfo.getColumn(iRowNo, "spcbarcdno") ); // 바코드
  6684. iXPos = Number(iLeft) + 100;
  6685. iYPos = Number(iTop) + 60;
  6686. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6687. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "spcbarcdno")); // 바코드번호
  6688. //--------------------
  6689. iXPos = Number(iLeft);
  6690. iYPos = Number(iTop) + 80;
  6691. // sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  6692. //
  6693. // fExeSendMsg(sSndMsg);
  6694. // sSndMsg = "";
  6695. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6696. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "PATHOLOGY"); // 검체도착지명
  6697. iXPos = Number(iLeft) + 115;
  6698. if ( ds_plgybarcdinfo.getColumn(iRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  6699. if ( utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts")) ) {
  6700. sTempStr =ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  6701. } else {
  6702. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts"); // 응급실 환자 위치
  6703. }
  6704. } else {
  6705. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  6706. }
  6707. //sTempStr = model.getValue(strNode+"["+iRowNo+"]/wardroom");
  6708. iWidth = 0;
  6709. aStr = sTempStr;
  6710. for (var iNo=0; iNo < aStr.length; iNo++) {
  6711. oneChar = aStr.charAt(iNo);
  6712. test_rtn = "";
  6713. test_he = "";
  6714. test_rtn = lpzfGetHanGul3(oneChar);
  6715. test_he = test_rtn.substring(0,1);
  6716. //----------------------
  6717. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6718. if(!utlf_isNull(test_he))
  6719. {
  6720. iYPos = Number(iTop) + 80;
  6721. if (test_he == "E") {
  6722. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  6723. // iWidth = iWidth + (Number(oneChar.length) * iEGap);
  6724. sSndMsg += "^CFF10,10^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + oneChar + "^FS";
  6725. //sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + oneChar + "^FS";
  6726. iWidth = iWidth + (Number(oneChar.length) * 14);
  6727. }else{
  6728. iYPos = Number(iTop) + 80;
  6729. // if(sCommKind == "01") { // 병렬출력
  6730. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  6731. // }else if(sCommKind == "02") { // 직렬출력
  6732. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6733. // sSndMsg += CommAX.HanImageData();
  6734. // }
  6735. // iWidth = iWidth + (Number(oneChar.length) * iHGap);
  6736. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + oneChar + "^FS^CI1"; // 검사코드리스트(한글)
  6737. //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + oneChar + "^FS^CI1"; // 검사코드리스트(한글)
  6738. iWidth = iWidth + (Number(oneChar.length) * 30);
  6739. }
  6740. }
  6741. }
  6742. // fExeSendMsg(sSndMsg);
  6743. // sSndMsg = "";
  6744. //
  6745. //-------------------------
  6746. iXPos = Number(iLeft) + 220;
  6747. iYPos = Number(iTop) + 80;
  6748. //sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  6749. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6750. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrcpDD); // 처방일자
  6751. //감염정보 표시
  6752. if(!utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd"))) {
  6753. iXPos = Number(iLeft) + 345
  6754. iYPos = Number(iTop) + 80;
  6755. //sSndMsg += "^CFA99,40^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd") + "^FS"; // 감염정보
  6756. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  6757. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd"));
  6758. }
  6759. trace("감염정보"+ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd"));
  6760. //--------------------------
  6761. iXPos = Number(iLeft);
  6762. iYPos = Number(iTop) + 105;
  6763. //sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "pid") + "^FS"; // 등록번호
  6764. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  6765. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "pid")); //환자등록번호
  6766. // fExeSendMsg(sSndMsg);
  6767. // sSndMsg = "";
  6768. //-------------------------
  6769. iXPos = Number(iLeft) + 125;
  6770. iYPos = Number(iTop) + 105;
  6771. if(sCommKind == "01") { // 병렬출력
  6772. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,20,20^FD"+ model.getValue(strNode+"["+iRowNo+"]/patnm") +"^FS^CI1";
  6773. // 110704 유민규 병리과바코드 한영 오류수정
  6774. iWidth = 0;
  6775. aStr = "";
  6776. aFlag = new Array();
  6777. var sPatnm = ds_plgybarcdinfo.getColumn(iRowNo, "patnm");
  6778. aStr = sPatnm;
  6779. for (var iNo=0; iNo < aStr.length; iNo++) {
  6780. oneChar = aStr.charAt(iNo);
  6781. test_rtn = "";
  6782. test_he = "";
  6783. test_rtn = lpzfGetHanGul3(oneChar);
  6784. test_he = test_rtn.substring(0,1);
  6785. //----------------------
  6786. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6787. if(!utlf_isNull(test_he))
  6788. {
  6789. if (test_he == "E") {
  6790. // sSndMsg += "^CFF30,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  6791. // iWidth = iWidth + (Number(oneChar.length) * 12);
  6792. sSndMsg += "^CFF20,20^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + oneChar + "^FS";
  6793. iWidth = iWidth + (Number(oneChar.length) * 14);
  6794. }else{
  6795. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  6796. // iWidth = iWidth + (Number(oneChar.length) * 30);
  6797. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + oneChar + "^FS^CI1"; // 검사코드리스트(한글)
  6798. iWidth = iWidth + (Number(oneChar.length) * 30);
  6799. }
  6800. }
  6801. }
  6802. } else if(sCommKind == "02") { // 직렬출력
  6803. // sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "patnm"), 1, 1);
  6804. // sSndMsg += CommAX.HanImageData();
  6805. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6806. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "patnm"));
  6807. }
  6808. // fExeSendMsg(sSndMsg);
  6809. // sSndMsg = "";
  6810. //-------------------------
  6811. iXPos = Number(iLeft) + 240;
  6812. iYPos = Number(iTop) + 105;
  6813. //sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "sexage") + "^FS"; // 성별/나이
  6814. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  6815. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "sexage")); // 성별/나이
  6816. //-------------------------
  6817. iXPos = Number(iLeft) + 300;
  6818. iYPos = Number(iTop) + 105;
  6819. //sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "orddeptnm");
  6820. // sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sTempStr + "^FS"; // 진료과
  6821. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  6822. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "orddeptnm")); // 진료과
  6823. // fExeSendMsg(sSndMsg);
  6824. // sSndMsg = "";
  6825. //=========================
  6826. iXPos = Number(iLeft);
  6827. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "spcdispnm");
  6828. sTempStr = sTempStr.replace("▨", ",");
  6829. trace("spcdispnm :"+sTempStr);
  6830. //---------
  6831. iWidth = 0;
  6832. aStr = sTempStr;
  6833. for (var iNo=0; iNo < aStr.length; iNo++) {
  6834. oneChar = aStr.charAt(iNo);
  6835. test_rtn = "";
  6836. test_he = "";
  6837. test_rtn = lpzfGetHanGul3(oneChar);
  6838. test_he = test_rtn.substring(0,1);
  6839. //----------------------
  6840. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6841. if(!utlf_isNull(test_he))
  6842. {
  6843. iYPos = Number(iTop) + 125;
  6844. if (test_he == "E") {
  6845. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  6846. // iWidth = iWidth + (Number(oneChar.length) * iEGap);
  6847. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  6848. iWidth = iWidth + (Number(oneChar.length) * 14);
  6849. }else{
  6850. iYPos = Number(iTop) + 125;
  6851. // if(sCommKind == "01") { // 병렬출력
  6852. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  6853. //
  6854. // }else if(sCommKind == "02") { // 직렬출력
  6855. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6856. // sSndMsg += CommAX.HanImageData();
  6857. //
  6858. // }
  6859. // iWidth = iWidth + (Number(oneChar.length) *iHGap);
  6860. iYPos = Number(iTop) + 125;
  6861. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  6862. iWidth = iWidth + (Number(oneChar.length) * 30);
  6863. }
  6864. }
  6865. }
  6866. // fExeSendMsg(sSndMsg);
  6867. // sSndMsg = "";
  6868. //==========================
  6869. iXPos = Number(iLeft);
  6870. // iYPos = Number(iTop) + 225;
  6871. //---------------------------------------------------------
  6872. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm");
  6873. sTempStr = sTempStr.replace("▨", ",");
  6874. //sTempStr = sTempStr.substring(0, sTempStr.length-1);
  6875. //---------
  6876. iWidth = 0;
  6877. aStr = sTempStr;
  6878. for (var iNo=0; iNo < aStr.length; iNo++) {
  6879. oneChar = aStr.charAt(iNo);
  6880. test_rtn = "";
  6881. test_he = "";
  6882. test_rtn = lpzfGetHanGul3(oneChar);
  6883. test_he = test_rtn.substring(0,1);
  6884. //----------------------
  6885. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6886. if(!utlf_isNull(test_he))
  6887. {
  6888. iYPos = Number(iTop) + 150;
  6889. if (test_he == "E") {
  6890. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6891. // iWidth = iWidth + (Number(oneChar.length) * iEGap);
  6892. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6893. iWidth = iWidth + (Number(oneChar.length) * 14);
  6894. }else{
  6895. iYPos = Number(iTop) + 150;
  6896. // if(sCommKind == "01") { // 병렬출력
  6897. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  6898. //
  6899. // }else if(sCommKind == "02") { // 직렬출력
  6900. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6901. // sSndMsg += CommAX.HanImageData();
  6902. //
  6903. // }
  6904. // iWidth = iWidth + (Number(oneChar.length) * iHGap);
  6905. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  6906. iWidth = iWidth + (Number(oneChar.length) * 30);
  6907. }
  6908. }
  6909. }
  6910. // fExeSendMsg(sSndMsg);
  6911. // sSndMsg = "";
  6912. //-------------------------
  6913. iXPos = Number(iLeft);
  6914. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm2"); //검사명(추가처방)
  6915. sTempStr = sTempStr.replace("▨", ",");
  6916. iWidth = 0;
  6917. aStr = sTempStr;
  6918. for (var iNo=0; iNo < aStr.length; iNo++) {
  6919. oneChar = aStr.charAt(iNo);
  6920. test_rtn = "";
  6921. test_he = "";
  6922. test_rtn = lpzfGetHanGul3(oneChar);
  6923. test_he = test_rtn.substring(0,1);
  6924. //----------------------
  6925. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  6926. if(!utlf_isNull(test_he))
  6927. {
  6928. iYPos = Number(iTop) + 175;
  6929. if (test_he == "E") {
  6930. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6931. // iWidth = iWidth + (Number(oneChar.length) * iEGap);
  6932. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  6933. iWidth = iWidth + (Number(oneChar.length) * 14);
  6934. }else{
  6935. iYPos = Number(iTop) + 175;
  6936. // if(sCommKind == "01") { // 병렬출력
  6937. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  6938. // }else if(sCommKind == "02") { // 직렬출력
  6939. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  6940. // sSndMsg += CommAX.HanImageData();
  6941. // }
  6942. // iWidth = iWidth + (Number(oneChar.length) * iHGap);
  6943. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  6944. iWidth = iWidth + (Number(oneChar.length) * 30);
  6945. }
  6946. }
  6947. }
  6948. // sSndMsg += sSndMsg + "^PQ1"; // 출력매수
  6949. // sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  6950. // fExeSendMsg(sSndMsg);
  6951. // fExeSendMsg("^XZ");
  6952. sSndMsg += lzzfBP_EndFormat();
  6953. CommAX.SendMsg(sSndMsg);
  6954. //trace('sSndMsg :'+sSndMsg);
  6955. }
  6956. }
  6957. //portopen이 true이고 통신유형이 com일때 port close
  6958. if( portOpenTF == "TRUE" && sCommKind == "02"){
  6959. CommAX.PortOpen("false");
  6960. }
  6961. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  6962. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  6963. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  6964. + " \n 2.케이블 확인"
  6965. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  6966. return;
  6967. }
  6968. }
  6969. } catch(ee) {
  6970. sysf_messageBox("병리바코드출력에", "E009");
  6971. return;
  6972. }
  6973. }
  6974. //----------------------------------------
  6975. // 병리과 채혈바코드 출력( 해상도 200 DPI)
  6976. function fExePlgyBarCdPrnt_backup(pLCount) {
  6977. try{
  6978. var sSndMsg = "";
  6979. var sPrcpDD = "";
  6980. var sTemp = "";
  6981. var sTempStr = "";
  6982. //var strNode = "/root/main/TestInfo/plgybarcdinfo";
  6983. var iLeft = ds_data_blank.getColumn(0,"left");
  6984. var iTop = ds_data_blank.getColumn(0,"top");
  6985. var iXPos = 0;
  6986. var iYPos = 0;
  6987. var iWidth = 0;
  6988. var iEGap = 0;
  6989. var iHGap = 0;
  6990. var test_rtn = "";
  6991. var test_he = "";
  6992. var aFlag = new Array();
  6993. var aStr = "";
  6994. var LCount = 0;
  6995. var portOpenTF = "";
  6996. if(utlf_isNull(pLCount) || pLCount == 0){
  6997. LCount = 0;
  6998. }else if(pLCount > 0){
  6999. LCount = pLCount;
  7000. }
  7001. //-----------------------------------------
  7002. if (utlf_isNull(iLeft) || iLeft == "-") iLeft = 0;
  7003. if (utlf_isNull(iTop) || iTop == "-") iTop = 0;
  7004. //------------------------------
  7005. // 2008-10-12 : 병리과 여백 조정
  7006. iLeft = Number(iLeft) + Number(20);
  7007. iTop = Number(iTop) + Number(10);
  7008. //----------------
  7009. // Serial Port Open
  7010. //fExeCommPortOpen();
  7011. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  7012. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  7013. if(sPrntKind != "0"){
  7014. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  7015. if(sCommKind == "01") {
  7016. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  7017. } else if(sCommKind == "02") {
  7018. var sComm = ds_data_comm02.getColumn(0,"comm");
  7019. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  7020. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  7021. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  7022. var sParity = ds_data_comm02.getColumn(0,"parity");
  7023. CommAX.CommPort = sComm;
  7024. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  7025. //진검 바코드 출력 갯수가 존재하면 port 오픈 하지 않는다.
  7026. //진검 바코드 출력후 병리 바코드 갯수 체크하여 포트 클로즈 하지 않았기 때문에..
  7027. if(LCount > 0){
  7028. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  7029. portOpenTF = "TRUE";
  7030. }else if(LCount == 0){
  7031. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  7032. portOpenTF = CommAX.PortOpen("true");
  7033. }
  7034. } else if(sCommKind == "03") {
  7035. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  7036. }
  7037. if( (portOpenTF == "TRUE" && sCommKind == "02")
  7038. || (sCommKind == "01")
  7039. || (sCommKind == "07") // 정은임시 B472 테스트용
  7040. || (sCommKind == "03")){
  7041. //---------------
  7042. // 바코드내용 출력
  7043. for (var iRowNo=0; iRowNo < ds_plgybarcdinfo.rowcount; iRowNo++) {
  7044. //-------------------------
  7045. if ( sCommKind == "01" ) {
  7046. iEGap = 12;
  7047. iHGap = 20;
  7048. } else {
  7049. iEGap = 15;
  7050. iHGap = 20;
  7051. }
  7052. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  7053. //sPrcpDD = model.getValue(strNode + "[" + iRowNo + "]/prcpdd");
  7054. sPrcpDD = ds_plgybarcdinfo.getColumn(iRowNo, "prcphopedt");
  7055. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  7056. if( sPrntKind == "1" || sPrntKind == "11") {
  7057. sSndMsg = "";
  7058. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  7059. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  7060. //-------------------------
  7061. iXPos = Number(iLeft) + 20;
  7062. iYPos = Number(iTop) + 5;
  7063. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "spcbarcdno")+"^FS"; // 바코드
  7064. //--------------------
  7065. iXPos = Number(iLeft);
  7066. iYPos = Number(iTop) + 115;
  7067. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  7068. fExeSendMsg(sSndMsg);
  7069. sSndMsg = "";
  7070. iXPos = Number(iLeft) + 125;
  7071. if ( ds_plgybarcdinfo.getColumn(iRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  7072. if ( utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts")) ) {
  7073. sTempStr =ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  7074. } else {
  7075. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "bedposcnts"); // 응급실 환자 위치
  7076. }
  7077. } else {
  7078. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "wardroom"); // 병동병실
  7079. }
  7080. //sTempStr = model.getValue(strNode+"["+iRowNo+"]/wardroom");
  7081. iWidth = 0;
  7082. aStr = sTempStr;
  7083. for (var iNo=0; iNo < aStr.length; iNo++) {
  7084. oneChar = aStr.charAt(iNo);
  7085. test_rtn = "";
  7086. test_he = "";
  7087. test_rtn = lpzfGetHanGul3(oneChar);
  7088. test_he = test_rtn.substring(0,1);
  7089. //----------------------
  7090. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  7091. if(!utlf_isNull(test_he))
  7092. {
  7093. iYPos = Number(iTop) + 115;
  7094. if (test_he == "E") {
  7095. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  7096. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  7097. }else{
  7098. iYPos = Number(iTop) + 110;
  7099. if(sCommKind == "01") { // 병렬출력
  7100. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  7101. }else if(sCommKind == "02") { // 직렬출력
  7102. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  7103. sSndMsg += CommAX.HanImageData();
  7104. }
  7105. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  7106. }
  7107. }
  7108. }
  7109. fExeSendMsg(sSndMsg);
  7110. sSndMsg = "";
  7111. //-------------------------
  7112. iXPos = Number(iLeft) + 215;
  7113. iYPos = Number(iTop) + 115;
  7114. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  7115. //감염정보 표시
  7116. if(!utlf_isNull(ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd"))) {
  7117. iXPos = Number(iLeft) + 340
  7118. iYPos = Number(iTop) + 115;
  7119. sSndMsg += "^CFA99,40^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "isolabbrcd") + "^FS"; // 감염정보
  7120. }
  7121. //--------------------------
  7122. iXPos = Number(iLeft);
  7123. iYPos = Number(iTop) + 145;
  7124. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "pid") + "^FS"; // 등록번호
  7125. fExeSendMsg(sSndMsg);
  7126. sSndMsg = "";
  7127. //-------------------------
  7128. iXPos = Number(iLeft) + 125;
  7129. iYPos = Number(iTop) + 140;
  7130. //sSndMsg += CommAX.PrtImgOut("GRAPH001", model.getValue(strNode+"["+iRowNo+"]/patnm")); // 환자명 //이전 OCX
  7131. //sSndMsg += "^CFA,20,20^FO"+iXPos+","+iYPos+"^XGGRAPH001,1,1^FS"; //이전 OCX
  7132. if(sCommKind == "01") { // 병렬출력
  7133. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,20,20^FD"+ model.getValue(strNode+"["+iRowNo+"]/patnm") +"^FS^CI1";
  7134. // 110704 유민규 병리과바코드 한영 오류수정
  7135. iWidth = 0;
  7136. aStr = "";
  7137. aFlag = new Array();
  7138. var sPatnm = ds_plgybarcdinfo.getColumn(iRowNo, "patnm");
  7139. aStr = sPatnm;
  7140. for (var iNo=0; iNo < aStr.length; iNo++) {
  7141. oneChar = aStr.charAt(iNo);
  7142. test_rtn = "";
  7143. test_he = "";
  7144. test_rtn = lpzfGetHanGul3(oneChar);
  7145. test_he = test_rtn.substring(0,1);
  7146. //----------------------
  7147. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  7148. if(!utlf_isNull(test_he))
  7149. {
  7150. if (test_he == "E") {
  7151. sSndMsg += "^CFF30,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  7152. iWidth = iWidth + (Number(oneChar.length) * 12);
  7153. }else{
  7154. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  7155. iWidth = iWidth + (Number(oneChar.length) * 30);
  7156. }
  7157. }
  7158. }
  7159. } else if(sCommKind == "02") { // 직렬출력
  7160. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_plgybarcdinfo.getColumn(iRowNo, "patnm"), 1, 1);
  7161. sSndMsg += CommAX.HanImageData();
  7162. }
  7163. fExeSendMsg(sSndMsg);
  7164. sSndMsg = "";
  7165. //-------------------------
  7166. iXPos = Number(iLeft) + 240;
  7167. iYPos = Number(iTop) + 145;
  7168. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_plgybarcdinfo.getColumn(iRowNo, "sexage") + "^FS"; // 성별/나이
  7169. //-------------------------
  7170. iXPos = Number(iLeft) + 300;
  7171. iYPos = Number(iTop) + 145;
  7172. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "orddeptnm");
  7173. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sTempStr + "^FS"; // 진료과
  7174. fExeSendMsg(sSndMsg);
  7175. sSndMsg = "";
  7176. //=========================
  7177. iXPos = Number(iLeft);
  7178. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "spcdispnm");
  7179. sTempStr = sTempStr.replace("▨", ",");
  7180. //---------
  7181. iWidth = 0;
  7182. aStr = sTempStr;
  7183. for (var iNo=0; iNo < aStr.length; iNo++) {
  7184. oneChar = aStr.charAt(iNo);
  7185. test_rtn = "";
  7186. test_he = "";
  7187. test_rtn = lpzfGetHanGul3(oneChar);
  7188. test_he = test_rtn.substring(0,1);
  7189. //----------------------
  7190. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  7191. if(!utlf_isNull(test_he))
  7192. {
  7193. iYPos = Number(iTop) + 175;
  7194. if (test_he == "E") {
  7195. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  7196. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  7197. }else{
  7198. iYPos = Number(iTop) + 170;
  7199. if(sCommKind == "01") { // 병렬출력
  7200. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  7201. }else if(sCommKind == "02") { // 직렬출력
  7202. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  7203. sSndMsg += CommAX.HanImageData();
  7204. }
  7205. iWidth = iWidth + (Number(oneChar.length) *iHGap);
  7206. }
  7207. }
  7208. }
  7209. fExeSendMsg(sSndMsg);
  7210. sSndMsg = "";
  7211. //==========================
  7212. iXPos = Number(iLeft);
  7213. // iYPos = Number(iTop) + 225;
  7214. //---------------------------------------------------------
  7215. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm");
  7216. sTempStr = sTempStr.replace("▨", ",");
  7217. //sTempStr = sTempStr.substring(0, sTempStr.length-1);
  7218. //---------
  7219. iWidth = 0;
  7220. aStr = sTempStr;
  7221. for (var iNo=0; iNo < aStr.length; iNo++) {
  7222. oneChar = aStr.charAt(iNo);
  7223. test_rtn = "";
  7224. test_he = "";
  7225. test_rtn = lpzfGetHanGul3(oneChar);
  7226. test_he = test_rtn.substring(0,1);
  7227. //----------------------
  7228. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  7229. if(!utlf_isNull(test_he))
  7230. {
  7231. iYPos = Number(iTop) + 200;
  7232. if (test_he == "E") {
  7233. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  7234. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  7235. }else{
  7236. iYPos = Number(iTop) + 200;
  7237. if(sCommKind == "01") { // 병렬출력
  7238. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  7239. }else if(sCommKind == "02") { // 직렬출력
  7240. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  7241. sSndMsg += CommAX.HanImageData();
  7242. }
  7243. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  7244. }
  7245. }
  7246. }
  7247. fExeSendMsg(sSndMsg);
  7248. sSndMsg = "";
  7249. //-------------------------
  7250. iXPos = Number(iLeft);
  7251. sTempStr = ds_plgybarcdinfo.getColumn(iRowNo, "prcpdispnm2"); //검사명(추가처방)
  7252. sTempStr = sTempStr.replace("▨", ",");
  7253. iWidth = 0;
  7254. aStr = sTempStr;
  7255. for (var iNo=0; iNo < aStr.length; iNo++) {
  7256. oneChar = aStr.charAt(iNo);
  7257. test_rtn = "";
  7258. test_he = "";
  7259. test_rtn = lpzfGetHanGul3(oneChar);
  7260. test_he = test_rtn.substring(0,1);
  7261. //----------------------
  7262. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  7263. if(!utlf_isNull(test_he))
  7264. {
  7265. iYPos = Number(iTop) + 230;
  7266. if (test_he == "E") {
  7267. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  7268. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  7269. }else{
  7270. iYPos = Number(iTop) + 230;
  7271. if(sCommKind == "01") { // 병렬출력
  7272. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  7273. }else if(sCommKind == "02") { // 직렬출력
  7274. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  7275. sSndMsg += CommAX.HanImageData();
  7276. }
  7277. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  7278. }
  7279. }
  7280. }
  7281. sSndMsg += sSndMsg + "^PQ1"; // 출력매수
  7282. sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  7283. fExeSendMsg(sSndMsg);
  7284. fExeSendMsg("^XZ");
  7285. }
  7286. }
  7287. //portopen이 true이고 통신유형이 com일때 port close
  7288. if( portOpenTF == "TRUE" && sCommKind == "02"){
  7289. CommAX.PortOpen("false");
  7290. }
  7291. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  7292. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  7293. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  7294. + " \n 2.케이블 확인"
  7295. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  7296. return;
  7297. }
  7298. }
  7299. } catch(ee) {
  7300. sysf_messageBox("병리바코드출력에", "E009");
  7301. return;
  7302. }
  7303. }
  7304. //---------------------------
  7305. // Serial Port를 설정하여 Open
  7306. function fExeCommPortOpen() {
  7307. CommAX.CommPort = "1";
  7308. CommAX.Settings = "9600,n,8,1";
  7309. }
  7310. //---------------------
  7311. // 바코드 출력 시작 설정
  7312. function fExeBarCdSetStart(paramMsg) {
  7313. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  7314. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  7315. //var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  7316. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  7317. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  7318. var sCmd = "";
  7319. trace("병리 sPrntKind :"+sPrntKind+" / "+sCommKind);
  7320. //---------------------
  7321. if(sCommKind == "01") {
  7322. sCmd = paramMsg + "^XA^SEE:UHANGUL.DAT^CWQ,E:kfont3.FNT"; // LPT Or USB 출력
  7323. //sCmd = paramMsg + "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  7324. } else if(sCommKind == "02") {
  7325. sCmd = paramMsg + "^XA^LH0,0"; // COM출력
  7326. }
  7327. //-----------
  7328. return sCmd;
  7329. }
  7330. //--------------------
  7331. // 바코드 출력 종료 설정
  7332. function fExeBarCdSetEnd(paramMsg) {
  7333. return paramMsg + "^XZ";
  7334. }
  7335. //-------------------------
  7336. // 바코드 장비로 메세지 전송
  7337. function fExeSendMsg(paramMsg) {
  7338. // var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  7339. // var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  7340. // var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  7341. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  7342. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  7343. if(sCommKind == "01") {
  7344. //------------------------
  7345. if ( sPrntKind == "5" ) { // LPT전용방식
  7346. CommAX.SendMessageToLPT(paramMsg);
  7347. } else {
  7348. CommAX.SendMsg(paramMsg);
  7349. // CommAX.SendMessage(paramMsg);
  7350. }
  7351. } else if(sCommKind == "02") {
  7352. CommAX.SendMessage(paramMsg);
  7353. }
  7354. //CommAX.SendMessageToLPT(paramMsg);
  7355. }
  7356. function grp4_btn_chkn_onclick(obj:Button, e:ClickEventInfo)
  7357. {
  7358. lf_chkYN("N");
  7359. }
  7360. /****************************************************************************************
  7361. * Components :
  7362. * Components ID : btn_chky
  7363. * Event : onclick
  7364. * Argument : 01.obj : Object Event has occurred
  7365. * : 02.e : Event Object
  7366. * Description : 바코드 전체 선택
  7367. ****************************************************************************************/
  7368. function grp4_btn_chky_onclick(obj:Button, e:ClickEventInfo)
  7369. {
  7370. lf_chkYN("Y");
  7371. }
  7372. /****************************************************************************************
  7373. * Components :
  7374. * Components ID : grd_TestInfoCnts
  7375. * Event : oncellclick
  7376. * Argument : 01.obj : Object Event has occurred
  7377. * : 02.e : Event Object
  7378. * Description :
  7379. ****************************************************************************************/
  7380. function grp4_grd_TestInfoCnts_oncellclick(obj:Grid, e:GridClickEventInfo)
  7381. {
  7382. var nCol = grp4.grd_TestInfoCnts.currentcol;
  7383. if(nCol == grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcgbn") || nCol == grp4.grd_TestInfoCnts.getBindCellIndex("Body","choi")){
  7384. //그리드에서 row선택시
  7385. lf_setGridChoi();
  7386. //바코드 갯수 셋팅
  7387. lf_getBarcdPrintCount();
  7388. } else if (nCol == grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollbarcdprntcnt")){
  7389. //그리드내 button클릭시(의뢰지)
  7390. //lf_getReqFrmInfo();
  7391. } else if (nCol == grp4.grd_TestInfoCnts.getBindCellIndex("Body","reprntcnt")){ // 재출력시 커서 오면 자동 세팅 추가
  7392. //그리드내 button클릭시(의뢰지)
  7393. //lf_getReqFrmInfo();
  7394. if (ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"prcpexecdeptnm") == "병리과" && ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcollbarcdprntcnt") > 1 ) {
  7395. ds_grd_TestInfoCnts.setColumn(ds_grd_TestInfoCnts.rowposition,"reprntcnt","1-"+ds_grd_TestInfoCnts.getColumn(ds_grd_TestInfoCnts.rowposition,"bcollbarcdprntcnt"));
  7396. }
  7397. } else if (nCol == grp4.grd_TestInfoCnts.getBindCellIndex("Body","tubeiconimg")){ //용기 이미지 확대 보여주기
  7398. var arrCellRect = obj.getCellRect(e.row,e.cell);
  7399. var nDivX = system.clientToScreenX(obj,arrCellRect.left);
  7400. var nDivY = system.clientToScreenY(obj,arrCellRect.bottom);
  7401. grp4.PopupDiv01.closePopup();
  7402. grp4.PopupDiv01.trackPopup(nDivX,nDivY);
  7403. }
  7404. //
  7405. }
  7406. /****************************************************************************************
  7407. * Components :
  7408. * Components ID : btn_rsltinput
  7409. * Event : onclick
  7410. * Argument : 01.obj : Object Event has occurred
  7411. * : 02.e : Event Object
  7412. * Description :
  7413. ****************************************************************************************/
  7414. function grp4_btn_rsltinput_onclick(obj:Button, e:ClickEventInfo)
  7415. {
  7416. var objArg = new Object();
  7417. objArg.arg_ds_strip = ds_grd_TestInfoCnts;
  7418. frmf_modal("SPLLR91200","SPLLR91200", objArg, "", "", "", "", "", "", "", "", "", "M");
  7419. }
  7420. /****************************************************************************************
  7421. * Components :
  7422. * Components ID : btn_formprnt
  7423. * Event : onclick
  7424. * Argument : 01.obj : Object Event has occurred
  7425. * : 02.e : Event Object
  7426. * Description : 동의서출력
  7427. ****************************************************************************************/
  7428. function grp4_btn_formprnt_onclick(obj:Button, e:ClickEventInfo
  7429. )
  7430. {
  7431. //================================================================================================
  7432. //pid : 환자번호
  7433. //orddeptcd : 진료과 코드
  7434. //indd : 입(내)원일
  7435. //docucd : 서식코드
  7436. //ioflag : 입원/외래
  7437. //cmc_cretno : 생성번호
  7438. //================================================================================================
  7439. var prcpgenrflag = ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition, "prcpgenrflag");
  7440. /* if((prcpgenrflag == "O") ||(prcpgenrflag == "S")) {
  7441. prcpgenrflag = "O";
  7442. } else {
  7443. prcpgenrflag = "I";
  7444. }*/
  7445. // pid, orddd, cretno, formcd, pageno
  7446. // var objArg = new Object();
  7447. //
  7448. // objArg.pid = ds_grd_BcollInfo.getColumn(ds_grd_BcollInfo.rowposition, "pid");
  7449. // objArg.orddeptcd = ds_grd_TestInfoCnts.getColumn(0, "orddeptcd");
  7450. // objArg.indd = ds_grd_TestInfoCnts.getColumn(0, "orddd");
  7451. // objArg.docucd = ds_TestspcfInfo.getColumn(0, "formcd");
  7452. // objArg.ioflag = prcpgenrflag;
  7453. // objArg.cmc_cretno = ds_TestspcfInfo.getColumn(0, "cretno");
  7454. // objArg.cmc_spcid = "";
  7455. // objArg.cmc_orddate = "";
  7456. // objArg.cmc_orderseqno = "";
  7457. //
  7458. // var rtn = frmf_modal("SSMRC03110", "SSMRC03110", objArg);
  7459. if(utlf_transNullToEmpty(ds_TestspcfInfo.getColumn(0, "scanyn")) == "Y" &&
  7460. utlf_transNullToEmpty(ds_TestspcfInfo.getColumn(0, "treatno")) != "")
  7461. {
  7462. var arrArg = new Object();
  7463. ds_iemr.clearData();
  7464. ds_iemr.addRow();
  7465. ds_iemr.setColumn(0, "docucd", utlf_transNullToEmpty(ds_TestspcfInfo.getColumn(0, "formcd")));
  7466. ds_iemr.setColumn(0, "treatno", utlf_transNullToEmpty(ds_TestspcfInfo.getColumn(0, "treatno")));
  7467. arrArg.iemr = ds_iemr;
  7468. arrArg.viewer_flag = "";
  7469. frmf_modal("SPMMR06400","SPMMR06400", arrArg, "", "", "", "", "", "", "", "", "", "M");
  7470. }
  7471. }
  7472. /****************************************************************************************
  7473. * Components :
  7474. * Components ID : btn_set2
  7475. * Event : onclick
  7476. * Argument : 01.obj : Object Event has occurred
  7477. * : 02.e : Event Object
  7478. * Description :
  7479. ****************************************************************************************/
  7480. function grp4_btn_set2_onclick(obj:Button, e:ClickEventInfo)
  7481. {
  7482. lf_setTestGridStyle("2");
  7483. }
  7484. function grp4_btn_set3_onclick(obj:Button, e:ClickEventInfo)
  7485. {
  7486. lf_setTestGridStyle("3");
  7487. }
  7488. /****************************************************************************************
  7489. * Components :
  7490. * Components ID : btn_set1
  7491. * Event : onclick
  7492. * Argument : 01.obj : Object Event has occurred
  7493. * : 02.e : Event Object
  7494. * Description :
  7495. ****************************************************************************************/
  7496. function grp4_btn_set1_onclick(obj:Button, e:ClickEventInfo)
  7497. {
  7498. lf_setTestGridStyle("1");
  7499. }
  7500. /****************************************************************************************
  7501. * Components :
  7502. * Components ID : btn_set0
  7503. * Event : onclick
  7504. * Argument : 01.obj : Object Event has occurred
  7505. * : 02.e : Event Object
  7506. * Description :
  7507. ****************************************************************************************/
  7508. function grp4_btn_set0_onclick(obj:Button, e:ClickEventInfo)
  7509. {
  7510. lf_setTestGridStyle("0");
  7511. }
  7512. /****************************************************************************************
  7513. * Components :
  7514. * Components ID : btn_aprv
  7515. * Event : onclick
  7516. * Argument : 01.obj : Object Event has occurred
  7517. * : 02.e : Event Object
  7518. * Description : 유전자동의서
  7519. ****************************************************************************************/
  7520. function grp4_btn_aprv_onclick(obj:Button, e:ClickEventInfo)
  7521. {
  7522. frmf_modal("SPLLJ90400","SPLLJ90400");
  7523. //frmf_modal("SPLLJ90400","SPLLJ90400","","","","","","","","","","","M");
  7524. }
  7525. /****************************************************************************************
  7526. * Components :
  7527. * Components ID : pm_SubMenu
  7528. * Event : onmenuclick
  7529. * Argument : 01.obj : Object Event has occurred
  7530. * : 02.e : Event Object
  7531. * Description : 상세처방조회 마우스 우측메뉴 클릭 이벤트
  7532. ****************************************************************************************/
  7533. function pm_SubMenu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo){
  7534. lf_Onmenu(e.id);
  7535. }
  7536. /****************************************************************************************
  7537. * Components :
  7538. * Components ID : btn_Volume
  7539. * Event : onclick
  7540. * Argument : 01.obj : Object Event has occurred
  7541. * : 02.e : Event Object
  7542. * Description : Volume입력
  7543. ****************************************************************************************/
  7544. function grp4_btn_Volume_onclick(obj:Button, e:ClickEventInfo)
  7545. {
  7546. var objArg = new Object();
  7547. objArg.urin_bcno = "";
  7548. objArg.urin_urinextrtm = "";
  7549. objArg.urin_urinpopwndyn = "";
  7550. frmf_modal("SPLLC91400","SPLLC91400",objArg);
  7551. }
  7552. /****************************************************************************************
  7553. * Components :
  7554. * Components ID : SSLLC80100
  7555. * Event : onload
  7556. * Argument : 01.obj : Object Event has occurred
  7557. * : 02.e : Event Object
  7558. * Description :
  7559. ****************************************************************************************/
  7560. function SSLLC80100_onload(obj:Form, e:LoadEventInfo)
  7561. {
  7562. grdf_setRowTypeIcon(grp4.grd_TestInfoCnts, 0);
  7563. parent.parent.ds_grd_BcollInfo.clearData();
  7564. ds_grd_TestInfoCnts.clearData();
  7565. //grdf_initGrid(grp4.grd_TestInfoCnts);
  7566. //마우스 우측 메뉴 항목 세팅
  7567. frmf_createPopupMenu("pm_SubMenu", "pm_SubMenu_onmenuclick");
  7568. //프로즌바코드 재출력 매수, 미수납처방 채혈여부를 조회하기 위하여 병리과 병원환경설정자료조회
  7569. dsf_createDsRow("ds_temp2_search"
  7570. , [{col: "instcd", val: sysf_getUserInfo("dutplceinstcd")}]);
  7571. // 서브밋호출
  7572. var oParam = {};
  7573. oParam.id = "TRLPZ00101";
  7574. oParam.service = "plgycomnusemngtapp.BaseInfoCode";
  7575. oParam.method = "reqGetHospitalEnvironmentSetInfo";
  7576. oParam.inds = "refData=ds_temp2_search";
  7577. oParam.outds = "ds_hospenvinfo=hospenvinfo";
  7578. oParam.async = false;
  7579. oParam.callback = "cbf_SSLLC80100";
  7580. tranf_submit(oParam);
  7581. lzzfMakeAutoBrcdPrntObj("AutoLabel"); //auto label
  7582. dsf_createDsRow("ds_send"
  7583. , [{col: "scrnid", val: parent.parent.frmf_getScreenID()}]);
  7584. var oParam = {};
  7585. oParam.id = "TRLLC90101";
  7586. oParam.service = "diagtestapplib.LisCommon";
  7587. oParam.method = "reqGetSetUpInfo";
  7588. oParam.inds = "scrnid=ds_send";
  7589. oParam.outds = "ds_barcdprntsetup=getSetUpInfo";
  7590. oParam.async = false;
  7591. oParam.callback = "cbf_SSLLC80100";
  7592. tranf_submit(oParam);
  7593. //trace(ds_barcdprntsetup.saveXML());
  7594. var scrid = this.parent.parent.frmf_getScreenID(); //components[frmf_getScreenID()].getOwnerFrame().form.name;
  7595. var pParamObj = new Object();
  7596. pParamObj.pathYN = "Y";
  7597. pParamObj.nullColumnYN = "Y";
  7598. var sXML = ds_barcdprntsetup.getColumn(0,"prntsetupinfo");
  7599. if(scrid == "SMLLC00300" || scrid == "SMLLC00200" ) {
  7600. lf_convertXmlToDs(ds_barcdprntsetup.getColumn(0,"prntsetupinfo"),pParamObj);
  7601. }else {
  7602. dsf_createDs("ds_data_setupinfo_comm01");
  7603. dsf_createDs("ds_data_setupinfo_comm02");
  7604. dsf_createDs("ds_data_setupinfo_comm03");
  7605. dsf_createDs("ds_data_setupinfo_blank");
  7606. dsf_createDs("ds_data_setupinfo_genr");
  7607. dsf_createDs("ds_data_setupinfo_genr_comm01");
  7608. dsf_createDs("ds_data_setupinfo_genr_comm02");
  7609. dsf_createDs("ds_data_setupinfo_genr_comm03");
  7610. dsf_createDs("ds_data_setupinfo_genr_blank");
  7611. dsf_createDs("ds_data_setupinfo_auto");
  7612. dsf_createDs("ds_data_setupinfo_auto_comm01");
  7613. dsf_createDs("ds_data_setupinfo_auto_comm02");
  7614. dsf_createDs("ds_data_setupinfo_auto_comm03");
  7615. dsf_createDs("ds_data_setupinfo_auto_blank");
  7616. lf_convertXmlToDs3(ds_barcdprntsetup.getColumn(0,"prntsetupinfo"),pParamObj);
  7617. ds_data_comm01.copyData(ds_data_setupinfo_comm01);
  7618. ds_data_comm02.copyData(ds_data_setupinfo_comm02);
  7619. ds_data_comm03.copyData(ds_data_setupinfo_comm03);
  7620. ds_data_blank.copyData(ds_data_setupinfo_blank);
  7621. }
  7622. //lf_convertXmlToDs3(ds_barcdprntsetup.getColumn(0,"prntsetupinfo"),pParamObj,"/setupinfo/auto");
  7623. //lf_convertXmlToDs3(ds_barcdprntsetup.getColumn(0,"prntsetupinfo"),pParamObj,"/setupinfo/genr");
  7624. //ds_data_setupinfo_comm01
  7625. lzzfMakeBrcdPrntObjHanDo("CommAX"); //일반프린터
  7626. var scrid = this.parent.parent.frmf_getScreenID(); //components[frmf_getScreenID()].getOwnerFrame().form.name;
  7627. gv_scrnid = this.frmf_getMainFormScreenID();
  7628. if(scrid == "SMLLC00300" || scrid == "SMLLC00200" ) {
  7629. var pid = appf_getPatientInfo("pid");
  7630. if(scrid == "SMLLC00300") { //환자별
  7631. if(!utlf_isNull(ds_sflag.getColumn(0, "regnopatnm")))
  7632. {
  7633. ds_johoi.setColumn(0,"regnopatnm",ds_sflag.getColumn(0, "regnopatnm"));
  7634. ds_johoi.setColumn(0,"testdeptcd",ds_sflag.getColumn(0, "testdeptcd"));
  7635. }
  7636. else if(!utlf_isNull(pid)) { //파라미터가 없을 때 상단정보
  7637. ds_johoi.setColumn(0,"regnopatnm", pid);
  7638. }
  7639. if(!utlf_isNull(ds_johoi.getColumn(0,"regnopatnm"))) {
  7640. lf_getBCollJoHoi("Q");
  7641. }
  7642. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpkindcd"),"size",0); //구분
  7643. }
  7644. else if(scrid == "SMLLC00200" ) { //병동채혈
  7645. grp4.cbo_prcpkindcd.visible = true; //처방구분별 조회 20100607 승현 추가
  7646. grp4.caption17.visible = true;
  7647. if(!utlf_isNull(pid))
  7648. {
  7649. ds_johoi.setColumn(0,"regnopatnm",pid);
  7650. ds_johoi.setColumn(0,"wardcd2",appf_getPatientInfoDetail("wardcd"));
  7651. ds_johoi.setColumn(0,"roomcd2",appf_getPatientInfoDetail("roomcd"));
  7652. parent.parent.lf_WardSelect("R");
  7653. ds_johoi.setColumn(0,"pat",pid);
  7654. ds_johoi.setColumn(0,"regnopatnm",pid);
  7655. parent.parent.lf_getInBCollJoHoi("Q");
  7656. }else{
  7657. lf_SetInit();
  7658. }
  7659. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpkindcd"),"size",35); //구분
  7660. }
  7661. } else if(scrid == "SMLLC00100") { //외래
  7662. grp4.btn_rsltinput.visible = true;
  7663. //바코드 설정을 일반, auto label로 구별해 놓는다.
  7664. // ds_barcdprntsetup_genr.copyData(ds_data_genr);
  7665. // ds_barcdprntsetup_auto.copyData(ds_data_auto);
  7666. var sXML0 = "";
  7667. var sXML1 = "";
  7668. var sXML2 = "";
  7669. var sXMLgenr = "";
  7670. var sXMLauto = "";
  7671. sXML0 = lf_getPrintSetupInfoXML();
  7672. sXML0 = sXML0.replace("</setupinfo>","");
  7673. if (ds_data_setupinfo_genr.rowcount > 0) {
  7674. sXML1 = lf_getPrintSetupInfoXMLgenr();
  7675. sXML1 = sXML1.replace("<setupinfo>","");
  7676. sXML1 = sXML1.replace("</setupinfo>","");
  7677. ds_data_setupinfo_genr.addColumn("prntsetupinfo", "string");
  7678. }
  7679. if (ds_data_setupinfo_auto.rowcount > 0) {
  7680. sXML2 = lf_getPrintSetupInfoXMLauto();
  7681. sXML2 = sXML2.replace("<setupinfo>","");
  7682. sXML2 = sXML2.replace("</setupinfo>","");
  7683. ds_data_setupinfo_auto.addColumn("prntsetupinfo", "string");
  7684. }
  7685. sXMLgenr = "<setupinfo>"+sXML1+"<genr>"+sXML1+"</genr>"+"<auto>"+sXML2+"</auto></setupinfo>";
  7686. sXMLauto = "<setupinfo>"+sXML2+"<genr>"+sXML1+"</genr>"+"<auto>"+sXML2+"</auto></setupinfo>";
  7687. ds_data_setupinfo_genr.setColumn(0,"prntsetupinfo",sXMLgenr);
  7688. ds_data_setupinfo_auto.setColumn(0,"prntsetupinfo",sXMLauto);
  7689. //trace("sXML0 :"+sXML0);
  7690. // trace("sXML1 :"+sXML1);
  7691. // trace("sXML2 :"+sXML2);
  7692. //trace("sXMLgenr :"+sXMLgenr);
  7693. //trace("sXMLauto :"+sXMLauto);
  7694. lf_PrintSetChange();
  7695. //chk_barcdyn.attribute("visibility") = "visible"; //바코드기준 체크박스 보이기
  7696. //chk_barcdyn.value = 1; //기본적으로 체크
  7697. var pid = appf_getPatientInfo("pid");
  7698. if(!utlf_isNull(pid)) {
  7699. ds_johoi.setColumn(0,"regnopatnm", pid);
  7700. }
  7701. if(!utlf_isNull(ds_johoi.getColumn(0,"regnopatnm"))) {
  7702. var oOpener = this.getOwnerFrame().form;
  7703. // oOpener.lf_GetOutBCollJoHoi();
  7704. }
  7705. }
  7706. }
  7707. /****************************************************************************************
  7708. * Components :
  7709. * Components ID : btn_keepPrnt
  7710. * Event : onclick
  7711. * Argument : 01.obj : Object Event has occurred
  7712. * : 02.e : Event Object
  7713. * Description : Cross-matching출력
  7714. ****************************************************************************************/
  7715. function grp4_btn_keepPrnt_onclick(obj:Button, e:ClickEventInfo)
  7716. {
  7717. //lf_keepBcnoPrint();
  7718. fKeepBcnoPrint();
  7719. //lf_crossMatcingBcnoPrint();
  7720. }
  7721. /****************************************************************************************
  7722. * Components :
  7723. * Components ID : btn_addSpcfCnts
  7724. * Event : onclick
  7725. * Argument : 01.obj : Object Event has occurred
  7726. * : 02.e : Event Object
  7727. * Description : 환자특이사항추가
  7728. ****************************************************************************************/
  7729. function grp4_btn_addSpcfCnts_onclick(obj:Button, e:ClickEventInfo)
  7730. {
  7731. var objArg = new Object();
  7732. objArg.arg_ds_hidden = ds_grd_TestInfoCnts;
  7733. frmf_modal("SPLLC90200","SPLLC90200",objArg,"","","","","","","","","","M");
  7734. }
  7735. /****************************************************************************************
  7736. * Components :
  7737. * Components ID : grd_TestInfoCnts
  7738. * Event : onmousemove
  7739. * Argument : 01.obj : Object Event has occurred
  7740. * : 02.e : Event Object
  7741. * Description : 검사항목앞 툴팁
  7742. ****************************************************************************************/
  7743. function grp4_grd_TestInfoCnts_onmousemove(obj:Grid, e:GridMouseEventInfo)
  7744. {
  7745. if (e.row < 0) return;
  7746. if (e.col < 0) return;
  7747. //if(e.col == grp4.grd_TestInfoCnts.getBindCellIndex("Body","nobcollcmt")){
  7748. if(e.cell == "3"){
  7749. /*var grouptestnm = ds_grd_TestInfoCnts.getColumn(e.row,"grouptestnm");
  7750. if(grouptestnm !=""){
  7751. obj.tooltiptext = "[G] " + grouptestnm;
  7752. }*/
  7753. } else if(grp4.grd_TestInfoCnts.getCellProperty("Body",e.col,"text") == "bind:prcpimg"){//prcpimg
  7754. //} else if(e.col == grp4.grd_TestInfoCnts.getBindCellIndex("Body","prcpimg")){
  7755. var prcpdelivefact = ds_grd_TestInfoCnts.getColumn(e.row,"prcpdelivefact");
  7756. if(prcpdelivefact !="-" && prcpdelivefact !=""){
  7757. obj.tooltiptext = "【의뢰의사 Remark】" + prcpdelivefact;
  7758. }
  7759. } else if(grp4.grd_TestInfoCnts.getCellProperty("Body",e.col,"text") == "bind:bcollcau"){//bind:bcollcau
  7760. //} else if(e.col == grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollcau")){
  7761. var sPrereptrslt = utlf_transNullToEmpty(ds_grd_TestInfoCnts.getColumn(e.row,"bcollcau"));
  7762. if(sPrereptrslt !=""){
  7763. obj.tooltiptext = sPrereptrslt;
  7764. }
  7765. } else if(grp4.grd_TestInfoCnts.getCellProperty("Body",e.col,"text") == "bind:tclsscrnm"){
  7766. //} else if(e.col == grp4.grd_TestInfoCnts.getBindCellIndex("Body","tclsscrnm")){
  7767. var sPrereptrslt = utlf_transNullToEmpty(ds_grd_TestInfoCnts.getColumn(e.row,"tclsscrnm"));
  7768. if(sPrereptrslt !=""){
  7769. obj.tooltiptext = sPrereptrslt;
  7770. }
  7771. } else{
  7772. obj.tooltiptext = "";
  7773. }
  7774. }
  7775. /****************************************************************************************
  7776. * Components :
  7777. * Components ID : grd_TestInfoCnts
  7778. * Event : onmousemove
  7779. * Argument : 01.obj : Object Event has occurred
  7780. * : 02.e : Event Object
  7781. * Description : 검사항목상세 우클릭
  7782. ****************************************************************************************/
  7783. function grp4_grd_TestInfoCnts_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  7784. {
  7785. if(e.cell>0){
  7786. ds_grd_TestInfoCnts.rowposition = e.row;
  7787. lf_GetRMouseDown(e.screenX, e.screenY, e.row, e.col);
  7788. }
  7789. }
  7790. //미채혈사유 셀 선택시
  7791. function grp4_grd_TestInfoCnts_onchar(obj:Grid, e:GridEditCharEventInfo)
  7792. {
  7793. if(e.col == grp4.grd_TestInfoCnts.getBindCellIndex("Body","nobcollcmt")){
  7794. var nFRow = ds_data_resncd.findRow("resndesc", e.posttext);
  7795. // if(nFRow == -1){
  7796. // ds_grd_TestInfoCnts.setColumn(ds_grd_TestInfoCnts.rowposition, "nobcollcd","17999");
  7797. // ds_grd_TestInfoCnts.setColumn(ds_grd_TestInfoCnts.rowposition, "nobcollcmt",e.posttext);
  7798. // }else{
  7799. // ds_grd_TestInfoCnts.setColumn(ds_grd_TestInfoCnts.rowposition, "nobcollcd",ds_data_resncd.getColumn(nFRow, "resncd"));
  7800. // ds_grd_TestInfoCnts.setColumn(ds_grd_TestInfoCnts.rowposition, "nobcollcmt",ds_data_resncd.getColumn(nFRow, "resndesc"));
  7801. // }
  7802. }
  7803. }
  7804. //미채혈사유 돋보기 클릭시
  7805. function grp4_grd_TestInfoCnts_onexpanddown(obj:Grid, e:GridMouseEventInfo)
  7806. {
  7807. // if(e.col == grp4.grd_TestInfoCnts.getBindCellIndex("Body","nobcollcmt")){
  7808. // var arrCellRect = obj.getCellRect(e.row,e.cell);
  7809. // var nDivX = system.clientToScreenX(obj,arrCellRect.left);
  7810. // var nDivY = system.clientToScreenY(obj,arrCellRect.bottom);
  7811. //
  7812. // grp4.PopupDiv00.closePopup();
  7813. // ds_grd_TestInfoCnts.rowposition = e.row;
  7814. //
  7815. // var nRow = 24;
  7816. // var nHeight = 24*grp4.PopupDiv00.grd_noBcollCmtList.rowcount;
  7817. //
  7818. // //grp4.PopupDiv00.grd_noBcollCmtList.autosizingtype = "col";
  7819. //
  7820. // //cell maxFullSzie
  7821. // var Grid0Size = grp4.PopupDiv00.grd_noBcollCmtList.getRealColFullSize("body");
  7822. //
  7823. //
  7824. // //사이즈 적용 +2는 라인때문에 합한것임
  7825. // //추후 그리드 class를 보고 수정할 소지가 있으면 해당 내역만 수정하면됨
  7826. // grp4.PopupDiv00.position.width = Grid0Size+2;
  7827. // grp4.PopupDiv00.position.height = nHeight+2;
  7828. // grp4.PopupDiv00.grd_noBcollCmtList.position.width = Grid0Size;
  7829. // grp4.PopupDiv00.grd_noBcollCmtList.position.height = nHeight;
  7830. //
  7831. //
  7832. // grp4.PopupDiv00.trackPopup(nDivX,nDivY);
  7833. // }
  7834. lf_getReqFrmInfo();
  7835. }
  7836. function grp4_PopupDiv00_grd_noBcollCmtList_oncellclick(obj:Grid, e:GridClickEventInfo)
  7837. {
  7838. //trace(ds_data_resncd.getColumn(e.row, "resncd"));
  7839. //trace(ds_data_resncd.getColumn(e.row, "resndesc"));
  7840. ds_grd_TestInfoCnts.setColumn(ds_grd_TestInfoCnts.rowposition, "nobcollcd", ds_data_resncd.getColumn(e.row, "resncd"));
  7841. ds_grd_TestInfoCnts.setColumn(ds_grd_TestInfoCnts.rowposition, "nobcollcmt", ds_data_resncd.getColumn(e.row, "resndesc"));
  7842. grp4.PopupDiv00.closePopup();
  7843. }
  7844. /****************************************************************************************
  7845. * Components :
  7846. * Components ID : cbo_prcpkindcd
  7847. * Event : onitemchanged
  7848. * Argument : 01.obj : Object Event has occurred
  7849. * : 02.e : Event Object
  7850. * Description : 검사구분 콤보박스 변경
  7851. ****************************************************************************************/
  7852. function grp4_cbo_prcpkindcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  7853. {
  7854. //var tsectcd = grp2.Div01.cmb_sect.value;
  7855. var sPrcpkindcd = ds_johoi.getColumn(0,"prcpkindcd");
  7856. if(sPrcpkindcd == "-"){
  7857. ds_grd_TestInfoCnts.filter("");
  7858. }
  7859. else{
  7860. var sFilter = "prcpkindcd=='" + sPrcpkindcd + "'";
  7861. ds_grd_TestInfoCnts.filter(sFilter);
  7862. }
  7863. }
  7864. function lf_SetGridCols() {
  7865. var flag = ""; //채혈구분값 : 같은 화면이어도 이 값에 의해 환경설정값이 각각 다르게 get/set된다.
  7866. switch(gv_scrnid) {
  7867. case "SMLLC00700" : //외래채혈
  7868. flag = grp3.grp2.cmb_bcollflag.value //채혈구분
  7869. gColSizeFlag = "SMLLC0070" + flag; //DB자리수가 초과해서 화면ID 1자리 컷트
  7870. break;
  7871. case "SMLLC00800" : //병동채혈
  7872. flag = grp3.grp2.cmb_bcollflag.value //바코드구분
  7873. gColSizeFlag = "SMLLC0080" + flag;
  7874. //LIS 부서 아니면 일부 버튼기능 히든 시킴 2015.02.05 김남규
  7875. if( !(sPrestDeptCd == "LA") ) {
  7876. grp5.btn_nobcollcmt.visible = false; //미채혈사유저장
  7877. grp5.grp6.chk_canYN.visible = false; //취소사유등록여부
  7878. grp5.grp6.btn_addFrozen.visible = false; //Frozen추가
  7879. grp5.grp6.chk_canYN.value = "";
  7880. }
  7881. break;
  7882. case "SMLLC00900" : //환자채혈
  7883. flag = grp3.grp2.cmb_bcollflag.value //채혈구분
  7884. gColSizeFlag = "SMLLC0090" + flag;
  7885. //LIS 부서 아니면 일부 버튼기능 히든 시킴 2015.02.05 김남규
  7886. if( !(sPrestDeptCd == "LA") ) {
  7887. grp5.btn_nobcollcmt.visible = false; //미채혈사유저장
  7888. grp5.grp6.chk_canYN.visible = false; //취소사유등록여부
  7889. grp5.grp6.chk_canYN.value = "1";
  7890. }
  7891. break;
  7892. default :
  7893. break;
  7894. }
  7895. }
  7896. //진단 + 병리 합쳐지면 데이타 포맷이 일부 틀어지는거 맞춰줌
  7897. function ds_grd_TestInfoCnts_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  7898. {
  7899. if(e.columnid == "choi")
  7900. {
  7901. obj.setColumn(e.row,e.columnid,(e.newvalue=="Y"||e.newvalue==1)?"true":"false");
  7902. }
  7903. //코멘트
  7904. if( obj.getColumn(e.row, "cmt") == "-" ) {
  7905. obj.setColumn(e.row, "cmt", "");
  7906. }
  7907. //취소일자
  7908. if( obj.getColumn(e.row, "canceldt") == "-" ) {
  7909. obj.setColumn(e.row, "canceldt", "");
  7910. }
  7911. //취소자
  7912. if( obj.getColumn(e.row, "cancelid") == "-" ) {
  7913. obj.setColumn(e.row, "cancelid", "");
  7914. }
  7915. //취소사유
  7916. if( obj.getColumn(e.row, "canceldesc") == "-" ) {
  7917. obj.setColumn(e.row, "canceldesc", "");
  7918. }
  7919. }
  7920. /****************************************************************************************
  7921. * Components :
  7922. * Components ID : cmb_consent
  7923. * Event : onitemchanged
  7924. * Argument : 01.obj : Object Event has occurred
  7925. * : 02.e : Event Object
  7926. * Description : 동의서출력
  7927. ****************************************************************************************/
  7928. function grp3_switch3_case1_cmb_consent_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  7929. {
  7930. if_cmbconsentchange();
  7931. }
  7932. function if_cmbconsentchange(){
  7933. if(ds_consent.getColumn(grp4.cmb_consent.index, "scanyn") == "Y"){
  7934. grp4.btn_prnt.enable = true;
  7935. } else {
  7936. grp4.btn_prnt.enable = false;
  7937. }
  7938. grp4.cmb_consent.text = utlf_transNullToEmpty(ds_consent.getColumn(grp4.cmb_consent.index,"scrn"));
  7939. }
  7940. function grp4_btn_prnt_onclick(obj:Button, e:ClickEventInfo)
  7941. {
  7942. if(utlf_transNullToEmpty(ds_consent.getColumn(grp4.cmb_consent.index, "scanyn")) == "Y" &&
  7943. utlf_transNullToEmpty(ds_consent.getColumn(grp4.cmb_consent.index, "treatno")) != "")
  7944. {
  7945. var arrArg = new Object();
  7946. ds_iemr.clearData();
  7947. ds_iemr.addRow();
  7948. ds_iemr.setColumn(0, "docucd", utlf_transNullToEmpty(ds_consent.getColumn(grp4.cmb_consent.index, "formcd")));
  7949. ds_iemr.setColumn(0, "treatno", utlf_transNullToEmpty(ds_consent.getColumn(grp4.cmb_consent.index, "treatno")));
  7950. arrArg.iemr = ds_iemr;
  7951. arrArg.viewer_flag = "";
  7952. frmf_modal("SPMMR06400","SPMMR06400", arrArg, "", "", "", "", "", "", "", "", "", "M");
  7953. }
  7954. }
  7955. //그리드 초기화
  7956. function grp4_btn_gridInit_onclick(obj:Button, e:ClickEventInfo)
  7957. {
  7958. //환경설정 값 제거해준다 2014.12.26
  7959. ds_uuee.clearData();
  7960. var strFormats = grp4.grd_TestInfoCnts.formats;
  7961. grp4.grd_TestInfoCnts.formats = strFormats;
  7962. grp4.grd_TestInfoCnts.redraw();
  7963. //상세목록 그리드고정
  7964. for(i=0;i<10;i++){
  7965. grp4.grd_TestInfoCnts.setFormatColProperty(i,"band","left");
  7966. }
  7967. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollbarcdprntcnt"),"size",0); // 바코드갯수
  7968. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","reprntcnt"),"size",0); // 재출력범위
  7969. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","barcdprntdt"),"size",0); // 바코드출력일시
  7970. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tclscd"),"size",0); // 검사코드
  7971. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcollbarcdprntcnt"),"size",0); // 바코드갯수
  7972. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","reprntcnt"),"size",0); // 재출력범위
  7973. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","barcdprntdt"),"size",0); // 바코드출력일시
  7974. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","tclscd"),"size",0); // 검사코드
  7975. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rgstdt"),"size",0); // 처방등록일
  7976. //미채혈
  7977. //trace("===============> " + grp3.grp2.cmb_bcollflag.value);
  7978. if(grp3.grp2.cmb_bcollflag.value == "1"){
  7979. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcno"),"size",0); // 바코드번호
  7980. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcno")+1,"size",0); // 바코드번호
  7981. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",0); // 취소사유
  7982. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt01"),"size",0); // 결과
  7983. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt02"),"size",0); // 확정
  7984. //채혈
  7985. }else{
  7986. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcno"),"size",84); // 바코드번호
  7987. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","bcno")+1,"size",20); // 바코드번호
  7988. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","canceldesc"),"size",100); // 취소사유
  7989. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt01"),"size",20); // 결과
  7990. grp4.grd_TestInfoCnts.setFormatColProperty(grp4.grd_TestInfoCnts.getBindCellIndex("Body","rslt02"),"size",20); // 확정
  7991. }
  7992. }
  7993. function SSLLC80100_oninit(obj:Form, e:InitEventInfo)
  7994. {
  7995. //폼 초기화 함수
  7996. frmf_initForm(obj);
  7997. }
  7998. /****************************************************************************************
  7999. * Argument : N/A
  8000. * Description : 저장.
  8001. ****************************************************************************************/
  8002. function lf_getPrintSetupInfoXML()
  8003. {
  8004. var sReplace, sValue;
  8005. var sXML = "<setupinfo></setupinfo>";
  8006. var nRow = ds_data_setupinfo.rowposition;
  8007. var arrColID = ["prntkind", "commkind", "setupval02", "comm01", "comm02", "comm03", "blank", "rexgbn", "pcl"];
  8008. var arrComm02 = ["comm", "databit", "stopbit", "baudrate", "parity", "setupval02"];
  8009. var arrComm03 = ["setupval", "daegiip", "eqmtcd", "autoyn"]; //
  8010. var arrBlank = ["left", "top", "b472size"];
  8011. var arrPcllist = ["barnm", "xpos", "ypos", "prtnm"];
  8012. for(var i=0; i<arrColID.length; i++)
  8013. {
  8014. if(arrColID[i]=="prntkind"||arrColID[i]=="commkind"||arrColID[i]=="rexgbn")
  8015. {
  8016. sValue = ds_data_setupinfo.getColumn(0, arrColID[i]);
  8017. if(utlf_isNull(sValue))
  8018. {
  8019. sReplace = "<"+arrColID[i]+"/></setupinfo>";
  8020. }
  8021. else
  8022. {
  8023. sReplace = "<"+arrColID[i]+">"+sValue+"</"+arrColID[i]+"></setupinfo>";
  8024. }
  8025. }
  8026. else if(arrColID[i]=="comm01")
  8027. {
  8028. sValue = ds_data_setupinfo_comm01.getColumn(nRow, "setupval");
  8029. if(utlf_isNull(sValue))
  8030. {
  8031. sReplace = "<"+arrColID[i]+"/></setupinfo>";
  8032. }
  8033. else
  8034. {
  8035. sReplace = "<"+arrColID[i]+"><setupval>"+sValue+"</setupval></"+arrColID[i]+"></setupinfo>";
  8036. }
  8037. }
  8038. else if(arrColID[i]=="comm02")
  8039. {
  8040. sReplace = "";
  8041. for(var j=0; j < arrComm02.length; j++)
  8042. {
  8043. sValue = ds_data_setupinfo_comm02.getColumn(nRow, arrComm02[j]);
  8044. if(utlf_isNull(sValue))
  8045. {
  8046. sReplace += "<"+arrComm02[j]+"/>";
  8047. }
  8048. else
  8049. {
  8050. sReplace += "<"+arrComm02[j]+">"+sValue+"</"+arrComm02[j]+">";
  8051. }
  8052. }
  8053. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8054. }
  8055. else if(arrColID[i]=="comm03")
  8056. {
  8057. sReplace = "";
  8058. //sValue = ds_hidden_setupinfo_comm03.getColumn(nRow, "setupval");
  8059. for(var j=0; j < arrComm03.length; j++)
  8060. {
  8061. sValue = ds_data_setupinfo_comm03.getColumn(nRow, arrComm03[j]);
  8062. if(utlf_isNull(sValue))
  8063. {
  8064. //sReplace = "<"+arrComm03[j]+"/></setupinfo>";
  8065. sReplace += "<"+arrComm03[j]+"/>";
  8066. }
  8067. else
  8068. {
  8069. sReplace += "<"+arrComm03[j]+">"+sValue+"</"+arrComm03[j]+">";
  8070. //sReplace = "<"+arrComm03[j]+"><setupval>"+sValue+"</setupval></"+arrComm03[j]+"></setupinfo>";
  8071. }
  8072. }
  8073. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8074. }
  8075. else if(arrColID[i]=="blank")
  8076. {
  8077. sReplace = "";
  8078. for(var j=0; j<arrBlank.length; j++){
  8079. sValue = ds_data_setupinfo_blank.getColumn(nRow, arrBlank[j]);
  8080. if(utlf_isNull(sValue)){
  8081. sReplace += "<"+arrBlank[j]+"/>";
  8082. }else{
  8083. sReplace += "<"+arrBlank[j]+">"+sValue+"</"+arrBlank[j]+">";
  8084. }
  8085. }
  8086. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8087. }
  8088. sXML = sXML.replace("</setupinfo>", sReplace);
  8089. //trace(sXML);
  8090. }
  8091. return sXML;
  8092. }
  8093. /****************************************************************************************
  8094. * Argument : N/A
  8095. * Description : 저장.
  8096. ****************************************************************************************/
  8097. function lf_getPrintSetupInfoXMLgenr()
  8098. {
  8099. var sReplace, sValue;
  8100. var sXML = "<setupinfo></setupinfo>";
  8101. var nRow = ds_data_setupinfo_genr.rowposition;
  8102. var arrColID = ["prntkind", "commkind", "setupval02", "comm01", "comm02", "comm03", "blank", "rexgbn", "pcl"];
  8103. var arrComm02 = ["comm", "databit", "stopbit", "baudrate", "parity", "setupval02"];
  8104. var arrComm03 = ["setupval", "daegiip", "eqmtcd", "autoyn"]; //
  8105. var arrBlank = ["left", "top", "b472size"];
  8106. var arrPcllist = ["barnm", "xpos", "ypos", "prtnm"];
  8107. for(var i=0; i<arrColID.length; i++)
  8108. {
  8109. if(arrColID[i]=="prntkind"||arrColID[i]=="commkind"||arrColID[i]=="rexgbn")
  8110. {
  8111. sValue = ds_data_setupinfo_genr.getColumn(0, arrColID[i]);
  8112. if(utlf_isNull(sValue))
  8113. {
  8114. sReplace = "<"+arrColID[i]+"/></setupinfo>";
  8115. }
  8116. else
  8117. {
  8118. sReplace = "<"+arrColID[i]+">"+sValue+"</"+arrColID[i]+"></setupinfo>";
  8119. }
  8120. }
  8121. else if(arrColID[i]=="comm01")
  8122. {
  8123. sValue = ds_data_setupinfo_genr_comm01.getColumn(nRow, "setupval");
  8124. if(utlf_isNull(sValue))
  8125. {
  8126. sReplace = "<"+arrColID[i]+"/></setupinfo>";
  8127. }
  8128. else
  8129. {
  8130. sReplace = "<"+arrColID[i]+"><setupval>"+sValue+"</setupval></"+arrColID[i]+"></setupinfo>";
  8131. }
  8132. }
  8133. else if(arrColID[i]=="comm02")
  8134. {
  8135. sReplace = "";
  8136. for(var j=0; j < arrComm02.length; j++)
  8137. {
  8138. sValue = ds_data_setupinfo_genr_comm02.getColumn(nRow, arrComm02[j]);
  8139. if(utlf_isNull(sValue))
  8140. {
  8141. sReplace += "<"+arrComm02[j]+"/>";
  8142. }
  8143. else
  8144. {
  8145. sReplace += "<"+arrComm02[j]+">"+sValue+"</"+arrComm02[j]+">";
  8146. }
  8147. }
  8148. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8149. }
  8150. else if(arrColID[i]=="comm03")
  8151. {
  8152. sReplace = "";
  8153. //sValue = ds_hidden_setupinfo_comm03.getColumn(nRow, "setupval");
  8154. for(var j=0; j < arrComm03.length; j++)
  8155. {
  8156. sValue = ds_data_setupinfo_genr_comm03.getColumn(nRow, arrComm03[j]);
  8157. if(utlf_isNull(sValue))
  8158. {
  8159. //sReplace = "<"+arrComm03[j]+"/></setupinfo>";
  8160. sReplace += "<"+arrComm03[j]+"/>";
  8161. }
  8162. else
  8163. {
  8164. sReplace += "<"+arrComm03[j]+">"+sValue+"</"+arrComm03[j]+">";
  8165. //sReplace = "<"+arrComm03[j]+"><setupval>"+sValue+"</setupval></"+arrComm03[j]+"></setupinfo>";
  8166. }
  8167. }
  8168. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8169. }
  8170. else if(arrColID[i]=="blank")
  8171. {
  8172. sReplace = "";
  8173. for(var j=0; j<arrBlank.length; j++){
  8174. sValue = ds_data_setupinfo_genr_blank.getColumn(nRow, arrBlank[j]);
  8175. if(utlf_isNull(sValue)){
  8176. sReplace += "<"+arrBlank[j]+"/>";
  8177. }else{
  8178. sReplace += "<"+arrBlank[j]+">"+sValue+"</"+arrBlank[j]+">";
  8179. }
  8180. }
  8181. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8182. }
  8183. sXML = sXML.replace("</setupinfo>", sReplace);
  8184. //trace(sXML);
  8185. }
  8186. return sXML;
  8187. }
  8188. function lf_getPrintSetupInfoXMLauto()
  8189. {
  8190. var sReplace, sValue;
  8191. var sXML = "<setupinfo></setupinfo>";
  8192. var nRow = ds_data_setupinfo_auto.rowposition;
  8193. var arrColID = ["prntkind", "commkind", "setupval", "comm01", "comm02", "comm03", "blank", "rexgbn", "pcl"];
  8194. var arrComm02 = ["comm", "databit", "stopbit", "baudrate", "parity", "setupval"];
  8195. var arrComm03 = ["setupval", "daegiip", "eqmtcd", "autoyn"]; //
  8196. var arrBlank = ["left", "top", "b472size"];
  8197. var arrPcllist = ["barnm", "xpos", "ypos", "prtnm"];
  8198. for(var i=0; i<arrColID.length; i++)
  8199. {
  8200. if(arrColID[i]=="prntkind"||arrColID[i]=="commkind"||arrColID[i]=="rexgbn")
  8201. {
  8202. sValue = ds_data_setupinfo_auto.getColumn(0, arrColID[i]);
  8203. if(utlf_isNull(sValue))
  8204. {
  8205. sReplace = "<"+arrColID[i]+"/></setupinfo>";
  8206. }
  8207. else
  8208. {
  8209. sReplace = "<"+arrColID[i]+">"+sValue+"</"+arrColID[i]+"></setupinfo>";
  8210. }
  8211. }
  8212. else if(arrColID[i]=="comm01")
  8213. {
  8214. //dsf_makeValue(ds_data_setupinfo_auto_comm01,"setupval","string",""); //2018.02.07
  8215. ds_data_setupinfo_auto_comm01.addColumn("setupval","string"); //2018.02.07
  8216. sValue = ds_data_setupinfo_auto_comm01.getColumn(nRow, "setupval");
  8217. if(utlf_isNull(sValue))
  8218. {
  8219. sReplace = "<"+arrColID[i]+"/></setupinfo>";
  8220. }
  8221. else
  8222. {
  8223. sReplace = "<"+arrColID[i]+"><setupval>"+sValue+"</setupval></"+arrColID[i]+"></setupinfo>";
  8224. }
  8225. }
  8226. else if(arrColID[i]=="comm02")
  8227. {
  8228. sReplace = "";
  8229. for(var j=0; j < arrComm02.length; j++)
  8230. {
  8231. sValue = ds_data_setupinfo_auto_comm02.getColumn(nRow, arrComm02[j]);
  8232. if(utlf_isNull(sValue))
  8233. {
  8234. sReplace += "<"+arrComm02[j]+"/>";
  8235. }
  8236. else
  8237. {
  8238. sReplace += "<"+arrComm02[j]+">"+sValue+"</"+arrComm02[j]+">";
  8239. }
  8240. }
  8241. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8242. }
  8243. else if(arrColID[i]=="comm03")
  8244. {
  8245. sReplace = "";
  8246. //sValue = ds_hidden_setupinfo_comm03.getColumn(nRow, "setupval");
  8247. for(var j=0; j < arrComm03.length; j++)
  8248. {
  8249. sValue = ds_data_setupinfo_auto_comm03.getColumn(nRow, arrComm03[j]);
  8250. if(utlf_isNull(sValue))
  8251. {
  8252. //sReplace = "<"+arrComm03[j]+"/></setupinfo>";
  8253. sReplace += "<"+arrComm03[j]+"/>";
  8254. }
  8255. else
  8256. {
  8257. sReplace += "<"+arrComm03[j]+">"+sValue+"</"+arrComm03[j]+">";
  8258. //sReplace = "<"+arrComm03[j]+"><setupval>"+sValue+"</setupval></"+arrComm03[j]+"></setupinfo>";
  8259. }
  8260. }
  8261. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8262. }
  8263. else if(arrColID[i]=="blank")
  8264. {
  8265. sReplace = "";
  8266. for(var j=0; j<arrBlank.length; j++){
  8267. sValue = ds_data_setupinfo_auto_blank.getColumn(nRow, arrBlank[j]);
  8268. if(utlf_isNull(sValue)){
  8269. sReplace += "<"+arrBlank[j]+"/>";
  8270. }else{
  8271. sReplace += "<"+arrBlank[j]+">"+sValue+"</"+arrBlank[j]+">";
  8272. }
  8273. }
  8274. sReplace = "<"+arrColID[i]+">"+sReplace+"</"+arrColID[i]+"></setupinfo>";
  8275. }
  8276. sXML = sXML.replace("</setupinfo>", sReplace);
  8277. //trace(sXML);
  8278. }
  8279. return sXML;
  8280. }
  8281. // 병리과 처방명 검색
  8282. function fGetPlgyPrcpNm(psPid, psReqFrmNo, pPrcpFlag) {
  8283. var sPrcpNm = "";
  8284. var sTempPrcpNm = "";
  8285. var sCheckPrcpNm = "";
  8286. var iPrcpNo = 0;
  8287. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  8288. //var iMaxRowCnt = getNodesetCount(strNode);
  8289. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  8290. //-------------------------------------------------
  8291. for (var iNo=0; iNo < iMaxRowCnt; iNo++) {
  8292. if (ds_grd_TestInfoCnts.getColumn(iNo,"choi") == "true" || ds_grd_TestInfoCnts.getColumn(iNo,"choi") == "Y") {
  8293. if (ds_grd_TestInfoCnts.getColumn(iNo,"testlrgkind") == "P") {
  8294. if (ds_grd_TestInfoCnts.getColumn(iNo,"pid") == psPid) {
  8295. if (ds_grd_TestInfoCnts.getColumn(iNo,"reqfrmno") == psReqFrmNo) {
  8296. //---- 추가 박중규 2008.09.09 ----------------------------
  8297. //병리 채혈바코드에 표시되는 검사명 형식 변경에 따른 추가.
  8298. //(원처방만 처방명을 그대로 보이고 추가처방은 "작업구분(처방 수)"로 표시한다.)
  8299. sTempPrcpNm = ds_grd_TestInfoCnts.getColumn(iNo,"resncnts");
  8300. if(pPrcpFlag == "0"){
  8301. if(ds_grd_TestInfoCnts.getColumn(iNo,"prcpflagcd") == "0") {
  8302. sPrcpNm = ds_grd_TestInfoCnts.getColumn(iNo,"tclsscrnm");
  8303. return sPrcpNm;
  8304. } else if(fGetPlgyAddPrcpChk(psPid, psReqFrmNo, sTempPrcpNm)){ //원처방 없이 추가처방 하나만 처방 되었을 경우 처방명을 표시한다.
  8305. sPrcpNm = ds_grd_TestInfoCnts.getColumn(iNo,"tclsscrnm");
  8306. return sPrcpNm;
  8307. }
  8308. sPrcpNm = "";
  8309. //} else if(ds_grd_TestInfoCnts.getColumn(iNo,"prcpflagcd") == "1" && sCheckPrcpNm.indexOf(sTempPrcpNm) < 0 && pPrcpFlag == "1"){
  8310. } else if(ds_grd_TestInfoCnts.getColumn(iNo,"prcpflagcd") == "1" && pPrcpFlag == "1"){
  8311. //원처방 없이 추가처방 하나만 처방 되었을 경우 처방명을 표시한다.
  8312. if(fGetPlgyAddPrcpChk(psPid, psReqFrmNo, sTempPrcpNm)) {
  8313. /*
  8314. sPrcpNm = model.getValue(strNode + "[" + iNo + "]/tclsscrnm");
  8315. return sPrcpNm;
  8316. */
  8317. } else {
  8318. //병리 채혈 바코드에 표시하기 위해 추가처방들의 작업구분별 처방 갯수를 카운트 한다.
  8319. iPrcpNo = fGetPlgyPrcpCount(psPid, psReqFrmNo, sTempPrcpNm);
  8320. sPrcpNm += sTempPrcpNm.substr(0, 2) + "(" + iPrcpNo + ")" + ",";
  8321. sCheckPrcpNm += ds_grd_TestInfoCnts.getColumn(iNo,"resncnts");
  8322. }
  8323. }
  8324. //-----------------------------------------------------
  8325. //-----------------------------------------------------
  8326. //sPrcpNm += model.getValue(strNode + "[" + iNo + "]/tclsscrnm") + "/";
  8327. }
  8328. }
  8329. }
  8330. }
  8331. }
  8332. //-----------------------------------------------------------------
  8333. if (sPrcpNm != "") sPrcpNm = sPrcpNm.substr(0, (sPrcpNm.length-1)); //마지막 "," 제거
  8334. //--------------
  8335. return sPrcpNm;
  8336. }
  8337. //----------------------------------------------------
  8338. //---- 추가 박중규 2008.09.09 ----------------------------
  8339. //병리 채혈 바코드에 표시하기 위해 추가처방들의 작업구분별 처방 갯수를 카운트 한다.
  8340. function fGetPlgyPrcpCount(psPid, psReqFrmNo, pResnCnts) {
  8341. var iPrcpNo = 0;
  8342. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  8343. //var iMaxRowCnt = getNodesetCount(strNode);
  8344. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  8345. //-------------------------------------------------
  8346. for (var iNo=0; iNo < iMaxRowCnt; iNo++) {
  8347. //if (model.getValue(strNode + "[" + iNo + "]/choi") == "true") {
  8348. if (ds_grd_TestInfoCnts.getColumn(iNo,"testlrgkind") == "P") {
  8349. if (ds_grd_TestInfoCnts.getColumn(iNo,"pid") == psPid) {
  8350. if (ds_grd_TestInfoCnts.getColumn(iNo,"reqfrmno") == psReqFrmNo) {
  8351. if(ds_grd_TestInfoCnts.getColumn(iNo,"resncnts") == pResnCnts){
  8352. iPrcpNo++;
  8353. }
  8354. }
  8355. }
  8356. }
  8357. //}
  8358. }
  8359. //--------------
  8360. return iPrcpNo;
  8361. }
  8362. //----------------------------------------------------
  8363. //---- 추가 박중규 2008.09.22 ----------------------------
  8364. //해당 병리 처방이 원처방(원처방+추가처방) 인지 추가처방 하나만 발행되었는지 체크한다.
  8365. function fGetPlgyAddPrcpChk(psPid, psReqFrmNo, pResnCnts) {
  8366. var iOrgPrcpNo = 0;
  8367. var iAddPrcpNo = 0;
  8368. //var strNode = "/root/main/TestInfo/getTestInfoCnts";
  8369. //var iMaxRowCnt = getNodesetCount(strNode);
  8370. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  8371. //-------------------------------------------------
  8372. for (var iNo=1; iNo <= iMaxRowCnt; iNo++) {
  8373. if (ds_grd_TestInfoCnts.getColumn(iNo,"testlrgkind") == "P") {
  8374. if (ds_grd_TestInfoCnts.getColumn(iNo,"pid") == psPid) {
  8375. if (ds_grd_TestInfoCnts.getColumn(iNo,"reqfrmno") == psReqFrmNo) {
  8376. if(ds_grd_TestInfoCnts.getColumn(iNo,"prcpflagcd") == "0"){
  8377. iOrgPrcpNo++;
  8378. } else {
  8379. iAddPrcpNo++;
  8380. }
  8381. }
  8382. }
  8383. }
  8384. }
  8385. }
  8386. function grp4_Button00_onclick(obj:Button, e:ClickEventInfo)
  8387. {
  8388. var pRowNo = ds_grd_TestInfoCnts.rowposition;
  8389. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  8390. var sBarCdNoH = "";
  8391. var sBarCdNoD = "";
  8392. var sPrntNo = "";
  8393. var sSubPrntNo = "";
  8394. var sRePrntCnt = "";
  8395. var iStartNo = 1;
  8396. var iEndNo = 99;
  8397. var iFindColNo = -1;
  8398. var iSpcNo = 0;
  8399. var sSpcSeqNo = "";
  8400. var sSpcSeqNm = "";
  8401. var aSpcSeqNo = "";
  8402. var aSpcSeqNm = "";
  8403. var sSndMsg = "";
  8404. var sPrcpDD = "";
  8405. //var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  8406. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  8407. var iLeft = ds_data_blank.getColumn(0,"left");
  8408. var iTop = ds_data_blank.getColumn(0,"top");
  8409. var iXPos = 0;
  8410. var iYPos = 0;
  8411. var iWidth = 0;
  8412. var iEGap = 12;
  8413. var iHGap = 20;
  8414. var aFlag = new Array();
  8415. var aStr = "";
  8416. var portOpenTF = "";
  8417. iLeft = Number(iLeft) + Number(20);
  8418. iTop = Number(iTop) + Number(10);
  8419. //--------------------------------------------------------
  8420. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  8421. //trace('aaaaaaaaaaaaa '+sCommKind);
  8422. //----------------------
  8423. if (sCommKind == "01") {
  8424. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  8425. } else if(sCommKind == "02") {
  8426. var sComm = ds_data_comm02.getColumn(0,"comm");
  8427. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  8428. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  8429. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  8430. var sParity = ds_data_comm02.getColumn(0,"parity");
  8431. //----------------------
  8432. CommAX.CommPort = sComm;
  8433. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  8434. //-----------------------------------------------------
  8435. // 출력할 진검 바코드 갯수가 0보다 크면 port 오픈 안함.
  8436. if (pCount > 0) {
  8437. portOpenTF = "TRUE";
  8438. } else if (pCount == 0) {
  8439. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  8440. portOpenTF = CommAX.PortOpen("true");
  8441. }
  8442. } else if(sCommKind == "03") {
  8443. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  8444. }
  8445. //---------------------------------
  8446. // 바코드번호 Header(일련번호 제외)
  8447. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  8448. trace("sPrntKind :"+sPrntKind+'/'+portOpenTF+'/'+sCommKind+'/'+sSetUpVal+'/'+iLeft);
  8449. //--------------------------------------------------------------------------------------------------
  8450. if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") ) {
  8451. //-----------------------------------------------------
  8452. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  8453. //------------------------------------------
  8454. if(sPrntKind == "1" || sPrntKind == "11") {
  8455. //-------------------------
  8456. if ( sCommKind == "01" ) {
  8457. iEGap = 12;
  8458. iHGap = 20;
  8459. } else {
  8460. iEGap = 15;
  8461. iHGap = 20;
  8462. }
  8463. //--------------------------------------------------
  8464. // 2011-01-19 : YDC --> 처방일자에서 희망일자로 변경
  8465. //sPrcpDD = model.getValue(strNode + "[" + pRowNo + "]/prcpdd");
  8466. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcphopedd");
  8467. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  8468. sSndMsg = "";
  8469. sSndMsg += fExeBarCdSetStart(sSndMsg); // 출력시작
  8470. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  8471. //-------------------------
  8472. iXPos = Number(iLeft) + 20;
  8473. iYPos = Number(iTop) + 5;
  8474. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0") + "^FS"; // 바코드
  8475. trace('병리 1111 '+sSndMsg);
  8476. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8477. sSndMsg = "";
  8478. //--------------------
  8479. iXPos = Number(iLeft);
  8480. iYPos = Number(iTop) + 115;
  8481. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  8482. iXPos = Number(iLeft) + 130;
  8483. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpgenrflag") == "E" ) { // 응급환자일 경우 처리
  8484. if ( ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts") == "" ) {
  8485. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  8486. } else {
  8487. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "bedposcnts"); // 응급실 환자 위치
  8488. }
  8489. } else {
  8490. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom"); // 병동병실
  8491. }
  8492. iWidth = 0;
  8493. aStr = "";
  8494. aStr = sTempStr;
  8495. //trace("aStr "+aStr);
  8496. for (var iNo=0; iNo < aStr.length; iNo++) {
  8497. oneChar = aStr.charAt(iNo);
  8498. test_rtn = "";
  8499. test_he = "";
  8500. test_rtn = lpzfGetHanGul3(oneChar);
  8501. test_he = test_rtn.substring(0,1);
  8502. //----------------------
  8503. //trace('iNo'+' / '+ iNo+' / '+test_he+' / '+aStr)
  8504. if(!utlf_isNull(test_he))
  8505. {
  8506. iYPos = Number(iTop) + 115;
  8507. if (test_he == "E") {
  8508. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 병동병실
  8509. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  8510. }else{
  8511. iYPos = Number(iTop) + 110;
  8512. if(sCommKind == "01") { // 병렬출력
  8513. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  8514. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8515. }else if(sCommKind == "02") { // 직렬출력
  8516. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  8517. sSndMsg += CommAX.HanImageData();
  8518. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8519. }
  8520. }
  8521. }
  8522. }
  8523. fExeSendMsg(sSndMsg);
  8524. sSndMsg = "";
  8525. //-------------------------
  8526. iXPos = Number(iLeft) + 215;
  8527. iYPos = Number(iTop) + 115;
  8528. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  8529. iXPos = Number(iLeft) + 340
  8530. iYPos = Number(iTop) + 115;
  8531. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd"))){
  8532. sSndMsg += "^CFA99,44^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd") + "^FS"; // 감염정보
  8533. }
  8534. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8535. sSndMsg = "";
  8536. //-------------------------
  8537. iXPos = Number(iLeft);
  8538. iYPos = Number(iTop) + 145;
  8539. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "pid") + "^FS"; // 등록번호
  8540. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8541. sSndMsg = "";
  8542. //-------------------------
  8543. iXPos = Number(iLeft) + 125;
  8544. iYPos = Number(iTop) + 140;
  8545. if(sCommKind == "01") { // 병렬출력
  8546. // 110704 유민규 병리과바코드 한영 오류수정
  8547. iWidth = 0;
  8548. aStr = "";
  8549. var sPatnm = ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm");
  8550. aStr = sPatnm;
  8551. for (var iNo=0; iNo < aStr.length; iNo++) {
  8552. oneChar = aStr.charAt(iNo);
  8553. test_rtn = "";
  8554. test_he = "";
  8555. test_rtn = lpzfGetHanGul3(oneChar);
  8556. test_he = test_rtn.substring(0,1);
  8557. //----------------------
  8558. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  8559. if(!utlf_isNull(test_he))
  8560. {
  8561. if (test_he == "E") {
  8562. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 환자명
  8563. iWidth = iWidth + (Number(oneChar.length) * 12);
  8564. }else{
  8565. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  8566. iWidth = iWidth + (Number(oneChar.length) * 30);
  8567. }
  8568. }
  8569. }
  8570. } else if(sCommKind == "02") { // 직렬출력
  8571. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm"), 1, 1);
  8572. sSndMsg += CommAX.HanImageData();
  8573. }
  8574. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8575. sSndMsg = "";
  8576. //-------------------------
  8577. iXPos = Number(iLeft) + 240;
  8578. iYPos = Number(iTop) + 145;
  8579. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "sex");
  8580. sSndMsg += "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "dage") + "^FS"; // 성별/나이
  8581. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8582. sSndMsg = "";
  8583. //-------------------------
  8584. iXPos = Number(iLeft) + 300;
  8585. iYPos = Number(iTop) + 145;
  8586. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  8587. //if(model.getValue(strNode+"["+pRowNo+"]/oproomnm") != "") {
  8588. if (!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))){
  8589. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") + ")" + "^FS"; // 진료과
  8590. } else {
  8591. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "^FS"; // 진료과
  8592. }
  8593. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8594. sSndMsg = "";
  8595. //--------------------
  8596. iXPos = Number(iLeft);
  8597. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  8598. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  8599. //------------------------------------
  8600. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  8601. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  8602. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  8603. sTempStr += aSpcSeqNm[iPrntCnt-1];
  8604. //---------
  8605. iWidth = 0;
  8606. aStr = sTempStr;
  8607. for (var iNo=0; iNo < aStr.length; iNo++) {
  8608. oneChar = aStr.charAt(iNo);
  8609. test_rtn = "";
  8610. test_he = "";
  8611. test_rtn = lpzfGetHanGul3(oneChar);
  8612. test_he = test_rtn.substring(0,1);
  8613. //----------------------
  8614. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  8615. if(!utlf_isNull(test_he))
  8616. {
  8617. iYPos = Number(iTop) + 175;
  8618. if (test_he == "E") {
  8619. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검체표시명(영문)
  8620. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  8621. }else{
  8622. iYPos = Number(iTop) + 170;
  8623. if(sCommKind == "01") { // 병렬출력
  8624. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  8625. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8626. }else if(sCommKind == "02") { // 직렬출력
  8627. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  8628. sSndMsg += CommAX.HanImageData();
  8629. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8630. }
  8631. }
  8632. }
  8633. }
  8634. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8635. sSndMsg = "";
  8636. //--------------------
  8637. iXPos = Number(iLeft);
  8638. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0"); //검사명(추가처방)
  8639. //---------
  8640. iWidth = 0;
  8641. aStr = '';
  8642. aStr = sTempStr;
  8643. for (var iNo=0; iNo < aStr.length; iNo++) {
  8644. oneChar = aStr.charAt(iNo);
  8645. test_rtn = "";
  8646. test_he = "";
  8647. test_rtn = lpzfGetHanGul3(oneChar);
  8648. test_he = test_rtn.substring(0,1);
  8649. //----------------------
  8650. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  8651. if(!utlf_isNull(test_he))
  8652. {
  8653. iYPos = Number(iTop) + 200;
  8654. if (test_he == "E") {
  8655. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  8656. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  8657. }else{
  8658. iYPos = Number(iTop) + 195;
  8659. if(sCommKind == "01") { // 병렬출력
  8660. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  8661. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8662. }else if(sCommKind == "02") { // 직렬출력
  8663. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  8664. sSndMsg += CommAX.HanImageData();
  8665. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8666. }
  8667. }
  8668. }
  8669. }
  8670. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8671. sSndMsg = "";
  8672. //------ 추가처방 표시 -------------------
  8673. iXPos = Number(iLeft);
  8674. //sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  8675. sTempStr = lf_getPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  8676. iWidth = 0;
  8677. aStr = sTempStr;
  8678. for (var iNo=0; iNo < aStr.length; iNo++) {
  8679. oneChar = aStr.charAt(iNo);
  8680. test_rtn = "";
  8681. test_he = "";
  8682. test_rtn = lpzfGetHanGul3(oneChar);
  8683. test_he = test_rtn.substring(0,1);
  8684. //----------------------
  8685. //trace('iNo'+' / '+ iNo+' / '+aFlag[iNo]+' / '+aStr)
  8686. if(!utlf_isNull(test_he))
  8687. {
  8688. iYPos = Number(iTop) + 230;
  8689. if (test_he == "E") {
  8690. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS"; // 검사명(영문)
  8691. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  8692. }else{
  8693. iYPos = Number(iTop) + 225;
  8694. if(sCommKind == "01") { // 병렬출력
  8695. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  8696. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8697. }else if(sCommKind == "02") { // 직렬출력
  8698. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  8699. sSndMsg += CommAX.HanImageData();
  8700. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  8701. }
  8702. }
  8703. }
  8704. }
  8705. sSndMsg = sSndMsg + "^PQ1"; // 출력매수
  8706. sSndMsg = fExeBarCdSetEnd(sSndMsg); // 출력종료
  8707. fExeSendMsg(sSndMsg); // 문자열 장비로 전송
  8708. }
  8709. }//end for
  8710. //portopen이 true이고 통신유형이 com일때 port close
  8711. if ( portOpenTF == "TRUE" && sCommKind == "02") {
  8712. CommAX.PortOpen("false");
  8713. }
  8714. } else if (portOpenTF = "FALSE" && sCommKind == "02") {
  8715. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  8716. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  8717. + " \n 2.케이블 확인"
  8718. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  8719. return;
  8720. }
  8721. }
  8722. /**********************************************************************************
  8723. * 함수명 : rptf_printRexbar
  8724. * 설 명 : 렉스포트형 바코드 출력
  8725. * argument : rexnm (string) : 레포트코드
  8726. * previewYn (string) : 미리보기 여부(보기:true || Y, 안보기:비우거나 false)
  8727. * tfXPath (string) : 인스턴스 ex)"/root/send/srch"
  8728. * xpXPath (object) : Dataset ex)ds_send_srch
  8729. * infoXPath (string) : 바코드 프린터 정보 위치
  8730. * callBack (string) : callBack 함수
  8731. * sOption (string) : 프린트 옵션
  8732. * return Type : TRUE or FALSE
  8733. : 사용예 : rptf_printRexbar("RFADT62303", "", "root/main/lbllist/lbllist", ds_main_lbllist, "", "lf_complete");
  8734. * 작성자 : 노회식
  8735. **********************************************************************************/
  8736. function rptf_printRexNmbar(rexnm, previewYn, tfXPath, xpXPath, infoXPath, callBack, sOption){
  8737. trace('rptf_printRexbar 1111');
  8738. var posx = "";
  8739. var posy = "";
  8740. var printnm = "";
  8741. if(infoXPath == "" || infoXPath == "undefined" || infoXPath == null) infoXPath = "ds_data";
  8742. if( utlf_isNull(objects[infoXPath+"_setupinfo"]) ){
  8743. dsf_createDs(infoXPath+"_setupinfo", [{col:"rexgbn", type:"string", size:256}], false);
  8744. }
  8745. if( utlf_isNull(objects[infoXPath+"_setupinfo"].getColumnInfo("rexgbn")) ){
  8746. objects[infoXPath+"_setupinfo"].addColumn("rexgbn", "string");
  8747. }
  8748. if( utlf_isNull(objects[infoXPath+"_blank"]) ){
  8749. dsf_createDs(infoXPath+"_blank", [{col:"left", type:"string", size:256}
  8750. ,{col:"top", type:"string", size:256}], false);
  8751. }
  8752. if( utlf_isNull(objects[infoXPath+"_blank"].getColumnInfo("left")) ){
  8753. objects[infoXPath+"_blank"].addColumn("left", "string");
  8754. }
  8755. if( utlf_isNull(objects[infoXPath+"_blank"].getColumnInfo("top")) ){
  8756. objects[infoXPath+"_blank"].addColumn("top", "string");
  8757. }
  8758. if( !utlf_isNull(objects[infoXPath+"_comm01"]) && utlf_isNull(objects[infoXPath+"_comm01"].getColumnInfo("setupval")) ){
  8759. objects[infoXPath+"_comm01"].addColumn("setupval", "string");
  8760. }
  8761. if( !utlf_isNull(objects[infoXPath+"_pcllist"]) ){
  8762. if( utlf_isNull(objects[infoXPath+"_pcllist"].getColumnInfo("barnm")) ){
  8763. objects[infoXPath+"_pcllist"].addColumn("barnm", "string");
  8764. }
  8765. if( utlf_isNull(objects[infoXPath+"_pcllist"].getColumnInfo("xpos")) ){
  8766. objects[infoXPath+"_pcllist"].addColumn("xpos", "string");
  8767. }
  8768. if( utlf_isNull(objects[infoXPath+"_pcllist"].getColumnInfo("ypos")) ){
  8769. objects[infoXPath+"_pcllist"].addColumn("ypos", "string");
  8770. }
  8771. if( utlf_isNull(objects[infoXPath+"_pcllist"].getColumnInfo("prtnm")) ){
  8772. objects[infoXPath+"_pcllist"].addColumn("prtnm", "string");
  8773. }
  8774. }
  8775. trace('rptf_printRexbar 2222');
  8776. // if(objects[infoXPath+"_setupinfo"].getColumn(0,"rexgbn") != "1") {
  8777. // if(!utlf_isNull(callBack)) {
  8778. // eval(callBack+"()");
  8779. // return false;
  8780. // } else return false;
  8781. // }
  8782. try{
  8783. trace('rptf_printRexbar 3333');
  8784. if(!utlf_isNull(objects[infoXPath+"_pcllist"]) // ds 존재 체크
  8785. // && utlf_transNullToEmpty(objects[infoXPath+"_pcllist"].getColumn(0,"dsvaluepath")).substr(0,14) == "/setupinfo/pcl" // path 체크
  8786. && objects[infoXPath+"_pcllist"].findRowExpr("barnm=='"+rexnm+"'") > -1) { // barnm 값 체크
  8787. var rowNo = objects[infoXPath+"_pcllist"].findRowExpr("barnm=='"+rexnm+"'");
  8788. posx = objects[infoXPath+"_pcllist"].getColumn(rowNo,"xpos");
  8789. posy = objects[infoXPath+"_pcllist"].getColumn(rowNo,"ypos");
  8790. printnm = objects[infoXPath+"_pcllist"].getColumn(rowNo,"prtnm");
  8791. }else{
  8792. posx = objects[infoXPath+"_blank"].getColumn(0,"left");
  8793. posy = objects[infoXPath+"_blank"].getColumn(0,"top");
  8794. if( !utlf_isNull(objects[infoXPath+"_comm01"]) ){
  8795. printnm = objects[infoXPath+"_comm01"].getColumn(0,"setupval");
  8796. }
  8797. }
  8798. if(utlf_isNull(posx)) posx = "0";
  8799. if(utlf_isNull(posy)) posy = "0";
  8800. var objDOM = rptf_createDOM(); // DOM 객체 설정
  8801. var objParam = new Object();
  8802. rptf_setNodeListToDOM(objDOM, tfXPath, xpXPath);
  8803. objParam.xml_data_XML1 = objDOM.documentElement.source;
  8804. var option = "open=1;save=1;print=1;zoom=1;";
  8805. if(previewYn == "true" || previewYn == "Y") {
  8806. option = option + "directprint=0;";
  8807. printnm = "";
  8808. } else {
  8809. //TF의 미리보기 출력로직과 XP의 출력 로직이 동일하고 TF의 바로출력 로직의 좌표값이 10배 차이 발생
  8810. //기반기술과 상의하여 XP 바코드 출력 시 n/10 처리 2016.08.22
  8811. posx = Math.round(Number(posx)/10, 0);
  8812. posy = Math.round(Number(posy)/10, 0);
  8813. option = option + "directprint=1;printdialog=0;";
  8814. }
  8815. if(!utlf_isNull(callBack)) {
  8816. option = option + "callback="+callBack+";";
  8817. }
  8818. sysf_trace("printnm : "+printnm);
  8819. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+";";
  8820. if( !utlf_isNull(sOption) ){
  8821. prntOtion = prntOtion + sOption;
  8822. }
  8823. trace('rptf_printRexbar 44444');
  8824. rptf_exeReportPreview30([rexnm],[objParam], option, prntOtion);
  8825. } catch(e){
  8826. alert("출력시 오류가 발생하였습니다\n" + e);
  8827. return false;
  8828. }
  8829. return true;
  8830. }]]></Script>
  8831. </Form>
  8832. </FDL>