LPZ001.xjs 151 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. ===============================================================================
  4. File Name : LPZ001.js
  5. File Explanation : PathologyWeb Common js
  6. File Author : Hwang Sang Mi. 2007-02-01
  7. Revision Details :
  8. ===============================================================================
  9. */
  10. //=======================================================================================
  11. // global variable 전역변수
  12. //---------------------------------------------------------------------------------------
  13. //팝업위치를 위한 포지션 설정
  14. var xpos = application.mainframe.position.width / 2 - 200;
  15. var ypos = application.mainframe.position.height / 2 - 100;
  16. /********************************************************************************************************************/
  17. // fcharLength : (사용안함)문자열 길이 반환 [utlf_getStringLength 함수 사용으로 대체함]
  18. // faddobjBindItem : 바인드변수설정
  19. // fAddComboAll : 콤보박스 전체 버튼 추가
  20. // fshowToolTip : 그리드 ToolTip
  21. // fgetFormComponentEnable : 버튼 비활성화
  22. // lpzfAddColumn : 데이터셋 컬럼 추가
  23. // lpzfCopyColumn : 데이터셋 컬럼 추가
  24. // lpzfPlgyPrcpSaveSign : 콤보박스에 원하는 instance node와 value를 설정
  25. // lpzfBarCodeIn : 콤보박스에 원하는 instance node와 value를 설정
  26. // fdsf_createDsFilter : 데이터필터를 동적으로 생성한다.
  27. // fGetTestCd : 검사코드 조회
  28. // fgetToday : 현재일자 가져옴
  29. // flpzfExeReqFrmInfo : 의뢰 팝업표시
  30. // flpzfExeComnOpenScrn : 검체코드팝업
  31. // fgetCommonExpn : 예문조회
  32. // fgetScreenBarcodeInfo : 화면별 바코드 설정정보조회
  33. // fgetHosEntireInfo : 병원 환경설정 정보조회
  34. // fdsf_createPopUpMenu : 팝업메뉴를 동적으로 생성한다.
  35. // fExeBarCdPopupCall : 프린터설정팝업
  36. // fGetPtNoCdList : 병리번호조회
  37. // fGetUserList : 병리사용자 조회
  38. // fGetSpecdUserList : 특진의 조회
  39. // fGetlisCommonCodeList : 초기정보조회
  40. // fn_formID : 현재 화면의 파일명 찾기
  41. // lpzfExeBfChkMsg : Action을 취하기 전 Message Window
  42. // lpzfExeUserPwdCnfm : 사용자 비밀번호 확인
  43. // fgetSysDtInfo : 서버시스템시간조회
  44. // fgetPrcpKindList : 처방종류조회
  45. // cbf_LPZ001 : LPZ001 콜백함수
  46. // lf_lisSlideBarcodePrint : 바코드 프린트출력
  47. // fn_setGridCheckAll : Grid Header(CheckBox)를 클릭시 전체 Checkbox를 선택/해제
  48. // lpzfExeFrmPrnt
  49. // lpzfPlgyPrcpSignMake : 처방인증 데이터 생성
  50. // fBind_TPMCodeData : TPM 바인딩
  51. // fExeGridChoi : 인증저장 데이터 조회
  52. // cbf_TXLPR01102 : 인증저장 CallBack 함수
  53. // lpzfExeCsteCntsSplit : Cassette내용 분리
  54. // lpzfExeCsteCnt : Cassette Type을 분석하여 Cassette내용을 표시
  55. /**
  56. * @group : commonweb
  57. * @ver : 2007.05.08 (CMCDEV-0001)
  58. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  59. * @---------------------------------------------------
  60. * @type : function
  61. * @access : public
  62. * <pre>
  63. * 바인드변수설정
  64. *
  65. * </pre>
  66. * @param : strBindID, strCompID, strPropertyID, strDatasetID, strColumnID
  67. * @return : strBindID
  68. * @---------------------------------------------------
  69. */
  70. function faddobjBindItem(strBindID, strCompID, strPropertyID, strDatasetID, strColumnID)
  71. {
  72. if(this.binds[strBindID] != null){
  73. this.removeChild(strBindID);
  74. }else{
  75. var binDs = new BindItem(strBindID, strCompID , strPropertyID, strDatasetID, strColumnID);
  76. this.addChild(strBindID, binDs);
  77. binDs.name = strBindID;
  78. binDs.bind();
  79. }
  80. return strBindID;
  81. }
  82. /**
  83. * @group : commonweb
  84. * @ver : 2007.05.08 (CMCDEV-0001)
  85. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  86. * @---------------------------------------------------
  87. * @type : function
  88. * @access : public
  89. * <pre>
  90. * 검사코드 조회
  91. *
  92. * </pre>
  93. * @param : strGetDsID, strDelflagCd, strTestFlag, strCBID, strColID, strColNM, strCallBackID
  94. * @return : null
  95. * @---------------------------------------------------
  96. */
  97. function fGetTestCd(strGetDsID, strDelflagCd, strTestFlag, strCBID, strColID, strColNM, strCallBackID)
  98. {
  99. //세부파트코드조회
  100. dsf_createDs(strGetDsID);
  101. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  102. var sInDsName = dsf_createDsRow("ds_temp_search"
  103. , [{col: "delflagcd" , val: strDelflagCd }
  104. , {col: "testflag" , val: strTestFlag }
  105. , {col: "instcd" , val: sysf_getUserInfo("dutplceinstcd") }]);
  106. tranf_submit({
  107. id : "TRLPC02301"
  108. , service : "plgycomnusemngtapp.BaseInfoCode"
  109. , method : "reqGetTestCodeList"
  110. , inds : "refData="+sInDsName
  111. , outds : strGetDsID+"=refrslt"
  112. , callback : strCallBackID
  113. , async : false
  114. });
  115. //세부기준재바인딩
  116. strCBID.innerdataset = strGetDsID;
  117. strCBID.codecolumn = strColID;
  118. strCBID.datacolumn = strColNM;
  119. }
  120. /**
  121. * @group : commonweb
  122. * @ver : 2007.05.08 (CMCDEV-0001)
  123. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  124. * @---------------------------------------------------
  125. * @type : function
  126. * @access : public
  127. * <pre>
  128. * 그리드 ToolTip
  129. * </pre>
  130. * @param : Grid, GridMouseEventInfo
  131. * @return : null
  132. * @---------------------------------------------------
  133. */
  134. function fshowToolTip(obj:Grid, e:GridMouseEventInfo){
  135. if (e.row < 0 || e.cell < 0) return;
  136. obj.tooltiptext = obj.getCellValue(e.row,e.cell);
  137. }
  138. /**
  139. * @group : commonweb
  140. * @ver : 2007.05.08 (CMCDEV-0001)
  141. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  142. * @---------------------------------------------------
  143. * @type : function
  144. * @access : public
  145. * <pre>
  146. * 현재일자 가져옴
  147. * </pre>
  148. * @param : null
  149. * @return : sDate
  150. * @---------------------------------------------------
  151. */
  152. function fgetToday()
  153. {
  154. var objDate = new Date();
  155. var sDate = objDate.toFormatString("%Y%m%d");
  156. return sDate;
  157. }
  158. /**
  159. * @group : commonweb
  160. * @ver : 2007.05.08 (CMCDEV-0001)
  161. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  162. * @---------------------------------------------------
  163. * @type : function
  164. * @access : public
  165. * <pre>
  166. * 콤보박스 전체 버튼 추가
  167. * </pre>
  168. * @param : null
  169. * @return : sDate
  170. * @---------------------------------------------------
  171. */
  172. function fAddComboAll(obj:Dataset, addcdid, addcdvalue, addcdnm, addcdcdnmvalue)
  173. {
  174. var ds_icnt = obj.addRow();
  175. obj.setColumn(ds_icnt, addcdid, addcdvalue);
  176. obj.setColumn(ds_icnt,addcdnm, addcdcdnmvalue);
  177. }
  178. /**
  179. * @group : commonweb
  180. * @ver : 2007.05.08 (CMCDEV-0001)
  181. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  182. * @---------------------------------------------------
  183. * @type : function
  184. * @access : public
  185. * <pre>
  186. * 의뢰 팝업표시
  187. * </pre>
  188. * @param : strNode, grdObj, iRowN
  189. * @return : sDate
  190. * @---------------------------------------------------
  191. */
  192. function lpzfExeReqFrmInfo(dsObj:Dataset,rowno)
  193. {
  194. dsf_createDsRow("ds_hidden_reqfrminfo"
  195. , [{col: "pid", val:dsObj.getColumn(rowno,"pid")}
  196. //,{col: "prcpcd", val:dsObj.getColumn(rowno,"testcd")}
  197. ,{col: "prcpcd", val:dsObj.getColumn(rowno,"prcpcd")}
  198. //,{col: "prcpnm", val:dsObj.getColumn(rowno,"testhngnm")}
  199. ,{col: "prcpnm", val:dsObj.getColumn(rowno,"prcpnm")}
  200. ,{col: "opnm", val:""}
  201. //,{col: "spccd", val:dsObj.getColumn(rowno,"reprspccd")}
  202. ,{col: "spccd", val:dsObj.getColumn(rowno,"spccd")}
  203. ,{col: "spcnm", val:dsObj.getColumn(rowno,"spcnm")}
  204. //,{col: "reqno", val:dsObj.getColumn(rowno,"reqfrmno")}
  205. ,{col: "reqno", val:dsObj.getColumn(rowno,"reqno")}
  206. //.{col: "prcpstatcd", val:"430"}
  207. ,{col: "prcpstatcd", val:dsObj.getColumn(rowno,"prcpstatcd")}
  208. ,{col: "reqhistno", val:"1"}
  209. ,{col: "xrwGBN", val:dsObj.getColumn(rowno,"xrwGBN")}
  210. ,{col: "prcpdd", val:dsObj.getColumn(rowno,"prcpdd")}
  211. ,{col: "execprcpuniqno", val:dsObj.getColumn(rowno,"execprcpuniqno")}
  212. ,{col: "workflagcd", val:dsObj.getColumn(rowno,"workflagcd")}
  213. ,{col: "bcgbn", val:dsObj.getColumn(rowno,"bcgbn")}
  214. ]);
  215. var objArg = new Object();
  216. objArg.arg_ds_hidden_reqfrminfo = ds_hidden_reqfrminfo;
  217. switch (dsObj.getColumn(rowno,"reqfrmflagcd")){
  218. // 조직의뢰지
  219. case "01" :
  220. frmf_modal("SPLPJ01500", "SPLPJ01500", objArg, "", "", "", "","", "", "", "","","M");
  221. break;
  222. case "02": // 자궁경부(세포) 의뢰지
  223. frmf_modal("SPLPJ01400", "SPLPJ01400", objArg, "", "", "", "","", "", "", "","","M");
  224. break;
  225. case "03": // 체액세포(세포) 의뢰지
  226. frmf_modal("SPLPJ01300", "SPLPJ01300", objArg, "", "", "", "","", "", "", "","","M");
  227. break;
  228. case "04": // 세침흡인(세포) 의뢰지
  229. frmf_modal("SPLPJ01400", "SPLPJ01400", objArg,"", "", "", "","", "", "", "","","M");
  230. break;
  231. case "05": // 분자병리의뢰지
  232. frmf_modal("SPLPJ01200", "SPLPJ01200", objArg, "", "", "", "","", "", "", "","","M");
  233. break;
  234. case "06": // 면역형광(Kidney) 의뢰지
  235. frmf_modal("SPLPJ01200", "SPLPJ01200", objArg, "", "", "", "","", "", "", "","","M");
  236. break;
  237. case "07": // 면역형광(Skin) 의뢰지
  238. frmf_modal("SPLPJ01200", "SPLPJ01200", objArg,"", "", "", "","", "", "", "","","M");
  239. break;
  240. case "08": // 면역형광(Lung) 의뢰지
  241. frmf_modal("SPLPJ02000", "SPLPJ02000", objArg,"", "", "", "","", "", "", "","","M");
  242. break;
  243. default:
  244. break;
  245. }
  246. }
  247. /**
  248. * @group : commonweb
  249. * @ver : 2007.05.08 (CMCDEV-0001)
  250. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  251. * @---------------------------------------------------
  252. * @type : function
  253. * @access : public
  254. * <pre>
  255. * 검체코드팝업
  256. * </pre>
  257. * @param : strNode, grdObj, iRowN
  258. * @return : sDate
  259. * @---------------------------------------------------
  260. */
  261. function flpzfExeComnOpenScrn(objArg:Object)
  262. {
  263. switch(objArg.xcrn_kind){
  264. case "basepart":
  265. dsf_createDsRow("ds_hidden_scrndata", [{col: "basepartcd" , val: "" }
  266. , {col: "basepartnm" , val: "" }
  267. ]);
  268. var argObj = new Object();
  269. argObj.arg_ds_hidden_scrndata = ds_hidden_scrndata;
  270. frmf_modal("SPLPC02000","SPLPC02000", argObj, "", "", xpos, ypos, "", "", "", "","","M");
  271. break;
  272. case "detlpart":
  273. dsf_createDsRow("ds_hidden_scrndata", [{col: "basepartcd" , val: objArg.basepartcd }
  274. , {col: "basepartnm" , val: "" }
  275. , {col: "detlpartcd" , val: "" }
  276. , {col: "detlpartnm" , val: "" }
  277. ]);
  278. var argObj = new Object();
  279. argObj.arg_ds_hidden_scrndata = ds_hidden_scrndata;
  280. frmf_modal("SPLPC02100","SPLPC02100", argObj, "", "", xpos, ypos, "", "", "", "","","M");
  281. break;
  282. case "spccd":
  283. break;
  284. case "spccd_acpt":
  285. break;
  286. case "spccd_sub":
  287. dsf_createDsRow("ds_hidden_scrndata", [{col: "scrnflagcd" , val: objArg.scrnflagcd }
  288. , {col: "spccd" , val: objArg.spccd }
  289. , {col: "spcnm" , val: objArg.spcnm }
  290. , {col: "reprspccd" , val: objArg.reprspccd }]);
  291. var argObj = new Object();
  292. argObj.arg_ds_hidden_scrndata = ds_hidden_scrndata;
  293. frmf_modal("SPLPC02200", "SPLPC02200", argObj, "", "", xpos, ypos, "", "", "", "","","M");
  294. break;
  295. case "testcode":
  296. break;
  297. case "testgrup":
  298. dsf_createDsRow("ds_hidden_scrndata", [{col: "testcd" , val: objArg.testcd }
  299. , {col: "testhngnm" , val: "" }
  300. , {col: "testhngabbr" , val: "" }
  301. , {col: "testcdflag" , val: "GRUP" }
  302. ]);
  303. var argObj = new Object();
  304. argObj.arg_ds_hidden_scrndata = ds_hidden_scrndata;
  305. frmf_modal("SPLPC02300","SPLPC02300", argObj, "", "", xpos, ypos, "", "", "", "","","M");
  306. break;
  307. case "ptnocode":
  308. dsf_createDsRow("ds_hidden_scrndata", [{col: "ptnocd" , val: "" }
  309. , {col: "ptnonm" , val: "" }
  310. ]);
  311. var argObj = new Object();
  312. argObj.arg_ds_hidden_scrndata = ds_hidden_scrndata;
  313. frmf_modal("SPLPC02400","SPLPC02400", argObj, "", "", xpos, ypos, "", "", "", "","","M");
  314. break;
  315. default:
  316. break;
  317. }
  318. }
  319. /**
  320. * @group : commonweb
  321. * @ver : 2007.05.08 (CMCDEV-0001)
  322. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  323. * @---------------------------------------------------
  324. * @type : function
  325. * @access : public
  326. * <pre>
  327. * 버튼 비활성화
  328. * </pre>
  329. * @param : null
  330. * @return : null
  331. * @---------------------------------------------------
  332. */
  333. function fgetFormComponentEnable(flag:Boolean)
  334. {
  335. var arrCompList = form.components;
  336. for(var i=0; i<arrCompList.length;i++){
  337. if(arrCompList[i] instanceof Button) eval(arrCompList[i].name).enable = flag;
  338. if(arrCompList[i] instanceof Div){
  339. var arrChildCompList = arrCompList[i].components;
  340. for(var j=0; j<arrChildCompList.length;j++){
  341. if(arrChildCompList[j] instanceof Button) eval(arrCompList[i].name+"."+arrChildCompList[j].name).enable = flag;
  342. if(arrChildCompList[j] instanceof Div){
  343. var arrGranChildCompList = arrChildCompList[j].components;
  344. for(var k=0; k<arrGranChildCompList.length;k++){
  345. if(arrGranChildCompList[k] instanceof Button) {
  346. eval(arrCompList[i].name+"."+arrChildCompList[j].name+"."+arrGranChildCompList[k].name).enable = flag;
  347. }
  348. }
  349. }
  350. }
  351. }
  352. }
  353. }
  354. /**
  355. * @group : commonweb
  356. * @ver : 2007.05.08 (CMCDEV-0001)
  357. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  358. * @---------------------------------------------------
  359. * @type : function
  360. * @access : public
  361. * <pre>
  362. * 예문조회
  363. * </pre>
  364. * @param : obj:Dataset, strCdid, strCdnm, strBaseflagcd, strCallBackID
  365. * @return : null
  366. * @---------------------------------------------------
  367. */
  368. function fgetCommonExpn(cpName:Combo, strGetDsID, strColID, strColNM, strBaseflagcd, strCallBackID)
  369. {
  370. dsf_createDs(strGetDsID);
  371. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  372. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "baseflagcd", val: strBaseflagcd}]);
  373. tranf_submit({
  374. id: "TRLPZ00103"
  375. , service: "plgycomnusemngtapp.BaseInfoCode"
  376. , method: "reqGetReasonCodeList"
  377. , inds : "refData="+sInDsName
  378. , outds: strGetDsID+"=refrslt"
  379. , callback: strCallBackID
  380. , async: false
  381. });
  382. cpName.innerdataset = strGetDsID;
  383. cpName.codecolumn = strColID;
  384. cpName.datacolumn = strColNM;
  385. }
  386. /**
  387. * @group : commonweb
  388. * @ver : 2007.05.08 (CMCDEV-0001)
  389. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  390. * @---------------------------------------------------
  391. * @type : function
  392. * @access : public
  393. * <pre>
  394. * 화면별 바코드 설정정보조회
  395. * </pre>
  396. * @param : strGetDsID, strCallBackID
  397. * @return : null
  398. * @---------------------------------------------------
  399. */
  400. function fgetScreenBarcodeInfo(strGetDsID, strCallBackID, getScreenID)
  401. {
  402. dsf_createDs(strGetDsID);
  403. if(utlf_isNull(getScreenID)) getScreenID = frmf_getScreenID();
  404. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  405. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "scrnid", val: getScreenID}]);
  406. var oParam = {};
  407. oParam.id = "TRLLC90101";
  408. oParam.service = "diagtestapplib.LisCommon";
  409. oParam.method = "reqGetSetUpInfo";
  410. oParam.inds = "scrnid="+sInDsName;
  411. oParam.outds = strGetDsID+"=getSetUpInfo";
  412. oParam.async = false;
  413. oParam.callback = strCallBackID;
  414. tranf_submit(oParam);
  415. }
  416. /**
  417. * @group : commonweb
  418. * @ver : 2007.05.08 (CMCDEV-0001)
  419. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  420. * @---------------------------------------------------
  421. * @type : function
  422. * @access : public
  423. * <pre>
  424. * 문자열 길이 반환
  425. * </pre>
  426. * @param : sString
  427. * @return : null
  428. * @---------------------------------------------------
  429. */
  430. function fcharLength(sString)
  431. {
  432. var sString = sString.toString();
  433. var nCnt = 0;
  434. for (var i = 0; i < sString.length; i++){
  435. if (sString.charCodeAt(i) > 127){
  436. nCnt += 2;
  437. } else {
  438. nCnt += 1;
  439. }
  440. }
  441. return nCnt;
  442. }
  443. /**
  444. * @group : commonweb
  445. * @ver : 2007.05.08 (CMCDEV-0001)
  446. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  447. * @---------------------------------------------------
  448. * @type : function
  449. * @access : public
  450. * <pre>
  451. * 병원 환경설정 정보조회
  452. * </pre>
  453. * @param : strGetDsID, strCallBackID
  454. * @return : null
  455. * @---------------------------------------------------
  456. */
  457. function fgetHosEntireInfo(strGetDsID, strCallBackID)
  458. {
  459. dsf_createDs(strGetDsID);
  460. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  461. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "instcd", val: sysf_getUserInfo("dutplceinstcd")}]);
  462. tranf_submit({
  463. id: "TRLPZ00101"
  464. , service: "plgycomnusemngtapp.BaseInfoCode"
  465. , method: "reqGetHospitalEnvironmentSetInfo"
  466. , inds : "refData="+sInDsName
  467. , outds: strGetDsID+"=hospenvinfo"
  468. , callback: strCallBackID
  469. , async: false
  470. });
  471. }
  472. /**
  473. * @group : commonweb
  474. * @ver : 2007.05.08 (CMCDEV-0001)
  475. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  476. * @---------------------------------------------------
  477. * @type : function
  478. * @access : public
  479. * <pre>
  480. * 데이터필터를 동적으로 생성한다.
  481. * </pre>
  482. * @param : sDsFilterName, sDsDataSetName, sDsFilterContion
  483. * @return : sDsFilterName
  484. * @---------------------------------------------------
  485. */
  486. function fdsf_createDsFilter(sDsFilterName, sDsDataSetName,sDsFilterContion)
  487. {
  488. if(!utlf_isNull(this.objects[sDsFilterName])){
  489. this.objects[sDsFilterName].clear();
  490. }else{
  491. var objDs = new FilteredDataset(sDsFilterName);
  492. this.addChild(sDsFilterName, objDs);
  493. objDs.name = sDsFilterName;
  494. }
  495. eval(sDsFilterName).binddataset = sDsDataSetName;
  496. eval(sDsFilterName).filterstr = sDsFilterContion;
  497. return sDsFilterName;
  498. }
  499. /**
  500. * @group : commonweb
  501. * @ver : 2007.05.08 (CMCDEV-0001)
  502. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  503. * @---------------------------------------------------
  504. * @type : function
  505. * @access : public
  506. * <pre>
  507. * 팝업메뉴를 동적으로 생성한다.
  508. * </pre>
  509. * @param : sDsFilterName, sDsDataSetName, sDsFilterContion
  510. * @return : sDsFilterName
  511. * @---------------------------------------------------
  512. */
  513. function fdsf_createPopUpMenu(sPopUpMenuName, sDsDataSetName)
  514. {
  515. if(this.objects[sPopUpMenuName] != null){
  516. this.objects[sPopUpMenuName].clear();
  517. }else{
  518. var objPopupMenu = new PopupMenu(sPopUpMenuName, 10,10,100,100);
  519. this.addChild(sPopUpMenuName, objPopupMenu);
  520. objPopupMenu.name = sPopUpMenuName;
  521. }
  522. eval(sPopUpMenuName).binddataset = sDsDataSetName;
  523. return sPopUpMenuName;
  524. }
  525. /**
  526. * @group : commonweb
  527. * @ver : 2007.05.08 (CMCDEV-0001)
  528. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  529. * @---------------------------------------------------
  530. * @type : function
  531. * @access : public
  532. * <pre>
  533. * 프린터설정팝업
  534. * </pre>
  535. * @param :
  536. * @return :
  537. * @---------------------------------------------------
  538. */
  539. function fExeBarCdPopupCall(dsObj:Dataset)
  540. {
  541. var objArg = new Object();
  542. objArg.plgv_sSetupInfo = dsObj.getColumn(0,"prntsetupinfo");
  543. frmf_modal("SPLLC90102","SPLLC90102", objArg, "", "", application.mainframe.position.left+xpos, application.mainframe.position.top+ypos);
  544. }
  545. /**
  546. * @group : commonweb
  547. * @ver : 2007.05.08 (CMCDEV-0001)
  548. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  549. * @---------------------------------------------------
  550. * @type : function
  551. * @access : public
  552. * <pre>
  553. * 병리번호조회
  554. * </pre>
  555. * @param :
  556. * @return :
  557. * @---------------------------------------------------
  558. */
  559. function fGetPtNoCdList(strGetDsID, strCallBackID)
  560. {
  561. dsf_createDs(strGetDsID);
  562. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  563. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "instcd", val: sysf_getUserInfo("dutplceinstcd")}
  564. ,{col: "refflagcd", val: "0"}]);
  565. tranf_submit({
  566. id: "TRLPZ00109"
  567. , service: "plgycomnusemngtapp.BaseInfoCode"
  568. , method: "reqGetPtNoCdList"
  569. , inds : "refdata="+sInDsName
  570. , outds: strGetDsID+"=rsltlist"
  571. , callback: strCallBackID
  572. , async: false
  573. });
  574. }
  575. /**
  576. * @group : commonweb
  577. * @ver : 2007.05.08 (CMCDEV-0001)
  578. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  579. * @---------------------------------------------------
  580. * @type : function
  581. * @access : public
  582. * <pre>
  583. * 병리사용자조회
  584. * </pre>
  585. * @param :
  586. * @return :
  587. * @---------------------------------------------------
  588. */
  589. function fGetUserList(strGetDsID, strCallBackID, strDocJobGradeCd, strTeamJobGradeCd)
  590. {
  591. dsf_createDs(strGetDsID);
  592. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  593. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "instcd" , val: sysf_getUserInfo("dutplceinstcd")}
  594. ,{col: "doctjobgradcd", val: strDocJobGradeCd}
  595. ,{col: "teamjobgradcd", val: strTeamJobGradeCd}]);
  596. tranf_submit({
  597. id: "TRLPZ00110"
  598. , service: "plgycomnusemngtapp.BaseInfoCode" //target
  599. , method: "reqGetUserInfoList"
  600. , inds : "refdata="+sInDsName
  601. , outds: strGetDsID + "=reflist"
  602. , callback: strCallBackID
  603. , async: false
  604. });
  605. }
  606. /**
  607. * @group : commonweb
  608. * @ver : 2007.05.08 (CMCDEV-0001)
  609. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  610. * @---------------------------------------------------
  611. * @type : function
  612. * @access : public
  613. * <pre>
  614. * 특진의 조회
  615. * </pre>
  616. * @param :
  617. * @return :
  618. * @---------------------------------------------------
  619. */
  620. function fGetSpecdUserList(strGetDsID, strCallBackID, strInstcd, strDutplcecd)
  621. {
  622. dsf_createDs(strGetDsID);
  623. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  624. if(utlf_isNull(strInstcd)) strInstcd = sysf_getUserInfo("dutplceinstcd");
  625. if(utlf_isNull(strDutplcecd)) strDutplcecd = "LP";
  626. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "instcd" , val: strInstcd}
  627. ,{col: "dutplcecd" , val: strDutplcecd}]);
  628. tranf_submit({
  629. id: "TRLPZ00120"
  630. , service: "plgycomnusemngtapp.BaseInfoCode" //target
  631. , method: "reqGetSpecdInfoList"
  632. , inds : "refdata="+sInDsName
  633. , outds: strGetDsID + "=reflist"
  634. , callback: strCallBackID
  635. , async: false
  636. });
  637. }
  638. /**
  639. * @group : commonweb
  640. * @ver : 2007.05.08 (CMCDEV-0001)
  641. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  642. * @---------------------------------------------------
  643. * @type : function
  644. * @access : public
  645. * <pre>
  646. * 초기정보조회
  647. * </pre>
  648. * @param :
  649. * @return :
  650. * @---------------------------------------------------
  651. */
  652. function fGetlisCommonCodeList(sCodeflag, sBasecdid, sMenuparam, strCallBackID)
  653. {
  654. var sArray = sCodeflag.split(",");
  655. var sInds = "";
  656. var sOusds = "";
  657. for(var i=0;i<sArray.length;i++){
  658. dsf_createDs(sArray[i]);
  659. sInds += sArray[i] + "|"
  660. sOusds += sArray[i]+"="+sArray[i];
  661. if(i==sArray.length-1){
  662. sOusds += "";
  663. } else {
  664. sOusds += " ";
  665. }
  666. }
  667. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  668. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "codeflag" , val: sInds }
  669. ,{col: "basecdid" , val: sBasecdid }
  670. ,{col: "menuparam", val: sMenuparam }]);
  671. tranf_submit({
  672. id: "TRLZZ00101"
  673. , service: "diagtestapplib.DiagTestBaseInfoMngt"
  674. , method: "reqGetInitCodeInfo"
  675. , inds : "cond="+sInDsName
  676. , outds: "0124=0124 0000=0000 0111=0111"
  677. , callback: strCallBackID
  678. , async: false
  679. });
  680. }
  681. /**
  682. * @group : commonweb
  683. * @ver : 2007.05.08 (CMCDEV-0001)
  684. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  685. * @---------------------------------------------------
  686. * @type : function
  687. * @access : public
  688. * <pre>
  689. * 현재 화면의 파일명 찾기
  690. * </pre>
  691. * @param :
  692. * @return :
  693. * @---------------------------------------------------
  694. */
  695. function fn_formID()
  696. {
  697. var sUrl = this.getOwnerFrame().formurl;
  698. var nStart = 0;
  699. var nIndex = sUrl.indexOf("::");
  700. //서비스그룹 끝난 위치를 찾는다.
  701. if ( nIndex > - 1) nStart = nIndex + 2;
  702. var nEnd = sUrl.indexOf(".xfdl");
  703. var sFromId = sUrl.substring(nStart, nEnd);
  704. //하위 폴더가 있는 경우
  705. if (sFromId.indexOf("\\") > -1) {
  706. var arPath = sFromId.split("\\");
  707. sFromId = arPath[arPath.length - 1];
  708. }
  709. return sFromId;
  710. }
  711. /**
  712. * @group : PathologyWeb Common
  713. * @ver : 2007.02.01 (CMCDEV-0001)
  714. * @by : Hwangs
  715. * @---------------------------------------------------
  716. * @type : function
  717. * @access : public
  718. * @desc : Action을 취하기 전 Message Window
  719. * @param : work_kind - 조회(R), 수정(U), 신규(I), 수정/신규(UI)
  720. * @return :
  721. * @---------------------------------------------------
  722. */
  723. function lpzfExeBfChkMsg(work_kind)
  724. {
  725. var recv_msg = false;
  726. switch(work_kind){
  727. case "R":
  728. recv_msg = sysf_messageBox("[수정/신규]작업 중 입니다.\n무시하고 ", "Q005");
  729. break;
  730. case "U":
  731. recv_msg = sysf_messageBox("수정된 내역을 ", "Q002");
  732. break;
  733. case "I":
  734. recv_msg = sysf_messageBox("신규 입력된 내역을 ", "Q002");
  735. break;
  736. case "UI":
  737. recv_msg = sysf_messageBox("[수정/신규] 내역을 ", "Q002");
  738. break;
  739. default:
  740. break;
  741. }
  742. //recv_msg 6-?, 7-???
  743. if(recv_msg == 7){
  744. return false;
  745. }else if(recv_msg == 6){
  746. return true;
  747. }
  748. return false;
  749. }
  750. /**
  751. * @group : commonweb
  752. * @ver : 2007.05.08 (CMCDEV-0001)
  753. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  754. * @---------------------------------------------------
  755. * @type : function
  756. * @access : public
  757. * <pre>
  758. * 사용자 비밀번호 확인
  759. * </pre>
  760. * @param :
  761. * @return :
  762. * @---------------------------------------------------
  763. */
  764. function lpzfExeUserPwdCnfm()
  765. {
  766. var objArg = new Object();
  767. objArg.pwdvalid = "N";
  768. frmf_modal("SPLPZ00100", "SPLPZ00100", objArg, "", "", application.mainframe.position.left+xpos, application.mainframe.position.top+ypos);
  769. }
  770. /**
  771. * @group : commonweb
  772. * @ver : 2007.05.08 (CMCDEV-0001)
  773. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  774. * @---------------------------------------------------
  775. * @type : function
  776. * @access : public
  777. * <pre>
  778. * 데이터셋 컬럼 추가
  779. * </pre>
  780. * @param :
  781. * @return :
  782. * @---------------------------------------------------
  783. */
  784. function lpzfAddColumn(obj:Dataset, columnName, columnType, columnValue)
  785. {
  786. obj.addColumn(columnName, columnType);
  787. for(var nRow=0; nRow<obj.rowcount; nRow++){
  788. obj.setColumn(nRow, columnName, columnValue);
  789. }
  790. }
  791. /**
  792. * @group : commonweb
  793. * @ver : 2007.05.08 (CMCDEV-0001)
  794. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  795. * @---------------------------------------------------
  796. * @type : function
  797. * @access : public
  798. * <pre>
  799. * 데이터셋 컬럼 추가
  800. * </pre>
  801. * @param :
  802. * @return :
  803. * @---------------------------------------------------
  804. */
  805. function lpzfCopyColumn(obj:Dataset, copyColumnName, columnType, orgColumnName)
  806. {
  807. obj.addColumn(copyColumnName, columnType);
  808. for(var nRow=0; nRow<obj.rowcount; nRow++){
  809. obj.setColumn(nRow, copyColumnName, obj.getColumn(nRow, orgColumnName));
  810. }
  811. }
  812. /**
  813. * @group : commonweb
  814. * @ver : 2007.05.08 (CMCDEV-0001)
  815. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  816. * @---------------------------------------------------
  817. * @type : function
  818. * @access : public
  819. * <pre>
  820. * 서버시스템시간조회
  821. * </pre>
  822. * @param : null
  823. * @return : sObjSysInfo
  824. * @---------------------------------------------------
  825. */
  826. function fgetSysDtInfo(strGetDsID, strCallBackID)
  827. {
  828. dsf_createDs(strGetDsID);
  829. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  830. dsf_createDsRow("ds_temp_search", [{col: "instcd", val: sysf_getUserInfo("dutplceinstcd")}]);
  831. var oParam = {};
  832. oParam.id = "TRLPZ00102";
  833. oParam.service = "plgycomnusemngtapp.BaseInfoCode";
  834. oParam.method = "reqGetSystemDateTimeInformation";
  835. oParam.inds = "refData=ds_temp_search";
  836. oParam.outds = strGetDsID+"=sysdtinfo";
  837. oParam.async = false;
  838. oParam.callback = strCallBackID
  839. tranf_submit(oParam);
  840. return;
  841. }
  842. /**
  843. * @group : commonweb
  844. * @ver : 2007.05.08 (CMCDEV-0001)
  845. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  846. * @---------------------------------------------------
  847. * @type : function
  848. * @access : public
  849. * <pre>
  850. * 처방종류조회
  851. * </pre>
  852. * @param : null
  853. * @return : sObjSysInfo
  854. * @---------------------------------------------------
  855. */
  856. function fgetPrcpKindList(strBaseCode, strGetDsID, strCallBackID)
  857. {
  858. dsf_createDs(strGetDsID);
  859. if(utlf_isNull(strCallBackID)) strCallBackID = "cbf_LPZ001";
  860. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "instcd" , val: sysf_getUserInfo("dutplceinstcd")}
  861. ,{col: "basecode" , val: strBaseCode}]);
  862. tranf_submit({ id : "TRLPJ01001"
  863. , service : "plgyacptmngtapp.SpecimenAccept"
  864. , method : "reqGetPrcpKindList"
  865. , inds : "refData="+sInDsName
  866. , outds : strGetDsID+"=reflist"
  867. , callback : strCallBackID
  868. , async : false
  869. });
  870. return;
  871. }
  872. /**********************************************************************************
  873. * Name : cbf_LPZ001
  874. * Description : LPZ001 콜백함수.
  875. * Argument : string:strSvcID, string:nErrorCode, string:strErrorMag
  876. * return Type : Null
  877. * Author : Autumn
  878. **********************************************************************************/
  879. function cbf_LPZ001(strSvcID, nErrorCode, strErrorMag)
  880. {
  881. if(nErrorCode != 0) sysf_messageBox("ID: " + strSvcID + " Error: " + strErrorMag, "E009", "");
  882. }
  883. /**
  884. * @group : commonweb
  885. * @ver : 2007.05.08 (CMCDEV-0001)
  886. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  887. * @---------------------------------------------------
  888. * @type : function
  889. * @access : public
  890. * <pre>
  891. * 바코드 프린트출력
  892. * </pre>
  893. * @param :
  894. * @return :
  895. * @---------------------------------------------------
  896. */
  897. function lf_lisSlideBarcodePrint(pRef,setupinfo){
  898. var cntHR = pRef.rowcount;
  899. var sPrntKind = ds_Data_setupinfo.getColumn(0,"prntkind"); //프린터종류
  900. var portOpenCheck = "";
  901. var iXPos = 0;
  902. var iYPos = 0;
  903. var sSndMsg = "";
  904. if (sPrntKind == 0) return;
  905. var sCommKind = ds_Data_setupinfo.getColumn(0,"commkind");
  906. var sLeftBank = ds_Data_setupinfo.getColumn(0,"left"); //왼쪽여백
  907. var sTopBank = ds_Data_setupinfo.getColumn(0,"top"); //위쪽여백
  908. //------------------------
  909. if(sCommKind == "01") {
  910. var sSetUpVal = ds_Data_setupinfo.getColumn(0,"setupval"); //PRT LPT출력
  911. }
  912. else if(sCommKind == "02") { //COM serial출력
  913. var sComm = ds_Data_setupinfo.getColumn(0,"comm"); //com port
  914. var sDataBit = ds_Data_setupinfo.getColumn(0,"databit"); //data bit
  915. var sStopBit = ds_Data_setupinfo.getColumn(0,"stopbit"); //stop bit
  916. var sBaudRate = ds_Data_setupinfo.getColumn(0,"baudrate"); //baud rate
  917. var sParity = ds_Data_setupinfo.getColumn(0,"parity"); //parity
  918. llz_objCommAX.CommPort = sComm;
  919. llz_objCommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  920. //portOpenCheck = llz_objCommAX.PortOpen("true");
  921. portOpenCheck = llz_objCommAX.PortOpen = true;
  922. }
  923. else if(sCommKind == "03") { //TCP/IP출력
  924. var sSetUpVal = prntinfo.getColumn(0,"setupval03");
  925. var sEqmtCD = prntinfo.getColumn(0,"eqmtcd");
  926. }
  927. if( (portOpenCheck == true && sCommKind == "02")
  928. || sCommKind == "01"
  929. || sCommKind == "03"){
  930. for(i=0 ; i< cntHR;i++){
  931. var Ptnonum = utlf_transNullToEmpty(pRef.getColumn(i,"ptno")); //병리번호
  932. if(Ptnonum.length >9){
  933. var sPtno = Ptnonum.substr(0,4) + "-" + Ptnonum.substr(4,9);
  934. } else {
  935. var sPtno = Ptnonum.substr(0,3) + "-" + Ptnonum.substr(3,8);
  936. }
  937. var sCstecnts = utlf_transNullToEmpty(pRef.getColumn(i,"cstecnts")); //슬라이드 종류
  938. if (sLeftBank == "" || sLeftBank == "-") sLeftBank = 0;
  939. if (sTopBank == "" || sTopBank == "-") sTopBank = 0;
  940. if(sPrntKind == "17"){ //아르고스
  941. //프린터설정
  942. sSndMsg = "N" + "\r\n"; //이미지버퍼내용삭제
  943. sSndMsg = "JF" + "\r\n"; //용지정렬
  944. sSndMsg += "Q144,24" + "\r\n"; //용지세로 32mm,용지사이여백3mm
  945. sSndMsg += "q200" + "\r\n"; //용지가로54mm
  946. //병리번호
  947. iXPos = Number(sLeftBank) + 25;
  948. iYPos = Number(sTopBank) + 50;
  949. sSndMsg += "A" + iXPos + "," + iYPos + "," + "0,4,1,1,N," + "\"" + sPtno + "\"" + "\r\n";
  950. //슬라이드종류
  951. iXPos = Number(sLeftBank) + 70;
  952. iYPos = Number(sTopBank) + 90;
  953. sSndMsg += "A" + iXPos + "," + iYPos + "," + "0,4,1,1,N," + "\"" + sCstecnts + "\"" + "\r\n";
  954. //출력
  955. sSndMsg += "P1"+ "\r\n";
  956. if(sCommKind == "01") {
  957. //llz_objCommAX.SendMessageToLPT(sSndMsg);
  958. llz_objCommAX.Output = sSndMsg;
  959. sSndMsg = "";
  960. }
  961. else if(sCommKind == "02") {
  962. //llz_objCommAX.SendMessage(sSndMsg);
  963. llz_objCommAX.Output = sSndMsg;
  964. sSndMsg = "";
  965. }
  966. }//end 아르고스
  967. if(sCommKind == "02") {
  968. llz_objCommAX.PortOpen = false;
  969. //llz_objCommAX.PortOpen("false");
  970. }
  971. }//end for
  972. }else {
  973. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  974. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  975. + " \n 2.케이블 확인"
  976. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  977. return;
  978. }//end if(portOpenTF == "TRUE"){
  979. }//end function
  980. /**********************************************************************************
  981. * Name : fn_setGridCheckAll
  982. * Description : Grid Header(CheckBox)를 클릭시 전체 Checkbox를 선택/해제
  983. * Argument : Grid Object, event Object
  984. * return Type : Null
  985. * Author : Autumn
  986. **********************************************************************************/
  987. function fn_setGridCheckAll(obj:Grid, e:GridClickEventInfo)
  988. {
  989. var objDs = eval(obj.binddataset);
  990. var sCol = obj.getCellProperty("body", e.cell, "text").replace("bind:", "");
  991. if (_isGridCheckAll){
  992. _isGridCheckAll = 0;
  993. } else {
  994. _isGridCheckAll = 1;
  995. }
  996. objDs.enableevent = false;
  997. for (var i = 0; i < objDs.getRowCount(); i++){
  998. objDs.setColumn(i, sCol, _isGridCheckAll);
  999. }
  1000. obj.setCellProperty("Head", e.cell, "expr", _isGridCheckAll);
  1001. objDs.enableevent = true;
  1002. }
  1003. /**
  1004. * @group : PathologyWeb Common
  1005. * @ver : 2007.09.14 (CMCDEV-0001)
  1006. * @by : Ryu
  1007. * @---------------------------------------------------
  1008. * @type : function
  1009. * @access : public
  1010. * @desc :
  1011. * @param :
  1012. *
  1013. * @return :
  1014. *
  1015. * ??) lpzfExeFrmPrnt("1");
  1016. * modal("SPPAS03000", "2", "100", "100", "SPPAS03000", "root/main/cond", "root/target",
  1017. * "left:100; top:100; width:400; height:400; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;", false);
  1018. * @-------------------------------------------------------------------
  1019. */
  1020. function lpzfExeFrmPrnt(pDs, iRowNo)
  1021. {
  1022. trace("pDs = " + pDs.saveXML());
  1023. var sProp = "top:0px;left:0px;width:0;height:0;";
  1024. //var sProp = "left:0; top:0; width:100; height:100; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;";
  1025. var pDsRow = pDs.rowcount;
  1026. //오브잭트 선언 후 부모창에서 데이터셋에 담아 보내준 값 담기
  1027. var objRetVal= new Object();
  1028. objRetVal.instcd = sysf_getUserInfo("dutplceinstcd"); //기관코드
  1029. objRetVal.ptno = pDs.getColumn(iRowNo,"ptno"); //병리번호
  1030. objRetVal.pid = pDs.getColumn(iRowNo,"pid");
  1031. objRetVal.acptdd = pDs.getColumn(iRowNo,"acptdd");
  1032. objRetVal.prcpgenrflag = pDs.getColumn(iRowNo,"prcpgenrflag");
  1033. objRetVal.reptflagcd = utlf_transNullToEmpty(pDs.getColumn(iRowNo,"reptflagcd")); //출력구분코드 (0:의뢰지, 1:보고서) --
  1034. objRetVal.adddiagprtn = pDs.getColumn(iRowNo,"adddiagprtn");
  1035. objRetVal.adddiaglist = pDs.getColumn(iRowNo,"adddiaglist");
  1036. objRetVal.addrsltlist = pDs.getColumn(iRowNo,"addrsltlist");
  1037. objRetVal.prntflagcd = utlf_transNullToEmpty(pDs.getColumn(iRowNo,"prntflagcd")); // 출력(0), 미리보기(1)
  1038. objRetVal.copyflagcd = utlf_transNullToEmpty(pDs.getColumn(iRowNo,"copyflagcd")); // 의뢰지/보고서(0), 복사본(1)
  1039. //trace("objRetVal :"+objRetVal.saveXML());
  1040. //출력 및 미리보기 여부 수정해야함
  1041. if ((pDs.getColumn(iRowNo,"prntflagcd") =="0") || (utlf_isNull(pDs.getColumn(iRowNo,"prntflagcd")))) {
  1042. objRetVal.prntflagcd = "0";
  1043. objRetVal.reptflagcd = "0";
  1044. objRetVal.copyflagcd = "0";
  1045. frmf_modal("SPLPP01600","SPLPP01600",objRetVal, null, null, null, null, null, null, null,null, null, "P");
  1046. } else {
  1047. frmf_modal("SPLPP01600","SPLPP01600",objRetVal, null, null, null, null, null, null, null,null, null, "P");
  1048. }
  1049. }
  1050. /**
  1051. * @group : commonweb
  1052. * @ver : 2007.05.08 (CMCDEV-0001)
  1053. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  1054. * @---------------------------------------------------
  1055. * @type : function
  1056. * @access : public
  1057. * <pre>
  1058. * 처방인증 데이터 생성
  1059. * </pre>
  1060. * @param : pSourceNode, pPatInfo, pPrcpRepl
  1061. * @return : null
  1062. * @---------------------------------------------------
  1063. */
  1064. function lpzfPlgyPrcpSignMake(pSourceDs:Dataset, pPatInfo, pPrcpRepl)
  1065. {
  1066. var sResultNode = "";
  1067. var sDay = "";
  1068. trace("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
  1069. trace("pSourceDs ===> " + pSourceDs.saveXML());
  1070. trace("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
  1071. trace("pPatInfo ===> " + pPatInfo);
  1072. trace("pPrcpRepl ===> " + pPrcpRepl);
  1073. if(pPatInfo == "Y")
  1074. {
  1075. sResultNode = "$환자진료정보";
  1076. sResultNode += "@등록번호:" + pSourceDs.getColumn(0, "pid");
  1077. sResultNode += "@이름:" + pSourceDs.getColumn(0, "patnm");
  1078. sResultNode += "@성별/나이:" + utlf_transNullToEmpty(pSourceDs.getColumn(0, "sex")) + " / " + utlf_transNullToEmpty(pSourceDs.getColumn(0, "age"));
  1079. trace("sResultNode(1) = " +sResultNode);
  1080. if( !utlf_isNull(pSourceDs.getColumn(0, "orddeptnm")))
  1081. {
  1082. sResultNode += "@진료과:" + pSourceDs.getColumn(0, "orddeptnm") + "(" + pSourceDs.getColumn(0, "orddeptcd") +")";
  1083. trace("sResultNode(2) = " +sResultNode);
  1084. }
  1085. sDay = pSourceDs.getColumn(0, "orddd");
  1086. if(pSourceDs.getColumn(0, "prcpgenrflag")=="O"||pSourceDs.getColumn(0, "prcpgenrflag")=="S")
  1087. {
  1088. sResultNode += "@진료의:" + pSourceDs.getColumn(0, "orddrnm") + "(" + pSourceDs.getColumn(0, "orddrid") +")";
  1089. if( !utlf_isNull(sDay)&&(sDay!="-"))
  1090. {
  1091. sResultNode += "@진료일자:" + sDay.substr(0, 4) + "년 " + sDay.substr(4, 2) + "월 " + sDay.substr(6, 2) + "일";
  1092. trace("sResultNode(3) = " +sResultNode);
  1093. }
  1094. } else {
  1095. sResultNode += "@진료의:" + pSourceDs.getColumn(0, "orddrnm") + "(" + pSourceDs.getColumn(0, "orddrid") +")";
  1096. if( !utlf_isNull(sDay)&&(sDay!="-")){
  1097. sResultNode += "@입원일자:" + sDay.substr(0, 4) + "년 " + sDay.substr(4, 2) + "월 " + sDay.substr(6, 2) + "일";
  1098. trace("sResultNode(4) = " +sResultNode);
  1099. }
  1100. }
  1101. sResultNode += "$환자처방정보";
  1102. trace("sResultNode(5) = " +sResultNode);
  1103. }
  1104. sResultNode += "@처리구분:";
  1105. trace("sResultNode(6) = " +sResultNode);
  1106. //처방변경화면
  1107. trace("status = " + pSourceDs.getColumn(0, "status"));
  1108. if(pPrcpRepl=="Y")
  1109. {
  1110. if(pSourceDs.getColumn(0, "tempstatus")=="I")
  1111. {
  1112. sResultNode += "신규";
  1113. }
  1114. else if(pSourceDs.getColumn(0, "tempstatus")=="C")
  1115. {
  1116. sResultNode += "DC";
  1117. }
  1118. } else {
  1119. if(pSourceDs.getColumn(0, "status")=="I"){
  1120. sResultNode += "신규";
  1121. } else if(pSourceDs.getColumn(0, "status")=="C"){
  1122. sResultNode += "DC";
  1123. }
  1124. }
  1125. sResultNode += "@처방구분:";
  1126. trace("sResultNode(7) = " +sResultNode);
  1127. trace("prcpflag = " + pSourceDs.getColumn(0, "prcpflag"));
  1128. if(pSourceDs.getColumn(0, "prcpflag")=="1"){
  1129. sResultNode += "수가";
  1130. } else if(pSourceDs.getColumn(0, "prcpflag")=="2"){
  1131. sResultNode += "지시";
  1132. } else if(pSourceDs.getColumn(0, "prcpflag") == "3"){
  1133. sResultNode += "식사";
  1134. }
  1135. trace("sResultNode(8) = " +sResultNode);
  1136. sDay = pSourceDs.getColumn(0, "prcpdd");
  1137. sResultNode += "@처방일자:" + sDay.substr(0, 4) + "년 " + sDay.substr(4, 2) + "월 " + sDay.substr(6, 2) + "일";
  1138. trace("sResultNode(9) = " +sResultNode);
  1139. //처방변경화면
  1140. if(pPrcpRepl=="Y") {
  1141. sResultNode += "@처방코드:" + pSourceDs.getColumn(0, "tempprcpcd");
  1142. sResultNode += "@처방명:" + pSourceDs.getColumn(0, "tempprcpnm");
  1143. } else {
  1144. sResultNode += "@처방코드:" + pSourceDs.getColumn(0, "prcpcd");
  1145. sResultNode += "@처방명:" + pSourceDs.getColumn(0, "prcpnm");
  1146. }
  1147. trace("sResultNode(10) = " +sResultNode);
  1148. sResultNode += "@처방내역:" + "-";
  1149. sResultNode += "@검체:" + pSourceDs.getColumn(0, "drugmthdspccdnm") + "(" + pSourceDs.getColumn(0, "drugmthdspccd") + ")";
  1150. sResultNode += "@전달사항:" + "-";
  1151. sDay = utlf_getCurrentDateTime();
  1152. sResultNode += "@등록일시:" + sDay.substr(0, 4) + "년 " + sDay.substr(4, 2) + "월 " + sDay.substr(6, 2) + "일 " + sDay.substr(9, 2) + "시 " + sDay.substr(11, 2) + "분 " + sDay.substr(13, 2) + "초";
  1153. sResultNode += "@등록자:" + sysf_getUserInfo("usernm") + "(" + sysf_getUserInfo("userid") + ")";
  1154. trace("sResultNode(11) = " +sResultNode);
  1155. return sResultNode;
  1156. }
  1157. /**
  1158. * @group : commonweb
  1159. * @ver : 2007.05.08 (CMCDEV-0001)
  1160. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  1161. * @---------------------------------------------------
  1162. * @type : function
  1163. * @access : public
  1164. * <pre>
  1165. * 콤보박스에 원하는 instance node와 value를 설정
  1166. * </pre>
  1167. * @param : pSourceNode, pPatInfo, pPrcpRepl
  1168. * @return : null
  1169. * @---------------------------------------------------
  1170. */
  1171. function lpzfPlgyPrcpSaveSign(signbfcnts, signid, signopt, setnode)
  1172. {
  1173. //인증저장로직 구현X
  1174. var v_stext = "";
  1175. if(!utlf_isNull(signbfcnts)){
  1176. if(signopt){
  1177. v_stext = zesf_SignData( signbfcnts, signid, signopt );
  1178. } else {
  1179. v_stext = zesf_SignData( signbfcnts, signid );
  1180. }
  1181. if(utlf_isNull(v_stext)){
  1182. return ""; //값이 없을 때는 return 함
  1183. }
  1184. } else {
  1185. return "N"; //인증할 데이터가 없을 때는 N 으로 return
  1186. }
  1187. return v_stext;
  1188. }
  1189. /**
  1190. * @group : commonweb
  1191. * @ver : 2007.05.08 (CMCDEV-0001)
  1192. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  1193. * @---------------------------------------------------
  1194. * @type : function
  1195. * @access : public
  1196. * <pre>
  1197. * 콤보박스에 원하는 instance node와 value를 설정
  1198. * </pre>
  1199. * @param : barCodeNo
  1200. * @return : null
  1201. * @---------------------------------------------------
  1202. */
  1203. function lpzfBarCodeIn(barCodeNo)
  1204. {
  1205. barCodeNo = barCodeNo.replace("-", "");
  1206. var barCodeNo1 = barCodeNo.substr(0, barCodeNo.length-8);
  1207. var barCodeNo2 = barCodeNo.substr(barCodeNo.length-8, barCodeNo.length-7);
  1208. var barCodeNo3 = barCodeNo.substr(barCodeNo.length-6, barCodeNo.length);
  1209. var sRtnArray = [barCodeNo1, barCodeNo2, barCodeNo3];
  1210. return sRtnArray;
  1211. }
  1212. /**
  1213. * @group : commonweb
  1214. * @ver : 2007.05.08 (CMCDEV-0001)
  1215. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  1216. * @---------------------------------------------------
  1217. * @type : function
  1218. * @access : public
  1219. * <pre>
  1220. * TPM 바인딩
  1221. * </pre>
  1222. * @param : Null
  1223. * @return : null
  1224. * @---------------------------------------------------
  1225. */
  1226. function fBind_TPMCodeData(searchFlag){
  1227. dsf_createDs("ds_init_tpminfo"); // TPM코드조회
  1228. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "searchflag" , val: searchFlag}
  1229. ,{col: "instcd" , val: sysf_getUserInfo("dutplceinstcd")}]);
  1230. tranf_submit({
  1231. id: "TRLPR02704"
  1232. , service : "plgyrsltmngtapp.TestRsltRgst"
  1233. , method : "reqGetTPMCodeList"
  1234. , inds : "reqdata="+sInDsName
  1235. , outds : "ds_init_tpminfo=refrslt"
  1236. , callback : "cbf_LPZ001"
  1237. , async : false
  1238. });
  1239. if(ds_init_tpminfo.rowcount>0){
  1240. var nRow = ds_init_tpminfo.insertRow(0);
  1241. ds_init_tpminfo.setColumn(nRow, "codeflag" , "T");
  1242. ds_init_tpminfo.setColumn(nRow, "ptnocd" , "");
  1243. ds_init_tpminfo.setColumn(nRow, "tpmcode" , "");
  1244. ds_init_tpminfo.setColumn(nRow, "tpmcodenm" , "");
  1245. ds_init_tpminfo.setColumn(nRow, "keyword" , "");
  1246. ds_init_tpminfo.setColumn(nRow, "dispseqno" , "0");
  1247. nRow = ds_init_tpminfo.insertRow(0);
  1248. ds_init_tpminfo.setColumn(nRow, "codeflag" , "P");
  1249. ds_init_tpminfo.setColumn(nRow, "ptnocd" , "");
  1250. ds_init_tpminfo.setColumn(nRow, "tpmcode" , "");
  1251. ds_init_tpminfo.setColumn(nRow, "tpmcodenm" , "");
  1252. ds_init_tpminfo.setColumn(nRow, "keyword" , "");
  1253. ds_init_tpminfo.setColumn(nRow, "dispseqno" , "0");
  1254. nRow = ds_init_tpminfo.insertRow(0);
  1255. ds_init_tpminfo.setColumn(nRow, "codeflag" , "M");
  1256. ds_init_tpminfo.setColumn(nRow, "ptnocd" , "");
  1257. ds_init_tpminfo.setColumn(nRow, "tpmcode" , "");
  1258. ds_init_tpminfo.setColumn(nRow, "tpmcodenm" , "");
  1259. ds_init_tpminfo.setColumn(nRow, "keyword" , "");
  1260. ds_init_tpminfo.setColumn(nRow, "dispseqno" , "0");
  1261. }
  1262. fdsf_createDsFilter("dsf_init_Tcode", "ds_init_tpminfo", "codeflag=='T'");
  1263. fdsf_createDsFilter("dsf_init_Pcode", "ds_init_tpminfo", "codeflag=='P'");
  1264. fdsf_createDsFilter("dsf_init_Mcode", "ds_init_tpminfo", "codeflag=='M'");
  1265. dsf_createDs("ds_init_Tcode");
  1266. dsf_createDs("ds_init_Pcode");
  1267. dsf_createDs("ds_init_Mcode");
  1268. dsf_copyDs(ds_init_Tcode, dsf_init_Tcode);
  1269. dsf_copyDs(ds_init_Pcode, dsf_init_Pcode);
  1270. dsf_copyDs(ds_init_Mcode, dsf_init_Mcode);
  1271. }
  1272. /**
  1273. * @group : commonweb
  1274. * @ver : 2007.05.08 (CMCDEV-0001)
  1275. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  1276. * @---------------------------------------------------
  1277. * @type : function
  1278. * @access : public
  1279. * <pre>
  1280. * 인증저장 데이터 조회
  1281. * </pre>
  1282. * @param : Null
  1283. * @return : null
  1284. * @---------------------------------------------------
  1285. */
  1286. function fExeGridChoi(sInstcd, sBcno, sPtno, sPid, sWorkflagcd, sPrcpgenrflag, sScrno)
  1287. {
  1288. dsf_createDs("ds_temp_testrsltinfo");
  1289. dsf_createDs("ds_temp_patbasicinfo");
  1290. dsf_createDs("ds_temp_imginfo");
  1291. var sInDsName = dsf_createDsRow("ds_temp_search", [{col: "instcd" , val: sInstcd}
  1292. , {col: "bcno" , val: sBcno}
  1293. , {col: "ptno" , val: sPtno}
  1294. , {col: "pid" , val: sPid}
  1295. , {col: "workflagcd" , val: sWorkflagcd}
  1296. , {col: "prcpgenrflag" , val: sPrcpgenrflag}
  1297. , {col: "scrno" , val: sScrno}]);
  1298. // 검사결과 조회
  1299. tranf_submit({
  1300. id: "TRLPZ00113"
  1301. , service : "plgyrefmngtapp.TestRsltRef"
  1302. , method : "reqGetSytsTestRsltInfo"
  1303. , inds : "refparam="+sInDsName
  1304. , outds : "ds_temp_testrsltinfo=getResultDetail"
  1305. , callback : "cbf_LPZ001"
  1306. , async : false
  1307. });
  1308. tranf_submit({
  1309. id: "TRLPZ00112"
  1310. , service : "plgyrefmngtapp.TestRsltRef"
  1311. , method : "reqGetPatBasicInfo"
  1312. , inds : "refData="+sInDsName
  1313. , outds : "ds_temp_patbasicinfo=refrslt"
  1314. , callback : "cbf_LPZ001"
  1315. , async : false
  1316. });
  1317. // 등록된 이미지를 인증저장하기위한 이미지 파라미터 조회
  1318. tranf_submit({
  1319. id: "TRLPZ00115"
  1320. , service : "plgyrefmngtapp.TestRsltRef"
  1321. , method : "reqGetImgInfo"
  1322. , inds : "refparam="+sInDsName
  1323. , outds : "ds_temp_imginfo=getResultDetail"
  1324. , callback : "cbf_LPZ001"
  1325. , async : false
  1326. });
  1327. var ptno = sPtno;
  1328. var sStatsWorkFlagCd = ptno.substr(0, ptno.length-8);
  1329. switch (sStatsWorkFlagCd){
  1330. case "S" :
  1331. lpzfAddColumn(ds_temp_patbasicinfo, "title", "string", "조직병리진단 보고서");
  1332. break;
  1333. case "D" :
  1334. lpzfAddColumn(ds_temp_patbasicinfo, "title", "string", "체액 세포병리진단 보고서");
  1335. break;
  1336. case "C" :
  1337. lpzfAddColumn(ds_temp_patbasicinfo, "title", "string", "자궁경부 세포병리진단 보고서");
  1338. break;
  1339. case "A" :
  1340. lpzfAddColumn(ds_temp_patbasicinfo, "title", "string", "세침흡인 세포병리진단 보고서");
  1341. break;
  1342. case "M" :
  1343. lpzfAddColumn(ds_temp_patbasicinfo, "title", "string", "분자병리진단 보고서");
  1344. break;
  1345. case "IF" :
  1346. lpzfAddColumn(ds_temp_patbasicinfo, "title", "string", "면역형광진단 보고서");
  1347. break;
  1348. default:
  1349. lpzfAddColumn(ds_temp_patbasicinfo, "title", "string", "보고서");
  1350. break;
  1351. }
  1352. }
  1353. function lpzfUserDeptCd(srcDs, descDs) {
  1354. var sUserDeptCd = "";
  1355. //---------------------------------------------------
  1356. if(srcDs.getColumn(0,"plgydeptcd") != "-") {
  1357. sUserDeptCd = "'" + srcDs.getColumn(0,"plgydeptcd") + "'";
  1358. }
  1359. //---------------------------------------------------
  1360. if(srcDs.getColumn(0,"plgyteamcd") != "-") {
  1361. //---------------------------------------
  1362. if (!utlf_isNull(sUserDeptCd)) { sUserDeptCd += ","; }
  1363. //------------------------------------------------------------------
  1364. sUserDeptCd += "'" + srcDs.getColumn(0,"plgyteamcd") + "'";
  1365. }
  1366. //------------------------------------------------------
  1367. dsf_makeValue(descDs, "userdeptcd", "string",sUserDeptCd);
  1368. }
  1369. /**
  1370. * @group : PathologyWeb Common
  1371. * @ver : 2007.11.01 (CMCDEV-0001)
  1372. * @by : Ryu
  1373. * @---------------------------------------------------
  1374. * @type : function
  1375. * @access : public
  1376. * @desc : 전달/접수 바코드 출력
  1377. * @param : pType : (0:접수, 1:전달)
  1378. *
  1379. * @return :
  1380. *
  1381. * ??) lpzfAcptBarCd("1", 1, "/root/main/acptspc/acptspclist",
  1382. * "/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  1383. * @-------------------------------------------------------------------
  1384. */
  1385. function lpzfAcptBarCd(pType, pPrntCnt, pDs:Dataset) {
  1386. var iLeft = ds_data_blank.getColumn(0,"left");
  1387. var iTop = ds_data_blank.getColumn(0,"top");
  1388. var iXPos = 0;
  1389. var iYPos = 0;
  1390. var iWidth = 0;
  1391. var iSNo = 0;
  1392. var iENo = 1500;
  1393. var iCnt = 0;
  1394. var iEGap = 0;
  1395. var iHGap = 0;
  1396. var iSize = 30;
  1397. var sFixChar = "";
  1398. var sPtNo = "";
  1399. var sPatNm = "";
  1400. var sSndMsg = "";
  1401. var sTempStr = "";
  1402. var sTempStr2 = "";
  1403. var test_he;
  1404. var test_rtn;
  1405. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  1406. //trace("lpzfAcptBarCd "+iLeft + '/'+iTop+' / '+sPrntKind);
  1407. var aFlag = new Array();
  1408. var aStr = "";
  1409. var aArraySet = new Array();
  1410. //-----------------------------------------
  1411. if (utlf_isNull(iLeft) || iLeft == "-") iLeft = 0;
  1412. if (utlf_isNull(iTop) || iTop == "-") iTop = 0;
  1413. //-------------------
  1414. if(sPrntKind != "0"){
  1415. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  1416. if(sCommKind == "01") {
  1417. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  1418. } else if(sCommKind == "02") {
  1419. var sComm = ds_data_comm02.getColumn(0,"comm");
  1420. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  1421. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  1422. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  1423. var sParity = ds_data_comm02.getColumn(0,"parity");
  1424. //----------------------
  1425. CommAX.CommPort = sComm;
  1426. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  1427. //CommAX.PortOpen();
  1428. } else if(sCommKind == "03") {
  1429. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  1430. }
  1431. } else {
  1432. return false;
  1433. }
  1434. //trace('pType =='+pType);
  1435. //-----------------
  1436. if (pType == "0") {
  1437. //SATO 접수라벨 출력
  1438. if( sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  1439. for (var iRowNo=0; iRowNo < pDs.rowcount; iRowNo++) {
  1440. //조직, 세포, 동결절편, 분자, 전자, 면역형광 만 접수 라벨을 출력한다.(추가 박중규 2008.09.23)
  1441. if( !(pDs.getColumn(iRowNo,"workflagcd") == "1001" || pDs.getColumn(iRowNo,"workflagcd") == "1002"
  1442. || pDs.getColumn(iRowNo,"workflagcd") == "1003" || pDs.getColumn(iRowNo,"workflagcd") == "1007"
  1443. || pDs.getColumn(iRowNo,"workflagcd") == "1006" || pDs.getColumn(iRowNo,"workflagcd") == "1008") ){
  1444. continue;
  1445. }
  1446. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  1447. if (sPrcpDD.length <= 8) {
  1448. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  1449. }
  1450. //------------------------
  1451. sSndMsg = String.fromCharCode(27) +"A" + String.fromCharCode(27) + "A103500500"; // 시작위치 셋팅
  1452. iXPos = Number(iLeft);
  1453. iYPos = Number(iTop);
  1454. sTempStr = utlf_transNullToEmpty(pDs.getColumn(iRowNo,"spcdispnm"));
  1455. sTempStr = sTempStr.replace("▨", ",");
  1456. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  1457. iXPos = Number(iLeft);
  1458. iYPos = Number(iTop) + 35;
  1459. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + pDs.getColumn(iRowNo,"pid");
  1460. iXPos = Number(iLeft) + 140;
  1461. iYPos = Number(iTop) + 30;
  1462. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, pDs.getColumn(iRowNo,"patnm"));
  1463. iXPos = Number(iLeft);
  1464. iYPos = Number(iTop) + 65;
  1465. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, pDs.getColumn(iRowNo,"wardroom"));
  1466. iXPos = Number(iLeft) + 190;
  1467. iYPos = Number(iTop) + 68;
  1468. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + "(" + pDs.getColumn(iRowNo,"sexage") + ")";
  1469. iXPos = Number(iLeft) + 260;
  1470. iYPos = Number(iTop) + 68;
  1471. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + pDs.getColumn(iRowNo,"orddeptnm");
  1472. iXPos = Number(iLeft);
  1473. iYPos = Number(iTop) + 95;
  1474. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, pDs.getColumn(iRowNo,"prcpdispnm"));
  1475. iXPos = Number(iLeft);
  1476. iYPos = Number(iTop) + 150;
  1477. sTempStr = String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"L0203" + String.fromCharCode(27) +"S" + pDs.getColumn(iRowNo,"dispptno");
  1478. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  1479. sSndMsg += String.fromCharCode(27) +"Q" + "1" + String.fromCharCode(27) +"Z";
  1480. CommAX.SendMsg(sSndMsg);
  1481. }
  1482. //-----------------
  1483. // ZEBRA EPL 모드용
  1484. } else if ( sPrntKind == "10" ) {
  1485. //----------------------------------
  1486. sFixChar = String.fromCharCode(34);
  1487. //--------------------------------------------------------------
  1488. for (var iRowNo=0; iRowNo < pDs.rowcount; iRowNo++) {
  1489. //조직, 세포, 동결절편, 분자, 전자, 면역형광 만 접수 라벨을 출력한다.(추가 박중규 2008.09.23)
  1490. if( !(pDs.getColumn(iRowNo,"workflagcd") == "1001" || pDs.getColumn(iRowNo,"workflagcd") == "1002"
  1491. || pDs.getColumn(iRowNo,"workflagcd") == "1003" || pDs.getColumn(iRowNo,"workflagcd") == "1007"
  1492. || pDs.getColumn(iRowNo,"workflagcd") == "1006" || pDs.getColumn(iRowNo,"workflagcd") == "1008") ){
  1493. continue;
  1494. }
  1495. //----------------------------------------------------
  1496. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  1497. if (sPrcpDD.length <= 8) {
  1498. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  1499. }
  1500. //----------------
  1501. sSndMsg = "\r\n"; // 출력시작 Command
  1502. sSndMsg += "N" + "\r\n"; // Clear Image Buffer
  1503. //--------------------
  1504. iXPos = Number(iLeft); // 시작위치 초기화
  1505. iYPos = Number(iTop);
  1506. //---------------------------------------------------------
  1507. sTempStr = pDs.getColumn(iRowNo,"spcdispnm");
  1508. sTempStr = sTempStr.replace("▨", ",");
  1509. //-------------------------------------------------------------------------------------
  1510. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검체명
  1511. //--------------------
  1512. iXPos = Number(iLeft);
  1513. iYPos = Number(iTop) - 30;
  1514. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"pid") + sFixChar + "\r\n"; // 환자번호
  1515. //--------------------------
  1516. iXPos = Number(iLeft) - 200;
  1517. iYPos = Number(iTop) - 30;
  1518. sPatNm = pDs.getColumn(iRowNo,"patnm"); // 환자명
  1519. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sPatNm + sFixChar + "\r\n";
  1520. //--------------------
  1521. iXPos = Number(iLeft);
  1522. iYPos = Number(iTop) - 60;
  1523. sTempStr = pDs.getColumn(iRowNo,"wardroom"); // 병동병실
  1524. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n";
  1525. //--------------------------
  1526. iXPos = Number(iLeft) - 200;
  1527. iYPos = Number(iTop) - 60;
  1528. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"sexage") + sFixChar + "\r\n"; // 성별/나이
  1529. //--------------------------
  1530. iXPos = Number(iLeft) - 350;
  1531. iYPos = Number(iTop) - 60;
  1532. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"orddeptnm") + sFixChar + "\r\n"; // 진료과
  1533. //--------------------
  1534. iXPos = Number(iLeft);
  1535. iYPos = Number(iTop) - 90;
  1536. sTempStr = pDs.getColumn(iRowNo,"prcpdispnm"); //검사명
  1537. //-----------------------------------------------
  1538. // 40바이트가 넘을 경우 검사명을 짤라서 출력한다.
  1539. if(sTempStr.getByteLength() > 40) {
  1540. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  1541. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 40) {
  1542. sTempStr2 = sTempStr.substr(0, iLeng);
  1543. break;
  1544. }
  1545. }
  1546. sTempStr = sTempStr2;
  1547. }
  1548. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n";
  1549. //--------------------
  1550. iXPos = Number(iLeft);
  1551. iYPos = Number(iTop) - 130;
  1552. sSndMsg += "A"+iXPos+","+iYPos+",2,4,1,2,N," + sFixChar + pDs.getColumn(iRowNo,"dispptno") + sFixChar + "\r\n"; // 병리번호1 - 병리번호2
  1553. //-----------------------
  1554. sSndMsg += "P1" + "\r\n";
  1555. //---------------------
  1556. if(sCommKind == "01") { // 병렬출력
  1557. //CommAX.SendMessageToLPT(sSndMsg);
  1558. CommAX.SendMsg(sSndMsg);
  1559. } else if(sCommKind == "02") { // 직렬출력
  1560. CommAX.SendMessage(sSndMsg);
  1561. }
  1562. }
  1563. //----------------
  1564. // Zebra 300 DPI용
  1565. } else if ( sPrntKind == "9" ) {
  1566. //--------------------
  1567. // ZEBRA 접수라벨 출력
  1568. for (var iRowNo=0; iRowNo <= pDs.rowcount; iRowNo++) {
  1569. //조직, 세포, 동결절편, 분자, 전자, 면역형광 만 접수 라벨을 출력한다.(추가 박중규 2008.09.23)
  1570. if(!(pDs.getColumn(iRowNo,"workflagcd") == "1001" || pDs.getColumn(iRowNo,"workflagcd") == "1002"
  1571. || pDs.getColumn(iRowNo,"workflagcd") == "1003" || pDs.getColumn(iRowNo,"workflagcd") == "1007"
  1572. || pDs.getColumn(iRowNo,"workflagcd") == "1006" || pDs.getColumn(iRowNo,"workflagcd") == "1008")){
  1573. continue;
  1574. }
  1575. //----------------------------------------------------
  1576. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  1577. if (sPrcpDD.length <= 8) {
  1578. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  1579. }
  1580. //------------------------
  1581. if(sCommKind == "01") { // 병렬출력
  1582. sSndMsg = "^XA^SEE:UHANGUL.DAT^CWQ,E:kfont3.FNT";
  1583. } else if(sCommKind == "02") { // 직렬출력
  1584. sSndMsg = "^XA^LH0,0^PRB";
  1585. }
  1586. //--------------------
  1587. iXPos = Number(iLeft);
  1588. //---------------------------------------------------------
  1589. sTempStr = pDs.getColumn(iRowNo,"spcdispnm");
  1590. //trace('spcdispnm = '+sTempStr);
  1591. if (!utlf_isNull(sTempStr)){
  1592. sTempStr = sTempStr.replace("▨", ",");
  1593. }
  1594. //---------
  1595. iWidth = 0;
  1596. //aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  1597. //aFlag = aArraySet[0];
  1598. //aStr = aArraySet[1];
  1599. // for (var iNo=0; iNo < aStr.length; iNo++) {
  1600. //
  1601. // //----------------------
  1602. // if (aFlag[iNo] == "E") {
  1603. // iYPos = Number(iTop) + 5;
  1604. // sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  1605. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  1606. // } else {
  1607. // iYPos = Number(iTop);
  1608. //
  1609. // if(sCommKind == "01") { // 병렬출력
  1610. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  1611. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  1612. // } else if(sCommKind == "02") { // 직렬출력
  1613. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1614. // sSndMsg += CommAX.HanImageData();
  1615. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  1616. // }
  1617. // }
  1618. // }
  1619. if (!utlf_isNull(sTempStr)){
  1620. for (var j = 0; j < sTempStr.length; j++) {
  1621. oneChar = sTempStr.charAt(j);
  1622. test_rtn = "";
  1623. test_he = "";
  1624. test_rtn = lpzfGetHanGul3(oneChar);
  1625. test_he = test_rtn.substring(0,1);
  1626. if(!utlf_isNull(test_he))
  1627. {
  1628. //----------------------
  1629. if (test_he == "E") {
  1630. iYPos = Number(iTop) + 5;
  1631. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS";
  1632. iWidth = iWidth + (Number(oneChar.length) * 17);
  1633. } else {
  1634. iYPos = Number(iTop);
  1635. if(sCommKind == "01") { // 병렬출력
  1636. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  1637. iWidth = iWidth + (Number(oneChar.length) * 31);
  1638. } else if(sCommKind == "02") { // 직렬출력
  1639. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  1640. sSndMsg += CommAX.HanImageData();
  1641. iWidth = iWidth + (Number(oneChar.length) * 29);
  1642. }
  1643. }
  1644. }
  1645. }
  1646. }
  1647. //--------------------
  1648. iXPos = Number(iLeft);
  1649. iYPos = Number(iTop) + 45;
  1650. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"pid") + "^FS"; // 등록번호
  1651. //--------------------------
  1652. iXPos = Number(iLeft) + 200;
  1653. iYPos = Number(iTop) + 45;
  1654. sPatNm = pDs.getColumn(iRowNo,"patnm");
  1655. if(sCommKind == "01") { // 병렬출력
  1656. sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FD"+ sPatNm +"^FS^CI1";
  1657. } else if(sCommKind == "02") { // 직렬출력
  1658. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm, 2, 1); // -------> 한도버젼
  1659. sSndMsg += CommAX.HanImageData();
  1660. }
  1661. //---------------------
  1662. //trace('sCommKind '+sSndMsg);
  1663. if(sCommKind == "01") { // 병렬출력
  1664. CommAX.SendMsg(sSndMsg);
  1665. } else if(sCommKind == "02") { // 직렬출력
  1666. CommAX.SendMessage(sSndMsg);
  1667. }
  1668. sSndMsg = "";
  1669. //--------------------
  1670. iXPos = Number(iLeft);
  1671. iYPos = Number(iTop) + 85;
  1672. sTempStr = pDs.getColumn(iRowNo,"wardroom"); // 병동병실
  1673. // 한글영문구분 외래일 경우 "외래", 입원일 경우 영문약어로 들어감
  1674. if((sTempStr == "외래") || (sTempStr == "건진")) {
  1675. //---------------------
  1676. if(sCommKind == "01") { // 병렬출력
  1677. sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FD"+ sTempStr +"^FS^CI1";
  1678. CommAX.SendMsg(sSndMsg);
  1679. } else if(sCommKind == "02") { // 직렬출력
  1680. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, pDs.getColumn(iRowNo,"wardroom"), 1, 1); // -------> 한도버젼
  1681. sSndMsg += CommAX.HanImageData();
  1682. CommAX.SendMessage(sSndMsg);
  1683. }
  1684. sSndMsg = "";
  1685. } else {
  1686. iYPos += 3; //font와 이미지로 찍을때의 위치 차이 조정.
  1687. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"wardroom") + "^FS";
  1688. }
  1689. //--------------------------
  1690. iXPos = Number(iLeft) + 200;
  1691. iYPos = Number(iTop) + 85;
  1692. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO" + iXPos + "," + iYPos + "^FD(" + pDs.getColumn(iRowNo,"sexage") + ")^FS"; // 성별/나이
  1693. //--------------------------
  1694. iXPos = Number(iLeft) + 350;
  1695. iYPos = Number(iTop) + 85;
  1696. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"orddeptnm") + "^FS"; // 진료과
  1697. //--------------------
  1698. iXPos = Number(iLeft);
  1699. sTempStr = pDs.getColumn(iRowNo,"prcpdispnm"); //검사명
  1700. //trace('prcpdispnm = '+sTempStr);
  1701. //-----------------------------------------------
  1702. // 40바이트가 넘을 경우 검사명을 짤라서 출력한다.
  1703. if (!utlf_isNull(sTempStr)){
  1704. if(sTempStr.getByteLength() > 40) {
  1705. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  1706. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 40) {
  1707. sTempStr2 = sTempStr.substr(0, iLeng);
  1708. break;
  1709. }
  1710. }
  1711. sTempStr = sTempStr2;
  1712. }
  1713. }
  1714. //---------
  1715. iWidth = 0;
  1716. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  1717. // aFlag = aArraySet[0];
  1718. // aStr = aArraySet[1];
  1719. // for (var iNo=0; iNo < aStr.length; iNo++) {
  1720. //
  1721. // //----------------------
  1722. // if (aFlag[iNo] == "E") {
  1723. // iYPos = Number(iTop) + 130;
  1724. // sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  1725. // iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  1726. // } else {
  1727. // iYPos = Number(iTop) + 125;
  1728. //
  1729. // if(sCommKind == "01") { // 병렬출력
  1730. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  1731. // iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  1732. // } else if(sCommKind == "02") { // 직렬출력
  1733. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1734. // sSndMsg += CommAX.HanImageData();
  1735. // iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  1736. // }
  1737. // }
  1738. // }
  1739. if (!utlf_isNull(sTempStr)){
  1740. for (var j = 0; j < sTempStr.length; j++) {
  1741. oneChar = sTempStr.charAt(j);
  1742. test_rtn = "";
  1743. test_he = "";
  1744. test_rtn = lpzfGetHanGul3(oneChar);
  1745. test_he = test_rtn.substring(0,1);
  1746. if(!utlf_isNull(test_he))
  1747. {
  1748. //----------------------
  1749. if (test_he == "E") {
  1750. iYPos = Number(iTop) + 130;
  1751. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS";
  1752. iWidth = iWidth + (Number(oneChar.length) * 17);
  1753. } else {
  1754. iYPos = Number(iTop) + 125;
  1755. if(sCommKind == "01") { // 병렬출력
  1756. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ oneChar.getTrim() +"^FS^CI1";
  1757. iWidth = iWidth + (Number(oneChar.length) * 31);
  1758. } else if(sCommKind == "02") { // 직렬출력
  1759. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  1760. sSndMsg += CommAX.HanImageData();
  1761. iWidth = iWidth + (Number(oneChar.length) * 29);
  1762. }
  1763. }
  1764. }
  1765. }
  1766. }
  1767. //--------------------
  1768. iXPos = Number(iLeft);
  1769. iYPos = Number(iTop) + 180;
  1770. sSndMsg += "^CF0,70^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"dispptno") + "^FS"; // 병리번호1 - 병리번호2
  1771. //------------------------------
  1772. sSndMsg += "^PQ"+pPrntCnt+"^XZ";
  1773. //---------------------
  1774. if(sCommKind == "01") { // 병렬출력
  1775. CommAX.SendMsg(sSndMsg);
  1776. } else if(sCommKind == "02") { // 직렬출력
  1777. CommAX.SendMessage(sSndMsg);
  1778. }
  1779. //----------------------
  1780. CommAX.SendMessage("^XZ");
  1781. }
  1782. //----------------
  1783. // Zebra 200 DPI용
  1784. } else {
  1785. //--------------------
  1786. // ZEBRA 접수라벨 출력
  1787. for (var iRowNo=0; iRowNo < pDs.rowcount; iRowNo++) {
  1788. //조직, 세포, 동결절편, 분자, 전자, 면역형광 만 접수 라벨을 출력한다.(추가 박중규 2008.09.23)
  1789. if(!(pDs.getColumn(iRowNo,"workflagcd") == "1001" || pDs.getColumn(iRowNo,"workflagcd") == "1002"
  1790. || pDs.getColumn(iRowNo,"workflagcd") == "1003" || pDs.getColumn(iRowNo,"workflagcd") == "1007"
  1791. || pDs.getColumn(iRowNo,"workflagcd") == "1006" || pDs.getColumn(iRowNo,"workflagcd") == "1008")){
  1792. continue;
  1793. }
  1794. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  1795. if (sPrcpDD.length <= 8) {
  1796. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  1797. }
  1798. //------------------------
  1799. if(sCommKind == "01") { // 병렬출력
  1800. sSndMsg = "^XA^SEE:UHANGUL.DAT^CWQ,E:kfont3.FNT";
  1801. iEGap = 12;
  1802. iHGap = 20;
  1803. } else if(sCommKind == "02") { // 직렬출력
  1804. sSndMsg = "^XA^LH0,0^PRB";
  1805. iEGap = 12;
  1806. iHGap = 20;
  1807. }
  1808. iXPos = Number(iLeft);
  1809. //---------------------------------------------------------
  1810. sTempStr = pDs.getColumn(iRowNo,"spcdispnm");
  1811. sTempStr = sTempStr.replace("▨", ",");
  1812. iWidth = 0;
  1813. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  1814. // aFlag = aArraySet[0];
  1815. // aStr = aArraySet[1];
  1816. // if( !utlf_isNull(sTempStr))
  1817. // {
  1818. // for (var iNo=0; iNo < aStr.length; iNo++)
  1819. // {
  1820. // //----------------------
  1821. // if (aFlag[iNo] == "E")
  1822. // {
  1823. // iYPos = Number(iTop) + 5;
  1824. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  1825. // iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  1826. // }
  1827. // else
  1828. // {
  1829. // iYPos = Number(iTop);
  1830. //
  1831. // if(sCommKind == "01")
  1832. // { // 병렬출력
  1833. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  1834. // }
  1835. // else if(sCommKind == "02")
  1836. // { // 직렬출력
  1837. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1838. // sSndMsg += CommAX.HanImageData();
  1839. // }
  1840. // if( utlf_isNull(aStr[iNo]))
  1841. // {
  1842. // iWidth = iWidth + iHGap;
  1843. // }
  1844. // else
  1845. // {
  1846. // iWidth = iWidth + (Number(aStr[iNo]).length * iHGap);
  1847. // }
  1848. // }
  1849. // }
  1850. // }
  1851. if (!utlf_isNull(sTempStr)){
  1852. for (var j = 0; j < sTempStr.length; j++) {
  1853. oneChar = sTempStr.charAt(j);
  1854. test_rtn = "";
  1855. test_he = "";
  1856. test_rtn = lpzfGetHanGul3(oneChar);
  1857. test_he = test_rtn.substring(0,1);
  1858. if(!utlf_isNull(test_he))
  1859. {
  1860. //----------------------
  1861. if (test_he == "E") {
  1862. iYPos = Number(iTop) + 5;
  1863. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS";
  1864. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  1865. } else {
  1866. iYPos = Number(iTop);
  1867. if(sCommKind == "01") { // 병렬출력
  1868. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  1869. } else if(sCommKind == "02") { // 직렬출력
  1870. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  1871. sSndMsg += CommAX.HanImageData();
  1872. }
  1873. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  1874. }
  1875. }
  1876. }
  1877. }
  1878. iXPos = Number(iLeft);
  1879. iYPos = Number(iTop) + 35;
  1880. sSndMsg += "^CF0,24^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"pid") + "^FS"; // 등록번호
  1881. //--------------------------
  1882. iXPos = Number(iLeft) + 140;
  1883. iYPos = Number(iTop) + 30;
  1884. sPatNm = pDs.getColumn(iRowNo,"patnm");
  1885. if(sCommKind == "01") { // 병렬출력
  1886. sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,20,20^FD"+ sPatNm +"^FS^CI1";
  1887. CommAX.SendMsg(sSndMsg);
  1888. } else if(sCommKind == "02") { // 직렬출력
  1889. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, sPatNm, 1, 1); // -------> 한도버젼
  1890. sSndMsg += CommAX.HanImageData();
  1891. CommAX.SendMessage(sSndMsg);
  1892. }
  1893. sSndMsg = "";
  1894. //--------------------------
  1895. iXPos = Number(iLeft);
  1896. iYPos = Number(iTop) + 65;
  1897. sTempStr = pDs.getColumn(iRowNo,"wardroom"); // 병동병실
  1898. if((sTempStr == "외래") || (sTempStr == "건진")) {
  1899. //---------------------
  1900. if(sCommKind == "01") { // 병렬출력
  1901. sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,20,20^FD"+ pDs.getColumn(iRowNo,"wardroom") +"^FS^CI1";
  1902. CommAX.SendMsg(sSndMsg);
  1903. } else if(sCommKind == "02") { // 직렬출력
  1904. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, pDs.getColumn(iRowNo,"wardroom"), 1, 1); // -------> 한도버젼
  1905. sSndMsg += CommAX.HanImageData();
  1906. CommAX.SendMessage(sSndMsg);
  1907. }
  1908. sSndMsg = "";
  1909. } else {
  1910. iYPos += 3; //font와 이미지로 찍을때의 위치 차이 조정.
  1911. sSndMsg += "^CFA20,20^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"wardroom") + "^FS";
  1912. }
  1913. //--------------------------
  1914. iXPos = Number(iLeft) + 140;
  1915. iYPos = Number(iTop) + 68;
  1916. sSndMsg += "^CFA20,20^FO" + iXPos + "," + iYPos + "^FD(" + pDs.getColumn(iRowNo,"sexage") + ")^FS"; // 성별/나이
  1917. //--------------------------
  1918. iXPos = Number(iLeft) + 230;
  1919. iYPos = Number(iTop) + 68;
  1920. sSndMsg += "^CFA20,20^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"orddeptnm") + "^FS"; // 진료과
  1921. iXPos = Number(iLeft);
  1922. sTempStr = pDs.getColumn(iRowNo,"prcpdispnm"); //검사명
  1923. //40바이트가 넘을 경우 검사명을 짤라서 출력한다.
  1924. if(sTempStr.getByteLength() > 40) {
  1925. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  1926. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 40) {
  1927. sTempStr2 = sTempStr.substr(0, iLeng);
  1928. break;
  1929. }
  1930. }
  1931. sTempStr = sTempStr2;
  1932. }
  1933. iWidth = 0;
  1934. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  1935. // aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  1936. // aFlag = aArraySet[0];
  1937. // aStr = aArraySet[1];
  1938. // for (var iNo=0; iNo < aStr.length; iNo++) {
  1939. //
  1940. // //----------------------
  1941. // if (aFlag[iNo] == "E") {
  1942. // iYPos = Number(iTop) + 100;
  1943. // sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  1944. // iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  1945. // } else {
  1946. // iYPos = Number(iTop) + 95;
  1947. //
  1948. // if(sCommKind == "01") { // 병렬출력
  1949. // sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  1950. // } else if(sCommKind == "02") { // 직렬출력
  1951. // sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  1952. // sSndMsg += CommAX.HanImageData();
  1953. // }
  1954. // iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  1955. // }
  1956. // }
  1957. if (!utlf_isNull(sTempStr)){
  1958. for (var j = 0; j < sTempStr.length; j++) {
  1959. oneChar = sTempStr.charAt(j);
  1960. test_rtn = "";
  1961. test_he = "";
  1962. test_rtn = lpzfGetHanGul3(oneChar);
  1963. test_he = test_rtn.substring(0,1);
  1964. if(!utlf_isNull(test_he))
  1965. {
  1966. //----------------------
  1967. if (test_he == "E") {
  1968. iYPos = Number(iTop) + 100;
  1969. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + oneChar + "^FS";
  1970. iWidth = iWidth + (Number(oneChar.length) * iEGap);
  1971. } else {
  1972. iYPos = Number(iTop) + 95;
  1973. if(sCommKind == "01") { // 병렬출력
  1974. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ oneChar.getTrim() +"^FS^CI1";
  1975. } else if(sCommKind == "02") { // 직렬출력
  1976. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, oneChar, 1, 1);
  1977. sSndMsg += CommAX.HanImageData();
  1978. }
  1979. iWidth = iWidth + (Number(oneChar.length) * iHGap);
  1980. }
  1981. }
  1982. }
  1983. }
  1984. //-------------------------
  1985. iXPos = Number(iLeft);
  1986. iYPos = Number(iTop) + 150;
  1987. sSndMsg += "^CF0,55^FO" + iXPos + "," + iYPos + "^FD" + pDs.getColumn(iRowNo,"dispptno") + "^FS"; // 병리번호1 - 병리번호2
  1988. sSndMsg += "^PQ"+pPrntCnt+"^XZ";
  1989. //---------------------
  1990. if(sCommKind == "01") { // 병렬출력
  1991. CommAX.SendMsg(sSndMsg);
  1992. } else if(sCommKind == "02") { // 직렬출력
  1993. CommAX.SendMessage(sSndMsg);
  1994. }
  1995. //----------------------
  1996. CommAX.SendMessage("^XZ");
  1997. }
  1998. } // } else {
  1999. //*****************************************************************************
  2000. // 의뢰지 바코드
  2001. } else {
  2002. //SATO 채혈바코드 출력
  2003. if( sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  2004. for (var iRowNo=1; iRowNo <= getNodesetCount(pNode); iRowNo++) {
  2005. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  2006. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2007. sSndMsg = String.fromCharCode(27) +"A"+String.fromCharCode(27) +"A103500500"; // 시작위치 셋팅
  2008. iXPos = Number(iLeft) + 20;
  2009. iYPos = Number(iTop) + 5;
  2010. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"BG02100" + pDs.getColumn(iRowNo,"spcbarcdno");
  2011. iXPos = Number(iLeft) + 130;
  2012. iYPos = Number(iTop) + 110;
  2013. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + pDs.getColumn(iRowNo,"spcbarcdno");
  2014. iXPos = Number(iLeft);
  2015. iYPos = Number(iTop) + 130;
  2016. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + "PATHOLOGY";
  2017. iXPos = Number(iLeft) + 110;
  2018. iYPos = Number(iTop) + 130;
  2019. sTempStr = pDs.getColumn(iRowNo,"wardroom");
  2020. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2021. iXPos = Number(iLeft) + 220;
  2022. iYPos = Number(iTop) + 130;
  2023. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + sPrcpDD;
  2024. iXPos = Number(iLeft) + 330;
  2025. iYPos = Number(iTop) + 130;
  2026. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"M" + pDs.getColumn(iRowNo,"isolabbrcd"); //처방일자
  2027. iXPos = Number(iLeft);
  2028. iYPos = Number(iTop) + 155;
  2029. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) + "S" + pDs.getColumn(iRowNo,"pid");
  2030. iXPos = Number(iLeft) + 110;
  2031. iYPos = Number(iTop) + 150;
  2032. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, pDs.getColumn(iRowNo,"patnm"));
  2033. iXPos = Number(iLeft) + 220;
  2034. iYPos = Number(iTop) + 155;
  2035. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + pDs.getColumn(iRowNo,"sexage");
  2036. iXPos = Number(iLeft) + 280;
  2037. iYPos = Number(iTop) + 155;
  2038. sTempStr = pDs.getColumn(iRowNo,"orddeptnm");
  2039. sSndMsg += String.fromCharCode(27) +"V" + iYPos + String.fromCharCode(27) +"H" + iXPos + String.fromCharCode(27) +"S" + sTempStr;
  2040. iXPos = Number(iLeft);
  2041. iYPos = Number(iTop) + 175;
  2042. sTempStr = pDs.getColumn(iRowNo,"spcdispnm");
  2043. sTempStr = sTempStr.replace("▨", ",");
  2044. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2045. iXPos = Number(iLeft);
  2046. iYPos = Number(iTop) + 200;
  2047. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm");
  2048. sTempStr = sTempStr.replace("▨", ",");
  2049. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2050. iXPos = Number(iLeft);
  2051. iYPos = Number(iTop) + 225;
  2052. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm2");
  2053. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2054. sSndMsg += String.fromCharCode(27) +"Q" + "1" + String.fromCharCode(27) +"Z";
  2055. CommAX.SendMsg(sSndMsg);
  2056. }
  2057. //-----------------
  2058. // Zebra EPL 모드용
  2059. } else if(sPrntKind == "10") {
  2060. //----------------------------------
  2061. sFixChar = String.fromCharCode(34);
  2062. //----------------------
  2063. // ZEBRA 채혈바코드 출력
  2064. for (var iRowNo=0; iRowNo < pDs.rowcount; iRowNo++) {
  2065. //----------------------------------------------------
  2066. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  2067. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2068. //---------------------
  2069. sSndMsg = "\r\n"; // Active Command Processing
  2070. sSndMsg += "N" + "\r\n"; // Clear Image Buffer
  2071. //--------------------
  2072. iXPos = Number(iLeft) - 70;
  2073. iYPos = Number(iTop);
  2074. sSndMsg += "B"+iXPos+","+iYPos+",2,3,2,2,60,B,"+ sFixChar + pDs.getColumn(iRowNo,"spcbarcdno") + sFixChar + "\r\n";
  2075. //====================
  2076. iXPos = Number(iLeft);
  2077. iYPos = Number(iTop) - 90;
  2078. sSndMsg += "A"+iXPos+","+iYPos+",2,2,1,1,N," + sFixChar + "PATHOLOGY" + sFixChar + "\r\n"; // 검체도착지명
  2079. //--------------------------
  2080. iXPos = Number(iLeft) - 140;
  2081. iYPos = Number(iTop) - 90;
  2082. sTempStr = pDs.getColumn(iRowNo,"wardroom");
  2083. sTempStr = sTempStr.replace("▨", ",");
  2084. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 병동병실
  2085. //-------------------------
  2086. iXPos = Number(iLeft) - 240;
  2087. iYPos = Number(iTop) - 90;
  2088. sSndMsg += "A"+iXPos+","+iYPos+",2,2,1,1,N," + sFixChar + sPrcpDD + sFixChar + "\r\n"; // 처방일자
  2089. iXPos = Number(iLeft) - 370;
  2090. iYPos = Number(iTop) - 90;
  2091. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"isolabbrcd") + sFixChar + "\r\n"; // 감염정보
  2092. //sSndMsg += "A"+iXPos+","+iYPos+",2,2,1,1,N," + sFixChar + "Inspect" + sFixChar + "\r\n"; // 감염정보
  2093. //--------------------
  2094. iXPos = Number(iLeft);
  2095. iYPos = Number(iTop) - 120; // 등록번호
  2096. sSndMsg += "A"+iXPos+","+iYPos+",2,2,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"pid") + sFixChar + "\r\n"; // 등록번호
  2097. //-------------------------
  2098. iXPos = Number(iLeft) - 140;
  2099. iYPos = Number(iTop) - 120;
  2100. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"patnm") + sFixChar + "\r\n"; // 환자명
  2101. //--------------------------
  2102. iXPos = Number(iLeft) - 240;
  2103. iYPos = Number(iTop) - 120;
  2104. sSndMsg += "A"+iXPos+","+iYPos+",2,2,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"sexage") + sFixChar + "\r\n"; // 성별/나이
  2105. //-------------------------
  2106. iXPos = Number(iLeft) - 340;
  2107. iYPos = Number(iTop) - 120;
  2108. sSndMsg += "A"+iXPos+","+iYPos+",2,2,1,1,N," + sFixChar + pDs.getColumn(iRowNo,"orddeptnm") + sFixChar + "\r\n"; // 진료과
  2109. //====================
  2110. iXPos = Number(iLeft);
  2111. iYPos = Number(iTop) - 150;
  2112. sTempStr = pDs.getColumn(iRowNo,"spcdispnm");
  2113. sTempStr = sTempStr.replace("▨", ",");
  2114. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검체표시명
  2115. //====================
  2116. iXPos = Number(iLeft);
  2117. iYPos = Number(iTop) - 180;
  2118. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm");
  2119. sTempStr = sTempStr.replace("▨", ",");
  2120. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검사명
  2121. //------추가처방명 표시-------------------
  2122. iXPos = Number(iLeft);
  2123. iYPos = Number(iTop) - 210;
  2124. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm2");
  2125. sSndMsg += "A"+iXPos+","+iYPos+",2,8,1,1,N," + sFixChar + sTempStr + sFixChar + "\r\n"; // 검사명
  2126. //-----------------------
  2127. sSndMsg += "P1" + "\r\n";
  2128. //---------------------
  2129. if(sCommKind == "01") { // 병렬출력
  2130. CommAX.SendMsg(sSndMsg);
  2131. } else if(sCommKind == "02") { // 직렬출력
  2132. CommAX.SendMessage(sSndMsg);
  2133. }
  2134. }
  2135. //----------------
  2136. // Zebra 300 DPI용
  2137. } else if(sPrntKind == "9") {
  2138. //----------------------
  2139. // ZEBRA 채혈바코드 출력
  2140. for (var iRowNo=0; iRowNo < pDs.rowcount; iRowNo++) {
  2141. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  2142. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2143. //---------------------
  2144. if(sCommKind == "01") { // 병렬출력
  2145. sSndMsg = "^XA^SEE:UHANGUL.DAT^CWQ,E:kfont3.FNT";
  2146. } else if(sCommKind == "02") { // 직렬출력
  2147. sSndMsg = "^XA^LH0,0^PRB";
  2148. }
  2149. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  2150. //--------------------
  2151. iXPos = Number(iLeft) + 20;
  2152. iYPos = Number(iTop) + 5;
  2153. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + pDs.getColumn(iRowNo,"spcbarcdno") + "^FS"; // 바코드(CODE128)
  2154. //====================
  2155. iXPos = Number(iLeft);
  2156. iYPos = Number(iTop) + 115;
  2157. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  2158. //--------------------------
  2159. iXPos = Number(iLeft) + 180;
  2160. sTempStr = pDs.getColumn(iRowNo,"wardroom");
  2161. sTempStr = sTempStr.replace("▨", ","); // 병동병실
  2162. iWidth = 0;
  2163. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2164. aFlag = aArraySet[0];
  2165. aStr = aArraySet[1];
  2166. for (var iNo=0; iNo < aStr.length; iNo++) {
  2167. //----------------------
  2168. if (aFlag[iNo] == "E") {
  2169. iYPos = Number(iTop) + 115;
  2170. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 병동병실
  2171. iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  2172. } else {
  2173. iYPos = Number(iTop) + 110;
  2174. if(sCommKind == "01") { // 병렬출력
  2175. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2176. iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  2177. } else if(sCommKind == "02") { // 직렬출력
  2178. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2179. sSndMsg += CommAX.HanImageData();
  2180. iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  2181. }
  2182. }
  2183. }
  2184. //---------------------
  2185. if(sCommKind == "01") { // 병렬출력
  2186. CommAX.SendMsg(sSndMsg);
  2187. } else if(sCommKind == "02") { // 직렬출력
  2188. CommAX.SendMessage(sSndMsg);
  2189. }
  2190. //-----------
  2191. sSndMsg = "";
  2192. //-------------------------
  2193. iXPos = Number(iLeft) + 300;
  2194. iYPos = Number(iTop) + 115;
  2195. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  2196. iXPos = Number(iLeft) + 500;
  2197. iYPos = Number(iTop) + 110;
  2198. sSndMsg += "^CFA99,44^FO"+iXPos+","+iYPos+"^FD" + pDs.getColumn(iRowNo,"isolabbrcd") + "^FS"; // 감염정보
  2199. //--------------------
  2200. iXPos = Number(iLeft);
  2201. iYPos = Number(iTop) + 150; // 등록번호
  2202. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+iXPos+","+iYPos+"^FD" + pDs.getColumn(iRowNo,"pid") + "^FS";
  2203. //-------------------------
  2204. iXPos = Number(iLeft) + 160;
  2205. iYPos = Number(iTop) + 150;
  2206. //sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, pDs.getColumn(iRowNo,"patnm"), 2, 1); // -------> 한도버젼
  2207. //sSndMsg += CommAX.HanImageData();
  2208. sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,30,30^FD"+ pDs.getColumn(iRowNo,"patnm") +"^FS^CI1";
  2209. //-------------------------
  2210. iXPos = Number(iLeft) + 320;
  2211. iYPos = Number(iTop) + 150;
  2212. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+iXPos+","+iYPos+"^FD" + pDs.getColumn(iRowNo,"sexage") + "^FS"; // 성별/나이
  2213. //-------------------------
  2214. iXPos = Number(iLeft) + 450;
  2215. iYPos = Number(iTop) + 150;
  2216. sTempStr = pDs.getColumn(iRowNo,"orddeptnm");
  2217. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+iXPos+","+iYPos+"^FD" + sTempStr + "^FS"; // 진료과
  2218. //====================
  2219. iXPos = Number(iLeft);
  2220. sTempStr = pDs.getColumn(iRowNo,"spcdispnm");
  2221. sTempStr = sTempStr.replace("▨", ",");
  2222. //---------
  2223. iWidth = 0;
  2224. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2225. aFlag = aArraySet[0];
  2226. aStr = aArraySet[1];
  2227. for (var iNo=0; iNo < aStr.length; iNo++) {
  2228. //----------------------
  2229. if (aFlag[iNo] == "E") {
  2230. iYPos = Number(iTop) + 185;
  2231. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  2232. iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  2233. } else {
  2234. iYPos = Number(iTop) + 180;
  2235. if(sCommKind == "01") { // 병렬출력
  2236. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2237. iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  2238. } else if(sCommKind == "02") { // 직렬출력
  2239. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1); // -------> 한도버젼
  2240. sSndMsg += CommAX.HanImageData();
  2241. iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  2242. }
  2243. }
  2244. }
  2245. //---------------------
  2246. if(sCommKind == "01") { // 병렬출력
  2247. CommAX.SendMsg(sSndMsg);
  2248. } else if(sCommKind == "02") { // 직렬출력
  2249. CommAX.SendMessage(sSndMsg);
  2250. }
  2251. sSndMsg = "";
  2252. //====================
  2253. iXPos = Number(iLeft);
  2254. iYPos = Number(iTop) + 220;
  2255. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm"); // 검사명(영문)
  2256. sTempStr = sTempStr.replace("▨", ",");
  2257. //---------
  2258. iWidth = 0;
  2259. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2260. aFlag = aArraySet[0];
  2261. aStr = aArraySet[1];
  2262. //-----------------------------------------
  2263. for (var iNo=0; iNo < aStr.length; iNo++) {
  2264. //----------------------
  2265. if (aFlag[iNo] == "E") {
  2266. iYPos = Number(iTop) + 220;
  2267. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS";
  2268. iWidth = iWidth + (Number(aStr[iNo].length) * 19);
  2269. } else {
  2270. iYPos = Number(iTop) + 220;
  2271. //---------------------
  2272. if(sCommKind == "01") { // 병렬출력
  2273. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2274. iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  2275. } else if(sCommKind == "02") { // 직렬출력
  2276. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1); // -------> 한도버젼
  2277. sSndMsg += CommAX.HanImageData();
  2278. iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  2279. }
  2280. }
  2281. }
  2282. //---------------------
  2283. if(sCommKind == "01") { // 병렬출력
  2284. CommAX.SendMsg(sSndMsg);
  2285. } else if(sCommKind == "02") { // 직렬출력
  2286. CommAX.SendMessage(sSndMsg);
  2287. }
  2288. sSndMsg = "";
  2289. //------추가처방명 표시-------------------
  2290. iXPos = Number(iLeft);
  2291. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm2");
  2292. iWidth = 0;
  2293. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2294. aFlag = aArraySet[0];
  2295. aStr = aArraySet[1];
  2296. for (var iNo=0; iNo < aStr.length; iNo++) {
  2297. //----------------------
  2298. if (aFlag[iNo] == "E") {
  2299. iYPos = Number(iTop) + 260;
  2300. sSndMsg += "^CFA" + iSize + "," + iSize + "^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  2301. iWidth = iWidth + (Number(aStr[iNo].length) * 17);
  2302. } else {
  2303. iYPos = Number(iTop) + 255;
  2304. if(sCommKind == "01") { // 병렬출력
  2305. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,30,30^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2306. iWidth = iWidth + (Number(aStr[iNo].length) * 31);
  2307. } else if(sCommKind == "02") { // 직렬출력
  2308. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1); // -------> 한도버젼
  2309. sSndMsg += CommAX.HanImageData();
  2310. iWidth = iWidth + (Number(aStr[iNo].length) * 29);
  2311. }
  2312. }
  2313. }
  2314. //------------------------------
  2315. sSndMsg += "^PQ"+pPrntCnt+"^XZ";
  2316. //---------------------
  2317. if(sCommKind == "01") { // 병렬출력
  2318. CommAX.SendMsg(sSndMsg);
  2319. } else if(sCommKind == "02") { // 직렬출력
  2320. CommAX.SendMessage(sSndMsg);
  2321. }
  2322. //----------------------
  2323. CommAX.SendMessage("^XZ");
  2324. }
  2325. //----------------
  2326. // Zebra 200 DPI용
  2327. } else if(sPrntKind == "1" || sPrntKind == "11") {
  2328. //----------------------
  2329. // ZEBRA 채혈바코드 출력
  2330. for (var iRowNo=0; iRowNo < pDs.rowcount; iRowNo++) {
  2331. //----------------------------------------------------
  2332. sPrcpDD = pDs.getColumn(iRowNo,"prcpdd");
  2333. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2334. if(sCommKind == "01") { // 병렬출력
  2335. iEGap = 12;
  2336. iHGap = 20;
  2337. sSndMsg = "^XA^SEE:UHANGUL.DAT^CWQ,E:kfont3.FNT";
  2338. } else if(sCommKind == "02") { // 직렬출력
  2339. iEGap = 12;
  2340. iHGap = 20;
  2341. sSndMsg = "^XA^LH0,0^PRB";
  2342. }
  2343. sSndMsg += "^BY2,1"; // 바코드 Width 조절
  2344. //--------------------
  2345. iXPos = Number(iLeft) + 20;
  2346. iYPos = Number(iTop) + 5;
  2347. sSndMsg += "^FO"+iXPos+","+iYPos+"^BCN,80,Y,N,N^FD" + pDs.getColumn(iRowNo,"spcbarcdno") + "^FS"; // 바코드(CODE128)
  2348. //====================
  2349. iXPos = Number(iLeft);
  2350. iYPos = Number(iTop) + 115;
  2351. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + "PATHOLOGY" + "^FS"; // 검체도착지명
  2352. iXPos = Number(iLeft) + 130;
  2353. sTempStr = pDs.getColumn(iRowNo,"wardroom");
  2354. sTempStr = sTempStr.replace("▨", ","); // 병동병실
  2355. iWidth = 0;
  2356. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  2357. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2358. aFlag = aArraySet[0];
  2359. aStr = aArraySet[1];
  2360. for (var iNo=0; iNo < aStr.length; iNo++) {
  2361. //----------------------
  2362. if (aFlag[iNo] == "E") {
  2363. iYPos = Number(iTop) + 115;
  2364. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  2365. iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  2366. } else {
  2367. iYPos = Number(iTop) + 110;
  2368. if(sCommKind == "01") { // 병렬출력
  2369. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2370. } else if(sCommKind == "02") { // 직렬출력
  2371. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1);
  2372. sSndMsg += CommAX.HanImageData();
  2373. }
  2374. iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  2375. }
  2376. }
  2377. //---------------------
  2378. if(sCommKind == "01") { // 병렬출력
  2379. //CommAX.SendMessageToLPT(sSndMsg);
  2380. CommAX.SendMsg(sSndMsg);
  2381. } else if(sCommKind == "02") { // 직렬출력
  2382. CommAX.SendMessage(sSndMsg);
  2383. }
  2384. sSndMsg = "";
  2385. //-------------------------
  2386. iXPos = Number(iLeft) + 215;
  2387. iYPos = Number(iTop) + 115;
  2388. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sPrcpDD + "^FS"; // 처방일자
  2389. iXPos = Number(iLeft) + 340
  2390. iYPos = Number(iTop) + 115;
  2391. sSndMsg += "^CFA99,44^FO"+iXPos+","+iYPos+"^FD" + pDs.getColumn(iRowNo,"isolabbrcd") + "^FS"; // 감염정보
  2392. //--------------------------
  2393. iXPos = Number(iLeft);
  2394. iYPos = Number(iTop) + 145;
  2395. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + pDs.getColumn(iRowNo,"pid") + "^FS"; // 등록번호
  2396. //-------------------------
  2397. iXPos = Number(iLeft) + 130;
  2398. iYPos = Number(iTop) + 140;
  2399. //sSndMsg += CommAX.PrtImgOut("GRAPH001", pDs.getColumn(iRowNo,"patnm")); // 환자명
  2400. //sSndMsg += "^CFA,20,20^FO"+iXPos+","+iYPos+"^XGGRAPH001,1,1^FS"; // -------> 구버젼
  2401. if(sCommKind == "01") { // 병렬출력
  2402. sSndMsg += "^CI14^FO"+iXPos+","+iYPos+"^AQN,20,20^FD"+ pDs.getColumn(iRowNo,"patnm") +"^FS^CI1";
  2403. } else if(sCommKind == "02") { // 직렬출력
  2404. sSndMsg += CommAX.PrtImgOut(iXPos, iYPos, pDs.getColumn(iRowNo,"patnm"), 1, 1); // -------> 한도버젼
  2405. sSndMsg += CommAX.HanImageData();
  2406. }
  2407. //-------------------------
  2408. iXPos = Number(iLeft) + 240;
  2409. iYPos = Number(iTop) + 145;
  2410. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + pDs.getColumn(iRowNo,"sexage") + "^FS"; // 성별/나이
  2411. //-------------------------
  2412. iXPos = Number(iLeft) + 300;
  2413. iYPos = Number(iTop) + 145;
  2414. sTempStr = pDs.getColumn(iRowNo,"orddeptnm");
  2415. sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + sTempStr + "^FS"; // 진료과
  2416. //=========================
  2417. iXPos = Number(iLeft);
  2418. // iYPos = Number(iTop) + 195;
  2419. // sSndMsg += "^CFA20,20^FO"+iXPos+","+iYPos+"^FD" + pDs.getColumn(iRowNo,"spcdispnm") + "^FS"; // 검체표시명
  2420. //---------------------------------------------------------
  2421. sTempStr = pDs.getColumn(iRowNo,"spcdispnm");
  2422. sTempStr = sTempStr.replace("▨", ",");
  2423. //---------
  2424. iWidth = 0;
  2425. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  2426. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2427. aFlag = aArraySet[0];
  2428. aStr = aArraySet[1];
  2429. for (var iNo=0; iNo < aStr.length; iNo++) {
  2430. //----------------------
  2431. if (aFlag[iNo] == "E") {
  2432. iYPos = Number(iTop) + 175;
  2433. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검체표시명(영문)
  2434. iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  2435. } else {
  2436. iYPos = Number(iTop) + 170;
  2437. if(sCommKind == "01") { // 병렬출력
  2438. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2439. } else if(sCommKind == "02") { // 직렬출력
  2440. //sSndMsg += CommAX.PrtImgOut("GRAPH05"+iNo, aStr[iNo]); // 검체표시명(한글)
  2441. //sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^XGGRAPH05"+iNo+",1,1^FS"; // -------> 구버젼
  2442. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1); // -------> 한도버젼
  2443. sSndMsg += CommAX.HanImageData();
  2444. }
  2445. iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  2446. }
  2447. }
  2448. //---------------------
  2449. if(sCommKind == "01") { // 병렬출력
  2450. //CommAX.SendMessageToLPT(sSndMsg);
  2451. CommAX.SendMsg(sSndMsg);
  2452. } else if(sCommKind == "02") { // 직렬출력
  2453. CommAX.SendMessage(sSndMsg);
  2454. }
  2455. sSndMsg = "";
  2456. //==========================
  2457. iXPos = Number(iLeft);
  2458. // iYPos = Number(iTop) + 225;
  2459. //---------------------------------------------------------
  2460. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm");
  2461. sTempStr = sTempStr.replace("▨", ",");
  2462. //sTempStr = sTempStr.substring(0, sTempStr.length-1);
  2463. //---------
  2464. iWidth = 0;
  2465. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  2466. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2467. aFlag = aArraySet[0];
  2468. aStr = aArraySet[1];
  2469. for (var iNo=0; iNo < aStr.length; iNo++) {
  2470. //----------------------
  2471. if (aFlag[iNo] == "E") {
  2472. iYPos = Number(iTop) + 200;
  2473. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  2474. iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  2475. } else {
  2476. iYPos = Number(iTop) + 195;
  2477. if(sCommKind == "01") { // 병렬출력
  2478. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2479. } else if(sCommKind == "02") { // 직렬출력
  2480. //sSndMsg += CommAX.PrtImgOut("GRAPH05"+iNo, aStr[iNo]); // 검사명(한글)
  2481. //sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^XGGRAPH05"+iNo+",1,1^FS"; // -------> 구버젼
  2482. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1); // -------> 한도버젼
  2483. sSndMsg += CommAX.HanImageData();
  2484. }
  2485. iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  2486. }
  2487. }
  2488. //---------------------
  2489. if(sCommKind == "01") { // 병렬출력
  2490. //CommAX.SendMessageToLPT(sSndMsg);
  2491. CommAX.SendMsg(sSndMsg);
  2492. } else if(sCommKind == "02") { // 직렬출력
  2493. CommAX.SendMessage(sSndMsg);
  2494. }
  2495. sSndMsg = "";
  2496. //------추가처방명 표시-------------------
  2497. iXPos = Number(iLeft);
  2498. sTempStr = pDs.getColumn(iRowNo,"prntprcpdispnm2")
  2499. iWidth = 0;
  2500. //aStr = lpzfGetHanGul(sTempStr, aFlag);
  2501. aArraySet = lpzfGetHanGul2(sTempStr, aFlag);
  2502. aFlag = aArraySet[0];
  2503. aStr = aArraySet[1];
  2504. for (var iNo=0; iNo < aStr.length; iNo++) {
  2505. //----------------------
  2506. if (aFlag[iNo] == "E") {
  2507. iYPos = Number(iTop) + 230;
  2508. sSndMsg += "^CFA20,20^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^FD" + aStr[iNo] + "^FS"; // 검사명(영문)
  2509. iWidth = iWidth + (Number(aStr[iNo].length) * iEGap);
  2510. } else {
  2511. iYPos = Number(iTop) + 225;
  2512. if(sCommKind == "01") { // 병렬출력
  2513. sSndMsg += "^CI14^FO"+(Number(iXPos)+Number(iWidth))+","+iYPos+"^AQN,20,20^FD"+ aStr[iNo].getTrim() +"^FS^CI1";
  2514. } else if(sCommKind == "02") { // 직렬출력
  2515. sSndMsg += CommAX.PrtImgOut((Number(iXPos)+Number(iWidth)), iYPos, aStr[iNo], 1, 1); // -------> 한도버젼
  2516. sSndMsg += CommAX.HanImageData();
  2517. }
  2518. iWidth = iWidth + (Number(aStr[iNo].length) * iHGap);
  2519. }
  2520. }
  2521. //------------------------------
  2522. sSndMsg += "^PQ"+pPrntCnt+"^XZ";
  2523. //---------------------
  2524. if(sCommKind == "01") { // 병렬출력
  2525. //CommAX.SendMessageToLPT(sSndMsg);
  2526. CommAX.SendMsg(sSndMsg);
  2527. } else if(sCommKind == "02") { // 직렬출력
  2528. CommAX.SendMessage(sSndMsg);
  2529. }
  2530. //----------------------
  2531. CommAX.SendMessage("^XZ");
  2532. }
  2533. }
  2534. }
  2535. }
  2536. /**
  2537. * @group : PathologyWeb Common
  2538. * @ver : 2008.01.21 (CMCDEV-0001)
  2539. * @by : Ryu
  2540. * @---------------------------------------------------
  2541. * @type : function
  2542. * @access : public
  2543. * @desc : Hangul Or English
  2544. * @param : pData --> Original String
  2545. * : aFlag[] --> H(Hangle) / E(English)
  2546. *
  2547. *
  2548. * @return :
  2549. *
  2550. * ex) lpzffGetHanGul(pData, aFlag);
  2551. * @-------------------------------------------------------------------
  2552. */
  2553. function lpzfGetHanGul(pData, aFlag) {
  2554. // // var re = /([!-~]*)*/g;
  2555. //trace("pData ==1111 " + pData);
  2556. var re = new RegExp(/([!-~]*)*/g);
  2557. // //var matchMatrix = pData.match(re);
  2558. // //var matchMatrix = utlf_transNullToEmpty(pData.match(re).toString().replace(",", "");
  2559. var matchMatrix = re.exec(pData);
  2560. //trace("matchMatrix ==11111 " + matchMatrix +'/'+pData);
  2561. var aData = new Array();
  2562. var iSPos = 0;
  2563. var iFindPos = 0;
  2564. var iDataCnt = 0;
  2565. var iHngCnt = 0;
  2566. var bHngState = false;
  2567. if(utlf_isNull(matchMatrix))
  2568. {
  2569. aData[0] = pData;
  2570. return aData;
  2571. }
  2572. // //---------------------------------------
  2573. for( var j=0 ; j<= matchMatrix.length ; j++ ){
  2574. tmpStr = matchMatrix[j] + "";
  2575. //-------------------------
  2576. if( utlf_isNull(matchMatrix[j]) ){
  2577. bHngState = true;
  2578. iHngCnt++;
  2579. } else {
  2580. //--------------
  2581. if (bHngState) {
  2582. aFlag[iDataCnt] = "H";
  2583. aData[iDataCnt] = pData.substr(iSPos, iHngCnt);
  2584. bHngState = false;
  2585. iSPos += iHngCnt;
  2586. iHngCnt = 0;
  2587. iDataCnt++;
  2588. }
  2589. //--------------------
  2590. aFlag[iDataCnt] = "E";
  2591. iFindPos = pData.indexOf(matchMatrix[j], iSPos);
  2592. aData[iDataCnt] = matchMatrix[j]
  2593. //------------------------------------------------
  2594. iSPos = Number(iFindPos) + Number(tmpStr.length);
  2595. iDataCnt++;
  2596. }
  2597. }
  2598. //--------------
  2599. if (bHngState) {
  2600. aFlag[iDataCnt] = "H";
  2601. aData[iDataCnt] = pData.substr(iSPos, iHngCnt);
  2602. bHngState = false;
  2603. }
  2604. //-----------
  2605. // if(utlf_isNull(aData))
  2606. // {
  2607. // aData[0] = pData;
  2608. //
  2609. // trace("aData == " + aData[0]);
  2610. // return aData;
  2611. // }
  2612. return aData;
  2613. }
  2614. function lpzfGetHanGul3(pData)
  2615. {
  2616. var HanEng = "E";
  2617. var rTn = "";
  2618. if (escape(pData).length > 4) {
  2619. HanEng = 'H';
  2620. }else{
  2621. HanEng = 'E';
  2622. }
  2623. rTn = HanEng+oneChar;
  2624. return rTn;
  2625. }
  2626. /**
  2627. * @group : PathologyWeb Common
  2628. * @ver : 2010.12.17 (CMCDEV-0001)
  2629. * @by : Ryu
  2630. * @---------------------------------------------------
  2631. * @type : function
  2632. * @access : public
  2633. * @desc : Hangul Or English 공백포함
  2634. * @param : pData --> Original String
  2635. * : aFlag[] --> H(Hangle) / E(English)
  2636. *
  2637. *
  2638. * @return :
  2639. *
  2640. * ex) lpzffGetHanGul2(pData, aFlag);
  2641. * @-------------------------------------------------------------------
  2642. */
  2643. function lpzfGetHanGul2(pData, aFlag) {
  2644. //trace("pData =="+pData);
  2645. var aSplit = pData.split(" "); // 공백을 기준으로 분리
  2646. var sData = "";
  2647. var re = /([!-~]*)*/g;
  2648. var aSplit = pData.split(re); // 공백을 기준으로 분리
  2649. var matchMatrix = ""
  2650. var aFlag = new Array();
  2651. var aData = new Array();
  2652. var aDataS = new Array();
  2653. var iSPos = 0;
  2654. var iFindPos = 0;
  2655. var iDataCnt = 0;
  2656. var iHngCnt = 0;
  2657. var bHngState = false;
  2658. trace('aSplit ' +aSplit);
  2659. //--------------------------------------------
  2660. for (var iNo=0; iNo < aSplit.length; iNo++) {
  2661. //----------------------------
  2662. sData = aSplit[iNo].getTrim(); // 공백을 기준으로 분리된 자료
  2663. trace('sData ='+sData);
  2664. //var re2 = new RegExp(/([!-~]*)*/g);
  2665. matchMatrix = sData.match(re);
  2666. //trace('matchMatrix2 ' +matchMatrix+' / '+matchMatrix.length);
  2667. //-----------
  2668. iSPos = 0;
  2669. iHngCnt = 0;
  2670. bHngState = false;
  2671. if(utlf_isNull(matchMatrix))
  2672. {
  2673. aDataS[0] = "E";
  2674. aDataS[1] = sData;
  2675. trace('aDataS[0] + aDataS[1] ='+aDataS[0] +' / '+ aDataS[1]);
  2676. return aDataS;
  2677. }
  2678. //---------------------------------------
  2679. for(j = 0; j < matchMatrix.length-1; j++) {
  2680. tmpStr = matchMatrix[j] + "";
  2681. trace('matchMatrix1 ' +j +' / '+matchMatrix[j]);
  2682. //------------------------------------
  2683. if (matchMatrix[j].getTrim() == "") {
  2684. bHngState = true;
  2685. iHngCnt++;
  2686. } else {
  2687. //--------------
  2688. if (bHngState) {
  2689. aFlag[iDataCnt] = "H";
  2690. aData[iDataCnt] = sData.substr(iSPos, iHngCnt);
  2691. bHngState = false;
  2692. iSPos += iHngCnt;
  2693. iHngCnt = 0;
  2694. iDataCnt++;
  2695. }
  2696. //--------------------
  2697. aFlag[iDataCnt] = "E";
  2698. iFindPos = sData.indexOf(matchMatrix[j], iSPos);
  2699. aData[iDataCnt] = matchMatrix[j]
  2700. //------------------------------------------------
  2701. iSPos = Number(iFindPos) + Number(tmpStr.length);
  2702. iDataCnt++;
  2703. }
  2704. }
  2705. //--------------
  2706. if (bHngState) {
  2707. aFlag[iDataCnt] = "H";
  2708. aData[iDataCnt] = sData.substr(iSPos, iHngCnt);
  2709. bHngState = false;
  2710. iDataCnt++;
  2711. }
  2712. //-----------------------------------------
  2713. // 공백을 기준으로 분리하였기에 공백을 넣어준다.
  2714. aFlag[iDataCnt] = "E";
  2715. aData[iDataCnt] = " ";
  2716. iDataCnt++;
  2717. }
  2718. //----------------
  2719. // 2차원 배열로 전달
  2720. aDataS[0] = aFlag;
  2721. aDataS[1] = aData;
  2722. //-----------
  2723. return aDataS;
  2724. }
  2725. /**
  2726. * @group : PathologyWeb Common
  2727. * @ver : 2009.04.23 (CMCDEV-0001)
  2728. * @by : linar21c
  2729. * @---------------------------------------------------
  2730. * @type : function
  2731. * @access : public
  2732. * @desc : 채혈화면 바코드 재출력(SATO)
  2733. * @param :
  2734. * @return :
  2735. */
  2736. function lpzfExePlgyBarCdRePrnt_Sato(pRowNo, pSNo, pENo, pCount) {
  2737. // var strNode = "/root/main/TestInfo/getTestInfoCnts";
  2738. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  2739. var sBarCdNoH = "";
  2740. var sBarCdNoD = "";
  2741. var sPrntNo = "";
  2742. var sSubPrntNo = "";
  2743. var sRePrntCnt = "";
  2744. var iStartNo = 1;
  2745. var iEndNo = 99;
  2746. var iFindColNo = -1;
  2747. var iSpcNo = 0;
  2748. var sSpcSeqNo = "";
  2749. var sSpcSeqNm = "";
  2750. var aSpcSeqNo = "";
  2751. var aSpcSeqNm = "";
  2752. var sSndMsg = "";
  2753. var sPrcpDD = "";
  2754. var sTempStr = "";
  2755. // var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2756. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  2757. var iLeft = ds_data_blank.getColumn(0,"left");
  2758. var iTop = ds_data_blank.getColumn(0,"top");
  2759. var iXPos = 0;
  2760. var iYPos = 0;
  2761. var iWidth = 0;
  2762. var aFlag = new Array();
  2763. var aStr = "";
  2764. var portOpenTF = "";
  2765. iLeft = Number(iLeft) + Number(20);
  2766. iTop = Number(iTop) + Number(10);
  2767. //---------------------------------
  2768. // 바코드번호 Header(일련번호 제외)
  2769. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  2770. //-----------------------------------------------------
  2771. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  2772. //--------------------
  2773. //if(sPrntKind == "1") {
  2774. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpdd");
  2775. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2776. sSndMsg = String.fromCharCode(27)+"A" + String.fromCharCode(27)+ "A103500500"; // 시작위치 셋팅
  2777. iXPos = Number(iLeft) + 20;
  2778. iYPos = Number(iTop) + 5;
  2779. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"BG02100" + sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0");
  2780. iXPos = Number(iLeft) + 130;
  2781. iYPos = Number(iTop) + 110;
  2782. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"S" + sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0");
  2783. iXPos = Number(iLeft);
  2784. iYPos = Number(iTop) + 130;
  2785. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"S" + "PATHOLOGY";
  2786. iXPos = Number(iLeft) + 110;
  2787. iYPos = Number(iTop) + 130;
  2788. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "wardroom");
  2789. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2790. iXPos = Number(iLeft) + 220;
  2791. iYPos = Number(iTop) + 130;
  2792. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"S" + sPrcpDD;
  2793. iXPos = Number(iLeft) + 330;
  2794. iYPos = Number(iTop) + 130;
  2795. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"M" + ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd");
  2796. iXPos = Number(iLeft);
  2797. iYPos = Number(iTop) + 155;
  2798. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"S" + ds_grd_TestInfoCnts.getColumn(pRowNo, "pid");
  2799. iXPos = Number(iLeft) + 110;
  2800. iYPos = Number(iTop) + 150;
  2801. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm"));
  2802. iXPos = Number(iLeft) + 220;
  2803. iYPos = Number(iTop) + 155;
  2804. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"S" + ds_grd_TestInfoCnts.getColumn(pRowNo, "sex") + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "dage");
  2805. //-------------------------
  2806. iXPos = Number(iLeft) + 280;
  2807. iYPos = Number(iTop) + 155;
  2808. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  2809. if(!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))) {
  2810. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") + ")";
  2811. } else {
  2812. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm");
  2813. }
  2814. sSndMsg += String.fromCharCode(27)+"V" + iYPos + String.fromCharCode(27)+"H" + iXPos + String.fromCharCode(27)+"S" + sTempStr;
  2815. iXPos = Number(iLeft);
  2816. iYPos = Number(iTop) + 175;
  2817. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  2818. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  2819. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  2820. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  2821. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  2822. sTempStr += aSpcSeqNm[iPrntCnt-1];
  2823. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2824. iXPos = Number(iLeft);
  2825. iYPos = Number(iTop) + 200;
  2826. sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  2827. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2828. //-------------------------
  2829. iXPos = Number(iLeft);
  2830. iYPos = Number(iTop) + 225;
  2831. sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  2832. sSndMsg += CommAX.PrtImgOut(iYPos, iXPos, sTempStr);
  2833. sSndMsg += String.fromCharCode(27)+"Q" + "1" + String.fromCharCode(27)+"Z";
  2834. CommAX.SendMsg(sSndMsg);
  2835. }//end for
  2836. }
  2837. /**
  2838. * @group : PathologyWeb Common
  2839. * @ver : 2010.01.12 (CMCDEV-0001)
  2840. * @by : 박정은
  2841. * @---------------------------------------------------
  2842. * @type : function
  2843. * @access : public
  2844. * @desc : 채혈화면 바코드 재출력(B472 )
  2845. * @param :
  2846. * @return :
  2847. */
  2848. function lpzfExePlgyBarCdRePrnt_B472(pRowNo, pSNo, pENo, pCount) {
  2849. // var strNode = "/root/main/TestInfo/getTestInfoCnts";
  2850. var iMaxRowCnt = ds_grd_TestInfoCnts.rowcount;
  2851. var sBarCdNoH = "";
  2852. var sBarCdNoD = "";
  2853. var sPrntNo = "";
  2854. var sSubPrntNo = "";
  2855. var sRePrntCnt = "";
  2856. var iStartNo = 1;
  2857. var iEndNo = 99;
  2858. var iFindColNo = -1;
  2859. var iSpcNo = 0;
  2860. var sSpcSeqNo = "";
  2861. var sSpcSeqNm = "";
  2862. var aSpcSeqNo = "";
  2863. var aSpcSeqNm = "";
  2864. var sSndMsg = "";
  2865. var sPrcpDD = "";
  2866. var sTempStr = "";
  2867. var sTempStr2 = "";
  2868. var portOpenTF = "";
  2869. var sB472size = "";
  2870. // var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2871. var sPrntKind = ds_data_setupinfo.getColumn(0,"prntkind");
  2872. var sCommKind = ds_data_setupinfo.getColumn(0,"commkind");
  2873. var sB472sizegbn = ds_data_blank.getColumn(0,"b472size");
  2874. var iLeft = ds_data_blank.getColumn(0,"left");
  2875. var iTop = ds_data_blank.getColumn(0,"top");
  2876. var iXPos = 0;
  2877. var iYPos = 0;
  2878. var iWidth = 0;
  2879. var aFlag = new Array();
  2880. var aStr = "";
  2881. if (sCommKind == "01") {
  2882. var sSetUpVal = ds_data_comm01.getColumn(0,"setupval");
  2883. } else if(sCommKind == "02") {
  2884. var sComm = ds_data_comm02.getColumn(0,"comm");
  2885. var sDataBit = ds_data_comm02.getColumn(0,"databit");
  2886. var sStopBit = ds_data_comm02.getColumn(0,"stopbit");
  2887. var sBaudRate = ds_data_comm02.getColumn(0,"baudrate");
  2888. var sParity = ds_data_comm02.getColumn(0,"parity");
  2889. //----------------------
  2890. CommAX.CommPort = sComm;
  2891. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  2892. //-----------------------------------------------------
  2893. // 출력할 진검 바코드 갯수가 0보다 크면 port 오픈 안함.
  2894. if (pCount > 0) {
  2895. portOpenTF = "TRUE";
  2896. } else if (pCount == 0) {
  2897. //port open 반환값 -> String 문자 포트 오픈 성공이면 "TRUE" , 실패하면 "FALSE"
  2898. portOpenTF = CommAX.PortOpen("true");
  2899. }
  2900. } else if(sCommKind == "03") {
  2901. var sSetUpVal = ds_data_comm03.getColumn(0,"setupval");
  2902. }
  2903. iLeft = Number(iLeft) ;
  2904. iTop = Number(iTop);
  2905. //---------------------------------
  2906. // 바코드번호 Header(일련번호 제외)
  2907. sBarCdNoH = ds_grd_TestInfoCnts.getColumn(pRowNo, "bcno");
  2908. if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") || (sCommKind == "07") ) {
  2909. //-----------------------------------------------------
  2910. for (var iPrntCnt=pSNo; iPrntCnt <= pENo; iPrntCnt++) {
  2911. //--------------------
  2912. sPrcpDD = ds_grd_TestInfoCnts.getColumn(pRowNo, "prcpdd");
  2913. sPrcpDD = sPrcpDD.substr(0,4) + "-" + sPrcpDD.substr(4,2) + "-" + sPrcpDD.substr(6,2);
  2914. if(sB472sizegbn == "2"){ // 320 630
  2915. sB472size = "0340,0620,0340"; // 기존라벨
  2916. }else{
  2917. sB472size = "0350,0550,0330"; // nUsize
  2918. }
  2919. sSndMsg += "{D" + sB472size + "|}"; // 라벨사이즈
  2920. //sSndMsg += "{D0350,0550,0330|}"; // 라벨사이즈
  2921. sSndMsg += "{C|}"; // 버퍼클리어
  2922. sSndMsg += "{AX;-000,-000,+00|}"; // 피트량
  2923. iXPos = Number(iLeft) + 20;
  2924. iYPos = Number(iTop) + 5;
  2925. var newbcno = sBarCdNoH + (iPrntCnt).toString().getLeftPad(2, "0");
  2926. sSndMsg += lzzfBP_BarCode_Code39_B472(iXPos, iYPos, 5, 4, newbcno, 90); // 바코드
  2927. iXPos = Number(iLeft) + 140;
  2928. iYPos = Number(iTop) + 120;
  2929. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, newbcno); //바코드번호
  2930. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, newbcno); //바코드번호
  2931. iXPos = Number(iLeft);
  2932. iYPos = Number(iTop) + 145;
  2933. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, "PATHOLOGY");
  2934. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, "PATHOLOGY");
  2935. iXPos = Number(iLeft) + 200;
  2936. iYPos = Number(iTop) + 120;
  2937. sTempStr = model.getValue(strNode+ "["+pRowNo+"]/wardroom");
  2938. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sTempStr);
  2939. //sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  2940. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  2941. iXPos = Number(iLeft) + 330;
  2942. iYPos = Number(iTop) + 145;
  2943. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sPrcpDD);
  2944. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sPrcpDD);
  2945. iXPos = Number(iLeft) + 300;
  2946. iYPos = Number(iTop) + 145;
  2947. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "isolabbrcd");
  2948. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sTempStr);
  2949. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  2950. if(sCommKind == "01") {
  2951. CommAX.SendMessageToLPT(sSndMsg);
  2952. } else if(sCommKind == "02") {
  2953. CommAX.SendMessage(sSndMsg);
  2954. }
  2955. iXPos = Number(iLeft);
  2956. iYPos = Number(iTop) + 180;
  2957. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "pid");
  2958. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sTempStr);
  2959. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  2960. iXPos = Number(iLeft) + 150;
  2961. iYPos = Number(iTop) + 155;
  2962. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "hngnm");
  2963. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  2964. iXPos = Number(iLeft) + 310;
  2965. iYPos = Number(iTop) + 180;
  2966. var sTempStr1 = ds_grd_TestInfoCnts.getColumn(pRowNo, "sex");
  2967. var sTempStr2 = ds_grd_TestInfoCnts.getColumn(pRowNo, "dage");
  2968. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sTempStr1 + "/" + sTempStr2);
  2969. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr1 + "/" + sTempStr2);
  2970. //-------------------------
  2971. iXPos = Number(iLeft) + 410;
  2972. iYPos = Number(iTop) + 180;
  2973. //수술실이 있을 경우 진료과 옆에 수술방 이름을 표시하여 준다.
  2974. if(!utlf_isNull(ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm"))) {
  2975. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm") + "(" + ds_grd_TestInfoCnts.getColumn(pRowNo, "oproomnm") + ")";
  2976. } else {
  2977. sTempStr = ds_grd_TestInfoCnts.getColumn(pRowNo, "orddeptnm");
  2978. }
  2979. //sSndMsg += lzzfBP_FieldDataA_B472(iXPos, iYPos, 20, 20, sTempStr);
  2980. sSndMsg += lzzfBP_FieldDataG_B472(iXPos, iYPos, sTempStr);
  2981. iXPos = Number(iLeft);
  2982. iYPos = Number(iTop) + 190;
  2983. sSpcSeqNo = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqno"); // 검체일련번호 목록
  2984. sSpcSeqNm = ds_grd_TestInfoCnts.getColumn(pRowNo, "spcseqnm"); // 검체명 목록
  2985. aSpcSeqNo = sSpcSeqNo.split("▨"); // ▨문자를 기준으로 배열에 분리
  2986. aSpcSeqNm = sSpcSeqNm.split("▨"); // ▨문자를 기준으로 배열에 분리
  2987. sTempStr = (iPrntCnt).toString() + "/" + ds_grd_TestInfoCnts.getColumn(pRowNo, "bcollbarcdprntcnt") + " ";
  2988. sTempStr += aSpcSeqNm[iPrntCnt-1];
  2989. //20바이트가 넘을 경우 검사명을 짤라서 출력한다.
  2990. if(sTempStr.getByteLength() > 20) {
  2991. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  2992. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 20) {
  2993. sTempStr2 = sTempStr.substr(0, iLeng);
  2994. break;
  2995. }
  2996. }
  2997. sTempStr = sTempStr2;
  2998. }
  2999. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3000. iXPos = Number(iLeft);
  3001. iYPos = Number(iTop) + 220;
  3002. sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "0");
  3003. //16바이트가 넘을 경우 검사명을 짤라서 출력한다.
  3004. if(sTempStr.getByteLength() > 16) {
  3005. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  3006. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 16) {
  3007. sTempStr2 = sTempStr.substr(0, iLeng);
  3008. break;
  3009. }
  3010. }
  3011. sTempStr = sTempStr2;
  3012. }
  3013. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3014. //-------------------------
  3015. iXPos = Number(iLeft);
  3016. iYPos = Number(iTop) + 250;
  3017. sTempStr = fGetPlgyPrcpNm(ds_grd_TestInfoCnts.getColumn(pRowNo, "pid"), ds_grd_TestInfoCnts.getColumn(pRowNo, "reqfrmno"), "1"); //검사명(추가처방)
  3018. //16바이트가 넘을 경우 검사명을 짤라서 출력한다.
  3019. if(sTempStr.getByteLength() > 16) {
  3020. for(var iLeng = 1 ; iLeng <= sTempStr.length ; iLeng++) {
  3021. if(((sTempStr.substr(0, iLeng)).getByteLength()) > 16) {
  3022. sTempStr2 = sTempStr.substr(0, iLeng);
  3023. break;
  3024. }
  3025. }
  3026. sTempStr = sTempStr2;
  3027. }
  3028. sSndMsg += lzzfBP_HanDisp24(sTempStr, iXPos, iYPos);
  3029. sSndMsg += "{XS;I,0001,0002C5101|}"; // end
  3030. if(sCommKind == "01") {
  3031. CommAX.SendMessageToLPT(sSndMsg);
  3032. } else if(sCommKind == "02") {
  3033. CommAX.SendMessage(sSndMsg);
  3034. }
  3035. //CommAX.SendMessage(sSndMsg);
  3036. CommAX.PortOpen("false");
  3037. // CommAX.SendMsg(sSndMsg);
  3038. }//end for
  3039. }// if ( (portOpenTF == "TRUE" && sCommKind == "02") || (sCommKind == "01") || (sCommKind == "03") )
  3040. else if (portOpenTF = "FALSE" && sCommKind == "02") {
  3041. sysf_messageBox("아래 사항을 확인후 재출력해주십시오."
  3042. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3043. + " \n 2.케이블 확인"
  3044. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3045. return;
  3046. }
  3047. }
  3048. function lpzfExePtNoChange(pPtNo) {
  3049. var sPtNo = utlf_transNullToEmpty(pPtNo).split("-");
  3050. //---------------------
  3051. if (sPtNo.length > 1) {
  3052. return sPtNo[0].toUpperCase() + (sPtNo[1]).toString().getLeftPad(6, "0");
  3053. } else {
  3054. return sPtNo[0].toUpperCase();
  3055. }
  3056. }
  3057. function lpzfTopInfo(dsNm) {
  3058. appf_getPatientInfoDetails(dsNm);
  3059. }
  3060. function lpzfExeTopInfoDisp(pPrcpDD, pExecPrcpUniqNo, pInstCd) {
  3061. var sTopInfo = "S▦";
  3062. sTopInfo += pPrcpDD + "▦";
  3063. sTopInfo += pExecPrcpUniqNo + "▦";
  3064. sTopInfo += pInstCd;
  3065. frmf_setParameter("condparam", sTopInfo);
  3066. appf_initPatientInfo(sTopInfo);
  3067. }
  3068. function lpzfExeDateChange(srcControl, destControl) {
  3069. var sDate = srcControl.value;
  3070. destControl.value = String(sDate).substr(2,2);
  3071. }
  3072. function lpzfGetDoctorCheck(pNode, pJobKindCD){
  3073. var bStatus = true;
  3074. var sValue = (pNode).getColumn(0, "doctjobgradcd");
  3075. //---------------------------------------------------------
  3076. if ( sValue.substring(0,2) != pJobKindCD.substring(0,2) ) {
  3077. bStatus = false;
  3078. }
  3079. //-------------
  3080. return bStatus;
  3081. }
  3082. function lpzfExeSePoResnInit(pNode, pNode2, pNode3, pBizFlagCd)
  3083. {
  3084. var sNode;
  3085. var iMaxRowCnt = 0;
  3086. dsf_makeValue(pNode, "seporesninfo", 0, "");
  3087. dsf_makeValue(pNode2, "seporesninfo", 0, "");
  3088. dsf_makeValue(pNode3, "seporesninfo", 0, "");
  3089. if(!utlf_isNull(pNode))
  3090. {
  3091. pNode.clearData();
  3092. }
  3093. if(!utlf_isNull(pNode2))
  3094. {
  3095. pNode2.clearData();
  3096. }
  3097. if(!utlf_isNull(pNode3))
  3098. {
  3099. pNode3.clearData();
  3100. }
  3101. if( !utlf_isNull(pNode))
  3102. {
  3103. dsf_makeValue(pNode, "dgflagcd", 0, "");
  3104. dsf_makeValue(pNode, "seporslt", 0, "");
  3105. dsf_makeValue(pNode, "mcnts", 0, "");
  3106. dsf_makeValue(pNode, "cmtcnts", 0, "");
  3107. //----------------------
  3108. if (pBizFlagCd == "1")
  3109. {
  3110. dsf_makeValue(pNode, "title", 0, "Cervico-vaginal smear, liquid based cytology, automated screening system;");
  3111. dsf_makeValue(pNode, "title01", 0, "1) Adequacy of specimen");
  3112. dsf_makeValue(pNode, "title02", 0, "2) Cytologic diagnosis");
  3113. dsf_makeValue(pNode, "title03", 0, "3) Comment :");
  3114. }
  3115. else if (pBizFlagCd == "2")
  3116. {
  3117. dsf_makeValue(pNode, "title", 0, "Thyroid, left, conventional smear, needle aspiration cytology with cell block(증례별 자동인쇄);");
  3118. dsf_makeValue(pNode, "title01", 0, "1) Adequacy of specimen");
  3119. dsf_makeValue(pNode, "title02", 0, "2) Cytologic diagnosis");
  3120. dsf_makeValue(pNode, "title03", 0, "3) Comment :");
  3121. }
  3122. else
  3123. {
  3124. dsf_makeValue(pNode, "title", 0, "FINE NEEDLE ASPIRATION CYTOLOGY");
  3125. dsf_makeValue(pNode, "title01", 0, "1. PROCEDURE");
  3126. dsf_makeValue(pNode, "title02", 0, "2. SPECIMEN:");
  3127. dsf_makeValue(pNode, "title03", 0, "3. REMARK:");
  3128. dsf_makeValue(pNode, "title04", 0, "4. DIAGNOSIS:");
  3129. }
  3130. }
  3131. if( !utlf_isNull(pNode2))
  3132. {
  3133. dsf_makeValue(pNode2, "dgflagcd", 0, "");
  3134. dsf_makeValue(pNode2, "seporslt", 0, "");
  3135. dsf_makeValue(pNode2, "mcnts", 0, "");
  3136. dsf_makeValue(pNode2, "cmtcnts", 0, "");
  3137. //----------------------
  3138. if (pBizFlagCd == "1")
  3139. {
  3140. dsf_makeValue(pNode2, "title", 0, "Cervico-vaginal smear, liquid based cytology, automated screening system;");
  3141. dsf_makeValue(pNode2, "title01", 0, "1) Adequacy of specimen");
  3142. dsf_makeValue(pNode2, "title02", 0, "2) Cytologic diagnosis");
  3143. dsf_makeValue(pNode2, "title03", 0, "3) Comment :");
  3144. }
  3145. else if (pBizFlagCd == "2")
  3146. {
  3147. dsf_makeValue(pNode2, "title", 0, "Thyroid, left, conventional smear, needle aspiration cytology with cell block(증례별 자동인쇄);");
  3148. dsf_makeValue(pNode2, "title01", 0, "1) Adequacy of specimen");
  3149. dsf_makeValue(pNode2, "title02", 0, "2) Cytologic diagnosis");
  3150. dsf_makeValue(pNode2, "title03", 0, "3) Comment :");
  3151. }
  3152. else
  3153. {
  3154. dsf_makeValue(pNode2, "title", 0, "FINE NEEDLE ASPIRATION CYTOLOGY");
  3155. dsf_makeValue(pNode2, "title01", 0, "1. PROCEDURE");
  3156. dsf_makeValue(pNode2, "title02", 0, "2. SPECIMEN:");
  3157. dsf_makeValue(pNode2, "title03", 0, "3. REMARK:");
  3158. dsf_makeValue(pNode2, "title04", 0, "4. DIAGNOSIS:");
  3159. }
  3160. }
  3161. if ( !utlf_isNull(pNode3))
  3162. {
  3163. dsf_makeValue(pNode3, "dgflagcd", 0, "");
  3164. dsf_makeValue(pNode3, "seporslt", 0, "");
  3165. dsf_makeValue(pNode3, "mcnts", 0, "");
  3166. dsf_makeValue(pNode3, "cmtcnts", 0, "");
  3167. //----------------------
  3168. if (pBizFlagCd == "1")
  3169. {
  3170. dsf_makeValue(pNode3, "title", 0, "Cervico-vaginal smear, liquid based cytology, automated screening system;");
  3171. dsf_makeValue(pNode3, "title01", 0, "1) Adequacy of specimen");
  3172. dsf_makeValue(pNode3, "title02", 0, "2) Cytologic diagnosis");
  3173. dsf_makeValue(pNode3, "title03", 0, "3) Comment :");
  3174. }
  3175. else if (pBizFlagCd == "2")
  3176. {
  3177. dsf_makeValue(pNode3, "title", 0, "Thyroid, left, conventional smear, needle aspiration cytology with cell block(증례별 자동인쇄);");
  3178. dsf_makeValue(pNode3, "title01", 0, "1) Adequacy of specimen");
  3179. dsf_makeValue(pNode3, "title02", 0, "2) Cytologic diagnosis");
  3180. dsf_makeValue(pNode3, "title03", 0, "3) Comment :");
  3181. }
  3182. else
  3183. {
  3184. dsf_makeValue(pNode3, "title", 0, "FINE NEEDLE ASPIRATION CYTOLOGY");
  3185. dsf_makeValue(pNode3, "title01", 0, "1. PROCEDURE");
  3186. dsf_makeValue(pNode3, "title02", 0, "2. SPECIMEN:");
  3187. dsf_makeValue(pNode3, "title03", 0, "3. REMARK:");
  3188. dsf_makeValue(pNode3, "title04", 0, "4. DIAGNOSIS:");
  3189. }
  3190. }
  3191. dsf_createDsRow( "ds_send1", [{col : "instcd", val : sysf_getUserInfo("dutplceinstcd")}]);
  3192. if (pBizFlagCd == "1")
  3193. {
  3194. // 부인과 예문
  3195. dsf_makeValue(ds_send1, "fromexmpcd", 0, "800000");
  3196. dsf_makeValue(ds_send1, "toexmpcd", 0, "8zzzzz");
  3197. }
  3198. else if (pBizFlagCd == "2")
  3199. {
  3200. // 비부인과 예문
  3201. dsf_makeValue(ds_send1, "fromexmpcd",0, "900000");
  3202. dsf_makeValue(ds_send1, "toexmpcd", 0,"9zzzzz");
  3203. }
  3204. else if (pBizFlagCd == "3")
  3205. {
  3206. // 세침흡인 예문(Thyroid외)
  3207. dsf_makeValue(ds_send1, "fromexmpcd", 0,"600000");
  3208. dsf_makeValue(ds_send1, "toexmpcd", 0,"6zzzzz");
  3209. }
  3210. else
  3211. {
  3212. // 세침흡인 예문(Thyroid)
  3213. dsf_makeValue(ds_send1, "fromexmpcd", 0,"500000");
  3214. dsf_makeValue(ds_send1, "toexmpcd",0, "5zzzzz");
  3215. }
  3216. dsf_createDs("ds_exmpcdlist1");
  3217. var oParam = {};
  3218. oParam.id = "TRLPZ00111";
  3219. oParam.service = "plgycomnusemngtapp.BaseInfoCode";
  3220. oParam.method = "reqGetGyNonGyExmpList";
  3221. oParam.inds = "refdata=ds_send1";
  3222. oParam.outds = "ds_exmpcdlist1=rsltlist";
  3223. oParam.async = false;
  3224. //oParam.callback = "cf_TRLPZ00111";
  3225. tranf_submit(oParam);
  3226. var sNode = ds_exmpcdlist1;
  3227. // 검색된 자료를 노드로 변환
  3228. iMaxRowCnt = sNode.rowcount;
  3229. for(var iNo =0; iNo < iMaxRowCnt; iNo++)
  3230. {
  3231. //----------------
  3232. //if (pNode != "")
  3233. if( !utlf_isNull(pNode))
  3234. {
  3235. dsf_makeValue(pNode, "val"+sNode.getColumn(iNo, "exmpcd"), 0, "0");
  3236. dsf_makeValue(pNode, "lbl"+sNode.getColumn(iNo, "exmpcd"), 0, sNode.getColumn(iNo, "exmpnm"));
  3237. dsf_makeValue(pNode, "other"+sNode.getColumn(iNo, "exmpcd"), 0, "0");
  3238. dsf_makeValue(pNode, "nm"+sNode.getColumn(iNo, "exmpcd"), 0, sNode.getColumn(iNo, "exmpcnts"));
  3239. }
  3240. if (!utlf_isNull(pNode2))
  3241. {
  3242. dsf_makeValue(pNode2, "val"+sNode.getColumn(iNo, "exmpcd"), 0, "0");
  3243. dsf_makeValue(pNode2, "lbl"+sNode.getColumn(iNo, "exmpcd"), 0, sNode.getColumn(iNo, "exmpnm"));
  3244. dsf_makeValue(pNode2, "other"+sNode.getColumn(iNo, "exmpcd"), 0, "0");
  3245. dsf_makeValue(pNode2, "nm"+sNode.getColumn(iNo, "exmpcd"), 0, sNode.getColumn(iNo, "exmpcnts"));
  3246. }
  3247. if( !utlf_isNull(pNode3))
  3248. {
  3249. dsf_makeValue(pNode3, "val"+sNode.getColumn(iNo, "exmpcd"), 0, "0");
  3250. dsf_makeValue(pNode3, "lbl"+sNode.getColumn(iNo, "exmpcd"), 0, sNode.getColumn(iNo, "exmpnm"));
  3251. dsf_makeValue(pNode3, "other"+sNode.getColumn(iNo, "exmpcd"), 0, "0");
  3252. dsf_makeValue(pNode3, "nm"+sNode.getColumn(iNo, "exmpcd"), 0, sNode.getColumn(iNo, "exmpcnts"));
  3253. }
  3254. }
  3255. }
  3256. function lpzfExeRsltRefCall(pRowNo, pNode, pColNm, pPid, pAcptDD) {
  3257. var sPtNo = (pNode).getColumn(pRowNo, pColNm);
  3258. var sPid = (pNode).getColumn(pRowNo, pPid);
  3259. var sAcptDD = (pNode).getColumn(pRowNo, pAcptDD);
  3260. var aPtNo = "";
  3261. //-----------------------
  3262. aPtNo = sPtNo.split("-");
  3263. //----------------------------------------------
  3264. frmf_setParameter("SMLPP00500_scrno", "SMLPJ00300");
  3265. frmf_setParameter("SMLPP00500_pid", sPid);
  3266. frmf_setParameter("SMLPP00500_acptdd", sAcptDD);
  3267. frmf_setParameter("SMLPP00500_no", aPtNo[1]);
  3268. frmf_setParameter("SMLPP00500_ptnocd", aPtNo[0].substr(0, (aPtNo[0].length-2)));
  3269. frmf_setParameter("SMLPP00500_year", aPtNo[0].substr(aPtNo[0].length-2, 2));
  3270. // setParameter("SMLPP00500_scrno", "SMLPJ00300");
  3271. // setParameter("SMLPP00500_pid", sPid);
  3272. // setParameter("SMLPP00500_acptdd", sAcptDD);
  3273. // setParameter("SMLPP00500_no", aPtNo[1]);
  3274. // setParameter("SMLPP00500_ptnocd", aPtNo[0].substr(0, (aPtNo[0].length-2)));
  3275. // setParameter("SMLPP00500_year", aPtNo[0].substr(aPtNo[0].length-2, 2));
  3276. //------------------
  3277. frmf_modal("SMLPP00500", "SMLPP00500", "", "", "", "", "", "", "", "", "", "", "M");
  3278. }
  3279. /**
  3280. * @group : PathologyWeb Common
  3281. * @ver : 2007.10.27 (CMCDEV-0001)
  3282. * @by : Ryu
  3283. * @---------------------------------------------------
  3284. * @type : function
  3285. * @access : public
  3286. * @desc : 의뢰 팝업표시
  3287. * @param : reqfrmflagcd : 의뢰지구분, reqno : 의뢰지번호
  3288. * testcd : 처방코드, testnm : 처방명
  3289. * spccd : 검체코드, spcnm : 검체명
  3290. * pid : 등록번호
  3291. *
  3292. * @return : -
  3293. *
  3294. * ??) lpzfExeReqFrmInfo2(reqfrmflagcd, reqno, testcd, testnm, spccd, spcnm, pid);
  3295. * @-------------------------------------------------------------------
  3296. */
  3297. function lpzfExeReqFrmInfo2(reqfrmflagcd, reqno, testcd, testnm, spccd, spcnm, pid)
  3298. {
  3299. dsf_createDsRow( "ds_hidden_reqfrminfo", [{col : "pid", val : pid}
  3300. ,{col : "prcpcd", val : testcd}
  3301. ,{col : "prcpnm", val : testnm}
  3302. ,{col : "opnm", val : ""}
  3303. ,{col : "spccd", val : spccd}
  3304. ,{col : "spcnm", val : spcnm}
  3305. ,{col : "reqno", val : reqno}
  3306. ,{col : "prcpstatcd", val : "430"}
  3307. ,{col : "reqhistno", val : "1"}
  3308. ,{col : "scrnno", val : "40"}]);
  3309. var objArg = new Object();
  3310. objArg.arg_ds_hidden_reqfrminfo = ds_hidden_reqfrminfo;
  3311. switch (reqfrmflagcd)
  3312. {
  3313. // 조직의뢰지
  3314. case "01" : frmf_modal("SPLPJ01500", "SPLPJ01500", objArg, null, null, null, null, null, null, null, null, null, "M");
  3315. break;
  3316. // 부인과 의뢰지
  3317. case "02" : frmf_modal("SPLPJ01400", "SPLPJ01400", objArg, null, null, null, null, null, null, null, null, null, "M");
  3318. break;
  3319. // 비부인과 의뢰지
  3320. case "03" : frmf_modal("SPLPJ01300", "SPLPJ01300", objArg, null, null, null, null, null, null, null, null, null, "M");
  3321. break;
  3322. case "04" : break;
  3323. // 분자병리 의뢰지
  3324. case "05" : frmf_modal("SPLPJ01200", "SPLPJ01200", objArg, null, null, null, null, null, null, null, null, null, "M");
  3325. break;
  3326. case "06" : break;
  3327. case "07" : break;
  3328. case "08" : frmf_modal("SPLPJ02000", "SPLPJ02000", objArg, null, null, null, null, null, null, null, null, null, "M");
  3329. break;
  3330. }
  3331. }
  3332. /**
  3333. * @group : PathologyWeb Common
  3334. * @ver : 2007.10.10 (CMCDEV-0001)
  3335. * @by : Ryu
  3336. * @---------------------------------------------------
  3337. * @type : function
  3338. * @access : public
  3339. * @desc :
  3340. * @param :
  3341. *
  3342. * @return :
  3343. *
  3344. * ??) lpzfExeCsteCntsSplit("/root/init/resncd/resncdlist");
  3345. * @-------------------------------------------------------------------
  3346. */
  3347. function lpzfExeCsteCntsSplit(pNode)
  3348. {
  3349. var iCnt1 = 0;
  3350. var iCnt2 = 0;
  3351. var sNode1 = ds_cstecharlist;
  3352. var sNode2 = ds_cstecharnolist;
  3353. var iMaxNo = pNode.rowcount;
  3354. var sCsteChar = "";
  3355. var sCsteNo = "";
  3356. var aCsteCnts = "";
  3357. var bState = false;
  3358. // Cassette 목록 초기화
  3359. //sNode1.clearData();
  3360. //sNode2.clearData();
  3361. for(var iNo=0; iNo < iMaxNo; iNo++)
  3362. {
  3363. sCsteCnts = pNode.getColumn(iNo, "resncnts");
  3364. sCsteCnts = sCsteCnts.replace("\n", "");
  3365. aCsteCnts = sCsteCnts.split(".");
  3366. if (aCsteCnts.length == 1)
  3367. {
  3368. sNode2.setColumn(iCnt2, "no", iCnt2);
  3369. sNode2.setColumn(iCnt2, "cnts", sCsteCnts);
  3370. iCnt2++;
  3371. }
  3372. else
  3373. {
  3374. bState = false;
  3375. for(var iRowNo =0; iRowNo < sNode1.rowcount; iRowNo++)
  3376. {
  3377. if(sNode1.getColumn(iRowNo, "cnts") == aCsteCnts[0].getTrim())
  3378. {
  3379. bState = true;
  3380. break;
  3381. }
  3382. }
  3383. if (!bState)
  3384. {
  3385. sNode1.setColumn(iCnt1, "no", iCnt1);
  3386. sNode1.setColumn(iCnt1, "cnts", aCsteCnts[0].getTrim());
  3387. iCnt1++;
  3388. }
  3389. if( !utlf_isNull(aCsteCnts[1].getTrim()))
  3390. {
  3391. bState = false;
  3392. for(var iRowNo = 0; iRowNo < sNode2.rowcount; iRowNo++)
  3393. {
  3394. if(sNode2.getColumn(iRowNo, "cnts") == aCsteCnts[1].getTrim())
  3395. {
  3396. bState = true;
  3397. break;
  3398. }
  3399. }
  3400. if (!bState)
  3401. {
  3402. sNode2.setColumn(iCnt2, "no", iCnt2);
  3403. sNode2.setColumn(iCnt2, "cnts", aCsteCnts[1].getTrim());
  3404. iCnt2++;
  3405. }
  3406. }
  3407. }
  3408. }
  3409. }
  3410. /**
  3411. * @group : PathologyWeb Common
  3412. * @ver : 2007.10.10 (CMCDEV-0001)
  3413. * @by : Ryu
  3414. * @---------------------------------------------------
  3415. * @type : function
  3416. * @access : public
  3417. * @desc :
  3418. * @param :
  3419. *
  3420. * @return :
  3421. *
  3422. * ??) lpzfExeCsteCntsSplit("/root/init/resncd/resncdlist");
  3423. * @-------------------------------------------------------------------
  3424. */
  3425. function lpzfExeCsteCnt(pCsteType, pSpcNo, pCsteNo)
  3426. {
  3427. var aDot = "";
  3428. var aMinus = "";
  3429. aDot = utlf_transNullToEmpty(pCsteType).split(".");
  3430. if (aDot.length == 1)
  3431. {
  3432. if (utlf_transNullToEmpty(pCsteType).getTrim() == "공백")
  3433. {
  3434. return " ";
  3435. }
  3436. else if (utlf_transNullToEmpty(pCsteType).getTrim() == "단일번호") // 숫자
  3437. {
  3438. return pSpcNo;
  3439. }
  3440. else if (utlf_transNullToEmpty(pCsteType).getTrim() == "이중번호") // 숫자
  3441. {
  3442. return pSpcNo + "-" + pCsteNo;
  3443. }
  3444. else if (utlf_transNullToEmpty(pCsteType).getTrim() == "일련번호") // 숫자
  3445. {
  3446. return pCsteNo;
  3447. }
  3448. else if (utlf_transNullToEmpty(pCsteType).getTrim() == "신규번호") // 숫자
  3449. {
  3450. return pCsteNo;
  3451. }
  3452. else if (utlf_transNullToEmpty(pCsteType).getTrim() == "문자번호") // 2010-07-29 : YDC 추가
  3453. {
  3454. return String.fromCharCode(Number(pCsteNo) + 64);
  3455. }
  3456. else if (utlf_transNullToEmpty(pCsteType).getTrim() == "영문단일")
  3457. {
  3458. return String.fromCharCode(Number(pSpcNo) + 64);
  3459. }
  3460. else if (utlf_transNullToEmpty(pCsteType).getTrim() == "영문이중")
  3461. {
  3462. return String.fromCharCode(Number(pSpcNo) + 64) + "-" + pCsteNo;
  3463. }
  3464. else
  3465. {
  3466. return " ";
  3467. }
  3468. }
  3469. else
  3470. {
  3471. if (utlf_transNullToEmpty(aDot[1]).getTrim() == "") // 숫자 Only
  3472. {
  3473. return aDot[0];
  3474. }
  3475. else
  3476. {
  3477. aMinus = aDot[1].split("-");
  3478. if (aMinus.length == 1)
  3479. { // 문자 + 단일번호
  3480. return aDot[0] + pSpcNo;
  3481. }
  3482. else
  3483. {
  3484. if (utlf_transNullToEmpty(aMinus[1]).getTrim() == "")
  3485. { // 문자 + 단일번호
  3486. return aDot[0] + pSpcNo;
  3487. }
  3488. else
  3489. {
  3490. return aDot[0] + pSpcNo + "-" + pCsteNo; // 문자 + 이중번호
  3491. }
  3492. }
  3493. }
  3494. }
  3495. }
  3496. function lpzfExeBfSaveCheck(chknode, msgcnts, msgcd, focusobj)
  3497. {
  3498. trace("msgcnts="+msgcnts);
  3499. trace("msgcd="+msgcd);
  3500. trace("chknode="+chknode);
  3501. if(utlf_isNull(chknode))
  3502. {
  3503. sysf_messageBox(msgcnts, msgcd);
  3504. if(!utlf_isNull(focusobj))
  3505. {
  3506. (focusobj).setFocus();
  3507. }
  3508. return false;
  3509. }
  3510. else
  3511. {
  3512. return true;
  3513. }
  3514. }
  3515. function lpzfExeRemakeSendNode(sendnode_cnt)
  3516. {
  3517. //model.removeNodeset("/root/send");
  3518. if(lpzfExeChkNumberValue(sendnode_cnt) == false)
  3519. {
  3520. return;
  3521. }
  3522. sendnode_cnt = new Number(sendnode_cnt);
  3523. for(var cnt = 1; cnt <= sendnode_cnt; cnt++)
  3524. {
  3525. // model.makeNode("/root/send/data" + cnt);
  3526. dsf_createDs("ds_send_data"+cnt);
  3527. }
  3528. }
  3529. function lpzfExeChkNumberValue(chk_val)
  3530. {
  3531. if(typeof(chk_val) == undefined)
  3532. {
  3533. return false;
  3534. }
  3535. else if(chk_val.length == 0)
  3536. {
  3537. return false;
  3538. }
  3539. var no_val = chk_val.toString();
  3540. for(var i=0; i < no_val.length; i++)
  3541. {
  3542. var vTemp = no_val.substring( i, i+1 );
  3543. if(isNaN(vTemp))
  3544. {
  3545. return false;
  3546. }
  3547. else if(" " == vTemp)
  3548. {
  3549. return false;
  3550. }
  3551. }
  3552. return true;
  3553. }]]></Script>