LLZ001.js 431 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455
  1. /**
  2. * 진단검사 공통 JS 파일
  3. * file name : LLZ001.js
  4. * date : 2006-11-11
  5. * update : 2007-03-13 (jch)
  6. */
  7. var pColSep = "▦"; // Column 구분자
  8. var pRowSep = "▩"; // Row 구분자
  9. function fLIS_TestInfo(pRow, pSetRef,pRef) {
  10. model.setValue(pSetRef+"/rsltrgsgid", model.getValue(pRef+"["+pRow+"]/rsltrgsgid")); // 결과입력자
  11. model.setValue(pSetRef+"/mdlreptid", model.getValue(pRef+"["+pRow+"]/mdlreptid")); // 중간(예비)보고자
  12. model.setValue(pSetRef+"/lastreptid", model.getValue(pRef+"["+pRow+"]/lastreptid")); // 최종보고자
  13. output5.refresh();
  14. output6.refresh();
  15. output7.refresh();
  16. }
  17. /**
  18. *
  19. */
  20. function fCOMLIS_getMarkColor(pMark, pGbn){
  21. var color = "";
  22. if (pGbn == "B") {
  23. // 배경색
  24. if (pMark == "H") {
  25. color = "#f7a08b#";
  26. } else if (pMark == "L") {
  27. color = "#b9e5fb";
  28. } else if (pMark == "P") {
  29. color = "#7BE6B7";
  30. } else if (pMark == "D") {
  31. color = "#dec6a4" ;
  32. } else if (pMark == "C") {
  33. color = "#ffe79d";
  34. } else if (pMark == "A") {
  35. color = "#fec34d";
  36. }
  37. } else if (pGbn == "F") {
  38. // 전경색(글자색)
  39. color[0] = 255; color[1] = 255; color[2] = 255;
  40. if (pMark == "H") {
  41. color[0] = 255; color[1] = 0; color[2] = 0;
  42. //color[0] = 0; color[1] = 0; color[2] = 255;
  43. } else if (pMark == "L") {
  44. color[0] = 0; color[1] = 0; color[2] = 255;
  45. //color[0] = 255; color[1] = 0; color[2] = 0;
  46. } else if (pMark == "P") {
  47. color[0] = 153; color[1] = 0; color[2] = 204;
  48. } else if (pMark == "D") {
  49. color[0] = 0; color[1] = 128; color[2] = 0;
  50. } else if (pMark == "C") {
  51. color[0] = 255; color[1] = 102; color[2] = 0;
  52. } else if (pMark == "A") {
  53. color[0] = 0; color[1] = 0; color[2] = 0;
  54. }
  55. }
  56. return color;
  57. }
  58. /**
  59. * 보이는결과로 바꾸기
  60. */
  61. function fCOMLIS_CvtReptrslt(pInptrslt, pRsltkind, pUlen, pLlen, pType , pNvalrsltlimyn) {
  62. var vReptrslt = pInptrslt;
  63. if (vReptrslt != "") {
  64. // 결과유형 체크
  65. if (pRsltkind == "1") {
  66. //숫자만 가능
  67. if( !vReptrslt.isNumber() && !vReptrslt.isFloat() ) {
  68. messageBox("숫자결과만 입력이 가능합니다." , "I","");
  69. return "err";
  70. }
  71. } else {
  72. //문자+숫자혼합
  73. }
  74. //숫자결과 크기제한
  75. if (vReptrslt.isNumber() || vReptrslt.isFloat()) {
  76. //정수자리수 크기제한(사용안함)
  77. /*
  78. if( eval(pUlen) > -1 ) {
  79. }
  80. */
  81. if(pLlen.isNumber()){
  82. //실수자리수 크기제한
  83. if (eval(pLlen) > -1 && pNvalrsltlimyn == "Y") {
  84. vReptrslt = fCOMLIS_RstRound(vReptrslt, pLlen, pType);
  85. }
  86. }
  87. }
  88. }
  89. //if( vReptrslt=="" ) return "err";
  90. return vReptrslt;
  91. }
  92. /**
  93. * 올림, 반올림, 내림 처리
  94. */
  95. function fCOMLIS_RstRound(pRst, pLen, pType)
  96. {
  97. var vNumber = eval(pRst);
  98. if (pLen == "") return vNumber;
  99. if (pType == "") return vNumber;
  100. if (pLen != "0") {
  101. if (pType == "2") {
  102. // 올림
  103. if (eval(pLen) > 0) {
  104. vNumber = Math.ceil(Math.round(parseFloat(vNumber) * Math.pow(10, pLen))) / Math.pow(10, pLen);
  105. } else {
  106. return "";
  107. }
  108. } else if (pType == "1") {
  109. // 반올림
  110. if (eval(pLen) > 0) {
  111. vNumber = Math.round(Math.round(parseFloat(vNumber) * Math.pow(10, pLen))) / Math.pow(10, pLen);
  112. } else {
  113. return "";
  114. }
  115. } else if (pType == "3") {
  116. // 내림
  117. if (eval(pLen) > 0) {
  118. } else {
  119. return "";
  120. }
  121. } else {
  122. return "";
  123. }
  124. // 소수자리보다 작은경우 0으로 채운다..
  125. var vTmpArray = eval(vNumber).toString().setReplaceWord("-", "").split(".");
  126. if(vTmpArray.length == 2 ) {
  127. vNumber = vTmpArray[0].toString() + "." + (vTmpArray[1].toString() + "0000000000").substr(0, eval(pLen));
  128. } else {
  129. vNumber = vTmpArray[0].toString() + "." + "0000000000".substr(0, eval(pLen));
  130. }
  131. } else if (pLen == "0") {
  132. if (pType == "2") {
  133. // 올림
  134. vNumber = Math.ceil(parseFloat(vNumber));
  135. } else if (pType == "1") {
  136. // 반올림
  137. vNumber = Math.round(parseFloat(vNumber));
  138. } else if (pType == "3") {
  139. // 내림
  140. }
  141. // 소수자리가 0인경우 정수부분만 취한다.
  142. vNumber = vNumber.toString().getTruncate()
  143. }
  144. return vNumber;
  145. }
  146. /**
  147. * 결과 L/H 판정
  148. *
  149. * 사용XFM
  150. * LLR_GSHMSangSe.xfm
  151. */
  152. function fCOMLIS_JudgLH(pResult, vJudgkind, pRefL, pRefLS, pRefH, pRefHS,pRefLT,pRvalflag) {
  153. // 결과판정 Low/High만 수행
  154. var vJudgmark = "";
  155. if (vJudgkind != "0") {
  156. var isLow = true;
  157. var isHigh = true;
  158. if (!pResult.isNumber() && !pResult.isFloat()) {
  159. return vJudgmark;
  160. }
  161. if (!pRefL.isNumber() && !pRefL.isFloat()) {
  162. isLow = false;
  163. }
  164. if (!pRefH.isNumber() && !pRefH.isFloat()) {
  165. isHigh = false;
  166. }
  167. if (isLow) {
  168. //하한값 체크
  169. if (pRefLS == "0") {
  170. // 결과 <= 참고치 = L
  171. if (parseFloat(pResult) < parseFloat(pRefL))
  172. vJudgmark = "L";
  173. } else if (pRefLS == "1") {
  174. // 결과 < 참고치 = L
  175. if (parseFloat(pResult) <= parseFloat(pRefL))
  176. vJudgmark = "L";
  177. }
  178. }
  179. if (isHigh) {
  180. //상한값 체크
  181. if (pRefHS == "0") {
  182. // 결과 >= 참고치 = H
  183. if (parseFloat(pResult) > parseFloat(pRefH))
  184. vJudgmark = "H";
  185. } else if (pRefHS == "1") {
  186. // 결과 > 참고치 = H
  187. if (parseFloat(pResult) >= parseFloat(pRefH))
  188. vJudgmark = "H";
  189. }
  190. }
  191. }
  192. return vJudgmark;
  193. }
  194. /**
  195. * Panic, Critical, Alert 판정
  196. *
  197. */
  198. function fCOMLIS_JudgPCA(pResult, pJudgGbn, pRefL, pRefLS, pRefH, pRefHS, pJudgmark) {
  199. var vRetJudgmark = "";
  200. var isLower = true;
  201. var isUpper = true;
  202. // 결과가 숫자가 아닌경우 PCA판정 안함
  203. if (!pResult.isNumber() && !pResult.isFloat()) {
  204. return vRetJudgmark;
  205. }
  206. if (!pRefL.isNumber() && !pRefL.isFloat()) {
  207. isLower = false;
  208. }
  209. if (!pRefH.isNumber() && !pRefH.isFloat()) {
  210. isUpper = false;
  211. }
  212. /**
  213. 판정구분(pJudgGbn)
  214. [0] 사용안함
  215. [1] 하한만 사용
  216. [2] 상한만 사용
  217. [3] 모두사용
  218. [4] 하한만 사용 (Grade)
  219. [5] 상한만 사용 (Grade)
  220. [6] 모두 사용 (Grade)
  221. [7] Grayzone 사용 --2006.05.22 ACK.HSM 추가
  222. */
  223. /** -- 2008.02.21 재한 추가
  224. 부등호(pRefLS, pRefHS)
  225. 0 : <
  226. 1 : <=
  227. 2 : >
  228. 3 : >=
  229. */
  230. var resultF = parseFloat(pResult);
  231. var reflF = parseFloat(pRefL);
  232. var refhF = parseFloat(pRefH);
  233. if (pJudgGbn == "1") {
  234. if (isLower) {
  235. if(pRefLS == "0")
  236. vRetJudgmark = (resultF < reflF) ? pJudgmark : "";
  237. else if(pRefLS == "1")
  238. vRetJudgmark = (resultF <= reflF) ? pJudgmark : "";
  239. }
  240. } else if (pJudgGbn == "2") {
  241. if (isUpper) {
  242. if(pRefHS == "2")
  243. vRetJudgmark = (resultF > refhF) ? pJudgmark : "";
  244. else if(pRefHS == "3")
  245. vRetJudgmark = (resultF >= refhF) ? pJudgmark : "";
  246. }
  247. } else if (pJudgGbn == "3") {
  248. if (isLower && isUpper) {
  249. if(pRefLS == "0" && pRefHS == "2")
  250. vRetJudgmark = ((resultF < reflF) || (resultF > refhF)) ? pJudgmark : "";
  251. else if(pRefLS == "0" && pRefHS == "3")
  252. vRetJudgmark = ((resultF < reflF) || (resultF >= refhF)) ? pJudgmark : "";
  253. else if(pRefLS == "1" && pRefHS == "2")
  254. vRetJudgmark = ((resultF <= reflF) || (resultF > refhF)) ? pJudgmark : "";
  255. else if(pRefLS == "1" && pRefHS == "3"){
  256. vRetJudgmark = ((resultF <= reflF) || (resultF >= refhF)) ? pJudgmark : "";
  257. }
  258. }
  259. } else if (pJudgGbn == "4") {
  260. } else if (pJudgGbn == "5") {
  261. } else if (pJudgGbn == "6") {
  262. } else if (pJudgGbn == "7") {
  263. if (isLower && isUpper)
  264. vRetJudgmark = ((resultF >= reflF) && (resultF <= refhF)) ? pJudgmark : "";
  265. }
  266. return vRetJudgmark;
  267. }
  268. /**
  269. * Delta 판정
  270. *
  271. */
  272. function fCOMLIS_JudgDelta(pResult, pBFResult, pJudgGbn, pRefH, pDeltaday, pRstinterval) {
  273. var vRetJudgmark = "";
  274. var isLower = true;
  275. var isUpper = true;
  276. // 결과가 숫자가 아닌경우 Delta판정 안함
  277. if (!pResult.isNumber() && !pResult.isFloat()) {
  278. return vRetJudgmark;
  279. }
  280. // 이전 결과가 숫자가 아닌경우 Delta판정 안함
  281. if (!pBFResult.isNumber() && !pBFResult.isFloat()) {
  282. return vRetJudgmark;
  283. }
  284. // 이전 최종보고가 없거나 숫자가아닌경우 Delta판정 안함(최종보고일과의 차이가 Null인경우)
  285. if (!pRstinterval.isNumber() && !pRstinterval.isFloat()) {
  286. return vRetJudgmark;
  287. }
  288. // 이전 최종보고일과의 차이가 Delta판정기간을 초과한경우 Delta판정 안함
  289. if ((pDeltaday.isNumber()) && (eval(pDeltaday < pRstinterval))) {
  290. return vRetJudgmark;
  291. }
  292. if (!pRefH.isNumber() && !pRefH.isFloat()) {
  293. return vRetJudgmark;
  294. }
  295. /**
  296. 판정구분(pJudgGbn)
  297. [1] 변화차 = 현재결과 - 이전결과
  298. [2] 변화비율 = 변화차/이전결과 * 100
  299. [3] 기간당변화차 = 변화차/기간
  300. [4] 기간당변화비율 = 변화비율/기간
  301. [5] 절대변화비율 = 변화차/이전결과
  302. [6] Grade Delta = 현재Grade - 이전Grade
  303. */
  304. var resultF = parseFloat(pResult);
  305. var bfresultF = parseFloat(pBFResult);
  306. var refhF = parseFloat(pRefH);
  307. var rstintervalF = parseFloat(pRstinterval);
  308. // 판정구분에 따른 계산결과
  309. var rstCalc = 0
  310. var rstDiff = parseFloat(Math.abs(resultF - bfresultF)); // 변화차(절대값)
  311. var rstDiffRate = (rstDiff / bfresultF) * 100 // 변화비율
  312. if (pJudgGbn == "1") {
  313. rstCalc = rstDiff;
  314. } else if (pJudgGbn == "2") {
  315. rstCalc = rstDiffRate;
  316. } else if (pJudgGbn == "3") {
  317. if (rstintervalF.toString() != "0")
  318. rstCalc = rstDiff / rstintervalF;
  319. } else if (pJudgGbn == "4") {
  320. if (rstintervalF.toString() != "0")
  321. rstCalc = rstDiffRate / rstintervalF;
  322. } else if (pJudgGbn == "5") {
  323. rstCalc = rstDiff / bfresultF;
  324. } else if (pJudgGbn == "6") {
  325. }
  326. //alert("계산결과 = " + rstCalc);
  327. if (rstCalc != 0)
  328. vRetJudgmark = (rstCalc > refhF) ? "D" : ""; // 판정 (상한값을 벗어나는경우만 Delta처리
  329. return vRetJudgmark;
  330. }
  331. /**
  332. * 허용하한치 판정
  333. *
  334. */
  335. function fCOMLIS_JudgLimit(pResult, pJudgType, pRefL, pRefLS, pRefLDK, pRefH, pRefHS, pRefHDK) {
  336. var retResult = pResult;
  337. var isLow = true;
  338. var isHigh = true;
  339. //alert("pResult="+pResult+", pJudgType="+pJudgType+", pRefL="+pRefL+", pRefLS="+pRefLS+", pRefH="+pRefH+", pRefHS="+pRefHS);
  340. // 결과 숫자여부
  341. if (!pResult.isNumber() && !pResult.isFloat()) {
  342. return retResult;
  343. }
  344. // 허용 하한값 숫자여부
  345. if (pRefL.isNumber() && !pRefL.isFloat()) {
  346. isLow = false;
  347. }
  348. // 허용 상항값 숫자여부
  349. if (pRefH.isNumber() && !pRefH.isFloat()) {
  350. isHigh = false;
  351. }
  352. //if(isLow && isHigh && (parseFloat(pResult) <= parseFloat(pRefL)) && (parseFloat(pResult) >= parseFloat(pRefH))){
  353. //}
  354. //else if(isLow && !isHigh && (parseFloat(pResult) <= parseFloat(pRefL))){
  355. //}
  356. //else if(!isLow && isHigh && (parseFloat(pResult) >= parseFloat(pRefH))){
  357. //}
  358. //else{
  359. /** -- 2008.02.21 재한 추가
  360. 부등호(pRefLS, pRefHS)
  361. 0 : <
  362. 1 : <=
  363. 2 : >
  364. 3 : >=
  365. */
  366. // 허용치 하한 or 모두
  367. //alert("pJudgType = " + pJudgType + " pJudgType = " + pJudgType + " isLow = " + isLow);
  368. if ((pJudgType == "1" || pJudgType == "3") && isLow) {
  369. /* 화면에 보이는 결과(pRefLDK) -- 2008.02.21 재한 수정
  370. [0] 없음
  371. [1] 결과를 '허용하한수치로'로 : 예) 20
  372. [2] 결과를 '<허용하한수치로'로 : 예) < 20
  373. [3] 결과를 '허용하한수치 이하로'로 : 예) 20이하
  374. [4] 결과를 '허용하한수치 미만으로'로 : 예) 20미만
  375. [5] 결과를 '재검중'로 : 예) 재검중
  376. [6] 결과를 '측정불가'로 : 예) 측정불가
  377. */
  378. if(pRefLS == "0") {
  379. if (parseFloat(pResult) < parseFloat(pRefL)) {
  380. if (pRefLDK == "1") {
  381. retResult = pRefL;
  382. } else if (pRefLDK == "2") {
  383. retResult = "< " + pRefL;
  384. } else if (pRefLDK == "3") {
  385. retResult = pRefL + " 이하";
  386. } else if (pRefLDK == "4") {
  387. retResult = pRefL + " 미만";
  388. } else if (pRefLDK == "5") {
  389. retResult = "재검중";
  390. } else if (pRefLDK == "6") {
  391. retResult = "측정불가";
  392. }
  393. }
  394. }else if(pRefLS == "1") {
  395. if (parseFloat(pResult) <= parseFloat(pRefL)) {
  396. if (pRefLDK == "1") {
  397. retResult = pRefL;
  398. } else if (pRefLDK == "2") {
  399. retResult = "< " + pRefL;
  400. } else if (pRefLDK == "3") {
  401. retResult = pRefL + " 이하";
  402. } else if (pRefLDK == "4") {
  403. retResult = pRefL + " 미만";
  404. } else if (pRefLDK == "5") {
  405. retResult = "재검중";
  406. } else if (pRefLDK == "6") {
  407. retResult = "측정불가";
  408. }
  409. }
  410. }
  411. }
  412. // 허용치 상한 or 모두
  413. if ((pJudgType == "2" || pJudgType == "3") && isHigh) {
  414. /* 화면에 보이는 결과(pRefHDK) -- 2008.02.21 재한 수정
  415. [0] 없음
  416. [1] 결과를 '허용상한수치로'로 : 예) 2000
  417. [2] 결과를 '>허용상한수치로'로 : 예) > 2000
  418. [3] 결과를 '허용상한수치 이상으로'로 : 예) 2000이상
  419. [4] 결과를 '허용상한수치 초과로'로 : 예) 2000초과
  420. [5] 결과를 '재검중'로 : 예) 재검중
  421. [6] 결과를 '측정불가'로 : 예) 측정불가
  422. */
  423. if(pRefHS == "2") {
  424. if (parseFloat(pResult) > parseFloat(pRefH)) {
  425. if (pRefHDK == "1") {
  426. retResult = pRefH;
  427. } else if (pRefHDK == "2") {
  428. retResult = "> " + pRefH;
  429. } else if (pRefHDK == "3") {
  430. retResult = pRefH + " 이상";
  431. } else if (pRefHDK == "4") {
  432. retResult = pRefH + " 초과";
  433. } else if (pRefHDK == "5") {
  434. retResult = "재검중";
  435. } else if (pRefHDK == "6") {
  436. retResult = "측정불가";
  437. }
  438. }
  439. }else if(pRefHS == "3") {
  440. if (parseFloat(pResult) >= parseFloat(pRefH)) {
  441. if (pRefHDK == "1") {
  442. retResult = pRefH;
  443. } else if (pRefHDK == "2") {
  444. retResult = "> " + pRefH;
  445. } else if (pRefHDK == "3") {
  446. retResult = pRefH + " 이상";
  447. } else if (pRefHDK == "4") {
  448. retResult = pRefH + " 초과";
  449. } else if (pRefHDK == "5") {
  450. retResult = "재검중";
  451. } else if (pRefHDK == "6") {
  452. retResult = "측정불가";
  453. }
  454. }
  455. }
  456. }
  457. //}
  458. return retResult;
  459. }
  460. /**
  461. * 사용자정의판정 결과변경
  462. *
  463. */
  464. function fCOMLIS_CvtUjudgRst(pOrgResult, pResult, pJudgmark, pUjudglt) {
  465. var vReptrslt = pResult;
  466. var vJudggbn = pUjudglt[0].split(",");
  467. if (pResult.length == 0) return vReptrslt;
  468. // 숫자 여부(실제결과가 숫자만 사용자정의판정을 한다.)
  469. if (!pOrgResult.isNumber() && !pOrgResult.isFloat()) {
  470. return vReptrslt;
  471. }
  472. //alert(" pResult =" + pResult + ", pJudgmark=" + pJudgmark + ", pUjudglt =" + pUjudglt);
  473. if (vJudggbn[0] == "2") {
  474. // 2단계 판정
  475. if (pJudgmark == "H") {
  476. vReptrslt = fCOMLIS_Ujudglt(vJudggbn[2], pResult, pUjudglt[2]);
  477. } else {
  478. vReptrslt = fCOMLIS_Ujudglt(vJudggbn[1], pResult, pUjudglt[1]);
  479. }
  480. } else if (vJudggbn[0] == "3") {
  481. // 3단계 판정
  482. if (pJudgmark == "L") {
  483. vReptrslt = fCOMLIS_Ujudglt(vJudggbn[1], pResult, pUjudglt[1]);
  484. } else if (pJudgmark == "H") {
  485. vReptrslt = fCOMLIS_Ujudglt(vJudggbn[3], pResult, pUjudglt[3]);
  486. } else {
  487. vReptrslt = fCOMLIS_Ujudglt(vJudggbn[2], pResult, pUjudglt[2]);
  488. }
  489. }
  490. return vReptrslt;
  491. }
  492. /**
  493. * 사용자정의판정 구분에 따른 결과문자 반환
  494. *
  495. */
  496. function fCOMLIS_Ujudglt(pUjudgtype, pResult, pUjudglt) {
  497. var vRetval = pResult
  498. if (pUjudgtype == "0") {
  499. // [0] 판정문자는 판정으로만 : 결과 -> 결과1
  500. } else if (pUjudgtype == "1") {
  501. // [1] 판정문자를 결과에 대체 : 결과 -> 판정문
  502. vRetval = pUjudglt;
  503. } else if (pUjudgtype == "2") {
  504. // [2] 판정문자를 결과에 포함 : 결과 -> 판정문자 (결과)
  505. vRetval = pUjudglt + " (" + pResult + ")";
  506. } else if (pUjudgtype == "3") {
  507. // [3] 판정문자를 결과에 포함 : 결과 -> 판정문자 결과
  508. vRetval = pUjudglt + " " + pResult ;
  509. } else if (pUjudgtype == "4") {
  510. // [4] 판정문자를 결과에 포함 : 결과 -> 결과 판정문자
  511. vRetval = pResult + " " + pUjudglt ;
  512. }
  513. return vRetval;
  514. }
  515. /**
  516. * 결과저장시 유효성체크 & 서버로 전달할 자료 Flag변경
  517. *
  518. *
  519. */
  520. function fCOMLIS_ResultValidation(pRef, pGridID, pRsltstat, pIsMsg) {
  521. var isRstErr = "false";
  522. var isSelected = "false";
  523. var nGridMaxRow = pGridID.rows - 1;
  524. var isUpdate = "false";
  525. var vMsg = ""
  526. if (pIsMsg == "true") {
  527. if (pRsltstat == "1") {
  528. var vMsg = "결과저장"
  529. } else if (pRsltstat == "2") {
  530. var vMsg = "중간(예비)보고"
  531. } else if (pRsltstat == "4") {
  532. var vMsg = "최종보고"
  533. }
  534. }
  535. var vTestCDLIST = "";
  536. var vTestCDRsltLIST = "";
  537. for (i = 1; i <= nGridMaxRow; i++) {
  538. // 선택된 항목만 Validation 체크한다.
  539. if (model.getValue(pRef + "[" + i + "]/selchk/@value") == "true") {
  540. isSelected = "true";
  541. var vTclsscrnm = model.getValue(pRef + "[" + i + "]/tclsscrnm");
  542. var vTclskind = model.getValue(pRef + "[" + i + "]/tclskind");
  543. var vParentrsltinptyn = model.getValue(pRef + "[" + i + "]/parentrsltinptyn"); // 타이틀 구분
  544. var vReptrslt = model.getValue(pRef + "[" + i + "]/reptrslt");
  545. // 결과 수정기능 체크
  546. // 최종보고시 이상치 결과는 최종보고권한이 있는 유저만 가능함
  547. // ※ 진단검사 초기 정보를 이용한 사용자 권한 가져오기( 화면오픈시 정보 조회해야함 )
  548. if (pRsltstat == "4") {
  549. var vPanicMark = model.getValue(pRef + "[" + i + "]/panicmark");
  550. var vDeltaMark = model.getValue(pRef + "[" + i + "]/deltamark");
  551. var vCriticalMark = model.getValue(pRef + "[" + i + "]/criticalmark");
  552. var vAlertMark = model.getValue(pRef + "[" + i + "]/alertmark");
  553. var vRsltmark = model.getValue(pRef + "[" + i + "]/rsltmark");
  554. /*
  555. var authorizeA = fCOMLIS_GetAuthorize("R01", "3"); // R01, 3 : Panic 최종보고기능
  556. if (vPanicMark.getTrim() == "P" && authorizeA[0].getTrim() != "y") {
  557. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  558. isRstErr = "true";
  559. break;
  560. }
  561. var authorizeA = fCOMLIS_GetAuthorize("R01", "4"); // R01, 4 : Delta 최종보고기능
  562. if (vDeltaMark.toString() == "D" && authorizeA[0].toString() != "y") {
  563. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  564. isRstErr = "true";
  565. break;
  566. }
  567. var authorizeA = fCOMLIS_GetAuthorize("R01", "5"); // R01, 5 : Critical 최종보고기능
  568. if (vCriticalMark.getTrim() == "C" && authorizeA[0].getTrim() != "y") {
  569. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  570. isRstErr = "true";
  571. break;
  572. }
  573. var authorizeA = fCOMLIS_GetAuthorize("R01", "2"); // R01, 2 : Alert 최종보고기능
  574. if (vAlertMark.getTrim() == "A" && authorizeA[0].getTrim() != "y") {
  575. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  576. isRstErr = "true";
  577. break;
  578. }
  579. var authorizeA = fCOMLIS_GetAuthorize("R01", "1"); // R01, 1 : 최종보고수정기능
  580. if (vRstmark == "◆" && authorizeA[0].getTrim() != "y") {
  581. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  582. isRstErr = "true";
  583. break;
  584. }*/
  585. var updateTF = false;
  586. if(model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/rsltstat") == "4" ||
  587. model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/rsltstat") == "5"){
  588. updateTF = true;
  589. //vTestCDLIST = vTestCDLIST +"," +"'"+ model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/testcd")+"'";
  590. //vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/testcd") + "▦" +
  591. //model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/reptrslt")+ "▩";
  592. }
  593. }
  594. if (vTclskind == "2") {
  595. // Single항목 체크
  596. if (pRsltstat != '10' && vReptrslt.getTrim() == "") {
  597. messageBox("[" + vTclsscrnm + "]항목은 공백인 결과는 입력할 수 없습니다." , "I","");
  598. isRstErr = "true";
  599. break;
  600. }
  601. pGridID.addStatus( i, "update");
  602. isUpdate = "true";
  603. if(updateTF) {
  604. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/testcd")+"',";
  605. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/testcd") + "▦" +
  606. model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/reptrslt")+ "▩";
  607. }
  608. } else if (vTclskind == "3") {
  609. // Parent항목은 조건에 따라 Child항목만 체크
  610. if (vParentrsltinptyn.getTrim() != "N"){ //Parent인데 입력가능한 항목들
  611. var sREQPARENT = model.getValue(pRef +"[" + i + "]/reqsub"); // Parent항목 결과필수 입력[default:'1']
  612. /* // 입력가능 Parent항목
  613. if (vReptrslt.getTrim() == "" && sREQPARENT.getTrim() == "1") {
  614. TFGetMsgBox( -1, "[" + vTclsscrnm + "]항목은 공백인 결과는 입력할 수 없습니다.", "결과관리", "I", "OK" );
  615. isRstErr = "true";
  616. break;
  617. }*/
  618. var vTestcd = model.getValue(pRef + "[" + i + "]/testcd");
  619. var vN_Inptrslt = model.getValue(pRef + "[" + i + "]/inptrslt");
  620. var vO_Inptrslt = model.getValue("/root/hidden/TestInfo/getTestInfoCnts[testcd ='" + vTestcd + "']/inptrslt");
  621. if(vN_Inptrslt == vO_Inptrslt){
  622. if((vN_Inptrslt != "C" && vO_Inptrslt == "") || ((pRsltstat == model.getValue(pRef + "[" + i + "]/rsltstat")) && ("Y" != model.getValue(pRef + "[" + i + "]/retestyn")))){
  623. }else{
  624. pGridID.addStatus( i, "update");
  625. isUpdate = "true";
  626. if(updateTF) {
  627. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + i + "]/testcd")+"',";
  628. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + i + "]/testcd") + "▦" +
  629. model.getvalue(pRef + "[" + i + "]/reptrslt")+ "▩";
  630. }
  631. }
  632. }else{
  633. pGridID.addStatus( i, "update");
  634. isUpdate = "true";
  635. if(updateTF) {
  636. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + i + "]/testcd")+"',";
  637. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + i + "]/testcd") + "▦" +
  638. model.getvalue(pRef + "[" + i + "]/reptrslt")+ "▩";
  639. }
  640. }
  641. } else { //Parent인데 입력 불가능한 항목들
  642. //alert("22")
  643. //if(pGridID != grd_CultrueTestInfo)
  644. pGridID.addStatus( i, "update"); // Parent 항목제외
  645. if(updateTF) {
  646. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + i + "]/testcd")+"',";
  647. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + i + "]/testcd") + "▦" +
  648. model.getvalue(pRef + "[" + i + "]/reptrslt")+ "▩";
  649. }
  650. }
  651. /* ↑↑↑↑↑↑↑↑↑ Parent항목 chile항목 ↓↓↓↓↓↓↓↓↓*/
  652. for (var j = i + 1; j <= nGridMaxRow; j++) {
  653. var vTclsscrnm_SUB = model.getValue(pRef +"["+j+"]/tclsscrnm");
  654. var vTclskind_SUB = model.getValue(pRef +"["+j+"]/tclskind");
  655. var sChildessnrsltyn = model.getValue(pRef +"["+j+"]/childessnrsltyn"); // Child항목 결과필수 입력[default:'' or '0']
  656. if (vTclskind_SUB != "4" && vTclskind_SUB != "5" ) {
  657. //--j;
  658. break;
  659. }
  660. if (sChildessnrsltyn.getTrim() == "1") {
  661. // sub필수 항목은 공백입력 안됨...
  662. if(pRsltstat != '10' && vReptrslt.getTrim() == "" ) {
  663. messageBox("[" + vTclsscrnm_SUB + "]항목은 공백인 결과는 입력할 수 없습니다." , "I","");
  664. isRstErr = "true";
  665. break;
  666. }
  667. }
  668. var vTestcd = model.getValue(pRef + "[" + j + "]/testcd");
  669. var vN_Inptrslt = model.getValue(pRef + "[" + j + "]/inptrslt");
  670. var vO_Inptrslt = model.getValue("/root/hidden/TestInfo/getTestInfoCnts[testcd ='" + vTestcd + "']/inptrslt");
  671. if(vN_Inptrslt == vO_Inptrslt){
  672. if(((vTclskind_SUB != "4" && vTclskind_SUB != "5") && vN_Inptrslt == "") || ((pRsltstat == model.getValue(pRef + "[" + j + "]/rsltstat")) && ("Y" != model.getValue(pRef + "[" + j + "]/retestyn")))){
  673. }else{
  674. pGridID.addStatus( j, "update");
  675. isUpdate = "true";
  676. if(updateTF) {
  677. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  678. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  679. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  680. }
  681. }
  682. }else{
  683. pGridID.addStatus( j, "update");
  684. isUpdate = "true";
  685. if(updateTF) {
  686. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  687. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  688. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  689. }
  690. }
  691. /* * * * * * * * * * * * * * * * * * * * * * * * */
  692. }
  693. if (isRstErr == "true") break;
  694. if(model.getValue(pRef + "[" + j + "]/selchk/@value") == "true"){
  695. //if(model.getValue(pRef + "[" + j + "]/tclskind") == "3"){
  696. if(model.getValue(pRef + "[" + j + "]/tclskind") != "4"
  697. && model.getValue(pRef + "[" + j + "]/tclskind") != "5"){
  698. i = --j;
  699. continue;
  700. }else{
  701. i = j;
  702. }
  703. }else{
  704. i = j;
  705. continue;
  706. }
  707. //i=j;
  708. } else {
  709. //Single, Parent 항목 외.
  710. var vTestcd = model.getValue(pRef + "[" + i + "]/testcd");
  711. var vN_Inptrslt = model.getValue(pRef + "[" + i + "]/inptrslt");
  712. var vO_Inptrslt = model.getValue("/root/hidden/TestInfo/getTestInfoCnts[testcd ='" + vTestcd + "']/inptrslt");
  713. if(vN_Inptrslt == vO_Inptrslt){
  714. if(((vTclskind_SUB != "4" && vTclskind_SUB != "5") && vN_Inptrslt == "") || ((pRsltstat == model.getValue(pRef+ "[" + i + "]/rsltstat")) &&("Y" != model.getValue(pRef+ "[" + i + "]/retestyn")))){
  715. }else{
  716. pGridID.addStatus( i, "update");
  717. isUpdate = "true";
  718. if(updateTF) {
  719. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  720. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  721. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  722. }
  723. }
  724. }else{
  725. pGridID.addStatus( i, "update");
  726. isUpdate = "true";
  727. if(updateTF) {
  728. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  729. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  730. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  731. }
  732. }
  733. }
  734. /* * * * * * * * * * * * * * * * * * * * * * * * */
  735. } // if (model.getValue(pRef + "[" + i + "]/selimg/@value") == "true")
  736. } // for (i = 1; i <= nGridMaxRow; i++)
  737. if (isRstErr == "true") {
  738. if (isSelected == "false") {
  739. if (pIsMsg == "true") {
  740. messageBox(vMsg + "할 항목을 선택해 주십시오." , "I","");
  741. }
  742. return "2"; // 선택한항목 없음
  743. }
  744. return "1"; // 입력결과 오류
  745. } else {
  746. if (isSelected == "false") {
  747. if (pIsMsg == "true") {
  748. messageBox(vMsg + "할 항목을 선택해 주십시오." , "I","");
  749. }
  750. return "2"; // 선택한항목 없음
  751. }
  752. if(isUpdate == "false"){
  753. messageBox("수정된 결과값이 없습니다." , "I","");
  754. return "1"; // 입력결과 오류
  755. }
  756. if(vTestCDLIST != ""){
  757. model.setvalue("/root/hidden/DJGGParm/testcdlist", vTestCDLIST.substring(0, vTestCDLIST.length-1));
  758. model.setvalue("/root/hidden/DJGGParm/uprsltYN","Y");
  759. model.setvalue("/root/hidden/DJGGParm/bufDJGG", vTestCDRsltLIST);
  760. }
  761. else{
  762. model.setvalue("/root/hidden/DJGGParm/uprsltYN","N");
  763. }
  764. return "0"; // 정상
  765. }
  766. }
  767. /**
  768. * 결과저장시 유효성체크 & 서버로 전달할 자료 Flag변경
  769. *
  770. *
  771. */
  772. function fCOMLIS_MicroResultValidation(pRef, pGridID, pRsltstat, pIsMsg) {
  773. var isRstErr = "false";
  774. var isSelected = "false";
  775. var nGridMaxRow = pGridID.rows - 1;
  776. var isUpdate = "false";
  777. var vMsg = ""
  778. if (pIsMsg == "true") {
  779. if (pRsltstat == "1") {
  780. var vMsg = "결과저장"
  781. } else if (pRsltstat == "2") {
  782. var vMsg = "중간(예비)보고"
  783. } else if (pRsltstat == "4") {
  784. var vMsg = "최종보고"
  785. }
  786. }
  787. var vBfTestCDLIST = model.getvalue("/root/hidden/DJGGParm/testcdlist");
  788. if(vBfTestCDLIST.length > 1){
  789. vBfTestCDLIST = vBfTestCDLIST +",";
  790. }
  791. var vTestCDLIST = vBfTestCDLIST;
  792. var vTestCDRsltLIST = model.getvalue("/root/hidden/DJGGParm/bufDJGG");
  793. for (i = 1; i <= nGridMaxRow; i++) {
  794. // 선택된 항목만 Validation 체크한다.
  795. if (model.getValue(pRef + "[" + i + "]/selchk/@value") == "true") {
  796. isSelected = "true";
  797. var vTclsscrnm = model.getValue(pRef + "[" + i + "]/tclsscrnm");
  798. var vTclskind = model.getValue(pRef + "[" + i + "]/tclskind");
  799. var vParentrsltinptyn = model.getValue(pRef + "[" + i + "]/parentrsltinptyn"); // 타이틀 구분
  800. var vReptrslt = model.getValue(pRef + "[" + i + "]/reptrslt");
  801. // 결과 수정기능 체크
  802. // 최종보고시 이상치 결과는 최종보고권한이 있는 유저만 가능함
  803. // ※ 진단검사 초기 정보를 이용한 사용자 권한 가져오기( 화면오픈시 정보 조회해야함 )
  804. if (pRsltstat == "4") {
  805. var vPanicMark = model.getValue(pRef + "[" + i + "]/panicmark");
  806. var vDeltaMark = model.getValue(pRef + "[" + i + "]/deltamark");
  807. var vCriticalMark = model.getValue(pRef + "[" + i + "]/criticalmark");
  808. var vAlertMark = model.getValue(pRef + "[" + i + "]/alertmark");
  809. var vRsltmark = model.getValue(pRef + "[" + i + "]/rsltmark");
  810. /*
  811. var authorizeA = fCOMLIS_GetAuthorize("R01", "3"); // R01, 3 : Panic 최종보고기능
  812. if (vPanicMark.getTrim() == "P" && authorizeA[0].getTrim() != "y") {
  813. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  814. isRstErr = "true";
  815. break;
  816. }
  817. var authorizeA = fCOMLIS_GetAuthorize("R01", "4"); // R01, 4 : Delta 최종보고기능
  818. if (vDeltaMark.toString() == "D" && authorizeA[0].toString() != "y") {
  819. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  820. isRstErr = "true";
  821. break;
  822. }
  823. var authorizeA = fCOMLIS_GetAuthorize("R01", "5"); // R01, 5 : Critical 최종보고기능
  824. if (vCriticalMark.getTrim() == "C" && authorizeA[0].getTrim() != "y") {
  825. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  826. isRstErr = "true";
  827. break;
  828. }
  829. var authorizeA = fCOMLIS_GetAuthorize("R01", "2"); // R01, 2 : Alert 최종보고기능
  830. if (vAlertMark.getTrim() == "A" && authorizeA[0].getTrim() != "y") {
  831. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  832. isRstErr = "true";
  833. break;
  834. }
  835. var authorizeA = fCOMLIS_GetAuthorize("R01", "1"); // R01, 1 : 최종보고수정기능
  836. if (vRstmark == "◆" && authorizeA[0].getTrim() != "y") {
  837. TFGetMsgBox( -1, "[" + authorizeA[1] + "] 권한이 없습니다.", "결과관리", "I", "OK" );
  838. isRstErr = "true";
  839. break;
  840. }*/
  841. var updateTF = false;
  842. if(model.getvalue("/root/main/TestInfo/getCultrueTestInfo["+i+"]/rsltstat") == "4" ||
  843. model.getvalue("/root/main/TestInfo/getCultrueTestInfo["+i+"]/rsltstat") == "5"){
  844. updateTF = true;
  845. //vTestCDLIST = vTestCDLIST +"," +"'"+ model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/testcd")+"'";
  846. //vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/testcd") + "▦" +
  847. //model.getvalue("/root/main/TestInfo/getTestInfoCnts["+i+"]/reptrslt")+ "▩";
  848. }
  849. }
  850. if (vTclskind == "2") {
  851. // Single항목 체크
  852. if (vReptrslt.getTrim() == "") {
  853. messageBox("[" + vTclsscrnm + "]항목은 공백인 결과는 입력할 수 없습니다." , "I","");
  854. isRstErr = "true";
  855. break;
  856. }
  857. pGridID.addStatus( i, "update");
  858. isUpdate = "true";
  859. if(updateTF) {
  860. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue("/root/main/TestInfo/getCultrueTestInfo["+i+"]/testcd")+"',";
  861. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue("/root/main/TestInfo/getCultrueTestInfo["+i+"]/testcd") + "▦" +
  862. model.getvalue("/root/main/TestInfo/getCultrueTestInfo["+i+"]/reptrslt")+ "▩";
  863. }
  864. } else if (vTclskind == "3") {
  865. // Parent항목은 조건에 따라 Child항목만 체크
  866. if (vParentrsltinptyn.getTrim() != "N"){ //Parent인데 입력가능한 항목들
  867. var sREQPARENT = model.getValue(pRef +"[" + i + "]/reqsub"); // Parent항목 결과필수 입력[default:'1']
  868. /* // 입력가능 Parent항목
  869. if (vReptrslt.getTrim() == "" && sREQPARENT.getTrim() == "1") {
  870. TFGetMsgBox( -1, "[" + vTclsscrnm + "]항목은 공백인 결과는 입력할 수 없습니다.", "결과관리", "I", "OK" );
  871. isRstErr = "true";
  872. break;
  873. }*/
  874. var vTestcd = model.getValue(pRef + "[" + i + "]/testcd");
  875. var vN_Inptrslt = model.getValue(pRef + "[" + i + "]/inptrslt");
  876. var vO_Inptrslt = model.getValue("/root/hidden/TestInfo/getCultrueTestInfo[testcd ='" + vTestcd + "']/inptrslt");
  877. if(vN_Inptrslt == vO_Inptrslt){
  878. if((vN_Inptrslt != "C" && vO_Inptrslt == "") || ((pRsltstat == model.getValue(pRef + "[" + i + "]/rsltstat")) && ("Y" != model.getValue(pRef + "[" + i + "]/retestyn")))){
  879. }else{
  880. pGridID.addStatus( i, "update");
  881. isUpdate = "true";
  882. if(updateTF) {
  883. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + i + "]/testcd")+"',";
  884. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + i + "]/testcd") + "▦" +
  885. model.getvalue(pRef + "[" + i + "]/reptrslt")+ "▩";
  886. }
  887. }
  888. }else{
  889. pGridID.addStatus( i, "update");
  890. isUpdate = "true";
  891. if(updateTF) {
  892. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + i + "]/testcd")+"',";
  893. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + i + "]/testcd") + "▦" +
  894. model.getvalue(pRef + "[" + i + "]/reptrslt")+ "▩";
  895. }
  896. }
  897. } else { //Parent인데 입력 불가능한 항목들
  898. //alert("22")
  899. //if(pGridID != grd_CultrueTestInfo)
  900. pGridID.addStatus( i, "update"); // Parent 항목제외
  901. if(updateTF) {
  902. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + i + "]/testcd")+"',";
  903. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + i + "]/testcd") + "▦" +
  904. model.getvalue(pRef + "[" + i + "]/reptrslt")+ "▩";
  905. }
  906. }
  907. /* ↑↑↑↑↑↑↑↑↑ Parent항목 chile항목 ↓↓↓↓↓↓↓↓↓*/
  908. for (var j = i + 1; j <= nGridMaxRow; j++) {
  909. var vTclsscrnm_SUB = model.getValue(pRef +"["+j+"]/tclsscrnm");
  910. var vTclskind_SUB = model.getValue(pRef +"["+j+"]/tclskind");
  911. var sChildessnrsltyn = model.getValue(pRef +"["+j+"]/childessnrsltyn"); // Child항목 결과필수 입력[default:'' or '0']
  912. if (vTclskind_SUB != "4" && vTclskind_SUB != "5" ) {
  913. //--j;
  914. break;
  915. }
  916. if (sChildessnrsltyn.getTrim() == "1") {
  917. // sub필수 항목은 공백입력 안됨...
  918. if( vReptrslt.getTrim() == "" ) {
  919. messageBox("[" + vTclsscrnm_SUB + "]항목은 공백인 결과는 입력할 수 없습니다." , "I","");
  920. isRstErr = "true";
  921. break;
  922. }
  923. }
  924. var vTestcd = model.getValue(pRef + "[" + j + "]/testcd");
  925. var vN_Inptrslt = model.getValue(pRef + "[" + j + "]/inptrslt");
  926. var vO_Inptrslt = model.getValue("/root/hidden/TestInfo/getCultrueTestInfo[testcd ='" + vTestcd + "']/inptrslt");
  927. if(vN_Inptrslt == vO_Inptrslt){
  928. if(((vTclskind_SUB != "4" && vTclskind_SUB != "5") && vN_Inptrslt == "") || ((pRsltstat == model.getValue(pRef + "[" + j + "]/rsltstat")) && ("Y" != model.getValue(pRef + "[" + j + "]/retestyn")))){
  929. }else{
  930. pGridID.addStatus( j, "update");
  931. isUpdate = "true";
  932. if(updateTF) {
  933. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  934. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  935. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  936. }
  937. }
  938. }else{
  939. pGridID.addStatus( j, "update");
  940. isUpdate = "true";
  941. if(updateTF) {
  942. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  943. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  944. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  945. }
  946. }
  947. /* * * * * * * * * * * * * * * * * * * * * * * * */
  948. }
  949. if (isRstErr == "true") break;
  950. if(model.getValue(pRef + "[" + j + "]/selchk/@value") == "true"){
  951. //if(model.getValue(pRef + "[" + j + "]/tclskind") == "3"){
  952. if(model.getValue(pRef + "[" + j + "]/tclskind") != "4"
  953. && model.getValue(pRef + "[" + j + "]/tclskind") != "5"){
  954. i = --j;
  955. continue;
  956. }else{
  957. i = j;
  958. }
  959. }else{
  960. i = j;
  961. continue;
  962. }
  963. //i=j;
  964. } else {
  965. //Single, Parent 항목 외.
  966. var vTestcd = model.getValue(pRef + "[" + i + "]/testcd");
  967. var vN_Inptrslt = model.getValue(pRef + "[" + i + "]/inptrslt");
  968. var vO_Inptrslt = model.getValue("/root/hidden/TestInfo/getCultrueTestInfo[testcd ='" + vTestcd + "']/inptrslt");
  969. if(vN_Inptrslt == vO_Inptrslt){
  970. if(((vTclskind_SUB != "4" && vTclskind_SUB != "5") && vN_Inptrslt == "") || ((pRsltstat == model.getValue(pRef+ "[" + i + "]/rsltstat")) &&("Y" != model.getValue(pRef+ "[" + i + "]/retestyn")))){
  971. }else{
  972. pGridID.addStatus( i, "update");
  973. isUpdate = "true";
  974. if(updateTF) {
  975. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  976. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  977. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  978. }
  979. }
  980. }else{
  981. pGridID.addStatus( i, "update");
  982. isUpdate = "true";
  983. if(updateTF) {
  984. vTestCDLIST = vTestCDLIST +"'"+ model.getvalue(pRef + "[" + j + "]/testcd")+"',";
  985. vTestCDRsltLIST = vTestCDRsltLIST + model.getvalue(pRef + "[" + j + "]/testcd") + "▦" +
  986. model.getvalue(pRef + "[" + j + "]/reptrslt")+ "▩";
  987. }
  988. }
  989. }
  990. /* * * * * * * * * * * * * * * * * * * * * * * * */
  991. } // if (model.getValue(pRef + "[" + i + "]/selimg/@value") == "true")
  992. } // for (i = 1; i <= nGridMaxRow; i++)
  993. if (isRstErr == "true") {
  994. if (isSelected == "false") {
  995. if (pIsMsg == "true") {
  996. messageBox(vMsg + "할 항목을 선택해 주십시오." , "I","");
  997. }
  998. return "2"; // 선택한항목 없음
  999. }
  1000. return "1"; // 입력결과 오류
  1001. } else {
  1002. if (isSelected == "false") {
  1003. if (pIsMsg == "true") {
  1004. messageBox(vMsg + "할 항목을 선택해 주십시오." , "I","");
  1005. }
  1006. return "2"; // 선택한항목 없음
  1007. }
  1008. if(isUpdate == "false"){
  1009. messageBox("수정된 결과값이 없습니다." , "I","");
  1010. return "1"; // 입력결과 오류
  1011. }
  1012. if(vTestCDLIST != ""){
  1013. model.setvalue("/root/hidden/DJGGParm/testcdlist", vTestCDLIST.substring(0, vTestCDLIST.length-1));
  1014. model.setvalue("/root/hidden/DJGGParm/uprsltYN","Y");
  1015. model.setvalue("/root/hidden/DJGGParm/bufDJGG", vTestCDRsltLIST);
  1016. }
  1017. else{
  1018. model.setvalue("/root/hidden/DJGGParm/uprsltYN","N");
  1019. }
  1020. return "0"; // 정상
  1021. }
  1022. }
  1023. //LIS 공통코드 조회
  1024. function fBaseInfoRef(pRef){
  1025. if(pRef == "" || pRef == "undefined" || pRef == null) return;
  1026. model.makeValue("/root/send/codeflag",pRef);
  1027. submit("TRLZZ00101");
  1028. }
  1029. function fBaseInfoRef2(pRef){
  1030. if(pRef == "" || pRef == "undefined" || pRef == null) return;
  1031. model.makeValue("/root/send/codeflag",pRef);
  1032. submit("TRLZZ00103");
  1033. }
  1034. // pKCount - 보관검체 출력수
  1035. // pPCount - 병리바코드갯수, 접수관리 화면에서는 분주 바코드 출력수
  1036. // scrflag - 병동 환자별 채혈시 true
  1037. function fLisSpcBarcodePrint(pRef, pKCount, pPCount, scrflag){
  1038. model.makeValue("/root/hidden/sendmessage", ""); //Auto Label에 보내는 값을 저장한 인스턴트 초기화
  1039. //model.setValue("/root/hidden/test/startdt", getCurrentTime());
  1040. var vInstance = document.models(0).instances(0);
  1041. var cntHR = vInstance.selectNodes(pRef).length;
  1042. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  1043. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  1044. var aFlag = new Array(); //한글 영문 구분
  1045. var aStr = "";
  1046. var iWidth = 0;
  1047. var iXPos = 0;
  1048. var iYPos = 0;
  1049. var portOpenTF = "";
  1050. var KCount = 0;
  1051. var PCount = 0;
  1052. if(pKCount == null || pKCount == ""){
  1053. KCount = 0;
  1054. }else{
  1055. KCount = pKCount;
  1056. }
  1057. if(pPCount == null || pPCount == ""){
  1058. PCount = 0;
  1059. }else{
  1060. PCount = pPCount;
  1061. }
  1062. //alert(KCount);
  1063. var scridPrint = getScreenID();
  1064. if(cntHR > 0 && sPrntKind != 0){
  1065. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  1066. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  1067. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  1068. if(sCommKind == "01") {
  1069. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  1070. } else if(sCommKind == "02") {
  1071. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  1072. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  1073. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  1074. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  1075. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  1076. CommAX.CommPort = sComm;
  1077. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  1078. //보관검체 출력 갯수가 존재하면 port 오픈 하지 않는다.
  1079. //이미 오픈 되어 있음. 보관검체 출력후 진검 바코드 갯수 체크하여 포트 클로즈 하지 않는다.
  1080. if(KCount > 0){
  1081. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  1082. portOpenTF = "TRUE";
  1083. }else if(KCount == 0){
  1084. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  1085. portOpenTF = CommAX.PortOpen("true");
  1086. // alert("portOpenTF" + portOpenTF + "!!!");
  1087. }
  1088. } else if(sCommKind == "03") {
  1089. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  1090. var sEqmtCd = model.getValue(barcdRef + "[1]/comm03/eqmtcd");
  1091. }
  1092. //alert(portOpenTF);
  1093. if( (portOpenTF == "TRUE" && sCommKind == "02")
  1094. || (sCommKind == "01")
  1095. || (sCommKind == "03")){
  1096. if(sPrntKind == "1") { //zebra
  1097. for(i=1 ; i<= cntHR;i++){
  1098. var sSndMsg = "";
  1099. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  1100. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  1101. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  1102. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  1103. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  1104. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  1105. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  1106. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  1107. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  1108. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  1109. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  1110. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  1111. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  1112. var barcdcntflag = model.getValue(pRef + "/cntflag");
  1113. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  1114. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  1115. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  1116. var sbcoll = "채혈자";
  1117. var keepspc = false;
  1118. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  1119. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  1120. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  1121. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  1122. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  1123. var dnorNm = "";
  1124. var dSexage = "";
  1125. }else{
  1126. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  1127. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  1128. }
  1129. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  1130. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  1131. //검사계명
  1132. iXPos = Number(sLeftBank);
  1133. iYPos = Number(sTopBank) + 1;
  1134. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 15, 240, 10);
  1135. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1136. //sSndMsg += CommAX.HanImageData();
  1137. }
  1138. else{
  1139. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1140. //sSndMsg += CommAX.HanImageData();
  1141. }
  1142. sTsectlblnm = sTsectlblnm.replace("▨", ",");
  1143. //---------
  1144. iWidth = 0;
  1145. aStr = "";
  1146. aFlag = new Array();
  1147. iXPos = Number(sLeftBank) + 15;
  1148. aStr = lpzfGetHanGul(sTsectlblnm, aFlag);
  1149. for (var iNo=0; iNo < aStr.length; iNo++) {
  1150. //----------------------
  1151. if (aFlag[iNo] == "E") {
  1152. iYPos = Number(sTopBank) + 2;
  1153. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  1154. iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  1155. } else {
  1156. iYPos = Number(sTopBank) + 2;
  1157. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1158. sSndMsg += CommAX.HanImageData();
  1159. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  1160. }
  1161. }
  1162. iXPos = Number(sLeftBank) + 130;
  1163. iYPos = Number(sTopBank) + 5;
  1164. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1165. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBcno + "*"); //바코드번호
  1166. iXPos = Number(sLeftBank) + 275;
  1167. iYPos = Number(sTopBank) + 5;
  1168. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  1169. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBarcdprntdt); //라벨발행일시
  1170. iXPos = Number(sLeftBank) + 60;
  1171. iYPos = Number(sTopBank) + 30;
  1172. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  1173. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 100, "*" + sBcno + "*"); // 바코드
  1174. //----110531 환자명 영문출력 수정 유민규
  1175. //iXPos = Number(sLeftBank) + 20;
  1176. //iYPos = Number(sTopBank) + 130;
  1177. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  1178. //sSndMsg += CommAX.HanImageData();
  1179. //---------
  1180. iWidth = 0;
  1181. aStr = "";
  1182. aFlag = new Array();
  1183. iXPos = Number(sLeftBank) + 20;
  1184. sPatnm = sPatnm.substr(0, 20)
  1185. aStr = lpzfGetHanGul(sPatnm, aFlag);
  1186. for (var iNo=0; iNo < aStr.length; iNo++) {
  1187. //----------------------
  1188. if (aFlag[iNo] == "E") {
  1189. iYPos = Number(sTopBank) + 133;
  1190. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  1191. iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  1192. } else {
  1193. iYPos = Number(sTopBank) + 130;
  1194. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1195. sSndMsg += CommAX.HanImageData();
  1196. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  1197. }
  1198. }
  1199. //----110531 환자명 영문출력 수정 유민규
  1200. if(barcdcntflag == "acpt" ){
  1201. if(spcacptbarcdprntcnt > 0){
  1202. if(sCommKind == "01") {
  1203. CommAX.SendMessageToLPT(sSndMsg);
  1204. sSndMsg = "";
  1205. } else if(sCommKind == "02") {
  1206. CommAX.SendMessage(sSndMsg);
  1207. sSndMsg = "";
  1208. }
  1209. }
  1210. }else{
  1211. if(sCommKind == "01") {
  1212. CommAX.SendMessageToLPT(sSndMsg);
  1213. sSndMsg = "";
  1214. } else if(sCommKind == "02") {
  1215. CommAX.SendMessage(sSndMsg);
  1216. sSndMsg = "";
  1217. }
  1218. }
  1219. iXPos = Number(sLeftBank) + 190;
  1220. iYPos = Number(sTopBank) + 135;
  1221. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  1222. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  1223. iXPos = Number(sLeftBank) + 300;
  1224. iYPos = Number(sTopBank) + 135;
  1225. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1226. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage);
  1227. iXPos = Number(sLeftBank) + 20;
  1228. iYPos = Number(sTopBank) + 160;
  1229. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1230. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  1231. iXPos = Number(sLeftBank) + 160;
  1232. iYPos = Number(sTopBank) + 160;
  1233. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1234. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  1235. iXPos = Number(sLeftBank) + 280;
  1236. iYPos = Number(sTopBank) + 160;
  1237. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1238. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTubelblnm); //용기명
  1239. iXPos = Number(sLeftBank) + 20;
  1240. iYPos = Number(sTopBank) + 180;
  1241. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1242. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSecttsect); //계검사계
  1243. if(barcdcntflag == "acpt" ){
  1244. if(spcacptbarcdprntcnt > 0){
  1245. if(sCommKind == "01") {
  1246. CommAX.SendMessageToLPT(sSndMsg);
  1247. sSndMsg = "";
  1248. } else if(sCommKind == "02") {
  1249. CommAX.SendMessage(sSndMsg);
  1250. sSndMsg = "";
  1251. }
  1252. }
  1253. }else{
  1254. if(sCommKind == "01") {
  1255. CommAX.SendMessageToLPT(sSndMsg);
  1256. sSndMsg = "";
  1257. } else if(sCommKind == "02") {
  1258. CommAX.SendMessage(sSndMsg);
  1259. sSndMsg = "";
  1260. }
  1261. }
  1262. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  1263. //---------
  1264. iWidth = 0;
  1265. aStr = "";
  1266. aFlag = new Array();
  1267. iXPos = Number(sLeftBank) + 90;
  1268. aStr = lpzfGetHanGul(sTclslblnmlist, aFlag);
  1269. for (var iNo=0; iNo < aStr.length; iNo++) {
  1270. //----------------------
  1271. if (aFlag[iNo] == "E") {
  1272. iYPos = Number(sTopBank) + 178;
  1273. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  1274. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  1275. } else {
  1276. iYPos = Number(sTopBank) + 175;
  1277. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1278. sSndMsg += CommAX.HanImageData();
  1279. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  1280. }
  1281. }
  1282. //sSndMsg += CommAX.PrtImgOut(90, 175, sTclslblnmlist.substr(0, 20), 1, 1); //검사항목라벨명
  1283. //sSndMsg += CommAX.HanImageData();
  1284. if(barcdcntflag == "acpt" ){
  1285. if(spcacptbarcdprntcnt > 0){
  1286. if(sCommKind == "01") {
  1287. CommAX.SendMessageToLPT(sSndMsg);
  1288. sSndMsg = "";
  1289. } else if(sCommKind == "02") {
  1290. CommAX.SendMessage(sSndMsg);
  1291. sSndMsg = "";
  1292. }
  1293. }
  1294. }else{
  1295. if(sCommKind == "01") {
  1296. CommAX.SendMessageToLPT(sSndMsg);
  1297. sSndMsg = "";
  1298. } else if(sCommKind == "02") {
  1299. CommAX.SendMessage(sSndMsg);
  1300. sSndMsg = "";
  1301. }
  1302. }
  1303. /* if(sBcno.substr(0,1) =="G"){ // 정은 성분헌혈실때문에 추가
  1304. iXPos = Number(sLeftBank) + 10;
  1305. iYPos = Number(sTopBank) + 232;
  1306. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "공여자 : " + dnorNm, 1, 1); // 테스트용
  1307. sSndMsg += CommAX.HanImageData(); // 테스트용
  1308. iXPos = Number(sLeftBank) + 250;
  1309. iYPos = Number(sTopBank) + 240;
  1310. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1311. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, dSexage); //검체명
  1312. }*/
  1313. //---------공여자 또는 리마크 때문에..2009.01.28.윤재한 수정
  1314. dnorNm = dnorNm + dSexage;
  1315. iWidth = 0;
  1316. aStr = "";
  1317. aFlag = new Array();
  1318. iXPos = Number(sLeftBank) + 20;
  1319. aStr = lpzfGetHanGul(dnorNm, aFlag); //공여자명은 한글, 리마크는 영문
  1320. for (var iNo=0; iNo < aStr.length; iNo++) {
  1321. //----------------------
  1322. if (aFlag[iNo] == "E") {
  1323. iYPos = Number(sTopBank) + 232;
  1324. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  1325. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  1326. } else {
  1327. iYPos = Number(sTopBank) + 232;
  1328. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1329. sSndMsg += CommAX.HanImageData();
  1330. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  1331. }
  1332. }
  1333. //if(sTclslblnmlist.substr(0, 3) == "ABO") {
  1334. if(checkABO) {
  1335. //외래채혈일때
  1336. if(scridPrint=="SMLLC00100" && scrflag){
  1337. keepspc = true;
  1338. }
  1339. //병동,환자별일때
  1340. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  1341. keepspc = true;
  1342. }
  1343. iXPos = Number(sLeftBank) + 110;
  1344. iYPos = Number(sTopBank) + 202;
  1345. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  1346. sSndMsg += CommAX.HanImageData();
  1347. }
  1348. /*위치테스트시
  1349. iXPos = Number(sLeftBank) + 30;
  1350. iYPos = Number(sTopBank) + 202;
  1351. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  1352. sSndMsg += CommAX.HanImageData();
  1353. iXPos = Number(sLeftBank) + 20;
  1354. iYPos = Number(sTopBank) + 232;
  1355. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "공여자 : ", 1, 1);
  1356. sSndMsg += CommAX.HanImageData();
  1357. */
  1358. iXPos = Number(sLeftBank) + 20;
  1359. iYPos = Number(sTopBank) + 202;
  1360. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1361. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist); //계검사계
  1362. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sInfcinfolist, 1, 1); //감염정보
  1363. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "HBV", 1, 1); //감염정보 위치테스트시
  1364. //sSndMsg += CommAX.HanImageData();
  1365. //자동화일때 밑에 줄 끄어요~
  1366. if(sSecttsect.substr(0, 1) == "A"){
  1367. //검사계명
  1368. iXPos = Number(sLeftBank);
  1369. iYPos = Number(sTopBank) + 260;
  1370. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 400, 10, 5);
  1371. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1372. //sSndMsg += CommAX.HanImageData();
  1373. }
  1374. else{
  1375. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1376. //sSndMsg += CommAX.HanImageData();
  1377. }
  1378. if(barcdcntflag == "acpt" ){
  1379. if(spcacptbarcdprntcnt > 0){
  1380. sSndMsg += lzzfBP_EndFormat(spcacptbarcdprntcnt); // 접수바코드출력수
  1381. if(sCommKind == "01") {
  1382. CommAX.SendMessageToLPT(sSndMsg);
  1383. } else if(sCommKind == "02") {
  1384. CommAX.SendMessage(sSndMsg);
  1385. }
  1386. }
  1387. }else{
  1388. sSndMsg += lzzfBP_EndFormat(bcollbarcdprntcnt);
  1389. if(sCommKind == "01") {
  1390. CommAX.SendMessageToLPT(sSndMsg);
  1391. } else if(sCommKind == "02") {
  1392. CommAX.SendMessage(sSndMsg);
  1393. }
  1394. }
  1395. if(keepspc) {
  1396. fKeepBcnoPrint("B");
  1397. }
  1398. }//end for
  1399. }//end if(sPrntKind == "1")
  1400. else if(sPrntKind == "9" || sPrntKind == "5") { //zebra GX430
  1401. for(i=1 ; i<= cntHR;i++){
  1402. var sSndMsg = "";
  1403. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  1404. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  1405. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  1406. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  1407. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  1408. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  1409. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  1410. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  1411. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  1412. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  1413. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  1414. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  1415. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  1416. var barcdcntflag = model.getValue(pRef + "/cntflag");
  1417. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  1418. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  1419. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  1420. var prcphopedd = model.getValue(pRef + "["+i+"]/prcphopedd");
  1421. var bedposcnts = model.getValue(pRef + "["+i+"]/bedposcnts");
  1422. var sbcoll = "채혈자";
  1423. var keepspc = false;
  1424. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  1425. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  1426. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  1427. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  1428. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  1429. var dnorNm = "";
  1430. var dSexage = "";
  1431. }else{
  1432. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  1433. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  1434. }
  1435. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  1436. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  1437. //검사계명
  1438. iXPos = Number(sLeftBank);
  1439. iYPos = Number(sTopBank) + 1;
  1440. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 15, 240, 10);
  1441. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1442. //sSndMsg += CommAX.HanImageData();
  1443. }
  1444. else{
  1445. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1446. //sSndMsg += CommAX.HanImageData();
  1447. }
  1448. sTsectlblnm = sTsectlblnm.replace("▨", ",");
  1449. //---------
  1450. iWidth = 0;
  1451. aStr = "";
  1452. aFlag = new Array();
  1453. iXPos = Number(sLeftBank) + 15;
  1454. aStr = lpzfGetHanGul(sTsectlblnm, aFlag);
  1455. for (var iNo=0; iNo < aStr.length; iNo++) {
  1456. //----------------------
  1457. if (aFlag[iNo] == "E") {
  1458. iYPos = Number(sTopBank) + 2;
  1459. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  1460. iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  1461. } else {
  1462. iYPos = Number(sTopBank) + 2;
  1463. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 2, 1);
  1464. sSndMsg += CommAX.HanImageData();
  1465. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  1466. }
  1467. }
  1468. iXPos = Number(sLeftBank) + 220;
  1469. iYPos = Number(sTopBank) + 5;
  1470. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1471. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBcno + "*"); //바코드번호
  1472. //iXPos = Number(sLeftBank) + 485;
  1473. //iYPos = Number(sTopBank) + 5;
  1474. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1475. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBarcdprntdt); //라벨발행일시
  1476. iXPos = Number(sLeftBank) + 500;
  1477. iYPos = Number(sTopBank) + 5;
  1478. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1479. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  1480. iXPos = Number(sLeftBank) + 90;
  1481. iYPos = Number(sTopBank) + 30;
  1482. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  1483. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 120, "*" + sBcno + "*"); // 바코드
  1484. //iXPos = Number(sLeftBank) + 20;
  1485. //iYPos = Number(sTopBank) + 180;
  1486. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  1487. //sSndMsg += CommAX.HanImageData();
  1488. iXPos = Number(sLeftBank) + 20;
  1489. iYPos = Number(sTopBank) + 160;
  1490. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1491. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  1492. if(barcdcntflag == "acpt" ){
  1493. if(spcacptbarcdprntcnt > 0){
  1494. if(sCommKind == "01") {
  1495. CommAX.SendMessageToLPT(sSndMsg);
  1496. sSndMsg = "";
  1497. } else if(sCommKind == "02") {
  1498. CommAX.SendMessage(sSndMsg);
  1499. sSndMsg = "";
  1500. }
  1501. }
  1502. }else{
  1503. if(sCommKind == "01") {
  1504. CommAX.SendMessageToLPT(sSndMsg);
  1505. sSndMsg = "";
  1506. } else if(sCommKind == "02") {
  1507. CommAX.SendMessage(sSndMsg);
  1508. sSndMsg = "";
  1509. }
  1510. }
  1511. //----110531 환자명 영문출력 수정 유민규
  1512. //iXPos = Number(sLeftBank) + 250;
  1513. //iYPos = Number(sTopBank) + 157;
  1514. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 2, 1);
  1515. //sSndMsg += CommAX.HanImageData();
  1516. //---------
  1517. iWidth = 0;
  1518. aStr = "";
  1519. aFlag = new Array();
  1520. iXPos = Number(sLeftBank) + 250;
  1521. sPatnm = sPatnm.substr(0, 20)
  1522. aStr = lpzfGetHanGul(sPatnm, aFlag);
  1523. for (var iNo=0; iNo < aStr.length; iNo++) {
  1524. //----------------------
  1525. if (aFlag[iNo] == "E") {
  1526. iYPos = Number(sTopBank) + 160;
  1527. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  1528. iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  1529. } else {
  1530. iYPos = Number(sTopBank) + 157;
  1531. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 2, 1); //20120504 환자명 수정
  1532. sSndMsg += CommAX.HanImageData();
  1533. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  1534. }
  1535. }
  1536. //----110531 환자명 영문출력 수정 유민규
  1537. iXPos = Number(sLeftBank) + 20;
  1538. iYPos = Number(sTopBank) + 185;
  1539. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1540. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTubelblnm); //용기명
  1541. //iXPos = Number(sLeftBank) + 430;
  1542. //iYPos = Number(sTopBank) + 190;
  1543. //sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1544. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage);
  1545. //iXPos = Number(sLeftBank) + 20;
  1546. //iYPos = Number(sTopBank) + 210;
  1547. //sSndMsg += lzzfBP_ChangeFont("F", 20, 20); // 폰트 설정
  1548. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  1549. if(sBcno.substr(0, 1) == "E" && bedposcnts != ""){
  1550. iXPos = Number(sLeftBank) + 450;
  1551. iYPos = Number(sTopBank) + 160;
  1552. //sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1553. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  1554. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, bedposcnts, 1, 1); //구역베드
  1555. sSndMsg += CommAX.HanImageData();
  1556. }else{
  1557. iXPos = Number(sLeftBank) + 450;
  1558. iYPos = Number(sTopBank) + 160;
  1559. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1560. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  1561. }
  1562. iXPos = Number(sLeftBank) + 480;
  1563. iYPos = Number(sTopBank) + 185;
  1564. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1565. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, prcphopedd); //처방희망일시
  1566. //iXPos = Number(sLeftBank) + 480;
  1567. //iYPos = Number(sTopBank) + 185;
  1568. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1569. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBarcdprntdt); //라벨발행일시
  1570. //iXPos = Number(sLeftBank) + 430;
  1571. //iYPos = Number(sTopBank) + 210;
  1572. //sSndMsg += lzzfBP_ChangeFont("F", 20, 20); // 폰트 설정
  1573. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTubelblnm); //용기명
  1574. //iXPos = Number(sLeftBank) + 20;
  1575. //iYPos = Number(sTopBank) + 265;
  1576. //sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1577. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSecttsect); //계검사계
  1578. if(barcdcntflag == "acpt" ){
  1579. if(spcacptbarcdprntcnt > 0){
  1580. if(sCommKind == "01") {
  1581. CommAX.SendMessageToLPT(sSndMsg);
  1582. sSndMsg = "";
  1583. } else if(sCommKind == "02") {
  1584. CommAX.SendMessage(sSndMsg);
  1585. sSndMsg = "";
  1586. }
  1587. }
  1588. }else{
  1589. if(sCommKind == "01") {
  1590. CommAX.SendMessageToLPT(sSndMsg);
  1591. sSndMsg = "";
  1592. } else if(sCommKind == "02") {
  1593. CommAX.SendMessage(sSndMsg);
  1594. sSndMsg = "";
  1595. }
  1596. }
  1597. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  1598. //---------
  1599. iWidth = 0;
  1600. aStr = "";
  1601. aFlag = new Array();
  1602. iXPos = Number(sLeftBank);
  1603. iYPos = Number(sTopBank) + 212;
  1604. //iXPos = Number(sLeftBank)+ 90;
  1605. /*
  1606. aStr = lpzfGetHanGul(sTclslblnmlist, aFlag);
  1607. for (var iNo=0; iNo < aStr.length; iNo++) {
  1608. //----------------------
  1609. if (aFlag[iNo] == "E") {
  1610. iYPos = Number(sTopBank) + 215;
  1611. sSndMsg += "^CFC30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  1612. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  1613. } else {
  1614. iYPos = Number(sTopBank) + 212;
  1615. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1616. sSndMsg += CommAX.HanImageData();
  1617. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  1618. }
  1619. }*/
  1620. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sTclslblnmlist.substr(0, 20), 1, 1); //검사항목라벨명
  1621. sSndMsg += CommAX.HanImageData();
  1622. if(barcdcntflag == "acpt" ){
  1623. if(spcacptbarcdprntcnt > 0){
  1624. if(sCommKind == "01") {
  1625. CommAX.SendMessageToLPT(sSndMsg);
  1626. sSndMsg = "";
  1627. } else if(sCommKind == "02") {
  1628. CommAX.SendMessage(sSndMsg);
  1629. sSndMsg = "";
  1630. }
  1631. }
  1632. }else{
  1633. if(sCommKind == "01") {
  1634. CommAX.SendMessageToLPT(sSndMsg);
  1635. sSndMsg = "";
  1636. } else if(sCommKind == "02") {
  1637. CommAX.SendMessage(sSndMsg);
  1638. sSndMsg = "";
  1639. }
  1640. }
  1641. /* if(sBcno.substr(0,1) =="G"){ // 정은 성분헌혈실때문에 추가
  1642. iXPos = Number(sLeftBank) + 10;
  1643. iYPos = Number(sTopBank) + 232;
  1644. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "공여자 : " + dnorNm, 1, 1); // 테스트용
  1645. sSndMsg += CommAX.HanImageData(); // 테스트용
  1646. iXPos = Number(sLeftBank) + 250;
  1647. iYPos = Number(sTopBank) + 240;
  1648. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  1649. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, dSexage); //검체명
  1650. }*/
  1651. //---------공여자 또는 리마크 때문에..2009.01.28.윤재한 수정
  1652. dnorNm = dnorNm + dSexage;
  1653. iWidth = 0;
  1654. aStr = "";
  1655. aFlag = new Array();
  1656. iXPos = Number(sLeftBank) + 20;
  1657. aStr = lpzfGetHanGul(dnorNm, aFlag); //공여자명은 한글, 리마크는 영문
  1658. for (var iNo=0; iNo < aStr.length; iNo++) {
  1659. //----------------------
  1660. if (aFlag[iNo] == "E") {
  1661. iYPos = Number(sTopBank) + 272;
  1662. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  1663. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  1664. } else {
  1665. iYPos = Number(sTopBank) + 272;
  1666. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1667. sSndMsg += CommAX.HanImageData();
  1668. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  1669. }
  1670. }
  1671. //if(sTclslblnmlist.substr(0, 3) == "ABO") {
  1672. if(checkABO) {
  1673. //외래채혈일때
  1674. if(scridPrint=="SMLLC00100" && scrflag){
  1675. keepspc = true;
  1676. }
  1677. //병동,환자별일때
  1678. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  1679. keepspc = true;
  1680. }
  1681. //iXPos = Number(sLeftBank) + 110;
  1682. //iYPos = Number(sTopBank) + 252;
  1683. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  1684. // sSndMsg += CommAX.HanImageData();
  1685. }
  1686. /*위치테스트시
  1687. iXPos = Number(sLeftBank) + 30;
  1688. iYPos = Number(sTopBank) + 202;
  1689. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  1690. sSndMsg += CommAX.HanImageData();
  1691. iXPos = Number(sLeftBank) + 20;
  1692. iYPos = Number(sTopBank) + 232;
  1693. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "공여자 : ", 1, 1);
  1694. sSndMsg += CommAX.HanImageData();
  1695. */
  1696. iXPos = Number(sLeftBank) + 20;
  1697. iYPos = Number(sTopBank) + 240;
  1698. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  1699. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist);
  1700. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sInfcinfolist, 1, 1); //감염정보
  1701. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "HBV", 1, 1); //감염정보 위치테스트시
  1702. //sSndMsg += CommAX.HanImageData();
  1703. //자동화일때 밑에 줄 끄어요~
  1704. if(sSecttsect.substr(0, 1) == "A"){
  1705. //검사계명
  1706. iXPos = Number(sLeftBank);
  1707. iYPos = Number(sTopBank) + 290;
  1708. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 400, 10, 5);
  1709. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1710. //sSndMsg += CommAX.HanImageData();
  1711. }
  1712. else{
  1713. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  1714. //sSndMsg += CommAX.HanImageData();
  1715. }
  1716. if(barcdcntflag == "acpt" ){
  1717. if(spcacptbarcdprntcnt > 0){
  1718. sSndMsg += lzzfBP_EndFormat(spcacptbarcdprntcnt); // 접수바코드출력수
  1719. if(sCommKind == "01") {
  1720. CommAX.SendMessageToLPT(sSndMsg);
  1721. } else if(sCommKind == "02") {
  1722. CommAX.SendMessage(sSndMsg);
  1723. }
  1724. }
  1725. }else{
  1726. sSndMsg += lzzfBP_EndFormat(bcollbarcdprntcnt);
  1727. if(sCommKind == "01") {
  1728. CommAX.SendMessageToLPT(sSndMsg);
  1729. } else if(sCommKind == "02") {
  1730. CommAX.SendMessage(sSndMsg);
  1731. }
  1732. }
  1733. if(keepspc) {
  1734. fKeepBcnoPrint("B");
  1735. }
  1736. }//end for
  1737. }//end if(sPrntKind == "1")
  1738. else if(sPrntKind == "3" && sCommKind == "03"){ //Auto labeler(Ginus)이고 TCP/IP 일때
  1739. for(i=1 ; i<= cntHR;i++){
  1740. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  1741. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  1742. var sSex = model.getvalue(pRef+ "["+i+"]/sex");
  1743. var sAge = model.getvalue(pRef+ "["+i+"]/age");
  1744. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  1745. var sSpcfcntslist = model.getvalue(pRef+ "["+i+"]/spcfcntslist");
  1746. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  1747. var sLpflag = model.getvalue(pRef+ "["+i+"]/lpflag");
  1748. var sDeptnm = model.getvalue(pRef+ "["+i+"]/deptnm");
  1749. var sWardroom = model.getvalue(pRef+ "["+i+"]/wardroom");
  1750. var sTubecd = model.getvalue(pRef+ "["+i+"]/tubecd");
  1751. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  1752. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  1753. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  1754. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  1755. var sTclscdlist = model.getvalue(pRef+ "["+i+"]/tclscdlist");
  1756. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  1757. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  1758. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  1759. var barcdcntflag = model.getValue(pRef + "/cntflag");
  1760. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  1761. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  1762. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  1763. //병리 인스턴스
  1764. var sSpctranseqno = model.getValue(pRef + "["+i+"]/spctranseqno");
  1765. var sSpctotalcnt = model.getValue(pRef + "["+i+"]/spctotalcnt");
  1766. var sOrgprcpnm = model.getValue(pRef + "["+i+"]/orgprcpnm");
  1767. var sAddprcpnm = model.getValue(pRef + "["+i+"]/addprcpnm");
  1768. var sOrddrnm = model.getValue(pRef + "["+i+"]/orddrnm");
  1769. var sBcollcau = model.getValue(pRef + "["+i+"]/bcollcau");
  1770. var sPrcpdd = model.getValue(pRef + "["+i+"]/prcpdd"); //병리 바코드 처방일자 추가(2009-09-08)
  1771. var keepspc = false;
  1772. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  1773. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  1774. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  1775. var dnorNm = "";
  1776. }else{
  1777. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm") + model.getValue(pRef + "["+i+"]/dnorsexage");
  1778. }
  1779. if((i == 1) ||
  1780. (model.getvalue(pRef+ "["+ (i-1) +"]/pid") != model.getvalue(pRef+ "["+i+"]/pid"))) { //등록번호가 다르다(일괄발행시)
  1781. sSndMsg = "^^^P"; //환자정보 시작
  1782. //등록번호, 환자명, 성별, 나이
  1783. sSndMsg += "^PI" + sPid + "^PN" + sPatnm + "^PS" + sSex + "^PA" + sAge;
  1784. //장비번호 선택
  1785. sSndMsg += "^PB" + sEqmtCd;
  1786. //감염정보
  1787. if(sInfcinfolist != "") {
  1788. sSndMsg += "^P3" + sInfcinfolist;
  1789. }
  1790. //환자특이사항
  1791. if(sSpcfcntslist != "") {
  1792. sSndMsg += "^P4" + sSpcfcntslist;
  1793. }
  1794. //채혈시 주의사항
  1795. if(sBcollcau != "") {
  1796. sSndMsg += "^P5" + sBcollcau;
  1797. }
  1798. sSndMsg += "^^^_P"; //환자정보 끝.
  1799. sSndMsg += "^^^S"; //채혈정보 시작.
  1800. }
  1801. sSndMsg += "^SS"; //채혈정보 DATA 시작.
  1802. sSndMsg += "^SA" + sBcno + "^SB" + sLpflag; //검체번호, 진검병리구분
  1803. //진료과, 병동/병실, 용기코드
  1804. sSndMsg += "^SC" + sDeptnm + "^SD" + sWardroom + "^SE" + sTubecd;
  1805. //용기명
  1806. if(sTubelblnm != "") {
  1807. sSndMsg += "^SF" + sTubelblnm;
  1808. }
  1809. //시행부서코드, 시행부서명칭, 바코드출력일시, 검사항목코드리스트
  1810. sSndMsg += "^SG" + sSecttsect + "^SH" + sTsectlblnm + "^SI" + sBarcdprntdt + "^SJ" + sTclscdlist;
  1811. //검사항목명칭리스트, 검체명칭
  1812. sSndMsg += "^SK" + sTclslblnmlist + "^SL" + sSpclblnm;
  1813. //응급여부
  1814. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  1815. sSndMsg += "^SMY";
  1816. }
  1817. else{
  1818. sSndMsg += "^SMN";
  1819. }
  1820. ////공여자(리마크)
  1821. if(dnorNm != "") {
  1822. sSndMsg += "^SN" + dnorNm;
  1823. }
  1824. //병리인 경우
  1825. if(sLpflag == "P") {
  1826. //검체순번, 검체토탈갯구, 원처방명, 추가처방명, 진료의사명, 처방일자(2009-09-08 추가)
  1827. sSndMsg += "^SO" + sSpctranseqno + "^SP" + sSpctotalcnt + "^SQ" + sOrgprcpnm + "^SR" + sAddprcpnm + "^ST" + sOrddrnm + "^S2" + sPrcpdd;
  1828. }
  1829. sSndMsg += "^SU" + bcollbarcdprntcnt; //바코드갯수
  1830. sSndMsg += "^_SS"; //채혈정보 DATA 종료
  1831. //if(sTclslblnmlist.substr(0, 3) == "ABO") {
  1832. if(checkABO) {
  1833. //외래채혈일때
  1834. if(scridPrint=="SMLLC00100" && scrflag){
  1835. keepspc = true;
  1836. }
  1837. //병동,환자별일때
  1838. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  1839. keepspc = true;
  1840. }
  1841. }
  1842. if(keepspc) {
  1843. //ABO 바코드 밑에 보관검체 출력하기 위해. 인스턴트에 지금까지의 sendmessage 값을 저장
  1844. model.makeValue("/root/hidden/sendmessage", model.getValue("/root/hidden/sendmessage") + sSndMsg);
  1845. fKeepBcnoPrint("B");
  1846. sSndMsg = model.getValue("/root/hidden/sendmessage");
  1847. //보관검체까지의 값을 sendmessage 변수에 넣는다.(한꺼번에 전송을 위하여)
  1848. }
  1849. if((i == cntHR) ||
  1850. (model.getvalue(pRef+ "["+ (i+1) +"]/pid") != model.getvalue(pRef+ "["+i+"]/pid"))) { //등록번호가 다르다(일괄발행시)
  1851. sSndMsg += "^^^_S"; //채혈정보 종료
  1852. }
  1853. }//end for
  1854. var sReturnValue = AutoLabel.TRANSDATA(0, sSetUpVal, sSndMsg); //전송
  1855. }//end else if(sPrntKind == "3" && sCommKind == "03")
  1856. else if(sPrntKind == "4" && sCommKind == "03"){ //Auto labeler(Robo)이고 TCP/IP 일때
  1857. }//end else if(sPrntKind == "4" && sCommKind == "03")
  1858. //portopen이 true이고 통신유형이 com이고 출력할 병리 바코드가 없을때 port close
  1859. if( portOpenTF == "TRUE" && sCommKind == "02" && PCount == 0){
  1860. CommAX.PortOpen("false");
  1861. }
  1862. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  1863. messageBox("아래 사항을 확인후 재출력해주십시오."
  1864. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  1865. + " \n 2.케이블 확인"
  1866. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  1867. return;
  1868. }
  1869. }
  1870. //model.setValue("/root/hidden/test/enddt", getCurrentTime());
  1871. }
  1872. // pKCount - 보관검체 출력수
  1873. // pPCount - 병리바코드갯수, 접수관리 화면에서는 분주 바코드 출력수
  1874. // scrflag - 병동 환자별 채혈시 true
  1875. function fLisSpcBarcodePrint2(pRef, pKCount, pPCount, scrflag){
  1876. model.makeValue("/root/hidden/sendmessage", ""); //Auto Label에 보내는 값을 저장한 인스턴트 초기화
  1877. //model.setValue("/root/hidden/test/startdt", getCurrentTime());
  1878. var vInstance = document.models(0).instances(0);
  1879. var cntHR = vInstance.selectNodes(pRef).length;
  1880. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  1881. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  1882. var aFlag = new Array(); //한글 영문 구분
  1883. var aStr = "";
  1884. //var iWidth = 0;
  1885. var iXPos = 0;
  1886. var iYPos = 0;
  1887. //var portOpenTF = "";
  1888. var KCount = 0;
  1889. var PCount = 0;
  1890. if(pKCount == null || pKCount == ""){
  1891. KCount = 0;
  1892. }else{
  1893. KCount = pKCount;
  1894. }
  1895. if(pPCount == null || pPCount == ""){
  1896. PCount = 0;
  1897. }else{
  1898. PCount = pPCount;
  1899. }
  1900. var scridPrint = getScreenID();
  1901. if(cntHR > 0 && sPrntKind != 0){
  1902. //var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  1903. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  1904. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  1905. //alert(portOpenTF);
  1906. for(i=1 ; i<= cntHR;i++){
  1907. if(sPrntKind == "10"){ //zebra EPL
  1908. var sSndMsg = "";
  1909. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  1910. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  1911. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  1912. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  1913. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  1914. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  1915. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  1916. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  1917. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  1918. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  1919. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  1920. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  1921. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  1922. var barcdcntflag = model.getValue(pRef + "/cntflag");
  1923. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  1924. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  1925. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  1926. var prcphopedd = model.getValue(pRef + "["+i+"]/prcphopedd");
  1927. var bedposcnts = model.getValue(pRef + "["+i+"]/bedposcnts");
  1928. var sbcoll = "채혈자";
  1929. var keepspc = false;
  1930. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  1931. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  1932. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  1933. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  1934. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  1935. var dnorNm = "";
  1936. var dSexage = "";
  1937. }else{
  1938. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  1939. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  1940. }
  1941. if(i == 1){
  1942. //sSndMsg += "^@" + "\n";
  1943. //sSndMsg += "^default" + "\n";
  1944. }
  1945. sSndMsg += "N" + "\n";
  1946. sSndMsg += "JF" + "\n";
  1947. sSndMsg += "D9" + "\n";
  1948. sSndMsg += "S2" + "\n";
  1949. sSndMsg += "Q223,27" + "\n";
  1950. sSndMsg += "q456" + "\n";
  1951. iXPos = Number(sLeftBank);
  1952. iYPos = Number(sTopBank);
  1953. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sTsectlblnm + "\""+ "\n";
  1954. iXPos = Number(sLeftBank) + 140;
  1955. iYPos = Number(sTopBank) + 5;
  1956. sSndMsg += "A" + iXPos + "," + iYPos + ",0,2,1,1,N," + "\"" + "*" + sBcno + "*" + "\""+ "\n";
  1957. iXPos = Number(sLeftBank) + 300;
  1958. iYPos = Number(sTopBank) + 0;
  1959. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sSpclblnm + "\""+ "\n";
  1960. iXPos = Number(sLeftBank) + 25;
  1961. iYPos = Number(sTopBank) + 28;
  1962. sSndMsg += "B" + iXPos + "," + iYPos + ",0,3,2,5,93,N," + "\"" + sBcno + "\""+ "\n";
  1963. iXPos = Number(sLeftBank);
  1964. iYPos = Number(sTopBank) + 124;
  1965. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sPid + "\""+ "\n";
  1966. iXPos = Number(sLeftBank) + 120;
  1967. iYPos = Number(sTopBank) + 120;
  1968. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,2,1,N," + "\"" + sPatnm + "\""+ "\n"; // 글짜크기 변경 20120504
  1969. iXPos = Number(sLeftBank) + 330;
  1970. iYPos = Number(sTopBank) + 124;
  1971. //sSndMsg += "A" + iXPos + "," + iYPos + ",0,1,1,1,N," + "\"" + sBarcdprntdt + "\""+ "\n";
  1972. sSndMsg += "A" + iXPos + "," + iYPos + ",0,1,1,1,N," + "\"" + prcphopedd + "\""+ "\n";
  1973. iXPos = Number(sLeftBank);
  1974. iYPos = Number(sTopBank) + 147;
  1975. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sTubelblnm + "\""+ "\n";
  1976. iXPos = Number(sLeftBank) + 170;
  1977. iYPos = Number(sTopBank) + 147;
  1978. if(sBcno.substr(0, 1) == "E" && bedposcnts != ""){
  1979. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + bedposcnts + "\""+ "\n";
  1980. } else {
  1981. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sDeptroom + "\""+ "\n";
  1982. }
  1983. iXPos = Number(sLeftBank);
  1984. iYPos = Number(sTopBank) + 167;
  1985. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sTclslblnmlist + "\""+ "\n";
  1986. iXPos = Number(sLeftBank);
  1987. //감염정보 특수문자 추가 20120402
  1988. if(sInfcinfolist != ""){
  1989. sInfcinfolist = "*"+ sInfcinfolist +"*";
  1990. }
  1991. iYPos = Number(sTopBank) + 190;
  1992. sSndMsg += "A" + iXPos + "," + iYPos + ",0,4,1,1,N," + "\"" + sInfcinfolist + "\""+ "\n"; //20120328
  1993. sSndMsg += ""+ "\n";
  1994. sSndMsg += "P"+ bcollbarcdprntcnt + "\n";
  1995. CommAX.SendMsg(sSndMsg);
  1996. //alert(sSndMsg); //20120306
  1997. }else if(sPrntKind == "9") { //zebra GX430
  1998. var sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  1999. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  2000. var sTsectlblnm2 = model.getvalue(pRef+ "["+i+"]/tsectlblnm2");
  2001. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  2002. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  2003. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  2004. var sPatnm2 = model.getvalue(pRef+ "["+i+"]/patnm2");
  2005. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  2006. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  2007. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  2008. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  2009. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  2010. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  2011. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  2012. var sTclslblnmlist2 = model.getvalue(pRef+ "["+i+"]/tclslblnmlist2");
  2013. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  2014. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  2015. var barcdcntflag = model.getValue(pRef + "/cntflag");
  2016. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  2017. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  2018. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  2019. var prcphopedd = model.getValue(pRef + "["+i+"]/prcphopedd");
  2020. var bedposcnts = model.getValue(pRef + "["+i+"]/bedposcnts");
  2021. var sbcoll = "채혈자";
  2022. var keepspc = false;
  2023. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  2024. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  2025. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  2026. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  2027. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  2028. var dnorNm = "";
  2029. var dSexage = "";
  2030. }else{
  2031. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  2032. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  2033. }
  2034. sSndMsg += lzzfBP_StartFormat(0, 0);
  2035. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  2036. iXPos = Number(sLeftBank);
  2037. iYPos = Number(sTopBank) + 1;
  2038. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 15, 240, 10);
  2039. }
  2040. iXPos = Number(sLeftBank) + 200;
  2041. iYPos = Number(sTopBank) + 5;
  2042. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2043. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBcno + "*"); //바코드번호
  2044. iXPos = Number(sLeftBank)+ 1;
  2045. iYPos = Number(sTopBank) + 1;
  2046. sSndMsg += "^CI14^FO" + iXPos + ","+ iYPos + "^AQN,30,30^FH^FD"+ sTsectlblnm +"^FS^CI1";
  2047. iXPos = Number(sLeftBank) + 500;
  2048. iYPos = Number(sTopBank) + 5;
  2049. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2050. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  2051. iXPos = Number(sLeftBank) + 70;
  2052. iYPos = Number(sTopBank) + 30;
  2053. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  2054. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 120, "*" + sBcno + "*"); // 바코드
  2055. iXPos = Number(sLeftBank) + 20;
  2056. iYPos = Number(sTopBank) + 160;
  2057. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2058. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  2059. // infection 구분
  2060. //iXPos = Number(sLeftBank) + 230;
  2061. //iYPos = Number(sTopBank) + 160;
  2062. //sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2063. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, pInfcInit); //감염구분
  2064. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "#"); //감염구분
  2065. //
  2066. //----110531 환자명 영문출력 수정 유민규
  2067. //iXPos = Number(sLeftBank) + 250;
  2068. //iYPos = Number(sTopBank) + 157;
  2069. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 2, 1);
  2070. //sSndMsg += CommAX.HanImageData();
  2071. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FH^FD"+ sPatnm +"^FS^CI1";
  2072. //---------
  2073. iWidth = 0;
  2074. aStr = "";
  2075. aFlag = new Array();
  2076. iXPos = Number(sLeftBank) + 250;
  2077. //sPatnm = sPatnm.substr(0, 20)
  2078. aStr = lpzfGetHanGul(sPatnm, aFlag);
  2079. for (var iNo=0; iNo < aStr.length; iNo++) {
  2080. //----------------------
  2081. if (aFlag[iNo] == "E") {
  2082. iYPos = Number(sTopBank) + 160;
  2083. //iXPos = Number(iXPos) + Number(iWidth);
  2084. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  2085. iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  2086. } else {
  2087. iYPos = Number(sTopBank) + 160;
  2088. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  2089. iWidth = iWidth + (Number(aStr[iNo].length) * 30);
  2090. }
  2091. }
  2092. //----110531 환자명 영문출력 수정 유민규
  2093. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  2094. iWidth = 0;
  2095. aStr = "";
  2096. aFlag = new Array();
  2097. iXPos = Number(sLeftBank) + 20;
  2098. aStr = lpzfGetHanGul(sTclslblnmlist, aFlag); //공여자명은 한글, 리마크는 영문
  2099. for (var iNo=0; iNo < aStr.length; iNo++) {
  2100. //----------------------
  2101. if (aFlag[iNo] == "E") {
  2102. iYPos = Number(sTopBank) + 215;
  2103. iXPos = Number(sLeftBank) + Number(iWidth);
  2104. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2105. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aStr[iNo]); //용기명
  2106. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  2107. } else {
  2108. iYPos = Number(sTopBank) + 215;
  2109. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  2110. iWidth = iWidth + (Number(aStr[iNo].length) * 28);
  2111. }
  2112. }
  2113. //iXPos = Number(sLeftBank) + 1;
  2114. //iYPos = Number(sTopBank) + 215;
  2115. //sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FH^FD"+ sTclslblnmlist +"^FS^CI1";
  2116. iXPos = Number(sLeftBank) + 20;
  2117. iYPos = Number(sTopBank) + 185;
  2118. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2119. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTubelblnm); //용기명
  2120. if(sBcno.substr(0, 1) == "E" && bedposcnts != ""){
  2121. iWidth = 0;
  2122. aStr = "";
  2123. aFlag = new Array();
  2124. iXPos = Number(sLeftBank) + 450;
  2125. aStr = lpzfGetHanGul(bedposcnts, aFlag); //구역배드
  2126. for (var iNo=0; iNo < aStr.length; iNo++) {
  2127. //----------------------
  2128. if (aFlag[iNo] == "E") {
  2129. iYPos = Number(sTopBank) + 160;
  2130. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  2131. iWidth = iWidth + (Number(aStr[iNo].length) * 18);
  2132. } else {
  2133. iYPos = Number(sTopBank) + 160;
  2134. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2135. sSndMsg += CommAX.HanImageData();
  2136. iWidth = iWidth + (Number(aStr[iNo].length) * 20);
  2137. }
  2138. }
  2139. }else{
  2140. iXPos = Number(sLeftBank) + 450;
  2141. iYPos = Number(sTopBank) + 160;
  2142. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2143. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  2144. }
  2145. //iXPos = Number(sLeftBank) + 480;
  2146. //iYPos = Number(sTopBank) + 185;
  2147. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2148. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBarcdprntdt); //라벨발행일시
  2149. iXPos = Number(sLeftBank) + 480;
  2150. iYPos = Number(sTopBank) + 185;
  2151. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2152. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, prcphopedd); //처방희망 일시
  2153. //---------공여자 또는 리마크 때문에..2009.01.28.윤재한 수정
  2154. dnorNm = dnorNm + dSexage;
  2155. iWidth = 0;
  2156. aStr = "";
  2157. aFlag = new Array();
  2158. iXPos = Number(sLeftBank) + 20;
  2159. aStr = lpzfGetHanGul(dnorNm, aFlag); //공여자명은 한글, 리마크는 영문
  2160. for (var iNo=0; iNo < aStr.length; iNo++) {
  2161. //----------------------
  2162. if (aFlag[iNo] == "E") {
  2163. iYPos = Number(sTopBank) + 272;
  2164. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  2165. iWidth = iWidth + (Number(aStr[iNo].length) * 18);
  2166. } else {
  2167. iYPos = Number(sTopBank) + 272;
  2168. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2169. sSndMsg += CommAX.HanImageData();
  2170. iWidth = iWidth + (Number(aStr[iNo].length) * 20);
  2171. }
  2172. }
  2173. //if(sTclslblnmlist.substr(0, 3) == "ABO") {
  2174. if(checkABO) {
  2175. //외래채혈일때
  2176. if(scridPrint=="SMLLC00100" && scrflag){
  2177. keepspc = true;
  2178. }
  2179. //병동,환자별일때
  2180. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  2181. keepspc = true;
  2182. }
  2183. //iXPos = Number(sLeftBank) + 110;
  2184. //iYPos = Number(sTopBank) + 252;
  2185. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  2186. // sSndMsg += CommAX.HanImageData();
  2187. }
  2188. /*위치테스트시
  2189. iXPos = Number(sLeftBank) + 30;
  2190. iYPos = Number(sTopBank) + 202;
  2191. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  2192. sSndMsg += CommAX.HanImageData();
  2193. iXPos = Number(sLeftBank) + 20;
  2194. iYPos = Number(sTopBank) + 232;
  2195. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "공여자 : ", 1, 1);
  2196. sSndMsg += CommAX.HanImageData();
  2197. */
  2198. //감염정보 특수문자 추가 20120402
  2199. if(sInfcinfolist != ""){
  2200. sInfcinfolist = "*"+ sInfcinfolist +"*";
  2201. }
  2202. iXPos = Number(sLeftBank) + 20;
  2203. iYPos = Number(sTopBank) + 240;
  2204. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정 20120328
  2205. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist);
  2206. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sInfcinfolist, 1, 1); //감염정보
  2207. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "HBV", 1, 1); //감염정보 위치테스트시
  2208. //sSndMsg += CommAX.HanImageData();
  2209. //자동화일때 밑에 줄 끄어요~
  2210. if(sSecttsect.substr(0, 1) == "A"){
  2211. //검사계명
  2212. iXPos = Number(sLeftBank);
  2213. iYPos = Number(sTopBank) + 290;
  2214. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 400, 10, 5);
  2215. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  2216. //sSndMsg += CommAX.HanImageData();
  2217. }
  2218. else{
  2219. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  2220. //sSndMsg += CommAX.HanImageData();
  2221. }
  2222. sSndMsg += lzzfBP_EndFormat(bcollbarcdprntcnt);
  2223. //sSndMsg = "^XA^CI14,21,36^FO100,200^A0N50,50^FD가나다^FS^XZ";
  2224. CommAX.SendMsg(sSndMsg);
  2225. //if(keepspc) {
  2226. // fKeepBcnoPrint("B");
  2227. //}
  2228. }else if(sPrntKind == "11") { //zebra GX420
  2229. for(i=1 ; i<= cntHR;i++){
  2230. var sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  2231. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  2232. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  2233. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  2234. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  2235. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  2236. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  2237. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  2238. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  2239. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  2240. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  2241. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  2242. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  2243. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  2244. var barcdcntflag = model.getValue(pRef + "/cntflag");
  2245. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  2246. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  2247. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  2248. var prcphopedd = model.getValue(pRef + "["+i+"]/prcphopedd");
  2249. var bedposcnts = model.getValue(pRef + "["+i+"]/bedposcnts");
  2250. var sbcoll = "채혈자";
  2251. var keepspc = false;
  2252. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  2253. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  2254. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  2255. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  2256. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  2257. var dnorNm = "";
  2258. var dSexage = "";
  2259. }else{
  2260. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  2261. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  2262. }
  2263. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  2264. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  2265. //검사계명
  2266. iXPos = Number(sLeftBank);
  2267. iYPos = Number(sTopBank) + 1;
  2268. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 15, 240, 10);
  2269. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  2270. //sSndMsg += CommAX.HanImageData();
  2271. }
  2272. else{
  2273. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  2274. //sSndMsg += CommAX.HanImageData();
  2275. }
  2276. sTsectlblnm = sTsectlblnm.replace("▨", ",");
  2277. //---------
  2278. iWidth = 0;
  2279. aStr = "";
  2280. aFlag = new Array();
  2281. iXPos = Number(sLeftBank) + 15;
  2282. /*
  2283. if (aFlag[iNo] == "E") {
  2284. iYPos = Number(sTopBank) + 215;
  2285. iXPos = Number(sLeftBank) + Number(iWidth);
  2286. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  2287. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aStr[iNo]); //용기명
  2288. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  2289. } else {
  2290. iYPos = Number(sTopBank) + 215;
  2291. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  2292. iWidth = iWidth + (Number(aStr[iNo].length) * 28);
  2293. }*/
  2294. aStr = lpzfGetHanGul(sTsectlblnm, aFlag);
  2295. for (var iNo=0; iNo < aStr.length; iNo++) {
  2296. //----------------------
  2297. if (aFlag[iNo] == "E") {
  2298. iYPos = Number(sTopBank) + 2;
  2299. sSndMsg += "^CFF20,20^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  2300. iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  2301. } else {
  2302. iYPos = Number(sTopBank) + 2;
  2303. //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2304. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  2305. //sSndMsg += CommAX.HanImageData();
  2306. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  2307. }
  2308. }
  2309. iXPos = Number(sLeftBank) + 130;
  2310. iYPos = Number(sTopBank) + 5;
  2311. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2312. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBcno + "*"); //바코드번호
  2313. //iXPos = Number(sLeftBank) + 275;
  2314. //iYPos = Number(sTopBank) + 5;
  2315. //sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  2316. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBarcdprntdt); //라벨발행일시
  2317. iXPos = Number(sLeftBank) + 275;
  2318. iYPos = Number(sTopBank) + 5;
  2319. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2320. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  2321. iXPos = Number(sLeftBank) + 60;
  2322. iYPos = Number(sTopBank) + 30;
  2323. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  2324. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 100, "*" + sBcno + "*"); // 바코드
  2325. //GX420 환자명 영문표시 안되는 것 유민규 110608
  2326. //iXPos = Number(sLeftBank) + 170;
  2327. //iYPos = Number(sTopBank) + 130;
  2328. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  2329. //sSndMsg += CommAX.HanImageData();
  2330. //sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,20,20^FH^FD" + sPatnm.substr(0, 20) + "^FS^CI1";
  2331. iWidth = 0;
  2332. aStr = "";
  2333. aFlag = new Array();
  2334. iXPos = Number(sLeftBank) + 170;
  2335. sPatnm = sPatnm.substr(0, 20);
  2336. aStr = lpzfGetHanGul(sPatnm, aFlag);
  2337. for (var iNo=0; iNo < aStr.length; iNo++) {
  2338. //----------------------
  2339. if (aFlag[iNo] == "E") {
  2340. iYPos = Number(sTopBank) + 135;
  2341. //sSndMsg += "^CFF20,20^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 환자명(영문)
  2342. //sSndMsg += "^CFC14,14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 환자명(영문)
  2343. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  2344. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  2345. } else {
  2346. iYPos = Number(sTopBank) + 135;
  2347. //sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + aStr[iNo] + "^FS^CI1"; 6/30 이전셋팅
  2348. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1";
  2349. //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2350. //sSndMsg += CommAX.HanImageData();
  2351. iWidth = iWidth + (Number(aStr[iNo].length) * 30);
  2352. }
  2353. }
  2354. //GX420 환자명 영문표시 안되는 것 유민규 110608
  2355. iXPos = Number(sLeftBank) + 20;
  2356. iYPos = Number(sTopBank) + 135;
  2357. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  2358. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  2359. //iXPos = Number(sLeftBank) + 300;
  2360. //iYPos = Number(sTopBank) + 135;
  2361. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2362. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage);
  2363. //iXPos = Number(sLeftBank) + 300;
  2364. //iYPos = Number(sTopBank) + 135;
  2365. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2366. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  2367. if(sBcno.substr(0, 1) == "E" && bedposcnts != ""){
  2368. iWidth = 0;
  2369. aStr = "";
  2370. aFlag = new Array();
  2371. iXPos = Number(sLeftBank) + 300;
  2372. aStr = lpzfGetHanGul(bedposcnts, aFlag); //구역배드
  2373. for (var iNo=0; iNo < aStr.length; iNo++) {
  2374. if (aFlag[iNo] == "E") {
  2375. iYPos = Number(sTopBank) + 135;
  2376. sSndMsg += "^CFF20,20^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 구역배드명(영문)
  2377. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  2378. } else {
  2379. iYPos = Number(sTopBank) + 135;
  2380. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + aStr[iNo] + "^FS^CI1"; // 구역배드명(한글)
  2381. //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2382. //sSndMsg += CommAX.HanImageData();
  2383. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  2384. }
  2385. }
  2386. }else{
  2387. iXPos = Number(sLeftBank) + 300;
  2388. iYPos = Number(sTopBank) + 135;
  2389. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2390. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  2391. }
  2392. iXPos = Number(sLeftBank) + 20;
  2393. iYPos = Number(sTopBank) + 160;
  2394. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2395. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTubelblnm); //용기명
  2396. //iXPos = Number(sLeftBank) + 280;
  2397. //iYPos = Number(sTopBank) + 160;
  2398. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2399. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTubelblnm); //용기명
  2400. iXPos = Number(sLeftBank) + 280;
  2401. iYPos = Number(sTopBank) + 160;
  2402. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  2403. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, prcphopedd); //라벨발행일시
  2404. //iXPos = Number(sLeftBank) + 20;
  2405. //iYPos = Number(sTopBank) + 180;
  2406. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  2407. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSecttsect); //계검사계
  2408. sTclslblnmlist = sTclslblnmlist.replace("▨", ","); //검사코드리스트
  2409. //---------
  2410. iWidth = 0;
  2411. aStr = "";
  2412. aFlag = new Array();
  2413. iXPos = Number(sLeftBank) + 20;
  2414. aStr = lpzfGetHanGul(sTclslblnmlist, aFlag);
  2415. for (var iNo=0; iNo < aStr.length; iNo++) {
  2416. //----------------------
  2417. if (aFlag[iNo] == "E") {
  2418. iYPos = Number(sTopBank) + 178;
  2419. sSndMsg += "^CFF20,20^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검사코드리스트명(영문)
  2420. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  2421. } else {
  2422. iYPos = Number(sTopBank) + 175;
  2423. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,20,20^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검사코드리스트(한글)
  2424. //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2425. //sSndMsg += CommAX.HanImageData();
  2426. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  2427. }
  2428. }
  2429. //---------공여자 또는 리마크 때문에..2009.01.28.윤재한 수정
  2430. dnorNm = dnorNm + dSexage;
  2431. iWidth = 0;
  2432. aStr = "";
  2433. aFlag = new Array();
  2434. iXPos = Number(sLeftBank) + 20;
  2435. aStr = lpzfGetHanGul(dnorNm, aFlag); //공여자명은 한글, 리마크는 영문
  2436. for (var iNo=0; iNo < aStr.length; iNo++) {
  2437. //----------------------
  2438. if (aFlag[iNo] == "E") {
  2439. iYPos = Number(sTopBank) + 232;
  2440. sSndMsg += "^CFC10,10^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 공여자명(영문)
  2441. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  2442. } else {
  2443. iYPos = Number(sTopBank) + 232;
  2444. //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2445. //sSndMsg += CommAX.HanImageData();
  2446. SndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 공여자명(한글)
  2447. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  2448. }
  2449. }
  2450. //if(sTclslblnmlist.substr(0, 3) == "ABO") {
  2451. if(checkABO) {
  2452. //외래채혈일때
  2453. if(scridPrint=="SMLLC00100" && scrflag){
  2454. keepspc = true;
  2455. }
  2456. //병동,환자별일때
  2457. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  2458. keepspc = true;
  2459. }
  2460. iXPos = Number(sLeftBank) + 110;
  2461. iYPos = Number(sTopBank) + 202;
  2462. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  2463. sSndMsg += CommAX.HanImageData();
  2464. }
  2465. //감염정보 특수문자 추가 20120402
  2466. if(sInfcinfolist != ""){
  2467. sInfcinfolist = "*"+ sInfcinfolist +"*";
  2468. }
  2469. iXPos = Number(sLeftBank) + 20;
  2470. iYPos = Number(sTopBank) + 202;
  2471. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정 20120328
  2472. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist); //계검사계
  2473. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sInfcinfolist, 1, 1); //감염정보
  2474. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "HBV", 1, 1); //감염정보 위치테스트시
  2475. //sSndMsg += CommAX.HanImageData();
  2476. //자동화일때 밑에 줄 끄어요~
  2477. if(sSecttsect.substr(0, 1) == "A"){
  2478. //검사계명
  2479. iXPos = Number(sLeftBank);
  2480. iYPos = Number(sTopBank) + 260;
  2481. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 400, 10, 5);
  2482. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  2483. //sSndMsg += CommAX.HanImageData();
  2484. }
  2485. else{
  2486. //sSndMsg += CommAX.PrtImgOut(10, 2, sTsectlblnm.substr(0, 20), 1, 1);
  2487. //sSndMsg += CommAX.HanImageData();
  2488. }
  2489. sSndMsg += lzzfBP_EndFormat(bcollbarcdprntcnt);
  2490. CommAX.SendMsg(sSndMsg);
  2491. //alert(sSndMsg);
  2492. if(keepspc) {
  2493. fKeepBcnoPrint("B");
  2494. }
  2495. }//end for
  2496. }//end if(sPrntKind == "1")
  2497. else{
  2498. var sSndMsg = "";
  2499. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  2500. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  2501. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  2502. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  2503. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  2504. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  2505. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  2506. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  2507. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  2508. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  2509. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  2510. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  2511. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  2512. var barcdcntflag = model.getValue(pRef + "/cntflag");
  2513. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  2514. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  2515. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  2516. var sbcoll = "채혈자";
  2517. var keepspc = false;
  2518. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  2519. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  2520. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  2521. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  2522. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  2523. var dnorNm = "";
  2524. var dSexage = "";
  2525. }else{
  2526. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  2527. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  2528. }
  2529. sSndMsg = "AA103500500"; // 시작위치 셋팅
  2530. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  2531. //검사계명
  2532. iXPos = Number(sLeftBank);
  2533. iYPos = Number(sTopBank) + 1;
  2534. sSndMsg += "V" + iYPos + "H" + iXPos + "FW10V0220";
  2535. }
  2536. sTsectlblnm = sTsectlblnm.replace("▨", ",");
  2537. //---------
  2538. iWidth = 0;
  2539. aStr = "";
  2540. aFlag = new Array();
  2541. iXPos = Number(sLeftBank) + 15;
  2542. iYPos = Number(sTopBank) + 5;
  2543. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTsectlblnm);
  2544. iXPos = Number(sLeftBank) + 140;
  2545. iYPos = Number(sTopBank) + 5;
  2546. sSndMsg += "V" + iYPos + "H" + iXPos + "S*" + sBcno + "*"; //바코드번호
  2547. iXPos = Number(sLeftBank) + 275;
  2548. iYPos = Number(sTopBank) + 5;
  2549. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBarcdprntdt; //라벨발행일시
  2550. iXPos = Number(sLeftBank) + 60;
  2551. iYPos = Number(sTopBank) + 30;
  2552. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02100" + sBcno; // 바코드
  2553. iXPos = Number(sLeftBank) + 20;
  2554. iYPos = Number(sTopBank) + 130;
  2555. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20));
  2556. iXPos = Number(sLeftBank) + 160;
  2557. iYPos = Number(sTopBank) + 135;
  2558. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid;//환자등록번호
  2559. iXPos = Number(sLeftBank) + 300;
  2560. iYPos = Number(sTopBank) + 135;
  2561. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSexage;
  2562. iXPos = Number(sLeftBank) + 20;
  2563. iYPos = Number(sTopBank) + 160;
  2564. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sDeptroom; //진료과병실
  2565. iXPos = Number(sLeftBank) + 160;
  2566. iYPos = Number(sTopBank) + 160;
  2567. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSpclblnm; //검체명
  2568. iXPos = Number(sLeftBank) + 260;
  2569. iYPos = Number(sTopBank) + 160;
  2570. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sTubelblnm; //용기명
  2571. iXPos = Number(sLeftBank) + 20;
  2572. iYPos = Number(sTopBank) + 180;
  2573. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSecttsect; //계검사계
  2574. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  2575. iXPos = Number(sLeftBank) + 70;
  2576. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTclslblnmlist)
  2577. //---------공여자 또는 리마크 때문에..2009.01.28.윤재한 수정
  2578. dnorNm = dnorNm + dSexage;
  2579. CommAX.PrtImgOut(iXPos, iYPos, dnorNm); //공여자명은 한글, 리마크는 영문
  2580. //if(sTclslblnmlist.substr(0, 3) == "ABO") {
  2581. if(checkABO) {
  2582. //외래채혈일때
  2583. if(scridPrint=="SMLLC00100" && scrflag){
  2584. keepspc = true;
  2585. }
  2586. //병동,환자별일때
  2587. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  2588. keepspc = true;
  2589. }
  2590. iXPos = Number(sLeftBank) + 160;
  2591. iYPos = Number(sTopBank) + 180;
  2592. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자:");
  2593. }
  2594. iXPos = Number(sLeftBank) + 20;
  2595. iYPos = Number(sTopBank) + 202;
  2596. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sInfcinfolist); //감염정보
  2597. //자동화일때 밑에 줄 끄어요~
  2598. if(sSecttsect.substr(0, 1) == "A"){
  2599. //검사계명
  2600. iXPos = Number(sLeftBank);
  2601. iYPos = Number(sTopBank) + 260;
  2602. sSndMsg += "V" + "220" + "H" + "0" + "FW10H0350";
  2603. }
  2604. if(barcdcntflag == "acpt" ){
  2605. sSndMsg += "Q" + spcacptbarcdprntcnt + "Z";
  2606. CommAX.SendMsg(sSndMsg);
  2607. }else{
  2608. sSndMsg += "Q" + bcollbarcdprntcnt + "Z";
  2609. CommAX.SendMsg(sSndMsg);
  2610. }
  2611. if(keepspc) {
  2612. fKeepBcnoPrint("B");
  2613. }
  2614. }
  2615. }//end for
  2616. }
  2617. }
  2618. // pKCount - 보관검체 출력수
  2619. // pPCount - 병리바코드갯수, 접수관리 화면에서는 분주 바코드 출력수
  2620. // scrflag - 병동 환자별 채혈시 true
  2621. // 채혈바코드 여의도 B472 모델용
  2622. function fLisSpcBarcodePrint3(pRef, pKCount, pPCount, scrflag){
  2623. model.makeValue("/root/hidden/sendmessage", ""); //Auto Label에 보내는 값을 저장한 인스턴트 초기화
  2624. //model.setValue("/root/hidden/test/startdt", getCurrentTime());
  2625. var vInstance = document.models(0).instances(0);
  2626. var cntHR = vInstance.selectNodes(pRef).length;
  2627. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2628. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  2629. var aFlag = new Array(); //한글 영문 구분
  2630. var aStr = "";
  2631. var iWidth = 0;
  2632. var iXPos = 0;
  2633. var iYPos = 0;
  2634. var portOpenTF = "";
  2635. var KCount = 0;
  2636. var PCount = 0;
  2637. if(pKCount == null || pKCount == ""){
  2638. KCount = 0;
  2639. }else{
  2640. KCount = pKCount;
  2641. }
  2642. if(pPCount == null || pPCount == ""){
  2643. PCount = 0;
  2644. }else{
  2645. PCount = pPCount;
  2646. }
  2647. //alert(KCount);
  2648. var scridPrint = getScreenID();
  2649. if(cntHR > 0 && sPrntKind != 0){
  2650. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  2651. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  2652. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  2653. var sB472sizegbn = model.getValue(barcdRef + "[1]/blank/b472size");
  2654. if(sCommKind == "01") {
  2655. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  2656. } else if(sCommKind == "02") {
  2657. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  2658. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  2659. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  2660. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  2661. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  2662. CommAX.CommPort = sComm;
  2663. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  2664. //보관검체 출력 갯수가 존재하면 port 오픈 하지 않는다.
  2665. //이미 오픈 되어 있음. 보관검체 출력후 진검 바코드 갯수 체크하여 포트 클로즈 하지 않는다.
  2666. if(KCount > 0){
  2667. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  2668. portOpenTF = "TRUE";
  2669. }else if(KCount == 0){
  2670. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  2671. portOpenTF = CommAX.PortOpen("true");
  2672. // alert("portOpenTF" + portOpenTF + "!!!");
  2673. }
  2674. } else if(sCommKind == "03") {
  2675. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  2676. var sEqmtCd = model.getValue(barcdRef + "[1]/comm03/eqmtcd");
  2677. }
  2678. // alert(portOpenTF);
  2679. if( (portOpenTF == "TRUE" && sCommKind == "02")
  2680. || (sCommKind == "01")
  2681. || (sCommKind == "03")){
  2682. for(i=1 ; i<= cntHR;i++){
  2683. var sSndMsg = "";
  2684. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  2685. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  2686. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  2687. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  2688. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  2689. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  2690. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  2691. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  2692. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  2693. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  2694. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  2695. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  2696. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  2697. var barcdcntflag = model.getValue(pRef + "/cntflag");
  2698. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  2699. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  2700. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  2701. var sbcoll = "채혈자";
  2702. var keepspc = false;
  2703. var sB472size = "";
  2704. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  2705. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  2706. var sTclslblnmlist2 = "";
  2707. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  2708. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  2709. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  2710. var dnorNm = "";
  2711. var dSexage = "";
  2712. }else{
  2713. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  2714. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  2715. }
  2716. //sSndMsg += "{D0350,0550,0330|}"; // 라벨사이즈
  2717. if(sB472sizegbn == "2"){ // 320 630
  2718. sB472size = "0340,0620,0340"; // 기존라벨
  2719. }else{
  2720. sB472size = "0350,0550,0330"; // nUsize
  2721. }
  2722. sSndMsg += "{D" + sB472size + "|}"; // 라벨사이즈
  2723. // alert("sB472size= " + sB472size + " sSndMsg= "+sSndMsg);
  2724. // 버퍼클리어
  2725. sSndMsg += "{C|}";
  2726. // 피트량
  2727. sSndMsg += "{AX;-000,-000,+00|}";
  2728. //검사계명
  2729. iXPos = Number(sLeftBank)+10;
  2730. iYPos = Number(sTopBank);
  2731. sSndMsg += lzzfBP_HanDisp24(sTsectlblnm, iXPos, iYPos);
  2732. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  2733. //응급표시
  2734. iXPos1 = Number(sLeftBank);
  2735. iXPos2 = Number(sLeftBank);
  2736. iYPos1 = Number(sTopBank) ;
  2737. iYPos2 = Number(sTopBank) + 280;
  2738. var ppX1 = iXPos1.toString().getLeftPad(4, "0");
  2739. var ppX2 = iXPos1.toString().getLeftPad(4, "0");
  2740. var ppY1 = iYPos1.toString().getLeftPad(4, "0");
  2741. var ppY2 = iYPos2.toString().getLeftPad(4, "0");
  2742. sSndMsg += "{LC;"+ppX1+","+ppY1+","+ppX2+","+ppY2+",1,8|}";
  2743. }
  2744. iXPos = Number(sLeftBank)+140;
  2745. iYPos = Number(sTopBank)+20;
  2746. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, "*" + sBcno + "*"); //바코드번호
  2747. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "*" + sBcno + "*"); //바코드번호
  2748. iXPos = Number(sLeftBank)+60;
  2749. iYPos = Number(sTopBank)+30;
  2750. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 5, 4, "*" + sBcno + "*",110); // 바코드
  2751. if(barcdcntflag == "acpt" ){
  2752. if(spcacptbarcdprntcnt > 0){
  2753. CommAX.SendMessage(sSndMsg);
  2754. }
  2755. }else{
  2756. if(bcollbarcdprntcnt > 0){
  2757. CommAX.SendMessage(sSndMsg);
  2758. }
  2759. }
  2760. iXPos = Number(sLeftBank)+350;
  2761. iYPos = Number(sTopBank)+20;
  2762. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sBarcdprntdt); //라벨발행일시
  2763. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sBarcdprntdt); //라벨발행일시
  2764. iXPos = Number(sLeftBank)+10;
  2765. iYPos = Number(sTopBank)+155;
  2766. sSndMsg += lzzfBP_HanDisp24(sPatnm.substr(0, 7), iXPos, iYPos); // 환자명 한글
  2767. iXPos = Number(sLeftBank)+225;
  2768. iYPos = Number(sTopBank)+175;
  2769. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sPid); //환자등록번호
  2770. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPid); //환자등록번호
  2771. iXPos = Number(sLeftBank)+400;
  2772. iYPos = Number(sTopBank)+175;
  2773. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sSexage); //성병나이
  2774. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sSexage); //성병나이
  2775. iXPos = Number(sLeftBank)+10;
  2776. iYPos = Number(sTopBank)+210;
  2777. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sDeptroom); //진료과병실
  2778. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sDeptroom); //진료과병실
  2779. iXPos = Number(sLeftBank)+210;
  2780. iYPos = Number(sTopBank)+210;
  2781. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sSpclblnm); //검체명
  2782. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sSpclblnm); //검체명
  2783. iXPos = Number(sLeftBank)+380;
  2784. iYPos = Number(sTopBank)+210;
  2785. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sTubelblnm); //용기명
  2786. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTubelblnm); //용기명
  2787. iXPos = Number(sLeftBank)+10;
  2788. iYPos = Number(sTopBank)+245;
  2789. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sSecttsect); //계검사계
  2790. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sSecttsect); //계검사계
  2791. /*
  2792. if(barcdcntflag == "acpt" ){
  2793. if(spcacptbarcdprntcnt > 0){
  2794. CommAX.SendMessage(sSndMsg);
  2795. }
  2796. }else{
  2797. if(bcollbarcdprntcnt > 0){
  2798. CommAX.SendMessage(sSndMsg);
  2799. }
  2800. }
  2801. */
  2802. //30바이트가 넘을 경우 검사명을 짤라서 출력한다.
  2803. /* if(sTclslblnmlist.getByteLength() > 40) {
  2804. for(var iLeng = 1 ; iLeng <= sTclslblnmlist.length ; iLeng++) {
  2805. if(((sTclslblnmlist.substr(0, iLeng)).getByteLength()) > 40) {
  2806. sTclslblnmlist2 = sTclslblnmlist.substr(0, iLeng);
  2807. break;
  2808. }
  2809. }
  2810. //sTempStr = sTempStr2;
  2811. }
  2812. */
  2813. iXPos = Number(sLeftBank)+70;
  2814. iYPos = Number(sTopBank)+220;
  2815. sSndMsg += lzzfBP_HanDisp24(sTclslblnmlist, iXPos, iYPos); // 검사명 한글
  2816. if (model.getValue(pRef + "["+i+"]/dnornm") !=""){
  2817. iXPos = Number(sLeftBank)+10;
  2818. iYPos = Number(sTopBank)+255;
  2819. sSndMsg += lzzfBP_HanDisp24(dnorNm.substr(0, 12), iXPos, iYPos); // 공여자명 한글
  2820. iXPos = Number(sLeftBank)+110;
  2821. iYPos = Number(sTopBank)+260;
  2822. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20,20, dSexage); // 공여자성별나이 헌혈화면만 보냄
  2823. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, dSexage); //공여자성별나이 헌혈화면만 보냄
  2824. }
  2825. /*
  2826. if(barcdcntflag == "acpt" ){
  2827. if(spcacptbarcdprntcnt > 0){
  2828. CommAX.SendMessage(sSndMsg);
  2829. }
  2830. }else{
  2831. if(bcollbarcdprntcnt > 0){
  2832. CommAX.SendMessage(sSndMsg);
  2833. }
  2834. }
  2835. */
  2836. if(checkABO) {
  2837. //외래채혈일때
  2838. if(scridPrint=="SMLLC00100" && scrflag){
  2839. keepspc = true;
  2840. }
  2841. //병동,환자별일때
  2842. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  2843. keepspc = true;
  2844. }
  2845. iXPos = Number(sLeftBank)+10 ;
  2846. iYPos = Number(sTopBank)+250;
  2847. sSndMsg += lzzfBP_HanDisp24("채혈자 : ", iXPos, iYPos);
  2848. }
  2849. if(sInfcinfolist != ""){
  2850. iXPos = Number(sLeftBank)+10;
  2851. iYPos = Number(sTopBank)+250;
  2852. sSndMsg += lzzfBP_HanDisp24(sInfcinfolist, iXPos, iYPos);
  2853. }
  2854. //자동화일때 밑에 줄 끄어요~
  2855. if(sSecttsect.substr(0, 1) == "A"){
  2856. //검사계명
  2857. iXPos = Number(sLeftBank) + 435;
  2858. iYPos1 = Number(sTopBank) + 299;
  2859. iYPos2 = Number(sTopBank) + 300;
  2860. var ppX = iXPos.toString().getLeftPad(4, "0");
  2861. var ppY1 = iYPos1.toString().getLeftPad(4, "0");
  2862. var ppY2 = iYPos2.toString().getLeftPad(4, "0");
  2863. sSndMsg += "{LC;0000,"+ppY1+","+ppX+","+ppY2+",1,8|}";
  2864. }
  2865. //alert(sSndMsg);
  2866. if(barcdcntflag == "acpt" ){
  2867. if(spcacptbarcdprntcnt > 0){
  2868. sSndMsg += lzzfBP_EndFormat_B472(spcacptbarcdprntcnt);
  2869. CommAX.SendMessage(sSndMsg);
  2870. }
  2871. }else{
  2872. if(bcollbarcdprntcnt > 0){
  2873. sSndMsg += lzzfBP_EndFormat_B472(bcollbarcdprntcnt);
  2874. CommAX.SendMessage(sSndMsg);
  2875. }
  2876. }
  2877. if(keepspc) {
  2878. fKeepBcnoPrint("B");
  2879. }
  2880. }//end for
  2881. //portopen이 true이고 통신유형이 com이고 출력할 병리 바코드가 없을때 port close
  2882. if( portOpenTF == "TRUE" && sCommKind == "02" && PCount == 0){
  2883. CommAX.PortOpen("false");
  2884. }
  2885. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  2886. messageBox("아래 사항을 확인후 재출력해주십시오."
  2887. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  2888. + " \n 2.케이블 확인"
  2889. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  2890. return;
  2891. }
  2892. }
  2893. }
  2894. // sato 병리 채혈 바코드
  2895. function fLisPlgySpcBarcodePrint(pLCount) {
  2896. try{
  2897. var sSndMsg = "";
  2898. var sPrcpDD = "";
  2899. var sTemp = "";
  2900. var sTempStr = "";
  2901. var strNode = "/root/main/TestInfo/plgybarcdinfo";
  2902. var iLeft = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left");
  2903. var iTop = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top");
  2904. var iXPos = 0;
  2905. var iYPos = 0;
  2906. var iWidth = 0;
  2907. var aFlag = new Array();
  2908. var aStr = "";
  2909. var LCount = 0;
  2910. var portOpenTF = "";
  2911. if(pLCount == null || pLCount == 0){
  2912. LCount = 0;
  2913. }else if(pLCount > 0){
  2914. LCount = pLCount;
  2915. }
  2916. //-----------------------------------------
  2917. if (iLeft == "" || iLeft == "-") iLeft = 0;
  2918. if (iTop == "" || iTop == "-") iTop = 0;
  2919. //------------------------------
  2920. // 2008-10-12 : 병리과 여백 조정
  2921. iLeft = Number(iLeft) + Number(20);
  2922. iTop = Number(iTop) + Number(10);
  2923. //----------------
  2924. // Serial Port Open
  2925. //fExeCommPortOpen();
  2926. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2927. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  2928. if(sPrntKind != "0"){
  2929. //---------------
  2930. // 바코드내용 출력
  2931. for (var iRowNo=1; iRowNo <= getNodesetCount(strNode); iRowNo++) {
  2932. sPrcpDD = model.getValue(strNode + "[" + iRowNo + "]/prcpdd");
  2933. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2934. /*
  2935. sSndMsg = "";
  2936. sSndMsg = sSndMsg + fExeBarCdSetStart(sSndMsg); // 출력시작
  2937. sSndMsg = sSndMsg + "^CFf^FO10,05^B3R,N,100,N,N^FD" + model.getValue(strNode + "[" + iRowNo + "]/spcbarcdno") + "^FS"; // 바코드
  2938. sSndMsg = sSndMsg + "^CFE20,20^FO120,05^FD" + model.getValue(strNode + "[" + iRowNo + "]/pid") + "^FS"; // 등록번호
  2939. sSndMsg = sSndMsg + "^CFA20,20^FO340,05^FD" + model.getValue(strNode + "[" + iRowNo + "]/sexage") + "^FS"; // 성별/나이
  2940. sSndMsg = sSndMsg + CommAX.PrtImgOut("GRAPH001", model.getValue(strNode + "[" + iRowNo + "]/patnm")); // 환자명
  2941. sSndMsg = sSndMsg + "^CFA,30,30^FO120,40^XGGRAPH001,2,2^FS";
  2942. sSndMsg = sSndMsg + CommAX.PrtImgOut("GRAPH004", "병리과"); // 검체도착지명
  2943. sSndMsg = sSndMsg + "^CFA,30,30^FO340,40^XGGRAPH004,1,1^FS";
  2944. sSndMsg = sSndMsg + CommAX.PrtImgOut("GRAPH002", model.getValue(strNode + "[" + iRowNo + "]/orddeptnm")); // 진료과
  2945. sSndMsg = sSndMsg + "^CFA,30,30^FO120,100^XGGRAPH002,1,1^FS";
  2946. sSndMsg = sSndMsg + CommAX.PrtImgOut("GRAPH003", model.getValue(strNode + "[" + iRowNo + "]/wardroom")); // 병동병실
  2947. sSndMsg = sSndMsg + "^CFA,30,30^FO220,100^XGGRAPH003,1,1^FS";
  2948. sSndMsg = sSndMsg + "^CFA20,20^FO280,103^FD" + sPrcpDD + "^FS"; // 처방일자
  2949. sSndMsg = sSndMsg + "^CFE10,10^FO120,130^FD" + model.getValue(strNode + "[" + iRowNo + "]/spcdispnm") + "^FS"; // 검체표시명
  2950. sSndMsg = sSndMsg + "^CFA20,20^FO120,170^FD" + model.getValue(strNode + "[" + iRowNo + "]/prcpdispnm") + "^FS"; // 처방표시명
  2951. sSndMsg = sSndMsg + "^PQ1"; // 출력매수
  2952. sSndMsg = sSndMsg + fExeBarCdSetEnd(sSndMsg); // 출력종료
  2953. fExeSendMsg(sSndMsg);
  2954. */ sSndMsg = "AA103500500"; // 시작위치 셋팅
  2955. //-------------------------
  2956. iXPos = Number(iLeft) + 20;
  2957. iYPos = Number(iTop) + 5;
  2958. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02100" + model.getValue(strNode+"["+iRowNo+"]/spcbarcdno");
  2959. iXPos = Number(iLeft) + 130;
  2960. iYPos = Number(iTop) + 110;
  2961. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + model.getValue(strNode+"["+iRowNo+"]/spcbarcdno");
  2962. //--------------------
  2963. iXPos = Number(iLeft);
  2964. iYPos = Number(iTop) + 130;
  2965. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "PATHOLOGY";
  2966. iXPos = Number(iLeft) + 110;
  2967. iYPos = Number(iTop) + 130;
  2968. sTempStr = model.getValue(strNode+"["+iRowNo+"]/wardroom");
  2969. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2970. /*
  2971. //-------------------------
  2972. iXPos = Number(iLeft) + 310;
  2973. iYPos = Number(iTop) + 127;
  2974. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, model.getValue(strNode+"["+iRowNo+"]/orddrnm"));
  2975. */
  2976. iXPos = Number(iLeft) + 220;
  2977. iYPos = Number(iTop) + 130;
  2978. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPrcpDD;
  2979. iXPos = Number(iLeft) + 330;
  2980. iYPos = Number(iTop) + 130;
  2981. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + model.getValue(strNode+"["+iRowNo+"]/isolabbrcd");
  2982. //--------------------------
  2983. iXPos = Number(iLeft);
  2984. iYPos = Number(iTop) + 155;
  2985. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + model.getValue(strNode+"["+iRowNo+"]/pid");
  2986. //-------------------------
  2987. iXPos = Number(iLeft) + 110;
  2988. iYPos = Number(iTop) + 150;
  2989. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, model.getValue(strNode+"["+iRowNo+"]/patnm"));
  2990. //-------------------------
  2991. iXPos = Number(iLeft) + 220;
  2992. iYPos = Number(iTop) + 155;
  2993. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + model.getValue(strNode+"["+iRowNo+"]/sexage");
  2994. //-------------------------
  2995. iXPos = Number(iLeft) + 280;
  2996. iYPos = Number(iTop) + 155;
  2997. sTempStr = model.getValue(strNode+"["+iRowNo+"]/orddeptnm");
  2998. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sTempStr;
  2999. iXPos = Number(iLeft);
  3000. iYPos = Number(iTop) + 175;
  3001. sTempStr = model.getValue(strNode+"["+iRowNo+"]/spcdispnm");
  3002. sTempStr = sTempStr.replace("▨", ",");
  3003. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  3004. //==========================
  3005. iXPos = Number(iLeft);
  3006. iYPos = Number(iTop) + 200;
  3007. //---------------------------------------------------------
  3008. sTempStr = model.getValue(strNode+"["+iRowNo+"]/prcpdispnm");
  3009. sTempStr = sTempStr.replace("▨", ",");
  3010. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  3011. //-------------------------
  3012. iXPos = Number(iLeft);
  3013. iYPos = Number(iTop) + 225;
  3014. sTempStr = model.getValue(strNode+"["+iRowNo+"]/prcpdispnm2"); //검사명(추가처방)
  3015. sTempStr = sTempStr.replace("▨", ",");
  3016. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  3017. sSndMsg += "Q" + "1" + "Z";
  3018. CommAX.SendMsg(sSndMsg);
  3019. }
  3020. }
  3021. } catch(ee) {
  3022. messageBox("병리바코드출력에", "E009");
  3023. return;
  3024. }
  3025. }
  3026. /**
  3027. * @group : PathologyWeb Common
  3028. * @ver : 2010.01.12 (CMCDEV-0001)
  3029. * @by : 박정은
  3030. * @---------------------------------------------------
  3031. * @type : function
  3032. * @access : public
  3033. * @desc : 채혈화면 병리 바코드 출력(B472 )
  3034. * @param :
  3035. * @return :
  3036. */
  3037. function fLisPlgySpcBarcodePrint3(pLCount) {
  3038. try{
  3039. var sSndMsg = "";
  3040. var sPrcpDD = "";
  3041. var sTemp = "";
  3042. var sTempStr = "";
  3043. var sTempStr2 = "";
  3044. var strNode = "/root/main/TestInfo/plgybarcdinfo";
  3045. var iLeft = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left");
  3046. var iTop = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top");
  3047. var iXPos = 0;
  3048. var iYPos = 0;
  3049. var iWidth = 0;
  3050. var sBarCdNoH = "";
  3051. var aFlag = new Array();
  3052. var aStr = "";
  3053. var LCount = 0;
  3054. var portOpenTF = "";
  3055. if(pLCount == null || pLCount == 0){
  3056. LCount = 0;
  3057. }else if(pLCount > 0){
  3058. LCount = pLCount;
  3059. }
  3060. //-----------------------------------------
  3061. if (iLeft == "" || iLeft == "-") iLeft = 0;
  3062. if (iTop == "" || iTop == "-") iTop = 0;
  3063. //------------------------------
  3064. // 2008-10-12 : 병리과 여백 조정
  3065. iLeft = Number(iLeft) ;
  3066. iTop = Number(iTop) ;
  3067. //----------------
  3068. // Serial Port Open
  3069. //fExeCommPortOpen();
  3070. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3071. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  3072. var sB472sizegbn = model.getValue(barcdRef + "[1]/blank/b472size");
  3073. var sB472size = "";
  3074. if(sPrntKind != "0"){
  3075. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  3076. if(sCommKind == "01") {
  3077. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  3078. } else if(sCommKind == "02") {
  3079. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  3080. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  3081. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  3082. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  3083. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  3084. CommAX.CommPort = sComm;
  3085. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  3086. //진검 바코드 출력 갯수가 존재하면 port 오픈 하지 않는다.
  3087. //진검 바코드 출력후 병리 바코드 갯수 체크하여 포트 클로즈 하지 않았기 때문에..
  3088. if(LCount > 0){
  3089. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  3090. portOpenTF = "TRUE";
  3091. }else if(LCount == 0){
  3092. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  3093. portOpenTF = CommAX.PortOpen("true");
  3094. }
  3095. } else if(sCommKind == "03") {
  3096. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  3097. }
  3098. if( (portOpenTF == "TRUE" && sCommKind == "02")
  3099. || (sCommKind == "01")
  3100. || (sCommKind == "03")){
  3101. //---------------
  3102. // 바코드내용 출력
  3103. for (var iRowNo=1; iRowNo <= getNodesetCount(strNode); iRowNo++) {
  3104. // alert("getNodesetCount(strNode)= " + getNodesetCount(strNode) + " iRowNo= " + iRowNo);
  3105. sPrcpDD = model.getValue(strNode + "[" + iRowNo + "]/prcpdd");
  3106. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  3107. if(sPrntKind == "8") {
  3108. sSndMsg = "";
  3109. if(sB472sizegbn == "2"){ // 320 630
  3110. sB472size = "0340,0620,0340"; // 기존라벨
  3111. }else{
  3112. sB472size = "0350,0550,0330"; // nUsize
  3113. }
  3114. sSndMsg += "{D" + sB472size + "|}"; // 라벨사이즈
  3115. //sSndMsg += "{D0350,0550,0330|}"; // 라벨사이즈
  3116. sSndMsg += "{C|}"; // 버퍼클리어
  3117. sSndMsg += "{AX;-000,-000,+00|}"; // 피트량
  3118. sBarCdNoH = model.getValue(strNode + "[" + iRowNo + "]/spcbarcdno");
  3119. iXPos = Number(iLeft) + 20;
  3120. iYPos = Number(iTop) + 5;
  3121. // var newbcno = sBarCdNoH + (iRowNo).toString().getLeftPad(2, "0");
  3122. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 5, 4, sBarCdNoH, 90); // 바코드
  3123. iXPos = Number(iLeft) + 140;
  3124. iYPos = Number(iTop) + 120;
  3125. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sBarCdNoH); //바코드번호
  3126. iXPos = Number(iLeft);
  3127. iYPos = Number(iTop) + 145;
  3128. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "PATHOLOGY");
  3129. iXPos = Number(iLeft) + 200;
  3130. iYPos = Number(iTop) + 120;
  3131. sTempStr = model.getValue(strNode+ "["+iRowNo+"]/wardroom");
  3132. //sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  3133. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3134. iXPos = Number(iLeft) + 330;
  3135. iYPos = Number(iTop) + 145;
  3136. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPrcpDD);
  3137. iXPos = Number(iLeft) + 300;
  3138. iYPos = Number(iTop) + 145;
  3139. sTempStr = model.getValue(strNode + "[" + iRowNo + "]/isolabbrcd");
  3140. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  3141. iXPos = Number(iLeft);
  3142. iYPos = Number(iTop) + 180;
  3143. sTempStr = model.getValue(strNode + "[" + iRowNo + "]/pid");
  3144. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  3145. iXPos = Number(iLeft) + 150;
  3146. iYPos = Number(iTop) + 155;
  3147. sTempStr = model.getValue(strNode + "[" + iRowNo + "]/patnm");
  3148. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3149. iXPos = Number(iLeft) + 310;
  3150. iYPos = Number(iTop) + 180;
  3151. var sTempStr1 = model.getValue(strNode + "[" + iRowNo + "]/sexage");
  3152. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr1);
  3153. //-------------------------
  3154. iXPos = Number(iLeft) + 410;
  3155. iYPos = Number(iTop) + 180;
  3156. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  3157. if(model.getValue(strNode+"["+iRowNo+"]/oproomnm") != "") {
  3158. sTempStr = model.getValue(strNode+"["+iRowNo+"]/orddeptnm") + "(" + model.getValue(strNode+"["+iRowNo+"]/oproomnm") + ")";
  3159. } else {
  3160. sTempStr = model.getValue(strNode+"["+iRowNo+"]/orddeptnm");
  3161. }
  3162. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sTempStr);
  3163. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  3164. iXPos = Number(iLeft);
  3165. iYPos = Number(iTop) + 190;
  3166. sTempStr = model.getValue(strNode+"["+iRowNo+"]/spcdispnm");
  3167. sTempStr = sTempStr.replace("▨", ",");
  3168. //20바이트가 넘을 경우 검사명을 짤라서 출력한다.
  3169. if(sTempStr.getByteLength() > 20) {
  3170. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  3171. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 20) {
  3172. sTempStr2 = sTempStr.substr(0, iLeng);
  3173. break;
  3174. }
  3175. }
  3176. sTempStr = sTempStr2;
  3177. }
  3178. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3179. iXPos = Number(iLeft);
  3180. iYPos = Number(iTop) + 220;
  3181. //---------------------------------------------------------
  3182. sTempStr = model.getValue(strNode+"["+iRowNo+"]/prcpdispnm");
  3183. sTempStr = sTempStr.replace("▨", ",");
  3184. //14바이트가 넘을 경우 검사명을 짤라서 출력한다.
  3185. if(sTempStr.getByteLength() > 14) {
  3186. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  3187. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 14) {
  3188. sTempStr2 = sTempStr.substr(0, iLeng);
  3189. break;
  3190. }
  3191. }
  3192. sTempStr = sTempStr2;
  3193. }
  3194. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3195. iXPos = Number(iLeft);
  3196. iYPos = Number(iTop) + 250;
  3197. sTempStr = model.getValue(strNode+"["+iRowNo+"]/prcpdispnm2"); //검사명(추가처방)
  3198. sTempStr = sTempStr.replace("▨", ",");
  3199. //14바이트가 넘을 경우 검사명을 짤라서 출력한다.
  3200. if(sTempStr.getByteLength() > 14) {
  3201. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  3202. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 14) {
  3203. sTempStr2 = sTempStr.substr(0, iLeng);
  3204. break;
  3205. }
  3206. }
  3207. sTempStr = sTempStr2;
  3208. }
  3209. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3210. sSndMsg += "{XS;I,0001,0002C5101|}"; // end
  3211. // alert("sSndMsg= " + sSndMsg);
  3212. if(sCommKind == "01") {
  3213. CommAX.SendMessageToLPT(sSndMsg);
  3214. } else if(sCommKind == "02") {
  3215. CommAX.SendMessage(sSndMsg);
  3216. }
  3217. } // 프린터종류
  3218. }// end for
  3219. //portopen이 true이고 통신유형이 com일때 port close
  3220. if( portOpenTF == "TRUE" && sCommKind == "02"){
  3221. CommAX.PortOpen("false");
  3222. }
  3223. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  3224. messageBox("아래 사항을 확인후 재출력해주십시오."
  3225. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3226. + " \n 2.케이블 확인"
  3227. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3228. return;
  3229. }
  3230. }
  3231. } catch(ee) {
  3232. messageBox("병리바코드출력에", "E009");
  3233. return;
  3234. }
  3235. }
  3236. /**
  3237. * 미생물 배지 라벨
  3238. */
  3239. function fLisMicroBarcodePrint(pRef){
  3240. try {
  3241. var vInstance = document.models(0).instances(0);
  3242. var cntHR = vInstance.selectNodes(pRef).length;
  3243. var sPrntKind = model.getValue(pRef + "[1]/prntkind");
  3244. var iXPos = 0;
  3245. var iYPos = 0;
  3246. var portOpenTF = "";
  3247. if(cntHR > 0 && sPrntKind != 0){
  3248. var sCommKind = model.getValue(pRef + "[1]/commkind");
  3249. var sLeftBank = model.getValue(pRef + "[1]/blank/left");
  3250. var sTopBank = model.getValue(pRef + "[1]/blank/top");
  3251. if(sCommKind == "01") {
  3252. var sSetUpVal = model.getValue(pRef + "[1]/comm01/setupval");
  3253. } else if(sCommKind == "02") {
  3254. var sComm = model.getValue(pRef + "[1]/comm02/comm");
  3255. var sDataBit = model.getValue(pRef + "[1]/comm02/databit");
  3256. var sStopBit = model.getValue(pRef + "[1]/comm02/stopbit");
  3257. var sBaudRate = model.getValue(pRef + "[1]/comm02/baudrate");
  3258. var sParity = model.getValue(pRef + "[1]/comm02/parity");;
  3259. CommAX.CommPort = sComm;
  3260. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  3261. portOpenTF = CommAX.PortOpen("true");
  3262. } else if(sCommKind == "03") {
  3263. var sSetUpVal = model.getValue(pRef + "[1]/comm03/setupval");
  3264. }
  3265. if( (portOpenTF == "TRUE" && sCommKind == "02")
  3266. || (sCommKind == "01")
  3267. || (sCommKind == "03")){
  3268. for(i=1 ; i<= cntHR; i++){
  3269. var sSndMsg = "";
  3270. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  3271. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  3272. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  3273. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  3274. var sAcptdt = model.getvalue(pRef+ "["+i+"]/acptdt");
  3275. var sMdialblnm = model.getvalue(pRef+ "["+i+"]/mdialblnm");
  3276. var sWardinfo = model.getvalue(pRef+ "["+i+"]/wardinfo");
  3277. var sWorkno = model.getvalue(pRef+ "["+i+"]/workno");
  3278. var sBcno = model.getValue(pRef + "["+i+"]/bcno");
  3279. var sPrntcnt = model.getvalue(pRef+ "["+i+"]/prntcnt");
  3280. var flag = model.getvalue(pRef+ "["+i+"]/flag");
  3281. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  3282. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  3283. if(sPrntKind == "1") {
  3284. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  3285. iXPos = Number(sLeftBank) + 20;
  3286. iYPos = Number(sTopBank) + 2;
  3287. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3288. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  3289. if(flag == "reprnt"){ // 재출력화면일때
  3290. if(sCommKind == "01") {
  3291. CommAX.SendMessageToLPT(sSndMsg);
  3292. sSndMsg = "";
  3293. } else if(sCommKind == "02") {
  3294. CommAX.SendMessage(sSndMsg);
  3295. sSndMsg = "";
  3296. }
  3297. }
  3298. iXPos = Number(sLeftBank) + 180;
  3299. iYPos = Number(sTopBank) + 5;
  3300. sSndMsg += lzzfBP_ChangeFont("C", 15, 15); // 폰트 설정
  3301. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sMdialblnm); //배지라벨명
  3302. iXPos = Number(sLeftBank) + 20;
  3303. iYPos = Number(sTopBank) + 25;
  3304. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3305. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  3306. if(flag == "reprnt"){ // 재출력화면일때
  3307. if(sCommKind == "01"){
  3308. CommAX.SendMessageToLPT(sSndMsg);
  3309. sSndMsg = "";
  3310. }else if(sCommKind == "02") {
  3311. CommAX.SendMessage(sSndMsg);
  3312. sSndMsg = "";
  3313. }
  3314. }
  3315. iXPos = Number(sLeftBank) + 120;
  3316. iYPos = Number(sTopBank) + 25;
  3317. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  3318. sSndMsg += CommAX.HanImageData();
  3319. if(flag == "reprnt"){ // 재출력화면일때
  3320. if(sCommKind == "01") {
  3321. CommAX.SendMessageToLPT(sSndMsg);
  3322. sSndMsg = "";
  3323. } else if(sCommKind == "02") {
  3324. CommAX.SendMessage(sSndMsg);
  3325. sSndMsg = "";
  3326. }
  3327. }
  3328. iXPos = Number(sLeftBank) + 220;
  3329. iYPos = Number(sTopBank) + 25;
  3330. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3331. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage); //성별나이
  3332. iXPos = Number(sLeftBank) + 50;
  3333. iYPos = Number(sTopBank) + 60;
  3334. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  3335. sSndMsg += "^BY1,2.0";//
  3336. sSndMsg += "^B3" + "N" + ",N," + "50" + ",N,N^FD" + "*" + sBcno + "*" + "^FS";//바코드 크기
  3337. if(flag == "reprnt"){ // 재출력화면일때
  3338. if(sCommKind == "01") {
  3339. CommAX.SendMessageToLPT(sSndMsg);
  3340. sSndMsg = "";
  3341. } else if(sCommKind == "02") {
  3342. CommAX.SendMessage(sSndMsg);
  3343. sSndMsg = "";
  3344. }
  3345. }
  3346. iXPos = Number(sLeftBank) + 30;
  3347. iYPos = Number(sTopBank) + 120;
  3348. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3349. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno.substr(0,12)); //작업번호(부서정보)
  3350. iXPos = Number(sLeftBank) + 180;
  3351. iYPos = Number(sTopBank) + 120;
  3352. sSndMsg += lzzfBP_ChangeFont("C", 28, 10);
  3353. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno.substr(12));//작업번호
  3354. if(flag == "reprnt"){ // 재출력화면일때
  3355. sSndMsg += lzzfBP_EndFormat(sPrntcnt); // 접수바코드출력수
  3356. if(sCommKind == "01") {
  3357. CommAX.SendMessageToLPT(sSndMsg);
  3358. } else if(sCommKind == "02") {
  3359. CommAX.SendMessage(sSndMsg);
  3360. }
  3361. }
  3362. }//end if(sPrntKind == "1")
  3363. }//end for
  3364. //portopen이 true이고 통신유형이 com일때 port close
  3365. if( portOpenTF == "TRUE" && sCommKind == "02"){
  3366. CommAX.PortOpen("false");
  3367. }
  3368. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  3369. messageBox("아래 사항을 확인후 재출력해주십시오."
  3370. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3371. + " \n 2.케이블 확인"
  3372. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3373. return;
  3374. }
  3375. }//end if(cntHR > 0 && sPrntKind != 0)
  3376. } //이후 2008-07-07 바코드 포트 오류 막기위해
  3377. catch (ee) {
  3378. messageBox("바코드출력에", "E009");
  3379. return;
  3380. }
  3381. }
  3382. /**
  3383. * 미생물 배지 라벨
  3384. */
  3385. function fLisMicroBarcodePrint2(pRef){
  3386. try {
  3387. var vInstance = document.models(0).instances(0);
  3388. var cntHR = vInstance.selectNodes(pRef).length;
  3389. var sPrntKind = model.getValue(pRef + "[1]/prntkind");
  3390. var iXPos = 0;
  3391. var iYPos = 0;
  3392. var portOpenTF = "";
  3393. if(cntHR > 0 && sPrntKind != 0){
  3394. var sCommKind = model.getValue(pRef + "[1]/commkind");
  3395. var sLeftBank = model.getValue(pRef + "[1]/blank/left");
  3396. var sTopBank = model.getValue(pRef + "[1]/blank/top");
  3397. for(i=1 ; i<= cntHR; i++){
  3398. var sSndMsg = "";
  3399. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  3400. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  3401. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  3402. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  3403. var sAcptdt = model.getvalue(pRef+ "["+i+"]/acptdt");
  3404. var sMdialblnm = model.getvalue(pRef+ "["+i+"]/mdialblnm");
  3405. var sWardinfo = model.getvalue(pRef+ "["+i+"]/wardinfo");
  3406. var sWorkno = model.getvalue(pRef+ "["+i+"]/workno");
  3407. var sBcno = model.getValue(pRef + "["+i+"]/bcno");
  3408. var sPrntcnt = model.getvalue(pRef+ "["+i+"]/prntcnt");
  3409. var flag = model.getvalue(pRef+ "["+i+"]/flag");
  3410. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  3411. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  3412. //EPL
  3413. if(sPrntKind == "10"){
  3414. sSndMsg += "N" + "\n";
  3415. sSndMsg += "JF" + "\n";
  3416. sSndMsg += "D9" + "\n";
  3417. sSndMsg += "S2" + "\n";
  3418. sSndMsg += "Q223,27" + "\n";
  3419. sSndMsg += "q456" + "\n";
  3420. iXPos = Number(sLeftBank);
  3421. iYPos = Number(sTopBank);
  3422. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sSpclblnm + "\""+ "\n";
  3423. iXPos = Number(sLeftBank) + 300;
  3424. iYPos = Number(sTopBank);
  3425. sSndMsg += "A" + iXPos + "," + iYPos + ",0,4,1,1,N," + "\"" + sMdialblnm + "\""+ "\n";
  3426. iXPos = Number(sLeftBank);
  3427. iYPos = Number(sTopBank) + 35;
  3428. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sPid + "\""+ "\n";
  3429. iXPos = Number(sLeftBank) + 130;
  3430. iYPos = Number(sTopBank);
  3431. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,2,2,N," + "\"" + sPatnm + "\""+ "\n";
  3432. iXPos = Number(sLeftBank) + 330;
  3433. iYPos = Number(sTopBank) + 35;
  3434. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sSexage + "\""+ "\n";
  3435. iXPos = Number(sLeftBank) + 30;
  3436. iYPos = Number(sTopBank) + 75;
  3437. sSndMsg += "B" + iXPos + "," + iYPos + ",0,3,2,5,90,N," + "\"" + sBcno + "\""+ "\n";
  3438. iXPos = Number(sLeftBank) + 40;
  3439. iYPos = Number(sTopBank) + 175;
  3440. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sBcno + "\""+ "\n";
  3441. //iXPos = Number(sLeftBank) + 230;
  3442. //iYPos = Number(sTopBank) + 175;
  3443. //sSndMsg += "A" + iXPos + "," + iYPos + ",0,4,1,1,N," + "\"" + sWorkno.substr(12) + "\""+ "\n";
  3444. sSndMsg += "P1"+ "\n";
  3445. CommAX.SendMsg(sSndMsg);
  3446. }else if(sPrntKind == "9"){
  3447. //300dpi
  3448. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  3449. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  3450. iXPos = Number(sLeftBank);
  3451. iYPos = Number(sTopBank);
  3452. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  3453. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm);
  3454. iXPos = Number(sLeftBank) + 430;
  3455. iYPos = Number(sTopBank);
  3456. sSndMsg += lzzfBP_ChangeFont("C", 30, 30); // 폰트 설정
  3457. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sMdialblnm);
  3458. iXPos = Number(sLeftBank);
  3459. iYPos = Number(sTopBank) + 35;
  3460. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  3461. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  3462. iXPos = Number(sLeftBank) + 250;
  3463. iYPos = Number(sTopBank);
  3464. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,40,40^FH^FD" + sPatnm + "^FS^CI1";
  3465. iXPos = Number(sLeftBank) + 460;
  3466. iYPos = Number(sTopBank) + 35;
  3467. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  3468. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage);
  3469. iXPos = Number(sLeftBank) + 30;
  3470. iYPos = Number(sTopBank) + 75;
  3471. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  3472. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 90, "*" + sBcno + "*"); // 바코드
  3473. iXPos = Number(sLeftBank) + 40;
  3474. iYPos = Number(sTopBank) + 175;
  3475. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  3476. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno.substr(0,12) + "-");
  3477. iXPos = Number(sLeftBank) + 350;
  3478. iYPos = Number(sTopBank) + 175;
  3479. sSndMsg += lzzfBP_ChangeFont("C", 30, 30); // 폰트 설정
  3480. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno.substr(12));
  3481. sSndMsg += "^XZ"
  3482. CommAX.SendMsg(sSndMsg);
  3483. }
  3484. else{
  3485. sSndMsg = "AA102000300"; // 시작위치 셋팅
  3486. //sSndMsg += "V" + iYPos + "H" + iXPos + "M" + sPid; //환자등록번호
  3487. //sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20));
  3488. iXPos = Number(sLeftBank) + 20;
  3489. iYPos = Number(sTopBank) + 2;
  3490. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSpclblnm;
  3491. iXPos = Number(sLeftBank) + 200;
  3492. iYPos = Number(sTopBank) + 1;
  3493. sSndMsg += "V" + iYPos + "H" + iXPos + "L0202S" + sMdialblnm; //배지라벨명
  3494. iXPos = Number(sLeftBank) + 20;
  3495. iYPos = Number(sTopBank) + 26;
  3496. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101S" + sPid; //환자등록번호
  3497. iXPos = Number(sLeftBank) + 110;
  3498. iYPos = Number(sTopBank) + 16;
  3499. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20));
  3500. iXPos = Number(sLeftBank) + 200;
  3501. iYPos = Number(sTopBank) + 31;
  3502. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSexage; //성별나이
  3503. //iXPos = Number(sLeftBank) + 50;
  3504. //iYPos = Number(sTopBank) + 60;
  3505. //sSndMsg += "^B3" + "N" + ",N," + "50" + ",N,N^FD" + sBcno + "^FS";//바코드 크기
  3506. iXPos = Number(sLeftBank) + 80;
  3507. iYPos = Number(sTopBank) + 48;
  3508. sSndMsg += "V" + iYPos + "H" + iXPos + "BG01050" + sBcno; // 바코드
  3509. iXPos = Number(sLeftBank) + 90;
  3510. iYPos = Number(sTopBank) + 102;
  3511. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*" + sBcno + "*";
  3512. iXPos = Number(sLeftBank) + 60;
  3513. iYPos = Number(sTopBank) + 124;
  3514. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sWorkno.substr(0,12) + "-";
  3515. iXPos = Number(sLeftBank) + 190;
  3516. iYPos = Number(sTopBank) + 120;
  3517. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + sWorkno.substr(12);
  3518. sSndMsg += "Q" + sPrntcnt + "Z";
  3519. CommAX.SendMsg(sSndMsg);
  3520. }
  3521. }//end for
  3522. }//end if(cntHR > 0 && sPrntKind != 0)
  3523. } //이후 2008-07-07 바코드 포트 오류 막기위해
  3524. catch (ee) {
  3525. messageBox("바코드출력에", "E009");
  3526. return;
  3527. }
  3528. }
  3529. /**
  3530. * 미생물 작업번호라벨 출력 - 박정은
  3531. * pBCount - 분주 또는 진검바코드 출력여부
  3532. */
  3533. function fLisMicroWorknoSpcBarcodePrint(pRef, pBCount){
  3534. try{
  3535. var vInstance = document.models(0).instances(0);
  3536. var cntHR = vInstance.selectNodes(pRef).length;
  3537. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3538. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  3539. var portOpenTF = "";
  3540. var BCount = 0;
  3541. var iXPos = 0;
  3542. var iYPos = 0;
  3543. if(pBCount == null || pBCount == ""){
  3544. BCount = 0;
  3545. }else{
  3546. BCount = pBCount;
  3547. }
  3548. if(cntHR > 0 && sPrntKind != "0"){
  3549. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  3550. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  3551. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  3552. if(sCommKind == "01") {
  3553. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  3554. } else if(sCommKind == "02") {
  3555. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  3556. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  3557. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  3558. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  3559. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  3560. var sSetUpVal = model.getValue(barcdRef + "[1]/comm02/setupval");
  3561. CommAX.CommPort = sComm;
  3562. CommAX.Settings = sBaudRate+","+ sParity+","+sDataBit+","+ sStopBit;
  3563. if(BCount > 0){
  3564. portOpenTF = "TRUE";
  3565. }else if(BCount == 0){
  3566. portOpenTF = CommAX.PortOpen("true");
  3567. }
  3568. //CommAX.PortOpen();
  3569. } else if(sCommKind == "03") {
  3570. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  3571. }
  3572. if( (portOpenTF == "TRUE" && sCommKind == "02")
  3573. || (sCommKind == "01")
  3574. || (sCommKind == "03")){
  3575. for(i=1 ; i<= cntHR;i++){
  3576. var sSndMsg = "";
  3577. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  3578. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  3579. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  3580. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  3581. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  3582. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  3583. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  3584. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  3585. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  3586. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  3587. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  3588. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  3589. var barcdcntflag = model.getValue(pRef + "["+i+"]/cntflag");
  3590. var workno = model.getValue(pRef + "["+i+"]/workno");
  3591. var spcacptdd = model.getValue(pRef + "["+i+"]/spcacptdd");
  3592. var orddrnm = model.getValue(pRef + "["+i+"]/orddrnm");
  3593. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  3594. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  3595. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  3596. var mdiabarcdprntcnt = model.getValue(pRef + "["+i+"]/mdiabarcdprntcnt");
  3597. var sRoomcd = model.getvalue(pRef+ "["+i+"]/roomcd");
  3598. var sDept = model.getvalue(pRef+ "["+i+"]/dept");
  3599. var workno2 = "";
  3600. var sPrntcnt = model.getvalue(pRef+ "["+i+"]/prntcnt");
  3601. var flag = model.getvalue(pRef+ "["+i+"]/flag");
  3602. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  3603. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  3604. if(sPrntKind == "1") {
  3605. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  3606. iXPos = Number(sLeftBank) + 20;
  3607. iYPos = Number(sTopBank) + 20;
  3608. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3609. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  3610. /*if(flag == "reprnt"){ // 재출력화면일때
  3611. if(microbarcdprntcnt > 0){
  3612. if(sCommKind == "01") {
  3613. CommAX.SendMessageToLPT(sSndMsg);
  3614. sSndMsg = "";
  3615. } else if(sCommKind == "02") {
  3616. CommAX.SendMessage(sSndMsg);
  3617. sSndMsg = "";
  3618. }
  3619. }
  3620. }else{
  3621. if(microbarcdprntcnt > 0){
  3622. if(sCommKind == "01") {
  3623. CommAX.SendMessageToLPT(sSndMsg);
  3624. sSndMsg = "";
  3625. } else if(sCommKind == "02") {
  3626. CommAX.SendMessage(sSndMsg);
  3627. sSndMsg = "";
  3628. }
  3629. }
  3630. }*/
  3631. iXPos = Number(sLeftBank) + 130;
  3632. iYPos = Number(sTopBank) + 18;
  3633. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  3634. sSndMsg += CommAX.HanImageData();
  3635. /*if(flag == "reprnt"){ // 재출력화면일때
  3636. if(microbarcdprntcnt > 0){
  3637. if(sCommKind == "01") {
  3638. CommAX.SendMessageToLPT(sSndMsg);
  3639. sSndMsg = "";
  3640. } else if(sCommKind == "02") {
  3641. CommAX.SendMessage(sSndMsg);
  3642. sSndMsg = "";
  3643. }
  3644. }
  3645. }else{
  3646. if(microbarcdprntcnt > 0){
  3647. if(sCommKind == "01") {
  3648. CommAX.SendMessageToLPT(sSndMsg);
  3649. sSndMsg = "";
  3650. } else if(sCommKind == "02") {
  3651. CommAX.SendMessage(sSndMsg);
  3652. sSndMsg = "";
  3653. }
  3654. }
  3655. }*/
  3656. iXPos = Number(sLeftBank) + 300;
  3657. iYPos = Number(sTopBank) + 20;
  3658. sSndMsg += lzzfBP_ChangeFont("C", 12, 12); // 폰트 설정
  3659. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  3660. iXPos = Number(sLeftBank) + 20;
  3661. iYPos = Number(sTopBank) + 60;
  3662. sSndMsg += lzzfBP_ChangeFont("C", 12, 12); // 폰트 설정
  3663. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomcd); //병실코드
  3664. /*if(flag == "reprnt"){ // 재출력화면일때
  3665. //if(microbarcdprntcnt > 0){
  3666. if(sPrntcnt > 0){
  3667. if(sCommKind == "01") {
  3668. CommAX.SendMessageToLPT(sSndMsg);
  3669. sSndMsg = "";
  3670. } else if(sCommKind == "02") {
  3671. CommAX.SendMessage(sSndMsg);
  3672. sSndMsg = "";
  3673. }
  3674. }
  3675. }else{
  3676. if(microbarcdprntcnt > 0){
  3677. if(sCommKind == "01") {
  3678. CommAX.SendMessageToLPT(sSndMsg);
  3679. sSndMsg = "";
  3680. } else if(sCommKind == "02") {
  3681. CommAX.SendMessage(sSndMsg);
  3682. sSndMsg = "";
  3683. }
  3684. }
  3685. }*/
  3686. iXPos = Number(sLeftBank) + 100;
  3687. iYPos = Number(sTopBank) + 55;
  3688. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sDept.substr(0, 20), 1, 1);
  3689. sSndMsg += CommAX.HanImageData();
  3690. /*if(flag == "reprnt"){ // 재출력화면일때
  3691. if(microbarcdprntcnt > 0){
  3692. if(sCommKind == "01") {
  3693. CommAX.SendMessageToLPT(sSndMsg);
  3694. sSndMsg = "";
  3695. } else if(sCommKind == "02") {
  3696. CommAX.SendMessage(sSndMsg);
  3697. sSndMsg = "";
  3698. }
  3699. }
  3700. }else{
  3701. if(microbarcdprntcnt > 0){
  3702. if(sCommKind == "01") {
  3703. CommAX.SendMessageToLPT(sSndMsg);
  3704. sSndMsg = "";
  3705. } else if(sCommKind == "02") {
  3706. CommAX.SendMessage(sSndMsg);
  3707. sSndMsg = "";
  3708. }
  3709. }
  3710. }*/
  3711. iXPos = Number(sLeftBank) + 220;
  3712. iYPos = Number(sTopBank) + 60;
  3713. sSndMsg += lzzfBP_ChangeFont("C", 12, 12); // 폰트 설정
  3714. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage); // 성별나이
  3715. iXPos = Number(sLeftBank) + 300;
  3716. iYPos = Number(sTopBank) + 55;
  3717. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, orddrnm.substr(0, 20), 1, 1);
  3718. sSndMsg += CommAX.HanImageData();
  3719. /*if(flag == "reprnt"){ // 재출력화면일때
  3720. if(microbarcdprntcnt > 0){
  3721. if(sCommKind == "01") {
  3722. CommAX.SendMessageToLPT(sSndMsg);
  3723. sSndMsg = "";
  3724. } else if(sCommKind == "02") {
  3725. CommAX.SendMessage(sSndMsg);
  3726. sSndMsg = "";
  3727. }
  3728. }
  3729. }else{
  3730. if(microbarcdprntcnt > 0){
  3731. if(sCommKind == "01") {
  3732. CommAX.SendMessageToLPT(sSndMsg);
  3733. sSndMsg = "";
  3734. } else if(sCommKind == "02") {
  3735. CommAX.SendMessage(sSndMsg);
  3736. sSndMsg = "";
  3737. }
  3738. }
  3739. }*/
  3740. iXPos = Number(sLeftBank) + 20;
  3741. iYPos = Number(sTopBank) + 95;
  3742. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3743. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTclslblnmlist); //검사항목라벨명
  3744. if(workno != ""){
  3745. workno2 = workno.substr(12,3);
  3746. workno = workno.substr(0,8) + "-" + workno.substr(8,2) + "-" +
  3747. workno.substr(10,2) + "-";
  3748. }
  3749. iXPos = Number(sLeftBank) + 120;
  3750. iYPos = Number(sTopBank) + 95;
  3751. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3752. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, workno); //작업번호
  3753. iXPos = Number(sLeftBank) + 300;
  3754. iYPos = Number(sTopBank) + 88;
  3755. sSndMsg += lzzfBP_ChangeFont("C", 28, 16); // 폰트 설정
  3756. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, workno2); //작업번호
  3757. iXPos = Number(sLeftBank) + 380;
  3758. iYPos = Number(sTopBank) + 95;
  3759. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3760. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, spcacptdd); //접수일자
  3761. /*if(flag == "reprnt"){ // 재출력화면일때
  3762. if(microbarcdprntcnt > 0){
  3763. if(sCommKind == "01") {
  3764. CommAX.SendMessageToLPT(sSndMsg);
  3765. sSndMsg = "";
  3766. } else if(sCommKind == "02") {
  3767. CommAX.SendMessage(sSndMsg);
  3768. sSndMsg = "";
  3769. }
  3770. }
  3771. }else{
  3772. if(microbarcdprntcnt > 0){
  3773. if(sCommKind == "01") {
  3774. CommAX.SendMessageToLPT(sSndMsg);
  3775. sSndMsg = "";
  3776. } else if(sCommKind == "02") {
  3777. CommAX.SendMessage(sSndMsg);
  3778. sSndMsg = "";
  3779. }
  3780. }
  3781. }*/
  3782. iXPos = Number(sLeftBank) + 60;
  3783. iYPos = Number(sTopBank) + 120;
  3784. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  3785. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 100, "*" + sBcno + "*"); // 바코드번호
  3786. iXPos = Number(sLeftBank) + 140;
  3787. iYPos = Number(sTopBank) + 230;
  3788. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3789. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, "*" + sBcno + "*"); //바코드번호
  3790. if(flag == "reprnt"){ // 재출력화면일때
  3791. if(sPrntcnt > 0){
  3792. sSndMsg += lzzfBP_EndFormat(sPrntcnt); // 접수바코드출력수
  3793. if(sCommKind == "01") {
  3794. CommAX.SendMessageToLPT(sSndMsg);
  3795. } else if(sCommKind == "02") {
  3796. CommAX.SendMessage(sSndMsg);
  3797. }
  3798. }
  3799. }else{
  3800. if(microbarcdprntcnt > 0){
  3801. sSndMsg += lzzfBP_EndFormat(microbarcdprntcnt); // 접수바코드출력수
  3802. if(sCommKind == "01") {
  3803. CommAX.SendMessageToLPT(sSndMsg);
  3804. } else if(sCommKind == "02") {
  3805. CommAX.SendMessage(sSndMsg);
  3806. }
  3807. }
  3808. }
  3809. }
  3810. }//end for
  3811. //portopen이 true이고 통신유형이 com일때 port close
  3812. if( portOpenTF == "TRUE" && sCommKind == "02"){
  3813. CommAX.PortOpen("false");
  3814. }
  3815. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  3816. messageBox("아래 사항을 확인후 재출력해주십시오."
  3817. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3818. + " \n 2.케이블 확인"
  3819. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3820. return;
  3821. }
  3822. }
  3823. }catch(ee) {//이후 2008-07-07 바코드 포트 오류 막기위해
  3824. messageBox("바코드출력에", "E009");
  3825. return;
  3826. }
  3827. }
  3828. /**
  3829. * 미생물 작업번호라벨 출력 - 박정은
  3830. * pBCount - 분주 또는 진검바코드 출력여부
  3831. */
  3832. function fLisMicroWorknoSpcBarcodePrint2(pRef, pBCount){
  3833. try{
  3834. var vInstance = document.models(0).instances(0);
  3835. var cntHR = vInstance.selectNodes(pRef).length;
  3836. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3837. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  3838. var portOpenTF = "";
  3839. var BCount = 0;
  3840. var iXPos = 0;
  3841. var iYPos = 0;
  3842. if(pBCount == null || pBCount == ""){
  3843. BCount = 0;
  3844. }else{
  3845. BCount = pBCount;
  3846. }
  3847. if(cntHR > 0 && sPrntKind != "0"){
  3848. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  3849. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  3850. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  3851. //EPL
  3852. if(sPrntKind == "10"){
  3853. for(i=1 ; i<= cntHR;i++){
  3854. var sSndMsg = "";
  3855. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  3856. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  3857. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  3858. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  3859. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  3860. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  3861. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  3862. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  3863. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  3864. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  3865. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  3866. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  3867. var barcdcntflag = model.getValue(pRef + "["+i+"]/cntflag");
  3868. var workno = model.getValue(pRef + "["+i+"]/workno");
  3869. var spcacptdd = model.getValue(pRef + "["+i+"]/spcacptdd");
  3870. var orddrnm = model.getValue(pRef + "["+i+"]/orddrnm");
  3871. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  3872. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  3873. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  3874. var mdiabarcdprntcnt = model.getValue(pRef + "["+i+"]/mdiabarcdprntcnt");
  3875. var sRoomcd = model.getvalue(pRef+ "["+i+"]/roomcd");
  3876. var sDept = model.getvalue(pRef+ "["+i+"]/dept");
  3877. var workno2 = "";
  3878. var sPrntcnt = model.getvalue(pRef+ "["+i+"]/prntcnt");
  3879. var flag = model.getvalue(pRef+ "["+i+"]/flag");
  3880. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  3881. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  3882. sSndMsg += "N" + "\n";
  3883. sSndMsg += "JF" + "\n";
  3884. sSndMsg += "D9" + "\n";
  3885. sSndMsg += "S2" + "\n";
  3886. sSndMsg += "Q223,27" + "\n";
  3887. sSndMsg += "q456" + "\n";
  3888. iXPos = Number(sLeftBank);
  3889. iYPos = Number(sTopBank);
  3890. sSndMsg += "A" + iXPos + "," + iYPos + ",0,2,1,1,N," + "\"" + sSpclblnm + "\""+ "\n";
  3891. iXPos = Number(sLeftBank) + 170;
  3892. iYPos = Number(sTopBank);
  3893. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sPatnm + "\""+ "\n";
  3894. iXPos = Number(sLeftBank) + 330;
  3895. iYPos = Number(sTopBank);
  3896. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sPid + "\""+ "\n";
  3897. iXPos = Number(sLeftBank) + 20;
  3898. iYPos = Number(sTopBank) + 30;
  3899. sSndMsg += "B" + iXPos + "," + iYPos + ",0,3,2,5,93,N," + "\"" + sBcno + "\""+ "\n";
  3900. sSndMsg += "P1"+ "\n";
  3901. CommAX.SendMsg(sSndMsg);
  3902. }//for(i=1 ; i<= cntHR;i++)
  3903. }else{
  3904. for(i=1 ; i<= cntHR;i++){
  3905. var sSndMsg = "";
  3906. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  3907. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  3908. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  3909. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  3910. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  3911. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  3912. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  3913. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  3914. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  3915. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  3916. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  3917. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  3918. var barcdcntflag = model.getValue(pRef + "["+i+"]/cntflag");
  3919. var workno = model.getValue(pRef + "["+i+"]/workno");
  3920. var spcacptdd = model.getValue(pRef + "["+i+"]/spcacptdd");
  3921. var orddrnm = model.getValue(pRef + "["+i+"]/orddrnm");
  3922. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  3923. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  3924. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  3925. var mdiabarcdprntcnt = model.getValue(pRef + "["+i+"]/mdiabarcdprntcnt");
  3926. var sRoomcd = model.getvalue(pRef+ "["+i+"]/roomcd");
  3927. var sDept = model.getvalue(pRef+ "["+i+"]/dept");
  3928. var workno2 = "";
  3929. var sPrntcnt = model.getvalue(pRef+ "["+i+"]/prntcnt");
  3930. var flag = model.getvalue(pRef+ "["+i+"]/flag");
  3931. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  3932. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  3933. sSndMsg = "AA103500500"; // 시작위치 셋팅
  3934. iXPos = Number(sLeftBank) + 20;
  3935. iYPos = Number(sTopBank) + 10;
  3936. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSpclblnm; //검체명
  3937. iXPos = Number(sLeftBank) + 130;
  3938. iYPos = Number(sTopBank) + 2;
  3939. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20)); // 환자명
  3940. iXPos = Number(sLeftBank) + 300;
  3941. iYPos = Number(sTopBank) + 10;
  3942. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid;//환자등록번호
  3943. iXPos = Number(sLeftBank) + 20;
  3944. iYPos = Number(sTopBank) + 35;
  3945. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sRoomcd; //병실코드
  3946. iXPos = Number(sLeftBank) + 100;
  3947. iYPos = Number(sTopBank) + 30;
  3948. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sDept.substr(0, 20));
  3949. iXPos = Number(sLeftBank) + 220;
  3950. iYPos = Number(sTopBank) + 35;
  3951. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSexage; // 성별나이
  3952. iXPos = Number(sLeftBank) + 300;
  3953. iYPos = Number(sTopBank) + 30;
  3954. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, orddrnm.substr(0, 20));
  3955. iXPos = Number(sLeftBank) + 20;
  3956. iYPos = Number(sTopBank) + 60;
  3957. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sTclslblnmlist; //검사항목라벨명
  3958. if(workno != ""){
  3959. workno2 = workno.substr(12,3);
  3960. workno = workno.substr(0,8) + "-" + workno.substr(8,2) + "-" +
  3961. workno.substr(10,2) + "-";
  3962. }
  3963. iXPos = Number(sLeftBank) + 120;
  3964. iYPos = Number(sTopBank) + 60;
  3965. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + workno; //작업번호
  3966. iXPos = Number(sLeftBank) + 290;
  3967. iYPos = Number(sTopBank) + 60;
  3968. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + workno2;
  3969. iXPos = Number(sLeftBank) + 380;
  3970. iYPos = Number(sTopBank) + 60;
  3971. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + spcacptdd; //접수일자
  3972. iXPos = Number(sLeftBank) + 150;
  3973. iYPos = Number(sTopBank) + 85;
  3974. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*" + sBcno + "*"; // 바코드번호
  3975. iXPos = Number(sLeftBank) + 70;
  3976. iYPos = Number(sTopBank) + 100;
  3977. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02100" + sBcno; // 바코드
  3978. sSndMsg += "Q" + microbarcdprntcnt + "Z";
  3979. CommAX.SendMsg(sSndMsg);
  3980. }//for(i=1 ; i<= cntHR;i++)
  3981. }
  3982. }
  3983. }catch(ee) {//이후 2008-07-07 바코드 포트 오류 막기위해
  3984. messageBox("바코드출력에", "E009");
  3985. return;
  3986. }
  3987. }
  3988. /**
  3989. * 미생물 작업번호라벨 출력 - 박정은 여의도성모용
  3990. * pBCount - 분주 또는 진검바코드 출력여부
  3991. */
  3992. function fLisMicroWorknoSpcBarcodePrint011(pRef, pBCount){
  3993. try{
  3994. var vInstance = document.models(0).instances(0);
  3995. var cntHR = vInstance.selectNodes(pRef).length;
  3996. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3997. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  3998. var portOpenTF = "";
  3999. var BCount = 0;
  4000. var iXPos = 0;
  4001. var iYPos = 0;
  4002. if(pBCount == null || pBCount == ""){
  4003. BCount = 0;
  4004. }else{
  4005. BCount = pBCount;
  4006. }
  4007. if(cntHR > 0 && sPrntKind != "0"){
  4008. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  4009. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  4010. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  4011. if(sCommKind == "01") {
  4012. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  4013. } else if(sCommKind == "02") {
  4014. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  4015. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  4016. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  4017. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  4018. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  4019. var sSetUpVal = model.getValue(barcdRef + "[1]/comm02/setupval");
  4020. CommAX.CommPort = sComm;
  4021. CommAX.Settings = sBaudRate+","+ sParity+","+sDataBit+","+ sStopBit;
  4022. if(BCount > 0){
  4023. portOpenTF = "TRUE";
  4024. }else if(BCount == 0){
  4025. portOpenTF = CommAX.PortOpen("true");
  4026. }
  4027. //CommAX.PortOpen();
  4028. } else if(sCommKind == "03") {
  4029. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  4030. }
  4031. if( (portOpenTF == "TRUE" && sCommKind == "02")
  4032. || (sCommKind == "01")
  4033. || (sCommKind == "03")){
  4034. for(i=1 ; i<= cntHR;i++){
  4035. var sSndMsg = "";
  4036. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  4037. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  4038. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  4039. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  4040. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  4041. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  4042. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  4043. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  4044. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  4045. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  4046. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  4047. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  4048. var barcdcntflag = model.getValue(pRef + "["+i+"]/cntflag");
  4049. var workno = model.getValue(pRef + "["+i+"]/workno");
  4050. var spcacptdd = model.getValue(pRef + "["+i+"]/spcacptdd");
  4051. var orddrnm = model.getValue(pRef + "["+i+"]/orddrnm");
  4052. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  4053. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  4054. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  4055. var mdiabarcdprntcnt = model.getValue(pRef + "["+i+"]/mdiabarcdprntcnt");
  4056. var sRoomcd = model.getvalue(pRef+ "["+i+"]/roomcd");
  4057. var sDept = model.getvalue(pRef+ "["+i+"]/dept");
  4058. var workno2 = "";
  4059. var sPrntcnt = model.getvalue(pRef+ "["+i+"]/prntcnt");
  4060. var flag = model.getvalue(pRef+ "["+i+"]/flag");
  4061. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  4062. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  4063. if(sPrntKind == "1") {
  4064. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  4065. iXPos = Number(sLeftBank) + 10;
  4066. iYPos = Number(sTopBank) + 20;
  4067. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  4068. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 70, "*" + sBcno + "*"); // 바코드번호 짝데기
  4069. iXPos = Number(sLeftBank) + 40;
  4070. iYPos = Number(sTopBank) + 95;
  4071. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4072. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, sBcno); //바코드번호 텍스트
  4073. iXPos = Number(sLeftBank) + 20;
  4074. iYPos = Number(sTopBank) + 130;
  4075. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4076. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(0,8)); // 작업번호 앞자리
  4077. iXPos = Number(sLeftBank) + 120;
  4078. iYPos = Number(sTopBank) + 130;
  4079. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4080. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(8,16)); //작업번호 뒷자리
  4081. if(flag == "reprnt"){ // 재출력화면일때
  4082. //if(microbarcdprntcnt > 0){
  4083. if(sCommKind == "01") {
  4084. CommAX.SendMessageToLPT(sSndMsg);
  4085. sSndMsg = "";
  4086. } else if(sCommKind == "02") {
  4087. CommAX.SendMessage(sSndMsg);
  4088. sSndMsg = "";
  4089. }
  4090. //}
  4091. }else{
  4092. if(microbarcdprntcnt > 0){
  4093. if(sCommKind == "01") {
  4094. CommAX.SendMessageToLPT(sSndMsg);
  4095. sSndMsg = "";
  4096. } else if(sCommKind == "02") {
  4097. CommAX.SendMessage(sSndMsg);
  4098. sSndMsg = "";
  4099. }
  4100. }
  4101. }
  4102. iXPos = Number(sLeftBank) + 305;
  4103. iYPos = Number(sTopBank) + 20;
  4104. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4105. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  4106. iXPos = Number(sLeftBank) + 515;
  4107. iYPos = Number(sTopBank) + 20;
  4108. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4109. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, spcacptdd); //접수일자
  4110. iXPos = Number(sLeftBank) + 305;
  4111. iYPos = Number(sTopBank) + 60;
  4112. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4113. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTclslblnmlist); //검사항목라벨명
  4114. if(flag == "reprnt"){ // 재출력화면일때
  4115. //if(microbarcdprntcnt > 0){
  4116. if(sCommKind == "01") {
  4117. CommAX.SendMessageToLPT(sSndMsg);
  4118. sSndMsg = "";
  4119. } else if(sCommKind == "02") {
  4120. CommAX.SendMessage(sSndMsg);
  4121. sSndMsg = "";
  4122. }
  4123. //}
  4124. }else{
  4125. if(microbarcdprntcnt > 0){
  4126. if(sCommKind == "01") {
  4127. CommAX.SendMessageToLPT(sSndMsg);
  4128. sSndMsg = "";
  4129. } else if(sCommKind == "02") {
  4130. CommAX.SendMessage(sSndMsg);
  4131. sSndMsg = "";
  4132. }
  4133. }
  4134. }
  4135. iXPos = Number(sLeftBank) + 305;
  4136. iYPos = Number(sTopBank) + 80;
  4137. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sDept.substr(0, 20), 1, 1);
  4138. sSndMsg += CommAX.HanImageData();
  4139. if(sRoomcd != ""){ // 병실있을때만
  4140. iXPos = Number(sLeftBank) + 360;
  4141. iYPos = Number(sTopBank) + 85;
  4142. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4143. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, " (" + sRoomcd + ")"); //병실코드
  4144. }
  4145. iXPos = Number(sLeftBank) + 500;
  4146. iYPos = Number(sTopBank) + 85;
  4147. sSndMsg += lzzfBP_ChangeFont("C", 12, 12); // 폰트 설정
  4148. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage); // 성별나이
  4149. iXPos = Number(sLeftBank) + 305;
  4150. iYPos = Number(sTopBank) + 110;
  4151. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1); // 환자명
  4152. sSndMsg += CommAX.HanImageData();
  4153. iXPos = Number(sLeftBank) + 460;
  4154. iYPos = Number(sTopBank) + 115;
  4155. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4156. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  4157. if(flag == "reprnt"){ // 재출력화면일때
  4158. //if(microbarcdprntcnt > 0){
  4159. if(sCommKind == "01") {
  4160. CommAX.SendMessageToLPT(sSndMsg);
  4161. sSndMsg = "";
  4162. } else if(sCommKind == "02") {
  4163. CommAX.SendMessage(sSndMsg);
  4164. sSndMsg = "";
  4165. }
  4166. //}
  4167. }else{
  4168. if(microbarcdprntcnt > 0){
  4169. if(sCommKind == "01") {
  4170. CommAX.SendMessageToLPT(sSndMsg);
  4171. sSndMsg = "";
  4172. } else if(sCommKind == "02") {
  4173. CommAX.SendMessage(sSndMsg);
  4174. sSndMsg = "";
  4175. }
  4176. }
  4177. }
  4178. // 배지 1
  4179. iXPos = Number(sLeftBank) +10 ;
  4180. iYPos = Number(sTopBank) + 180;
  4181. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  4182. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 40, "*" + sBcno + "*"); // 바코드번호 짝데기
  4183. iXPos = Number(sLeftBank) + 40;
  4184. iYPos = Number(sTopBank) + 225;
  4185. sSndMsg += lzzfBP_ChangeFont("C", 20, 16); // 폰트 설정
  4186. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, sBcno); //바코드번호 텍스트
  4187. iXPos = Number(sLeftBank) + 20;
  4188. iYPos = Number(sTopBank) + 250;
  4189. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4190. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(0,8)); //작업번호
  4191. iXPos = Number(sLeftBank) + 120;
  4192. iYPos = Number(sTopBank) + 250;
  4193. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4194. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(8,16)); //작업번호
  4195. iXPos = Number(sLeftBank) + 20;
  4196. iYPos = Number(sTopBank) + 275;
  4197. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1); // 환자명
  4198. sSndMsg += CommAX.HanImageData();
  4199. iXPos = Number(sLeftBank) + 180;
  4200. iYPos = Number(sTopBank) + 280;
  4201. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4202. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  4203. if(flag == "reprnt"){ // 재출력화면일때
  4204. //if(microbarcdprntcnt > 0){
  4205. if(sCommKind == "01") {
  4206. CommAX.SendMessageToLPT(sSndMsg);
  4207. sSndMsg = "";
  4208. } else if(sCommKind == "02") {
  4209. CommAX.SendMessage(sSndMsg);
  4210. sSndMsg = "";
  4211. }
  4212. //}
  4213. }else{
  4214. if(microbarcdprntcnt > 0){
  4215. if(sCommKind == "01") {
  4216. CommAX.SendMessageToLPT(sSndMsg);
  4217. sSndMsg = "";
  4218. } else if(sCommKind == "02") {
  4219. CommAX.SendMessage(sSndMsg);
  4220. sSndMsg = "";
  4221. }
  4222. }
  4223. }
  4224. // 배지 2
  4225. iXPos = Number(sLeftBank) + 330 ;
  4226. iYPos = Number(sTopBank) + 180;
  4227. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  4228. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 40, "*" + sBcno + "*"); // 바코드번호 짝데기
  4229. iXPos = Number(sLeftBank) + 370;
  4230. iYPos = Number(sTopBank) + 225;
  4231. sSndMsg += lzzfBP_ChangeFont("C", 16, 16); // 폰트 설정
  4232. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, sBcno); //바코드번호 텍스트
  4233. iXPos = Number(sLeftBank) + 340;
  4234. iYPos = Number(sTopBank) + 250;
  4235. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4236. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(0,8)); //작업번호
  4237. iXPos = Number(sLeftBank) + 440;
  4238. iYPos = Number(sTopBank) + 250;
  4239. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4240. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(8,16)); //작업번호
  4241. iXPos = Number(sLeftBank) + 350;
  4242. iYPos = Number(sTopBank) + 275;
  4243. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1); // 환자명
  4244. sSndMsg += CommAX.HanImageData();
  4245. iXPos = Number(sLeftBank) + 530;
  4246. iYPos = Number(sTopBank) + 280;
  4247. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4248. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  4249. if(flag == "reprnt"){ // 재출력화면일때
  4250. //if(microbarcdprntcnt > 0){
  4251. if(sCommKind == "01") {
  4252. CommAX.SendMessageToLPT(sSndMsg);
  4253. sSndMsg = "";
  4254. } else if(sCommKind == "02") {
  4255. CommAX.SendMessage(sSndMsg);
  4256. sSndMsg = "";
  4257. }
  4258. //}
  4259. }else{
  4260. if(microbarcdprntcnt > 0){
  4261. if(sCommKind == "01") {
  4262. CommAX.SendMessageToLPT(sSndMsg);
  4263. sSndMsg = "";
  4264. } else if(sCommKind == "02") {
  4265. CommAX.SendMessage(sSndMsg);
  4266. sSndMsg = "";
  4267. }
  4268. }
  4269. }
  4270. // 배지 3
  4271. iXPos = Number(sLeftBank) + 10;
  4272. iYPos = Number(sTopBank) + 340;
  4273. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  4274. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 40, "*" + sBcno + "*"); // 바코드번호 짝데기
  4275. iXPos = Number(sLeftBank) + 40;
  4276. iYPos = Number(sTopBank) + 385;
  4277. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4278. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, sBcno); //바코드번호 텍스트
  4279. iXPos = Number(sLeftBank) + 20;
  4280. iYPos = Number(sTopBank) + 410;
  4281. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4282. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(0,8)); //작업번호
  4283. iXPos = Number(sLeftBank) + 120;
  4284. iYPos = Number(sTopBank) + 410;
  4285. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4286. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(8,16)); //작업번호
  4287. iXPos = Number(sLeftBank) + 20;
  4288. iYPos = Number(sTopBank) + 435;
  4289. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1); // 환자명
  4290. sSndMsg += CommAX.HanImageData();
  4291. iXPos = Number(sLeftBank) + 180;
  4292. iYPos = Number(sTopBank) + 440;
  4293. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4294. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  4295. if(flag == "reprnt"){ // 재출력화면일때
  4296. //if(microbarcdprntcnt > 0){
  4297. if(sCommKind == "01") {
  4298. CommAX.SendMessageToLPT(sSndMsg);
  4299. sSndMsg = "";
  4300. } else if(sCommKind == "02") {
  4301. CommAX.SendMessage(sSndMsg);
  4302. sSndMsg = "";
  4303. }
  4304. // }
  4305. }else{
  4306. if(microbarcdprntcnt > 0){
  4307. if(sCommKind == "01") {
  4308. CommAX.SendMessageToLPT(sSndMsg);
  4309. sSndMsg = "";
  4310. } else if(sCommKind == "02") {
  4311. CommAX.SendMessage(sSndMsg);
  4312. sSndMsg = "";
  4313. }
  4314. }
  4315. }
  4316. // 배지 4
  4317. iXPos = Number(sLeftBank) + 330 ;
  4318. iYPos = Number(sTopBank) + 340;
  4319. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  4320. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 40, "*" + sBcno + "*"); // 바코드번호 짝데기
  4321. iXPos = Number(sLeftBank) + 370;
  4322. iYPos = Number(sTopBank) + 385;
  4323. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4324. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, sBcno); //바코드번호 텍스트
  4325. iXPos = Number(sLeftBank) + 340;
  4326. iYPos = Number(sTopBank) + 410;
  4327. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4328. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(0,8)); //작업번호
  4329. iXPos = Number(sLeftBank) + 440;
  4330. iYPos = Number(sTopBank) + 410;
  4331. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4332. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, workno.substr(8,16)); //작업번호
  4333. iXPos = Number(sLeftBank) + 350;
  4334. iYPos = Number(sTopBank) + 435;
  4335. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1); // 환자명
  4336. sSndMsg += CommAX.HanImageData();
  4337. iXPos = Number(sLeftBank) + 530;
  4338. iYPos = Number(sTopBank) + 440;
  4339. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4340. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  4341. if(flag == "reprnt"){ // 재출력화면일때
  4342. if(sPrntcnt > 0){
  4343. sSndMsg += lzzfBP_EndFormat(sPrntcnt); // 접수바코드출력수
  4344. if(sCommKind == "01") {
  4345. CommAX.SendMessageToLPT(sSndMsg);
  4346. } else if(sCommKind == "02") {
  4347. CommAX.SendMessage(sSndMsg);
  4348. }
  4349. }
  4350. }else{
  4351. if(microbarcdprntcnt > 0){
  4352. sSndMsg += lzzfBP_EndFormat(microbarcdprntcnt); // 접수바코드출력수
  4353. if(sCommKind == "01") {
  4354. CommAX.SendMessageToLPT(sSndMsg);
  4355. } else if(sCommKind == "02") {
  4356. CommAX.SendMessage(sSndMsg);
  4357. }
  4358. }
  4359. }
  4360. }// if(sPrntKind == "1")
  4361. }//end for
  4362. //portopen이 true이고 통신유형이 com일때 port close
  4363. if( portOpenTF == "TRUE" && sCommKind == "02"){
  4364. CommAX.PortOpen("false");
  4365. }
  4366. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  4367. messageBox("아래 사항을 확인후 재출력해주십시오."
  4368. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4369. + " \n 2.케이블 확인"
  4370. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4371. return;
  4372. }
  4373. }
  4374. }catch(ee) {//이후 2008-07-07 바코드 포트 오류 막기위해
  4375. messageBox("바코드출력에", "E009");
  4376. return;
  4377. }
  4378. }
  4379. /**
  4380. * 혈액은행 바코드 출력 혈액준비, 혈액불출시
  4381. */
  4382. function fLisTnsrBarcodePrint(pRef){
  4383. try{
  4384. var vInstance = document.models(0).instances(0);
  4385. var cntHR = vInstance.selectNodes(pRef).length;
  4386. var sPrntKind = model.getValue(pRef + "[1]/prntkind");
  4387. var iXPos = 0;
  4388. var iYPos = 0;
  4389. var portOpenTF = "";
  4390. var aStr = "";
  4391. var iWidth = 0;
  4392. var aFlag = new Array(); //한글 영문 구분
  4393. //혈액불출 결과저장시에만 값이 존재.
  4394. //var sBarcdFlag = model.getValue(pRef + "[1]/flag");
  4395. if(cntHR > 0 && sPrntKind != "0"){
  4396. var sCommKind = model.getValue(pRef + "[1]/commkind");
  4397. var sLeftBank = model.getValue(pRef + "[1]/blank/left");
  4398. var sTopBank = model.getValue(pRef + "[1]/blank/top");
  4399. if(sCommKind == "01") {
  4400. var sSetUpVal = model.getValue(pRef + "[1]/comm01/setupval");
  4401. } else if(sCommKind == "02") {
  4402. var sComm = model.getValue(pRef + "[1]/comm02/comm");
  4403. var sDataBit = model.getValue(pRef + "[1]/comm02/databit");
  4404. var sStopBit = model.getValue(pRef + "[1]/comm02/stopbit");
  4405. var sBaudRate = model.getValue(pRef + "[1]/comm02/baudrate");
  4406. var sParity = model.getValue(pRef + "[1]/comm02/parity");
  4407. var sSetUpVal = model.getValue(pRef + "[1]/comm02/setupval");
  4408. CommAX.CommPort = sComm;
  4409. CommAX.Settings = sBaudRate+","+ sParity+","+sDataBit+","+ sStopBit;
  4410. portOpenTF = CommAX.PortOpen("true");
  4411. } else if(sCommKind == "03") {
  4412. var sSetUpVal = model.getValue(pRef + "[1]/comm03/setupval");
  4413. }
  4414. if( (portOpenTF == "TRUE" && sCommKind == "02")
  4415. || (sCommKind == "01")
  4416. || (sCommKind == "03") ){
  4417. for(i=1 ; i<= cntHR;i++){
  4418. var sSndMsg = "";
  4419. var sPrepBlodSeqNo = model.getvalue(pRef+ "["+i+"]/prepblodseqno");
  4420. var sBlodNo = model.getvalue(pRef+ "["+i+"]/blodno");
  4421. var sBlodNo2 = model.getvalue(pRef+ "["+i+"]/blodno2");
  4422. var sBlodNo3 = model.getvalue(pRef+ "["+i+"]/blodno3");
  4423. var sBlodNo4 = model.getvalue(pRef+ "["+i+"]/blodno4");
  4424. var sBlodNo5 = model.getvalue(pRef+ "["+i+"]/blodno5");
  4425. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  4426. var sPatNm = model.getvalue(pRef+ "["+i+"]/patnm");
  4427. var aSexAge = model.getvalue(pRef+ "["+i+"]/sexage");
  4428. var sRoomInfo = model.getvalue(pRef+ "["+i+"]/roominfo");
  4429. var sCMRslt = model.getvalue(pRef+ "["+i+"]/cmrslt");
  4430. var sBlodComNm = model.getvalue(pRef+ "["+i+"]/blodcomnm");
  4431. var sAboRh = model.getvalue(pRef+ "["+i+"]/aborh");
  4432. var sBtype = model.getvalue(pRef+ "["+i+"]/btype");
  4433. var sIRyn = model.getvalue(pRef+ "["+i+"]/iryn");
  4434. var sPrtDD = model.getvalue(pRef+ "["+i+"]/prtdd");
  4435. var sPrtTM = model.getvalue(pRef+ "["+i+"]/prttm");
  4436. var cmnm = model.getvalue(pRef+ "["+i+"]/cmnm"); //검사자
  4437. var filteryn = model.getvalue(pRef+ "["+i+"]/filteryn"); //검사자
  4438. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  4439. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  4440. if(sPrntKind == "1") {
  4441. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  4442. iXPos = Number(sLeftBank) + 115;
  4443. iYPos = Number(sTopBank) + 155;
  4444. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4445. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo); //혈액번호
  4446. iXPos = Number(sLeftBank) + 300;
  4447. iYPos = Number(sTopBank) + 155;
  4448. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4449. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo2); //혈액번호
  4450. iXPos = Number(sLeftBank) + 115;
  4451. iYPos = Number(sTopBank) + 195;
  4452. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4453. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo3); //혈액번호
  4454. iXPos = Number(sLeftBank) + 300;
  4455. iYPos = Number(sTopBank) + 195;
  4456. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4457. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo4); //혈액번호
  4458. iXPos = Number(sLeftBank) + 475;
  4459. iYPos = Number(sTopBank) + 195;
  4460. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4461. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo5); //혈액번호
  4462. if(sCommKind == "01") {
  4463. CommAX.SendMessageToLPT(sSndMsg);
  4464. sSndMsg = "";
  4465. } else if(sCommKind == "02") {
  4466. CommAX.SendMessage(sSndMsg);
  4467. sSndMsg = "";
  4468. }
  4469. iXPos = Number(sLeftBank) + 560;
  4470. iYPos = Number(sTopBank) + 125;
  4471. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4472. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sAboRh); //공혈자혈액형
  4473. if(sCommKind == "01") {
  4474. CommAX.SendMessageToLPT(sSndMsg);
  4475. sSndMsg = "";
  4476. } else if(sCommKind == "02") {
  4477. CommAX.SendMessage(sSndMsg);
  4478. sSndMsg = "";
  4479. }
  4480. iXPos = Number(sLeftBank) + 20;
  4481. iYPos = Number(sTopBank) + 65;
  4482. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4483. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //등록번호
  4484. if(sCommKind == "01") {
  4485. CommAX.SendMessageToLPT(sSndMsg);
  4486. sSndMsg = "";
  4487. } else if(sCommKind == "02") {
  4488. CommAX.SendMessage(sSndMsg);
  4489. sSndMsg = "";
  4490. }
  4491. iXPos = Number(sLeftBank) + 170;
  4492. iYPos = Number(sTopBank) + 60;
  4493. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm, 2, 2);
  4494. sSndMsg += CommAX.HanImageData();
  4495. if(sCommKind == "01") {
  4496. CommAX.SendMessageToLPT(sSndMsg);
  4497. sSndMsg = "";
  4498. } else if(sCommKind == "02") {
  4499. CommAX.SendMessage(sSndMsg);
  4500. sSndMsg = "";
  4501. }
  4502. iXPos = Number(sLeftBank) + 375;
  4503. iYPos = Number(sTopBank) + 85;
  4504. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4505. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aSexAge); //성별나이
  4506. iXPos = Number(sLeftBank) + 375;
  4507. iYPos = Number(sTopBank) + 65;
  4508. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4509. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomInfo); ////진료과병실
  4510. if(sCommKind == "01") {
  4511. CommAX.SendMessageToLPT(sSndMsg);
  4512. sSndMsg = "";
  4513. } else if(sCommKind == "02") {
  4514. CommAX.SendMessage(sSndMsg);
  4515. sSndMsg = "";
  4516. }
  4517. //이재오 20150626수정
  4518. iXPos = Number(sLeftBank) + 470;
  4519. iYPos = Number(sTopBank) + 10;
  4520. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  4521. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 60, "*" + sPid + "*"); // 바코드
  4522. if(sCommKind == "01") {
  4523. CommAX.SendMessageToLPT(sSndMsg);
  4524. sSndMsg = "";
  4525. } else if(sCommKind == "02") {
  4526. CommAX.SendMessage(sSndMsg);
  4527. sSndMsg = "";
  4528. }
  4529. //이재오 20150626수정 끝
  4530. iXPos = Number(sLeftBank) + 460;
  4531. iYPos = Number(sTopBank) + 85;
  4532. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "교차시험 : " + sCMRslt.substr(0, 20), 1, 1);
  4533. sSndMsg += CommAX.HanImageData();
  4534. if(sCommKind == "01") {
  4535. CommAX.SendMessageToLPT(sSndMsg);
  4536. sSndMsg = "";
  4537. } else if(sCommKind == "02") {
  4538. CommAX.SendMessage(sSndMsg);
  4539. sSndMsg = "";
  4540. }
  4541. iXPos = Number(sLeftBank) + 130;
  4542. iYPos = Number(sTopBank) + 230;
  4543. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, cmnm, 1, 1); // 검사자
  4544. sSndMsg += CommAX.HanImageData();
  4545. /// iXPos = Number(sLeftBank) + 10;
  4546. /// iYPos = Number(sTopBank) + 105;
  4547. /// sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4548. /// sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodComNm); //성분제제명
  4549. // }
  4550. iXPos = Number(sLeftBank) + 10;
  4551. iYPos = Number(sTopBank) + 110;
  4552. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBlodComNm, 1, 1); //성분제제명
  4553. sSndMsg += CommAX.HanImageData();
  4554. iXPos = Number(sLeftBank) + 10;
  4555. iYPos = Number(sTopBank) + 200;
  4556. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4557. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sIRyn); //성분제제명
  4558. if(filteryn == "Y"){
  4559. iXPos = Number(sLeftBank) + 65;
  4560. iYPos = Number(sTopBank) + 200;
  4561. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4562. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "F"); //성분제제명
  4563. }
  4564. if(sCommKind == "01") {
  4565. CommAX.SendMessageToLPT(sSndMsg);
  4566. sSndMsg = "";
  4567. } else if(sCommKind == "02") {
  4568. CommAX.SendMessage(sSndMsg);
  4569. sSndMsg = "";
  4570. }
  4571. // iXPos = Number(sLeftBank) + 515;
  4572. iXPos = Number(sLeftBank) + 450;
  4573. iYPos = Number(sTopBank) + 225;
  4574. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4575. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtDD+ ' ' + sPrtTM.substring(0,5)); //출력일자
  4576. // iXPos = Number(sLeftBank) + 545;
  4577. // iYPos = Number(sTopBank) + 255;
  4578. // sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4579. // sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtTM.substring(0,5)); //출력일시
  4580. if(sCommKind == "01") {
  4581. CommAX.SendMessageToLPT(sSndMsg);
  4582. sSndMsg = "";
  4583. } else if(sCommKind == "02") {
  4584. CommAX.SendMessage(sSndMsg);
  4585. sSndMsg = "";
  4586. }
  4587. iXPos = Number(sLeftBank) + 115;
  4588. iYPos = Number(sTopBank) + 415;
  4589. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4590. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo); //혈액번호
  4591. iXPos = Number(sLeftBank) + 300;
  4592. iYPos = Number(sTopBank) + 415;
  4593. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4594. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo2); //혈액번호
  4595. iXPos = Number(sLeftBank) + 115;
  4596. iYPos = Number(sTopBank) + 455;
  4597. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4598. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo3); //혈액번호
  4599. iXPos = Number(sLeftBank) + 300;
  4600. iYPos = Number(sTopBank) + 455;
  4601. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4602. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo4); //혈액번호
  4603. iXPos = Number(sLeftBank) + 475;
  4604. iYPos = Number(sTopBank) + 455;
  4605. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4606. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo5); //혈액번호
  4607. if(sCommKind == "01") {
  4608. CommAX.SendMessageToLPT(sSndMsg);
  4609. sSndMsg = "";
  4610. } else if(sCommKind == "02") {
  4611. CommAX.SendMessage(sSndMsg);
  4612. sSndMsg = "";
  4613. }
  4614. iXPos = Number(sLeftBank) + 560;
  4615. iYPos = Number(sTopBank) + 395;
  4616. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4617. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sAboRh); //공혈자혈액형
  4618. if(sCommKind == "01") {
  4619. CommAX.SendMessageToLPT(sSndMsg);
  4620. sSndMsg = "";
  4621. } else if(sCommKind == "02") {
  4622. CommAX.SendMessage(sSndMsg);
  4623. sSndMsg = "";
  4624. }
  4625. iXPos = Number(sLeftBank) + 20;
  4626. iYPos = Number(sTopBank) + 345;
  4627. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4628. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //등록번호
  4629. if(sCommKind == "01") {
  4630. CommAX.SendMessageToLPT(sSndMsg);
  4631. sSndMsg = "";
  4632. } else if(sCommKind == "02") {
  4633. CommAX.SendMessage(sSndMsg);
  4634. sSndMsg = "";
  4635. }
  4636. iXPos = Number(sLeftBank) + 170;
  4637. iYPos = Number(sTopBank) + 340;
  4638. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm, 2, 2);
  4639. sSndMsg += CommAX.HanImageData();
  4640. if(sCommKind == "01") {
  4641. CommAX.SendMessageToLPT(sSndMsg);
  4642. sSndMsg = "";
  4643. } else if(sCommKind == "02") {
  4644. CommAX.SendMessage(sSndMsg);
  4645. sSndMsg = "";
  4646. }
  4647. iXPos = Number(sLeftBank) + 375;
  4648. iYPos = Number(sTopBank) + 365;
  4649. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4650. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aSexAge); //성별나이
  4651. iXPos = Number(sLeftBank) + 375;
  4652. iYPos = Number(sTopBank) + 345;
  4653. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  4654. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomInfo); ////진료과병실
  4655. if(sCommKind == "01") {
  4656. CommAX.SendMessageToLPT(sSndMsg);
  4657. sSndMsg = "";
  4658. } else if(sCommKind == "02") {
  4659. CommAX.SendMessage(sSndMsg);
  4660. sSndMsg = "";
  4661. }
  4662. iXPos = Number(sLeftBank) + 460;
  4663. iYPos = Number(sTopBank) + 365;
  4664. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "교차시험 : " + sCMRslt.substr(0, 20), 1, 1);
  4665. sSndMsg += CommAX.HanImageData();
  4666. if(sCommKind == "01") {
  4667. CommAX.SendMessageToLPT(sSndMsg);
  4668. sSndMsg = "";
  4669. } else if(sCommKind == "02") {
  4670. CommAX.SendMessage(sSndMsg);
  4671. sSndMsg = "";
  4672. }
  4673. iXPos = Number(sLeftBank) + 130;
  4674. iYPos = Number(sTopBank) + 490;
  4675. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, cmnm, 1, 1);
  4676. sSndMsg += CommAX.HanImageData();
  4677. //iXPos = Number(sLeftBank) + 10;
  4678. //iYPos = Number(sTopBank) + 385;
  4679. //sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4680. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodComNm); //성분제제명
  4681. iXPos = Number(sLeftBank) + 10;
  4682. iYPos = Number(sTopBank) + 390;
  4683. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBlodComNm, 1, 1); //성분제제명
  4684. sSndMsg += CommAX.HanImageData();
  4685. iXPos = Number(sLeftBank) + 10;
  4686. iYPos = Number(sTopBank) + 460;
  4687. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4688. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sIRyn); //성분제제명
  4689. // }
  4690. if(filteryn == "Y"){
  4691. iXPos = Number(sLeftBank) + 65;
  4692. iYPos = Number(sTopBank) + 460;
  4693. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4694. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "F"); //성분제제명
  4695. }
  4696. // sSndMsg += lzzfBP_EndFormat();
  4697. if(sCommKind == "01") {
  4698. CommAX.SendMessageToLPT(sSndMsg);
  4699. sSndMsg = "";
  4700. } else if(sCommKind == "02") {
  4701. CommAX.SendMessage(sSndMsg);
  4702. sSndMsg = "";
  4703. }
  4704. // iXPos = Number(sLeftBank) + 515;
  4705. // iYPos = Number(sTopBank) + 485;
  4706. // sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4707. // sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtDD); //출력일자
  4708. // iXPos = Number(sLeftBank) + 575;
  4709. // iYPos = Number(sTopBank) + 515;
  4710. // sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4711. // sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtTM); //출력일시
  4712. sSndMsg += lzzfBP_EndFormat();
  4713. }
  4714. if(sCommKind == "01") {
  4715. CommAX.SendMessageToLPT(sSndMsg);
  4716. } else if(sCommKind == "02") {
  4717. CommAX.SendMessage(sSndMsg);
  4718. }
  4719. }//end for
  4720. //portopen이 true이고 통신유형이 com일때 port close
  4721. if( portOpenTF == "TRUE" && sCommKind == "02"){
  4722. CommAX.PortOpen("false");
  4723. }
  4724. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  4725. messageBox("아래 사항을 확인후 재출력해주십시오."
  4726. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4727. + " \n 2.케이블 확인"
  4728. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4729. return;
  4730. }
  4731. }
  4732. } //이후 2008-07-07 바코드 포트 오류 막기위해
  4733. catch(ee) {
  4734. messageBox("바코드출력에", "E009");
  4735. return;
  4736. }
  4737. }
  4738. /**
  4739. * 혈액은행 바코드 출력 혈액준비, 혈액불출시 SATO
  4740. */
  4741. function fLisTnsrBarcodePrint2(pRef){
  4742. try{
  4743. var vInstance = document.models(0).instances(0);
  4744. var cntHR = vInstance.selectNodes(pRef).length;
  4745. var sPrntKind = model.getValue(pRef + "[1]/prntkind");
  4746. var iXPos = 0;
  4747. var iYPos = 0;
  4748. var portOpenTF = "";
  4749. var aStr = "";
  4750. var iWidth = 0;
  4751. var aFlag = new Array(); //한글 영문 구분
  4752. //혈액불출 결과저장시에만 값이 존재.
  4753. //var sBarcdFlag = model.getValue(pRef + "[1]/flag");
  4754. if(cntHR > 0 && sPrntKind != "0"){
  4755. var sCommKind = model.getValue(pRef + "[1]/commkind");
  4756. var sLeftBank = model.getValue(pRef + "[1]/blank/left");
  4757. var sTopBank = model.getValue(pRef + "[1]/blank/top");
  4758. for(i=1 ; i<= cntHR;i++){
  4759. var sSndMsg = "";
  4760. var sPrepBlodSeqNo = model.getvalue(pRef+ "["+i+"]/prepblodseqno");
  4761. var sBlodNo = model.getvalue(pRef+ "["+i+"]/blodno");
  4762. var sBlodNo2 = model.getvalue(pRef+ "["+i+"]/blodno2");
  4763. var sBlodNo3 = model.getvalue(pRef+ "["+i+"]/blodno3");
  4764. var sBlodNo4 = model.getvalue(pRef+ "["+i+"]/blodno4");
  4765. var sBlodNo5 = model.getvalue(pRef+ "["+i+"]/blodno5");
  4766. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  4767. var sPatNm = model.getvalue(pRef+ "["+i+"]/patnm");
  4768. var aSexAge = model.getvalue(pRef+ "["+i+"]/sexage");
  4769. var sRoomInfo = model.getvalue(pRef+ "["+i+"]/roominfo");
  4770. var sCMRslt = model.getvalue(pRef+ "["+i+"]/cmrslt");
  4771. var sBlodComNm = model.getvalue(pRef+ "["+i+"]/blodcomnm");
  4772. var sAboRh = model.getvalue(pRef+ "["+i+"]/aborh");
  4773. var sBtype = model.getvalue(pRef+ "["+i+"]/btype");
  4774. var sIRyn = model.getvalue(pRef+ "["+i+"]/iryn");
  4775. var sPrtDD = model.getvalue(pRef+ "["+i+"]/prtdd");
  4776. var sPrtTM = model.getvalue(pRef+ "["+i+"]/prttm");
  4777. var validd = model.getvalue(pRef+ "["+i+"]/validd"); //유효일시
  4778. var valitm = model.getvalue(pRef+ "["+i+"]/valitm"); // 유효시간
  4779. var cmnm = model.getvalue(pRef+ "["+i+"]/cmnm"); //검사자
  4780. var delivenm = model.getvalue(pRef+ "["+i+"]/delivenm"); //불출자
  4781. var acptnm = model.getvalue(pRef+ "["+i+"]/acptnm"); // 수령자
  4782. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  4783. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  4784. //300dpi
  4785. if(sPrntKind == "9") {
  4786. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  4787. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  4788. iXPos = Number(sLeftBank) + 170;
  4789. iYPos = Number(sTopBank) + 235;
  4790. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4791. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo); //혈액번호
  4792. iXPos = Number(sLeftBank) + 435;
  4793. iYPos = Number(sTopBank) + 235;
  4794. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4795. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo2); //혈액번호
  4796. iXPos = Number(sLeftBank) + 170;
  4797. iYPos = Number(sTopBank) + 285;
  4798. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4799. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo3); //혈액번호
  4800. iXPos = Number(sLeftBank) + 435;
  4801. iYPos = Number(sTopBank) + 285;
  4802. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4803. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo4); //혈액번호
  4804. iXPos = Number(sLeftBank) + 700;
  4805. iYPos = Number(sTopBank) + 285;
  4806. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4807. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo5); //혈액번호
  4808. iXPos = Number(sLeftBank) + 850;
  4809. iYPos = Number(sTopBank) + 200;
  4810. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4811. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sAboRh); //공혈자혈액형
  4812. iXPos = Number(sLeftBank) + 20;
  4813. iYPos = Number(sTopBank) + 110;
  4814. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4815. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //등록번호
  4816. iXPos = Number(sLeftBank) + 220;
  4817. iYPos = Number(sTopBank) + 110;
  4818. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,50,50^FH^FD" + sPatNm + "^FS^CI1";
  4819. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm, 2, 2);
  4820. //sSndMsg += CommAX.HanImageData();
  4821. iXPos = Number(sLeftBank) + 460;
  4822. iYPos = Number(sTopBank) + 140;
  4823. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4824. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aSexAge); //성별나이
  4825. iXPos = Number(sLeftBank) + 460;
  4826. iYPos = Number(sTopBank) + 110;
  4827. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4828. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomInfo); ////진료과병실
  4829. iXPos = Number(sLeftBank) + 740;
  4830. iYPos = Number(sTopBank) + 120;
  4831. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "교차시험:" + sCMRslt.substr(0, 20) + "^FS^CI1";
  4832. //sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,20,20^FH^FD" + "채혈일시:" + "^FS^CI1";
  4833. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "교차시험 : " + sCMRslt.substr(0, 20), 1, 1);
  4834. //sSndMsg += CommAX.HanImageData();
  4835. iXPos = Number(sLeftBank) + 10;
  4836. iYPos = Number(sTopBank) + 170;
  4837. sSndMsg += lzzfBP_ChangeFont("C", 30, 30); // 폰트 설정
  4838. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodComNm); ////성분제제명
  4839. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBlodComNm, 1, 1); //성분제제명
  4840. //sSndMsg += CommAX.HanImageData();
  4841. iXPos = Number(sLeftBank) + 220;
  4842. iYPos = Number(sTopBank) + 345;
  4843. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + cmnm + "^FS^CI1";
  4844. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, cmnm, 1, 1); // 검사자
  4845. //sSndMsg += CommAX.HanImageData();
  4846. iXPos = Number(sLeftBank) + 10;
  4847. iYPos = Number(sTopBank) + 310;
  4848. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4849. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sIRyn); //성분제제명
  4850. iXPos = Number(sLeftBank) + 815;
  4851. iYPos = Number(sTopBank) + 335;
  4852. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4853. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtDD); //출력일자
  4854. iXPos = Number(sLeftBank) + 815;
  4855. iYPos = Number(sTopBank) + 365;
  4856. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4857. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtTM); //출력일시
  4858. iXPos = Number(sLeftBank) + 170;
  4859. iYPos = Number(sTopBank) + 620;
  4860. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4861. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo); //혈액번호
  4862. iXPos = Number(sLeftBank) + 435;
  4863. iYPos = Number(sTopBank) + 620;
  4864. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4865. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo2); //혈액번호
  4866. iXPos = Number(sLeftBank) + 170;
  4867. iYPos = Number(sTopBank) + 670;
  4868. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4869. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo3); //혈액번호
  4870. iXPos = Number(sLeftBank) + 435;
  4871. iYPos = Number(sTopBank) + 670;
  4872. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4873. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo4); //혈액번호
  4874. iXPos = Number(sLeftBank) + 700;
  4875. iYPos = Number(sTopBank) + 670;
  4876. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4877. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodNo5); //혈액번호
  4878. iXPos = Number(sLeftBank) + 850;
  4879. iYPos = Number(sTopBank) + 600;
  4880. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4881. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sAboRh); //공혈자혈액형
  4882. iXPos = Number(sLeftBank) + 20;
  4883. iYPos = Number(sTopBank) + 515;
  4884. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  4885. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //등록번호
  4886. iXPos = Number(sLeftBank) + 220;
  4887. iYPos = Number(sTopBank) + 515;
  4888. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,50,50^FH^FD" + sPatNm + "^FS^CI1";
  4889. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm, 2, 2);
  4890. //sSndMsg += CommAX.HanImageData();
  4891. iXPos = Number(sLeftBank) + 460;
  4892. iYPos = Number(sTopBank) + 545;
  4893. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4894. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aSexAge); //성별나이
  4895. iXPos = Number(sLeftBank) + 460;
  4896. iYPos = Number(sTopBank) + 515;
  4897. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  4898. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomInfo); ////진료과병실
  4899. iXPos = Number(sLeftBank) + 740;
  4900. iYPos = Number(sTopBank) + 525;
  4901. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "교차시험:" + sCMRslt.substr(0, 20) + "^FS^CI1";
  4902. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "교차시험 : " + sCMRslt.substr(0, 20), 1, 1);
  4903. //sSndMsg += CommAX.HanImageData();
  4904. iXPos = Number(sLeftBank) + 10;
  4905. iYPos = Number(sTopBank) + 575;
  4906. sSndMsg += lzzfBP_ChangeFont("C", 30, 30); // 폰트 설정
  4907. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodComNm); //성분제제명
  4908. iXPos = Number(sLeftBank) + 215;
  4909. iYPos = Number(sTopBank) + 730;
  4910. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + cmnm + "^FS^CI1";
  4911. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, cmnm, 1, 1);
  4912. //sSndMsg += CommAX.HanImageData();
  4913. iXPos = Number(sLeftBank) + 10;
  4914. iYPos = Number(sTopBank) + 715;
  4915. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  4916. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sIRyn); //성분제제명
  4917. iXPos = Number(sLeftBank) + 815;
  4918. iYPos = Number(sTopBank) + 715;
  4919. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4920. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtDD); //출력일자
  4921. iXPos = Number(sLeftBank) + 815;
  4922. iYPos = Number(sTopBank) + 745;
  4923. sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  4924. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtTM); //출력일시
  4925. sSndMsg += "^XZ"
  4926. CommAX.SendMsg(sSndMsg);
  4927. }else{
  4928. sSndMsg = "AA106500800"; // 시작위치 셋팅
  4929. iXPos = Number(sLeftBank) + 170;
  4930. iYPos = Number(sTopBank) + 5;
  4931. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatNm, 2, 2);
  4932. iXPos = Number(sLeftBank) + 515;
  4933. iYPos = Number(sTopBank) + 10;
  4934. sSndMsg += "V" + iYPos + "H" + iXPos + "L0202M" + sPid; //등록번호
  4935. iXPos = Number(sLeftBank) + 380;
  4936. iYPos = Number(sTopBank) + 10;
  4937. sSndMsg += "V" + iYPos + "H" + iXPos + "L0102M" + aSexAge; //성별나이
  4938. iXPos = Number(sLeftBank) + 290;
  4939. iYPos = Number(sTopBank) + 60;
  4940. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + "[" + sPrepBlodSeqNo + "]";
  4941. iXPos = Number(sLeftBank) + 515;
  4942. iYPos = Number(sTopBank) + 60;
  4943. sSndMsg += "V" + iYPos + "H" + iXPos + "L0201M" + sAboRh; //ABO
  4944. iXPos = Number(sLeftBank) + 170;
  4945. iYPos = Number(sTopBank) + 60;
  4946. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sRoomInfo;
  4947. iXPos = Number(sLeftBank) + 170;
  4948. iYPos = Number(sTopBank) + 85;
  4949. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodNo;
  4950. iXPos = Number(sLeftBank) + 515;
  4951. iYPos = Number(sTopBank) + 85;
  4952. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodComNm;
  4953. iXPos = Number(sLeftBank) + 170;
  4954. iYPos = Number(sTopBank) + 107;
  4955. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + validd;
  4956. iXPos = Number(sLeftBank) + 515;
  4957. iYPos = Number(sTopBank) + 107;
  4958. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sPrtDD.substring(2) + " " + sPrtTM.substring(0, 5);
  4959. iXPos = Number(sLeftBank) + 170;
  4960. iYPos = Number(sTopBank) + 160;
  4961. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatNm, 2, 1);
  4962. iXPos = Number(sLeftBank) + 515;
  4963. iYPos = Number(sTopBank) + 160;
  4964. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + aSexAge; //성별나이
  4965. iXPos = Number(sLeftBank) + 630;
  4966. iYPos = Number(sTopBank) + 160;
  4967. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + "[" + sPrepBlodSeqNo + "]";
  4968. iXPos = Number(sLeftBank) + 165;
  4969. iYPos = Number(sTopBank) + 200;
  4970. sSndMsg += "V" + iYPos + "H" + iXPos + "L0201M" + sPid; //등록번호
  4971. iXPos = Number(sLeftBank) + 515;
  4972. iYPos = Number(sTopBank) + 200;
  4973. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sRoomInfo;
  4974. iXPos = Number(sLeftBank) + 515;
  4975. iYPos = Number(sTopBank) + 243;
  4976. sSndMsg += "V" + iYPos + "H" + iXPos + "L0201M" + sAboRh; //성별나이
  4977. iXPos = Number(sLeftBank) + 170;
  4978. iYPos = Number(sTopBank) + 285;
  4979. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodNo;
  4980. iXPos = Number(sLeftBank) + 515;
  4981. iYPos = Number(sTopBank) + 285;
  4982. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodComNm;
  4983. iXPos = Number(sLeftBank) + 170;
  4984. iYPos = Number(sTopBank) + 360;
  4985. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + validd;
  4986. if(acptnm == ""){
  4987. iXPos = Number(sLeftBank) + 400;
  4988. iYPos = Number(sTopBank) + 360;
  4989. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, "검사일시:", 1, 1);
  4990. }else{
  4991. iXPos = Number(sLeftBank) + 400;
  4992. iYPos = Number(sTopBank) + 360;
  4993. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, "출고일시:", 1, 1);
  4994. }
  4995. iXPos = Number(sLeftBank) + 520;
  4996. iYPos = Number(sTopBank) + 360;
  4997. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sPrtDD.substring(2) + " " + sPrtTM.substring(0, 5);
  4998. iXPos = Number(sLeftBank) + 170;
  4999. iYPos = Number(sTopBank) + 400;
  5000. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, cmnm, 1, 1);
  5001. iXPos = Number(sLeftBank) + 515;
  5002. iYPos = Number(sTopBank) + 400;
  5003. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, delivenm, 1, 1);
  5004. iXPos = Number(sLeftBank) + 170;
  5005. iYPos = Number(sTopBank) + 440;
  5006. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, acptnm, 1, 1);
  5007. sSndMsg += "Q" + "1" + "Z";
  5008. CommAX.SendMsg(sSndMsg);
  5009. }
  5010. }//end for
  5011. }
  5012. } //이후 2008-07-07 바코드 포트 오류 막기위해
  5013. catch(ee) {
  5014. messageBox("바코드출력에", "E009");
  5015. return;
  5016. }
  5017. }
  5018. /**
  5019. * 혈액은행 바코드 출력 혈액준비, 혈액불출시 SATO 빈센트용 sato인데 강남양식으로
  5020. */
  5021. function fLisTnsrBarcodePrint3(pRef){
  5022. try{
  5023. var vInstance = document.models(0).instances(0);
  5024. var cntHR = vInstance.selectNodes(pRef).length;
  5025. var sPrntKind = model.getValue(pRef + "[1]/prntkind");
  5026. var iXPos = 0;
  5027. var iYPos = 0;
  5028. var portOpenTF = "";
  5029. var aStr = "";
  5030. var iWidth = 0;
  5031. var aFlag = new Array(); //한글 영문 구분
  5032. //혈액불출 결과저장시에만 값이 존재.
  5033. //var sBarcdFlag = model.getValue(pRef + "[1]/flag");
  5034. if(cntHR > 0 && sPrntKind != "0"){
  5035. var sCommKind = model.getValue(pRef + "[1]/commkind");
  5036. var sLeftBank = model.getValue(pRef + "[1]/blank/left");
  5037. var sTopBank = model.getValue(pRef + "[1]/blank/top");
  5038. for(i=1 ; i<= cntHR;i++){
  5039. var sSndMsg = "";
  5040. var sPrepBlodSeqNo = model.getvalue(pRef+ "["+i+"]/prepblodseqno");
  5041. var sBlodNo = model.getvalue(pRef+ "["+i+"]/blodno");
  5042. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  5043. var sPatNm = model.getvalue(pRef+ "["+i+"]/patnm");
  5044. var aSexAge = model.getvalue(pRef+ "["+i+"]/sexage");
  5045. var sRoomInfo = model.getvalue(pRef+ "["+i+"]/roominfo");
  5046. var sCMRslt = model.getvalue(pRef+ "["+i+"]/cmrslt");
  5047. var sBlodComNm = model.getvalue(pRef+ "["+i+"]/blodcomnm");
  5048. var sAboRh = model.getvalue(pRef+ "["+i+"]/aborh");
  5049. var sBtype = model.getvalue(pRef+ "["+i+"]/btype");
  5050. var sIRyn = model.getvalue(pRef+ "["+i+"]/iryn");
  5051. var sPrtDD = model.getvalue(pRef+ "["+i+"]/prtdd");
  5052. var sPrtTM = model.getvalue(pRef+ "["+i+"]/prttm");
  5053. var validd = model.getvalue(pRef+ "["+i+"]/validd"); //유효일시
  5054. var valitm = model.getvalue(pRef+ "["+i+"]/valitm"); // 유효시간
  5055. var cmnm = model.getvalue(pRef+ "["+i+"]/cmnm"); //검사자
  5056. var delivenm = model.getvalue(pRef+ "["+i+"]/delivenm"); //불출자
  5057. var acptnm = model.getvalue(pRef+ "["+i+"]/acptnm"); // 수령자
  5058. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  5059. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  5060. sSndMsg = "AA106500800"; // 시작위치 셋팅
  5061. iXPos = Number(sLeftBank) + 145;
  5062. iYPos = Number(sTopBank) + 215;
  5063. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sCMRslt, 1, 1);
  5064. iXPos = Number(sLeftBank) + 145;
  5065. iYPos = Number(sTopBank) + 155;
  5066. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatNm, 2, 2);
  5067. iXPos = Number(sLeftBank) + 150;
  5068. iYPos = Number(sTopBank) + 110;
  5069. sSndMsg += "V" + iYPos + "H" + iXPos + "L0202M" + sPid; //등록번호
  5070. iXPos = Number(sLeftBank) + 360;
  5071. iYPos = Number(sTopBank) + 162;
  5072. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101S" + aSexAge; //성별나이
  5073. iXPos = Number(sLeftBank) + 150;
  5074. iYPos = Number(sTopBank) + 60;
  5075. sSndMsg += "V" + iYPos + "H" + iXPos + "L0202M" + sPrepBlodSeqNo;
  5076. iXPos = Number(sLeftBank) + 470;
  5077. iYPos = Number(sTopBank) + 90;
  5078. sSndMsg += "V" + iYPos + "H" + iXPos + "L0303M" + sAboRh; //ABO
  5079. iXPos = Number(sLeftBank) + 360;
  5080. iYPos = Number(sTopBank) + 185;
  5081. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101S" + sRoomInfo;
  5082. iXPos = Number(sLeftBank) + 324;
  5083. iYPos = Number(sTopBank) + 60;
  5084. sSndMsg += "V" + iYPos + "H" + iXPos + "L0102M" + sBlodNo + "L0101M";
  5085. if(sBlodComNm.substr(0,1) == "자"){
  5086. iXPos = Number(sLeftBank) + 280;
  5087. iYPos = Number(sTopBank) + 216;
  5088. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sBlodComNm, 1, 1);
  5089. }else{
  5090. iXPos = Number(sLeftBank) + 280;
  5091. iYPos = Number(sTopBank) + 220;
  5092. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodComNm;
  5093. }
  5094. iXPos = Number(sLeftBank) + 475;
  5095. iYPos = Number(sTopBank) + 260;
  5096. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101S" + sPrtDD;
  5097. iXPos = Number(sLeftBank) + 475;
  5098. iYPos = Number(sTopBank) + 280;
  5099. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101S" + sPrtTM;
  5100. iXPos = Number(sLeftBank) + 470;
  5101. iYPos = Number(sTopBank) + 190;
  5102. sSndMsg += "V" + iYPos + "H" + iXPos + "L0303M" + sBtype + "L0101M"; //ABO
  5103. iXPos = Number(sLeftBank) + 20;
  5104. iYPos = Number(sTopBank) + 70;
  5105. sSndMsg += "V" + iYPos + "H" + iXPos + "L0505M" + sIRyn;
  5106. /*
  5107. sSndMsg = "AA107000800"; // 시작위치 셋팅
  5108. iXPos = Number(sLeftBank) + 180;
  5109. iYPos = Number(sTopBank) + 65;
  5110. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatNm, 2, 1);
  5111. iXPos = Number(sLeftBank) + 530;
  5112. iYPos = Number(sTopBank) + 65;
  5113. sSndMsg += "V" + iYPos + "H" + iXPos + "L0201M" + sPid; //등록번호
  5114. iXPos = Number(sLeftBank) + 180;
  5115. iYPos = Number(sTopBank) + 95;
  5116. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + aSexAge; //성별나이
  5117. iXPos = Number(sLeftBank) + 280;
  5118. iYPos = Number(sTopBank) + 95;
  5119. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + "[" + sPrepBlodSeqNo + "]";
  5120. iXPos = Number(sLeftBank) + 530;
  5121. iYPos = Number(sTopBank) + 95;
  5122. sSndMsg += "V" + iYPos + "H" + iXPos + "L0201M" + sAboRh; //성별나이
  5123. iXPos = Number(sLeftBank) + 180;
  5124. iYPos = Number(sTopBank) + 130;
  5125. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sRoomInfo;
  5126. iXPos = Number(sLeftBank) + 180;
  5127. iYPos = Number(sTopBank) + 160;
  5128. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodNo;
  5129. iXPos = Number(sLeftBank) + 530;
  5130. iYPos = Number(sTopBank) + 160;
  5131. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodComNm;
  5132. iXPos = Number(sLeftBank) + 180;
  5133. iYPos = Number(sTopBank) + 190;
  5134. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + validd;
  5135. iXPos = Number(sLeftBank) + 520;
  5136. iYPos = Number(sTopBank) + 190;
  5137. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sPrtDD.substring(2) + " " + sPrtTM.substring(0, 5);
  5138. iXPos = Number(sLeftBank) + 180;
  5139. iYPos = Number(sTopBank) + 235;
  5140. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatNm, 2, 1);
  5141. iXPos = Number(sLeftBank) + 530;
  5142. iYPos = Number(sTopBank) + 235;
  5143. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + aSexAge; //성별나이
  5144. iXPos = Number(sLeftBank) + 630;
  5145. iYPos = Number(sTopBank) + 235;
  5146. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + "[" + sPrepBlodSeqNo + "]";
  5147. iXPos = Number(sLeftBank) + 170;
  5148. iYPos = Number(sTopBank) + 275;
  5149. sSndMsg += "V" + iYPos + "H" + iXPos + "L0201M" + sPid; //등록번호
  5150. iXPos = Number(sLeftBank) + 530;
  5151. iYPos = Number(sTopBank) + 275;
  5152. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sRoomInfo;
  5153. iXPos = Number(sLeftBank) + 530;
  5154. iYPos = Number(sTopBank) + 310;
  5155. sSndMsg += "V" + iYPos + "H" + iXPos + "L0201M" + sAboRh; //성별나이
  5156. iXPos = Number(sLeftBank) + 180;
  5157. iYPos = Number(sTopBank) + 355;
  5158. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodNo;
  5159. iXPos = Number(sLeftBank) + 530;
  5160. iYPos = Number(sTopBank) + 355;
  5161. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sBlodComNm;
  5162. iXPos = Number(sLeftBank) + 180;
  5163. iYPos = Number(sTopBank) + 430;
  5164. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + validd;
  5165. iXPos = Number(sLeftBank) + 520;
  5166. iYPos = Number(sTopBank) + 430;
  5167. sSndMsg += "V" + iYPos + "H" + iXPos + "L0101M" + sPrtDD.substring(2) + " " + sPrtTM.substring(0, 5);
  5168. iXPos = Number(sLeftBank) + 180;
  5169. iYPos = Number(sTopBank) + 465;
  5170. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, cmnm, 1, 1);
  5171. iXPos = Number(sLeftBank) + 530;
  5172. iYPos = Number(sTopBank) + 465;
  5173. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, delivenm, 1, 1);
  5174. iXPos = Number(sLeftBank) + 180;
  5175. iYPos = Number(sTopBank) + 500;
  5176. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, acptnm, 1, 1);
  5177. */
  5178. sSndMsg += "Q" + "1" + "Z";
  5179. CommAX.SendMsg(sSndMsg);
  5180. }//end for
  5181. }
  5182. } //이후 2008-07-07 바코드 포트 오류 막기위해
  5183. catch(ee) {
  5184. messageBox("바코드출력에", "E009");
  5185. return;
  5186. }
  5187. }
  5188. /**
  5189. * 혈액은행 바코드 출력 혈액준비, 혈액불출시
  5190. * 박정은 B472용
  5191. */
  5192. function fLisTnsrBarcodePrint4(pRef){
  5193. try{
  5194. var vInstance = document.models(0).instances(0);
  5195. var cntHR = vInstance.selectNodes(pRef).length;
  5196. var sPrntKind = model.getValue(pRef + "[1]/prntkind");
  5197. var iXPos = 0;
  5198. var iYPos = 0;
  5199. var portOpenTF = "";
  5200. var aStr = "";
  5201. var iWidth = 0;
  5202. var aFlag = new Array(); //한글 영문 구분
  5203. //혈액불출 결과저장시에만 값이 존재.
  5204. //var sBarcdFlag = model.getValue(pRef + "[1]/flag");
  5205. if(cntHR > 0 && sPrntKind != "0"){
  5206. var sCommKind = model.getValue(pRef + "[1]/commkind");
  5207. var sLeftBank = model.getValue(pRef + "[1]/blank/left");
  5208. var sTopBank = model.getValue(pRef + "[1]/blank/top");
  5209. if(sCommKind == "01") {
  5210. var sSetUpVal = model.getValue(pRef + "[1]/comm01/setupval");
  5211. } else if(sCommKind == "02") {
  5212. var sComm = model.getValue(pRef + "[1]/comm02/comm");
  5213. var sDataBit = model.getValue(pRef + "[1]/comm02/databit");
  5214. var sStopBit = model.getValue(pRef + "[1]/comm02/stopbit");
  5215. var sBaudRate = model.getValue(pRef + "[1]/comm02/baudrate");
  5216. var sParity = model.getValue(pRef + "[1]/comm02/parity");
  5217. var sSetUpVal = model.getValue(pRef + "[1]/comm02/setupval");
  5218. CommAX.CommPort = sComm;
  5219. CommAX.Settings = sBaudRate+","+ sParity+","+sDataBit+","+ sStopBit;
  5220. portOpenTF = CommAX.PortOpen("true");
  5221. } else if(sCommKind == "03") {
  5222. var sSetUpVal = model.getValue(pRef + "[1]/comm03/setupval");
  5223. }
  5224. if( (portOpenTF == "TRUE" && sCommKind == "02")
  5225. || (sCommKind == "01")
  5226. || (sCommKind == "07")
  5227. || (sCommKind == "03") ){
  5228. for(i=1 ; i<= cntHR;i++){
  5229. var sSndMsg = "";
  5230. var sPrepBlodSeqNo = model.getvalue(pRef+ "["+i+"]/prepblodseqno");
  5231. var sBlodNo = model.getvalue(pRef+ "["+i+"]/blodno");
  5232. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  5233. var sPatNm = model.getvalue(pRef+ "["+i+"]/patnm");
  5234. var aSexAge = model.getvalue(pRef+ "["+i+"]/sexage");
  5235. var sRoomInfo = model.getvalue(pRef+ "["+i+"]/roominfo");
  5236. var sCMRslt = model.getvalue(pRef+ "["+i+"]/cmrslt");
  5237. var sBlodComNm = model.getvalue(pRef+ "["+i+"]/blodcomnm");
  5238. var sAboRh = model.getvalue(pRef+ "["+i+"]/aborh");
  5239. var sBtype = model.getvalue(pRef+ "["+i+"]/btype");
  5240. var sIRyn = model.getvalue(pRef+ "["+i+"]/iryn");
  5241. var sPrtDD = model.getvalue(pRef+ "["+i+"]/prtdd");
  5242. var sPrtTM = model.getvalue(pRef+ "["+i+"]/prttm");
  5243. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  5244. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  5245. sSndMsg += "{D0350,0800,0330|}"; // 라벨사이즈
  5246. sSndMsg += "{C|}"; // 버퍼클리어
  5247. sSndMsg += "{AX;+000,+000,+00|}"; // 피트량
  5248. iXPos = Number(sLeftBank) + 170;
  5249. iYPos = Number(sTopBank) + 40;
  5250. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 30, sPrepBlodSeqNo);
  5251. iXPos = Number(sLeftBank) + 350;
  5252. iYPos = Number(sTopBank) + 40;
  5253. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 30, 40, sBlodNo); //혈액번호
  5254. iXPos = Number(sLeftBank) ;
  5255. iYPos = Number(sTopBank) + 200;
  5256. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 160, 220, sIRyn); //방사선조사여부 irr
  5257. iXPos = Number(sLeftBank) + 590;
  5258. iYPos = Number(sTopBank) + 100;
  5259. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 60, 70, sAboRh); //공혈자혈액형
  5260. iXPos = Number(sLeftBank) + 170;
  5261. iYPos = Number(sTopBank) + 95;
  5262. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 40, sPid); //등록번호
  5263. iXPos = Number(sLeftBank) + 165;
  5264. iYPos = Number(sTopBank) + 125;
  5265. sSndMsg += lzzfBP_HanDisp32(sPatNm, iXPos, iYPos); //
  5266. iXPos = Number(sLeftBank) + 370;
  5267. iYPos = Number(sTopBank) + 140;
  5268. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 30, 30, aSexAge); //성별나이
  5269. iXPos = Number(sLeftBank) + 370;
  5270. iYPos = Number(sTopBank) + 175;
  5271. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 30, 30, sRoomInfo); //진료과병실
  5272. iXPos = Number(sLeftBank) + 590;
  5273. iYPos = Number(sTopBank) + 220;
  5274. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 60, 70, sBtype); //수혈자혈액형
  5275. iXPos = Number(sLeftBank) + 150;
  5276. iYPos = Number(sTopBank) + 190;
  5277. sSndMsg += lzzfBP_HanDisp32(sCMRslt.substr(0, 20), iXPos, iYPos); // 교차시험결과
  5278. iXPos = Number(sLeftBank) + 360;
  5279. if(sBlodComNm.substr(0,1) == "자"){
  5280. iYPos = Number(sTopBank) + 210;
  5281. sSndMsg += lzzfBP_HanDisp32(sBlodComNm, iXPos, iYPos);
  5282. }else{
  5283. iYPos = Number(sTopBank) + 220;
  5284. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 24, 26, sBlodComNm);
  5285. }
  5286. iXPos = Number(sLeftBank) + 595;
  5287. iYPos = Number(sTopBank) + 265;
  5288. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sPrtDD);
  5289. iXPos = Number(sLeftBank) + 595;
  5290. iYPos = Number(sTopBank) + 290;
  5291. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sPrtTM);
  5292. sSndMsg += "{XS;I,0001,0002C5101|}"; // end
  5293. CommAX.SendMessage(sSndMsg);
  5294. }//end for
  5295. //portopen이 true이고 통신유형이 com일때 port close
  5296. if( portOpenTF == "TRUE" && sCommKind == "02"){
  5297. CommAX.PortOpen("false");
  5298. }
  5299. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  5300. messageBox("아래 사항을 확인후 재출력해주십시오."
  5301. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5302. + " \n 2.케이블 확인"
  5303. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5304. return;
  5305. }
  5306. }
  5307. } //이후 2008-07-07 바코드 포트 오류 막기위해
  5308. catch(ee) {
  5309. messageBox("바코드출력에", "E009");
  5310. return;
  5311. }
  5312. }
  5313. // 핵의학 바코드 출력
  5314. function fLisNSpcBarcodePrint(pRef){
  5315. try {
  5316. var vInstance = document.models(0).instances(0);
  5317. var cntHR = vInstance.selectNodes(pRef).length;
  5318. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  5319. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  5320. var portOpenTF = "";
  5321. var iXPos = 0;
  5322. var iYPos = 0;
  5323. if(cntHR > 0 && sPrntKind != "0"){
  5324. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  5325. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  5326. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  5327. if(sCommKind == "01") {
  5328. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  5329. } else if(sCommKind == "02") {
  5330. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  5331. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  5332. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  5333. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  5334. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  5335. var sSetUpVal = model.getValue(barcdRef + "[1]/comm02/setupval");
  5336. CommAX.CommPort = sComm;
  5337. CommAX.Settings = sBaudRate+","+ sParity+","+sDataBit+","+ sStopBit;
  5338. portOpenTF = CommAX.PortOpen("true");
  5339. } else if(sCommKind == "03") {
  5340. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  5341. }
  5342. if( (portOpenTF == "TRUE" && sCommKind == "02")
  5343. || (sCommKind == "01")
  5344. || (sCommKind == "03")){
  5345. for(i=1 ; i<= cntHR;i++){
  5346. var sSndMsg = "";
  5347. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  5348. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  5349. var sspctdt = model.getvalue(pRef+ "["+i+"]/spcacptdt");
  5350. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  5351. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  5352. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  5353. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  5354. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  5355. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  5356. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  5357. //var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  5358. var sDivgrupnm = model.getvalue(pRef+ "["+i+"]/divgrupnm");
  5359. var sDivgrupcd = model.getvalue(pRef+ "["+i+"]/divgrupcd");
  5360. var sExtrtestinstnm = model.getvalue(pRef+ "["+i+"]/extrtestinstnm");
  5361. var sBcolldt = model.getvalue(pRef+ "["+i+"]/bcolldt");
  5362. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  5363. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  5364. if(sPrntKind == "1") {
  5365. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  5366. if(sInfcinfolist != ""){
  5367. iXPos = Number(sLeftBank) + 2;
  5368. iYPos = Number(sTopBank) + 200;
  5369. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 350, 10, 10);
  5370. }
  5371. if(sCommKind == "01") {
  5372. CommAX.SendMessageToLPT(sSndMsg);
  5373. sSndMsg = "";
  5374. } else if(sCommKind == "02") {
  5375. CommAX.SendMessage(sSndMsg);
  5376. sSndMsg = "";
  5377. }
  5378. iXPos = Number(sLeftBank) + 2;
  5379. iYPos = Number(sTopBank);
  5380. sSndMsg += "^CFF30,30^FO"+iXPos+","+ iYPos +"^FD" + sPid + "^FS";
  5381. //sSndMsg += lzzfBP_ChangeFont("C", 30, 10); // 폰트 설정
  5382. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  5383. iXPos = Number(sLeftBank) + 220;
  5384. iYPos = Number(sTopBank);
  5385. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  5386. sSndMsg += CommAX.HanImageData();
  5387. iXPos = Number(sLeftBank) + 2;
  5388. iYPos = Number(sTopBank) + 25;
  5389. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  5390. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 40, "*" + sBcno + "*"); // 바코드
  5391. //sSndMsg += lzzfBP_ChangeFont("C", 15, 15); // 폰트 설정
  5392. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBcno); //바코드번호
  5393. if(sCommKind == "01") {
  5394. CommAX.SendMessageToLPT(sSndMsg);
  5395. sSndMsg = "";
  5396. } else if(sCommKind == "02") {
  5397. CommAX.SendMessage(sSndMsg);
  5398. sSndMsg = "";
  5399. }
  5400. iXPos = Number(sLeftBank) + 20;
  5401. iYPos = Number(sTopBank) + 67;
  5402. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  5403. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBcno + "*");
  5404. if(sCommKind == "01") {
  5405. CommAX.SendMessageToLPT(sSndMsg);
  5406. sSndMsg = "";
  5407. } else if(sCommKind == "02") {
  5408. CommAX.SendMessage(sSndMsg);
  5409. sSndMsg = "";
  5410. }
  5411. iXPos = Number(sLeftBank) + 180;
  5412. iYPos = Number(sTopBank) + 125;
  5413. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  5414. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  5415. iXPos = Number(sLeftBank) + 2;
  5416. iYPos = Number(sTopBank) + 125;
  5417. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  5418. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom);
  5419. iXPos = Number(sLeftBank) + 2;
  5420. iYPos = Number(sTopBank) + 155;
  5421. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  5422. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sspctdt); //검체명
  5423. if(sCommKind == "01") {
  5424. CommAX.SendMessageToLPT(sSndMsg);
  5425. sSndMsg = "";
  5426. } else if(sCommKind == "02") {
  5427. CommAX.SendMessage(sSndMsg);
  5428. sSndMsg = "";
  5429. }
  5430. sDivgrupcd = sDivgrupcd.substring(0, sDivgrupcd.length);
  5431. var Sindex = sDivgrupcd.indexOf(":");
  5432. sDivgrupcd = sDivgrupcd.substring(Sindex + 1);
  5433. var iWidth = 0;
  5434. var aStr = "";
  5435. var aFlag = new Array();
  5436. iXPos = Number(sLeftBank) + 2;
  5437. aStr = lpzfGetHanGul(sDivgrupcd, aFlag);
  5438. for (var iNo=0; iNo < aStr.length; iNo++) {
  5439. //----------------------
  5440. if (aFlag[iNo] == "E") {
  5441. iYPos = Number(sTopBank) + 95;
  5442. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  5443. iWidth = iWidth + (Number(aStr[iNo].length) * 18);
  5444. } else {
  5445. iYPos = Number(sTopBank) + 92;
  5446. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5447. sSndMsg += CommAX.HanImageData();
  5448. iWidth = iWidth + (Number(aStr[iNo].length) * 25);
  5449. }
  5450. }
  5451. //iXPos = Number(sLeftBank) + 2;
  5452. //iYPos = Number(sTopBank) + 100;
  5453. //sSndMsg += lzzfBP_ChangeFont("C", 15, 15); // 폰트 설정
  5454. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDivgrupcd);
  5455. sSndMsg += lzzfBP_EndFormat(); // 출력수
  5456. }
  5457. if(sCommKind == "01") {
  5458. CommAX.SendMessageToLPT(sSndMsg);
  5459. } else if(sCommKind == "02") {
  5460. CommAX.SendMessage(sSndMsg);
  5461. }
  5462. }//end for
  5463. //portopen이 true이고 통신유형이 com일때 port close
  5464. if( portOpenTF == "TRUE" && sCommKind == "02"){
  5465. CommAX.PortOpen("false");
  5466. }
  5467. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  5468. messageBox("아래 사항을 확인후 재출력해주십시오."
  5469. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5470. + " \n 2.케이블 확인"
  5471. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5472. return;
  5473. }
  5474. }
  5475. } //이후 2008-07-07 바코드 포트 오류 막기위해
  5476. catch(ee) {
  5477. messageBox("바코드출력에", "E009");
  5478. return;
  5479. }
  5480. }
  5481. // 핵의학 바코드 출력
  5482. function fLisNSpcBarcodePrint2(pRef){
  5483. try {
  5484. var vInstance = document.models(0).instances(0);
  5485. var cntHR = vInstance.selectNodes(pRef).length;
  5486. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  5487. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  5488. var portOpenTF = "";
  5489. var iXPos = 0;
  5490. var iYPos = 0;
  5491. if(cntHR > 0 && sPrntKind != "0"){
  5492. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  5493. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  5494. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  5495. for(i=1 ; i<= cntHR;i++){
  5496. var sSndMsg = "";
  5497. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  5498. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  5499. var sspctdt = model.getvalue(pRef+ "["+i+"]/spcacptdt");
  5500. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  5501. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  5502. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  5503. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  5504. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  5505. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  5506. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  5507. //var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  5508. var sDivgrupnm = model.getvalue(pRef+ "["+i+"]/divgrupnm");
  5509. var sDivgrupcd = model.getvalue(pRef+ "["+i+"]/divgrupcd");
  5510. var sExtrtestinstnm = model.getvalue(pRef+ "["+i+"]/extrtestinstnm");
  5511. var sBcolldt = model.getvalue(pRef+ "["+i+"]/bcolldt");
  5512. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  5513. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  5514. if(sPrntKind == "9"){ //300dpi
  5515. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  5516. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  5517. if(sInfcinfolist != ""){
  5518. iXPos = Number(sLeftBank) + 2;
  5519. iYPos = Number(sTopBank) + 310;
  5520. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 500, 10, 10);
  5521. }
  5522. iXPos = Number(sLeftBank) + 2;
  5523. iYPos = Number(sTopBank) + 35;
  5524. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  5525. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 80, "*" + sBcno + "*"); // 바코드
  5526. iXPos = Number(sLeftBank) + 2;
  5527. iYPos = Number(sTopBank);
  5528. sSndMsg += lzzfBP_ChangeFont("F", 30, 30);
  5529. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  5530. iXPos = Number(sLeftBank) + 360;
  5531. iYPos = Number(sTopBank);
  5532. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,40,40^FH^FD" + sPatnm.substr(0, 20) + "^FS^CI1";
  5533. sDivgrupcd = sDivgrupcd.substring(0, sDivgrupcd.length);
  5534. var Sindex = sDivgrupcd.indexOf(":");
  5535. sDivgrupcd = sDivgrupcd.substring(Sindex + 1);
  5536. var iWidth = 0;
  5537. var aStr = "";
  5538. var aFlag = new Array();
  5539. iXPos = Number(sLeftBank) + 2;
  5540. aStr = lpzfGetHanGul(sDivgrupcd, aFlag);
  5541. for (var iNo=0; iNo < aStr.length; iNo++) {
  5542. //----------------------
  5543. if (aFlag[iNo] == "E") {
  5544. iYPos = Number(sTopBank) + 130;
  5545. sSndMsg += "^CFC30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  5546. iWidth = iWidth + (Number(aStr[iNo].length) * 22);
  5547. } else {
  5548. iYPos = Number(sTopBank) + 133;
  5549. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1";
  5550. iWidth = iWidth + (Number(aStr[iNo].length) * 32);
  5551. }
  5552. }
  5553. //sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,40,40^FH^FD" + sDivgrupcd.substr(0, 20) + "^FS^CI1";
  5554. iXPos = Number(sLeftBank) + 200;
  5555. iYPos = Number(sTopBank) + 185;
  5556. sSndMsg += "^CFC30,30^FO"+iXPos+","+ iYPos +"^FD" + sSpclblnm + "^FS";
  5557. //sSndMsg += lzzfBP_ChangeFont("F", 20, 20); // 폰트 설정
  5558. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  5559. iXPos = Number(sLeftBank) + 2;
  5560. iYPos = Number(sTopBank) + 185;
  5561. sSndMsg += "^CFC30,30^FO"+iXPos+","+ iYPos +"^FD" + sDeptroom + "^FS";
  5562. //sSndMsg += lzzfBP_ChangeFont("F", 20, 30); // 폰트 설정
  5563. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom);
  5564. iXPos = Number(sLeftBank) + 2;
  5565. iYPos = Number(sTopBank) + 225;
  5566. sSndMsg += "^CFC30,30^FO"+iXPos+","+ iYPos +"^FD" + sspctdt + "^FS";
  5567. //sSndMsg += lzzfBP_ChangeFont("F", 20, 20); // 폰트 설정
  5568. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sspctdt); //바코드번호
  5569. //iXPos = Number(sLeftBank) + 2;
  5570. //iYPos = Number(sTopBank) + 110;
  5571. //if(sDivgrupnm != ""){
  5572. //sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,40,40^FH^FD" + sDivgrupnm.substr(0, 20) + "^FS^CI1";
  5573. //sSndMsg += lzzfBP_ChangeFont("F", 20, 20);
  5574. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDivgrupnm.substr(0, 20));
  5575. //}
  5576. sSndMsg += "^XZ"
  5577. CommAX.SendMsg(sSndMsg);
  5578. }
  5579. else{
  5580. sSndMsg = "AA103500500"; // 시작위치 셋팅
  5581. if(sInfcinfolist != ""){
  5582. iXPos = Number(sLeftBank);
  5583. iYPos = Number(sTopBank) + 240;
  5584. sSndMsg += "V" + "220" + "H" + "0" + "FW10H0350";
  5585. }
  5586. //sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20));
  5587. //sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid; //환자등록번호
  5588. iXPos = Number(sLeftBank) + 2;
  5589. iYPos = Number(sTopBank) + 5;
  5590. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + sBcno; //바코드번호
  5591. iXPos = Number(sLeftBank) + 2;
  5592. iYPos = Number(sTopBank) + 35;
  5593. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + sPid; //환자등록번호
  5594. iXPos = Number(sLeftBank) + 140;
  5595. iYPos = Number(sTopBank) + 35;
  5596. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20));
  5597. sDivgrupcd = sDivgrupcd.substring(0, sDivgrupcd.length)
  5598. iXPos = Number(sLeftBank) + 2;
  5599. iYPos = Number(sTopBank) + 70;
  5600. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sDivgrupcd.substr(0, 20));
  5601. iXPos = Number(sLeftBank) + 2;
  5602. iYPos = Number(sTopBank) + 110;
  5603. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + sSpclblnm;
  5604. iXPos = Number(sLeftBank) + 2;
  5605. iYPos = Number(sTopBank) + 140;
  5606. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + sDeptroom;
  5607. iXPos = Number(sLeftBank) + 2;
  5608. iYPos = Number(sTopBank) + 170;
  5609. sSndMsg += "V" + iYPos + "H" + iXPos + "M" + sBcolldt;
  5610. iXPos = Number(sLeftBank) + 2;
  5611. iYPos = Number(sTopBank) + 200;
  5612. if(sDivgrupnm != ""){
  5613. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sDivgrupnm.substr(0, 20));
  5614. }
  5615. sSndMsg += "Q" + "1" + "Z";
  5616. CommAX.SendMsg(sSndMsg);
  5617. }
  5618. }
  5619. }
  5620. } //이후 2008-07-07 바코드 포트 오류 막기위해
  5621. catch(ee) {
  5622. messageBox("바코드출력에", "E009");
  5623. return;
  5624. }
  5625. }
  5626. //일반검사 분주라벨
  5627. //lcount, mcount (접수바코드출력수, 미생물바코드 출력수)
  5628. function fLisSpcBarcodePrintB(pRef, pLCount, pMCount){
  5629. try {
  5630. var vInstance = document.models(0).instances(0);
  5631. var cntHR = vInstance.selectNodes(pRef).length;
  5632. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  5633. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  5634. var portOpenTF = "";
  5635. var LCount = 0;
  5636. var MCount = 0;
  5637. var aFlag = new Array(); //한글 영문 구분
  5638. var aStr = "";
  5639. var iWidth = 0;
  5640. var iXPos = 0;
  5641. var iYPos = 0;
  5642. if(pLCount == null || pLCount == ""){
  5643. LCount = 0;
  5644. }else{
  5645. LCount = pLCount;
  5646. }
  5647. if(pMCount == null || pMCount == ""){
  5648. MCount = 0;
  5649. }else{
  5650. MCount = pMCount;
  5651. }
  5652. if(cntHR > 0 && sPrntKind != 0){
  5653. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  5654. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  5655. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  5656. if(sCommKind == "01") {
  5657. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  5658. } else if(sCommKind == "02") {
  5659. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  5660. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  5661. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  5662. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  5663. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  5664. CommAX.CommPort = sComm;
  5665. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  5666. if(LCount > 0){
  5667. portOpenTF = "TRUE";
  5668. }else if (LCount == 0){
  5669. portOpenTF = CommAX.PortOpen("true");
  5670. }
  5671. } else if(sCommKind == "03") {
  5672. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  5673. }
  5674. if( (portOpenTF == "TRUE" && sCommKind == "02")
  5675. || (sCommKind == "01")
  5676. || (sCommKind == "03")){
  5677. for(i=1 ; i<= cntHR;i++){
  5678. var sSndMsg = "";
  5679. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  5680. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  5681. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  5682. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  5683. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  5684. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  5685. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  5686. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  5687. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  5688. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  5689. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  5690. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  5691. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  5692. var barcdcntflag = model.getValue(pRef + "["+i+"]/cntflag");
  5693. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  5694. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  5695. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  5696. var divgrupcd = model.getValue(pRef + "["+i+"]/divgrupcd");
  5697. var divgrupnm = model.getValue(pRef + "["+i+"]/divgrupnm");
  5698. var sbcoll = "채혈자";
  5699. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  5700. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  5701. if(sPrntKind == "1" || sPrntKind == "9") {
  5702. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  5703. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  5704. iXPos = Number(sLeftBank) + 600;
  5705. iYPos = Number(sTopBank) + 1;
  5706. sSndMsg += lzzfBP_GraphicBox(iXPos, iYPos, 15, 240, 10);
  5707. iXPos = Number(sLeftBank) + 10;
  5708. iYPos = Number(sTopBank) + 2;
  5709. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sTsectlblnm.substr(0, 20), 2, 1);
  5710. sSndMsg += CommAX.HanImageData();
  5711. }
  5712. else{
  5713. iXPos = Number(sLeftBank) + 10;
  5714. iYPos = Number(sTopBank) + 2;
  5715. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sTsectlblnm.substr(0, 20), 2, 1);
  5716. sSndMsg += CommAX.HanImageData();
  5717. }
  5718. if(barcdcntflag == "acpt" ){
  5719. if(spcacptbarcdprntcnt > 0){
  5720. if(sCommKind == "01") {
  5721. CommAX.SendMessageToLPT(sSndMsg);
  5722. sSndMsg = "";
  5723. } else if(sCommKind == "02") {
  5724. CommAX.SendMessage(sSndMsg);
  5725. sSndMsg = "";
  5726. }
  5727. }
  5728. }else{
  5729. if(sCommKind == "01") {
  5730. CommAX.SendMessageToLPT(sSndMsg);
  5731. sSndMsg = "";
  5732. } else if(sCommKind == "02") {
  5733. CommAX.SendMessage(sSndMsg);
  5734. sSndMsg = "";
  5735. }
  5736. }
  5737. iXPos = Number(sLeftBank) + 220;
  5738. iYPos = Number(sTopBank) + 5;
  5739. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  5740. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBcno + "*"); //바코드번호
  5741. iXPos = Number(sLeftBank) + 500;
  5742. iYPos = Number(sTopBank) + 5;
  5743. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  5744. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  5745. /*
  5746. if(barcdcntflag == "acpt" ){
  5747. if(spcacptbarcdprntcnt > 0){
  5748. if(sCommKind == "01") {
  5749. CommAX.SendMessageToLPT(sSndMsg);
  5750. sSndMsg = "";
  5751. } else if(sCommKind == "02") {
  5752. CommAX.SendMessage(sSndMsg);
  5753. sSndMsg = "";
  5754. }
  5755. }
  5756. }else{
  5757. if(sCommKind == "01") {
  5758. CommAX.SendMessageToLPT(sSndMsg);
  5759. sSndMsg = "";
  5760. } else if(sCommKind == "02") {
  5761. CommAX.SendMessage(sSndMsg);
  5762. sSndMsg = "";
  5763. }
  5764. }
  5765. iXPos = Number(sLeftBank) + 265;
  5766. iYPos = Number(sTopBank) + 5;
  5767. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  5768. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBarcdprntdt); //라벨발행일시
  5769. */
  5770. if(barcdcntflag == "acpt" ){
  5771. if(spcacptbarcdprntcnt > 0){
  5772. if(sCommKind == "01") {
  5773. CommAX.SendMessageToLPT(sSndMsg);
  5774. sSndMsg = "";
  5775. } else if(sCommKind == "02") {
  5776. CommAX.SendMessage(sSndMsg);
  5777. sSndMsg = "";
  5778. }
  5779. }
  5780. }else{
  5781. if(sCommKind == "01") {
  5782. CommAX.SendMessageToLPT(sSndMsg);
  5783. sSndMsg = "";
  5784. } else if(sCommKind == "02") {
  5785. CommAX.SendMessage(sSndMsg);
  5786. sSndMsg = "";
  5787. }
  5788. }
  5789. iXPos = Number(sLeftBank) + 90;
  5790. iYPos = Number(sTopBank) + 30;
  5791. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  5792. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 120, "*" + sBcno + "*"); // 바코드
  5793. if(barcdcntflag == "acpt" ){
  5794. if(spcacptbarcdprntcnt > 0){
  5795. if(sCommKind == "01") {
  5796. CommAX.SendMessageToLPT(sSndMsg);
  5797. sSndMsg = "";
  5798. } else if(sCommKind == "02") {
  5799. CommAX.SendMessage(sSndMsg);
  5800. sSndMsg = "";
  5801. }
  5802. }
  5803. }else{
  5804. if(sCommKind == "01") {
  5805. CommAX.SendMessageToLPT(sSndMsg);
  5806. sSndMsg = "";
  5807. } else if(sCommKind == "02") {
  5808. CommAX.SendMessage(sSndMsg);
  5809. sSndMsg = "";
  5810. }
  5811. }
  5812. iXPos = Number(sLeftBank) + 20;
  5813. iYPos = Number(sTopBank) + 160;
  5814. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  5815. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  5816. iXPos = Number(sLeftBank) + 250;
  5817. iYPos = Number(sTopBank) + 157;
  5818. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 2, 1);
  5819. sSndMsg += CommAX.HanImageData();
  5820. if(barcdcntflag == "acpt" ){
  5821. if(spcacptbarcdprntcnt > 0){
  5822. if(sCommKind == "01") {
  5823. CommAX.SendMessageToLPT(sSndMsg);
  5824. sSndMsg = "";
  5825. } else if(sCommKind == "02") {
  5826. CommAX.SendMessage(sSndMsg);
  5827. sSndMsg = "";
  5828. }
  5829. }
  5830. }else{
  5831. if(sCommKind == "01") {
  5832. CommAX.SendMessageToLPT(sSndMsg);
  5833. sSndMsg = "";
  5834. } else if(sCommKind == "02") {
  5835. CommAX.SendMessage(sSndMsg);
  5836. sSndMsg = "";
  5837. }
  5838. }
  5839. iXPos = Number(sLeftBank) + 450;
  5840. iYPos = Number(sTopBank) + 160;
  5841. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  5842. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage);
  5843. iXPos = Number(sLeftBank) + 20;
  5844. iYPos = Number(sTopBank) + 185;
  5845. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  5846. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  5847. //iXPos = Number(sLeftBank) + 250;
  5848. //iYPos = Number(sTopBank) + 182;
  5849. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, divgrupcd, 2, 2);
  5850. //sSndMsg += CommAX.HanImageData();
  5851. //iXPos = Number(sLeftBank) + 270;
  5852. //iYPos = Number(sTopBank) + 170;
  5853. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  5854. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sTubelblnm); //용기명
  5855. //iXPos = Number(sLeftBank) + 10;
  5856. //iYPos = Number(sTopBank) + 200;
  5857. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  5858. // sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSecttsect); //계검사계
  5859. if(barcdcntflag == "acpt" ){
  5860. if(spcacptbarcdprntcnt > 0){
  5861. if(sCommKind == "01") {
  5862. CommAX.SendMessageToLPT(sSndMsg);
  5863. sSndMsg = "";
  5864. } else if(sCommKind == "02") {
  5865. CommAX.SendMessage(sSndMsg);
  5866. sSndMsg = "";
  5867. }
  5868. }
  5869. }else{
  5870. if(sCommKind == "01") {
  5871. CommAX.SendMessageToLPT(sSndMsg);
  5872. sSndMsg = "";
  5873. } else if(sCommKind == "02") {
  5874. CommAX.SendMessage(sSndMsg);
  5875. sSndMsg = "";
  5876. }
  5877. }
  5878. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  5879. //---------
  5880. iWidth = 0;
  5881. aStr = lpzfGetHanGul(sTclslblnmlist, aFlag);
  5882. iXPos = Number(sLeftBank) + 90;
  5883. for (var iNo=0; iNo < aStr.length; iNo++) {
  5884. //----------------------
  5885. if (aFlag[iNo] == "E") {
  5886. iYPos = Number(sTopBank) + 213;
  5887. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  5888. iWidth = iWidth + (Number(aStr[iNo].length) * 15);
  5889. } else {
  5890. iYPos = Number(sTopBank) + 215;
  5891. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  5892. sSndMsg += CommAX.HanImageData();
  5893. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  5894. }
  5895. }
  5896. //sSndMsg += CommAX.PrtImgOut(90, 200, sTclslblnmlist.substr(0, 20), 1, 1);
  5897. //sSndMsg += CommAX.HanImageData();
  5898. if(barcdcntflag == "acpt" ){
  5899. if(spcacptbarcdprntcnt > 0){
  5900. if(sCommKind == "01") {
  5901. CommAX.SendMessageToLPT(sSndMsg);
  5902. sSndMsg = "";
  5903. } else if(sCommKind == "02") {
  5904. CommAX.SendMessage(sSndMsg);
  5905. sSndMsg = "";
  5906. }
  5907. }
  5908. }else{
  5909. if(sCommKind == "01") {
  5910. CommAX.SendMessageToLPT(sSndMsg);
  5911. sSndMsg = "";
  5912. } else if(sCommKind == "02") {
  5913. CommAX.SendMessage(sSndMsg);
  5914. sSndMsg = "";
  5915. }
  5916. }
  5917. if(sTclslblnmlist.substr(0, 3) == "ABO") {
  5918. iXPos = Number(sLeftBank) + 100;
  5919. iYPos = Number(sTopBank) + 235;
  5920. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  5921. sSndMsg += CommAX.HanImageData();
  5922. }
  5923. if(barcdcntflag == "acpt" ){
  5924. if(spcacptbarcdprntcnt > 0){
  5925. if(sCommKind == "01") {
  5926. CommAX.SendMessageToLPT(sSndMsg);
  5927. sSndMsg = "";
  5928. } else if(sCommKind == "02") {
  5929. CommAX.SendMessage(sSndMsg);
  5930. sSndMsg = "";
  5931. }
  5932. }
  5933. }else{
  5934. if(sCommKind == "01") {
  5935. CommAX.SendMessageToLPT(sSndMsg);
  5936. sSndMsg = "";
  5937. } else if(sCommKind == "02") {
  5938. CommAX.SendMessage(sSndMsg);
  5939. sSndMsg = "";
  5940. }
  5941. }
  5942. iXPos = Number(sLeftBank) + 10;
  5943. iYPos = Number(sTopBank) + 230;
  5944. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  5945. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist); //감염정보
  5946. iXPos = Number(sLeftBank) + 10;
  5947. iYPos = Number(sTopBank) + 245;
  5948. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  5949. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "bunju"); //분주구분
  5950. if(barcdcntflag == "acpt" ){
  5951. if(spcacptbarcdprntcnt > 0){
  5952. sSndMsg += lzzfBP_EndFormat(spcacptbarcdprntcnt); // 접수바코드출력수
  5953. if(sCommKind == "01") {
  5954. CommAX.SendMessageToLPT(sSndMsg);
  5955. } else if(sCommKind == "02") {
  5956. CommAX.SendMessage(sSndMsg);
  5957. }
  5958. }
  5959. }else{
  5960. sSndMsg += lzzfBP_EndFormat(bcollbarcdprntcnt);
  5961. if(sCommKind == "01") {
  5962. CommAX.SendMessageToLPT(sSndMsg);
  5963. } else if(sCommKind == "02") {
  5964. CommAX.SendMessage(sSndMsg);
  5965. }
  5966. }
  5967. }//end if(sPrntKind == "1")
  5968. }//end for
  5969. //portopen이 true이고 통신유형이 com일때 port close
  5970. if( portOpenTF == "TRUE" && sCommKind == "02" && MCount == 0){
  5971. CommAX.PortOpen("false");
  5972. }
  5973. }else if(portOpenTF == "FALSE" && sCommKind == "02"){
  5974. messageBox("아래 사항을 확인후 재출력해주십시오."
  5975. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5976. + " \n 2.케이블 확인"
  5977. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5978. return;
  5979. }
  5980. }
  5981. } //이후 2008-07-07 바코드 포트 오류 막기위해
  5982. catch(ee) {
  5983. messageBox("바코드출력에", "E009");
  5984. return;
  5985. }
  5986. }
  5987. //일반검사 분주라벨사토
  5988. //lcount, mcount (접수바코드출력수, 미생물바코드 출력수)
  5989. function fLisSpcBarcodePrintB2(pRef, pLCount, pMCount){
  5990. try {
  5991. var vInstance = document.models(0).instances(0);
  5992. var cntHR = vInstance.selectNodes(pRef).length;
  5993. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  5994. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  5995. var portOpenTF = "";
  5996. var LCount = 0;
  5997. var MCount = 0;
  5998. var aFlag = new Array(); //한글 영문 구분
  5999. var aStr = "";
  6000. var iWidth = 0;
  6001. var iXPos = 0;
  6002. var iYPos = 0;
  6003. if(pLCount == null || pLCount == ""){
  6004. LCount = 0;
  6005. }else{
  6006. LCount = pLCount;
  6007. }
  6008. if(pMCount == null || pMCount == ""){
  6009. MCount = 0;
  6010. }else{
  6011. MCount = pMCount;
  6012. }
  6013. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  6014. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  6015. for(i=1 ; i<= cntHR;i++){
  6016. var sSndMsg = "";
  6017. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  6018. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  6019. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  6020. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  6021. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  6022. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  6023. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  6024. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  6025. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  6026. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  6027. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  6028. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  6029. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  6030. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  6031. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  6032. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  6033. var sbcoll = "채혈자";
  6034. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  6035. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  6036. if(sBcno != ""){
  6037. sSndMsg = "AA103500500"; // 시작위치 셋팅
  6038. if(sErprcpflag == "1" || sErprcpflag == "2" || sErprcpflag == "Y"){
  6039. iXPos = Number(sLeftBank);
  6040. iYPos = Number(sTopBank) + 1;
  6041. sSndMsg += "V" + iYPos + "H" + iXPos + "FW10V0220";
  6042. }
  6043. iXPos = Number(sLeftBank) + 15;
  6044. iYPos = Number(sTopBank) + 5;
  6045. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTsectlblnm);
  6046. iXPos = Number(sLeftBank) + 140;
  6047. iYPos = Number(sTopBank) + 5;
  6048. sSndMsg += "V" + iYPos + "H" + iXPos + "S*" + sBcno + "*"; //바코드번호
  6049. iXPos = Number(sLeftBank) + 275;
  6050. iYPos = Number(sTopBank) + 5;
  6051. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBarcdprntdt; //라벨발행일시
  6052. iXPos = Number(sLeftBank) + 60;
  6053. iYPos = Number(sTopBank) + 30;
  6054. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02100" + sBcno; // 바코드
  6055. iXPos = Number(sLeftBank) + 20;
  6056. iYPos = Number(sTopBank) + 130;
  6057. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20));
  6058. iXPos = Number(sLeftBank) + 160;
  6059. iYPos = Number(sTopBank) + 135;
  6060. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid;//환자등록번호
  6061. iXPos = Number(sLeftBank) + 300;
  6062. iYPos = Number(sTopBank) + 135;
  6063. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSexage;
  6064. iXPos = Number(sLeftBank) + 20;
  6065. iYPos = Number(sTopBank) + 160;
  6066. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sDeptroom; //진료과병실
  6067. iXPos = Number(sLeftBank) + 160;
  6068. iYPos = Number(sTopBank) + 160;
  6069. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSpclblnm; //검체명
  6070. iXPos = Number(sLeftBank) + 260;
  6071. iYPos = Number(sTopBank) + 160;
  6072. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sTubelblnm; //용기명
  6073. iXPos = Number(sLeftBank) + 20;
  6074. iYPos = Number(sTopBank) + 180;
  6075. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSecttsect; //계검사계
  6076. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  6077. iXPos = Number(sLeftBank) + 90;
  6078. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTclslblnmlist);
  6079. if(sTclslblnmlist.substr(0, 3) == "ABO") {
  6080. iXPos = Number(sLeftBank) + 110;
  6081. iYPos = Number(sTopBank) + 202;
  6082. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ");
  6083. }
  6084. iXPos = Number(sLeftBank) + 20;
  6085. iYPos = Number(sTopBank) + 202;
  6086. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sInfcinfolist); //감염정보
  6087. iXPos = Number(sLeftBank) + 290;
  6088. iYPos = Number(sTopBank) + 202;
  6089. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, "bunju"); //분주구분
  6090. //if(barcdcntflag == "acpt" ){
  6091. sSndMsg += "Q" + spcacptbarcdprntcnt + "Z";
  6092. CommAX.SendMsg(sSndMsg);
  6093. //}else{
  6094. // sSndMsg += "Q" + bcollbarcdprntcnt + "Z";
  6095. // CommAX.SendMsg(sSndMsg);
  6096. //}
  6097. }//if(sBcno != ""){
  6098. }//end for
  6099. } //이후 2008-07-07 바코드 포트 오류 막기위해
  6100. catch(ee) {
  6101. messageBox("바코드출력에", "E009");
  6102. return;
  6103. }
  6104. }
  6105. // 핵의학 분주
  6106. function fLisSpcBarcodePrintC(pRef){
  6107. try {
  6108. var vInstance = document.models(0).instances(0);
  6109. var cntHR = vInstance.selectNodes(pRef).length;
  6110. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  6111. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  6112. var portOpenTF = "";
  6113. var aFlag = new Array(); //한글 영문 구분
  6114. var aStr = "";
  6115. var iWidth = 0;
  6116. var iXPos = 0;
  6117. var iYPos = 0;
  6118. if(cntHR > 0 && sPrntKind != 0){
  6119. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  6120. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  6121. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  6122. if(sCommKind == "01") {
  6123. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  6124. } else if(sCommKind == "02") {
  6125. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  6126. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  6127. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  6128. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  6129. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  6130. CommAX.CommPort = sComm;
  6131. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  6132. portOpenTF = CommAX.PortOpen("true");
  6133. } else if(sCommKind == "03") {
  6134. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  6135. }
  6136. if( (portOpenTF == "TRUE" && sCommKind == "02")
  6137. || (sCommKind == "01")
  6138. || (sCommKind == "03")){
  6139. for(i=1 ; i<= cntHR;i++){
  6140. var sSndMsg = "";
  6141. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  6142. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  6143. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  6144. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  6145. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  6146. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  6147. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  6148. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  6149. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  6150. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  6151. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  6152. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  6153. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  6154. var barcdcntflag = model.getValue(pRef + "["+i+"]/cntflag");
  6155. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  6156. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  6157. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  6158. var sbcoll = "채혈자";
  6159. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  6160. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  6161. if(sPrntKind == "1") {
  6162. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  6163. iXPos = Number(sLeftBank) + 40;
  6164. iYPos = Number(sTopBank) + 2;
  6165. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6166. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  6167. if(barcdcntflag == "acpt" ){
  6168. if(spcacptbarcdprntcnt > 0){
  6169. if(sCommKind == "01") {
  6170. CommAX.SendMessageToLPT(sSndMsg);
  6171. sSndMsg = "";
  6172. } else if(sCommKind == "02") {
  6173. CommAX.SendMessage(sSndMsg);
  6174. sSndMsg = "";
  6175. }
  6176. }
  6177. }else{
  6178. if(sCommKind == "01") {
  6179. CommAX.SendMessageToLPT(sSndMsg);
  6180. sSndMsg = "";
  6181. } else if(sCommKind == "02") {
  6182. CommAX.SendMessage(sSndMsg);
  6183. sSndMsg = "";
  6184. }
  6185. }
  6186. iXPos = Number(sLeftBank) + 220;
  6187. iYPos = Number(sTopBank) + 2;
  6188. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  6189. sSndMsg += CommAX.HanImageData();
  6190. if(barcdcntflag == "acpt" ){
  6191. if(spcacptbarcdprntcnt > 0){
  6192. if(sCommKind == "01") {
  6193. CommAX.SendMessageToLPT(sSndMsg);
  6194. sSndMsg = "";
  6195. } else if(sCommKind == "02") {
  6196. CommAX.SendMessage(sSndMsg);
  6197. sSndMsg = "";
  6198. }
  6199. }
  6200. }else{
  6201. if(sCommKind == "01") {
  6202. CommAX.SendMessageToLPT(sSndMsg);
  6203. sSndMsg = "";
  6204. } else if(sCommKind == "02") {
  6205. CommAX.SendMessage(sSndMsg);
  6206. sSndMsg = "";
  6207. }
  6208. }
  6209. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  6210. //---------
  6211. iWidth = 0;
  6212. aStr = lpzfGetHanGul(sTclslblnmlist, aFlag);
  6213. iXPos = Number(sLeftBank) + 40;
  6214. for (var iNo=0; iNo < aStr.length; iNo++) {
  6215. //----------------------
  6216. if (aFlag[iNo] == "E") {
  6217. iYPos = Number(sTopBank) + 33;
  6218. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  6219. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  6220. } else {
  6221. iYPos = Number(sTopBank) + 35;
  6222. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  6223. sSndMsg += CommAX.HanImageData();
  6224. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  6225. }
  6226. }
  6227. //sSndMsg += CommAX.PrtImgOut(40, 30, sTclslblnmlist.substr(0, 20), 1, 1);
  6228. //sSndMsg += CommAX.HanImageData();
  6229. if(barcdcntflag == "acpt" ){
  6230. if(spcacptbarcdprntcnt > 0){
  6231. if(sCommKind == "01") {
  6232. CommAX.SendMessageToLPT(sSndMsg);
  6233. sSndMsg = "";
  6234. } else if(sCommKind == "02") {
  6235. CommAX.SendMessage(sSndMsg);
  6236. sSndMsg = "";
  6237. }
  6238. }
  6239. }else{
  6240. if(sCommKind == "01") {
  6241. CommAX.SendMessageToLPT(sSndMsg);
  6242. sSndMsg = "";
  6243. } else if(sCommKind == "02") {
  6244. CommAX.SendMessage(sSndMsg);
  6245. sSndMsg = "";
  6246. }
  6247. }
  6248. iXPos = Number(sLeftBank) + 40;
  6249. iYPos = Number(sTopBank) + 60;
  6250. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6251. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  6252. iXPos = Number(sLeftBank) + 220;
  6253. iYPos = Number(sTopBank) + 60;
  6254. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6255. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDeptroom); //진료과병실
  6256. iXPos = Number(sLeftBank) + 40;
  6257. iYPos = Number(sTopBank) + 80;
  6258. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  6259. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 100, "*" + sBcno + "*"); // 바코드
  6260. if(barcdcntflag == "acpt" ){
  6261. if(spcacptbarcdprntcnt > 0){
  6262. sSndMsg += lzzfBP_EndFormat(spcacptbarcdprntcnt); // 접수바코드출력수
  6263. if(sCommKind == "01") {
  6264. CommAX.SendMessageToLPT(sSndMsg);
  6265. } else if(sCommKind == "02") {
  6266. CommAX.SendMessage(sSndMsg);
  6267. }
  6268. }
  6269. }else{
  6270. sSndMsg += lzzfBP_EndFormat(bcollbarcdprntcnt);
  6271. if(sCommKind == "01") {
  6272. CommAX.SendMessageToLPT(sSndMsg);
  6273. } else if(sCommKind == "02") {
  6274. CommAX.SendMessage(sSndMsg);
  6275. }
  6276. }
  6277. }//end if(sPrntKind == "1")
  6278. }//end for
  6279. //portopen이 true이고 통신유형이 com일때 port close
  6280. if( portOpenTF == "TRUE" && sCommKind == "02"){
  6281. CommAX.PortOpen("false");
  6282. }
  6283. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  6284. messageBox("아래 사항을 확인후 재출력해주십시오."
  6285. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  6286. + " \n 2.케이블 확인"
  6287. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  6288. return;
  6289. }
  6290. }
  6291. } //이후 2008-07-07 바코드 포트 오류 막기위해
  6292. catch(ee) {
  6293. messageBox("바코드출력에", "E009");
  6294. return;
  6295. }
  6296. }
  6297. /**
  6298. * @group :
  6299. * @ver : 2009.04.07
  6300. * @by : 송요셉
  6301. * @---------------------------------------------------
  6302. * @type : function
  6303. * @access : public
  6304. * @desc : 세포유전슬라이드 라벨출력
  6305. * @param : ref - 세포유전슬라이드 인스턴스
  6306. * @return :
  6307. * @---------------------------------------------------
  6308. */
  6309. function fLisSpcSlideLabelPrint(pRef,prntGbn){
  6310. try {
  6311. var vInstance = document.models(0).instances(0);
  6312. var cntHR = vInstance.selectNodes(pRef).length;
  6313. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  6314. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  6315. var portOpenTF = "";
  6316. var aFlag = new Array(); //한글 영문 구분
  6317. var aStr = "";
  6318. var iWidth = 0;
  6319. var iXPos = 0;
  6320. var iYPos = 0;
  6321. if(cntHR > 0 && sPrntKind != 0){
  6322. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  6323. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  6324. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  6325. if(sCommKind == "01") {
  6326. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  6327. } else if(sCommKind == "02") {
  6328. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  6329. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  6330. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  6331. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  6332. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  6333. CommAX.CommPort = sComm;
  6334. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  6335. portOpenTF = CommAX.PortOpen("true");
  6336. } else if(sCommKind == "03") {
  6337. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  6338. }
  6339. if( (portOpenTF == "TRUE" && sCommKind == "02")
  6340. || (sCommKind == "01")
  6341. || (sCommKind == "03")){
  6342. var sSndMsg = "";
  6343. for(i=1 ; i<= cntHR;i++){
  6344. var sWorkno = model.getvalue(pRef+ "["+i+"]/workno");
  6345. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  6346. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  6347. var sLblnm = model.getvalue(pRef+ "["+i+"]/lblnm");
  6348. var sCnt = model.getvalue(pRef+ "["+i+"]/cnt");
  6349. var sWorkno2 = model.getvalue(pRef+ "["+i+"]/workno2");
  6350. var sPatnm2 = model.getvalue(pRef+ "["+i+"]/patnm2");
  6351. var sSexage2 = model.getvalue(pRef+ "["+i+"]/sexage2");
  6352. var sLblnm2 = model.getvalue(pRef+ "["+i+"]/lblnm2");
  6353. var sCnt2 = model.getvalue(pRef+ "["+i+"]/cnt2");
  6354. var sWorkno3 = model.getvalue(pRef+ "["+i+"]/workno3");
  6355. var sPatnm3 = model.getvalue(pRef+ "["+i+"]/patnm3");
  6356. var sSexage3 = model.getvalue(pRef+ "["+i+"]/sexage3");
  6357. var sLblnm3 = model.getvalue(pRef+ "["+i+"]/lblnm3");
  6358. var sCnt3 = model.getvalue(pRef+ "["+i+"]/cnt3");
  6359. var sWorkno4 = model.getvalue(pRef+ "["+i+"]/workno4");
  6360. var sPatnm4 = model.getvalue(pRef+ "["+i+"]/patnm4");
  6361. var sSexage4 = model.getvalue(pRef+ "["+i+"]/sexage4");
  6362. var sLblnm4 = model.getvalue(pRef+ "["+i+"]/lblnm4");
  6363. var sCnt4 = model.getvalue(pRef+ "["+i+"]/cnt4");
  6364. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  6365. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  6366. if(sPrntKind == "1" && prntGbn == "1") {
  6367. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  6368. iXPos = Number(sLeftBank) + 10;
  6369. iYPos = Number(sTopBank) + 50;
  6370. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6371. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno); //작업번호
  6372. iXPos = Number(sLeftBank) + 215;
  6373. iYPos = Number(sTopBank) + 50;
  6374. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6375. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno2); //작업번호2
  6376. iXPos = Number(sLeftBank) + 420;
  6377. iYPos = Number(sTopBank) + 50;
  6378. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6379. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno3); //작업번호3
  6380. iXPos = Number(sLeftBank) + 625;
  6381. iYPos = Number(sTopBank) + 50;
  6382. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6383. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno4); //작업번호4
  6384. iXPos = Number(sLeftBank) + 10;
  6385. iYPos = Number(sTopBank) + 75;
  6386. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1, 1);
  6387. sSndMsg += CommAX.HanImageData();
  6388. iXPos = Number(sLeftBank) + 215;
  6389. iYPos = Number(sTopBank) + 75;
  6390. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm2, 1, 1);
  6391. sSndMsg += CommAX.HanImageData();
  6392. iXPos = Number(sLeftBank) + 420;
  6393. iYPos = Number(sTopBank) + 75;
  6394. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm3, 1, 1);
  6395. sSndMsg += CommAX.HanImageData();
  6396. iXPos = Number(sLeftBank) + 625;
  6397. iYPos = Number(sTopBank) + 75;
  6398. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm4, 1, 1);
  6399. sSndMsg += CommAX.HanImageData();
  6400. iXPos = Number(sLeftBank) + 110;
  6401. iYPos = Number(sTopBank) + 80;
  6402. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6403. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage); //성별나이
  6404. iXPos = Number(sLeftBank) + 315;
  6405. iYPos = Number(sTopBank) + 80;
  6406. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6407. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage2); //성별나이2
  6408. iXPos = Number(sLeftBank) + 520;
  6409. iYPos = Number(sTopBank) + 80;
  6410. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6411. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage3); //성별나이3
  6412. iXPos = Number(sLeftBank) + 725;
  6413. iYPos = Number(sTopBank) + 80;
  6414. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6415. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage4); //성별나이4
  6416. iXPos = Number(sLeftBank) + 10;
  6417. iYPos = Number(sTopBank) + 110;
  6418. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6419. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm); //라벨명
  6420. iXPos = Number(sLeftBank) + 215;
  6421. iYPos = Number(sTopBank) + 110;
  6422. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6423. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm2); //라벨명2
  6424. iXPos = Number(sLeftBank) + 420;
  6425. iYPos = Number(sTopBank) + 110;
  6426. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6427. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm3); //라벨명3
  6428. iXPos = Number(sLeftBank) + 625;
  6429. iYPos = Number(sTopBank) + 110;
  6430. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6431. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm4); //라벨명4
  6432. iXPos = Number(sLeftBank) + 160;
  6433. iYPos = Number(sTopBank) + 110;
  6434. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6435. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt); //라벨명
  6436. iXPos = Number(sLeftBank) + 365;
  6437. iYPos = Number(sTopBank) + 110;
  6438. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6439. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt2); //라벨명2
  6440. iXPos = Number(sLeftBank) + 570;
  6441. iYPos = Number(sTopBank) + 110;
  6442. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6443. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt3); //라벨명3
  6444. iXPos = Number(sLeftBank) + 775;
  6445. iYPos = Number(sTopBank) + 110;
  6446. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6447. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt4); //라벨명4
  6448. sSndMsg += lzzfBP_EndFormat("1");
  6449. }//end if(sPrntKind == "1")
  6450. else{
  6451. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  6452. iXPos = Number(sLeftBank) + 10;
  6453. iYPos = Number(sTopBank) + 50;
  6454. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6455. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno); //작업번호
  6456. iXPos = Number(sLeftBank) + 215;
  6457. iYPos = Number(sTopBank) + 50;
  6458. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6459. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno2); //작업번호2
  6460. iXPos = Number(sLeftBank) + 420;
  6461. iYPos = Number(sTopBank) + 50;
  6462. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6463. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno3); //작업번호3
  6464. iXPos = Number(sLeftBank) + 625;
  6465. iYPos = Number(sTopBank) + 50;
  6466. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6467. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sWorkno4); //작업번호4
  6468. iXPos = Number(sLeftBank) + 10;
  6469. iYPos = Number(sTopBank) + 80;
  6470. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6471. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatnm); //환자명
  6472. iXPos = Number(sLeftBank) + 215;
  6473. iYPos = Number(sTopBank) + 80;
  6474. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6475. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatnm2); //환자명2
  6476. iXPos = Number(sLeftBank) + 420;
  6477. iYPos = Number(sTopBank) + 80;
  6478. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6479. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatnm3); //환자명3
  6480. iXPos = Number(sLeftBank) + 625;
  6481. iYPos = Number(sTopBank) + 80;
  6482. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6483. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatnm4); //환자명4
  6484. iXPos = Number(sLeftBank) + 80;
  6485. iYPos = Number(sTopBank) + 80;
  6486. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6487. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage); //성별나이
  6488. iXPos = Number(sLeftBank) + 285;
  6489. iYPos = Number(sTopBank) + 80;
  6490. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6491. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage2); //성별나이2
  6492. iXPos = Number(sLeftBank) + 490;
  6493. iYPos = Number(sTopBank) + 80;
  6494. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6495. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage3); //성별나이3
  6496. iXPos = Number(sLeftBank) + 695;
  6497. iYPos = Number(sTopBank) + 80;
  6498. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6499. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage4); //성별나이4
  6500. iXPos = Number(sLeftBank) + 10;
  6501. iYPos = Number(sTopBank) + 110;
  6502. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6503. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm); //라벨명
  6504. iXPos = Number(sLeftBank) + 215;
  6505. iYPos = Number(sTopBank) + 110;
  6506. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6507. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm2); //라벨명2
  6508. iXPos = Number(sLeftBank) + 420;
  6509. iYPos = Number(sTopBank) + 110;
  6510. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6511. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm3); //라벨명3
  6512. iXPos = Number(sLeftBank) + 625;
  6513. iYPos = Number(sTopBank) + 110;
  6514. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6515. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sLblnm4); //라벨명4
  6516. iXPos = Number(sLeftBank) + 80;
  6517. iYPos = Number(sTopBank) + 110;
  6518. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6519. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt); //라벨명
  6520. iXPos = Number(sLeftBank) + 285;
  6521. iYPos = Number(sTopBank) + 110;
  6522. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6523. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt2); //라벨명2
  6524. iXPos = Number(sLeftBank) + 490;
  6525. iYPos = Number(sTopBank) + 110;
  6526. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6527. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt3); //라벨명3
  6528. iXPos = Number(sLeftBank) + 695;
  6529. iYPos = Number(sTopBank) + 110;
  6530. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6531. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sCnt4); //라벨명4
  6532. sSndMsg += lzzfBP_EndFormat("1");
  6533. }
  6534. }//end for
  6535. if(sCommKind == "01") {
  6536. CommAX.SendMessageToLPT(sSndMsg);
  6537. } else if(sCommKind == "02") {
  6538. CommAX.SendMessage(sSndMsg);
  6539. }
  6540. //portopen이 true이고 통신유형이 com일때 port close
  6541. if( portOpenTF == "TRUE" && sCommKind == "02"){
  6542. CommAX.PortOpen("false");
  6543. }
  6544. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  6545. messageBox("아래 사항을 확인후 재출력해주십시오."
  6546. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  6547. + " \n 2.케이블 확인"
  6548. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  6549. return;
  6550. }
  6551. }
  6552. } //이후 2008-07-07 바코드 포트 오류 막기위해
  6553. catch(ee) {
  6554. messageBox("바코드출력에", "E009");
  6555. return;
  6556. }
  6557. }
  6558. //분자생물 배지 분주라벨
  6559. //lcount, mcount (접수바코드출력수, 미생물바코드 출력수)
  6560. function fLisSpcBarcodePrintD(pRef, pKCount, pPCount, scrflag){
  6561. //model.setValue("/root/hidden/test/startdt", getCurrentTime());
  6562. var vInstance = document.models(0).instances(0);
  6563. var cntHR = vInstance.selectNodes(pRef).length;
  6564. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  6565. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  6566. var aFlag = new Array(); //한글 영문 구분
  6567. var aStr = "";
  6568. var iWidth = 0;
  6569. var iXPos = 0;
  6570. var iYPos = 0;
  6571. var portOpenTF = "";
  6572. var KCount = 0;
  6573. var PCount = 0;
  6574. if(pKCount == null || pKCount == ""){
  6575. KCount = 0;
  6576. }else{
  6577. KCount = pKCount;
  6578. }
  6579. if(pPCount == null || pPCount == ""){
  6580. PCount = 0;
  6581. }else{
  6582. PCount = pPCount;
  6583. }
  6584. //alert(KCount);
  6585. var scridPrint = getScreenID();
  6586. if(cntHR > 0 && sPrntKind != 0){
  6587. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  6588. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  6589. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  6590. if(sCommKind == "01") {
  6591. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  6592. } else if(sCommKind == "02") {
  6593. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  6594. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  6595. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  6596. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  6597. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  6598. CommAX.CommPort = sComm;
  6599. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  6600. //보관검체 출력 갯수가 존재하면 port 오픈 하지 않는다.
  6601. //이미 오픈 되어 있음. 보관검체 출력후 진검 바코드 갯수 체크하여 포트 클로즈 하지 않는다.
  6602. if(KCount > 0){
  6603. //이미 포트 오픈 되어 있으므로 "TRUE" 셋팅
  6604. portOpenTF = "TRUE";
  6605. }else if(KCount == 0){
  6606. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  6607. portOpenTF = CommAX.PortOpen("true");
  6608. }
  6609. } else if(sCommKind == "03") {
  6610. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  6611. }
  6612. //alert(portOpenTF);
  6613. if( (portOpenTF == "TRUE" && sCommKind == "02")
  6614. || (sCommKind == "01")
  6615. || (sCommKind == "03")){
  6616. for(i=1 ; i<= cntHR;i++){
  6617. var sSndMsg = "";
  6618. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  6619. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  6620. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  6621. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  6622. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  6623. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  6624. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  6625. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  6626. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  6627. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  6628. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  6629. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  6630. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  6631. var barcdcntflag = model.getValue(pRef + "/cntflag");
  6632. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  6633. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  6634. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  6635. var sbcoll = "채혈자";
  6636. var keepspc = false;
  6637. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  6638. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  6639. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  6640. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  6641. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  6642. var dnorNm = "";
  6643. var dSexage = "";
  6644. }else{
  6645. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  6646. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  6647. }
  6648. if(sPrntKind == "1") {
  6649. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  6650. iXPos = Number(sLeftBank) + 10;
  6651. iYPos = Number(sTopBank) + 10;
  6652. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1);
  6653. sSndMsg += CommAX.HanImageData();
  6654. if(barcdcntflag == "acpt" ){
  6655. if(spcacptbarcdprntcnt > 0){
  6656. if(sCommKind == "01") {
  6657. CommAX.SendMessageToLPT(sSndMsg);
  6658. sSndMsg = "";
  6659. } else if(sCommKind == "02") {
  6660. CommAX.SendMessage(sSndMsg);
  6661. sSndMsg = "";
  6662. }
  6663. }
  6664. }else{
  6665. if(sCommKind == "01") {
  6666. CommAX.SendMessageToLPT(sSndMsg);
  6667. sSndMsg = "";
  6668. } else if(sCommKind == "02") {
  6669. CommAX.SendMessage(sSndMsg);
  6670. sSndMsg = "";
  6671. }
  6672. }
  6673. iXPos = Number(sLeftBank) + 140;
  6674. iYPos = Number(sTopBank) + 10;
  6675. sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  6676. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  6677. iXPos = Number(sLeftBank) + 10;
  6678. iYPos = Number(sTopBank) + 40;
  6679. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6680. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSexage);
  6681. iXPos = Number(sLeftBank) + 140;
  6682. iYPos = Number(sTopBank) + 40;
  6683. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6684. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sSpclblnm); //검체명
  6685. var dd = getCurrentDate();
  6686. var realdd = dd.substring(4,6) + "/" + dd.substring(6,8);
  6687. var tm = getCurrentTime();
  6688. var realtm = tm.substring(0,2) + ":" + tm.substring(2,4) + ":" + tm.substring(4,6);
  6689. realdd = realdd + " " + realtm;
  6690. iXPos = Number(sLeftBank) + 10;
  6691. iYPos = Number(sTopBank) + 70;
  6692. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  6693. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, realdd); //라벨발행일시
  6694. if(barcdcntflag == "acpt" ){
  6695. if(spcacptbarcdprntcnt > 0){
  6696. if(sCommKind == "01") {
  6697. CommAX.SendMessageToLPT(sSndMsg);
  6698. sSndMsg = "";
  6699. } else if(sCommKind == "02") {
  6700. CommAX.SendMessage(sSndMsg);
  6701. sSndMsg = "";
  6702. }
  6703. }
  6704. }else{
  6705. if(sCommKind == "01") {
  6706. CommAX.SendMessageToLPT(sSndMsg);
  6707. sSndMsg = "";
  6708. } else if(sCommKind == "02") {
  6709. CommAX.SendMessage(sSndMsg);
  6710. sSndMsg = "";
  6711. }
  6712. }
  6713. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  6714. //---------
  6715. iWidth = 0;
  6716. aStr = "";
  6717. aFlag = new Array();
  6718. iXPos = Number(sLeftBank) + 10;
  6719. aStr = lpzfGetHanGul(sTclslblnmlist, aFlag);
  6720. for (var iNo=0; iNo < aStr.length; iNo++) {
  6721. //----------------------
  6722. if (aFlag[iNo] == "E") {
  6723. iYPos = Number(sTopBank) + 98;
  6724. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  6725. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  6726. } else {
  6727. iYPos = Number(sTopBank) + 95;
  6728. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  6729. sSndMsg += CommAX.HanImageData();
  6730. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  6731. }
  6732. }
  6733. //sSndMsg += CommAX.PrtImgOut(90, 175, sTclslblnmlist.substr(0, 20), 1, 1); //검사항목라벨명
  6734. //sSndMsg += CommAX.HanImageData();
  6735. if(barcdcntflag == "acpt" ){
  6736. if(spcacptbarcdprntcnt > 0){
  6737. if(sCommKind == "01") {
  6738. CommAX.SendMessageToLPT(sSndMsg);
  6739. sSndMsg = "";
  6740. } else if(sCommKind == "02") {
  6741. CommAX.SendMessage(sSndMsg);
  6742. sSndMsg = "";
  6743. }
  6744. }
  6745. }else{
  6746. if(sCommKind == "01") {
  6747. CommAX.SendMessageToLPT(sSndMsg);
  6748. sSndMsg = "";
  6749. } else if(sCommKind == "02") {
  6750. CommAX.SendMessage(sSndMsg);
  6751. sSndMsg = "";
  6752. }
  6753. }
  6754. //if(sTclslblnmlist.substr(0, 3) == "ABO") {
  6755. if(checkABO) {
  6756. //외래채혈일때
  6757. if(scridPrint=="SMLLC00100" && scrflag){
  6758. keepspc = true;
  6759. }
  6760. //병동,환자별일때
  6761. else if((scridPrint=="SMLLC00200" || scridPrint=="SMLLC00300") && scrflag && checkAST){
  6762. keepspc = true;
  6763. }
  6764. iXPos = Number(sLeftBank) + 100;
  6765. iYPos = Number(sTopBank) + 202;
  6766. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈자 : ", 1, 1);
  6767. sSndMsg += CommAX.HanImageData();
  6768. }
  6769. iXPos = Number(sLeftBank) + 10;
  6770. iYPos = Number(sTopBank) + 205;
  6771. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sInfcinfolist, 1, 1); //감염정보
  6772. //sSndMsg += CommAX.HanImageData();
  6773. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  6774. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist); //계검사계
  6775. if(barcdcntflag == "acpt" ){
  6776. if(spcacptbarcdprntcnt > 0){
  6777. sSndMsg += lzzfBP_EndFormat(spcacptbarcdprntcnt); // 접수바코드출력수
  6778. if(sCommKind == "01") {
  6779. CommAX.SendMessageToLPT(sSndMsg);
  6780. } else if(sCommKind == "02") {
  6781. CommAX.SendMessage(sSndMsg);
  6782. }
  6783. }
  6784. }else{
  6785. sSndMsg += lzzfBP_EndFormat(bcollbarcdprntcnt);
  6786. if(sCommKind == "01") {
  6787. CommAX.SendMessageToLPT(sSndMsg);
  6788. } else if(sCommKind == "02") {
  6789. CommAX.SendMessage(sSndMsg);
  6790. }
  6791. }
  6792. if(keepspc) {
  6793. fKeepBcnoPrint("B");
  6794. }
  6795. }//end if(sPrntKind == "1")
  6796. }//end for
  6797. //portopen이 true이고 통신유형이 com이고 출력할 병리 바코드가 없을때 port close
  6798. if( portOpenTF == "TRUE" && sCommKind == "02" && PCount == 0){
  6799. CommAX.PortOpen("false");
  6800. }
  6801. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  6802. messageBox("아래 사항을 확인후 재출력해주십시오."
  6803. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  6804. + " \n 2.케이블 확인"
  6805. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  6806. return;
  6807. }
  6808. }
  6809. //model.setValue("/root/hidden/test/enddt", getCurrentTime());
  6810. }
  6811. //분자생물 배지 분주라벨
  6812. //lcount, mcount (접수바코드출력수, 미생물바코드 출력수)
  6813. function fLisSpcBarcodePrintD2(pRef, pKCount, pPCount, scrflag){
  6814. //model.setValue("/root/hidden/test/startdt", getCurrentTime());
  6815. var vInstance = document.models(0).instances(0);
  6816. var cntHR = vInstance.selectNodes(pRef).length;
  6817. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  6818. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  6819. var aFlag = new Array(); //한글 영문 구분
  6820. var aStr = "";
  6821. var iWidth = 0;
  6822. var iXPos = 0;
  6823. var iYPos = 0;
  6824. var portOpenTF = "";
  6825. var KCount = 0;
  6826. var PCount = 0;
  6827. if(pKCount == null || pKCount == ""){
  6828. KCount = 0;
  6829. }else{
  6830. KCount = pKCount;
  6831. }
  6832. if(pPCount == null || pPCount == ""){
  6833. PCount = 0;
  6834. }else{
  6835. PCount = pPCount;
  6836. }
  6837. //alert(KCount);
  6838. var scridPrint = getScreenID();
  6839. if(cntHR > 0 && sPrntKind != 0){
  6840. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  6841. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  6842. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  6843. for(i=1 ; i<= cntHR;i++){
  6844. var sSndMsg = "";
  6845. var sTsectlblnm = model.getvalue(pRef+ "["+i+"]/tsectlblnm");
  6846. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  6847. var sBarcdprntdt = model.getvalue(pRef+ "["+i+"]/barcdprntdt");
  6848. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  6849. var sPid = model.getvalue(pRef+ "["+i+"]/pid");
  6850. var sSexage = model.getvalue(pRef+ "["+i+"]/sexage");
  6851. var sDeptroom = model.getvalue(pRef+ "["+i+"]/deptroom");
  6852. var sSpclblnm = model.getvalue(pRef+ "["+i+"]/spclblnm");
  6853. var sTubelblnm = model.getvalue(pRef+ "["+i+"]/tubelblnm");
  6854. var sSecttsect = model.getvalue(pRef+ "["+i+"]/secttsect");
  6855. var sTclslblnmlist = model.getvalue(pRef+ "["+i+"]/tclslblnmlist");
  6856. var sInfcinfolist = model.getvalue(pRef+ "["+i+"]/infcinfolist");
  6857. var sErprcpflag = model.getvalue(pRef+ "["+i+"]/erprcpflag");
  6858. var barcdcntflag = model.getValue(pRef + "/cntflag");
  6859. var bcollbarcdprntcnt = model.getValue(pRef + "["+i+"]/bcollbarcdprntcnt");
  6860. var spcacptbarcdprntcnt = model.getValue(pRef + "["+i+"]/spcacptbarcdprntcnt");
  6861. var microbarcdprntcnt = model.getValue(pRef + "["+i+"]/microbarcdprntcnt");
  6862. var sbcoll = "채혈자";
  6863. var keepspc = false;
  6864. var checkABO = isSearchString(sTclslblnmlist.toUpperCase(), "ABO");
  6865. var checkAST = isSearchString(sTclslblnmlist.toUpperCase(), "AST");
  6866. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  6867. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  6868. if (model.getValue(pRef + "["+i+"]/dnornm") ==""){
  6869. var dnorNm = "";
  6870. var dSexage = "";
  6871. }else{
  6872. var dnorNm = model.getValue(pRef + "["+i+"]/dnornm");
  6873. var dSexage = model.getValue(pRef + "["+i+"]/dnorsexage");
  6874. }
  6875. sSndMsg = "AA103500500"; // 시작위치 셋팅
  6876. //sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTsectlblnm);
  6877. //sSndMsg += "V" + iYPos + "H" + iXPos + "S*" + sBcno + "*"; //바코드번호
  6878. iXPos = Number(sLeftBank) + 10;
  6879. iYPos = Number(sTopBank) + 10;
  6880. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm.substr(0, 20));
  6881. iXPos = Number(sLeftBank) + 140;
  6882. iYPos = Number(sTopBank) + 10;
  6883. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid; //환자등록번호
  6884. iXPos = Number(sLeftBank) + 10;
  6885. iYPos = Number(sTopBank) + 40;
  6886. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSexage;
  6887. iXPos = Number(sLeftBank) + 140;
  6888. iYPos = Number(sTopBank) + 40;
  6889. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sSpclblnm;//검체명
  6890. var dd = getCurrentDate();
  6891. var realdd = dd.substring(4,6) + "/" + dd.substring(6,8);
  6892. var tm = getCurrentTime();
  6893. var realtm = tm.substring(0,2) + ":" + tm.substring(2,4) + ":" + tm.substring(4,6);
  6894. realdd = realdd + " " + realtm;
  6895. iXPos = Number(sLeftBank) + 10;
  6896. iYPos = Number(sTopBank) + 70;
  6897. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + realdd; //라벨발행일시
  6898. sTclslblnmlist = sTclslblnmlist.replace("▨", ",");
  6899. //---------
  6900. iYPos = Number(sTopBank) + 98;
  6901. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTclslblnmlist);
  6902. sSndMsg += "Q" + "1" + "Z";
  6903. CommAX.SendMsg(sSndMsg);
  6904. }//end for
  6905. }
  6906. //model.setValue("/root/hidden/test/enddt", getCurrentTime());
  6907. }
  6908. function fLisTnsrBarcodePrintG2(pRef){
  6909. //SATO 프린터 Font Size 및 위치, 데이터 내용 확인 필요함.. 출력만 되게 해놓았지만 양식에 맞지 않을것임..
  6910. try{
  6911. var vInstance = document.models(0).instances(0);
  6912. var cntHR = vInstance.selectNodes(pRef).length;
  6913. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  6914. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  6915. var iXPos = 0;
  6916. var iYPos = 0;
  6917. var aFlag = new Array(); //한글 영문 구분
  6918. var aStr = "";
  6919. var iWidth = 0;
  6920. var portOpenTF = "";
  6921. if(cntHR > 0 && sPrntKind != "0"){
  6922. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  6923. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  6924. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  6925. if( (portOpenTF == "TRUE" && sCommKind == "02")
  6926. || (sCommKind == "01")
  6927. || (sCommKind == "03")){
  6928. for(i=1 ; i<= cntHR;i++){
  6929. var sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  6930. var sBlodNo = model.getvalue(pRef+ "["+i+"]/blodno");
  6931. var sPid = model.getvalue(pRef+ "["+i+"]/tnsrpid");
  6932. var sPatNm = model.getvalue(pRef+ "["+i+"]/tnsrnm");
  6933. var aSexAge = model.getvalue(pRef+ "["+i+"]/tnssexage");
  6934. var sCMRslt = model.getvalue(pRef+ "["+i+"]/panjung");
  6935. var sAboRh = model.getvalue(pRef+ "["+i+"]/tnsrbtype");
  6936. var sBtype = model.getvalue(pRef+ "["+i+"]/dnbtype");
  6937. var sPrtDD = model.getvalue(pRef+ "["+i+"]/prtdd");
  6938. var sPrtTM = model.getvalue(pRef+ "["+i+"]/prttm");
  6939. var sDnorNm = model.getvalue(pRef+ "["+i+"]/dnornm");
  6940. var sDnsexage = model.getvalue(pRef+ "["+i+"]/dnsexage");
  6941. var sBcolldd = model.getvalue(pRef+ "["+i+"]/bcolldt");
  6942. var sValiDt = model.getvalue(pRef+ "["+i+"]/validt");
  6943. var sTitle = model.getvalue(pRef+ "["+i+"]/title");
  6944. var sAbocd = model.getvalue(pRef+ "["+i+"]/abocd");
  6945. var sBlodbarcd = model.getvalue(pRef+ "["+i+"]/blodbarcd");
  6946. var sBlodbarnm = model.getvalue(pRef+ "["+i+"]/blodbarnm");
  6947. var sBlodVol = model.getvalue(pRef+ "["+i+"]/blodvol");
  6948. var sWardRoom = model.getvalue(pRef+ "["+i+"]/wardroom");
  6949. var sBcollnm = model.getvalue(pRef+ "["+i+"]/bcollnm");
  6950. if (sLeftBank == "" || sLeftBank == "-"){
  6951. sLeftBank = 0;
  6952. }
  6953. if (sTopBank == "" || sTopBank == "-"){
  6954. sTopBank = 0;
  6955. }
  6956. if(sPrntKind == "9"){
  6957. iWidth = 0;
  6958. aStr = "";
  6959. aFlag = new Array();
  6960. aStr = lpzfGetHanGul(sTitle, aFlag);
  6961. for (var iNo=0; iNo < aStr.length; iNo++) {
  6962. if (aFlag[iNo] == "E") {
  6963. iYPos = Number(sTopBank) + 5;
  6964. iXPos = Number(sLeftBank) + 300 + Number(iWidth);
  6965. sSndMsg += lzzfBP_ChangeFont("C", 50, 50);
  6966. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aStr[iNo]);
  6967. iWidth = iWidth + (Number(aStr[iNo].length) * 50);
  6968. } else {
  6969. iYPos = Number(sTopBank) + 5;
  6970. iXPos = Number(sLeftBank) + 300 + Number(iWidth);
  6971. sSndMsg += "^CI14^FO"+ iXPos +","+ iYPos +"^AQN,50,50^FH^FD" + aStr[iNo] + "^FS^CI1";
  6972. iWidth = iWidth + (Number(aStr[iNo].length) * 50);
  6973. }
  6974. }
  6975. iXPos = Number(sLeftBank) + 105;
  6976. iYPos = Number(sTopBank) + 90;
  6977. sSndMsg += lzzfBP_ChangeFont("C", 80, 40); // 폰트 설정
  6978. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sAboRh);
  6979. iXPos = Number(sLeftBank) + 320;
  6980. iYPos = Number(sTopBank) + 70;
  6981. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  6982. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 100, "*" + sAbocd + "*");
  6983. iXPos = Number(sLeftBank) + 380;
  6984. iYPos = Number(sTopBank) + 175;
  6985. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  6986. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sAbocd + "*");
  6987. iXPos = Number(sLeftBank) + 150;
  6988. iYPos = Number(sTopBank) + 240;
  6989. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  6990. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 100, "*" + sBlodNo + "*");
  6991. iXPos = Number(sLeftBank) + 250;
  6992. iYPos = Number(sTopBank) + 345;
  6993. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  6994. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBlodNo + "*");
  6995. iXPos = Number(sLeftBank) + 130;
  6996. iYPos = Number(sTopBank) + 390;
  6997. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  6998. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodbarnm.substring(0, 20));
  6999. iXPos = Number(sLeftBank) + 220;
  7000. iYPos = Number(sTopBank) + 430;
  7001. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  7002. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 100, "*" + sBlodbarcd + "*");
  7003. iXPos = Number(sLeftBank) + 270;
  7004. iYPos = Number(sTopBank) + 535;
  7005. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  7006. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBlodbarcd + "*");
  7007. iYPos = Number(sTopBank) + 240;
  7008. iXPos = Number(sLeftBank) + 830;
  7009. sSndMsg += lzzfBP_ChangeFont("C", 30, 20);
  7010. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  7011. iWidth = 0;
  7012. aStr = "";
  7013. aFlag = new Array();
  7014. aStr = lpzfGetHanGul(sPatNm, aFlag);
  7015. for (var iNo=0; iNo < aStr.length; iNo++) {
  7016. if (aFlag[iNo] == "E") {
  7017. iYPos = Number(sTopBank) + 310;
  7018. iXPos = Number(sLeftBank) + 840 + Number(iWidth);
  7019. sSndMsg += lzzfBP_ChangeFont("C", 40, 40);
  7020. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aStr[iNo]);
  7021. iWidth = iWidth + (Number(aStr[iNo].length) * 40);
  7022. } else {
  7023. iYPos = Number(sTopBank) + 310;
  7024. iXPos = Number(sLeftBank) + 840 + Number(iWidth);
  7025. sSndMsg += "^CI14^FO"+ iXPos +","+ iYPos +"^AQN,40,40^FH^FD" + aStr[iNo] + "^FS^CI1";
  7026. iWidth = iWidth + (Number(aStr[iNo].length) * 40);
  7027. }
  7028. }
  7029. iYPos = Number(sTopBank) + 380;
  7030. iXPos = Number(sLeftBank) + 800;
  7031. sSndMsg += lzzfBP_ChangeFont("C", 30, 20);
  7032. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPrtDD.substring(0, 4) + "-" + sPrtDD.substring(4, 6) + "-" + sPrtDD.substring(6, 8));
  7033. iYPos = Number(sTopBank) + 450;
  7034. iXPos = Number(sLeftBank) + 800;
  7035. sSndMsg += lzzfBP_ChangeFont("C", 30, 20);
  7036. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sValiDt.substring(0, 4) + "-" + sValiDt.substring(4, 6) + "-" + sValiDt.substring(6, 8));
  7037. iWidth = 0;
  7038. aStr = "";
  7039. aFlag = new Array();
  7040. aStr = lpzfGetHanGul(sBcollnm, aFlag);
  7041. for (var iNo=0; iNo < aStr.length; iNo++) {
  7042. if (aFlag[iNo] == "E") {
  7043. iYPos = Number(sTopBank) + 520;
  7044. iXPos = Number(sLeftBank) + 840 + Number(iWidth);
  7045. sSndMsg += lzzfBP_ChangeFont("C", 40, 40);
  7046. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, aStr[iNo]);
  7047. iWidth = iWidth + (Number(aStr[iNo].length) * 40);
  7048. } else {
  7049. iYPos = Number(sTopBank) + 520;
  7050. iXPos = Number(sLeftBank) + 840 + Number(iWidth);
  7051. sSndMsg += "^CI14^FO"+ iXPos +","+ iYPos +"^AQN,40,40^FH^FD" + aStr[iNo] + "^FS^CI1";
  7052. iWidth = iWidth + (Number(aStr[iNo].length) * 40);
  7053. }
  7054. }
  7055. sSndMsg += lzzfBP_EndFormat("1");
  7056. CommAX.SendMsg(sSndMsg);
  7057. }
  7058. }
  7059. }
  7060. }
  7061. }catch(ee) {
  7062. messageBox("바코드출력에", "E009");
  7063. return;
  7064. }
  7065. }
  7066. /**
  7067. * 혈액은행 바코드 출력 (헌혈 혈액백)
  7068. */
  7069. function fLisTnsrBarcodePrintG(pRef){
  7070. //SATO 프린터 Font Size 및 위치, 데이터 내용 확인 필요함.. 출력만 되게 해놓았지만 양식에 맞지 않을것임..
  7071. try{
  7072. var vInstance = document.models(0).instances(0);
  7073. var cntHR = vInstance.selectNodes(pRef).length;
  7074. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  7075. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  7076. var iXPos = 0;
  7077. var iYPos = 0;
  7078. var portOpenTF = "";
  7079. if(cntHR > 0 && sPrntKind != "0"){
  7080. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  7081. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  7082. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  7083. if(sCommKind == "01") {
  7084. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  7085. } else if(sCommKind == "02") {
  7086. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  7087. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  7088. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  7089. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  7090. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  7091. CommAX.CommPort = sComm;
  7092. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  7093. portOpenTF = CommAX.PortOpen("true");
  7094. } else if(sCommKind == "03") {
  7095. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  7096. }
  7097. if( (portOpenTF == "TRUE" && sCommKind == "02")
  7098. || (sCommKind == "01")
  7099. || (sCommKind == "03")){
  7100. for(i=1 ; i<= cntHR;i++){
  7101. var sSndMsg = "";
  7102. var sBlodNo = model.getvalue(pRef+ "["+i+"]/blodno");
  7103. var sPid = model.getvalue(pRef+ "["+i+"]/tnsrpid");
  7104. var sPatNm = model.getvalue(pRef+ "["+i+"]/tnsrnm");
  7105. var aSexAge = model.getvalue(pRef+ "["+i+"]/tnssexage");
  7106. var sCMRslt = model.getvalue(pRef+ "["+i+"]/panjung");
  7107. var sAboRh = model.getvalue(pRef+ "["+i+"]/tnsrbtype");
  7108. var sBtype = model.getvalue(pRef+ "["+i+"]/dnbtype");
  7109. var sPrtDD = model.getvalue(pRef+ "["+i+"]/prtdd");
  7110. var sPrtTM = model.getvalue(pRef+ "["+i+"]/prttm");
  7111. var sDnorNm = model.getvalue(pRef+ "["+i+"]/dnornm");
  7112. var sDnsexage = model.getvalue(pRef+ "["+i+"]/dnsexage");
  7113. var sBcolldd = model.getvalue(pRef+ "["+i+"]/bcolldt");
  7114. var sValiDt = model.getvalue(pRef+ "["+i+"]/validt");
  7115. var sTitle = model.getvalue(pRef+ "["+i+"]/title");
  7116. var sAbocd = model.getvalue(pRef+ "["+i+"]/abocd");
  7117. var sBlodbarcd = model.getvalue(pRef+ "["+i+"]/blodbarcd");
  7118. var sBlodbarnm = model.getvalue(pRef+ "["+i+"]/blodbarnm");
  7119. var sBlodVol = model.getvalue(pRef+ "["+i+"]/blodvol");
  7120. var sWardRoom = model.getvalue(pRef+ "["+i+"]/wardroom");
  7121. var sBcollnm = model.getvalue(pRef+ "["+i+"]/bcollnm");
  7122. if (sLeftBank == "" || sLeftBank == "-"){
  7123. sLeftBank = 0;
  7124. }
  7125. if (sTopBank == "" || sTopBank == "-"){
  7126. sTopBank = 0;
  7127. }
  7128. if(sPrntKind == "1" || sPrntKind == "5") {
  7129. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅 ★ 중요함
  7130. iXPos = Number(sLeftBank) + 100;
  7131. iYPos = Number(sTopBank) + 50;
  7132. sSndMsg += fCarePrintOutH(iXPos, iYPos, 2, "N", sTitle, ""); // 타이틀----
  7133. iXPos = Number(sLeftBank) + 540;
  7134. iYPos = Number(sTopBank) + 85;
  7135. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  7136. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodVol + "ml"); //헌혈한 용량
  7137. iXPos = Number(sLeftBank) + 90;
  7138. iYPos = Number(sTopBank) + 150;
  7139. sSndMsg += lzzfBP_ChangeFont("C", 80, 30); // 폰트 설정 ----
  7140. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); //공여자혈액형----
  7141. iXPos = Number(sLeftBank) + 175;
  7142. iYPos = Number(sTopBank) + 140;
  7143. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);//----
  7144. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 80, "*" + sAbocd + "*"); // 바코드----
  7145. iXPos = Number(sLeftBank) + 220;
  7146. iYPos = Number(sTopBank) + 225;
  7147. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정----
  7148. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sAbocd + "*"); //공여자혈액형----
  7149. if(sBlodNo != ""){
  7150. iXPos = Number(sLeftBank) + 110;
  7151. iYPos = Number(sTopBank) + 295;
  7152. sSndMsg += "^FO"+iXPos+","+iYPos; // 80 가로, 275세로
  7153. sSndMsg += "^BY2,3.0"; // 크기 2 3= 3:1 배율
  7154. sSndMsg += "^B2N,80,N,N,N^FD" + "*" + sBlodNo + "*" + "^FS";
  7155. iXPos = Number(sLeftBank) + 125;
  7156. iYPos = Number(sTopBank) + 385;
  7157. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정----
  7158. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBlodNo + "*"); //혈액번호----
  7159. iXPos = Number(sLeftBank) + 30;
  7160. iYPos = Number(sTopBank) + 460;
  7161. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정----
  7162. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodbarnm); //성분제제명----
  7163. iXPos = Number(sLeftBank) + 90;
  7164. iYPos = Number(sTopBank) + 480;
  7165. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);//----
  7166. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 80, "*" + sBlodbarcd + "*"); // 바코드----
  7167. iXPos = Number(sLeftBank) + 140;
  7168. iYPos = Number(sTopBank) + 565;
  7169. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  7170. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*" + sBlodbarcd + "*"); //성분제제코드----
  7171. }
  7172. if(sCommKind == "01") {
  7173. CommAX.SendMessageToLPT(sSndMsg);
  7174. } else if(sCommKind == "02") {
  7175. CommAX.SendMessage(sSndMsg);
  7176. }
  7177. sSndMsg = "";
  7178. iXPos = Number(sLeftBank) + 470;
  7179. iYPos = Number(sTopBank) + 300;
  7180. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정----
  7181. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBcolldd.substr(0, 4) + "-" + sBcolldd.substr(4, 2) + "-" + sBcolldd.substr(6, 2)); //채혈년월일 ----
  7182. iXPos = Number(sLeftBank) + 470;
  7183. iYPos = Number(sTopBank) + 330;
  7184. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBcolldd.substr(8, 2) + ":" + sBcolldd.substr(10, 2)); //채혈시간 ----
  7185. iXPos = Number(sLeftBank) + 470;
  7186. iYPos = Number(sTopBank) + 380;
  7187. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정----
  7188. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sValiDt.substr(0, 4) + "-" + sValiDt.substr(4, 2) + "-" + sValiDt.substr(6, 2)); //유효일자----
  7189. iXPos = Number(sLeftBank) + 470;
  7190. iYPos = Number(sTopBank) + 410;
  7191. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sValiDt.substr(8, 2) + ":" + sValiDt.substr(10, 2)); //유효시간----
  7192. iXPos = Number(sLeftBank) + 470;
  7193. iYPos = Number(sTopBank) + 465;
  7194. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정----
  7195. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //등록번호----
  7196. iXPos = Number(sLeftBank) + 470;
  7197. iYPos = Number(sTopBank) + 515;
  7198. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm.substr(0, 20), 1, 1);
  7199. sSndMsg += CommAX.HanImageData();
  7200. iXPos = Number(sLeftBank) + 560;
  7201. iYPos = Number(sTopBank) + 510;
  7202. sSndMsg += lzzfBP_ChangeFont("C", 40, 20); // 폰트 설정----
  7203. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sAboRh); //환자혈액형----
  7204. if(sBlodNo != ""){
  7205. iXPos = Number(sLeftBank) + 470;
  7206. iYPos = Number(sTopBank) + 580;
  7207. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sDnorNm.substr(0, 20), 1, 1);
  7208. sSndMsg += CommAX.HanImageData();
  7209. iXPos = Number(sLeftBank) + 560;
  7210. iYPos = Number(sTopBank) + 575;
  7211. sSndMsg += lzzfBP_ChangeFont("C", 40, 20); // 폰트 설정 ----
  7212. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); //공여자혈액형----
  7213. }
  7214. if(sCommKind == "01") {
  7215. CommAX.SendMessageToLPT(sSndMsg);
  7216. } else if(sCommKind == "02") {
  7217. CommAX.SendMessage(sSndMsg);
  7218. sSndMsg = "";
  7219. }
  7220. //보관방법, 사용방법, 혈소판 or 백혈구 수
  7221. var sText11, sText12, sText13, sText14, sText15, sText21, sText22, sText23, sText24, sText25, sText31, sText32, sText33, sText34, sText35;
  7222. if(sBlodbarcd =="A0003"){ //HPC
  7223. //var sText1 = "* 보관 방법 : 약한 교반으로 20~24도 보관 " ;
  7224. //var sText2 = "* 사용 방법 : 제조후 120시간이내 혈소판 수혈세트 사용
  7225. // 정맥 수혈" ;
  7226. //var sText3 = "* 혈소판 수 : ( X 10 ) 용량 ( )ml" ;
  7227. //alert("sText1= " + sText1);
  7228. sText11 = "보관 방법";
  7229. sText12 = "약한 교반으로";
  7230. sText13 = "20-24";
  7231. sText14 = "도 보관";
  7232. sText15 = ":"
  7233. sText21 = "사용 방법";
  7234. sText25 = "제조후";
  7235. sText22 = "120";
  7236. sText23 = "시간이내 혈소판 수혈세트 사용";
  7237. sText24 = "정맥 수혈";
  7238. sText31 = "혈소판 수";
  7239. sText32 = "( X )";
  7240. sText33 = "용량";
  7241. sText34 = "( )ml";
  7242. sText35 = "11";
  7243. }else if(sBlodbarcd =="A0004"){ //DGI
  7244. //var sText1 = "* 보관 방법: 실온보관 " ;
  7245. //var sText2 = "* 사용 방법: 제조후 즉시, PRP세트 사용
  7246. // 정맥수혈" ;
  7247. //var sText3 = "* 백혈구수 ( X ) 용량 ( )ml ]" ;
  7248. sText11 = "보관 방법";
  7249. sText12 = "실온보관";
  7250. sText15 = ":"
  7251. sText21 = "사용 방법";
  7252. sText25 = "제조후 즉시,";
  7253. sText22 = "PRP";
  7254. sText23 = "세트 사용";
  7255. sText24 = "정맥 수혈";
  7256. sText31 = "백혈구 수";
  7257. sText32 = "( X )";
  7258. sText33 = "용량";
  7259. sText34 = "( )ml";
  7260. sText35 = "11";
  7261. }else if((sBlodbarcd =="A0001") || (sBlodbarcd =="A0002") || (sBlodbarcd =="04064")){ // 자가, 전혈
  7262. //var sText1 = "* 보관 방법 / 1 6도 보관 " ;
  7263. //var sText2 = "* 사용 방법 / 수혈세트 사용하여 정맥 수혈" ;
  7264. //var sText3 = "* 용 량 / 365 +- 32ml" ;
  7265. ///var sText1 = " 보관 방법 섭씨 1에서 6도 보관 ";
  7266. var sText41 = "보관 방법";
  7267. var sText42 = "1-6";
  7268. var sText43 = "도 보관";
  7269. //var sText2 = " 사용 방법 수혈세트 사용하여 정맥 수혈";
  7270. var sText51 = "사용 방법";
  7271. var sText52 = "수혈세트";
  7272. var sText53 = "사용하여";
  7273. var sText54 = "정맥 수혈";
  7274. //var sText3 = " 용 량 365 32ml";
  7275. var sText61 = "용 량"
  7276. var sText62 = "365 + 32ml";
  7277. //var sText63 = "+";
  7278. var sText64 = "_";
  7279. }
  7280. if((sBlodbarcd =="A0003") || (sBlodbarcd =="A0004")){ //HPC, DGI
  7281. //1째줄
  7282. iXPos = Number(sLeftBank) + 30;
  7283. iYPos = Number(sTopBank) + 695;
  7284. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText11, 1, 1); // 보관 방법
  7285. sSndMsg += CommAX.HanImageData();
  7286. iXPos = Number(sLeftBank) + 155;
  7287. iYPos = Number(sTopBank) + 700;
  7288. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); //:
  7289. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText15);
  7290. iXPos = Number(sLeftBank) + 172;
  7291. iYPos = Number(sTopBank) + 695;
  7292. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText12, 1, 1); // 약한 교반으로 or 실온보관
  7293. sSndMsg += CommAX.HanImageData();
  7294. if(sBlodbarcd =="A0003"){
  7295. iXPos = Number(sLeftBank) + 350;
  7296. iYPos = Number(sTopBank) + 700;
  7297. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); //20-24 --혈소판
  7298. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText13);
  7299. iXPos = Number(sLeftBank) + 420;
  7300. iYPos = Number(sTopBank) + 695;
  7301. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText14, 1, 1); // 도 보관 --혈소
  7302. sSndMsg += CommAX.HanImageData();
  7303. }
  7304. if(sCommKind == "01") {
  7305. CommAX.SendMessageToLPT(sSndMsg);
  7306. } else if(sCommKind == "02") {
  7307. CommAX.SendMessage(sSndMsg);
  7308. }
  7309. sSndMsg = "";
  7310. //2째줄
  7311. iXPos = Number(sLeftBank) + 30;
  7312. iYPos = Number(sTopBank) + 723;
  7313. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText21, 1, 1); // 사용 방법
  7314. sSndMsg += CommAX.HanImageData();
  7315. iXPos = Number(sLeftBank) + 155;
  7316. iYPos = Number(sTopBank) + 728;
  7317. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); //:
  7318. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText15);
  7319. iXPos = Number(sLeftBank) + 172;
  7320. iYPos = Number(sTopBank) + 723;
  7321. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText25, 1, 1); // 제조후 or 제조후 즉시
  7322. sSndMsg += CommAX.HanImageData();
  7323. if(sBlodbarcd =="A0003"){ //HPC
  7324. iXPos = Number(sLeftBank) + 250;
  7325. iYPos = Number(sTopBank) + 728;
  7326. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 120
  7327. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, sText22);
  7328. iXPos = Number(sLeftBank) + 290;
  7329. iYPos = Number(sTopBank) + 723;
  7330. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText23, 1, 1); // 시간이내 혈소판 수혈세트
  7331. sSndMsg += CommAX.HanImageData();
  7332. }else{ //DGI
  7333. iXPos = Number(sLeftBank) + 340;
  7334. iYPos = Number(sTopBank) + 728;
  7335. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // PRP
  7336. sSndMsg += lzzfBP_FieldDataA(iXPos , iYPos, sText22);
  7337. iXPos = Number(sLeftBank) + 380;
  7338. iYPos = Number(sTopBank) + 723;
  7339. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText23, 1, 1); // 세트사용
  7340. sSndMsg += CommAX.HanImageData();
  7341. }
  7342. //3째줄
  7343. iXPos = Number(sLeftBank) + 172;
  7344. iYPos = Number(sTopBank) + 751;
  7345. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText24, 1, 1); // 정맥 수혈
  7346. sSndMsg += CommAX.HanImageData();
  7347. if(sCommKind == "01") {
  7348. CommAX.SendMessageToLPT(sSndMsg);
  7349. } else if(sCommKind == "02") {
  7350. CommAX.SendMessage(sSndMsg);
  7351. }
  7352. sSndMsg = "";
  7353. //4째줄
  7354. iXPos = Number(sLeftBank) + 30;
  7355. iYPos = Number(sTopBank) + 775;
  7356. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText31, 1, 1); // 혈소판 수
  7357. sSndMsg += CommAX.HanImageData();
  7358. iXPos = Number(sLeftBank) + 155;
  7359. iYPos = Number(sTopBank) + 780;
  7360. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); //:
  7361. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText15);
  7362. iXPos = Number(sLeftBank) + 170;
  7363. iYPos = Number(sTopBank) + 780;
  7364. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // ( X )
  7365. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText32);
  7366. iXPos = Number(sLeftBank) + 300;
  7367. iYPos = Number(sTopBank) + 770;
  7368. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); //
  7369. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText35); // 11
  7370. iXPos = Number(sLeftBank) + 250;
  7371. iYPos = Number(sTopBank) + 780;
  7372. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); //
  7373. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "10"); // 10
  7374. iXPos = Number(sLeftBank) + 360;
  7375. iYPos = Number(sTopBank) + 775;
  7376. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText33, 1, 1); // 용량
  7377. sSndMsg += CommAX.HanImageData();
  7378. iXPos = Number(sLeftBank) + 420;
  7379. iYPos = Number(sTopBank) + 780;
  7380. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // ( )ml
  7381. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText34);
  7382. iXPos = Number(sLeftBank) + 450;
  7383. iYPos = Number(sTopBank) + 780;
  7384. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBlodVol);
  7385. if(sCommKind == "01") {
  7386. CommAX.SendMessageToLPT(sSndMsg);
  7387. } else if(sCommKind == "02") {
  7388. CommAX.SendMessage(sSndMsg);
  7389. }
  7390. sSndMsg = "";
  7391. }else if((sBlodbarcd =="A0001") || (sBlodbarcd =="A0002") || (sBlodbarcd =="04064")){
  7392. // 1째줄
  7393. iXPos = Number(sLeftBank) + 24;
  7394. iYPos = Number(sTopBank) + 705;
  7395. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText41, 1, 1); // 보관 방법
  7396. sSndMsg += CommAX.HanImageData();
  7397. iXPos = Number(sLeftBank) + 170;
  7398. iYPos = Number(sTopBank) + 710;
  7399. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); //1-6
  7400. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText42);
  7401. iXPos = Number(sLeftBank) + 210;
  7402. iYPos = Number(sTopBank) + 705;
  7403. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText43, 1, 1); // 도 보관
  7404. sSndMsg += CommAX.HanImageData();
  7405. if(sCommKind == "01") {
  7406. CommAX.SendMessageToLPT(sSndMsg);
  7407. } else if(sCommKind == "02") {
  7408. CommAX.SendMessage(sSndMsg);
  7409. }
  7410. sSndMsg = "";
  7411. // 2째줄
  7412. iXPos = Number(sLeftBank) + 24;
  7413. iYPos = Number(sTopBank) + 740;
  7414. sSndMsg += CommAX.PrtImgOut(iXPos , iYPos, sText51, 1, 1); // 사용 방법
  7415. sSndMsg += CommAX.HanImageData();
  7416. iXPos = Number(sLeftBank) + 170;
  7417. iYPos = Number(sTopBank) + 740;
  7418. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText52, 1, 1); // 수혈세트
  7419. sSndMsg += CommAX.HanImageData();
  7420. iXPos = Number(sLeftBank) + 290;
  7421. iYPos = Number(sTopBank) + 740;
  7422. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText53, 1, 1); // 사용하여
  7423. sSndMsg += CommAX.HanImageData();
  7424. iXPos = Number(sLeftBank) + 410;
  7425. iYPos = Number(sTopBank) + 740;
  7426. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText54, 1, 1); // 정맥 수혈
  7427. sSndMsg += CommAX.HanImageData();
  7428. if(sCommKind == "01") {
  7429. CommAX.SendMessageToLPT(sSndMsg);
  7430. } else if(sCommKind == "02") {
  7431. CommAX.SendMessage(sSndMsg);
  7432. }
  7433. sSndMsg = "";
  7434. //3째줄
  7435. iXPos = Number(sLeftBank) + 24;
  7436. iYPos = Number(sTopBank) + 775;
  7437. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText61, 1, 1); // 용 량
  7438. sSndMsg += CommAX.HanImageData();
  7439. iXPos = Number(sLeftBank) + 170;
  7440. iYPos = Number(sTopBank) + 780;
  7441. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 365 + 32ml
  7442. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText62);
  7443. iXPos = Number(sLeftBank) + 218;
  7444. iYPos = Number(sTopBank) + 780;
  7445. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // _
  7446. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sText64);
  7447. if(sCommKind == "01") {
  7448. CommAX.SendMessageToLPT(sSndMsg);
  7449. } else if(sCommKind == "02") {
  7450. CommAX.SendMessage(sSndMsg);
  7451. }
  7452. sSndMsg = "";
  7453. }
  7454. sSndMsg += lzzfBP_EndFormat();
  7455. if(sCommKind == "01") {
  7456. CommAX.SendMessageToLPT(sSndMsg);
  7457. } else if(sCommKind == "02") {
  7458. CommAX.SendMessage(sSndMsg);
  7459. }
  7460. }//======================================== S = A = T = O ====================================================================================
  7461. else if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){ //SATO
  7462. sSndMsg = "AA103500500"; // 시작위치 셋팅
  7463. iXPos = Number(sLeftBank) + 100;
  7464. iYPos = Number(sTopBank) + 50;
  7465. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sTitle; //타이틀
  7466. iXPos = Number(sLeftBank) + 540;
  7467. iYPos = Number(sTopBank) + 85;
  7468. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBlodVol + "ml";//헌혈한 용량
  7469. iXPos = Number(sLeftBank) + 90;
  7470. iYPos = Number(sTopBank) + 150;
  7471. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBtype;//공여자혈액형----
  7472. iXPos = Number(sLeftBank) + 175;
  7473. iYPos = Number(sTopBank) + 140;
  7474. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02100" + sAbocd; // 바코드
  7475. iXPos = Number(sLeftBank) + 220;
  7476. iYPos = Number(sTopBank) + 225;
  7477. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정----
  7478. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*" + sAbocd + "*";//공여자혈액형----
  7479. if(sBlodNo != ""){
  7480. iXPos = Number(sLeftBank) + 110;
  7481. iYPos = Number(sTopBank) + 295;
  7482. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*" + sBlodNo + "*";
  7483. iXPos = Number(sLeftBank) + 125;
  7484. iYPos = Number(sTopBank) + 385;
  7485. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*" + sBlodNo + "*";//혈액번호----
  7486. iXPos = Number(sLeftBank) + 30;
  7487. iYPos = Number(sTopBank) + 460;
  7488. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBlodbarnm;//성분제제명----
  7489. iXPos = Number(sLeftBank) + 90;
  7490. iYPos = Number(sTopBank) + 480;
  7491. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02100" + sBlodbarcd; // 바코드
  7492. iXPos = Number(sLeftBank) + 140;
  7493. iYPos = Number(sTopBank) + 565;
  7494. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*" + sBlodbarcd + "*";
  7495. }
  7496. iXPos = Number(sLeftBank) + 470;
  7497. iYPos = Number(sTopBank) + 300;
  7498. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBcolldd.substr(0, 4) + "-" + sBcolldd.substr(4, 2) + "-" + sBcolldd.substr(6, 2);//채혈년월일 ----
  7499. iXPos = Number(sLeftBank) + 470;
  7500. iYPos = Number(sTopBank) + 330;
  7501. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBcolldd.substr(8, 2) + ":" + sBcolldd.substr(10, 2);//채혈시간 ----
  7502. iXPos = Number(sLeftBank) + 470;
  7503. iYPos = Number(sTopBank) + 380;
  7504. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sValiDt.substr(0, 4) + "-" + sValiDt.substr(4, 2) + "-" + sValiDt.substr(6, 2); //유효일자----
  7505. iXPos = Number(sLeftBank) + 470;
  7506. iYPos = Number(sTopBank) + 410;
  7507. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sValiDt.substr(8, 2) + ":" + sValiDt.substr(10, 2);//유효시간----
  7508. iXPos = Number(sLeftBank) + 470;
  7509. iYPos = Number(sTopBank) + 465;
  7510. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid; //등록번호----
  7511. iXPos = Number(sLeftBank) + 470;
  7512. iYPos = Number(sTopBank) + 515;
  7513. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm.substr(0, 20), 1, 1);
  7514. iXPos = Number(sLeftBank) + 560;
  7515. iYPos = Number(sTopBank) + 510;
  7516. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sAboRh; //환자혈액형----
  7517. if(sBlodNo != ""){
  7518. iXPos = Number(sLeftBank) + 470;
  7519. iYPos = Number(sTopBank) + 580;
  7520. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sDnorNm.substr(0, 20), 1, 1);
  7521. iXPos = Number(sLeftBank) + 560;
  7522. iYPos = Number(sTopBank) + 575;
  7523. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBtype; //공여자혈액형----
  7524. }
  7525. //보관방법, 사용방법, 혈소판 or 백혈구 수
  7526. var sText11, sText12, sText13, sText14, sText15, sText21, sText22, sText23, sText24, sText25, sText31, sText32, sText33, sText34, sText35;
  7527. if(sBlodbarcd =="A0003"){ //HPC
  7528. //var sText1 = "* 보관 방법 : 약한 교반으로 20~24도 보관 " ;
  7529. //var sText2 = "* 사용 방법 : 제조후 120시간이내 혈소판 수혈세트 사용
  7530. // 정맥 수혈" ;
  7531. //var sText3 = "* 혈소판 수 : ( X 10 ) 용량 ( )ml" ;
  7532. //alert("sText1= " + sText1);
  7533. sText11 = "보관 방법";
  7534. sText12 = "약한 교반으로";
  7535. sText13 = "20-24";
  7536. sText14 = "도 보관";
  7537. sText15 = ":"
  7538. sText21 = "사용 방법";
  7539. sText25 = "제조후";
  7540. sText22 = "120";
  7541. sText23 = "시간이내 혈소판 수혈세트 사용";
  7542. sText24 = "정맥 수혈";
  7543. sText31 = "혈소판 수";
  7544. sText32 = "( X )";
  7545. sText33 = "용량";
  7546. sText34 = "( )ml";
  7547. sText35 = "11";
  7548. }else if(sBlodbarcd =="A0004"){ //DGI
  7549. //var sText1 = "* 보관 방법: 실온보관 " ;
  7550. //var sText2 = "* 사용 방법: 제조후 즉시, PRP세트 사용
  7551. // 정맥수혈" ;
  7552. //var sText3 = "* 백혈구수 ( X ) 용량 ( )ml ]" ;
  7553. sText11 = "보관 방법";
  7554. sText12 = "실온보관";
  7555. sText15 = ":"
  7556. sText21 = "사용 방법";
  7557. sText25 = "제조후 즉시,";
  7558. sText22 = "PRP";
  7559. sText23 = "세트 사용";
  7560. sText24 = "정맥 수혈";
  7561. sText31 = "백혈구 수";
  7562. sText32 = "( X )";
  7563. sText33 = "용량";
  7564. sText34 = "( )ml";
  7565. sText35 = "11";
  7566. }else if((sBlodbarcd =="A0001") || (sBlodbarcd =="A0002") || (sBlodbarcd =="04064")){ // 자가, 전혈
  7567. //var sText1 = "* 보관 방법 / 1 6도 보관 " ;
  7568. //var sText2 = "* 사용 방법 / 수혈세트 사용하여 정맥 수혈" ;
  7569. //var sText3 = "* 용 량 / 365 +- 32ml" ;
  7570. ///var sText1 = " 보관 방법 섭씨 1에서 6도 보관 ";
  7571. var sText41 = "보관 방법";
  7572. var sText42 = "1-6";
  7573. var sText43 = "도 보관";
  7574. //var sText2 = " 사용 방법 수혈세트 사용하여 정맥 수혈";
  7575. var sText51 = "사용 방법";
  7576. var sText52 = "수혈세트";
  7577. var sText53 = "사용하여";
  7578. var sText54 = "정맥 수혈";
  7579. //var sText3 = " 용 량 365 32ml";
  7580. var sText61 = "용 량"
  7581. var sText62 = "365 + 32ml";
  7582. //var sText63 = "+";
  7583. var sText64 = "_";
  7584. }
  7585. if((sBlodbarcd =="A0003") || (sBlodbarcd =="A0004")){ //HPC, DGI
  7586. //1째줄
  7587. iXPos = Number(sLeftBank) + 30;
  7588. iYPos = Number(sTopBank) + 695;
  7589. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText11, 1, 1); // 보관 방법
  7590. iXPos = Number(sLeftBank) + 155;
  7591. iYPos = Number(sTopBank) + 700;
  7592. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText15;
  7593. iXPos = Number(sLeftBank) + 172;
  7594. iYPos = Number(sTopBank) + 695;
  7595. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText12, 1, 1); // 약한 교반으로 or 실온보관
  7596. if(sBlodbarcd =="A0003"){
  7597. iXPos = Number(sLeftBank) + 350;
  7598. iYPos = Number(sTopBank) + 700;
  7599. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText13; //혈소판
  7600. iXPos = Number(sLeftBank) + 420;
  7601. iYPos = Number(sTopBank) + 695;
  7602. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText14, 1, 1); // 도 보관 --혈소
  7603. }
  7604. //2째줄
  7605. iXPos = Number(sLeftBank) + 30;
  7606. iYPos = Number(sTopBank) + 723;
  7607. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText21, 1, 1); // 사용 방법
  7608. iXPos = Number(sLeftBank) + 155;
  7609. iYPos = Number(sTopBank) + 728;
  7610. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText15;
  7611. iXPos = Number(sLeftBank) + 172;
  7612. iYPos = Number(sTopBank) + 723;
  7613. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText25, 1, 1); // 제조후 or 제조후 즉시
  7614. if(sBlodbarcd =="A0003"){ //HPC
  7615. iXPos = Number(sLeftBank) + 250;
  7616. iYPos = Number(sTopBank) + 728;
  7617. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText22;
  7618. iXPos = Number(sLeftBank) + 290;
  7619. iYPos = Number(sTopBank) + 723;
  7620. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText23, 1, 1); // 시간이내 혈소판 수혈세트
  7621. }else{ //DGI
  7622. iXPos = Number(sLeftBank) + 340;
  7623. iYPos = Number(sTopBank) + 728;
  7624. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText22;// PRP
  7625. iXPos = Number(sLeftBank) + 380;
  7626. iYPos = Number(sTopBank) + 723;
  7627. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText23, 1, 1); // 세트사용
  7628. }
  7629. //3째줄
  7630. iXPos = Number(sLeftBank) + 172;
  7631. iYPos = Number(sTopBank) + 751;
  7632. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText24, 1, 1); // 정맥 수혈
  7633. //4째줄
  7634. iXPos = Number(sLeftBank) + 30;
  7635. iYPos = Number(sTopBank) + 775;
  7636. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText31, 1, 1); // 혈소판 수
  7637. iXPos = Number(sLeftBank) + 155;
  7638. iYPos = Number(sTopBank) + 780;
  7639. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText15;//:
  7640. iXPos = Number(sLeftBank) + 170;
  7641. iYPos = Number(sTopBank) + 780;
  7642. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  7643. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText32; // ( X )
  7644. iXPos = Number(sLeftBank) + 300;
  7645. iYPos = Number(sTopBank) + 770;
  7646. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText35; // 11
  7647. iXPos = Number(sLeftBank) + 250;
  7648. iYPos = Number(sTopBank) + 780;
  7649. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "10"; // 10
  7650. iXPos = Number(sLeftBank) + 360;
  7651. iYPos = Number(sTopBank) + 775;
  7652. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText33, 1, 1); // 용량
  7653. iXPos = Number(sLeftBank) + 420;
  7654. iYPos = Number(sTopBank) + 780;
  7655. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText34; // ( )ml
  7656. iXPos = Number(sLeftBank) + 450;
  7657. iYPos = Number(sTopBank) + 780;
  7658. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBlodVol;
  7659. }else if((sBlodbarcd =="A0001") || (sBlodbarcd =="A0002") || (sBlodbarcd =="04064")){
  7660. // 1째줄
  7661. iXPos = Number(sLeftBank) + 24;
  7662. iYPos = Number(sTopBank) + 705;
  7663. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText41, 1, 1); // 보관 방법
  7664. iXPos = Number(sLeftBank) + 170;
  7665. iYPos = Number(sTopBank) + 710;
  7666. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText42;//1-6
  7667. iXPos = Number(sLeftBank) + 210;
  7668. iYPos = Number(sTopBank) + 705;
  7669. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText43, 1, 1); // 도 보관
  7670. // 2째줄
  7671. iXPos = Number(sLeftBank) + 24;
  7672. iYPos = Number(sTopBank) + 740;
  7673. sSndMsg += CommAX.PrtImgOut(iXPos , iYPos, sText51, 1, 1); // 사용 방법
  7674. iXPos = Number(sLeftBank) + 170;
  7675. iYPos = Number(sTopBank) + 740;
  7676. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText52, 1, 1); // 수혈세트
  7677. iXPos = Number(sLeftBank) + 290;
  7678. iYPos = Number(sTopBank) + 740;
  7679. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText53, 1, 1); // 사용하여
  7680. iXPos = Number(sLeftBank) + 410;
  7681. iYPos = Number(sTopBank) + 740;
  7682. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText54, 1, 1); // 정맥 수혈
  7683. //3째줄
  7684. iXPos = Number(sLeftBank) + 24;
  7685. iYPos = Number(sTopBank) + 775;
  7686. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sText61, 1, 1); // 용 량
  7687. iXPos = Number(sLeftBank) + 170;
  7688. iYPos = Number(sTopBank) + 780;
  7689. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText62;// 365 + 32ml
  7690. iXPos = Number(sLeftBank) + 218;
  7691. iYPos = Number(sTopBank) + 780;
  7692. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sText64; // _
  7693. }
  7694. sSndMsg += "Q" + "1" + "Z";
  7695. //alert(sSndMsg);
  7696. CommAX.SendMsg(sSndMsg);
  7697. }// end sato
  7698. //===============================================================================================================================
  7699. else if(sPrntKind == "8"){ // 헌혈 b472 여의도성모 바코드 ★★★
  7700. // alert("b472");
  7701. //var sB472size = "";
  7702. //var sB472sizegbn = model.getValue(barcdRef + "[1]/blank/b472size");
  7703. //if(sB472sizegbn == "2"){ // 320 630
  7704. // sB472size = "0340,0620,0340"; // 기존라벨
  7705. //}else{
  7706. // sB472size = "0350,0550,0330"; // nUsize
  7707. //}
  7708. //sSndMsg += "{D" + sB472size + "|}"; // 라벨사이즈
  7709. // sSndMsg += "{D0350,0800,0330|}"; // 라벨사이즈 -- 혈액은행사이즈
  7710. sSndMsg += "{C|}"; // 버퍼클리어
  7711. sSndMsg += "{D0950,0900,0900|}"; // 라벨사이즈
  7712. //sSndMsg += "{C|}"; // 버퍼클리어
  7713. sSndMsg += "{AX;-000,-000,+00|}"; // 피트량
  7714. iXPos = Number(sLeftBank) + 120;
  7715. iYPos = Number(sTopBank)+40;
  7716. sSndMsg += lzzfBP_HanDisp48(sTitle, iXPos, iYPos); // 타이틀----
  7717. // -- 환자 -- //
  7718. iXPos = Number(sLeftBank) + 270;
  7719. iYPos = Number(sTopBank) + 180;
  7720. //sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPid); //등록번호
  7721. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 40, sPid); //등록번호
  7722. iXPos = Number(sLeftBank) + 270;
  7723. iYPos = Number(sTopBank)+210;
  7724. sSndMsg += lzzfBP_HanDisp32(sPatNm, iXPos, iYPos); // 환자명
  7725. iXPos = Number(sLeftBank) + 270;
  7726. iYPos = Number(sTopBank) + 310;
  7727. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 40, aSexAge); //환자 성별나이
  7728. if(sCommKind == "01") {
  7729. CommAX.SendMessageToLPT(sSndMsg);
  7730. } else if(sCommKind == "02") {
  7731. CommAX.SendMessage(sSndMsg);
  7732. sSndMsg= "";
  7733. }
  7734. if(sWardRoom!=""){
  7735. iXPos = Number(sLeftBank) + 270;
  7736. iYPos = Number(sTopBank)+335;
  7737. sSndMsg += lzzfBP_HanDisp32(sWardRoom, iXPos, iYPos); // 병동 병실
  7738. }
  7739. if(sAboRh!=""){
  7740. iXPos = Number(sLeftBank) + 640;
  7741. iYPos = Number(sTopBank) + 260;
  7742. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 70, 70, sAboRh); //환자혈액형
  7743. }
  7744. if(sAbocd!=""){
  7745. iXPos = Number(sLeftBank)+ 620;
  7746. iYPos = Number(sTopBank)+ 270;
  7747. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 4, 4, "*" + sAbocd + "*", 80); //혈액형 바코드
  7748. }
  7749. if(sCommKind == "01") {
  7750. CommAX.SendMessageToLPT(sSndMsg);
  7751. } else if(sCommKind == "02") {
  7752. CommAX.SendMessage(sSndMsg);
  7753. sSndMsg= "";
  7754. }
  7755. if(sAbocd!=""){
  7756. iXPos = Number(sLeftBank) + 650;
  7757. iYPos = Number(sTopBank) + 375;
  7758. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "* " + sAbocd + " *"); //혈액형 바코드텍스트
  7759. }
  7760. // -- 공여자 -- //
  7761. if(sBtype!=""){
  7762. iXPos = Number(sLeftBank) + 640;
  7763. iYPos = Number(sTopBank) + 495;
  7764. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 70, 70, sBtype); //공혈자혈액형
  7765. }
  7766. if(sDnorNm!=""){
  7767. iXPos = Number(sLeftBank) + 270;
  7768. iYPos = Number(sTopBank) + 400;
  7769. sSndMsg += lzzfBP_HanDisp32(sDnorNm, iXPos, iYPos); // 공여자명
  7770. }
  7771. if(sCommKind == "01") {
  7772. CommAX.SendMessageToLPT(sSndMsg);
  7773. } else if(sCommKind == "02") {
  7774. CommAX.SendMessage(sSndMsg);
  7775. sSndMsg= "";
  7776. }
  7777. if(sDnsexage!=""){
  7778. iXPos = Number(sLeftBank) + 270;
  7779. iYPos = Number(sTopBank) + 495;
  7780. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 40, sDnsexage); //환자 성별나이
  7781. }
  7782. if(sBcolldd!="sBcolldd"){
  7783. iXPos = Number(sLeftBank) + 270;
  7784. iYPos = Number(sTopBank) + 550;
  7785. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sBcolldd.substr(0, 4) + "-" + sBcolldd.substr(4, 2) + "-" + sBcolldd.substr(6, 2)); //채혈년월일
  7786. iXPos = Number(sLeftBank) + 430;
  7787. iYPos = Number(sTopBank) + 550;
  7788. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sBcolldd.substr(8, 2) + ":" + sBcolldd.substr(10, 2)); //채혈시간
  7789. }
  7790. if(sCommKind == "01") {
  7791. CommAX.SendMessageToLPT(sSndMsg);
  7792. } else if(sCommKind == "02") {
  7793. CommAX.SendMessage(sSndMsg);
  7794. sSndMsg= "";
  7795. }
  7796. if(sValiDt!=""){
  7797. iXPos = Number(sLeftBank) + 530;
  7798. iYPos = Number(sTopBank) + 555;
  7799. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 30, 30, sValiDt.substr(0, 4) + "-" + sValiDt.substr(4, 2) + "-" + sValiDt.substr(6, 2)); //유효일자
  7800. iXPos = Number(sLeftBank) + 760;
  7801. iYPos = Number(sTopBank) + 555;
  7802. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 30, 30, sValiDt.substr(8, 2) + ":" + sValiDt.substr(10, 2)); //유효시간
  7803. }
  7804. if(sBlodVol!=""){
  7805. iXPos = Number(sLeftBank) + 260;
  7806. iYPos = Number(sTopBank) + 620;
  7807. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 40, sBlodVol + " ml"); //헌혈한 용량
  7808. }
  7809. if(sCommKind == "01") {
  7810. CommAX.SendMessageToLPT(sSndMsg);
  7811. } else if(sCommKind == "02") {
  7812. CommAX.SendMessage(sSndMsg);
  7813. sSndMsg= "";
  7814. }
  7815. if(sBlodbarnm!=""){
  7816. iXPos = Number(sLeftBank) + 440;
  7817. iYPos = Number(sTopBank) + 615;
  7818. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sBlodbarnm); //성분제제명
  7819. }
  7820. if(sBcollnm!=""){
  7821. iXPos = Number(sLeftBank) + 500;
  7822. iYPos = Number(sTopBank) + 650;
  7823. sSndMsg += lzzfBP_HanDisp32("채혈자:" + sBcollnm, iXPos, iYPos); // 공여자명
  7824. }
  7825. if(sCommKind == "01") {
  7826. CommAX.SendMessageToLPT(sSndMsg);
  7827. } else if(sCommKind == "02") {
  7828. CommAX.SendMessage(sSndMsg);
  7829. sSndMsg= "";
  7830. }
  7831. if(sBlodNo != ""){
  7832. iXPos = Number(sLeftBank)+ 40;
  7833. iYPos = Number(sTopBank)+ 770;
  7834. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 4, 4, "*" + sBlodNo + "*",90); //혈액번호 바코드
  7835. // iXPos = Number(sLeftBank) + 110;
  7836. // iYPos = Number(sTopBank) + 295;
  7837. // sSndMsg += "^FO"+iXPos+","+iYPos; // 80 가로, 275세로
  7838. // sSndMsg += "^BY2,3.0"; // 크기 2 3= 3:1 배율
  7839. // sSndMsg += "^B2N,80,N,N,N^FD" + "*" + sBlodNo + "*" + "^FS";
  7840. iXPos = Number(sLeftBank) + 120;
  7841. iYPos = Number(sTopBank) + 885;
  7842. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "* " + sBlodNo + " *"); //혈액번호 텍스트
  7843. if(sCommKind == "01") {
  7844. CommAX.SendMessageToLPT(sSndMsg);
  7845. } else if(sCommKind == "02") {
  7846. CommAX.SendMessage(sSndMsg);
  7847. sSndMsg= "";
  7848. }
  7849. iXPos = Number(sLeftBank)+ 520;
  7850. iYPos = Number(sTopBank)+ 770;
  7851. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 4, 4, "*" + sBlodbarcd + "*", 90); //성분제제 바코드
  7852. iXPos = Number(sLeftBank) + 570;
  7853. iYPos = Number(sTopBank) + 885;
  7854. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "*" + sBlodbarcd + "*"); //성분제제코드 텍스트
  7855. }
  7856. sSndMsg += lzzfBP_EndFormat_B472(1);
  7857. if(sCommKind == "01") {
  7858. CommAX.SendMessageToLPT(sSndMsg);
  7859. } else if(sCommKind == "02") {
  7860. // alert("10 " + sSndMsg);
  7861. CommAX.SendMessage(sSndMsg);
  7862. }
  7863. }// end B472
  7864. }//end for
  7865. //portopen이 true이고 통신유형이 com일때 port close
  7866. if( portOpenTF == "TRUE" && sCommKind == "02"){
  7867. CommAX.PortOpen("false");
  7868. }
  7869. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  7870. messageBox("아래 사항을 확인후 재출력해주십시오."
  7871. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  7872. + " \n 2.케이블 확인"
  7873. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  7874. return;
  7875. }
  7876. }
  7877. } //이후 2008-07-07 바코드 포트 오류 막기위해
  7878. catch(ee) {
  7879. messageBox("바코드출력에", "E009");
  7880. return;
  7881. }
  7882. }
  7883. /**
  7884. * @group :
  7885. * @ver : 2008.07.03
  7886. * @by : 윤재한
  7887. * @---------------------------------------------------
  7888. * @type : function
  7889. * @access : public
  7890. * @desc : 보관검체 출력
  7891. * @param : ref - 보관검체 인스턴스
  7892. * count - 진검바코드 갯수
  7893. * @return :
  7894. * @---------------------------------------------------
  7895. * 채혈화면에서 보관검체출력시 TRLLC80101
  7896. * 혈액은행 보관검체 등록시 TXLBT10902
  7897. */
  7898. function fKeLabel(ref, count){
  7899. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  7900. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  7901. var portOpenCheck = "";
  7902. var LCount = 0;
  7903. var iXPos = 0;
  7904. var iYPos = 0;
  7905. if(count == null || count == ""){
  7906. LCount = 0;
  7907. }else{
  7908. LCount = count;
  7909. }
  7910. var sSndMsg = "";
  7911. if (sPrntKind == 0) return;
  7912. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  7913. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  7914. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  7915. if(sCommKind == "01") {
  7916. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  7917. } else if(sCommKind == "02") {
  7918. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  7919. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  7920. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  7921. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  7922. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  7923. CommAX.CommPort = sComm;
  7924. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  7925. portOpenCheck = CommAX.PortOpen("true");
  7926. } else if(sCommKind == "03") {
  7927. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  7928. var sEqmtCD = model.getValue(barcdRef + "[1]/comm03/eqmtcd");
  7929. }
  7930. if( (portOpenCheck == "TRUE" && sCommKind == "02")
  7931. || sCommKind == "01"
  7932. || sCommKind == "03"){
  7933. var sStr = "보관검체";
  7934. var sRoomcd = model.getvalue(ref +"/roomcd");
  7935. var sPid = model.getvalue(ref +"/pid");
  7936. var sPatnm = model.getvalue(ref +"/patnm");
  7937. var sPatsex = model.getvalue(ref +"/patsex");
  7938. var sPatage = model.getvalue(ref +"/patage");
  7939. var sPatsexage = sPatsex + "/" + sPatage;
  7940. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  7941. var sBtype = model.getvalue(ref +"/btype");
  7942. var sInfcinfolist = model.getvalue(ref +"/infcinfolist"); //감염정보 추가 20120503
  7943. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  7944. var sDt = model.getvalue(ref +"/dt");
  7945. var sPidW = 85;
  7946. var sBarcodeW = 120; // 110였음
  7947. var sBtypeW = 10;
  7948. var sBGGCno = model.getvalue(ref +"/bggc");
  7949. if(sInfcinfolist != ""){
  7950. sInfcinfolist = "*"+ sInfcinfolist +"*";
  7951. }
  7952. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  7953. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  7954. if(sPid.length == 10){
  7955. sBarcodeW = 90;// 90이었음
  7956. sBtypeW = 10;
  7957. }
  7958. if(sPrntKind == "1") { //zebra
  7959. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  7960. iXPos = Number(sLeftBank);
  7961. iYPos = Number(sTopBank);
  7962. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sStr, 1, 1);
  7963. sSndMsg += CommAX.HanImageData();
  7964. iXPos = Number(sLeftBank) + 180;
  7965. iYPos = Number(sTopBank) + 8;
  7966. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  7967. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomcd);
  7968. iXPos = Number(sLeftBank) + 260;
  7969. iYPos = Number(sTopBank) + 8;
  7970. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  7971. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatsexage);
  7972. if(sCommKind == "01") {
  7973. CommAX.SendMessageToLPT(sSndMsg);
  7974. sSndMsg = "";
  7975. } else if(sCommKind == "02") {
  7976. CommAX.SendMessage(sSndMsg);
  7977. sSndMsg = "";
  7978. }
  7979. iXPos = Number(sLeftBank) + 10;
  7980. iYPos = Number(sTopBank) + 25;
  7981. //sSndMsg += lzzfBP_ChangeFont("C", 10, 14); // 폰트 설정
  7982. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  7983. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1.6, 1.6);
  7984. sSndMsg += CommAX.HanImageData();
  7985. if(sCommKind == "01") {
  7986. CommAX.SendMessageToLPT(sSndMsg);
  7987. sSndMsg = "";
  7988. } else if(sCommKind == "02") {
  7989. CommAX.SendMessage(sSndMsg);
  7990. sSndMsg = "";
  7991. }
  7992. iXPos = Number(sLeftBank) + 190;
  7993. iYPos = Number(sTopBank) + 30;
  7994. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1, 1);
  7995. //sSndMsg += CommAX.HanImageData();
  7996. //sSndMsg += lzzfBP_ChangeFont("C", 10, 14); // 폰트 설정
  7997. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  7998. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  7999. if(sCommKind == "01") {
  8000. CommAX.SendMessageToLPT(sSndMsg);
  8001. sSndMsg = "";
  8002. } else if(sCommKind == "02") {
  8003. CommAX.SendMessage(sSndMsg);
  8004. sSndMsg = "";
  8005. }
  8006. iXPos = Number(sLeftBank) + sBtypeW;
  8007. iYPos = Number(sTopBank) + 110; // 75 였음
  8008. sSndMsg += lzzfBP_ChangeFont("C", 85, 20); // 폰트 설정
  8009. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); // 혈액형
  8010. iXPos = Number(sLeftBank);
  8011. iYPos = Number(sTopBank) + 75; // 160 였음
  8012. if(sBGGCno != ""){ // 2009-03-07 정은 수정
  8013. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8014. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBGGCno); // 보관검체
  8015. }
  8016. if(sCommKind == "01") {
  8017. CommAX.SendMessageToLPT(sSndMsg);
  8018. sSndMsg = "";
  8019. } else if(sCommKind == "02") {
  8020. CommAX.SendMessage(sSndMsg);
  8021. sSndMsg = "";
  8022. }
  8023. iXPos = Number(sLeftBank) + sBarcodeW;
  8024. iYPos = Number(sTopBank) + 75;
  8025. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  8026. sSndMsg += "^BY2,2.0"; //
  8027. sSndMsg += "^B3" + "N" + ",N," + "85" + ",N,N^FD" + "*" + sPid + "*" + "^FS";//바코드 크기
  8028. if(sCommKind == "01") {
  8029. CommAX.SendMessageToLPT(sSndMsg);
  8030. sSndMsg = "";
  8031. } else if(sCommKind == "02") {
  8032. CommAX.SendMessage(sSndMsg);
  8033. sSndMsg = "";
  8034. }
  8035. iXPos = Number(sLeftBank) + 180;
  8036. iYPos = Number(sTopBank) + 170;
  8037. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  8038. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*"+sPid+"*");
  8039. if(sCommKind == "01") {
  8040. CommAX.SendMessageToLPT(sSndMsg);
  8041. sSndMsg = "";
  8042. } else if(sCommKind == "02") {
  8043. CommAX.SendMessage(sSndMsg);
  8044. sSndMsg = "";
  8045. }
  8046. iXPos = Number(sLeftBank) + 10;
  8047. iYPos = Number(sTopBank) + 200;
  8048. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8049. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt);
  8050. if(sCommKind == "01") {
  8051. CommAX.SendMessageToLPT(sSndMsg);
  8052. sSndMsg = "";
  8053. } else if(sCommKind == "02") {
  8054. CommAX.SendMessage(sSndMsg);
  8055. sSndMsg = "";
  8056. }
  8057. iXPos = Number(sLeftBank) + 220;
  8058. iYPos = Number(sTopBank) + 190;
  8059. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBcollNm, 1, 1);
  8060. sSndMsg += CommAX.HanImageData();
  8061. sSndMsg += lzzfBP_EndFormat();
  8062. if(sCommKind == "01") {
  8063. CommAX.SendMessageToLPT(sSndMsg);
  8064. } else if(sCommKind == "02") {
  8065. CommAX.SendMessage(sSndMsg);
  8066. }
  8067. //출력할 진검 바코드가 없을시에만 port close
  8068. if(portOpenCheck == "TRUE" && sCommKind == "02" && LCount == 0){
  8069. CommAX.PortOpen("false");
  8070. }
  8071. } else if(sPrntKind == "3") { //Auto Label(Ginus)
  8072. if(LCount == 0) {//출력할 진검 바코드가 없을시에만 환자정보
  8073. sSndMsg += "^^^P"; //환자정보 시작
  8074. //환자번호, 환자이름, 성별, 나이
  8075. sSndMsg += "^PI" + sPid + "^PN" + sPatnm + "^PS" + sPatsex + "^PA" + sPatage;
  8076. //장비번호 선택
  8077. sSndMsg += "^PB" + sEqmtCD;
  8078. sSndMsg += "^^^_P"; //환자정보 종료
  8079. sSndMsg += "^^^S"; //채혈정보 시작
  8080. }
  8081. sSndMsg += "^SS"; //data 시작
  8082. //바코드번호(등록번호), S:보관검체, 진료과, 병실
  8083. sSndMsg += "^SA" + sPid + "^SBS" + "^SC" + sOrddeptNm + "^SD" + sRoomcd;
  8084. //용기코드(보관검체용으로 고정), 바코드출력일시, 혈액형
  8085. sSndMsg += "^SEAB" + "^SI" + sDt + "^S1" + sBtype;
  8086. sSndMsg += "^_SS"; //data 종료
  8087. if(LCount != 0) { //진검바코드가 있을경우 진검바코드내용 + 보관검체내용
  8088. model.makeValue("/root/hidden/sendmessage", model.getValue("/root/hidden/sendmessage") + sSndMsg);
  8089. }
  8090. if(LCount == 0) {//출력할 진검 바코드가 없을시에만 전송
  8091. sSndMsg += "^^^_S"; //채혈정보 종료
  8092. var sReturnValue = AutoLabel.TRANSDATA(0, sSetUpVal, sSndMsg); //전송
  8093. }
  8094. } //end else if(sPrntKind == "3")
  8095. else if(sPrntKind == "4") { //Auto Label(Robo)
  8096. }
  8097. else if(sPrntKind == "9") { //Zebra 300dpi
  8098. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  8099. iXPos = Number(sLeftBank);
  8100. iYPos = Number(sTopBank);
  8101. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sStr, 1, 1);
  8102. sSndMsg += CommAX.HanImageData();
  8103. iXPos = Number(sLeftBank) + 180;
  8104. iYPos = Number(sTopBank) + 8;
  8105. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  8106. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomcd);
  8107. iXPos = Number(sLeftBank) + 360;
  8108. iYPos = Number(sTopBank) + 8;
  8109. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  8110. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatsexage);
  8111. if(sCommKind == "01") {
  8112. CommAX.SendMessageToLPT(sSndMsg);
  8113. sSndMsg = "";
  8114. } else if(sCommKind == "02") {
  8115. CommAX.SendMessage(sSndMsg);
  8116. sSndMsg = "";
  8117. }
  8118. iXPos = Number(sLeftBank) + 10;
  8119. iYPos = Number(sTopBank) + 25;
  8120. //sSndMsg += lzzfBP_ChangeFont("C", 10, 14); // 폰트 설정
  8121. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  8122. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1.6, 1.6);
  8123. sSndMsg += CommAX.HanImageData();
  8124. if(sCommKind == "01") {
  8125. CommAX.SendMessageToLPT(sSndMsg);
  8126. sSndMsg = "";
  8127. } else if(sCommKind == "02") {
  8128. CommAX.SendMessage(sSndMsg);
  8129. sSndMsg = "";
  8130. }
  8131. iXPos = Number(sLeftBank) + 190;
  8132. iYPos = Number(sTopBank) + 30;
  8133. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1, 1);
  8134. //sSndMsg += CommAX.HanImageData();
  8135. //sSndMsg += lzzfBP_ChangeFont("C", 10, 14); // 폰트 설정
  8136. sSndMsg += lzzfBP_ChangeFont("C", 40, 30); // 폰트 설정
  8137. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  8138. if(sCommKind == "01") {
  8139. CommAX.SendMessageToLPT(sSndMsg);
  8140. sSndMsg = "";
  8141. } else if(sCommKind == "02") {
  8142. CommAX.SendMessage(sSndMsg);
  8143. sSndMsg = "";
  8144. }
  8145. iXPos = Number(sLeftBank) + sBtypeW;
  8146. iYPos = Number(sTopBank) + 120; // 75 였음
  8147. sSndMsg += lzzfBP_ChangeFont("C", 95, 40); // 폰트 설정
  8148. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); // 혈액형
  8149. iXPos = Number(sLeftBank);
  8150. iYPos = Number(sTopBank) + 75; // 160 였음
  8151. if(sBGGCno != ""){ // 2009-03-07 정은 수정
  8152. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8153. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBGGCno); // 보관검체
  8154. }
  8155. if(sCommKind == "01") {
  8156. CommAX.SendMessageToLPT(sSndMsg);
  8157. sSndMsg = "";
  8158. } else if(sCommKind == "02") {
  8159. CommAX.SendMessage(sSndMsg);
  8160. sSndMsg = "";
  8161. }
  8162. iXPos = Number(sLeftBank) + sBarcodeW;
  8163. iYPos = Number(sTopBank) + 75;
  8164. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  8165. sSndMsg += "^BY3,2.4,130"; //
  8166. sSndMsg += "^B3" + "N" + ",N," + "125" + ",N,N^FD" + "*" + sPid + "*" + "^FS";//바코드 크기
  8167. if(sCommKind == "01") {
  8168. CommAX.SendMessageToLPT(sSndMsg);
  8169. sSndMsg = "";
  8170. } else if(sCommKind == "02") {
  8171. CommAX.SendMessage(sSndMsg);
  8172. sSndMsg = "";
  8173. }
  8174. iXPos = Number(sLeftBank) + 200;
  8175. iYPos = Number(sTopBank) + 215;
  8176. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  8177. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*"+sPid+"*");
  8178. if(sCommKind == "01") {
  8179. CommAX.SendMessageToLPT(sSndMsg);
  8180. sSndMsg = "";
  8181. } else if(sCommKind == "02") {
  8182. CommAX.SendMessage(sSndMsg);
  8183. sSndMsg = "";
  8184. }
  8185. iXPos = Number(sLeftBank) + 10;
  8186. iYPos = Number(sTopBank) + 240;
  8187. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  8188. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt);
  8189. if(sCommKind == "01") {
  8190. CommAX.SendMessageToLPT(sSndMsg);
  8191. sSndMsg = "";
  8192. } else if(sCommKind == "02") {
  8193. CommAX.SendMessage(sSndMsg);
  8194. sSndMsg = "";
  8195. }
  8196. iXPos = Number(sLeftBank) + 20;
  8197. iYPos = Number(sTopBank) + 260;
  8198. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBcollNm, 1, 1);
  8199. sSndMsg += CommAX.HanImageData();
  8200. iXPos = Number(sLeftBank) + 250;
  8201. iYPos = Number(sTopBank) + 260;
  8202. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, "채혈일자 : ", 1, 1);
  8203. sSndMsg += CommAX.HanImageData();
  8204. sSndMsg += lzzfBP_EndFormat();
  8205. if(sCommKind == "01") {
  8206. CommAX.SendMessageToLPT(sSndMsg);
  8207. } else if(sCommKind == "02") {
  8208. CommAX.SendMessage(sSndMsg);
  8209. }
  8210. //출력할 진검 바코드가 없을시에만 port close
  8211. if(portOpenCheck == "TRUE" && sCommKind == "02" && LCount == 0){
  8212. CommAX.PortOpen("false");
  8213. }
  8214. }
  8215. }else if(portOpenCheck == "TRUE" && sCommKind == "02"){
  8216. messageBox("아래 사항을 확인후 재출력해주십시오."
  8217. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  8218. + " \n 2.케이블 확인"
  8219. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  8220. return;
  8221. }
  8222. }
  8223. /**
  8224. * @group :
  8225. * @ver : 2008.07.03
  8226. * @by : 윤재한
  8227. * @---------------------------------------------------
  8228. * @type : function
  8229. * @access : public
  8230. * @desc : 보관검체 출력
  8231. * @param : ref - 보관검체 인스턴스
  8232. * count - 진검바코드 갯수
  8233. * @return :
  8234. * @---------------------------------------------------
  8235. * 채혈화면에서 보관검체출력시 TRLLC80101
  8236. * 혈액은행 보관검체 등록시 TXLBT10902
  8237. */
  8238. function fKeLabel2(ref, count){
  8239. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  8240. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  8241. var portOpenCheck = "";
  8242. var LCount = 0;
  8243. var iXPos = 0;
  8244. var iYPos = 0;
  8245. if(count == null || count == ""){
  8246. LCount = 0;
  8247. }else{
  8248. LCount = count;
  8249. }
  8250. var sSndMsg = "";
  8251. if (sPrntKind == 0) return;
  8252. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  8253. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  8254. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  8255. if(sPrntKind == "10"){
  8256. var sStr = "보관검체";
  8257. var sRoomcd = model.getvalue(ref +"/roomcd");
  8258. var sPid = model.getvalue(ref +"/pid");
  8259. var sPatnm = model.getvalue(ref +"/patnm");
  8260. var sPatsex = model.getvalue(ref +"/patsex");
  8261. var sPatage = model.getvalue(ref +"/patage");
  8262. var sPatsexage = sPatsex + "/" + sPatage;
  8263. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8264. var sBtype = model.getvalue(ref +"/btype");
  8265. var sInfcinfolist = model.getvalue(ref +"/infcinfolist"); //감염정보 추가 20120503
  8266. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8267. var sDt = model.getvalue(ref +"/dt");
  8268. var sPidW = 85;
  8269. var sBarcodeW = 120; // 110였음
  8270. var sBtypeW = 10;
  8271. var sBGGCno = model.getvalue(ref +"/bggc");
  8272. if(sInfcinfolist != ""){
  8273. sInfcinfolist = "*"+ sInfcinfolist +"*";
  8274. }
  8275. //sSndMsg = "^@" + "\n";
  8276. //sSndMsg = "^default" + "\n";
  8277. sSndMsg += "N" + "\n";
  8278. sSndMsg += "JF" + "\n";
  8279. sSndMsg += "D9" + "\n";
  8280. sSndMsg += "S2" + "\n";
  8281. sSndMsg += "Q223,27" + "\n";
  8282. sSndMsg += "q456" + "\n";
  8283. iXPos = Number(sLeftBank);
  8284. iYPos = Number(sTopBank);
  8285. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sStr + "\""+ "\n";
  8286. //iXPos = Number(sLeftBank) + 140;
  8287. //iYPos = Number(sTopBank) + 5;
  8288. //sSndMsg += "A" + iXPos + "," + iYPos + ",0,2,1,1,N," + "\"" + "*" + sBcno + "*" + "\""+ "\n";
  8289. iXPos = Number(sLeftBank) + 300;
  8290. iYPos = Number(sTopBank);
  8291. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + "Serum" + "\""+ "\n";
  8292. iXPos = Number(sLeftBank) + 25;
  8293. iYPos = Number(sTopBank) + 28;
  8294. sSndMsg += "B" + iXPos + "," + iYPos + ",0,3,2,5,93,N," + "\"" + sPid + "\""+ "\n";
  8295. iXPos = Number(sLeftBank) + 300;
  8296. iYPos = Number(sTopBank) + 35;
  8297. sSndMsg += "A" + iXPos + "," + iYPos + ",0,5,1,1,N," + "\"" + sBtype + "\""+ "\n";
  8298. iXPos = Number(sLeftBank);
  8299. iYPos = Number(sTopBank) + 124;
  8300. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sPid + "\""+ "\n";
  8301. iXPos = Number(sLeftBank) + 120;
  8302. iYPos = Number(sTopBank) + 120;
  8303. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sPatnm + "\""+ "\n";
  8304. iXPos = Number(sLeftBank) + 220;
  8305. iYPos = Number(sTopBank) + 120;
  8306. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "채혈일시:" + "\""+ "\n";
  8307. iXPos = Number(sLeftBank) + 330;
  8308. iYPos = Number(sTopBank) + 125;
  8309. sSndMsg += "A" + iXPos + "," + iYPos + ",0,1,1,1,N," + "\"" + sDt.substr(5) + "\""+ "\n";
  8310. iXPos = Number(sLeftBank);
  8311. iYPos = Number(sTopBank) + 145;
  8312. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + "Plain 6ml" + "\""+ "\n";
  8313. iXPos = Number(sLeftBank);
  8314. iYPos = Number(sTopBank) + 165;
  8315. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "검체채취일시:" + "\""+ "\n";
  8316. //감염정보 추가 20120503
  8317. iXPos = Number(sLeftBank) + 390;
  8318. iYPos = Number(sTopBank) + 165;
  8319. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sInfcinfolist + "\""+ "\n";
  8320. iXPos = Number(sLeftBank);
  8321. iYPos = Number(sTopBank) + 190;
  8322. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "채혈자:" + "\""+ "\n";
  8323. iXPos = Number(sLeftBank) + 200;
  8324. iYPos = Number(sTopBank) + 190;
  8325. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "확인자:" + "\""+ "\n";
  8326. sSndMsg += "P1"+ "\n";
  8327. //alert(sSndMsg);
  8328. CommAX.SendMsg(sSndMsg);
  8329. }else if(sPrntKind == "11"){
  8330. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  8331. var sStr = "보관검체";
  8332. var sRoomcd = model.getvalue(ref +"/roomcd");
  8333. var sPid = model.getvalue(ref +"/pid");
  8334. var sPatnm = model.getvalue(ref +"/patnm");
  8335. var sPatsex = model.getvalue(ref +"/patsex");
  8336. var sPatage = model.getvalue(ref +"/patage");
  8337. var sPatsexage = sPatsex + "/" + sPatage;
  8338. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8339. var sBtype = model.getvalue(ref +"/btype");
  8340. var sInfcinfolist = model.getvalue(ref +"/infcinfolist"); //감염정보 추가 20120503
  8341. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8342. var sDt = model.getvalue(ref +"/dt");
  8343. var sPidW = 85;
  8344. var sBarcodeW = 120; // 110였음
  8345. var sBtypeW = 10;
  8346. var sBGGCno = model.getvalue(ref +"/bggc");
  8347. if(sInfcinfolist != ""){
  8348. sInfcinfolist = "*"+ sInfcinfolist +"*";
  8349. }
  8350. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  8351. iXPos = Number(sLeftBank) + 240;
  8352. iYPos = Number(sTopBank) + 5;
  8353. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8354. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "Serum");
  8355. iXPos = Number(sLeftBank);
  8356. iYPos = Number(sTopBank);
  8357. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,25,25^FH^FD" + sStr + "^FS^CI1";
  8358. iXPos = Number(sLeftBank) + 10;
  8359. iYPos = Number(sTopBank) + 25;
  8360. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  8361. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 85, "*" + sPid + "*"); // 바코드
  8362. iXPos = Number(sLeftBank) + 5;
  8363. iYPos = Number(sTopBank) + 115;
  8364. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8365. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  8366. iXPos = Number(sLeftBank) + 110;
  8367. iYPos = Number(sTopBank) + 115;
  8368. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,25,25^FH^FD" + sPatnm + "^FS^CI1";
  8369. iXPos = Number(sLeftBank) + 205;
  8370. iYPos = Number(sTopBank) + 115;
  8371. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,15,15^FH^FD" + "채혈일시:" + "^FS^CI1";
  8372. iXPos = Number(sLeftBank) + 310;
  8373. iYPos = Number(sTopBank) + 35; // 75 였음
  8374. sSndMsg += lzzfBP_ChangeFont("C", 70, 30); // 폰트 설정
  8375. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); // 혈액형
  8376. iXPos = Number(sLeftBank) + 275;
  8377. iYPos = Number(sTopBank) + 115;
  8378. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8379. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt.substr(5));
  8380. iXPos = Number(sLeftBank) + 5;
  8381. iYPos = Number(sTopBank) + 135;
  8382. sSndMsg += lzzfBP_ChangeFont("C",10, 10); // 폰트 설정
  8383. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "Plain 6ml");
  8384. //iXPos = Number(sLeftBank) + 190;
  8385. //iYPos = Number(sTopBank) + 190;
  8386. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBcollNm, 1, 1);
  8387. //sSndMsg += CommAX.HanImageData();
  8388. iXPos = Number(sLeftBank) + 200;
  8389. iYPos = Number(sTopBank) + 135;
  8390. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8391. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomcd);
  8392. iXPos = Number(sLeftBank) + 2;
  8393. iYPos = Number(sTopBank) + 160;
  8394. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,20,20^FH^FD" + "검체채취일시:" + "^FS^CI1";
  8395. //감염정보 추가 20120503
  8396. iXPos = Number(sLeftBank) + 345;
  8397. iYPos = Number(sTopBank) + 160;
  8398. sSndMsg += lzzfBP_ChangeFont("C",20, 20); // 폰트 설정
  8399. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist );
  8400. iXPos = Number(sLeftBank) + 2;
  8401. iYPos = Number(sTopBank) + 185;
  8402. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,20,20^FH^FD" + "채혈자:" + "^FS^CI1";
  8403. iXPos = Number(sLeftBank) + 200;
  8404. iYPos = Number(sTopBank) + 185;
  8405. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,20,20^FH^FD" + "확인자:" + "^FS^CI1";
  8406. sSndMsg += "^XZ"
  8407. CommAX.SendMsg(sSndMsg);
  8408. }else if(sPrntKind == "9"){
  8409. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  8410. var sStr = "보관검체";
  8411. var sRoomcd = model.getvalue(ref +"/roomcd");
  8412. var sPid = model.getvalue(ref +"/pid");
  8413. var sPatnm = model.getvalue(ref +"/patnm");
  8414. var sPatsex = model.getvalue(ref +"/patsex");
  8415. var sPatage = model.getvalue(ref +"/patage");
  8416. var sPatsexage = sPatsex + "/" + sPatage;
  8417. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8418. var sBtype = model.getvalue(ref +"/btype");
  8419. var sInfcinfolist = model.getvalue(ref +"/infcinfolist"); //감염정보 추가 20120503
  8420. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8421. var sDt = model.getvalue(ref +"/dt");
  8422. var sPidW = 85;
  8423. var sBarcodeW = 120; // 110였음
  8424. var sBtypeW = 10;
  8425. var sBGGCno = model.getvalue(ref +"/bggc");
  8426. if(sInfcinfolist != ""){
  8427. sInfcinfolist = "*"+ sInfcinfolist +"*";
  8428. }
  8429. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  8430. iXPos = Number(sLeftBank) + 400;
  8431. iYPos = Number(sTopBank) + 5;
  8432. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8433. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "Serum");
  8434. iXPos = Number(sLeftBank);
  8435. iYPos = Number(sTopBank);
  8436. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,40,40^FH^FD" + sStr + "^FS^CI1";
  8437. iXPos = Number(sLeftBank) + 20;
  8438. iYPos = Number(sTopBank) + 40;
  8439. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  8440. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 120, "*" + sPid + "*"); // 바코드
  8441. iXPos = Number(sLeftBank) + 5;
  8442. iYPos = Number(sTopBank) + 165;
  8443. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8444. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  8445. //iXPos = Number(sLeftBank) + 190;
  8446. //iYPos = Number(sTopBank) + 165;
  8447. //sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,35,35^FH^FD" + sPatnm + "^FS^CI1";
  8448. //Start-- 성명 동명이인 표시에 따른 한글+영문 변경 by 김금련_20130213
  8449. iWidth = 0;
  8450. aStr = "";
  8451. aFlag = new Array();
  8452. iXPos = Number(sLeftBank) + 190;
  8453. sPatnm = sPatnm.substr(0, 20);
  8454. aStr = lpzfGetHanGul(sPatnm, aFlag);
  8455. for (var iNo=0; iNo < aStr.length; iNo++) {
  8456. //----------------------
  8457. if (aFlag[iNo] == "E") {
  8458. iXPos = Number(sLeftBank) + 223;
  8459. iYPos = Number(sTopBank) + 165;
  8460. sSndMsg += "^CFD40,40^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  8461. iWidth = iWidth + (Number(aStr[iNo].length) * 14);
  8462. } else {
  8463. iYPos = Number(sTopBank) + 165;
  8464. //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  8465. //sSndMsg += CommAX.HanImageData();
  8466. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,35,35^FH^FD" + aStr[iNo] + "^FS^CI1";
  8467. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  8468. }
  8469. }
  8470. //END-- 성명 동명이인 표시에 따른 한글+영문 변경 by 김금련_20130213
  8471. iXPos = Number(sLeftBank) + 320;
  8472. iYPos = Number(sTopBank) + 165;
  8473. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,20,20^FH^FD" + "채혈일시:" + "^FS^CI1";
  8474. iXPos = Number(sLeftBank) + 430;
  8475. iYPos = Number(sTopBank) + 50; // 75 였음
  8476. sSndMsg += lzzfBP_ChangeFont("C", 100, 40); // 폰트 설정
  8477. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); // 혈액형
  8478. iXPos = Number(sLeftBank) + 440;
  8479. iYPos = Number(sTopBank) + 165;
  8480. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8481. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt.substr(5));
  8482. iXPos = Number(sLeftBank) + 5;
  8483. iYPos = Number(sTopBank) + 195;
  8484. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8485. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "Plain 6ml");
  8486. //iXPos = Number(sLeftBank) + 190;
  8487. //iYPos = Number(sTopBank) + 190;
  8488. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBcollNm, 1, 1);
  8489. //sSndMsg += CommAX.HanImageData();
  8490. iXPos = Number(sLeftBank) + 320;
  8491. iYPos = Number(sTopBank) + 195;
  8492. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8493. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomcd);
  8494. iXPos = Number(sLeftBank) + 2;
  8495. iYPos = Number(sTopBank) + 230;
  8496. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "검체채취일시:" + "^FS^CI1";
  8497. //감염정보 추가 20120503
  8498. iXPos = Number(sLeftBank) + 490;
  8499. iYPos = Number(sTopBank) + 230;
  8500. sSndMsg += lzzfBP_ChangeFont("C",20, 20); // 폰트 설정
  8501. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sInfcinfolist );
  8502. iXPos = Number(sLeftBank) + 2;
  8503. iYPos = Number(sTopBank) + 260;
  8504. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "채혈자:" + "^FS^CI1";
  8505. iXPos = Number(sLeftBank) + 320;
  8506. iYPos = Number(sTopBank) + 260;
  8507. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "확인자:" + "^FS^CI1";
  8508. sSndMsg += "^XZ"
  8509. CommAX.SendMsg(sSndMsg);
  8510. }else{
  8511. var sStr = "보관검체";
  8512. var sRoomcd = model.getvalue(ref +"/roomcd");
  8513. var sPid = model.getvalue(ref +"/pid");
  8514. var sPatnm = model.getvalue(ref +"/patnm");
  8515. var sPatsex = model.getvalue(ref +"/patsex");
  8516. var sPatage = model.getvalue(ref +"/patage");
  8517. var sPatsexage = sPatsex + "/" + sPatage;
  8518. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8519. var sBtype = model.getvalue(ref +"/btype");
  8520. var sInfcinfolist = model.getvalue(ref +"/infcinfolist"); //감염정보 추가 20120503
  8521. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8522. var sDt = model.getvalue(ref +"/dt");
  8523. var sPidW = 85;
  8524. var sBarcodeW = 120; // 110였음
  8525. var sBtypeW = 10;
  8526. var sBGGCno = model.getvalue(ref +"/bggc");
  8527. if(sInfcinfolist != ""){
  8528. sInfcinfolist = "*"+ sInfcinfolist +"*";
  8529. }
  8530. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  8531. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  8532. if(sPid.length == 10){
  8533. sBarcodeW = 90;// 90이었음
  8534. sBtypeW = 10;
  8535. }
  8536. sSndMsg = "AA103500500"; // 시작위치 셋팅
  8537. iXPos = Number(sLeftBank);
  8538. iYPos = Number(sTopBank);
  8539. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sStr);
  8540. iXPos = Number(sLeftBank) + 160;
  8541. iYPos = Number(sTopBank) + 8;
  8542. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sRoomcd;
  8543. iXPos = Number(sLeftBank) + 260;
  8544. iYPos = Number(sTopBank) + 8;
  8545. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPatsexage;
  8546. iXPos = Number(sLeftBank) + 10;
  8547. iYPos = Number(sTopBank) + 35;
  8548. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm, 2, 2);
  8549. iXPos = Number(sLeftBank) + 200;
  8550. iYPos = Number(sTopBank) + 35;
  8551. sSndMsg += "V" + iYPos + "H" + iXPos + "L0203S" + sPid + "L0101";;
  8552. iXPos = Number(sLeftBank) + sBtypeW;
  8553. iYPos = Number(sTopBank) + 110; // 75 였음
  8554. sSndMsg += "V" + iYPos + "H" + iXPos + "L0303M" + sBtype + "L0101";
  8555. iXPos = Number(sLeftBank) + 10;
  8556. iYPos = Number(sTopBank) + 90; // 160 였음
  8557. if(sBGGCno != ""){ // 2009-03-07 정은 수정
  8558. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBGGCno;
  8559. }
  8560. iXPos = Number(sLeftBank) + sBarcodeW + 20;
  8561. iYPos = Number(sTopBank) + 80;
  8562. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02070" + sPid; // 바코드
  8563. iXPos = Number(sLeftBank) + 170;
  8564. iYPos = Number(sTopBank) + 170;
  8565. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*"+sPid+"*";
  8566. iXPos = Number(sLeftBank) + 10;
  8567. iYPos = Number(sTopBank) + 200;
  8568. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sDt;
  8569. iXPos = Number(sLeftBank) + 220;
  8570. iYPos = Number(sTopBank) + 190;
  8571. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sBcollNm);
  8572. sSndMsg += "Q" + "1" + "Z";
  8573. CommAX.SendMsg(sSndMsg);
  8574. }
  8575. }
  8576. /**
  8577. * @group :
  8578. * @ver : 2008.07.03
  8579. * @by : 윤재한
  8580. * @---------------------------------------------------
  8581. * @type : function
  8582. * @access : public
  8583. * @desc : 보관검체 출력
  8584. * @param : ref - 보관검체 인스턴스
  8585. * count - 진검바코드 갯수
  8586. * @return :
  8587. * @---------------------------------------------------
  8588. * 채혈화면에서 보관검체출력시 TRLLC80101
  8589. * 혈액은행 보관검체 등록시 TXLBT10902
  8590. */
  8591. function fKeLabelHB2(ref, count){
  8592. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  8593. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  8594. var portOpenCheck = "";
  8595. var LCount = 0;
  8596. var iXPos = 0;
  8597. var iYPos = 0;
  8598. if(count == null || count == ""){
  8599. LCount = 0;
  8600. }else{
  8601. LCount = count;
  8602. }
  8603. var sSndMsg = "";
  8604. if (sPrntKind == 0) return;
  8605. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  8606. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  8607. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  8608. if(sPrntKind == "10"){
  8609. var sStr = "보관검체";
  8610. var sRoomcd = model.getvalue(ref +"/roomcd");
  8611. var sPid = model.getvalue(ref +"/pid");
  8612. var sPatnm = model.getvalue(ref +"/patnm");
  8613. var sPatsex = model.getvalue(ref +"/patsex");
  8614. var sPatage = model.getvalue(ref +"/patage");
  8615. var sPatsexage = sPatsex + "/" + sPatage;
  8616. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8617. var sBtype = model.getvalue(ref +"/btype");
  8618. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8619. var sDt = model.getvalue(ref +"/dt");
  8620. var sPidW = 85;
  8621. var sBarcodeW = 120; // 110였음
  8622. var sBtypeW = 10;
  8623. var sBGGCno = model.getvalue(ref +"/bggc");
  8624. //sSndMsg = "^@" + "\n";
  8625. //sSndMsg = "^default" + "\n";
  8626. sSndMsg += "N" + "\n";
  8627. sSndMsg += "JF" + "\n";
  8628. sSndMsg += "D9" + "\n";
  8629. sSndMsg += "S2" + "\n";
  8630. sSndMsg += "Q223,27" + "\n";
  8631. sSndMsg += "q456" + "\n";
  8632. iXPos = Number(sLeftBank);
  8633. iYPos = Number(sTopBank);
  8634. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sStr + "\""+ "\n";
  8635. //iXPos = Number(sLeftBank) + 140;
  8636. //iYPos = Number(sTopBank) + 5;
  8637. //sSndMsg += "A" + iXPos + "," + iYPos + ",0,2,1,1,N," + "\"" + "*" + sBcno + "*" + "\""+ "\n";
  8638. iXPos = Number(sLeftBank) + 300;
  8639. iYPos = Number(sTopBank);
  8640. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + "Serum" + "\""+ "\n";
  8641. iXPos = Number(sLeftBank) + 25;
  8642. iYPos = Number(sTopBank) + 28;
  8643. sSndMsg += "B" + iXPos + "," + iYPos + ",0,3,2,5,93,N," + "\"" + sPid + "\""+ "\n";
  8644. iXPos = Number(sLeftBank) + 260;
  8645. iYPos = Number(sTopBank) + 35;
  8646. sSndMsg += "A" + iXPos + "," + iYPos + ",0,5,1,1,N," + "\"" + sBtype + "\""+ "\n";
  8647. iXPos = Number(sLeftBank);
  8648. iYPos = Number(sTopBank) + 124;
  8649. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sPid + "\""+ "\n";
  8650. iXPos = Number(sLeftBank) + 120;
  8651. iYPos = Number(sTopBank) + 120;
  8652. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sPatnm + "\""+ "\n";
  8653. iXPos = Number(sLeftBank) + 220;
  8654. iYPos = Number(sTopBank) + 120;
  8655. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "채혈일시:" + "\""+ "\n";
  8656. iXPos = Number(sLeftBank) + 330;
  8657. iYPos = Number(sTopBank) + 125;
  8658. sSndMsg += "A" + iXPos + "," + iYPos + ",0,1,1,1,N," + "\"" + sDt.substr(5) + "\""+ "\n";
  8659. iXPos = Number(sLeftBank);
  8660. iYPos = Number(sTopBank) + 145;
  8661. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + "Plain 6ml" + "\""+ "\n";
  8662. iXPos = Number(sLeftBank);
  8663. iYPos = Number(sTopBank) + 165;
  8664. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "검체채취일시:" + "\""+ "\n";
  8665. iXPos = Number(sLeftBank);
  8666. iYPos = Number(sTopBank) + 190;
  8667. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "채혈자:" + "\""+ "\n";
  8668. iXPos = Number(sLeftBank) + 200;
  8669. iYPos = Number(sTopBank) + 190;
  8670. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + "확인자:" + "\""+ "\n";
  8671. sSndMsg += "P1"+ "\n";
  8672. //alert(sSndMsg);
  8673. CommAX.SendMsg(sSndMsg);
  8674. }else if(sPrntKind == "11"){
  8675. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  8676. var sStr = "보관지정";
  8677. var sRoomcd = model.getvalue(ref +"/roomcd");
  8678. var sPid = model.getvalue(ref +"/pid");
  8679. var sPatnm = model.getvalue(ref +"/patnm");
  8680. var sPatsex = model.getvalue(ref +"/patsex");
  8681. var sPatage = model.getvalue(ref +"/patage");
  8682. var sPatsexage = sPatsex + "/" + sPatage;
  8683. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8684. var sBtype = model.getvalue(ref +"/btype");
  8685. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8686. var sDt = model.getvalue(ref +"/dt");
  8687. var sPidW = 85;
  8688. var sBarcodeW = 120; // 110였음
  8689. var sBtypeW = 10;
  8690. var sBGGCno = model.getvalue(ref +"/bggc");
  8691. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  8692. iXPos = Number(sLeftBank) + 155;
  8693. iYPos = Number(sTopBank) + 22;
  8694. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8695. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBGGCno.substring(0, 9));
  8696. iXPos = Number(sLeftBank) + 265;
  8697. iYPos = Number(sTopBank) + 22;
  8698. sSndMsg += lzzfBP_ChangeFont("C", 20, 20); // 폰트 설정
  8699. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBGGCno.substring(9));
  8700. iXPos = Number(sLeftBank);
  8701. iYPos = Number(sTopBank);
  8702. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,25,25^FH^FD" + sStr + "^FS^CI1";
  8703. //iXPos = Number(sLeftBank) + 10;
  8704. //iYPos = Number(sTopBank) + 25;
  8705. //sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  8706. //sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 70, "*" + sPid + "*"); // 바코드
  8707. iXPos = Number(sLeftBank) + 10;
  8708. iYPos = Number(sTopBank) + 25;
  8709. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  8710. sSndMsg += "^BY1,2.0";//
  8711. sSndMsg += "^B3" + "N" + ",N," + "70" + ",N,N^FD" + "*" + sPid + "*" + "^FS";//바코드 크기
  8712. iXPos = Number(sLeftBank);
  8713. iYPos = Number(sTopBank) + 100;
  8714. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8715. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  8716. sSndMsg += "^CFA30,30^FO"+iXPos+","+iYPos+"^FD" + sPid + "^FS";
  8717. iXPos = Number(sLeftBank) + 150;
  8718. iYPos = Number(sTopBank) + 100;
  8719. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,25,25^FH^FD" + sPatnm + "^FS^CI1";
  8720. iXPos = Number(sLeftBank) + 155;
  8721. iYPos = Number(sTopBank) + 45; // 75 였음
  8722. sSndMsg += lzzfBP_ChangeFont("C", 50, 30); // 폰트 설정
  8723. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); // 혈액형
  8724. sSndMsg += "^XZ"
  8725. CommAX.SendMsg(sSndMsg);
  8726. }else if(sPrntKind == "9"){
  8727. sSndMsg = "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  8728. var sStr = "보관검체";
  8729. var sRoomcd = model.getvalue(ref +"/roomcd");
  8730. var sPid = model.getvalue(ref +"/pid");
  8731. var sPatnm = model.getvalue(ref +"/patnm");
  8732. var sPatsex = model.getvalue(ref +"/patsex");
  8733. var sPatage = model.getvalue(ref +"/patage");
  8734. var sPatsexage = sPatsex + "/" + sPatage;
  8735. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8736. var sBtype = model.getvalue(ref +"/btype");
  8737. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8738. var sDt = model.getvalue(ref +"/dt");
  8739. var sPidW = 85;
  8740. var sBarcodeW = 120; // 110였음
  8741. var sBtypeW = 10;
  8742. var sBGGCno = model.getvalue(ref +"/bggc");
  8743. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  8744. iXPos = Number(sLeftBank) + 400;
  8745. iYPos = Number(sTopBank) + 5;
  8746. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8747. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "Serum");
  8748. iXPos = Number(sLeftBank);
  8749. iYPos = Number(sTopBank);
  8750. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,40,40^FH^FD" + sStr + "^FS^CI1";
  8751. iXPos = Number(sLeftBank) + 20;
  8752. iYPos = Number(sTopBank) + 40;
  8753. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  8754. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 120, "*" + sPid + "*"); // 바코드
  8755. iXPos = Number(sLeftBank) + 5;
  8756. iYPos = Number(sTopBank) + 165;
  8757. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8758. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  8759. iXPos = Number(sLeftBank) + 190;
  8760. iYPos = Number(sTopBank) + 165;
  8761. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,35,35^FH^FD" + sPatnm + "^FS^CI1";
  8762. iXPos = Number(sLeftBank) + 320;
  8763. iYPos = Number(sTopBank) + 165;
  8764. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,20,20^FH^FD" + "채혈일시:" + "^FS^CI1";
  8765. iXPos = Number(sLeftBank) + 430;
  8766. iYPos = Number(sTopBank) + 50; // 75 였음
  8767. sSndMsg += lzzfBP_ChangeFont("C", 100, 40); // 폰트 설정
  8768. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBtype); // 혈액형
  8769. iXPos = Number(sLeftBank) + 440;
  8770. iYPos = Number(sTopBank) + 165;
  8771. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  8772. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt.substr(5));
  8773. iXPos = Number(sLeftBank) + 5;
  8774. iYPos = Number(sTopBank) + 195;
  8775. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8776. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "Plain 6ml");
  8777. //iXPos = Number(sLeftBank) + 190;
  8778. //iYPos = Number(sTopBank) + 190;
  8779. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sBcollNm, 1, 1);
  8780. //sSndMsg += CommAX.HanImageData();
  8781. iXPos = Number(sLeftBank) + 320;
  8782. iYPos = Number(sTopBank) + 195;
  8783. sSndMsg += lzzfBP_ChangeFont("C", 30, 20); // 폰트 설정
  8784. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sRoomcd);
  8785. iXPos = Number(sLeftBank) + 2;
  8786. iYPos = Number(sTopBank) + 230;
  8787. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "검체채취일시:" + "^FS^CI1";
  8788. iXPos = Number(sLeftBank) + 2;
  8789. iYPos = Number(sTopBank) + 260;
  8790. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "채혈자:" + "^FS^CI1";
  8791. iXPos = Number(sLeftBank) + 320;
  8792. iYPos = Number(sTopBank) + 260;
  8793. sSndMsg += "^CI14^FO"+iXPos+","+ iYPos +"^AQN,30,30^FH^FD" + "확인자:" + "^FS^CI1";
  8794. sSndMsg += "^XZ"
  8795. CommAX.SendMsg(sSndMsg);
  8796. }else{
  8797. var sStr = "보관검체";
  8798. var sRoomcd = model.getvalue(ref +"/roomcd");
  8799. var sPid = model.getvalue(ref +"/pid");
  8800. var sPatnm = model.getvalue(ref +"/patnm");
  8801. var sPatsex = model.getvalue(ref +"/patsex");
  8802. var sPatage = model.getvalue(ref +"/patage");
  8803. var sPatsexage = sPatsex + "/" + sPatage;
  8804. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8805. var sBtype = model.getvalue(ref +"/btype");
  8806. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8807. var sDt = model.getvalue(ref +"/dt");
  8808. var sPidW = 85;
  8809. var sBarcodeW = 120; // 110였음
  8810. var sBtypeW = 10;
  8811. var sBGGCno = model.getvalue(ref +"/bggc");
  8812. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  8813. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  8814. if(sPid.length == 10){
  8815. sBarcodeW = 90;// 90이었음
  8816. sBtypeW = 10;
  8817. }
  8818. sSndMsg = "AA103500500"; // 시작위치 셋팅
  8819. iXPos = Number(sLeftBank);
  8820. iYPos = Number(sTopBank);
  8821. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sStr);
  8822. iXPos = Number(sLeftBank) + 160;
  8823. iYPos = Number(sTopBank) + 8;
  8824. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sRoomcd;
  8825. iXPos = Number(sLeftBank) + 260;
  8826. iYPos = Number(sTopBank) + 8;
  8827. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPatsexage;
  8828. iXPos = Number(sLeftBank) + 10;
  8829. iYPos = Number(sTopBank) + 35;
  8830. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm, 2, 2);
  8831. iXPos = Number(sLeftBank) + 200;
  8832. iYPos = Number(sTopBank) + 35;
  8833. sSndMsg += "V" + iYPos + "H" + iXPos + "L0203S" + sPid + "L0101";;
  8834. iXPos = Number(sLeftBank) + sBtypeW;
  8835. iYPos = Number(sTopBank) + 110; // 75 였음
  8836. sSndMsg += "V" + iYPos + "H" + iXPos + "L0303M" + sBtype + "L0101";
  8837. iXPos = Number(sLeftBank) + 10;
  8838. iYPos = Number(sTopBank) + 90; // 160 였음
  8839. if(sBGGCno != ""){ // 2009-03-07 정은 수정
  8840. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBGGCno;
  8841. }
  8842. iXPos = Number(sLeftBank) + sBarcodeW + 20;
  8843. iYPos = Number(sTopBank) + 80;
  8844. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02070" + sPid; // 바코드
  8845. iXPos = Number(sLeftBank) + 170;
  8846. iYPos = Number(sTopBank) + 170;
  8847. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + "*"+sPid+"*";
  8848. iXPos = Number(sLeftBank) + 10;
  8849. iYPos = Number(sTopBank) + 200;
  8850. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sDt;
  8851. iXPos = Number(sLeftBank) + 220;
  8852. iYPos = Number(sTopBank) + 190;
  8853. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sBcollNm);
  8854. sSndMsg += "Q" + "1" + "Z";
  8855. CommAX.SendMsg(sSndMsg);
  8856. }
  8857. }
  8858. /**
  8859. * @group :
  8860. * @ver : 2010.01.14
  8861. * @by : 박정은
  8862. * @---------------------------------------------------
  8863. * @type : function
  8864. * @access : public
  8865. * @desc : 보관검체 출력
  8866. * @param : ref - 보관검체 인스턴스
  8867. * count - 진검바코드 갯수
  8868. * @return :
  8869. * @---------------------------------------------------
  8870. * 채혈화면에서 보관검체출력시 TRLLC80101
  8871. * 혈액은행 보관검체 등록시 TXLBT10902
  8872. */
  8873. function fKeLabel_B472(ref, count){
  8874. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  8875. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  8876. var portOpenCheck = "";
  8877. var LCount = 0;
  8878. var iXPos = 0;
  8879. var iYPos = 0;
  8880. if(count == null || count == ""){
  8881. LCount = 0;
  8882. }else{
  8883. LCount = count;
  8884. }
  8885. var sSndMsg = "";
  8886. if (sPrntKind == 0) return;
  8887. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  8888. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  8889. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  8890. var sB472sizegbn = model.getValue(barcdRef + "[1]/blank/b472size");
  8891. if(sCommKind == "01") {
  8892. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  8893. } else if(sCommKind == "02") {
  8894. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  8895. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  8896. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  8897. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  8898. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  8899. CommAX.CommPort = sComm;
  8900. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  8901. portOpenCheck = CommAX.PortOpen("true");
  8902. } else if(sCommKind == "03") {
  8903. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  8904. var sEqmtCD = model.getValue(barcdRef + "[1]/comm03/eqmtcd");
  8905. }
  8906. if( (portOpenCheck == "TRUE" && sCommKind == "02")
  8907. || sCommKind == "01" || sCommKind == "07"
  8908. || sCommKind == "03"){
  8909. //var sStr = "보관검체";
  8910. var sRoomcd = model.getvalue(ref +"/roomcd");
  8911. var sPid = model.getvalue(ref +"/pid");
  8912. var sPatnm = model.getvalue(ref +"/patnm");
  8913. var sPatsex = model.getvalue(ref +"/patsex");
  8914. var sPatage = model.getvalue(ref +"/patage");
  8915. var sPatsexage = sPatsex + "/" + sPatage;
  8916. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  8917. var sBtype = model.getvalue(ref +"/btype");
  8918. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  8919. var sDt = model.getvalue(ref +"/dt");
  8920. var sPidW = 85;
  8921. var sBarcodeW = 120; // 110였음
  8922. var sBtypeW = 10;
  8923. var sBGGCno = model.getvalue(ref +"/bggc");
  8924. var sB472size = "";
  8925. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  8926. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  8927. if(sPid.length == 10){
  8928. sBarcodeW = 90;// 90이었음
  8929. sBtypeW = 10;
  8930. }
  8931. //sSndMsg += "{D0350,0550,0330|}"; // 라벨사이즈
  8932. if(sB472sizegbn == "2"){ // 320 630
  8933. sB472size = "0340,0620,0340"; // 기존라벨
  8934. }else{
  8935. sB472size = "0350,0550,0330"; // nUsize
  8936. }
  8937. sSndMsg += "{D" + sB472size + "|}"; // 라벨사이즈
  8938. sSndMsg += "{C|}"; // 버퍼클리어
  8939. sSndMsg += "{AX;-000,-000,+00|}"; // 피트량
  8940. iXPos = Number(sLeftBank);
  8941. iYPos = Number(sTopBank);
  8942. sSndMsg += lzzfBP_HanDisp24("보관검체", iXPos, iYPos);
  8943. iXPos = Number(sLeftBank) + 220;
  8944. iYPos = Number(sTopBank) +20;
  8945. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sRoomcd);
  8946. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sRoomcd);
  8947. iXPos = Number(sLeftBank) + 370;
  8948. iYPos = Number(sTopBank) + 20;
  8949. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sPatsexage);
  8950. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPatsexage);
  8951. iXPos = Number(sLeftBank) ;
  8952. iYPos = Number(sTopBank) + 35;
  8953. //sSndMsg += lzzfBP_HanDisp24(sPatnm, iXPos, iYPos); // 환자명 한글 24사이즈 기본
  8954. sSndMsg += lzzfBP_HanDisp48(sPatnm.substr(0,4), iXPos, iYPos); // 환자명 한글 48사이즈
  8955. iXPos = Number(sLeftBank) + 230;
  8956. iYPos = Number(sTopBank) + 75;
  8957. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 40, sPid); // 환자번호 크게
  8958. //sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPid);
  8959. iXPos = Number(sLeftBank)+5;
  8960. iYPos = Number(sTopBank) + 135; // 160 였음
  8961. if(sBGGCno != ""){ // 2009-03-07 정은 수정
  8962. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 40, 40, sBGGCno);
  8963. //sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sBGGCno);
  8964. }
  8965. iXPos = Number(sLeftBank) + sBtypeW;
  8966. iYPos = Number(sTopBank) + 200; // 75 였음
  8967. sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 60, 60, sBtype);
  8968. //sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sBtype);
  8969. iXPos = Number(sLeftBank)+150;
  8970. iYPos = Number(sTopBank)+90;
  8971. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 5, 4, "*" + sPid + "*", 120); // 바코드
  8972. iXPos = Number(sLeftBank) + 240;
  8973. iYPos = Number(sTopBank) + 240;
  8974. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, "*"+sPid+"*");
  8975. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "*"+sPid+"*");
  8976. iXPos = Number(sLeftBank) + 5;
  8977. iYPos = Number(sTopBank) + 275;
  8978. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sDt);
  8979. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sDt);
  8980. iXPos = Number(sLeftBank) + 250;
  8981. iYPos = Number(sTopBank) + 250;
  8982. sSndMsg += lzzfBP_HanDisp24(sBcollNm, iXPos, iYPos); // 채혈자
  8983. sSndMsg += "{XS;I,0001,0002C5101|}"; // end
  8984. if(sCommKind == "01") {
  8985. CommAX.SendMessageToLPT(sSndMsg);
  8986. } else if(sCommKind == "02") {
  8987. CommAX.SendMessage(sSndMsg);
  8988. }
  8989. //출력할 진검 바코드가 없을시에만 port close
  8990. if(portOpenCheck == "TRUE" && sCommKind == "02" && LCount == 0){
  8991. CommAX.PortOpen("false");
  8992. }
  8993. }else if(portOpenCheck == "TRUE" && sCommKind == "02"){
  8994. messageBox("아래 사항을 확인후 재출력해주십시오."
  8995. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  8996. + " \n 2.케이블 확인"
  8997. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  8998. return;
  8999. }
  9000. }
  9001. /**
  9002. * @group :
  9003. * @ver : 2009.04.07
  9004. * @by : 김성희
  9005. * @---------------------------------------------------
  9006. * @type : function
  9007. * @access : public
  9008. * @desc : 환자명바코드출력
  9009. * @param : ref - 환자명바코드출력정보 인스턴스
  9010. * @return :
  9011. * @---------------------------------------------------
  9012. */
  9013. function fPatNmBarCdLabel(ref){
  9014. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  9015. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  9016. var portOpenCheck = "";
  9017. var iXPos = 0;
  9018. var iYPos = 0;
  9019. //alert("fPatNmBarCdLabel");
  9020. var sSndMsg = "";
  9021. if (sPrntKind == 0) return;
  9022. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  9023. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  9024. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  9025. if(sCommKind == "01") {
  9026. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  9027. } else if(sCommKind == "02") {
  9028. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  9029. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  9030. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  9031. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  9032. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  9033. CommAX.CommPort = sComm;
  9034. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  9035. portOpenCheck = CommAX.PortOpen("true");
  9036. } else if(sCommKind == "03") {
  9037. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  9038. var sEqmtCD = model.getValue(barcdRef + "[1]/comm03/eqmtcd");
  9039. }
  9040. if( (portOpenCheck == "TRUE" && sCommKind == "02")
  9041. || sCommKind == "01"
  9042. || sCommKind == "03"){
  9043. var sStr = "";
  9044. var sPid = model.getvalue(ref +"/pid");
  9045. var sPatnm = model.getvalue(ref +"/patnm");
  9046. var sPatsexage = model.getvalue(ref +"/patsexage");
  9047. var sDt = model.getvalue(ref +"/printdt");
  9048. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  9049. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  9050. //alert(sPrntKind);
  9051. if(sPrntKind == "1" || sPrntKind == "5") { //zebra
  9052. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  9053. //등록번호
  9054. iXPos = Number(sLeftBank)+200;
  9055. iYPos = Number(sTopBank)+10;
  9056. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9057. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*"+sPid+"*");
  9058. //alert("등록번호" + sPid);
  9059. //바코드
  9060. iXPos = Number(sLeftBank) + 90;
  9061. iYPos = Number(sTopBank) + 60;
  9062. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  9063. sSndMsg += lzzfBP_BarCode_Code39_300dpi(iXPos, iYPos, "N", 120, "*" + sPid + "*"); // 바코드
  9064. //sSndMsg += "^BY2,2.0"; //
  9065. //sSndMsg += "^B3" + "N" + ",N," + "100" + ",N,N^FD" + "*" + sPid + "*" + "^FS";//바코드 크기
  9066. //환자명
  9067. iXPos = Number(sLeftBank) + 10;
  9068. iYPos = Number(sTopBank) + 185;
  9069. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 2, 2);
  9070. sSndMsg += CommAX.HanImageData();
  9071. //등록번호
  9072. iXPos = Number(sLeftBank)+220;
  9073. iYPos = Number(sTopBank)+190;
  9074. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9075. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  9076. if(sCommKind == "01") {
  9077. CommAX.SendMessageToLPT(sSndMsg);
  9078. sSndMsg = "";
  9079. } else if(sCommKind == "02") {
  9080. CommAX.SendMessage(sSndMsg);
  9081. sSndMsg = "";
  9082. }
  9083. //성별/나이
  9084. iXPos = Number(sLeftBank) + 420;
  9085. iYPos = Number(sTopBank) + 190;
  9086. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatsexage, 2, 2);
  9087. //sSndMsg += CommAX.HanImageData();
  9088. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9089. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatsexage);
  9090. if(sCommKind == "01") {
  9091. CommAX.SendMessageToLPT(sSndMsg);
  9092. sSndMsg = "";
  9093. } else if(sCommKind == "02") {
  9094. CommAX.SendMessage(sSndMsg);
  9095. sSndMsg = "";
  9096. }
  9097. //출력일시
  9098. iXPos = Number(sLeftBank) + 10;
  9099. iYPos = Number(sTopBank) + 240;
  9100. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9101. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt);
  9102. sSndMsg += lzzfBP_EndFormat();
  9103. if(sCommKind == "01") {
  9104. CommAX.SendMessageToLPT(sSndMsg);
  9105. sSndMsg = "";
  9106. } else if(sCommKind == "02") {
  9107. CommAX.SendMessage(sSndMsg);
  9108. sSndMsg = "";
  9109. }
  9110. CommAX.PortOpen("false");
  9111. }else if(sPrntKind == "9") { //zebra 300dpi
  9112. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  9113. //등록번호
  9114. iXPos = Number(sLeftBank)+140;
  9115. iYPos = Number(sTopBank)+10;
  9116. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9117. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*"+sPid+"*");
  9118. //alert("등록번호" + sPid);
  9119. //바코드
  9120. iXPos = Number(sLeftBank) + 60;
  9121. iYPos = Number(sTopBank) + 30;
  9122. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  9123. sSndMsg += "^BY3,2.4,130"; //
  9124. sSndMsg += "^B3" + "N" + ",N," + "150" + ",N,N^FD" + "*" + sPid + "*" + "^FS";//바코드 크기
  9125. //환자명
  9126. // iXPos = Number(sLeftBank) + 10;
  9127. // iYPos = Number(sTopBank) + 190;
  9128. // sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1, 1);
  9129. // sSndMsg += CommAX.HanImageData();
  9130. //등록번호
  9131. // iXPos = Number(sLeftBank)+ 10;
  9132. // iYPos = Number(sTopBank)+190;
  9133. // sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9134. // sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  9135. //환자명
  9136. // iWidth = 0;
  9137. // aStr = "";
  9138. // aFlag = new Array();
  9139. //
  9140. // iXPos = Number(sLeftBank) + 10;
  9141. // //sPatnm = sPatnm.substr(0, 20)
  9142. // aStr = lpzfGetHanGul(sPatnm, aFlag);
  9143. // for (var iNo=0; iNo < aStr.length; iNo++) {
  9144. //
  9145. // //----------------------
  9146. // if (aFlag[iNo] == "E") {
  9147. // iYPos = Number(sTopBank) + 190;
  9148. // sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  9149. // iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  9150. // } else {
  9151. // iYPos = Number(sTopBank) + 190;
  9152. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 2, 1); //20120504 환자명 수정
  9153. // sSndMsg += CommAX.HanImageData();
  9154. // iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  9155. // }
  9156. // }
  9157. iWidth = 0;
  9158. aStr = "";
  9159. aFlag = new Array();
  9160. iXPos = Number(sLeftBank) + 10;
  9161. //sPatnm = sPatnm.substr(0, 20)
  9162. aStr = lpzfGetHanGul(sPatnm, aFlag);
  9163. for (var iNo=0; iNo < aStr.length; iNo++) {
  9164. //----------------------
  9165. if (aFlag[iNo] == "E") {
  9166. iYPos = Number(sTopBank) + 190;
  9167. //iXPos = Number(iXPos) + Number(iWidth);
  9168. sSndMsg += "^CFF30,30^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS";
  9169. iWidth = iWidth + (Number(aStr[iNo].length) * 12);
  9170. } else {
  9171. iYPos = Number(sTopBank) + 190;
  9172. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,30,30^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  9173. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  9174. }
  9175. }
  9176. // alert("sSndMsg" + sSndMsg);
  9177. // alert("이름" + sPatnm);
  9178. //----110531 환자명 영문출력 수정 이재오
  9179. //등록번호
  9180. iXPos = Number(sLeftBank)+200;
  9181. iYPos = Number(sTopBank)+190;
  9182. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9183. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  9184. if(sCommKind == "01") {
  9185. CommAX.SendMessageToLPT(sSndMsg);
  9186. sSndMsg = "";
  9187. } else if(sCommKind == "02") {
  9188. CommAX.SendMessage(sSndMsg);
  9189. sSndMsg = "";
  9190. }
  9191. //성별/나이
  9192. iXPos = Number(sLeftBank) + 430;
  9193. iYPos = Number(sTopBank) + 190;
  9194. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatsexage, 2, 2);
  9195. //sSndMsg += CommAX.HanImageData();
  9196. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9197. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatsexage);
  9198. if(sCommKind == "01") {
  9199. CommAX.SendMessageToLPT(sSndMsg);
  9200. sSndMsg = "";
  9201. } else if(sCommKind == "02") {
  9202. CommAX.SendMessage(sSndMsg);
  9203. sSndMsg = "";
  9204. }
  9205. //출력일시
  9206. iXPos = Number(sLeftBank) + 10;
  9207. iYPos = Number(sTopBank) + 220;
  9208. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  9209. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt);
  9210. sSndMsg += lzzfBP_EndFormat();
  9211. if(sCommKind == "01") {
  9212. CommAX.SendMessageToLPT(sSndMsg);
  9213. sSndMsg = "";
  9214. } else if(sCommKind == "02") {
  9215. CommAX.SendMessage(sSndMsg);
  9216. sSndMsg = "";
  9217. }
  9218. CommAX.PortOpen("false");
  9219. }else if(sPrntKind == "10"){ //zebra ELP 20120306
  9220. //alert("ELP");
  9221. sSndMsg += "N" + "\n";
  9222. sSndMsg += "JF" + "\n";
  9223. sSndMsg += "D9" + "\n";
  9224. sSndMsg += "S2" + "\n";
  9225. sSndMsg += "Q223,27" + "\n";
  9226. sSndMsg += "q456" + "\n";
  9227. //등록번호
  9228. iXPos = Number(sLeftBank)+140;
  9229. iYPos = Number(sTopBank) + 10;
  9230. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + "*"+sPid+"*" + "\""+ "\n";
  9231. //바코드
  9232. iXPos = Number(sLeftBank) + 90;
  9233. iYPos = Number(sTopBank) + 30;
  9234. sSndMsg += "B" + iXPos + "," + iYPos + ",0,3,2,5,93,N," + "\"" + sPid + "\""+ "\n";
  9235. //환자명
  9236. iXPos = Number(sLeftBank) + 10;
  9237. iYPos = Number(sTopBank) + 145;
  9238. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,1,1,N," + "\"" + sPatnm + "\""+ "\n";
  9239. //등록번호
  9240. iXPos = Number(sLeftBank)+ 140;
  9241. iYPos = Number(sTopBank) + 130;
  9242. sSndMsg += "A" + iXPos + "," + iYPos + ",0,9,2,2,N," + "\"" + sPid + "\""+ "\n";
  9243. //성별/나이
  9244. //등록번호
  9245. iXPos = Number(sLeftBank)+ 340;
  9246. iYPos = Number(sTopBank) + 145;
  9247. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sPatsexage + "\""+ "\n";
  9248. //출력일시
  9249. iXPos = Number(sLeftBank)+ 10;
  9250. iYPos = Number(sTopBank) + 180;
  9251. sSndMsg += "A" + iXPos + "," + iYPos + ",0,3,1,1,N," + "\"" + sDt + "\""+ "\n";
  9252. sSndMsg += ""+ "\n";
  9253. sSndMsg += "P1"+ "\n";
  9254. //CommAX.PortOpen("false");
  9255. CommAX.SendMsg(sSndMsg);
  9256. //alert(sSndMsg);
  9257. }else if(sPrntKind == "11"){ //GX420 20120229
  9258. //alert(sSndMsg);
  9259. sSndMsg += "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:kfont3.FNT^FS";
  9260. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  9261. //iXPos = Number(sLeftBank) + 20;
  9262. // iYPos = Number(sTopBank) + 130;
  9263. // sSndMsg += lzzfBP_ChangeFont("C", 14, 14); // 폰트 설정
  9264. // sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid); //환자등록번호
  9265. //등록번호
  9266. iXPos = Number(sLeftBank)+140;
  9267. iYPos = Number(sTopBank)+10;
  9268. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  9269. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, "*"+sPid+"*");
  9270. //alert("등록번호" + sPid);
  9271. //바코드
  9272. iXPos = Number(sLeftBank) + 100;
  9273. iYPos = Number(sTopBank) + 30;
  9274. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  9275. sSndMsg += lzzfBP_ChangeFont("F", 10, 10);
  9276. sSndMsg += lzzfBP_BarCode_Code39(iXPos, iYPos, "N", 100, "*" + sPid + "*"); // 바코드
  9277. //sSndMsg += "^BY3,2.4,130"; //
  9278. //sSndMsg += "^B3" + "N" + ",N," + "100" + ",N,N^FD" + "*" + sPid + "*" + "^FS";//바코드 크기
  9279. //환자명
  9280. //iXPos = Number(sLeftBank) + 10;
  9281. //iYPos = Number(sTopBank) + 190;
  9282. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1, 1);
  9283. //sSndMsg += CommAX.HanImageData();
  9284. iWidth = 0;
  9285. aStr = "";
  9286. aFlag = new Array();
  9287. iXPos = Number(sLeftBank) + 10;
  9288. aStr = lpzfGetHanGul(sPatnm, aFlag);
  9289. for (var iNo=0; iNo < aStr.length; iNo++) {
  9290. //----------------------
  9291. if (aFlag[iNo] == "E") {
  9292. iYPos = Number(sTopBank) + 145;
  9293. sSndMsg += "^CFF20,20^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  9294. iWidth = iWidth + (Number(aStr[iNo].length) * 28);
  9295. } else {
  9296. iYPos = Number(sTopBank) + 145;
  9297. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+ iYPos +"^AQN,25,20^FH^FD" + aStr[iNo] + "^FS^CI1"; // 검체표시명(한글)
  9298. //sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  9299. //sSndMsg += CommAX.HanImageData();
  9300. iWidth = iWidth + (Number(aStr[iNo].length) * 24);
  9301. }
  9302. }
  9303. //등록번호
  9304. iXPos = Number(sLeftBank)+140;
  9305. iYPos = Number(sTopBank)+145;
  9306. sSndMsg += lzzfBP_ChangeFont("C", 15, 15);
  9307. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  9308. //성별 나이
  9309. iXPos = Number(sLeftBank) + 340;
  9310. iYPos = Number(sTopBank) + 145;
  9311. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatsexage, 2, 2);
  9312. //sSndMsg += CommAX.HanImageData();
  9313. sSndMsg += lzzfBP_ChangeFont("C", 15, 15);
  9314. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatsexage);
  9315. //출력일시
  9316. iXPos = Number(sLeftBank) + 10;
  9317. iYPos = Number(sTopBank) + 180;
  9318. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  9319. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt);
  9320. sSndMsg += lzzfBP_EndFormat();
  9321. CommAX.SendMsg(sSndMsg);
  9322. //alert(sSndMsg);
  9323. }
  9324. }else if(portOpenCheck == "TRUE" && sCommKind == "02"){
  9325. messageBox("아래 사항을 확인후 재출력해주십시오."
  9326. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  9327. + " \n 2.케이블 확인"
  9328. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  9329. //alert(sSndMsg);
  9330. return;
  9331. }
  9332. }
  9333. /**
  9334. * @group :
  9335. * @ver : 2009.04.07
  9336. * @by : 김성희
  9337. * @---------------------------------------------------
  9338. * @type : function
  9339. * @access : public
  9340. * @desc : 환자명바코드출력
  9341. * @param : ref - 환자명바코드출력정보 인스턴스
  9342. * @return :
  9343. * @---------------------------------------------------
  9344. */
  9345. function fPatNmBarCdLabelSaTo(ref){
  9346. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  9347. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  9348. var portOpenCheck = "";
  9349. var iXPos = 0;
  9350. var iYPos = 0;
  9351. var sSndMsg = "";
  9352. if (sPrntKind == 0) return;
  9353. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  9354. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  9355. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  9356. var sStr = "";
  9357. var sPid = model.getvalue(ref +"/pid");
  9358. var sPatnm = model.getvalue(ref +"/patnm");
  9359. var sPatsexage = model.getvalue(ref +"/patsexage");
  9360. var sDt = model.getvalue(ref +"/printdt");
  9361. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  9362. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  9363. sSndMsg = "AA103500500"; // 시작위치 셋팅
  9364. //등록번호
  9365. iXPos = Number(sLeftBank)+130;
  9366. iYPos = Number(sTopBank)+10;
  9367. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid;
  9368. //바코드
  9369. iXPos = Number(sLeftBank) + 60;
  9370. iYPos = Number(sTopBank) + 30;
  9371. sSndMsg += "V" + iYPos + "H" + iXPos + "BG02100" + sPid; // 바코드
  9372. //환자명
  9373. iXPos = Number(sLeftBank) + 10;
  9374. iYPos = Number(sTopBank) + 155;
  9375. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm);
  9376. //등록번호
  9377. iXPos = Number(sLeftBank)+200;
  9378. iYPos = Number(sTopBank)+160;
  9379. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid;
  9380. //성별/나이
  9381. iXPos = Number(sLeftBank) + 330;
  9382. iYPos = Number(sTopBank) + 160;
  9383. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPatsexage;
  9384. //출력일시
  9385. iXPos = Number(sLeftBank) + 10;
  9386. iYPos = Number(sTopBank) + 195;
  9387. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sDt;
  9388. sSndMsg += "Q" + "1" + "Z";
  9389. CommAX.SendMsg(sSndMsg);
  9390. }
  9391. /**
  9392. * @group :
  9393. * @ver : 2010.01.14
  9394. * @by : 박정은
  9395. * @---------------------------------------------------
  9396. * @type : function
  9397. * @access : public
  9398. * @desc : 환자명바코드출력
  9399. * @param : ref - 환자명바코드출력정보 인스턴스
  9400. * @return :
  9401. * @---------------------------------------------------
  9402. */
  9403. function fPatNmBarCdLabel_B472(ref){
  9404. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  9405. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  9406. var portOpenCheck = "";
  9407. var iXPos = 0;
  9408. var iYPos = 0;
  9409. var sSndMsg = "";
  9410. if (sPrntKind == 0) return;
  9411. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  9412. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  9413. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  9414. var sB472sizegbn = model.getValue(barcdRef + "[1]/blank/b472size");
  9415. if(sCommKind == "01") {
  9416. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  9417. } else if(sCommKind == "02") {
  9418. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  9419. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  9420. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  9421. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  9422. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  9423. CommAX.CommPort = sComm;
  9424. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  9425. portOpenCheck = CommAX.PortOpen("true");
  9426. } else if(sCommKind == "03") {
  9427. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  9428. var sEqmtCD = model.getValue(barcdRef + "[1]/comm03/eqmtcd");
  9429. }
  9430. if( (portOpenCheck == "TRUE" && sCommKind == "02")
  9431. || sCommKind == "01"
  9432. || sCommKind == "07"
  9433. || sCommKind == "03"){
  9434. var sStr = "";
  9435. var sPid = model.getvalue(ref +"/pid");
  9436. var sPatnm = model.getvalue(ref +"/patnm");
  9437. var sPatsexage = model.getvalue(ref +"/patsexage");
  9438. var sDt = model.getvalue(ref +"/printdt");
  9439. var sB472size = "";
  9440. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  9441. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  9442. //sSndMsg += "{D0350,0550,0330|}"; // 라벨사이즈
  9443. if(sB472sizegbn == "2"){ // 320 630
  9444. sB472size = "0340,0620,0340"; // 기존라벨
  9445. }else{
  9446. sB472size = "0350,0550,0330"; // nUsize
  9447. }
  9448. sSndMsg += "{D" + sB472size + "|}"; // 라벨사이즈
  9449. sSndMsg += "{C|}"; // 버퍼클리어
  9450. sSndMsg += "{AX;+000,+000,+00|}"; // 피트량
  9451. //등록번호
  9452. iXPos = Number(sLeftBank)+130;
  9453. iYPos = Number(sTopBank)+20;
  9454. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, "*"+sPid+"*");
  9455. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "*"+sPid+"*");
  9456. //바코드
  9457. iXPos = Number(sLeftBank) + 50;
  9458. iYPos = Number(sTopBank) + 30;
  9459. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 5, 4, "*" + sPid + "*", 120); // 바코드
  9460. sSndMsg += lzzfBP_FiendOrigin(iXPos, iYPos);//위치
  9461. //환자명
  9462. iXPos = Number(sLeftBank) + 10;
  9463. iYPos = Number(sTopBank) + 160;
  9464. sSndMsg += lzzfBP_HanDisp24(sPatnm, iXPos, iYPos); // 환자명 한글
  9465. //등록번호
  9466. iXPos = Number(sLeftBank)+180;
  9467. iYPos = Number(sTopBank)+180;
  9468. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sPid);
  9469. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPid);
  9470. //성별/나이
  9471. iXPos = Number(sLeftBank) + 340;
  9472. iYPos = Number(sTopBank) + 180;
  9473. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sPatsexage);
  9474. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPatsexage);
  9475. //출력일시
  9476. iXPos = Number(sLeftBank) + 10;
  9477. iYPos = Number(sTopBank) + 220;
  9478. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sDt);
  9479. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sDt);
  9480. sSndMsg += "{XS;I,0001,0002C5101|}";
  9481. if(sCommKind == "01") {
  9482. CommAX.SendMessageToLPT(sSndMsg);
  9483. sSndMsg = "";
  9484. } else if(sCommKind == "02") {
  9485. CommAX.SendMessage(sSndMsg);
  9486. sSndMsg = "";
  9487. }
  9488. CommAX.PortOpen("false");
  9489. }else if(portOpenCheck == "TRUE" && sCommKind == "02"){
  9490. messageBox("아래 사항을 확인후 재출력해주십시오."
  9491. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  9492. + " \n 2.케이블 확인"
  9493. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  9494. return;
  9495. }
  9496. }
  9497. /**
  9498. * @group :
  9499. * @ver : 2009.07.16
  9500. * @by : 김성희
  9501. * @---------------------------------------------------
  9502. * @type : function
  9503. * @access : public
  9504. * @desc : 면역부 Sample보관바코드
  9505. * @param : ref - Sample보관바코드출력정보 인스턴스
  9506. * @return :
  9507. * @---------------------------------------------------
  9508. */
  9509. function fSampleKeepBarCdLabel(ref){
  9510. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  9511. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  9512. var portOpenCheck = "";
  9513. var iXPos = 0;
  9514. var iYPos = 0;
  9515. var sSndMsg = "";
  9516. //alert(sPrntKind);
  9517. if (sPrntKind == 0) return;
  9518. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  9519. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  9520. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  9521. if(sCommKind == "01") {
  9522. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  9523. } else if(sCommKind == "02") {
  9524. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  9525. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  9526. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  9527. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  9528. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  9529. CommAX.CommPort = sComm;
  9530. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  9531. portOpenCheck = CommAX.PortOpen("true");
  9532. } else if(sCommKind == "03") {
  9533. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  9534. var sEqmtCD = model.getValue(barcdRef + "[1]/comm03/eqmtcd");
  9535. }
  9536. if( (portOpenCheck == "TRUE" && sCommKind == "02")
  9537. || sCommKind == "01"
  9538. || sCommKind == "03"){
  9539. var sStr = "";
  9540. var sPid = model.getvalue(ref +"/pid");
  9541. var sPatnm = model.getvalue(ref +"/patnm");
  9542. var sPatsexage = model.getvalue(ref +"/patsexage");
  9543. var sDt = model.getvalue(ref +"/printdt");
  9544. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  9545. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  9546. //alert(sPrntKind);
  9547. if(sPrntKind == "1") { //zebra
  9548. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  9549. //등록번호
  9550. iXPos = Number(sLeftBank)+20;
  9551. iYPos = Number(sTopBank)+20;
  9552. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9553. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPid);
  9554. //alert(sPatnm);
  9555. //환자명
  9556. iXPos = Number(sLeftBank) + 20;
  9557. iYPos = Number(sTopBank) + 50;
  9558. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm, 1, 1);
  9559. sSndMsg += CommAX.HanImageData();
  9560. //성별/나이
  9561. iXPos = Number(sLeftBank) + 20;
  9562. iYPos = Number(sTopBank) + 100;
  9563. sSndMsg += lzzfBP_ChangeFont("C", 20, 20);
  9564. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sPatsexage);
  9565. //출력일시
  9566. iXPos = Number(sLeftBank) +20;
  9567. iYPos = Number(sTopBank) + 130;
  9568. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  9569. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sDt);
  9570. sSndMsg += lzzfBP_EndFormat();
  9571. if(sCommKind == "01") {
  9572. CommAX.SendMessageToLPT(sSndMsg);
  9573. sSndMsg = "";
  9574. } else if(sCommKind == "02") {
  9575. CommAX.SendMessage(sSndMsg);
  9576. sSndMsg = "";
  9577. }
  9578. CommAX.PortOpen("false");
  9579. }
  9580. }else if(portOpenCheck == "TRUE" && sCommKind == "02"){
  9581. messageBox("아래 사항을 확인후 재출력해주십시오."
  9582. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  9583. + " \n 2.케이블 확인"
  9584. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  9585. return;
  9586. }
  9587. }
  9588. /**
  9589. * @group :
  9590. * @ver : 2009.07.16
  9591. * @by : 김성희
  9592. * @---------------------------------------------------
  9593. * @type : function
  9594. * @access : public
  9595. * @desc : 면역부 Sample보관바코드
  9596. * @param : ref - Sample보관바코드출력정보 인스턴스
  9597. * @return :
  9598. * @---------------------------------------------------
  9599. */
  9600. function fSampleKeepBarCdLabelSaTo(ref){
  9601. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  9602. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  9603. var portOpenCheck = "";
  9604. var iXPos = 0;
  9605. var iYPos = 0;
  9606. var sSndMsg = "";
  9607. if (sPrntKind == 0) return;
  9608. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  9609. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  9610. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  9611. var sStr = "";
  9612. var sPid = model.getvalue(ref +"/pid");
  9613. var sPatnm = model.getvalue(ref +"/patnm");
  9614. var sPatsexage = model.getvalue(ref +"/patsexage");
  9615. var sDt = model.getvalue(ref +"/printdt");
  9616. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  9617. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  9618. sSndMsg = "AA103500500"; // 시작위치 셋팅
  9619. //등록번호
  9620. iXPos = Number(sLeftBank)+10;
  9621. iYPos = Number(sTopBank)+10;
  9622. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPid;
  9623. //환자명
  9624. iXPos = Number(sLeftBank) + 10;
  9625. iYPos = Number(sTopBank) + 40;
  9626. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm);
  9627. //성별/나이
  9628. iXPos = Number(sLeftBank) + 10;
  9629. iYPos = Number(sTopBank) + 80;
  9630. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sPatsexage;
  9631. //출력일시
  9632. iXPos = Number(sLeftBank) + 10;
  9633. iYPos = Number(sTopBank) + 120;
  9634. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sDt;
  9635. sSndMsg += "Q" + "1" + "Z";
  9636. CommAX.SendMsg(sSndMsg);
  9637. }
  9638. /**
  9639. * @group :
  9640. * @ver : 2007.09.18
  9641. * @by : 최경용
  9642. * @---------------------------------------------------
  9643. * @type : function
  9644. * @access : public
  9645. * @desc : 한글 및 특수문자 Field정의
  9646. * @param : pX = 시작 가로위치 (in dots)
  9647. * @param : pY = 시작 세로위치 (in dots)
  9648. * @param : pFont = 글자크기(1-10)
  9649. * @param : pData = Field Data
  9650. * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 )
  9651. * @return :
  9652. * @---------------------------------------------------
  9653. */
  9654. function fCarePrintOutH(pX, pY, pFont, pBold, pData, pReverse) {
  9655. var sBuf = fCareFontSize(pFont, pBold);
  9656. //sBuf += CommAX.PrtImgOut("GRAPH003", pData); //채혈자
  9657. //sBuf += fCareFiendOrigin(pX, pY);
  9658. //sBuf += "^XGGRAPH003," + pFont + "," + pFont + "^FS";
  9659. sBuf += CommAX.PrtImgOut(pX, pY, pData, pFont, pFont);
  9660. sBuf += CommAX.HanImageData();
  9661. return sBuf;
  9662. }
  9663. /**
  9664. * @group :
  9665. * @ver : 2007.05.08
  9666. * @by : 최경용
  9667. * @---------------------------------------------------
  9668. * @type : function
  9669. * @access : public
  9670. * @desc : 바코드 Format 종료
  9671. * @param : pX = 시작 가로위치 (in dots)
  9672. * @param : pY = 시작 세로위치 (in dots)
  9673. * @return :
  9674. * @---------------------------------------------------
  9675. */
  9676. function fCareFiendOrigin(pX, pY) {
  9677. return "^FO" + pX + "," + pY;
  9678. }
  9679. /**
  9680. * @group : commonweb
  9681. * @ver : 2007.09.18
  9682. * @by : 최경용
  9683. * @---------------------------------------------------
  9684. * @type : function
  9685. * @access : public
  9686. * @desc : 숫자 크기정의
  9687. * @param : pFont = 폰트크기(1-10)
  9688. * @return :
  9689. * @---------------------------------------------------
  9690. */
  9691. function fCareFontSize(pFont, pBold) {
  9692. var sBuf = "";
  9693. var pW = 0;
  9694. var pH = 0;
  9695. if(pFont == 1){
  9696. pH = 10;
  9697. pW = 10;
  9698. } else if(pFont == 2){
  9699. pH = 20;
  9700. pW = 20;
  9701. } else if(pFont == 3){
  9702. pH = 30;
  9703. pW = 30;
  9704. } else if(pFont == 4){
  9705. pH = 40;
  9706. pW = 40;
  9707. } else if(pFont == 5){
  9708. pH = 50;
  9709. pW = 50;
  9710. } else if(pFont == 6){
  9711. pH = 60;
  9712. pW = 60;
  9713. } else if(pFont == 7){
  9714. pH = 70;
  9715. pW = 70;
  9716. } else if(pFont == 8){
  9717. pH = 80;
  9718. pW = 80;
  9719. } else if(pFont == 9){
  9720. pH = 90;
  9721. pW = 90;
  9722. }else{
  9723. }
  9724. if(pBold == "Y"){
  9725. sBuf = "^CFA,"+pH+","+pW;
  9726. }else{
  9727. sBuf = "^CFE"+pH+","+pW;
  9728. }
  9729. return sBuf;
  9730. }
  9731. /**
  9732. * @group :
  9733. * @ver : 2008.04.16
  9734. * @by : 윤재한
  9735. * @---------------------------------------------------
  9736. * @type : function
  9737. * @access : public
  9738. * @desc : 그리드를 엑셀로 저장한다.
  9739. * @param : Sting gridid = Grid 아이디
  9740. * @return :
  9741. * @---------------------------------------------------
  9742. */
  9743. function fSaveExcel(gridID) {
  9744. var gridObj = document.controls.item(gridID);
  9745. var filename = window.fileDialog("save",",",false,"excel","xls","All File(*.*)|*.*|Excel File(*.xls)|*.xls");
  9746. if(filename != "") {
  9747. gridObj.saveExcel(filename);
  9748. }
  9749. }
  9750. /**
  9751. * @group :
  9752. * @ver : 2009.04.29
  9753. * @by : 천현석
  9754. * @---------------------------------------------------
  9755. * @type : function
  9756. * @access : public
  9757. * @desc : 판독결과조회에서 결과저장시 특수검사결과조회화면에 조회실행.
  9758. * @param : Sting xrwid = 조회해올 화면 ID
  9759. * @return :
  9760. * @---------------------------------------------------
  9761. */
  9762. function fchildsearch(xrwid) {
  9763. var child = window.children.item(xrwid);
  9764. if( child == null){
  9765. return;
  9766. }
  9767. else{
  9768. child.javascript.Onclick_btnRef("R");
  9769. return child;
  9770. }
  9771. }
  9772. /**
  9773. * @group :
  9774. * @ver : 2009.06.04
  9775. * @by : 천현석
  9776. * @---------------------------------------------------
  9777. * @type : function
  9778. * @access : public
  9779. * @desc : 판독결과조회에서 결과저장시 특수검사결과조회화면에 있는 그리드 첫번째 환자 조회실행.
  9780. * @param : Sting xrwid = 조회해올 화면 ID
  9781. * @return :
  9782. * @---------------------------------------------------
  9783. */
  9784. function fchildsearch2(xrwid) {
  9785. var child = window.children.item(xrwid);
  9786. child.javascript.fPatChio2("grd_spclpatlist");
  9787. return child;
  9788. }
  9789. /**
  9790. * @group :
  9791. * @ver : 2009.06.30
  9792. * @by : 김성희
  9793. * @---------------------------------------------------
  9794. * @type : function
  9795. * @access : public
  9796. * @desc : 외래채혈,환자별채혈 화면에서 본인부담요율변경 대상자 확인
  9797. * @param :
  9798. * @return :
  9799. * @---------------------------------------------------
  9800. */
  9801. function fGetPrcpRcptInfo(instcd, pid, flagvalue, flag){
  9802. model.setValue("/root/hidden/prcprcptinfo/instcd" ,instcd);
  9803. model.setValue("/root/hidden/prcprcptinfo/pid" ,pid);
  9804. model.setValue("/root/hidden/prcprcptinfo/flagvalue",flagvalue);
  9805. model.setValue("/root/hidden/prcprcptinfo/flag" ,flag);
  9806. if(model.getValue("/root/init/LB8001/nm") == "Y"){
  9807. submit("TRAEA01100");
  9808. }
  9809. //alert(model.getValue("/root/hidden/prcprcptyn/prcprcptyn"));
  9810. //alert(model.getValue("/root/init/LB8001/nm"));
  9811. //alert(model.getValue("/root/properties/menu/menuparam"));
  9812. if(model.getValue("/root/hidden/prcprcptyn/prcprcptyn") == "Y"
  9813. && model.getValue("/root/init/LB8001/nm") == "Y"
  9814. && model.getValue("/root/properties/menu/menuparam") != "V"){
  9815. messageBox(model.getValue("/root/init/LB8001/etc01"),"I");
  9816. }
  9817. }
  9818. /**
  9819. * 미생물보관균주 라벨 출력 - 박정은 zebra
  9820. * pBCount - 분주 또는 진검바코드 출력여부
  9821. */
  9822. function fLisMicroKeepBacBarcodePrint(pRef, pBCount){
  9823. try{
  9824. var vInstance = document.models(0).instances(0);
  9825. var cntHR = vInstance.selectNodes(pRef).length;
  9826. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  9827. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  9828. var portOpenTF = "";
  9829. var BCount = 0;
  9830. var iXPos = 0;
  9831. var iYPos = 0;
  9832. if(pBCount == null || pBCount == ""){
  9833. BCount = 0;
  9834. }else{
  9835. BCount = pBCount;
  9836. }
  9837. if(cntHR > 0 && sPrntKind != "0"){
  9838. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  9839. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  9840. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  9841. if(sCommKind == "01") {
  9842. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  9843. } else if(sCommKind == "02") {
  9844. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  9845. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  9846. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  9847. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  9848. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");
  9849. var sSetUpVal = model.getValue(barcdRef + "[1]/comm02/setupval");
  9850. CommAX.CommPort = sComm;
  9851. CommAX.Settings = sBaudRate+","+ sParity+","+sDataBit+","+ sStopBit;
  9852. if(BCount > 0){
  9853. portOpenTF = "TRUE";
  9854. }else if(BCount == 0){
  9855. portOpenTF = CommAX.PortOpen("true");
  9856. }
  9857. //CommAX.PortOpen();
  9858. } else if(sCommKind == "03") {
  9859. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  9860. }
  9861. if( (portOpenTF == "TRUE" && sCommKind == "02")
  9862. || (sCommKind == "01")
  9863. || (sCommKind == "03")){
  9864. for(i=1 ; i<= cntHR;i++){
  9865. var sSndMsg = "";
  9866. var sKeepstrngrupcd = model.getvalue(pRef+ "["+i+"]/keepstrngrupcd");
  9867. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  9868. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  9869. var skeepno = model.getvalue(pRef+ "["+i+"]/keepno");
  9870. var skeepdt = model.getvalue(pRef+ "["+i+"]/keepdt");
  9871. var skeepstrnseqno = model.getvalue(pRef+ "["+i+"]/keepstrnseqno");
  9872. var skeepyy = model.getvalue(pRef+ "["+i+"]/keepyy");
  9873. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  9874. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  9875. if(sPrntKind == "1") {
  9876. sSndMsg += lzzfBP_StartFormat(0, 0); // 시작위치 셋팅
  9877. iXPos = Number(sLeftBank) + 5;
  9878. iYPos = Number(sTopBank) + 15;
  9879. //sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  9880. //sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sKeepstrngrupcd); //균주그룹
  9881. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sKeepstrngrupcd, 1, 1); // 균주그룹
  9882. sSndMsg += CommAX.HanImageData();
  9883. // --> 균번호 인데 한글로하면 너무길어서 년도랑 잘라서 보냄
  9884. iXPos = Number(sLeftBank) +5;
  9885. iYPos = Number(sTopBank) + 45;
  9886. sSndMsg += lzzfBP_ChangeFont("C", 10, 10);
  9887. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, skeepyy + "_"); //균번호1 (연도_)
  9888. iXPos = Number(sLeftBank);
  9889. iYPos = Number(sTopBank) + 60;
  9890. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sKeepstrngrupcd + "_" + skeepstrnseqno ,1,1); // 균번호2 (균주그룹_seq)
  9891. sSndMsg += CommAX.HanImageData();
  9892. // <-- 균번호 인데 한글로하면 너무길어서 년도랑 잘라서 보냄
  9893. if(sCommKind == "01") {
  9894. CommAX.SendMessageToLPT(sSndMsg);
  9895. } else if(sCommKind == "02") {
  9896. CommAX.SendMessage(sSndMsg);
  9897. }
  9898. iXPos = Number(sLeftBank) + 5;
  9899. iYPos = Number(sTopBank) + 95;
  9900. sSndMsg += lzzfBP_ChangeFont("C", 12, 12); // 폰트 설정
  9901. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, sBcno); //바코드번호
  9902. iXPos = Number(sLeftBank) + 140;
  9903. iYPos = Number(sTopBank) + 90;
  9904. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatnm.substr(0, 20), 1, 1); // 환자명
  9905. sSndMsg += CommAX.HanImageData();
  9906. iXPos = Number(sLeftBank) + 5;
  9907. iYPos = Number(sTopBank) + 125;
  9908. sSndMsg += lzzfBP_ChangeFont("C", 12, 12); // 폰트 설정
  9909. sSndMsg += lzzfBP_FieldDataA(iXPos, iYPos, skeepdt.substr(0, 4) + "-" + skeepdt.substr(4, 2) + "-" + skeepdt.substr(6, 2) + " " + skeepdt.substr(8, 2) + ":" + skeepdt.substr(10, 2)); // 보관일시
  9910. sSndMsg += lzzfBP_EndFormat("1"); // 일단 1장씩
  9911. if(sCommKind == "01") {
  9912. CommAX.SendMessageToLPT(sSndMsg);
  9913. } else if(sCommKind == "02") {
  9914. CommAX.SendMessage(sSndMsg);
  9915. }
  9916. }
  9917. }//end for
  9918. //portopen이 true이고 통신유형이 com일때 port close
  9919. if( portOpenTF == "TRUE" && sCommKind == "02"){
  9920. CommAX.PortOpen("false");
  9921. }
  9922. }else if((portOpenTF = "FALSE" && sCommKind == "02")){
  9923. messageBox("아래 사항을 확인후 재출력해주십시오."
  9924. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  9925. + " \n 2.케이블 확인"
  9926. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  9927. return;
  9928. }
  9929. }
  9930. }catch(ee) {//이후 2008-07-07 바코드 포트 오류 막기위해
  9931. messageBox("바코드출력에", "E009");
  9932. return;
  9933. }
  9934. }
  9935. /**
  9936. * 미생물보관균주 라벨 출력 - 박정은 sato
  9937. * pBCount - 분주 또는 진검바코드 출력여부
  9938. */
  9939. function fLisMicroKeepBacBarcodePrint2(pRef){
  9940. try{
  9941. var vInstance = document.models(0).instances(0);
  9942. var cntHR = vInstance.selectNodes(pRef).length;
  9943. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  9944. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  9945. var portOpenTF = "";
  9946. var iXPos = 0;
  9947. var iYPos = 0;
  9948. if(cntHR > 0 && sPrntKind != "0"){
  9949. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  9950. var sLeftBank = model.getValue(barcdRef + "[1]/blank/left");
  9951. var sTopBank = model.getValue(barcdRef + "[1]/blank/top");
  9952. for(i=1 ; i<= cntHR;i++){
  9953. var sSndMsg = "";
  9954. var sKeepstrngrupcd = model.getvalue(pRef+ "["+i+"]/keepstrngrupcd");
  9955. var sBcno = model.getvalue(pRef+ "["+i+"]/bcno");
  9956. var sPatnm = model.getvalue(pRef+ "["+i+"]/patnm");
  9957. var skeepno = model.getvalue(pRef+ "["+i+"]/keepno");
  9958. var skeepdt = model.getvalue(pRef+ "["+i+"]/keepdt");
  9959. var skeepstrnseqno = model.getvalue(pRef+ "["+i+"]/keepstrnseqno");
  9960. var skeepyy = model.getvalue(pRef+ "["+i+"]/keepyy");
  9961. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  9962. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  9963. sSndMsg = "AA103500500"; // 시작위치 셋팅
  9964. iXPos = Number(sLeftBank) + 20;
  9965. iYPos = Number(sTopBank) + 10;
  9966. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sKeepstrngrupcd); // 균주명 한글로
  9967. iXPos = Number(sLeftBank) + 20;
  9968. iYPos = Number(sTopBank) + 45;
  9969. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, skeepno); // 균번호 한글로
  9970. iXPos = Number(sLeftBank) + 20;
  9971. iYPos = Number(sTopBank) + 85;
  9972. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + sBcno;// 바코드번호
  9973. iXPos = Number(sLeftBank) + 140;
  9974. iYPos = Number(sTopBank) + 80;
  9975. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sPatnm);// 환자명
  9976. iXPos = Number(sLeftBank) + 20;
  9977. iYPos = Number(sTopBank) + 120;
  9978. sSndMsg += "V" + iYPos + "H" + iXPos + "S" + skeepdt.substr(0, 4) + "-" + skeepdt.substr(4, 2) + "-" + skeepdt.substr(6, 2) + " " + skeepdt.substr(8, 2) + ":" + skeepdt.substr(10, 2) ; // 보관일시
  9979. sSndMsg += "Q" + 1 + "Z";
  9980. CommAX.SendMsg(sSndMsg);
  9981. }//for(i=1 ; i<= cntHR;i++)
  9982. }
  9983. }catch(ee) {//이후 2008-07-07 바코드 포트 오류 막기위해
  9984. messageBox("바코드출력에", "E009");
  9985. return;
  9986. }
  9987. }