SMMNI00100.js 178 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870
  1. /*
  2. 주사실메인(SMMNI00100.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xBizTrgtManListPath = "/root/main/biztrgtman/biztrgtmanlist"
  7. //20090318 dhkim 주사실 코드를 전역변수로 선언
  8. var injDeptcd;
  9. var injDeptnm;
  10. //user session의 부서정보
  11. var dutplcecd;
  12. var dutplcenm;
  13. //20090512 dhkim 서울성모 기관코드 기준자료
  14. var seoulinstcd;
  15. //20100224 dhkim 기관코드추가
  16. var uijbinstcd;//의정부
  17. var bucinstcd;//부천
  18. var vctinstcd;//빈센트
  19. var yuidinstcd;//여의도
  20. /**
  21. * 20091006 dhkim
  22. * 주사라벨출력할 내역을 초기설정한다.
  23. * 20091016 dhkim
  24. * - 믹스시 처방갯수를 4개에서 3개로 조정
  25. * - 현재일자+현재시간이 아닌 처방일자+현재시간으로 출력
  26. * 20091029 dhkim
  27. * - 믹스내역출력시 for문의 변수를 i가 아닌 k로 새로 부여하여 반복함 (i변수를 두번사용하여 무한루프 돌았음.)
  28. */
  29. function fPrintINJLabel(){
  30. // 주사라벨 바코드 출력기능_20090515(ByJA)
  31. //1. 바코드 라벨 초기 설정값 조회
  32. var scrnid = "SMMNI00100";
  33. model.removeNodeset("/root/main/barcdprntsetup");
  34. fGetBarCodeInfo(scrnid); // CareCom.js
  35. lzzfMakeBrcdPrntObjHanDo("CommAX");
  36. //2. 바코드 라벨 환경설정
  37. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  38. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js
  39. //3. 주사라벨 출력
  40. var prcpdetllistRef= "/root/main/prcpdetl/prcpdetllist";
  41. //호출변수값 설정
  42. var pid, orddeptnm, patnm, sexage, prcpcd, prcpvol, prcpqty, abbrnm, ast, prcpdelivefact, prcpdd, labelprttm;
  43. var actorddd;//20091214 dhkim 추가(mix내역 출력시 예약일자로 구분해 연속처방 전체가 모두 출력되는 오류 제거)
  44. var execprcpuniqno;
  45. var patinfoStr = '';
  46. var prcpStr = '';
  47. var labelprtdtStr = '';
  48. var mixcnt = 0;
  49. var rrgstno = '';
  50. //20170308 추가 ,라벨에 주민번호 보여주기위해
  51. rrgstno = model.getValue("/root/main/rghtref/rghtreflist/rrgstno");
  52. //믹스를 위한 체크상태값 추가
  53. var flag;
  54. var stat;
  55. for(var i = 1; i < grd_prcpdetl.rows; i++){
  56. flag = grd_prcpdetl.valueMatrix(i, grd_prcpdetl.colRef("flag"));
  57. if(flag == "1"){
  58. model.setValue(prcpdetllistRef + "[" + i + "]/chklb", "1"); //믹스추가후 체크상태
  59. }else{
  60. model.setValue(prcpdetllistRef + "[" + i + "]/chklb", "0"); //믹스추가후 체크해제상태
  61. }
  62. //2011.08.09 by kya ACTING 한 것 만 주사라벨 출력되도록
  63. stat = grd_prcpdetl.valueMatrix(i, grd_prcpdetl.colRef("stat"));
  64. if( flag == "1" && stat != "6"){ //시행완료가 아니면
  65. messageBox("Acting 완료가 아닙니다. Acting 후 주사라벨을 출력하세요.", "E","");
  66. return false;
  67. }
  68. }
  69. var tempStr ="";
  70. //20091019 dhkim mix가 3개 이상일때는 다음페이지로 보여준다.
  71. for(var i=1; i<grd_prcpdetl.rows;i++){
  72. if(model.getValue(prcpdetllistRef+"["+i+"]/chklb") == "1"){
  73. pid = model.getValue(prcpdetllistRef+"["+i+"]/pid");
  74. pid = pid + "/" + rrgstno.substr(0,8); //20170308 추가
  75. orddeptnm = model.getValue(prcpdetllistRef+"["+i+"]/orddeptnm");
  76. patnm = model.getValue(prcpdetllistRef+"["+i+"]/patnm");
  77. sexage = model.getValue(prcpdetllistRef+"["+i+"]/sexage");
  78. patinfoStr = orddeptnm + ' ' + patnm + ' (' + sexage + ')';
  79. /** <addon>
  80. *개발일시: 2010.05.13
  81. *개발자: 양천덕
  82. *요청병원: 세종병원
  83. *요청파트: 간호
  84. *개발내용: 바코드 출력 형식 변경으로 수정 처리(주사실 주사라벨)
  85. </addon>
  86. */
  87. //prcpcd = model.getValue(prcpdetllistRef+"["+i+"]/prcpcd");
  88. prcpcd = model.getValue(prcpdetllistRef+"["+i+"]/prcpnm");
  89. prcpvol = model.getValue(prcpdetllistRef+"["+i+"]/prcpvol");
  90. prcpqty = model.getValue(prcpdetllistRef+"["+i+"]/prcpqty");
  91. //20091019 dhkim prcpdd(라벨 젤 아랫줄에 출력되는 일자)는 현재일자가 아닌 처방일자임
  92. prcpdd = model.getValue(prcpdetllistRef+"["+i+"]/prcpdd");
  93. prcpdd = prcpdd.substr(0,4) + "/"+prcpdd.substr(4,2) + "/" + prcpdd.substr(6,2);
  94. labelprttm = getCurrentTime();
  95. labelprttm = labelprttm.substr(0,2) +":"+ labelprttm.substr(2,2);
  96. labelprtdtStr = prcpdd + ' ' + labelprttm;//처방일자 + 현재시간
  97. mix = model.getValue(prcpdetllistRef+"["+i+"]/mix");
  98. if(mix != '-' && mix > 0){
  99. prcpStr = prcpcd + ' ' + prcpvol + '/' + prcpqty + '♬';
  100. execprcpuniqno = model.getValue(prcpdetllistRef + '[' + i + ']/execprcpuniqno');
  101. //20091215 dhkim 연속처방 믹스라벨이 선택하지 않은 것까지 전체다 출력되는 오류 수정
  102. actorddd = model.getValue(prcpdetllistRef + '[' + i + ']/actorddd');
  103. var _execprcpuniqno, _mix, _prcpcd, _prcpvol, _prcpqty;
  104. for(var j = 1; j < grd_prcpdetl.rows; j++){
  105. /** <addon>
  106. *개발일시: 2010.05.13
  107. *개발자: 양천덕
  108. *요청병원: 세종병원
  109. *요청파트: 간호
  110. *개발내용: 바코드 출력 형식 변경으로 수정 처리(주사실 주사라벨)
  111. </addon>
  112. */
  113. _execprcpuniqno = model.getValue(prcpdetllistRef + '[' + j + ']/execprcpuniqno');
  114. _mix = model.getValue(prcpdetllistRef + "[" + j + "]/mix");
  115. _prcpcd = model.getValue(prcpdetllistRef + "[" + j + "]/prcpnm");
  116. //_prcpcd = model.getValue(prcpdetllistRef + "[" + j + "]/prcpcd");
  117. _prcpvol = model.getValue(prcpdetllistRef + "[" + j + "]/prcpvol");
  118. _prcpqty = model.getValue(prcpdetllistRef + "[" + j + "]/prcpqty");
  119. //20091215 dhkim 연속처방 믹스라벨이 선택하지 않은 것까지 전체다 출력되는 오류 수정
  120. _actorddd = model.getValue(prcpdetllistRef + '[' + j + ']/actorddd');
  121. if(execprcpuniqno != _execprcpuniqno && mix == _mix
  122. && actorddd == _actorddd){//20091215 dhkim 연속처방 믹스라벨이 선택하지 않은 것까지 전체다 출력되는 오류 수정
  123. mixcnt++;
  124. prcpStr += _prcpcd + ' ' + _prcpvol + '/' + _prcpqty + '♬';
  125. model.setValue(prcpdetllistRef + "[" + j + "]/chklb", "0"); //믹스추가후 체크해제상태
  126. }
  127. }
  128. //20091019 dhkim mix가 3개 이상일때는 다음페이지로 보여준다.
  129. if(mixcnt < 3){
  130. prcpStr = prcpStr.substring(0, (prcpStr.length-1));
  131. // alert(prcpStr); //kya
  132. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'Y', '1/1');
  133. }else{
  134. //20091019 dhkim 처방갯수가 3개가 넘어가면 다음페이지로 출력해야하므로 페이지 번호를 지정한다.
  135. prcpStr = prcpStr.substring(0, parseInt(prcpStr.length)-1);//맨마지막은 배열에서 제외
  136. var prcpArr = prcpStr.split("♬");
  137. var quot = parseInt(prcpArr.length/3);//몫
  138. var rem = parseInt(prcpArr.length%3);//나머지
  139. var totPage = 0;//총페이지
  140. var curPage = 0;//현재페이지
  141. var pageCntStr = "";
  142. if(rem != 0){
  143. totPage = quot + 1;
  144. prcpStr = "";
  145. }else{
  146. totPage = quot;
  147. prcpStr = "";
  148. }
  149. //alert('---mix3개이상시작---mix번호:'+mix+'---' + prcpArr);
  150. for(var k = 0; k < prcpArr.length; k++){
  151. //alert('mix번호:'+mix+'---'+k+'번째---' + prcpArr[k]);
  152. prcpStr += prcpArr[k] + "♬";
  153. if(k > 0 && parseInt((k+1)%3) == 0){//한페이지에 3개씩 출력 위해
  154. curPage++;
  155. pageCntStr = curPage + "/" + totPage;
  156. //alert(prcpStr);
  157. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'Y', pageCntStr);
  158. prcpStr = "";
  159. }else{
  160. if(k == (prcpArr.length-1)){//3개씩출력한 나머지 값 출력 위해
  161. curPage++;
  162. pageCntStr = curPage + "/" + totPage;
  163. //alert(prcpStr);
  164. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'Y', pageCntStr);
  165. prcpStr = "";
  166. }
  167. }
  168. }
  169. }
  170. }else{
  171. abbrnm = model.getValue(prcpdetllistRef+"["+i+"]/abbrnm");
  172. ast = model.getValue(prcpdetllistRef+"["+i+"]/ast");
  173. prcpdelivefact = model.getValue(prcpdetllistRef+"["+i+"]/prcpdelivefact");
  174. prcpStr = prcpcd + ' ' + prcpvol + '/' + prcpqty;
  175. //alert(prcpStr);
  176. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'N', '');
  177. }
  178. }
  179. }
  180. grd_prcpdetl.refresh();
  181. }
  182. /*
  183. * 20141127 by kya
  184. * Acting + 주사라벨 동시 처리
  185. */
  186. function fPrintINJLabelNew(){
  187. //20141127 주사라벨 + acting
  188. var injlacting = model.getValue("/root/main/injlacting");
  189. // 주사라벨 바코드 출력기능_20090515(ByJA)
  190. //1. 바코드 라벨 초기 설정값 조회
  191. var scrnid = "SMMNI00100";
  192. model.removeNodeset("/root/main/barcdprntsetup");
  193. fGetBarCodeInfo(scrnid); // CareCom.js
  194. lzzfMakeBrcdPrntObjHanDo("CommAX");
  195. //2. 바코드 라벨 환경설정
  196. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  197. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js
  198. //3. 주사라벨 출력
  199. var prcpdetllistRef= "/root/main/prcpdetl/prcpdetllist";
  200. //호출변수값 설정
  201. var pid, orddeptnm, patnm, sexage, prcpcd, prcpvol, prcpqty, abbrnm, ast, prcpdelivefact, prcpdd, labelprttm;
  202. var actorddd;//20091214 dhkim 추가(mix내역 출력시 예약일자로 구분해 연속처방 전체가 모두 출력되는 오류 제거)
  203. var execprcpuniqno;
  204. var patinfoStr = '';
  205. var prcpStr = '';
  206. var labelprtdtStr = '';
  207. var mixcnt = 0;
  208. var rrgstno = '';
  209. //믹스를 위한 체크상태값 추가
  210. var flag;
  211. var stat;
  212. for(var i = 1; i < grd_prcpdetl.rows; i++){
  213. flag = grd_prcpdetl.valueMatrix(i, grd_prcpdetl.colRef("flag"));
  214. if(flag == "1"){
  215. model.setValue(prcpdetllistRef + "[" + i + "]/chklb", "1"); //믹스추가후 체크상태
  216. }else{
  217. model.setValue(prcpdetllistRef + "[" + i + "]/chklb", "0"); //믹스추가후 체크해제상태
  218. }
  219. //2011.08.09 by kya ACTING 한 것 만 주사라벨 출력되도록
  220. stat = grd_prcpdetl.valueMatrix(i, grd_prcpdetl.colRef("stat"));
  221. if(injlacting == "1") {
  222. // 주사라벨 + acting
  223. } else {
  224. if( flag == "1" && stat != "6"){ //시행완료가 아니면
  225. messageBox("Acting 완료가 아닙니다. Acting 후 주사라벨을 출력하세요.", "E","");
  226. return false;
  227. }
  228. }
  229. }
  230. var tempStr ="";
  231. //20091019 dhkim mix가 3개 이상일때는 다음페이지로 보여준다.
  232. for(var i=1; i<grd_prcpdetl.rows;i++){
  233. if(model.getValue(prcpdetllistRef+"["+i+"]/chklb") == "1"){
  234. pid = model.getValue(prcpdetllistRef+"["+i+"]/pid");
  235. orddeptnm = model.getValue(prcpdetllistRef+"["+i+"]/orddeptnm");
  236. patnm = model.getValue(prcpdetllistRef+"["+i+"]/patnm");
  237. sexage = model.getValue(prcpdetllistRef+"["+i+"]/sexage");
  238. patinfoStr = orddeptnm + ' ' + patnm + ' (' + sexage + ')';
  239. /** <addon>
  240. *개발일시: 2010.05.13
  241. *개발자: 양천덕
  242. *요청병원: 세종병원
  243. *요청파트: 간호
  244. *개발내용: 바코드 출력 형식 변경으로 수정 처리(주사실 주사라벨)
  245. </addon>
  246. */
  247. //prcpcd = model.getValue(prcpdetllistRef+"["+i+"]/prcpcd");
  248. prcpcd = model.getValue(prcpdetllistRef+"["+i+"]/prcpnm");
  249. prcpvol = model.getValue(prcpdetllistRef+"["+i+"]/prcpvol");
  250. prcpqty = model.getValue(prcpdetllistRef+"["+i+"]/prcpqty");
  251. //20091019 dhkim prcpdd(라벨 젤 아랫줄에 출력되는 일자)는 현재일자가 아닌 처방일자임
  252. prcpdd = model.getValue(prcpdetllistRef+"["+i+"]/prcpdd");
  253. prcpdd = prcpdd.substr(0,4) + "/"+prcpdd.substr(4,2) + "/" + prcpdd.substr(6,2);
  254. labelprttm = getCurrentTime();
  255. labelprttm = labelprttm.substr(0,2) +":"+ labelprttm.substr(2,2);
  256. labelprtdtStr = prcpdd + ' ' + labelprttm;//처방일자 + 현재시간
  257. mix = model.getValue(prcpdetllistRef+"["+i+"]/mix");
  258. if(mix != '-' && mix > 0){
  259. prcpStr = prcpcd + ' ' + prcpvol + '/' + prcpqty + '♬';
  260. execprcpuniqno = model.getValue(prcpdetllistRef + '[' + i + ']/execprcpuniqno');
  261. //20091215 dhkim 연속처방 믹스라벨이 선택하지 않은 것까지 전체다 출력되는 오류 수정
  262. actorddd = model.getValue(prcpdetllistRef + '[' + i + ']/actorddd');
  263. var _execprcpuniqno, _mix, _prcpcd, _prcpvol, _prcpqty;
  264. for(var j = 1; j < grd_prcpdetl.rows; j++){
  265. /** <addon>
  266. *개발일시: 2010.05.13
  267. *개발자: 양천덕
  268. *요청병원: 세종병원
  269. *요청파트: 간호
  270. *개발내용: 바코드 출력 형식 변경으로 수정 처리(주사실 주사라벨)
  271. </addon>
  272. */
  273. _execprcpuniqno = model.getValue(prcpdetllistRef + '[' + j + ']/execprcpuniqno');
  274. _mix = model.getValue(prcpdetllistRef + "[" + j + "]/mix");
  275. _prcpcd = model.getValue(prcpdetllistRef + "[" + j + "]/prcpnm");
  276. //_prcpcd = model.getValue(prcpdetllistRef + "[" + j + "]/prcpcd");
  277. _prcpvol = model.getValue(prcpdetllistRef + "[" + j + "]/prcpvol");
  278. _prcpqty = model.getValue(prcpdetllistRef + "[" + j + "]/prcpqty");
  279. //20091215 dhkim 연속처방 믹스라벨이 선택하지 않은 것까지 전체다 출력되는 오류 수정
  280. _actorddd = model.getValue(prcpdetllistRef + '[' + j + ']/actorddd');
  281. if(execprcpuniqno != _execprcpuniqno && mix == _mix
  282. && actorddd == _actorddd){//20091215 dhkim 연속처방 믹스라벨이 선택하지 않은 것까지 전체다 출력되는 오류 수정
  283. mixcnt++;
  284. prcpStr += _prcpcd + ' ' + _prcpvol + '/' + _prcpqty + '♬';
  285. model.setValue(prcpdetllistRef + "[" + j + "]/chklb", "0"); //믹스추가후 체크해제상태
  286. }
  287. }
  288. //20091019 dhkim mix가 3개 이상일때는 다음페이지로 보여준다.
  289. if(mixcnt < 3){
  290. prcpStr = prcpStr.substring(0, (prcpStr.length-1));
  291. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'Y', '1/1');
  292. }else{
  293. //20091019 dhkim 처방갯수가 3개가 넘어가면 다음페이지로 출력해야하므로 페이지 번호를 지정한다.
  294. prcpStr = prcpStr.substring(0, parseInt(prcpStr.length)-1);//맨마지막은 배열에서 제외
  295. var prcpArr = prcpStr.split("♬");
  296. var quot = parseInt(prcpArr.length/3);//몫
  297. var rem = parseInt(prcpArr.length%3);//나머지
  298. var totPage = 0;//총페이지
  299. var curPage = 0;//현재페이지
  300. var pageCntStr = "";
  301. if(rem != 0){
  302. totPage = quot + 1;
  303. prcpStr = "";
  304. }else{
  305. totPage = quot;
  306. prcpStr = "";
  307. }
  308. //alert('---mix3개이상시작---mix번호:'+mix+'---' + prcpArr);
  309. for(var k = 0; k < prcpArr.length; k++){
  310. //alert('mix번호:'+mix+'---'+k+'번째---' + prcpArr[k]);
  311. prcpStr += prcpArr[k] + "♬";
  312. if(k > 0 && parseInt((k+1)%3) == 0){//한페이지에 3개씩 출력 위해
  313. curPage++;
  314. pageCntStr = curPage + "/" + totPage;
  315. //alert(prcpStr);
  316. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'Y', pageCntStr);
  317. prcpStr = "";
  318. }else{
  319. if(k == (prcpArr.length-1)){//3개씩출력한 나머지 값 출력 위해
  320. curPage++;
  321. pageCntStr = curPage + "/" + totPage;
  322. //alert(prcpStr);
  323. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'Y', pageCntStr);
  324. prcpStr = "";
  325. }
  326. }
  327. }
  328. }
  329. }else{
  330. abbrnm = model.getValue(prcpdetllistRef+"["+i+"]/abbrnm");
  331. ast = model.getValue(prcpdetllistRef+"["+i+"]/ast");
  332. prcpdelivefact = model.getValue(prcpdetllistRef+"["+i+"]/prcpdelivefact");
  333. prcpStr = prcpcd + ' ' + prcpvol + '/' + prcpqty;
  334. //alert(prcpStr);
  335. fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, 'N', '');
  336. }
  337. }
  338. }
  339. grd_prcpdetl.refresh();
  340. }
  341. /**
  342. * 20091006 dhkim
  343. * 주사라벨을 출력한다.
  344. */
  345. function fPrtCareInjLabel_INJ(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, mixyn, pageCntStr){
  346. model.addLog("pid:"+pid);
  347. model.addLog("patinfoStr:"+patinfoStr);
  348. model.addLog("prcpStr:"+prcpStr);
  349. model.addLog("abbrnm:"+abbrnm);
  350. model.addLog("ast:"+ast);
  351. model.addLog("prcpdelivefact:"+prcpdelivefact);
  352. model.addLog("labelprtdtStr:"+labelprtdtStr);
  353. model.addLog("portOpenTF:"+portOpenTF);
  354. model.addLog("mixyn:"+mixyn);
  355. model.addLog("pageCntStr:"+pageCntStr);
  356. var esc = String.fromCharCode(27);
  357. var sPrntKind = model.getvalue(barcdRef + "/prntkind");
  358. var iLeft = model.getValue(barcdRef + "[1]/blank/left");
  359. var iTop = model.getValue(barcdRef + "[1]/blank/top");
  360. if(iLeft == "" || iLeft == "-"){
  361. iLeft = 0;
  362. }
  363. if(iTop == "" || iTop == "-"){
  364. iTop = 0;
  365. }
  366. if(ast=="Y"){
  367. ast = "AST( )/";
  368. }else{
  369. ast = "";
  370. }
  371. /** <addon>
  372. *개발일시: 2010.05.13
  373. *개발자: 양천덕
  374. *요청병원: 세종병원
  375. *요청파트: 간호
  376. *개발내용: 바코드 출력 형식 변경으로 수정 처리(주사실 주사라벨)
  377. </addon>
  378. */
  379. var prcpdetllistRef = "/root/main/prcpdetl/prcpdetllist";
  380. var patnm = model.getValue(prcpdetllistRef+"["+i+"]/patnm");
  381. var sexage = model.getValue(prcpdetllistRef+"["+i+"]/sexage");
  382. var prcpcd = model.getValue(prcpdetllistRef+"["+i+"]/prcpcd");
  383. var orddeptnm = model.getValue(prcpdetllistRef+"["+i+"]/orddeptnm");
  384. var execprcpvol = model.getValue(prcpdetllistRef+"["+i+"]/prcpvol");
  385. var prcpvolunitflag = "";
  386. var execprcpqty = "";
  387. var prcpqtyunitflag = "";
  388. var execprcpqty = "";
  389. var prcpqtyunitflag ="";
  390. var prcpdd = model.getValue(prcpdetllistRef+"["+i+"]/prcpdd");
  391. var roomcd = "";
  392. var medirectm = "";
  393. var totalmedirectm = "";
  394. model.makeValue("/root/BarCode_DrugNode/pid", pid);
  395. model.makeValue("/root/BarCode_DrugNode/ast", ast);
  396. model.makeValue("/root/BarCode_DrugNode/prcpdelivefact", prcpdelivefact);
  397. model.makeValue("/root/BarCode_DrugNode/prcpStr", prcpStr);
  398. model.makeValue("/root/BarCode_DrugNode/patinfoStr", patinfoStr);
  399. model.makeValue("/root/BarCode_DrugNode/orddeptnm", orddeptnm);
  400. model.makeValue("/root/BarCode_DrugNode/patnm", patnm);
  401. model.makeValue("/root/BarCode_DrugNode/sexage", sexage);
  402. fPrtCareInjLabel("injroom", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  403. //fPrtCareInjLabel(barcdRef, pid, patinfoStr, prcpStr, abbrnm, ast, prcpdelivefact, labelprtdtStr, portOpenTF, mixyn, pageCntStr);
  404. return;
  405. // SATO일 경우
  406. if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  407. // 시작위치 셋팅 (A1aaaabbbb:출력 용지 규격(aaaa:세로크기_최대 2848, bbbb:가로크기_최대 832))
  408. var sSndMsg = esc + "A" + esc + "A103500500";
  409. // 출력할 데이터 생성
  410. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+10 , parseInt(iLeft)+50 , pid, 1, 1.5);
  411. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+60 , parseInt(iLeft)+50 , patinfoStr, 1, 1.5);
  412. if(mixyn == 'Y'){
  413. //mix된 처방을 한 라벨에 전부 보여준다.
  414. var prcpArr = prcpStr.split("♬");
  415. var topSz = 80;
  416. for(var i = 0; i < prcpArr.length; i++){
  417. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+120+(i*35), parseInt(iLeft)+50 , prcpArr[i], 1, 1);
  418. }
  419. }else{
  420. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+125, parseInt(iLeft)+50 , prcpStr, 1, 1);
  421. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+155, parseInt(iLeft)+50 , abbrnm, 1 , 1);
  422. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+185, parseInt(iLeft)+50 , ast, 1, 1);
  423. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+185, parseInt(iLeft)+150, prcpdelivefact, 1, 1);
  424. }
  425. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+220, parseInt(iLeft)+50 , labelprtdtStr + ' ' + pageCntStr, 1 , 1);
  426. // 종료 및 출력물 출력수량
  427. sSndMsg += esc + "Q1" + esc + "Z";
  428. var a = CommAX.SendMsg(sSndMsg);
  429. CommAX.PortOpen("false");
  430. }
  431. // SATO가 아닐 경우(기존)
  432. else{
  433. if(portOpenTF == "TRUE"){
  434. var sSndMsg = "";
  435. sSndMsg += "^XA^LH" + 0 + "," + 20;
  436. sSndMsg += "^CFC30,30^FO" +(parseInt(iLeft)+ 5) +","+ parseInt(iTop) + "^FD" + pid + "^FS";
  437. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+35, patinfoStr, 1, 1.5) + CommAX.HanImageData();
  438. if(mixyn == 'Y'){
  439. //mix된 처방을 한 라벨에 전부 보여준다.
  440. var prcpArr = prcpStr.split("♬");
  441. var topSz = 80;
  442. for(var i = 0; i < prcpArr.length; i++){
  443. if(i == 0){CommAX.SendMessage(sSndMsg); sSndMsg="";}//왜그런진 모르겠고 이거 안쓰면 출력되다가 중간에 짤림
  444. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+90+(i*45)) + "^FD" + prcpArr[i] + "^FS";
  445. CommAX.SendMessage(sSndMsg);sSndMsg = "";//왜그런진 모르겠고 이거 안쓰면 루프는 도는데 출력이 안됨
  446. }
  447. }else{
  448. CommAX.SendMessage(sSndMsg); sSndMsg="";//왜그런진 모르겠고 이거 안쓰면 출력되다가 중간에 짤림
  449. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+90) + "^FD" + prcpStr + "^FS";
  450. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5, parseInt(iTop)+130, abbrnm, 1, 1) + CommAX.HanImageData();
  451. var delivstr = prcpdelivefact;
  452. var topSz = 0;
  453. var delivLen = prcpdelivefact.length;
  454. if(delivLen > 19){
  455. var rowCnt = Math.ceil(delivLen/19);
  456. for(var i = 0; i < rowCnt; i++){
  457. if(i == 0){CommAX.SendMessage(sSndMsg); sSndMsg="";}//왜그런진 모르겠고 이거 안쓰면 출력되다가 중간에 짤림
  458. delivstr = prcpdelivefact.substring((i*19), ((i+1)*19));
  459. topSz = (i * 45) + 165;
  460. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5, parseInt(iTop)+topSz, delivstr, 1, 1) + CommAX.HanImageData();
  461. CommAX.SendMessage(sSndMsg);sSndMsg = "";//왜그런진 모르겠고 이거 안쓰면 루프는 도는데 출력이 안됨
  462. }
  463. }else{
  464. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+165, delivstr, 1, 1) + CommAX.HanImageData();
  465. }
  466. }
  467. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+215) + "^FD" + labelprtdtStr + "^FS";
  468. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 400) +","+ (parseInt(iTop)+215) + "^FD" + pageCntStr + "^FS";
  469. sSndMsg += fCareBP_EndFormat();
  470. CommAX.SendMessage(sSndMsg);
  471. CommAX.PortOpen("false");
  472. }else{
  473. messageBox("아래 사항을 확인후 재출력해주십시오."
  474. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  475. + " \n 2.케이블 확인"
  476. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  477. return;
  478. }
  479. }
  480. }
  481. function fPrtCareInjLabel_INJ_20091006(ScrnFlag, barcdRef, pid, patnm, sexage, prcpcd, prcpvol, prcpqty, abbrnm, ast, prcpdelivefact, prcpdd, orddeptnm, labelprttm, portOpenTF, mixyn, mixPrcpStr, pCnt, tCnt){
  482. var esc = String.fromCharCode(27);
  483. var sPrntKind = model.getvalue(barcdRef + "/prntkind");
  484. var iLeft = model.getValue(barcdRef + "[1]/blank/left");
  485. var iTop = model.getValue(barcdRef + "[1]/blank/top");
  486. if(iLeft == "" || iLeft == "-"){
  487. iLeft = 0;
  488. }
  489. if(iTop == "" || iTop == "-"){
  490. iTop = 0;
  491. }
  492. prcpdd = prcpdd.substr(0,4) + "/"+prcpdd.substr(4,2) + "/" + prcpdd.substr(6,2);
  493. labelprttm = labelprttm.substr(0,2) +":"+ labelprttm.substr(2,2);
  494. if(ast=="Y"){
  495. ast = "AST( )/";
  496. }else{
  497. ast = "";
  498. }
  499. // SATO일 경우
  500. if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  501. // 시작위치 셋팅 (A1aaaabbbb:출력 용지 규격(aaaa:세로크기_최대 2848, bbbb:가로크기_최대 832))
  502. var sSndMsg = esc + "A" + esc + "A103500500";
  503. // 출력할 데이터 생성
  504. if(ScrnFlag == "injroom"){ // 주사실
  505. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+10 , parseInt(iLeft)+50 , pid, 1, 1.5);
  506. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+60 , parseInt(iLeft)+50 , orddeptnm, 1, 1.5);
  507. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+60 , parseInt(iLeft)+250, patnm +"("+ sexage +")", 1, 1.5);
  508. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+125, parseInt(iLeft)+50 , prcpcd, 1, 1);
  509. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+125, parseInt(iLeft)+250, prcpvol +"/"+ prcpqty, 1, 1);
  510. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+155, parseInt(iLeft)+50 , abbrnm, 1 , 1);
  511. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+185, parseInt(iLeft)+50 , ast, 1, 1);
  512. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+185, parseInt(iLeft)+150, prcpdelivefact, 1, 1);
  513. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+230, parseInt(iLeft)+50 , prcpdd, 1 , 1);
  514. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+230, parseInt(iLeft)+350, labelprttm, 1 , 1);
  515. }
  516. // 종료 및 출력물 출력수량
  517. sSndMsg += esc + "Q1" + esc + "Z";
  518. var a = CommAX.SendMsg(sSndMsg);
  519. CommAX.PortOpen("false");
  520. }
  521. // SATO가 아닐 경우(기존)
  522. else{
  523. /*
  524. var sSndMsg = '^XA^LH';
  525. sSndMsg += "^CFC30,30^FO" +(parseInt(iLeft)+ 5) +","+ parseInt(iTop) + "^FD" + "12341234" + "^FS";
  526. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+35, "내과", 1, 1.5) + CommAX.HanImageData();
  527. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 200, parseInt(iTop)+40, "김달현" , 1, 1.5) + CommAX.HanImageData();
  528. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 300, parseInt(iTop)+40, "F/25" , 1, 1.5) + CommAX.HanImageData();
  529. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+80) + "^FD" + "ABC1" +" "+ "1mg" +"/"+ "250v" + "^FS";
  530. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5, parseInt(iTop)+120, "ABScdjsn djai Inj", 1, 1) + CommAX.HanImageData();
  531. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+160, "으갸갸", 1, 1) + CommAX.HanImageData();
  532. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+240) + "^FD" + "2009-10-06" +" "+ "02:12" + "^FS";
  533. sSndMsg += fCareBP_EndFormat();
  534. CommAX.SendMessage(sSndMsg);
  535. CommAX.PortOpen("false");
  536. */
  537. /*
  538. sSndMsg += "^CFC30,30^FO" +(parseInt(iLeft)+ 5) +","+ parseInt(iTop) + "^FD" + pid + "^FS";
  539. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+35, orddeptnm, 1, 1.5) + CommAX.HanImageData();
  540. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 200, parseInt(iTop)+40, patnm , 1, 1.5) + CommAX.HanImageData();
  541. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 300, parseInt(iTop)+40, sexage , 1, 1.5) + CommAX.HanImageData();
  542. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+80) + "^FD" + prcpcd +" "+ prcpvol +"/"+ prcpqty + "^FS";
  543. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5, parseInt(iTop)+120, abbrnm, 1, 1) + CommAX.HanImageData();
  544. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+160, '으갸갸', 1, 1) + CommAX.HanImageData();
  545. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+240) + "^FD" + prcpdd +" "+ labelprttm + "^FS";
  546. sSndMsg += fCareBP_EndFormat();
  547. CommAX.SendMessage(sSndMsg);
  548. CommAX.PortOpen("false");
  549. */
  550. if(portOpenTF == "TRUE"){
  551. var sSndMsg = "";
  552. sexage = "("+sexage+")";
  553. sSndMsg += "^XA^LH" + 0 + "," + 20;
  554. if(ScrnFlag == "injroom"){ // 주사실
  555. sSndMsg += "^CFC30,30^FO" +(parseInt(iLeft)+ 5) +","+ parseInt(iTop) + "^FD" + pid + "^FS";
  556. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+30, orddeptnm, 1, 1.5) + CommAX.HanImageData();
  557. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 200, parseInt(iTop)+30, patnm , 1, 1.5) + CommAX.HanImageData();
  558. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 300, parseInt(iTop)+30, sexage , 1, 1.5) + CommAX.HanImageData();
  559. if(mixyn == 'Y'){
  560. //mix된 처방을 한 라벨에 전부 보여준다.
  561. mixPrcpStr = mixPrcpStr.substring(0, mixPrcpStr.length-1);
  562. var prcpArr = mixPrcpStr.split("♬");
  563. var topSz = 80;
  564. for(var i = 0; i < prcpArr.length; i++){
  565. if(i == 0){CommAX.SendMessage(sSndMsg); sSndMsg="";}//왜그런진 모르겠고 이거 안쓰면 출력되다가 중간에 짤림
  566. //sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5, parseInt(iTop)+80+(i*40), prcpArr[i], 1, 1) + CommAX.HanImageData();
  567. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+80+(i*40)) + "^FD" + prcpArr[i] + "^FS";
  568. CommAX.SendMessage(sSndMsg);sSndMsg = "";//왜그런진 모르겠고 이거 안쓰면 루프는 도는데 출력이 안됨
  569. }
  570. }else{
  571. CommAX.SendMessage(sSndMsg); sSndMsg="";//왜그런진 모르겠고 이거 안쓰면 출력되다가 중간에 짤림
  572. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+80) + "^FD" + prcpcd +" "+ prcpvol +"/"+ prcpqty + "^FS";
  573. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5, parseInt(iTop)+120, abbrnm, 1, 1) + CommAX.HanImageData();
  574. var delivstr = prcpdelivefact;
  575. var topSz = 0;
  576. var delivLen = prcpdelivefact.length;
  577. if(delivLen > 19){
  578. var rowCnt = Math.ceil(delivLen/19);
  579. for(var i = 0; i < rowCnt; i++){
  580. if(i == 0){CommAX.SendMessage(sSndMsg); sSndMsg="";}//왜그런진 모르겠고 이거 안쓰면 출력되다가 중간에 짤림
  581. delivstr = prcpdelivefact.substring((i*19), ((i+1)*19));
  582. topSz = (i * 40) + 160;
  583. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5, parseInt(iTop)+topSz, delivstr, 1, 1) + CommAX.HanImageData();
  584. CommAX.SendMessage(sSndMsg);sSndMsg = "";//왜그런진 모르겠고 이거 안쓰면 루프는 도는데 출력이 안됨
  585. }
  586. }else{
  587. sSndMsg += CommAX.PrtImgOut(parseInt(iLeft)+ 5 , parseInt(iTop)+160, delivstr, 1, 1) + CommAX.HanImageData();
  588. }
  589. //alert(sSndMsg);
  590. }
  591. sSndMsg += "^CFB20,20^FO" +(parseInt(iLeft)+ 5) +","+ (parseInt(iTop)+240) + "^FD" + prcpdd +" "+ labelprttm + "^FS";
  592. }
  593. sSndMsg += fCareBP_EndFormat();
  594. CommAX.SendMessage(sSndMsg);
  595. CommAX.PortOpen("false");
  596. }else{
  597. messageBox("아래 사항을 확인후 재출력해주십시오."
  598. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  599. + " \n 2.케이블 확인"
  600. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  601. return;
  602. }
  603. }
  604. }
  605. /*
  606. * 20090318 dhkim
  607. * 화면 초기화 펑션으로 분리함
  608. */
  609. function fInit(){
  610. //간호하드코딩 테이블 조회_20091026_SMY
  611. var pCode = "'077'"; // 조회할 CdGrupID 코드정보
  612. var pDate = getCurrentDate(); //조회기준일자
  613. //20140627 by kya, 업무일자 set
  614. model.setValue("/root/main/leftref/bizdd", pDate );
  615. fGetNursHardCdInfo(pCode, pDate);
  616. dutplcecd = getUserInfo("dutplcecd");
  617. dutplcenm = getUserInfo("dutplcenm");
  618. //20090318 dhkim
  619. //주사실코드 전역변수에 저장
  620. //emr.mnwmcode의 cdgrupid = '032' 또는 '211'
  621. model.removenode('/root/send');
  622. //20150414 kya 중앙주사실, 소아주사실 지정
  623. if(dutplcecd == "3050317000" ) {
  624. model.makeValue('/root/send/cdgrupid', '211'); //소아주사실
  625. } else {
  626. model.makeValue('/root/send/cdgrupid', '032'); //중앙주사실
  627. }
  628. model.removenode('/root/baseinfo/injdeptinfo');
  629. model.makenode('/root/baseinfo/injdeptinfo');
  630. if(!submit('TRMNI00109')){
  631. messageBox('간호에 등록된 주사실코드 조회를 실패하였습니다.', 'E999');
  632. return false;
  633. }else{
  634. injDeptcd = model.getValue('/root/baseinfo/injdeptinfo/injdeptlist/deptcd');
  635. injDeptnm = model.getValue('/root/baseinfo/injdeptinfo/injdeptlist/deptnm');
  636. }
  637. // alert('로그인정보 : ' + dutplcecd + ', 주사실기준자료정보 : ' + injDeptcd);
  638. //20090512 dhkim 서울성모기관코드 조회
  639. model.removenode('/root/send');
  640. model.makeValue('/root/send/cdgrupid', '079');
  641. model.removenode('/root/baseinfo/dutinstinfo');
  642. model.makenode('/root/baseinfo/dutinstinfo');
  643. if(!submit('TRMNI01303')){
  644. messageBox('간호에 등록된 서울성모기관코드 조회를 실패하였습니다.', 'E999');
  645. return false;
  646. }
  647. //20090512 dhkim 소아청소년과제외 옵션 추가(체크박스)
  648. model.removenode('/root/send');
  649. model.makeValue('/root/send/cdgrupid', '078');
  650. model.removenode('/root/baseinfo/execinfo');
  651. model.makenode('/root/baseinfo/execinfo');
  652. if(!submit('TRMNI01302')){
  653. messageBox('간호에 등록된 소아청소년과제외옵션 조회를 실패하였습니다.', 'E999');
  654. return false;
  655. }else{
  656. seoulinstcd = model.getValue('/root/baseinfo/dutinstinfo/dutinstinfolist/basecd');
  657. //서울성모병원의 경우 default로 소아청소년과제외체크
  658. //20090618 dhkim 서울성모병원의 경우 센터명을 보여주고
  659. if(seoulinstcd == getUserInfo('dutplceinstcd')){
  660. model.setValue('/root/main/leftref/deptexc', 'Y');
  661. grd_biztrgtman.colAttribute(grd_biztrgtman.colRef("centnm"), "visibility") = "visible";
  662. grd_ordrsrv.colAttribute(grd_ordrsrv.colRef("centnm"), "visibility") = "visible";
  663. grd_ordsper.colAttribute(grd_ordsper.colRef("centnm"), "visibility") = "visible";
  664. grd_injsper.colAttribute(grd_injsper.colRef("centnm"), "visibility") = "visible";
  665. //chk_deptexc.attribute("visiblity") = "visible";
  666. }
  667. //그 외 병원은 default 체크해제
  668. //타병원의경우 센터명을 숨김
  669. else{
  670. //빈센트병원인 경우 소아청소년과 디폴트 체크
  671. //supcdid : '02' : 의정부성모, '03' : 부천성가병원, '04' : 빈센트
  672. //2010.02.24 dhkim - 요청번호(10110) 주사실 로그인시 [소아청소년과 제외] check 되지 않도록 요청함
  673. uijbinstcd = model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '02']/cdid");//의정부
  674. bucinstcd = model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '03']/cdid");//부천
  675. vctinstcd = model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '04']/cdid");//빈센트
  676. yuidinstcd = model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '05']/cdid");//여의도
  677. if(vctinstcd == getUserInfo("dutplceinstcd")){
  678. model.setValue('/root/main/leftref/deptexc', 'Y');
  679. }else{
  680. model.setValue('/root/main/leftref/deptexc', '');
  681. }
  682. grd_biztrgtman.colAttribute(grd_biztrgtman.colRef("centnm"), "visibility") = "hidden";
  683. grd_ordrsrv.colAttribute(grd_ordrsrv.colRef("centnm"), "visibility") = "hidden";
  684. grd_ordsper.colAttribute(grd_ordsper.colRef("centnm"), "visibility") = "hidden";
  685. grd_injsper.colAttribute(grd_injsper.colRef("centnm"), "visibility") = "hidden";
  686. //chk_deptexc.attribute("visiblity") = "hidden";
  687. }
  688. model.refresh();
  689. }
  690. // 환자마다 체크하는 것이 아니라, 처음에만 미마감내역이 존재하면 조회를 blocking한다.
  691. // alert('로그인정보 : ' + dutplcecd + ', 주사실기준자료정보 : ' + injDeptcd);
  692. if(dutplcecd == injDeptcd){
  693. var isBlocking = fCheckEndYn();//20090911 dhkim 마감여부체크추가
  694. if(isBlocking){
  695. return;
  696. }
  697. }
  698. //부위기준자료조회
  699. fpartflaginfo();
  700. // 의료수익 Block제어 체크로직(Y : Blocking처리, N : skip)
  701. zbcfGetCodeList(new Array("P0453"), new Array("/root/init/P0453info"));
  702. model.setValue("/root/temp/endyn",model.getValue("/root/init/P0453info/P0453/cdid"));
  703. model.refresh();
  704. model.setValue("/root/main/leftref/exec", dutplcecd);
  705. model.setValue("/root/main/leftref/execnm",dutplcenm);
  706. model.removeNodeset("/root/main/biztrgtman/biztrgtmanlist");
  707. model.removeNodeset("/root/main/rghtlist/ordsperlist");
  708. model.removeNodeset("/root/main/rghtlist/injsperlist");
  709. model.removeNodeset("/root/main/prcpdetl/prcpdetllist");
  710. model.removeNodeset("/root/main/rghtlist/snwinfolist");
  711. model.removeNodeset("/root/main/rghtlist/ordrsrvlist");
  712. model.removeNodeset("/root/main/rghtlist/testrsrvlist");
  713. ipt_dd.value = getCurrentDate();// 기준일에 현재날짜(디폴트);
  714. //20090713 dhkim 업무기준 추가
  715. model.setValue('/root/main/leftref/workflag', '1');//처방일자
  716. //20150703 kya 사용자 환경설정 tab 세팅
  717. //right 적용일자 부여
  718. fSetUserTermInit();
  719. //alert("sdate = " +ipt_sdate.value);
  720. //20090318 dhkim 주사실명칭 하드코딩을 간호부서기준자료코드와 로그인사용자정보로 변경함
  721. if(dutplcecd == injDeptcd){
  722. //주사실사용자의 경우 당일업무대상자리스트 조회
  723. fbiztrgtman("biztrgt");
  724. }else{
  725. //주사실사용자가 아닌 경우 상단정보가 있을때에 오른쪽 환자정보 조회
  726. var node = getGlobalVariable("paminfo");
  727. setCSVToNode("/root/main/paminfo", node);
  728. var uppid = model.getValue("/root/main/paminfo/list/pid");
  729. if(uppid != ""){
  730. ipt_pid.value = model.getValue("/root/main/paminfo/list/pid");
  731. //20090629 dhkim 7월 고시변경으로 인한 리턴값 추가
  732. var rtn = fpidref("starts");
  733. if(!rtn){
  734. return;
  735. }
  736. fRghtDataList();
  737. }
  738. }
  739. //20090318 dhkim 주사실명칭 하드코딩 주석처리
  740. /*
  741. if(dutplcenm == "주사실"){
  742. fbiztrgtman("biztrgt");
  743. }else if(dutplcenm != "주사실"){
  744. var node = getGlobalVariable("paminfo");
  745. setCSVToNode("/root/main/paminfo", node);
  746. var uppid = model.getValue("/root/main/paminfo/list/pid");
  747. if(uppid != ""){
  748. ipt_pid.value = model.getValue("/root/main/paminfo/list/pid");
  749. fpidref("starts");
  750. fRghtDataList();
  751. }
  752. }
  753. */
  754. //20081218 dhkim
  755. //itc 서미영선생님 요구사항 -> 처방상세내역 그리드의 헤더에 체크박스표시
  756. //20130514 kya
  757. //재료가 조회리스트에 포함되면서, 일괄 체크박스 표시 없앰
  758. //grd_prcpdetl.fixedcellcheckbox(0, 1) = true;
  759. if(cmb_term.value == "0" ){
  760. ipt_sdate.disabled = false;
  761. ipt_edate.disabled = false;
  762. } else {
  763. var date2 = ipt_edate.value;
  764. var term = cmb_term.value;
  765. ipt_sdate.value = date2.toDate().getAddDate(-term,"D").getDateFormat("YYYYMMDD") ;
  766. ipt_sdate.disabled = true;
  767. ipt_edate.disabled = true;
  768. }
  769. }
  770. /**
  771. * @group :
  772. * @ver : 2007.05.03
  773. * 2009.02.25 dhkim 테스트중...통계건수 클릭시 이 펑션 타게 테스트중임(플래그statflag 추가)
  774. * @by : 신혁춘
  775. * @---------------------------------------------------
  776. * @type : function
  777. * @access : public
  778. * @desc : 당일업무대상자리스트
  779. * @param :
  780. * @return :
  781. * @---------------------------------------------------
  782. */
  783. function fbiztrgtman(flag, statflag){
  784. var flagshidden= model.getValue("/root/hidden/flags")
  785. var execnm = model.getValue("/root/main/leftref/execnm");
  786. var execcd = model.getValue("/root/main/leftref/exec");
  787. //20090713 dhkim 업무기준 조회조건추가
  788. var workflag = model.getValue("/root/main/leftref/workflag");
  789. //20090911 dhkim 마감일자
  790. var enddd = getCurrentDate().toDate('YYYYMMDD').getAddDate(-1, "D").getDateFormat('YYYYMMDD');
  791. //alert('fbiztrgtman 로그인정보 : ' + execcd + ', 주사실기준자료정보 : ' + injDeptcd);
  792. //20090318 dhkim 주사실명칭 하드코딩을 간호부서기준자료코드와 로그인사용자정보로 변경함
  793. if(flagshidden == "grd_ordsper" && execcd != injDeptcd){
  794. return;
  795. }
  796. //20090318 dhkim 주사실명칭 하드코딩을 간호부서기준자료코드와 로그인사용자정보로 변경함
  797. if(execcd != injDeptcd){
  798. //주사실 사용자가 아닐때
  799. return;
  800. }
  801. //20090318 dhkim 주사실명칭 하드코딩을 주석처리
  802. /*
  803. if(flagshidden == "grd_ordsper" && execnm != "주사실"){
  804. return;
  805. }
  806. if(execnm != "주사실"){
  807. return;
  808. }
  809. */
  810. //그리드 내용 클릭시
  811. if(flag == "biztrgt"){
  812. model.removeNodeset("/root/send");
  813. model.makeValue("/root/send/bizdd", model.getValue("/root/main/leftref/bizdd"));
  814. model.makeValue("/root/send/execflag", model.getValue("/root/main/leftref/execflag"));
  815. model.makeValue("/root/send/exec", model.getValue("/root/main/leftref/exec"));
  816. //20090911 dhkim 마감구분 Y로
  817. model.makeValue("/root/send/endblkyn", "Y");
  818. //model.makeValue("/root/send/endblkyn", model.getValue("/root/temp/endyn")); // 마감block여부구분
  819. //20090911 dhkim 마감일자추가
  820. model.makeValue("/root/send/enddd", enddd);//어제
  821. //20150413 kya 마감 부서
  822. model.makeValue("/root/send/exec", model.getValue("/root/main/leftref/exec") );//소아주사실 또는 중앙사실
  823. //20090713 dhkim 업무기준추가
  824. model.makeValue("/root/send/workflag",model.getValue("/root/main/leftref/workflag"));
  825. //20090225 dhkim
  826. //statflag 추가(통계건수 클릭시 이 펑션 타도록 변경)
  827. model.makeValue("/root/send/stats", statflag);
  828. //20090512 dhkim 소아청소년과제외옵션, 소아청소년과코드 추가
  829. var deptexc = model.getValue('/root/main/leftref/deptexc');
  830. model.makeValue('/root/send/deptexc', deptexc);
  831. if(deptexc == "Y"){
  832. model.makeValue('/root/send/deptexccd', model.getValue("/root/baseinfo/execinfo/execinfolist[basecd='Y']/supcdid"));//소아청소년과코드
  833. }
  834. if(submit("TRMNI00101")){
  835. //20090715 dhkim 그리드 업무일자 컬럼명 변경
  836. var workddstr = model.getValue('/root/main/leftref/workflag');
  837. var workflag = model.getValue('/root/main/leftref/workflag');
  838. if(workddstr == null || workddstr == ''){
  839. workddstr = "업무일자";
  840. }else{
  841. if(workflag == '1'){
  842. workddstr = "처방일자";
  843. }else if(workflag == '2'){
  844. workddstr = "예약일자";
  845. }else{
  846. workddstr = "업무일자";
  847. }
  848. }
  849. grd_biztrgtman.valueMatrix(0, grd_biztrgtman.colRef("workdd")) = workddstr;
  850. //20090303 dhkim
  851. //업무대상자리스트 수납상태에 따른 색깔변경
  852. fSetColorRcptStatPrcpList();
  853. var execnmchk = model.getValue("/root/main/leftref/execnm");
  854. var execcdchk = model.getValue("/root/main/leftref/exec");
  855. //alert('fbiztrgtman 로그인정보 : ' + execcdchk + ', 주사실기준자료정보 : ' + injDeptcd);
  856. //20090318 dhkim 주사실명칭 하드코딩을 간호부서기준자료코드와 로그인사용자정보로 변경함
  857. if(execcdchk == injDeptcd){
  858. //20090318 dhkim 주사실명칭 하드코딩을 주석처리
  859. /*
  860. if (execnmchk == "주사실"){
  861. */
  862. //**상단정보 초기화**//
  863. //delPatientInfos(); //화면상단정보 삭제
  864. //setGlobalVariable("paminfo", ""); //원무정보 reset//새로 업무대상자 리스트 조회시 다른 내용 삭제
  865. //if(getNodesetCount("/root/main/paminfo") > 0) {
  866. //model.removeNodeset("/root/main/rghtlist");
  867. //model.removeNodeset("/root/main/paminfo/list");
  868. //model.removeNodeset("/root/main/prcpdetl/prcpdetllist");
  869. //}
  870. tar_memo.value="";
  871. model.removeNodeset("/root/main/prcpdetl/prcpdetllist");
  872. model.removeNodeset("/root/main/rghtlist/ordrsrvlist");
  873. model.removeNodeset("/root/main/rghtlist/testrsrvlist");
  874. model.removeNodeset("/root/main/rghtlist/ordsperlist");
  875. model.removeNodeset("/root/main/rghtlist/injsperlist");
  876. model.removeNodeset("/root/main/rghtlist/snwinfolist");
  877. ipt_pid.value="";
  878. opt_hngnm.value="";
  879. opt_gndrage.value="";
  880. opt_rrgstno.value="";
  881. grd_snwinfo.refresh();
  882. tar_memo.refresh();
  883. grd_ordrsrv.refresh();
  884. grd_testrsrv.refresh();
  885. grd_ordsper.refresh();
  886. grd_injsper.refresh();
  887. ipt_pid.refresh();
  888. opt_hngnm.refresh();
  889. opt_gndrage.refresh();
  890. opt_rrgstno.refresh();
  891. }
  892. }
  893. }
  894. var isBlocking = fCheckEndYn();//20090911 dhkim 마감여부체크추가
  895. if(isBlocking){
  896. return;
  897. }
  898. //acting 처리후 다시 조회시
  899. if(flag=="acting"){
  900. model.makeValue("/root/send/bizdd",model.getValue("/root/main/leftref/bizdd"));
  901. model.makeValue("/root/send/execflag",model.getValue("/root/main/leftref/execflag"));
  902. model.makeValue("/root/send/exec",model.getValue("/root/main/leftref/exec"));
  903. model.makeValue("/root/send/endblkyn",model.getValue("/root/temp/endyn")); // 마감block여부구분
  904. //20090713 dhkim 업무기준추가
  905. model.makeValue("/root/send/workflag",model.getValue("/root/main/leftref/workflag"));
  906. if(submit("TRMNI00101")){
  907. //20090303 dhkim
  908. //업무대상자리스트 수납상태에 따른 색깔변경
  909. fSetColorRcptStatPrcpList();
  910. }
  911. }
  912. }
  913. /**
  914. * 20090911
  915. * dhkim
  916. * 업무대상자리스트 수납상태에 따른 색깔변경
  917. */
  918. function fCheckEndYn(){
  919. var bizdd = model.getValue('/root/main/leftref/bizdd');
  920. if(bizdd == null){
  921. messageBox('업무일자를 선택하십시오.', 'E');
  922. return false;
  923. }
  924. //진료정보테이블에서 가져와야함 ...
  925. var enddd;
  926. //var enddd = getCurrentDate().toDate('YYYYMMDD').getAddDate(-1, "D").getDateFormat('YYYYMMDD');
  927. model.removenode('/root/send');
  928. model.makeValue('/root/send/bizdd', bizdd);
  929. model.removenode('/root/enddayinfo');
  930. model.makenode('/root/enddayinfo');
  931. if(!submit('TRMNI00112')){
  932. messageBox('문제가 발생하여 전일마감일자조회를 실패하였습니다.', 'E');
  933. return false;
  934. }else{
  935. enddd = model.getValue('/root/enddayinfo/enddd');
  936. }
  937. var execnm = model.getValue("/root/main/leftref/execnm");
  938. model.removeNodeset("/root/send");
  939. model.makeValue("/root/send/endblkyn", "Y");
  940. model.makeValue("/root/send/enddd", enddd);//어제
  941. //20150413 kya 시행부서추가
  942. //model.makeValue("/root/send/exec", model.getValue("/root/main/leftref/exec"));//소아주사실 또는 중앙주사실
  943. //20170321 model.getValue("/root/main/leftref/exec") 값이 없이 전달됨을 확인하여 수정함.
  944. model.makeValue("/root/send/exec", dutplcecd );//소아주사실 또는 중앙주사실
  945. if(submit("TRMNI00111")){
  946. var endblockyn = 'Y';
  947. var endcount = model.getValue("/root/endinfo/endyninfo/endyn"); // 마감여부 check
  948. if (endblockyn == 'Y'){ // 공통Block여부가 'Y'인 경우만 체크되도록
  949. if (endcount >= 1) { // 전일 마감되지 않은 건수가 있을경우
  950. var endddstr = enddd.substring(0,4) + '-' + enddd.substring(4, 6) + '-' + enddd.substring(6);
  951. messageBox(endddstr + " 의" + execnm + " 마감이 되지 않았습니다. 마감후 다시 조회하십시오.", "E");
  952. model.removeNodeset("/root/main/biztrgtman/biztrgtmanlist");
  953. model.removeNodeset("/root/main/biztrgtman/statslist");
  954. model.removeNodeset("/root/main/rghtlist/ordsperlist");
  955. model.removeNodeset("/root/main/rghtlist/injsperlist");
  956. model.removeNodeset(" /root/main/prcpdetl/prcpdetllist");
  957. model.removeNodeset(" /root/main/rghtlist/snwinfolist");
  958. model.removeNodeset("/root/main/rghtlist/ordrsrvlist");
  959. model.removeNodeset("/root/main/rghtlist/testrsrvlist");
  960. model.refresh();
  961. setParameter("fromdd", enddd);
  962. setParameter("todd", enddd);
  963. setParameter("enddd", enddd);
  964. setParameter("termkind", "1");//조회구간 기준일자
  965. setParameter("execflag", "2");//시행여부 : 완료
  966. setParameter("endflag", "N");//마감구분 : 마감전
  967. setParameter("ispopup", "Y");//메인에서 띄웠는지여부
  968. // 주사실 미시행 내역조회 및 마감 화면 open
  969. modal("SMMNI00200","1","15","128");
  970. return true;
  971. }
  972. }
  973. }
  974. return false;
  975. }
  976. /**
  977. * 20090303
  978. * dhkim
  979. * 업무대상자리스트 수납상태에 따른 색깔변경
  980. */
  981. function fSetColorRcptStatPrcpList(){
  982. var rcptchk;
  983. for(var i = 1; i < grd_biztrgtman.rows; i++){
  984. rcptchk = model.getValue('/root/main/biztrgtman/biztrgtmanlist[' + i + ']/rcptchk');
  985. //선불수납 : R (default)
  986. if(rcptchk == 'R'){
  987. grd_biztrgtman.cellstyle("background-color", i, 0, i, 14) = '#ffffff';
  988. //break;
  989. }
  990. //당일결과 : Y (연두)
  991. else if(rcptchk == 'Y'){
  992. grd_biztrgtman.cellstyle("background-color", i, 0, i, 14) = '#ccffcc';
  993. //alert(rcptchk + ' ' + model.getValue('/root/main/biztrgtman/biztrgtmanlist[' + i + ']/hngnm'));
  994. }
  995. //후불(진찰료) : F (핑크)
  996. else if(rcptchk == 'F'){
  997. grd_biztrgtman.cellstyle("background-color", i, 0, i, 14) = '#ff99cc';
  998. }
  999. //수납VIP : V (노랑)
  1000. else if(rcptchk == 'V'){
  1001. grd_biztrgtman.cellstyle("background-color", i, 0, i, 14) = '#ffff00';
  1002. }
  1003. }
  1004. }
  1005. /**
  1006. * @group :
  1007. * @ver : 2007.05.04
  1008. * @by : 신혁춘
  1009. * @---------------------------------------------------
  1010. * @type : function
  1011. * @access : public
  1012. * @desc : 등록번호에 따른 환자정보 검색
  1013. * @param :
  1014. * @return :
  1015. * @---------------------------------------------------
  1016. */
  1017. function fpidref(flag){
  1018. var pid = ipt_pid.value;
  1019. if(pid == ""){
  1020. messageBox("환자를 지정하지", "E007")
  1021. return false;
  1022. }
  1023. model.removeNodeset("/root/send");
  1024. model.makeValue("/root/send/pid",pid);
  1025. if(submit("TRMNI00102")){
  1026. var hngnm=model.getValue("/root/main/rghtref/rghtreflist/hngnm");
  1027. //데이타가 없을시 이전 출력 내용 삭제.
  1028. if(hngnm==""){
  1029. opt_hngnm.value="";
  1030. opt_gndrage.value="";
  1031. opt_rrgstno.value="";
  1032. opt_hngnm.refresh();
  1033. opt_gndrage.refresh();
  1034. opt_rrgstno.refresh();
  1035. model.makeValue("/root/main/rghtref/rghtreflist/pid","");
  1036. return false;
  1037. }
  1038. //20090629 dhkim
  1039. //2009.07.01부터 보험료인상에 대한 주사실 액팅 시점의 수납 메시지 관련 원무인터페이스 호출추가
  1040. //주사, 혈액에 대해서만
  1041. model.removenodeset('/root/send');
  1042. model.removenodeset('/root/insurinfo');
  1043. model.makeNode('/root/insurinfo');
  1044. model.makeValue('/root/send/pid', pid);
  1045. model.makeValue('/root/send/instcd', getUserInfo('dutplceinstcd'));
  1046. if(flag == "new"){
  1047. if(submit('TRMNI00110')){
  1048. var prcprcptyn = model.getValue('/root/insurinfo/insurlist/prcprcptyn');
  1049. if(prcprcptyn == 'Y'){
  1050. messageBox('요율변경 대상자입니다.\r\n수납에서 정산할 수 있도록 안내 해 주시기 바랍니다.', 'E');
  1051. //return true;//blocking 제외시킴 20090701 (김병로팀장님)
  1052. }
  1053. }
  1054. fRghtDataList();
  1055. model.removeNodeset("/root/main/prcpdetl/prcpdetllist");
  1056. model.refresh();
  1057. }
  1058. }
  1059. return true;
  1060. // if(flag != "biztrgrman"){
  1061. // var execnmchk = model.getValue("/root/main/leftref/execnm")
  1062. // if (execnmchk == "주사실"){
  1063. // delPatientInfos(); //화면상단정보 삭제
  1064. // setGlobalVariable("paminfo", ""); //원무정보 reset//새로 업무대상자 리스트 조회시 다른 내용 삭제
  1065. // }
  1066. // }
  1067. // if(getNodesetCount("/root/main/paminfo") > 0) {
  1068. // model.removeNodeset("/root/main/rghtlist");
  1069. // model.removeNodeset("/root/main/paminfo/list");
  1070. // model.removeNodeset("/root/main/prcpdetl/prcpdetllist");
  1071. // }
  1072. }
  1073. /**
  1074. * @group :
  1075. * @ver : 2007.05.10
  1076. * @by : 신혁춘
  1077. * @---------------------------------------------------
  1078. * @type : function
  1079. * @access : public
  1080. * @desc : 업무대상자 리스트 클릭시..
  1081. * @param :
  1082. * @return :
  1083. * @---------------------------------------------------
  1084. */
  1085. function fBiztrgtClick(flag){
  1086. model.makeValue("/root/hidden/flags","grd_biztrgtman");
  1087. if (flag=="acting"){
  1088. var TRow = grd_biztrgtman.rows;
  1089. var chkpid = model.getValue("/root/send/pid")
  1090. var chkorddd = model.getValue("/root/send/orddd")
  1091. for (T=1; T<=TRow; T++){
  1092. var pid = model.getValue(xBizTrgtManListPath+"["+T+"]/pid");
  1093. var orddd = model.getValue(xBizTrgtManListPath+"["+T+"]/orddd");
  1094. if (pid == chkpid && orddd == chkorddd){
  1095. //alert('pid input node : ' +model.getValue('/root/main/rghtref/rghtreflist/pid'));
  1096. //alert('pid biz그리드 node : '+model.getValue(xBizTrgtManListPath+"["+T+"]/pid"));
  1097. if(model.getValue(xBizTrgtManListPath+"["+T+"]/pid") != ''){
  1098. model.setValue("/root/main/rghtref/rghtreflist/pid",model.getValue(xBizTrgtManListPath+"["+T+"]/pid"));
  1099. }
  1100. //alert('pid input node : ' +model.getValue('/root/main/rghtref/rghtreflist/pid'));
  1101. //오른쪽 환자 데이타 조회에서 등록번호 데이타 입력후 조회
  1102. //20090629 dhkim 7월 고시변경으로 인한 리턴값 추가
  1103. var rtn = fpidref();
  1104. if(!rtn){
  1105. return ;
  1106. }
  1107. grd_biztrgtman.row = T;
  1108. break;
  1109. }
  1110. var execnmchk = model.getValue("/root/main/leftref/execnm");
  1111. var execcdchk = model.getValue("/root/main/leftref/exec");
  1112. //alert('fBiztrgtClick 로그인정보 : ' + execcdchk + ', 주사실기준자료정보 : ' + injDeptcd);
  1113. //20090318 dhkim 주사실명칭 하드코딩을 간호부서기준자료코드와 로그인사용자정보로 변경함
  1114. if(execcdchk == injDeptcd){
  1115. //20090318 dhkim 주사실명칭 하드코딩을 주석처리
  1116. /*
  1117. if (execnmchk == "주사실"){
  1118. */
  1119. if (pid != chkpid && orddd != chkorddd){
  1120. if (T >= TRow){
  1121. //**상단정보 초기화**//
  1122. //delPatientInfos(); //화면상단정보 삭제
  1123. //setGlobalVariable("paminfo", ""); //원무정보 reset
  1124. //if(getNodesetCount("/root/main/paminfo") > 0) {
  1125. //model.removeNodeset("/root/main/paminfo/list");
  1126. //model.removeNodeset("/root/main/rghtlist/snwinfolist");
  1127. //}
  1128. tar_memo.value="";
  1129. model.removeNodeset("/root/main/rghtlist/ordrsrvlist");
  1130. model.removeNodeset("/root/main/rghtlist/testrsrvlist");
  1131. model.removeNodeset("/root/main/rghtlist/ordsperlist");
  1132. model.removeNodeset("/root/main/rghtlist/injsperlist");
  1133. model.removeNodeset("/root/main/rghtlist/snwinfolist");
  1134. ipt_pid.value="";
  1135. opt_hngnm.value="";
  1136. opt_gndrage.value="";
  1137. opt_rrgstno.value="";
  1138. grd_snwinfo.refresh();
  1139. tar_memo.refresh();
  1140. grd_ordrsrv.refresh();
  1141. grd_testrsrv.refresh();
  1142. grd_ordsper.refresh();
  1143. grd_injsper.refresh();
  1144. ipt_pid.refresh();
  1145. opt_hngnm.refresh();
  1146. opt_gndrage.refresh();
  1147. opt_rrgstno.refresh();
  1148. return;
  1149. }
  1150. }
  1151. }
  1152. }
  1153. }
  1154. if(grd_biztrgtman.row <= 0){
  1155. return;
  1156. }
  1157. if(flag!="acting"){
  1158. //화면상단 정보설정
  1159. var iRow = grd_biztrgtman.row;
  1160. var xBizTrgtPath = "/root/main/biztrgtman/biztrgtmanlist";
  1161. //20090303 dhkim 불필요한 상단정보 세팅 변경 (ordtype)
  1162. // var acptseqno = model.getValue(xBizTrgtPath+"["+iRow+"]/acptseqno");
  1163. // var ordtype = model.getValue(xBizTrgtPath+"["+iRow+"]/ordtype");
  1164. // var orgorddd = model.getValue(xBizTrgtPath+"["+iRow+"]/orgorddd");
  1165. var ordtype = 'O';
  1166. var pid = model.getValue(xBizTrgtPath+"["+iRow+"]/pid");
  1167. var orddd = model.getValue(xBizTrgtPath+"["+iRow+"]/orddd").substr(0, 8);
  1168. var cretno = model.getValue(xBizTrgtPath+"["+iRow+"]/cretno");
  1169. var instcd = model.getValue(xBizTrgtPath+"["+iRow+"]/instcd");
  1170. var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + '' + "▦" + '';
  1171. // var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + '' + "▦" + orgorddd;
  1172. // var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + acptseqno + "▦" + orgorddd;
  1173. setParameter("condparam", param);
  1174. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  1175. }
  1176. if (flag!="acting"){
  1177. var iRow = grd_biztrgtman.row;
  1178. model.setValue("/root/main/rghtref/rghtreflist/pid",model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid"));
  1179. //오른쪽 환자 데이타 조회에서 등록번호 데이타 입력후 조회
  1180. //20090629 dhkim 7월고시변경으로 인해 리턴값 추가
  1181. var rtn = fpidref("biztrgrman");
  1182. if(!rtn){
  1183. return;
  1184. }
  1185. grd_biztrgtman.row = iRow;
  1186. }
  1187. model.removeNodeset("/root/send");
  1188. model.makeValue("/root/send/bizdd",model.getValue("/root/main/leftref/bizdd"));
  1189. model.makeValue("/root/send/execflag",model.getValue("/root/main/leftref/execflag"));
  1190. model.makeValue("/root/send/exec",model.getValue("/root/main/leftref/exec"));
  1191. //20090716 dhkim 업무기준(처방일자, 예약일자) 추가
  1192. model.makeValue("/root/send/workflag",model.getValue("/root/main/leftref/workflag"));
  1193. // 2015.01.06 kya
  1194. // 속도 개선을 위해 환자선택될 때 마다 하는게 아니라, 전체 조회시에만 하도록 수정함
  1195. // //처방종류별 통계조회
  1196. // if(submit("TRMNI00107")){
  1197. // model.setValue("/root/main/biztrgtman/statslist/allseq", model.getValue("/root/init/stats/statslists/allseqs"));
  1198. // model.setValue("/root/main/biztrgtman/statslist/inj", model.getValue("/root/init/stats/statslists/injs"));
  1199. // model.setValue("/root/main/biztrgtman/statslist/prvn", model.getValue("/root/init/stats/statslists/prvns"));
  1200. // model.setValue("/root/main/biztrgtman/statslist/ant", model.getValue("/root/init/stats/statslists/ants"));
  1201. // model.setValue("/root/main/biztrgtman/statslist/blod", model.getValue("/root/init/stats/statslists/blods"));
  1202. // model.setValue("/root/main/biztrgtman/statslist/antprcpend", model.getValue("/root/init/stats/statslists/antprcpends"));
  1203. // model.setValue("/root/main/biztrgtman/statslist/antdelive", model.getValue("/root/init/stats/statslists/antdelives"));
  1204. // }
  1205. //오른쪽 환자정보 조회(상병, 메모, 진료예약정보, 검사예약정보, 진료내역, 미시행주사내역)
  1206. fRghtDataList();
  1207. //처방상세조회
  1208. var iRow = grd_biztrgtman.row;
  1209. model.removeNodeset("/root/send");
  1210. model.makeValue("/root/send/pid", model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid"));
  1211. model.makeValue("/root/send/drugdd", model.getValue(xBizTrgtManListPath+"["+iRow+"]/orddd"));
  1212. model.makeValue("/root/send/exec", model.getValue("/root/main/leftref/exec"));
  1213. //20090309 dhkim
  1214. //그리드구분자 추가 (당일업무대상자리스트클릭으로 조회시 : W, 진료내역클릭으로 조회시 : O)
  1215. model.makeValue("/root/send/grdflag", "W");
  1216. //2010.06.09 김달현 - colHidden에러 수정
  1217. var prcpNmColHidden = grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm"));
  1218. var prcpHngNmColHidden = grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm"));
  1219. if(submit("TRMNI00103")){
  1220. //2010.06.09 김달현 - colHidden 에러 수정
  1221. if(prcpNmColHidden == true && prcpHngNmColHidden == true){
  1222. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = false;
  1223. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = true;
  1224. }else if(prcpNmColHidden == true){
  1225. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = true;
  1226. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = false;
  1227. }else if(prcpHngNmColHidden == true){
  1228. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = false;
  1229. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = true;
  1230. }
  1231. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist";
  1232. grd_prcpdetl.rebuildStyle();
  1233. var Row = grd_prcpdetl.rows;
  1234. var mixchk = 0;
  1235. var rcptchk; //20090305 dhkim 후수납관련필드추가
  1236. //처방상태 값에 따른 처방상세내역 리스트에 상태값 을 나타내는 로직 시작
  1237. for(i=1; i < grd_prcpdetl.rows; i++){
  1238. var execdd = model.getValue(xPrcpDetlPath+"["+i+"]/execrid");
  1239. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat");
  1240. var execprcpstatcd = model.getValue(xPrcpDetlPath+"["+i+"]/execprcpstatcd");
  1241. var prcpclscd = model.getValue(xPrcpDetlPath+"["+i+"]/prcpclscd");
  1242. var drugno = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");
  1243. var cdnm = model.getValue(xPrcpDetlPath+"["+i+"]/cdnm");
  1244. var endyn = model.getValue(xPrcpDetlPath+"["+i+"]/endyn");
  1245. var etcprcpresncd = model.getValue(xPrcpDetlPath+"["+i+"]/etcprcpresncd"); // 수혈반납 및 폐기사유코드
  1246. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat"); // 성분제제상태
  1247. //20090305 dhkim 후수납관련필드추가
  1248. rcptchk = model.getValue(xPrcpDetlPath+"["+i+"]/rcptchk"); // 후수납상태
  1249. //20130220 kya 수납여부보여주기
  1250. grd_prcpdetl.isReadOnly(i, grd_prcpdetl.colRef("flag")) = false;
  1251. var rcptyn = model.getValue(xPrcpDetlPath+"["+i+"]/rcptyn"); // 수납유무
  1252. if ( rcptyn == "N" && rcptchk != "V" ) { // 미수납 이고 VIP가 아닌 경우
  1253. grd_prcpdetl.isReadOnly(i, grd_prcpdetl.colRef("flag")) = true;
  1254. }
  1255. //20130513 kya 재료일 경우 체크 선택안되도록함
  1256. if ( prcpclscd == "M2" ) { //재료일경우
  1257. grd_prcpdetl.isReadOnly(i, grd_prcpdetl.colRef("flag")) = true;
  1258. }
  1259. var printyn = model.getValue(xPrcpDetlPath+"["+i+"]/prtyn");
  1260. if(printyn == "Y" && execprcpstatcd != "610"){
  1261. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#FFFFCC';
  1262. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 20) = '#FFFFCC';//[20081125 dhkim] 투여속도추가로 col id 증가
  1263. grd_prcpdetl.cellstyle("background-color", i, 0, i, grd_prcpdetl.cols-1) = '#FFFFCC';//2010.06.04 김달현 - column추가로 마지막행까지 set으로 변경
  1264. }
  1265. //alert(drugno+'/'+execprcpstatcd+'/'+cdnm);
  1266. //20090305 dhkim
  1267. //항암 전송완료 상태로 보여주는 부분 후수납의 경우 230조건 제외할것
  1268. //후수납 : rcptchk값이 V, Y, F일때는 230조건 제외,
  1269. // rcptchk값이 R일때는 230조건
  1270. //20090312 dhkim vip환자의 경우는 수납여부 체크하지 않음
  1271. //20090313 dhkim vip환자와 당일선검사환자의 경우는 수납여부 체크하지 않음
  1272. //20090428 dhkim 후불 주석품
  1273. //alert('rcptchk: '+rcptchk + ' , execprcpstatcd:' + execprcpstatcd + ' ,drugno:' + drugno + ', cdnm:'+cdnm);
  1274. if(
  1275. (
  1276. (rcptchk == 'R' && execprcpstatcd == "230")
  1277. || (rcptchk == 'V')
  1278. || (rcptchk == 'Y')
  1279. || (rcptchk == 'F')
  1280. )
  1281. && drugno != "0"
  1282. && cdnm!="마약"
  1283. //20090617 dhkim 조제완료가 아닌 약
  1284. && execprcpstatcd != '310'
  1285. && execprcpstatcd != '315'
  1286. ){
  1287. //alert(rcptchk + ' ' + execprcpstatcd + ' ' + drugno);
  1288. grd_prcpdetl.textmatrix(i, 3) = 13; //전송완료
  1289. }
  1290. /*
  1291. if(drugno != "0" && execprcpstatcd == "230" && cdnm!="마약"){
  1292. grd_prcpdetl.textmatrix(i, 3) = 13 //전송완료
  1293. }
  1294. */
  1295. if(execprcpstatcd == "300"){
  1296. grd_prcpdetl.textmatrix(i, 3) = 1; //조제보류
  1297. }
  1298. if(execprcpstatcd == "310" || execprcpstatcd == "315" &&
  1299. (prcpclscd == "A7"
  1300. //20090310 dhkim 무균약추가
  1301. || prcpclscd == "A9")
  1302. ){
  1303. grd_prcpdetl.textmatrix(i, 3) = 2; //조제완료
  1304. var mixk = model.getValue(xPrcpDetlPath+"["+i+"]/mix");//mix번호
  1305. var actordddk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");//실시예약일자
  1306. var rsrvtmk = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm");//예약시간
  1307. var ordddk = model.getValue(xPrcpDetlPath+"["+i+"]/orddd");//진료일자
  1308. var drugnok = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");//투약번호
  1309. for (r=0; r < grd_prcpdetl.rows; r++){
  1310. var mixr = model.getValue(xPrcpDetlPath+"["+r+"]/mix");
  1311. var actordddr = model.getValue(xPrcpDetlPath+"["+r+"]/actorddd");
  1312. var rsrvtmr = model.getValue(xPrcpDetlPath+"["+r+"]/rsrvtm");
  1313. var ordddr = model.getValue(xPrcpDetlPath+"["+r+"]/orddd");
  1314. var drugnor = model.getValue(xPrcpDetlPath+"["+r+"]/drugno");
  1315. //alert('prcpcd:'+model.getValue(xPrcpDetlPath+"["+r+"]/prcpcd")+'mixk:' + mixk + ',mixr:'+mixr+',actordddk:'+actordddk+',actordddr:'+actordddr+',rsrvtmk:'+rsrvtmk+',rsrvtmr:'+rsrvtmr+',ordddk:'+ordddk+',ordddr:'+ordddr+'drugnok:'+drugnok+',drugnor:'+drugnor);
  1316. //20090617 dhkim
  1317. //항암과 믹스시킨 일반주사약의 경우 조제완료쳐지면 상태값을 조제완료로 변경
  1318. if(mixk == mixr && actordddr == actordddk && rsrvtmr == rsrvtmk && ordddr == ordddk && drugnor == drugnok && drugnok != 0){
  1319. grd_prcpdetl.textmatrix(r, 3) = 2; //조제완료
  1320. }
  1321. }
  1322. }
  1323. if(execprcpstatcd == "500" || execprcpstatcd == "505" || execprcpstatcd == "510"){
  1324. grd_prcpdetl.textmatrix(i, 3) = 11; //접수
  1325. }
  1326. if(execprcpstatcd == "520" || execprcpstatcd == "525"){
  1327. grd_prcpdetl.textmatrix(i, 3) = 4; //준비완료
  1328. }
  1329. if(execprcpstatcd == "540"){
  1330. grd_prcpdetl.textmatrix(i, 3) = 7; //반납의뢰
  1331. }
  1332. if(execprcpstatcd == "550"){
  1333. grd_prcpdetl.textmatrix(i, 3) = 8; //반납완료
  1334. }
  1335. if(execprcpstatcd == "530"){
  1336. if (blodcomstat == "8") {
  1337. grd_prcpdetl.textmatrix(i, 3) = 14; //잔여폐기
  1338. }
  1339. else {
  1340. grd_prcpdetl.textmatrix(i, 3) = 5; //불출
  1341. }
  1342. }
  1343. if(execprcpstatcd == "560"){
  1344. if (etcprcpresncd == "07" || etcprcpresncd == "12") {
  1345. grd_prcpdetl.textmatrix(i, 3) = 14; //잔여폐기
  1346. }
  1347. else {
  1348. grd_prcpdetl.textmatrix(i, 3) = 9; //폐기의뢰
  1349. }
  1350. }
  1351. if(execprcpstatcd == "570"){
  1352. grd_prcpdetl.textmatrix(i, 3) = 10; //폐기완료
  1353. }
  1354. if(execprcpstatcd == "320"){
  1355. grd_prcpdetl.textmatrix(i, 3) = 5; //출고
  1356. }
  1357. if(prcpclscd =="B4"){
  1358. if(execprcpstatcd == "610"){
  1359. grd_prcpdetl.textmatrix(i, 3) = 12; //실시완료
  1360. }
  1361. }else{
  1362. if(execprcpstatcd == "610"){
  1363. grd_prcpdetl.textmatrix(i, 3) = 6; //시행완료
  1364. }
  1365. }
  1366. var mix = model.getValue(xPrcpDetlPath+"["+i+"]/mix");
  1367. var actorddd = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  1368. var rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm");
  1369. var orddd = model.getValue(xPrcpDetlPath+"["+i+"]/orddd");
  1370. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  1371. var rgstdd = model.getValue(xPrcpDetlPath+"["+i+"]/rgstdd");
  1372. var rgsttm = model.getValue(xPrcpDetlPath+"["+i+"]/rgsttm");
  1373. //20090622 dhkim
  1374. if(orddd.length > 8){
  1375. orddd = orddd.substring(0, 8);
  1376. }
  1377. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  1378. var stat = grd_prcpdetl.textmatrix(i, 3);
  1379. if(prcpclscd == "A7"){
  1380. for (k=0; k<Row; k++){
  1381. var mixs = model.getValue(xPrcpDetlPath+"["+k+"]/mix");
  1382. var actorddds = model.getValue(xPrcpDetlPath+"["+k+"]/actorddd");
  1383. var rsrvtms = model.getValue(xPrcpDetlPath+"["+k+"]/rsrvtm");
  1384. var orddds = model.getValue(xPrcpDetlPath+"["+k+"]/orddd");
  1385. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  1386. var _rgstdd = model.getValue(xPrcpDetlPath+"["+k+"]/rgstdd");
  1387. var _rgsttm = model.getValue(xPrcpDetlPath+"["+k+"]/rgsttm");
  1388. //alert('mix : '+mix + ', mixs:' + mixs + ', actorddd: ' + actorddd+ ', actorddds:' + actorddds +', rsrvtm:' + rsrvtm + ', rsrvtms:' + rsrvtms + ', orddd:' + orddd + ', orddds : ' + orddds);
  1389. //20090622 dhkim
  1390. if(orddds.length > 8){
  1391. orddds = orddds.substring(0, 8);
  1392. }
  1393. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  1394. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd && rgstdd == _rgstdd && rgsttm == _rgsttm){
  1395. // 특조전송시 mix번호 같을때 항암으로 보여주는 로직..
  1396. grd_prcpdetl.textmatrix(k, 2) = 'A7';
  1397. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  1398. grd_prcpdetl.textmatrix(k, 3) = stat;
  1399. }
  1400. }
  1401. }
  1402. //20090526 dhkim 무균믹스추가
  1403. if(prcpclscd == "A9"){
  1404. for (k=0; k<Row; k++){
  1405. var mixs = model.getValue(xPrcpDetlPath+"["+k+"]/mix");
  1406. var actorddds = model.getValue(xPrcpDetlPath+"["+k+"]/actorddd");
  1407. var rsrvtms = model.getValue(xPrcpDetlPath+"["+k+"]/rsrvtm");
  1408. var orddds = model.getValue(xPrcpDetlPath+"["+k+"]/orddd");
  1409. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  1410. var _rgstdd = model.getValue(xPrcpDetlPath+"["+k+"]/rgstdd");
  1411. var _rgsttm = model.getValue(xPrcpDetlPath+"["+k+"]/rgsttm");
  1412. if(orddds.length > 8){
  1413. orddds = orddds.substring(0, 8);
  1414. }
  1415. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  1416. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd && rgstdd == _rgstdd && rgsttm == _rgsttm){
  1417. // 특조전송시 mix번호 같을때 항암으로 보여주는 로직..
  1418. grd_prcpdetl.textmatrix(k, 2) = 'A9';
  1419. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  1420. grd_prcpdetl.textmatrix(k, 3) = stat;
  1421. }
  1422. }
  1423. }
  1424. // alert(model.getValue('root/main/prcpdetl/prcpdetllist[' + i + ']/stat'));
  1425. //20090529 dhkim
  1426. //혈액 상태중 반납의뢰, 통폐기의뢰, 잔여폐기의뢰, 출고, 접수, 준비완료, 반납완료, 통폐기완료, 잔여폐기완료 상태값 정의
  1427. if(prcpclscd == 'B4'){
  1428. grd_prcpdetl.textmatrix(i, 3) = model.getValue(xPrcpDetlPath + "[" + i + "]/bloodst");
  1429. }
  1430. // 마감처방 색깔표시 되도록
  1431. if (endyn == "Y") {
  1432. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#ffcccc';
  1433. grd_prcpdetl.cellstyle("background-color", i, 0, i, grd_prcpdetl.cols-1) = '#ffcccc';//[20081125 dhkim] 투여속도추가로 col id 증가
  1434. }
  1435. } //상태 값을 나타내는 로직 끝
  1436. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1437. model.copyNode("/root/hidden/main", "/root/main");
  1438. }
  1439. }
  1440. /**
  1441. * @group :
  1442. * @ver : 2007.05.11
  1443. * @by : 신혁춘
  1444. * @---------------------------------------------------
  1445. * @type : function
  1446. * @access : public
  1447. * @desc : 오른쪽 조회시
  1448. * @param :
  1449. * @return :
  1450. * @---------------------------------------------------
  1451. */
  1452. function fRghtDataList(){
  1453. //20090911 dhkim 주사실 사용자는 미마감내역이 존재하면 조회를 blocking한다.
  1454. //if(dutplcecd == injDeptcd){
  1455. // var isBlocking = fCheckEndYn();//20090911 dhkim 마감여부체크추가
  1456. // if(isBlocking){
  1457. // return;
  1458. // }
  1459. //}
  1460. var xBizTrgtPath = "/root/main/biztrgtman/biztrgtmanlist";
  1461. var hngnm = model.getValue("/root/main/rghtref/rghtreflist/hngnm");
  1462. if(hngnm==""){
  1463. messageBox("환자가 조회되지", "E007")
  1464. return;
  1465. }
  1466. var iRow = grd_biztrgtman.row;
  1467. if ( iRow <= 0 ) {
  1468. var bizorddd = model.getValue("/root/main/leftref/sdate");
  1469. } else {
  1470. var bizorddd = model.getValue( xBizTrgtPath + "["+iRow+"]/orddd");
  1471. }
  1472. var allterm = model.getValue("/root/main/allterm");
  1473. var cretno = model.getValue(xBizTrgtPath+"["+iRow+"]/cretno");
  1474. var orddd = model.getValue("/root/main/leftref/bizdd");
  1475. model.removeNodeset("/root/send");
  1476. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  1477. model.makeValue("/root/send/allterm",allterm);
  1478. model.makeValue("/root/send/orddd",orddd);
  1479. model.makeValue("/root/send/bizorddd",bizorddd);
  1480. model.makeValue("/root/send/cretno",cretno);
  1481. model.makeValue("/root/send/exec",model.getValue("/root/main/leftref/exec"));
  1482. //조회기간을 추가함 20150528 by kya
  1483. model.makeValue("/root/send/sdate",model.getValue("/root/main/leftref/sdate"));
  1484. model.makeValue("/root/send/edate",model.getValue("/root/main/leftref/edate"));
  1485. //alert("sdate = " + model.getValue("/root/main/leftref/sdate"));
  1486. //상병, 메모, 진료예약, 검사예약, 진료내역, 미시행주사내역 조회
  1487. submit("TRMNI00104");
  1488. var seqno = model.getValue("/root/main/rghtlist/memolist/seqno")
  1489. if(seqno == ""){
  1490. //메모 데이타 없을시 이전 데이타 삭제
  1491. tar_memo.value="";
  1492. tar_memo.refresh();
  1493. }
  1494. var memocnts=model.getValue("/root/main/rghtlist/memolist/memocnts");
  1495. if(memocnts == "" || memocnts == null){
  1496. model.makeValue("/root/main/rghtlist/memolist/memocnts","");
  1497. tar_memo.value = "";
  1498. tar_memo.refresh();
  1499. }
  1500. }
  1501. /**
  1502. * @group :
  1503. * @ver : 2007.05.14
  1504. * @by : 신혁춘
  1505. * @---------------------------------------------------
  1506. * @type : function
  1507. * @access : public
  1508. * @desc : 오른쪽 메모
  1509. * @param :
  1510. * @return :
  1511. * @---------------------------------------------------
  1512. */
  1513. function fMemoInsert(){
  1514. var memocnts = tar_memo.value;
  1515. var seqno = model.getValue("/root/main/rghtlist/memolist/seqno")
  1516. var hngnm = model.getValue("/root/main/rghtref/rghtreflist/hngnm");
  1517. //메모 데이타 조회시 환자 선택 여부 파악
  1518. if(hngnm==""){
  1519. messageBox("환자가 선택되지", "E007")
  1520. return;
  1521. }
  1522. //20091109 dhkim 메모 널처리
  1523. if(memocnts == null || memocnts == ''){
  1524. memocnts = ' ';
  1525. }
  1526. model.removeNodeset("/root/send");
  1527. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  1528. model.makeValue("/root/send/memocnts", memocnts);
  1529. model.makeValue("/root/send/seqno",model.getValue("/root/main/rghtlist/memolist/seqno"));
  1530. if(submit("TXMNI00101")){
  1531. fRghtDataList();
  1532. }
  1533. }
  1534. /**
  1535. * 20090713 dhkim
  1536. * 처방전출력취소 기능 추가
  1537. */
  1538. function fPrintCancel(){
  1539. var oRow = grd_ordsper.row;
  1540. model.removenode("/root/send");
  1541. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  1542. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  1543. model.makeValue("/root/send/prtyn", "C");//출력취소
  1544. //20090713 dhkim 출력여부추가
  1545. if(submit("TXMNI00105")){
  1546. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  1547. fbiztrgtman("acting");
  1548. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+oRow+"]/pid")){
  1549. //처방 상세내역
  1550. fBiztrgtClick("acting");
  1551. }else if (oRow != ""){
  1552. grd_ordsper.row = oRow;
  1553. fordsper();
  1554. }
  1555. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1556. model.copyNode("/root/hidden/main", "/root/main");
  1557. }
  1558. }
  1559. /**
  1560. * @ver : 2008.12.09
  1561. * @by : dhkim
  1562. * @desc : fRexpert()의 기능중 출력후 액팅하는 부분의 호출을 facting에서 fPrcpActing으로 변경
  1563. */
  1564. function fRexpertNew(){
  1565. var mpsacting = model.getValue("/root/main/mpsacting");
  1566. model.removenode("/root/send");
  1567. var Row = grd_prcpdetl.rows;
  1568. var jRow=grd_prcpdetl.row;
  1569. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist";
  1570. var xrexportPath = "/root/send/report/for";
  1571. var xordsperPath = "/root/main/rghtlist/ordsperlist";
  1572. //처방전출력 연결 시 환자 선택 여부 파악
  1573. if(Row==1){
  1574. messageBox("환자가 선택되지", "E007");
  1575. return;
  1576. }
  1577. var chek = 0;
  1578. var kRow = 0;
  1579. for (i=1; i<Row; i++){
  1580. chek = chek + grd_prcpdetl.textmatrix(i,1);
  1581. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  1582. kRow = kRow +","+ i;
  1583. }
  1584. }
  1585. if(chek==0){
  1586. messageBox("하나 이상의 처방내역을", "C002");
  1587. return;
  1588. }
  1589. var kRows = kRow.split(",");
  1590. if(mpsacting == "1"){
  1591. for(i=1; i<kRows.length; i++){
  1592. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat");
  1593. if (stat == "6"){
  1594. messageBox("이미 실시완료된 처방은 처방전+Acting을", "E001");
  1595. return;
  1596. }
  1597. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  1598. //20081219 dhkim
  1599. //항암제는 조제완료가 아니면 처방전+acting불가
  1600. if(prcpclscd == 'A7' && stat != '2'){
  1601. messageBox("항암제는 조제완료 상태일 때에만 처방전+Acting을", "E001");
  1602. return;
  1603. }
  1604. ////시작
  1605. ////20151019 후불수납이고, 예약일자가 오늘날짜가 아닌경우 안내메시지를 띄움
  1606. //var rcptyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/rcptyn");
  1607. //var actorddd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1608. //var execchk = getCurrentDate();
  1609. //if ( rcptyn == "V" ) {
  1610. // if ( execchk.substr(0,8) != actorddd ) {
  1611. // messageBox("후불수납은 예약일자가 당일 아니면 Acting을 실시", "E001");
  1612. // return;
  1613. // }
  1614. //}
  1615. ////끝.
  1616. //20081219 dhkim
  1617. //혈액은 처방전+acting불가(조회만가능함..) 서미영쌤 확인후 지워버려
  1618. if(prcpclscd == "B4"){
  1619. if(stat != "5"){
  1620. messageBox("불출되지 않은 혈액은 처방전+Acting을", "E001");
  1621. return;
  1622. }
  1623. }
  1624. }
  1625. }
  1626. model.makeNode("/root/send/report");
  1627. model.copyNode("/root/send/report", "/root/main/prcpdetl");
  1628. //for(i=1; i<kRows.length; i++){
  1629. // model.makeValue(xrexportPath+"["+i+"]","");
  1630. // model.copyNode(xrexportPath+"["+i+"]", xPrcpDetlPath+"["+i+"]")
  1631. //}
  1632. model.makeValue("/root/send/report/only/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  1633. model.makeValue("/root/send/report/only/hngnm",model.getValue("/root/main/rghtref/rghtreflist/hngnm"));
  1634. model.makeValue("/root/send/report/only/gndrage",model.getValue("/root/main/rghtref/rghtreflist/gndrage"));
  1635. //20090909 dhkim 주민번호필드추가
  1636. model.makeValue("/root/send/report/only/rrgstno",model.getValue("/root/main/rghtref/rghtreflist/rrgstno"));
  1637. var flags = model.getValue("/root/hidden/flags");
  1638. if(flags == "grd_ordsper"){
  1639. var oRow = grd_ordsper.row;
  1640. model.makeValue("/root/send/report/only/depthngnm",model.getValue(xordsperPath+"["+oRow+"]/depthngnm"));
  1641. model.makeValue("/root/send/report/only/usernm",model.getValue(xordsperPath+"["+oRow+"]/usernm"));
  1642. }else if (flags == "grd_biztrgtman"){
  1643. var iRow = grd_biztrgtman.row;
  1644. model.makeValue("/root/send/report/only/depthngnm",model.getValue(xBizTrgtManListPath+"["+iRow+"]/depthngnm"));
  1645. model.makeValue("/root/send/report/only/usernm",model.getValue(xBizTrgtManListPath+"["+iRow+"]/usernm"));
  1646. }
  1647. model.makeValue("/root/send/report/only/termhngnm",model.getValue("/root/main/rghtlist/snwinfolist/termhngnm"));
  1648. var printday = getCurrentDate();
  1649. var printtime = getCurrentTime();
  1650. model.makeValue("/root/send/report/only/printdaytime",(printday+printtime));
  1651. model.makeValue("/root/send/report/only/mpsacting",model.getValue("/root/main/mpsacting"));
  1652. exeReportPreview("RPMNI00100", "XMLSTR" , "" , "" , "true" , "", "", "", "", "true");
  1653. if(mpsacting == "1"){
  1654. //처방전 출력후 액팅 부분 펑션변경(facting() -> fPrcpActing())
  1655. fPrcpActing('Y');
  1656. }else{
  1657. var oRow = grd_ordsper.row;
  1658. model.removenode("/root/send");
  1659. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  1660. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  1661. //20090713 dhkim 출력여부추가
  1662. model.makeValue("/root/send/prtyn", "Y");//출력
  1663. if(submit("TXMNI00105")){
  1664. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  1665. fbiztrgtman("acting");
  1666. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  1667. //처방 상세내역
  1668. fBiztrgtClick("acting");
  1669. }else if (oRow != ""){
  1670. grd_ordsper.row = oRow;
  1671. fordsper();
  1672. }
  1673. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1674. model.copyNode("/root/hidden/main", "/root/main");
  1675. return ;
  1676. }
  1677. }
  1678. }
  1679. /**
  1680. * @ver : 2008.12.09
  1681. * @by : dhkim
  1682. * @desc : 특조전송전 변경내용저장을 호출하는 부분을 변경함으로 특조전송펑션 신규생성
  1683. * : SMS전송 기능 추가 (2010.04.20 by 안도영 - 여의도에 한함 - TXMNI00103 submit 실행시 같이 실행)
  1684. */
  1685. function fPrcpAnticncr(){
  1686. var oRow = grd_ordsper.row;
  1687. var iRow = grd_biztrgtman.row;
  1688. model.removenode("/root/send");
  1689. var Row = grd_prcpdetl.rows;
  1690. var jRow=grd_prcpdetl.row;
  1691. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist" ;
  1692. var xordsperPath = "/root/main/rghtlist/ordsperlist";
  1693. var xhiddenPrcpDetlPath = "/root/hidden/main/prcpdetl/prcpdetllist";
  1694. //처방전출력 연결 시 환자 선택 여부 파악
  1695. if(Row==1){
  1696. messageBox("환자가 선택되지", "E007");
  1697. return;
  1698. }
  1699. var chek = 0;
  1700. var kRow = 0;
  1701. //20090519 dhkim 의정부, 성가 주사실 요청사항
  1702. //[주사실 특조전송시 예약시간 필수입력사항 해제건]
  1703. //의정부, 성가 주사실 요청사항으로 특조전송시 예약시간을 입력하지 않고
  1704. //환자가 오면 바로 특조전송을 하는 프로세스로 현재 예약시간이 필수로 되어있는 프로그램
  1705. //사용시 약제와 의사소통상 혼돈이 있음.(의정부itc 이유진, 성가itc조수진 요청사항)
  1706. //1) 예약시간 필수입력사항으로 되어 있는 것을 필수조건에서 제외한다.
  1707. //2) 현재 서울성모는 예약시간을 넣고 있으므로 업무상 예약시간을 입력하는 업무는 프로그램과 상관없이 현행대로 유지한다.
  1708. for (i=1; i<Row; i++){
  1709. chek = chek + grd_prcpdetl.textmatrix(i,1);
  1710. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  1711. kRow = kRow +","+ i;
  1712. var rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm");
  1713. //20090519 dhkim 주석처리
  1714. //if(rsrvtm == "000000"){
  1715. // messageBox("예약시간을", "C002");
  1716. // return;
  1717. //}
  1718. }
  1719. }
  1720. if(chek==0){
  1721. messageBox("하나 이상의 처방을", "C002");//처방이 한개도 체크되지 않았을때
  1722. return;
  1723. }
  1724. var kRows = kRow.split(",");
  1725. var kchek = 0;
  1726. var prcpclscd ;
  1727. //20090309 dhkim
  1728. //무균조제 약품 전송 추가
  1729. for(i=1; i<kRows.length; i++){
  1730. prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  1731. //if(prcpclscd == "A7"){
  1732. //20150327 kya 임상항암 'A5' 추가
  1733. //if(prcpclscd == "A7" || prcpclscd == "A9"){// A7:항암, A9:무균
  1734. if(prcpclscd == "A7" || prcpclscd == "A9" || prcpclscd == "A5" ){// A7:항암, A9:무균, A5:임상항암
  1735. kchek = kchek + 1;
  1736. }
  1737. }
  1738. if(kchek == 0){
  1739. //20090309 dhkim
  1740. //무균조제 약품 전송 추가
  1741. messageBox("하나 이상의 항암/무균을", "C002");
  1742. //messageBox("하나 이상의 항암/무균을", "C002");
  1743. return;
  1744. }
  1745. for(i=1; i<kRows.length; i++){
  1746. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat");
  1747. if (stat == "6"){
  1748. messageBox("Acting을 실시한 처방은 특조전송을", "E001");
  1749. return;
  1750. }
  1751. var drugnochk = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  1752. if (drugnochk != "0"){
  1753. messageBox("한번 특조전송을 실시한 처방은 특조전송을", "E001");
  1754. return;
  1755. }
  1756. }
  1757. var chkd = 0;
  1758. var stat, flag, prcpclscdnow;
  1759. for(j=1; j<Row; j++){
  1760. stat = model.getValue(xPrcpDetlPath+"["+j+"]/stat"); //처방상태
  1761. flag = model.getValue(xPrcpDetlPath+"["+j+"]/flag"); //checkbox 선택
  1762. prcpclscdnow = model.getValue(xPrcpDetlPath+"["+j+"]/prcpclscdnow");//처방종류
  1763. //if ((flag == "0" || flag == "") && prcpclscdnow == "A7" && stat == ""){
  1764. //20090309 dhkim
  1765. //무균조제 약품 전송 추가
  1766. //A7:항암, A9:무균
  1767. if ((flag == "0" || flag == "") && (prcpclscdnow == "A7" || prcpclscdnow == "A9") && stat == ""){
  1768. chkd = chkd + 1;
  1769. }
  1770. }
  1771. if(chkd > 0){
  1772. if(messageBox("전송할 처방이 모두 선택되지 않았습니다. 특조전송을 실시 하겠습니까?", "Q") != 6) return;
  1773. }
  1774. var a = 0;
  1775. for (i=1; i<kRows.length; i++){
  1776. if(i == 1){
  1777. a = i;
  1778. }else{
  1779. a = i - 1;
  1780. }
  1781. if(model.getValue(xhiddenPrcpDetlPath+"["+kRows[a]+"]/actorddd") != model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd")){
  1782. var doublek = "dd";
  1783. var drugno = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");
  1784. if(drugno != "0"){
  1785. //messageBox("항암 전송후 예약일자 변경을", "E001")
  1786. //return;
  1787. }
  1788. }
  1789. }
  1790. var kRows = kRow.split(",");
  1791. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1792. if(kRows.length >= 3){
  1793. for (i=1; i<kRows.length; i++){
  1794. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1795. var drugno = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  1796. if(drugno != "0"){
  1797. //messageBox("항암 전송후 예약일자 변경을", "E001")
  1798. //return;
  1799. }
  1800. }
  1801. }
  1802. var lRow = 0;
  1803. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1804. for (i=1; i<Row; i++){
  1805. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  1806. if(chkactorddd == chkactorddd1){
  1807. lRow = lRow +","+ i;
  1808. }
  1809. }
  1810. var lRows = lRow.split(",");
  1811. for (i=1; i<Row; i++){
  1812. var actordddchk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  1813. var actordddchk1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  1814. if (actordddchk != actordddchk1){
  1815. if (kRow != lRow){
  1816. messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  1817. return;
  1818. }
  1819. }
  1820. }
  1821. var vewactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1822. var vewactorddd4 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1823. for (i=1; i<kRows.length; i++){
  1824. var vewactorddd2 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1825. var vewactorddd3 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1826. if(vewactorddd1 != vewactorddd2 && vewactorddd4==vewactorddd3){
  1827. messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  1828. return;
  1829. }
  1830. }
  1831. var prcpflag = ""; // 항암전송 체크
  1832. var msgflag = ""; // SMS전송 체크
  1833. if(doublek != "dd"){
  1834. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  1835. var flag = "Change";
  1836. var pid = model.getValue("/root/main/rghtref/rghtreflist/pid");
  1837. var actorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1838. var smsflag = fSMSFlag(yuidinstcd); // 20100420 by 안도영 추가
  1839. var patnm = model.getValue("/root/main/rghtref/rghtreflist/hngnm"); // 20100421 by 안도영 추가
  1840. model.removeNodeset("/root/send");
  1841. model.removeNodeset("/root/savechangeinfo");
  1842. model.makeNode("/root/savechangeinfo");
  1843. model.makeValue("/root/send/pid", pid);
  1844. model.makeValue("/root/send/drugdd", actorddd);
  1845. model.makeValue("/root/send/ordtm", model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  1846. model.makeValue("/root/send/acting", flag);
  1847. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd);
  1848. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  1849. model.makeValue("/root/send/anticncr/pid", pid);
  1850. model.makeValue("/root/send/smsflag", smsflag); // 20100420 by 안도영 추가
  1851. model.makeValue("/root/send/patnm", patnm); // 20100421 by 안도영 추가
  1852. model.makeValue("/root/send/dutplcecd", dutplcecd); // 20100422 by 안도영 추가
  1853. // 주사예약변경시 외래예약변경IF 파라미터 추가_20100217 dhkim 파라미터 누락내역 추가
  1854. model.makeValue("/root/send/insukind" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/insukind" ));
  1855. model.makeValue("/root/send/suppkind" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/suppkind" ));
  1856. model.makeValue("/root/send/insucd" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/insucd" ));
  1857. model.makeValue("/root/send/suppkindresn" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/suppkindresn"));
  1858. model.makeValue("/root/send/ownbflag" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ownbflag" ));
  1859. model.makeValue("/root/send/spclcd" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/spclcd" ));
  1860. model.makeValue("/root/send/rareobstflag" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/rareobstflag"));
  1861. //변경내용저장실행
  1862. if(submit("TXMNI00108")){
  1863. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  1864. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  1865. //alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  1866. //20090318 dhkim messageBox로 변경
  1867. messageBox(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'), "E");
  1868. return ;//2010.02.17 dhkim
  1869. }
  1870. //특조전송실행
  1871. if(submit("TXMNI00103")){
  1872. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1873. model.copyNode("/root/hidden/main", "/root/main");
  1874. //20100426 안도영
  1875. //alert("prcpflag: "+model.getValue("/root/temp/transchk/prcpflag"));
  1876. //alert("instcd: "+model.getValue("/root/temp/transchk/instcd"));
  1877. if(model.getValue("/root/temp/transchk/prcpflag")=="Y"){
  1878. prcpflag = "Y";
  1879. model.makeValue("/root/send/instcd", model.getValue("/root/temp/transchk/instcd"));
  1880. if(submit("TXMNI00109")){
  1881. //alert("msgflag: "+model.getValue("/root/temp/transchk/msgflag"));
  1882. if(model.getValue("/root/temp/transchk/msgflag")=="Y"){
  1883. msgflag = "Y";
  1884. }else{
  1885. msgflag = "N";
  1886. }
  1887. }else{
  1888. msgflag = "N";
  1889. }
  1890. }else{
  1891. prcpflag = "N";
  1892. }
  1893. if("Y"==prcpflag&&"Y"==msgflag){
  1894. messageBox("특조전송이", "I002");
  1895. }else if("Y"==prcpflag&&"N"==msgflag){
  1896. messageBox("특조전송은 완료되었으나, SMS전송은", "E009");
  1897. }
  1898. model.makeValue("/root/send/pid",model.getValue("/root/send/anticncr/pid"));
  1899. //20091015 dhkim 액팅후 무조건 당일업무대상자리스트 refresh와 등록번호 새로세팅 후 처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  1900. //업무대상리스트 다시조회
  1901. fbiztrgtman("acting");
  1902. //등록번호 새로세팅
  1903. model.setValue("/root/main/rghtref/rghtreflist/pid", pid);
  1904. model.refresh();
  1905. //처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  1906. grd_ordsper.row = oRow;
  1907. fordsper(actorddd);
  1908. /*
  1909. //업무대상리스트 조회
  1910. fbiztrgtman("acting");
  1911. if(model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  1912. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  1913. grd_biztrgtman.row = iRow;
  1914. //처방 상세내역
  1915. fBiztrgtClick("acting");
  1916. }else if (oRow != ""){
  1917. grd_ordsper.row = oRow;
  1918. fordsper();
  1919. }
  1920. */
  1921. }
  1922. }
  1923. }else{
  1924. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  1925. var flag = "Change";
  1926. var pid = model.getValue("/root/main/rghtref/rghtreflist/pid");
  1927. var actorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1928. var smsflag = fSMSFlag(yuidinstcd); // 20100420 by 안도영 추가
  1929. var patnm = model.getValue("/root/main/rghtref/rghtreflist/hngnm"); // 20100421 by 안도영 추가
  1930. model.removeNodeset("/root/send");
  1931. model.removeNodeset("/root/savechangeinfo");
  1932. model.makeNode("/root/savechangeinfo");
  1933. model.makeValue("/root/send/pid", pid);
  1934. model.makeValue("/root/send/drugdd", actorddd);
  1935. model.makeValue("/root/send/ordtm", model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  1936. model.makeValue("/root/send/acting", flag);
  1937. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd);
  1938. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  1939. model.makeValue("/root/send/anticncr/pid", pid);
  1940. model.makeValue("/root/send/smsflag", smsflag); // 20100420 by 안도영 추가
  1941. model.makeValue("/root/send/patnm", patnm); // 20100421 by 안도영 추가
  1942. model.makeValue("/root/send/dutplcecd", dutplcecd); // 20100422 by 안도영 추가
  1943. // 주사예약변경시 외래예약변경IF 파라미터 추가_20100217 dhkim 파라미터누락부분 추가
  1944. model.makeValue("/root/send/insukind" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/insukind" ));
  1945. model.makeValue("/root/send/suppkind" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/suppkind" ));
  1946. model.makeValue("/root/send/insucd" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/insucd" ));
  1947. model.makeValue("/root/send/suppkindresn" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/suppkindresn"));
  1948. model.makeValue("/root/send/ownbflag" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ownbflag" ));
  1949. model.makeValue("/root/send/spclcd" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/spclcd" ));
  1950. model.makeValue("/root/send/rareobstflag" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/rareobstflag"));
  1951. //변경내용저장실행
  1952. if(submit("TXMNI00108")){
  1953. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  1954. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  1955. //20090318 dhkim messageBox로 변경
  1956. //alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  1957. messageBox(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'), "E");
  1958. return ;//2010.02.17 dhkim
  1959. }
  1960. //특조전송실행
  1961. if(submit("TXMNI00103")){
  1962. model.makeValue("/root/send/pid",model.getValue("/root/send/anticncr/pid"));
  1963. //20091015 dhkim 액팅후 무조건 당일업무대상자리스트 refresh와 등록번호 새로세팅 후 처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  1964. //업무대상리스트 다시조회
  1965. fbiztrgtman("acting");
  1966. //등록번호 새로세팅
  1967. model.setValue("/root/main/rghtref/rghtreflist/pid", pid);
  1968. model.refresh();
  1969. //처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  1970. grd_ordsper.row = oRow;
  1971. fordsper(actorddd);
  1972. /*
  1973. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  1974. fbiztrgtman("acting");
  1975. if(model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  1976. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  1977. grd_biztrgtman.row = iRow;
  1978. //처방 상세내역
  1979. fBiztrgtClick("acting");
  1980. }else if (oRow != ""){
  1981. grd_ordsper.row = oRow;
  1982. fordsper();
  1983. }
  1984. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1985. model.copyNode("/root/hidden/main", "/root/main");
  1986. */
  1987. }
  1988. //20100426 안도영
  1989. //alert("prcpflag: "+model.getValue("/root/temp/transchk/prcpflag"));
  1990. //alert("instcd: "+model.getValue("/root/temp/transchk/instcd"));
  1991. if(model.getValue("/root/temp/transchk/prcpflag")=="Y"){
  1992. prcpflag = "Y";
  1993. model.makeValue("/root/send/instcd", model.getValue("/root/temp/transchk/instcd"));
  1994. if(submit("TXMNI00109")){
  1995. //alert("msgflag: "+model.getValue("/root/temp/transchk/msgflag"));
  1996. if(model.getValue("/root/temp/transchk/msgflag")=="Y"){
  1997. msgflag = "Y";
  1998. }else{
  1999. msgflag = "N";
  2000. }
  2001. }else{
  2002. msgflag = "N";
  2003. }
  2004. }else{
  2005. prcpflag = "N";
  2006. }
  2007. if("Y"==prcpflag&&"Y"==msgflag){
  2008. messageBox("특조전송이", "I002");
  2009. }else if("Y"==prcpflag&&"N"==msgflag){
  2010. messageBox("특조전송은 완료되었으나, SMS전송은", "E009");
  2011. }
  2012. }
  2013. }
  2014. }
  2015. /**
  2016. * @ver : 2010.04.19
  2017. * @by : 안도영
  2018. * @desc : SMS전송을 위한 여의도 병원 체크
  2019. */
  2020. function fSMSFlag(yuidinstcd){
  2021. var SMSFlag="";
  2022. if(yuidinstcd == getUserInfo("dutplceinstcd")){
  2023. // 여의도 기관만 적용 (특조전송시 SMS 전송)
  2024. SMSFlag = "Y";
  2025. }else{
  2026. SMSFlag = "N";
  2027. }
  2028. return SMSFlag;
  2029. }
  2030. /**
  2031. * @ver : 2008.12.09
  2032. * @by : dhkim
  2033. * @desc : facting에 액팅, 변경내용저장, 특조전송 기능을
  2034. * 변경내용저장만 수행하도록 찢음
  2035. */
  2036. function fPrcpChangeSave(){
  2037. var iRow = grd_biztrgtman.row;
  2038. var oRow = grd_ordsper.row;
  2039. var xhiddenPrcpDetlPath = "/root/hidden/main/prcpdetl/prcpdetllist"
  2040. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  2041. //var prcpno = grd_prcpdetl.textmatrix(iRow, 17);
  2042. var Row = grd_prcpdetl.rows;
  2043. //20091015 dhkim 등록번호 변수저장
  2044. var pid = model.getValue("/root/main/rghtref/rghtreflist/pid");
  2045. //변경내용저장 시 환자 선택 여부 파악
  2046. if(Row==1){
  2047. messageBox("환자가 선택되지", "E007")
  2048. return;
  2049. }
  2050. var kRow = 0;
  2051. var chek = 0;
  2052. for (i=1; i<Row; i++){
  2053. chek = chek + grd_prcpdetl.textmatrix(i,1);
  2054. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  2055. kRow = kRow +","+ i
  2056. }
  2057. }
  2058. if(chek==0){
  2059. messageBox("하나 이상의 처방내역을", "C002")
  2060. return;
  2061. }
  2062. var kRows = kRow.split(",");
  2063. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2064. var chkactorddd1, drugno;
  2065. //20081223 dhkim
  2066. //약번호의 경우 항암 뿐 아니라 마약의 경우에도 따지 므로 메세지를 구분할 필요가 있음
  2067. var cdnm;
  2068. if(kRows.length >= 3){
  2069. for (i=1; i<kRows.length; i++){
  2070. chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2071. drugno = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  2072. //20081223 dhkim
  2073. cdnm = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/cdnm");
  2074. if(drugno != "0"){
  2075. if(cdnm == "마약"){
  2076. messageBox("마약 불출신청 접수 후 예약일자 변경을", "E001");
  2077. }else{
  2078. messageBox("항암 전송후 예약일자 변경을", "E001");
  2079. }
  2080. return;
  2081. }
  2082. if(chkactorddd != chkactorddd1){
  2083. messageBox("초기 동일한 예약일자가 아니면 저장", "E001");
  2084. return;
  2085. }
  2086. }
  2087. }
  2088. var lRow = 0;
  2089. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2090. for (i=1; i<Row; i++){
  2091. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  2092. //20150116 kya 재료제외
  2093. //if(chkactorddd == chkactorddd1) {
  2094. var nowprcpclscd = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/prcpclscd");
  2095. if ( (chkactorddd == chkactorddd1) && ( nowprcpclscd != "M2" )) {
  2096. lRow = lRow +","+ i
  2097. }
  2098. }
  2099. var lRows = lRow.split(",");
  2100. for (i=1; i<Row; i++){
  2101. var actordddchk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  2102. var actordddchk1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  2103. // alert("actordddchk = " + actordddchk + ",actordddchk1=" + actordddchk1 +", kRow =" + kRow +", lRow = " + lRow);
  2104. //20160512 kya 수정
  2105. if (actordddchk != actordddchk1){
  2106. if (kRow != lRow){
  2107. messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  2108. return;
  2109. }
  2110. }
  2111. }
  2112. var vewactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2113. for (i=1; i<kRows.length; i++){
  2114. var vewactorddd2 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2115. if(vewactorddd1 != vewactorddd2){
  2116. messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  2117. return;
  2118. }
  2119. }
  2120. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  2121. var actorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2122. model.removeNodeset("/root/send");
  2123. model.removeNodeset("/root/savechangeinfo");
  2124. model.makeNode("/root/savechangeinfo");
  2125. model.makeValue("/root/send/pid", pid);
  2126. model.makeValue("/root/send/drugdd", actorddd);
  2127. model.makeValue("/root/send/ordtm", model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  2128. // 주사예약변경시 외래예약변경IF 파라미터 추가_20090709
  2129. model.makeValue("/root/send/insukind" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/insukind" ));
  2130. model.makeValue("/root/send/suppkind" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/suppkind" ));
  2131. model.makeValue("/root/send/insucd" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/insucd" ));
  2132. model.makeValue("/root/send/suppkindresn" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/suppkindresn"));
  2133. model.makeValue("/root/send/ownbflag" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ownbflag" ));
  2134. model.makeValue("/root/send/spclcd" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/spclcd" ));
  2135. model.makeValue("/root/send/rareobstflag" , model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/rareobstflag"));
  2136. model.makeValue("/root/send/acting", "Change");
  2137. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd);
  2138. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  2139. if(submit("TXMNI00108")){
  2140. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  2141. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  2142. //20090318 dhkim messageBox로 변경
  2143. //alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  2144. messageBox(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'), "E");
  2145. }
  2146. //20091015 dhkim 액팅후 무조건 당일업무대상자리스트 refresh와 등록번호 새로세팅 후 처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  2147. //업무대상리스트 다시조회
  2148. fbiztrgtman("acting");
  2149. //등록번호 새로세팅
  2150. model.setValue("/root/main/rghtref/rghtreflist/pid", pid);
  2151. model.refresh();
  2152. //처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  2153. grd_ordsper.row = oRow;
  2154. fordsper(actorddd);
  2155. /*
  2156. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  2157. fbiztrgtman("acting");
  2158. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  2159. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  2160. grd_biztrgtman.row = iRow;
  2161. //처방 상세내역
  2162. fBiztrgtClick("acting");
  2163. }else if (oRow != ""){
  2164. grd_ordsper.row = oRow;
  2165. fordsper();
  2166. }
  2167. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  2168. model.copyNode("/root/hidden/main", "/root/main");
  2169. */
  2170. }
  2171. }
  2172. /**
  2173. * @ver : 2008.12.09
  2174. * @by : dhkim
  2175. * @desc : facting에 액팅, 변경내용저장, 특조전송 기능을
  2176. * 액팅취소만 수행하도록 찢음
  2177. */
  2178. function fPrcpActingCancel(){
  2179. var iRow = grd_biztrgtman.row;
  2180. var Row = grd_prcpdetl.rows;
  2181. var jRow=grd_prcpdetl.row;
  2182. var oRow = grd_ordsper.row;
  2183. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist" ;
  2184. //20091015 dhkim 등록번호 변수저장
  2185. var pid = model.getValue("/root/main/rghtref/rghtreflist/pid");
  2186. //acting체크 시 환자 선택 여부 파악
  2187. if(Row==1){
  2188. messageBox("환자가 선택되지", "E007");
  2189. return;
  2190. }
  2191. var chek = 0;
  2192. var kRow = 0;
  2193. for (i=1; i<Row; i++){
  2194. chek = chek + grd_prcpdetl.textmatrix(i,1);
  2195. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  2196. kRow = kRow +","+ i;
  2197. }
  2198. }
  2199. if(chek==0){
  2200. messageBox("하나 이상의 처방내역을", "C002");
  2201. return;
  2202. }
  2203. var kRows = kRow.split(",");
  2204. for(i=1; i<kRows.length; i++){
  2205. var exec = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execdd");
  2206. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  2207. var execchk = getCurrentDate();
  2208. var execord = exec.substr(0,8);
  2209. var endyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/endyn");
  2210. var act50yn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/act50yn");
  2211. var dracptyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptyn");
  2212. var dracptdt = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptdt");
  2213. //20091108_SMY추가
  2214. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '04' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdid")){
  2215. var mig = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/mig");
  2216. var prcpcd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpcd");
  2217. var migflag = prcpcd.substr(0,1);
  2218. if(migflag == '_'){
  2219. messageBox("전환된 데이터는 Acting취소할 수 없습니다.(처방코드 : "+ prcpcd + " )", "E");
  2220. return;
  2221. }
  2222. }
  2223. if(exec == "-"){
  2224. messageBox("Acting을 실시하지 않은 곳은 Acting 취소을", "E001");
  2225. return;
  2226. }
  2227. if(execord != execchk){
  2228. messageBox("Acting을 실시한 일자와 현재 일자가 동일하지 않은 곳은 Acting 취소을", "E001");
  2229. return;
  2230. }
  2231. if(prcpclscd == "B4"){
  2232. messageBox("혈액은 Acting 취소을 ", "E001");
  2233. return;
  2234. }
  2235. // 마감된 처방을 Acting취소시 마감반환사유 프로세스 입력되도록
  2236. if (endyn == "Y") {
  2237. messageBox("마감된 Acting처방을 취소하려면 반환사유를 ", "C001");
  2238. model.makeValue("/root/main/cond/list/prcpdd",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpdd"));
  2239. model.makeValue("/root/main/cond/list/prcpno",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpno"));
  2240. model.makeValue("/root/main/cond/list/prcphistno",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcphistno"));
  2241. model.makeValue("/root/main/cond/list/execprcpno",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execprcpno"));
  2242. model.makeValue("/root/main/cond/list/instcd",getUserInfo("dutplceinstcd"));
  2243. model.makeValue("/root/main/cond/list/ioflag","O");
  2244. // 반환사유 팝업
  2245. modal("SPPAS03000", "2", "100", "100", "SPPAS03000", "root/main/cond", "root/target", "left:100; top:100; width:400; height:400; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;", false);
  2246. }
  2247. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat");
  2248. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  2249. var cdnm = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/cdnm");
  2250. } // for end
  2251. if(kRows.length >= 3){
  2252. var chkactorddd = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2253. for (i=1; i<kRows.length; i++){
  2254. var chkactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2255. if(chkactorddd != chkactorddd1){
  2256. messageBox("ACting은 동일한 예약일자가 아니면 Acting실시", "E001");
  2257. return;
  2258. }
  2259. }
  2260. }
  2261. var ordddlong = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/orddd");
  2262. var orddd = ordddlong.substring(0,8);
  2263. model.removeNodeset("/root/send");
  2264. model.makeValue("/root/send/pid",pid);
  2265. if(submit("TRMNI00108")){
  2266. if(model.getValue("/root/init/acting/chking/actingchk") > 0){
  2267. messageBox("현재 입원 환자는 Acting을", "E001");
  2268. return;
  2269. }
  2270. }
  2271. var actorddd = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2272. model.removeNodeset("/root/send");
  2273. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2274. model.makeValue("/root/send/orddd",orddd);
  2275. model.makeValue("/root/send/drugdd", actorddd);
  2276. model.makeValue("/root/send/acting", "N");//20081209 dhkim 액팅취소
  2277. model.makeValue("/root/send/prcpexecdeptcd", ""); //액팅취소시에는 처방접수부서로 update한다.
  2278. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  2279. model.makeValue("/root/send/endyn",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/endyn")); // 마감여부
  2280. model.makeValue("/root/send/act50yn",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/act50yn")); //
  2281. model.makeValue("/root/send/dracptyn",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptyn")); //
  2282. model.makeValue("/root/send/dracptdt",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptdt")); //
  2283. //빈센트 병원의 경우 마이그레이션 데이터는 수익계산 인터페이스 호출하지 않음_20091027_SMY추가
  2284. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '04' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdid")){
  2285. model.makeValue("/root/send/instflag", 'vincent');
  2286. }
  2287. //20081209 dhkim 액팅취소 호출
  2288. if(submit("TXMNI00107")){
  2289. //20091015 dhkim 액팅후 무조건 당일업무대상자리스트 refresh와 등록번호 새로세팅 후 처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  2290. //업무대상리스트 다시조회
  2291. fbiztrgtman("acting");
  2292. //등록번호 새로세팅
  2293. model.setValue("/root/main/rghtref/rghtreflist/pid", pid);
  2294. model.refresh();
  2295. //처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  2296. grd_ordsper.row = oRow;
  2297. fordsper(actorddd);
  2298. /*
  2299. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  2300. fbiztrgtman("acting");
  2301. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  2302. //처방 상세내역
  2303. fBiztrgtClick("acting");
  2304. }else if (oRow != ""){
  2305. grd_ordsper.row = oRow;
  2306. fordsper();
  2307. }
  2308. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  2309. model.copyNode("/root/hidden/main", "/root/main");
  2310. */
  2311. }
  2312. }
  2313. /**
  2314. * @ver : 2008.12.09
  2315. * @by : dhkim
  2316. * @desc : facting에 액팅, 변경내용저장, 특조전송 기능을
  2317. * 액팅만 수행하도록 찢음
  2318. */
  2319. function fPrcpActing(prtyn){
  2320. var iRow = grd_biztrgtman.row;
  2321. var Row = grd_prcpdetl.rows;
  2322. var jRow=grd_prcpdetl.row;
  2323. var oRow = grd_ordsper.row;
  2324. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist";
  2325. //acting채크 시 환자 선택 여부 파악
  2326. if(Row==1){
  2327. messageBox("환자가 선택되지", "E007");
  2328. return;
  2329. }
  2330. var chek = 0;
  2331. var kRow = 0;
  2332. for (i=1; i<Row; i++){
  2333. chek = chek + grd_prcpdetl.textmatrix(i,1);
  2334. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  2335. kRow = kRow +","+ i;
  2336. }
  2337. }
  2338. if(chek==0){
  2339. messageBox("하나 이상의 처방내역을", "C002");
  2340. return;
  2341. }
  2342. var kRows = kRow.split(",");
  2343. for(i=1; i<kRows.length; i++){
  2344. var exec = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execdd");
  2345. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  2346. var execchk = getCurrentDate();
  2347. var execord = exec.substr(0,8);
  2348. var endyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/endyn");
  2349. var act50yn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/act50yn");
  2350. var dracptyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptyn");
  2351. var dracptdt = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptdt");
  2352. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat");
  2353. //20091108_SMY추가
  2354. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '04' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdid")){
  2355. var mig = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/mig");
  2356. var prcpcd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpcd");
  2357. var migflag = prcpcd.substr(0,1);
  2358. if(migflag == '_'){
  2359. messageBox("전환된 데이터는 Acting할 수 없습니다.(처방코드 : "+ prcpcd + " )", "E");
  2360. return;
  2361. }
  2362. }
  2363. ////시작
  2364. //20160229 by kya , 예약일자를 당일로 변경한 후, 액팅하도록 알림메시지 줌
  2365. var actorddd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2366. var rcptyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/rcptyn");
  2367. //alert(" execchk.substr(0,8) = " + execchk.substr(0,8));
  2368. //alert(" actorddd = " + actorddd );
  2369. if ( execchk.substr(0,8) < actorddd ) {
  2370. messageBox("예약일자가 미래입니다. 당일로 변경저장 후에 Acting을 실시하기 바랍니다.", "E");
  2371. return;
  2372. }
  2373. // //끝.
  2374. // Acting버튼 클릭시
  2375. //alert("prcpclscd = " + prcpclscd );
  2376. //20161219 임상항암 + 조제완료 + 실시일자일 경우, Acting 모듈 시행합니다.
  2377. if( prcpclscd == "A7" && stat == "2" && exec != "-") {
  2378. } else {
  2379. if(exec != "-"){
  2380. messageBox("Acting을 실시한 곳은 다시 Acting을", "E001");
  2381. return;
  2382. }
  2383. }
  2384. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  2385. var cdnm = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/cdnm");
  2386. if(prcpclscd == "B4"){
  2387. messageBox("혈액은 수혈 기록을 통해서만 Acting을 할 수 있습니다.", "E");
  2388. return;
  2389. }
  2390. //20141014 kya 항암제 + 조제완료 => 실시완료됨
  2391. if(prcpclscd == "A7"){ //항암
  2392. if(stat != "2"){ //조제완료가 아니면
  2393. messageBox("조제완료 되지 않은 항암제는 Acting을", "E001");
  2394. return;
  2395. }
  2396. }
  2397. //20150320 kya 임상항암도 항암제와 동일하게
  2398. if(prcpclscd == "A5"){ //임상항암
  2399. if(stat != "2"){ //조제완료가 아니면
  2400. messageBox("조제완료 되지 않은 항암제는 Acting을", "E001");
  2401. return;
  2402. }
  2403. }
  2404. //20090313 dhkim 무균제 추가
  2405. if(prcpclscd == "A9"){
  2406. if(stat != "2"){
  2407. messageBox("조제완료 되지 않은 무균제는 Acting을", "E001");
  2408. return;
  2409. }
  2410. }
  2411. if(cdnm == "마약"){
  2412. /*2012.11.16 by kya 막음
  2413. if(stat != "5" ){ //불출
  2414. messageBox("불출 되지 않은 마약은 Acting을", "E001");
  2415. return;
  2416. }
  2417. */
  2418. //2012.11.16 by kya 부서확인 추가
  2419. if (stat != "15" ) { //부서확인
  2420. messageBox("부서확인 되지 않은 마약은 Acting을", "E001");
  2421. return;
  2422. }
  2423. }
  2424. } // for end
  2425. if(kRows.length >= 3){
  2426. var chkactorddd = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2427. for (i=1; i<kRows.length; i++){
  2428. var chkactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2429. if(chkactorddd != chkactorddd1){
  2430. messageBox("ACting은 동일한 예약일자가 아니면 Acting실시", "E001");
  2431. return;
  2432. }
  2433. }
  2434. }
  2435. //20091015 dhkim 등록번호 변수저장
  2436. var pid = model.getValue("/root/main/rghtref/rghtreflist/pid");
  2437. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  2438. var ordddlong = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/orddd");
  2439. var orddd = ordddlong.substring(0,8);
  2440. model.removeNodeset("/root/send");
  2441. model.makeValue("/root/send/pid", pid);
  2442. if(submit("TRMNI00108")){
  2443. if(model.getValue("/root/init/acting/chking/actingchk") > 0){
  2444. messageBox("현재 입원 환자는 Acting을", "E001");
  2445. return;
  2446. }
  2447. }
  2448. //20141201 by kya acting + 주사라벨 동시
  2449. //start
  2450. var injlacting = model.getValue("/root/main/injlacting");
  2451. if ( injlacting == "1")
  2452. {
  2453. if ( rcptyn != "V" ) { //20151105 후불환자인경우, 라벨동시출력에서 제외함.
  2454. //alert("주사라벨시작");
  2455. fPrintINJLabelNew();
  2456. }
  2457. }
  2458. //end
  2459. model.removeNodeset("/root/send");
  2460. model.makeValue("/root/send/pid", pid);
  2461. model.makeValue("/root/send/orddd", orddd);
  2462. model.makeValue("/root/send/drugdd", actorddd);
  2463. model.makeValue("/root/send/acting", "Y");
  2464. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd);
  2465. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  2466. model.makeValue("/root/send/endyn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/endyn")); // 마감여부
  2467. model.makeValue("/root/send/act50yn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/act50yn")); //
  2468. model.makeValue("/root/send/dracptyn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptyn")); //
  2469. model.makeValue("/root/send/dracptdt", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptdt")); //
  2470. //빈센트 병원의 경우 마이그레이션 데이터는 수익계산 인터페이스 호출하지 않음_20091027_SMY추가
  2471. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '04' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdid")){
  2472. model.makeValue("/root/send/instflag", 'vincent');
  2473. }
  2474. //20090713 dhkim 출력여부추가
  2475. if(prtyn == null){
  2476. prtyn = 'N';
  2477. }
  2478. model.makeValue("/root/send/prtyn", prtyn);
  2479. //20081209 dhkim submission도 분리함
  2480. if(submit("TXMNI00106")){
  2481. //20091015 dhkim 액팅후 무조건 당일업무대상자리스트 refresh와 등록번호 새로세팅 후 처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  2482. //업무대상리스트 다시조회
  2483. fbiztrgtman("acting");
  2484. //등록번호 새로세팅
  2485. model.setValue("/root/main/rghtref/rghtreflist/pid", pid);
  2486. model.refresh();
  2487. //처방상세내역 재조회(진료내역 더블클릭과 동일이벤트)
  2488. grd_ordsper.row = oRow;
  2489. fordsper(actorddd);
  2490. /*
  2491. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  2492. //처방 상세내역
  2493. fBiztrgtClick("acting");
  2494. }else if (oRow != ""){
  2495. grd_ordsper.row = oRow;
  2496. fordsper();
  2497. }
  2498. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  2499. model.copyNode("/root/hidden/main", "/root/main");
  2500. */
  2501. }
  2502. }
  2503. /**
  2504. * @group :
  2505. * @ver : 2007.05.16
  2506. * @by : 신혁춘
  2507. * @---------------------------------------------------
  2508. * @type : function
  2509. * @access : public
  2510. * @desc : 예약일자 이전 날자 채크
  2511. * @param :
  2512. * @return :
  2513. * @---------------------------------------------------
  2514. */
  2515. function rsrvdd(){
  2516. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist";
  2517. var xPrcpDetlBKPath = "/root/hidden/main/prcpdetl/prcpdetllist";
  2518. var sDetlGrupRow = grd_prcpdetl.row;
  2519. var sDetlGrupBKRow = 0;
  2520. var chkdd = model.getValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/flag");
  2521. var setcordflag = model.getValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/etcordflag"); // 원무예약구분
  2522. var sprcpclscdnow = model.getValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/prcpclscdnow"); // 구분
  2523. //alert(setcordflag + ":"+ sprcpclscdnow);
  2524. //alert(setcordflag);
  2525. //Acting 실시 후 일자 변경인지 파악한다.
  2526. //var exec = grd_prcpdetl.textmatrix(sDetlGrupRow, 18);
  2527. //var exec = grd_prcpdetl.textmatrix(sDetlGrupRow, 19);//[20081125 dhkim] 투여속도추가로 col id 증가
  2528. var exec = grd_prcpdetl.textmatrix(sDetlGrupRow, grd_prcpdetl.colRef("execdd"));//2010.06.04 김달현 - column추가로 colnm참조로 변경
  2529. if(chkdd == "0" || chkdd ==null){
  2530. messageBox("예약일자는 선택을 안하면 변경", "E001");
  2531. model.setValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/actorddd",model.getValue(xPrcpDetlBKPath+"["+sDetlGrupRow+"]/actorddd"));
  2532. return;
  2533. }
  2534. if(exec != "-"){
  2535. messageBox("Acting 실시후 예약일자 선택", "E001");
  2536. model.setValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/actorddd",model.getValue(xPrcpDetlBKPath+"["+sDetlGrupRow+"]/actorddd"));
  2537. return;
  2538. }
  2539. // 진료비100%인 경우는 예약일자 변경못하도록 수정
  2540. /*
  2541. if (setcordflag == "-") {
  2542. messageBox("처방일자와 예약일자가 같은 처방은 예약일자 수정을", "E001");
  2543. model.setValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/actorddd",model.getValue(xPrcpDetlBKPath+"["+sDetlGrupRow+"]/actorddd"));
  2544. return;
  2545. }
  2546. */
  2547. //현제 일자 에서 선택한 일자가 이전 날자인지 아닌지 파악한다.
  2548. var nowdate = getCurrentDate()
  2549. if(model.getValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/actorddd") < nowdate){
  2550. messageBox("예약일자는 현재일 이전일자로 선택", "E001");
  2551. model.setValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/actorddd",model.getValue(xPrcpDetlBKPath+"["+sDetlGrupRow+"]/actorddd"));
  2552. //model.setValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/flag","0");
  2553. //frsrvtm("15");
  2554. //frsrvtm("16");//[20081125 dhkim] 투여속도추가로 col id 증가
  2555. frsrvtm(grd_prcpdetl.colRef("actorddd"));//2010.06.04 김달현 - 그리드 col의 추가로 colnm참조로 변경함
  2556. return;
  2557. }
  2558. //model.setValue(xPrcpDetlPath+"["+sDetlGrupRow+"]/flag","1");
  2559. //frsrvtm("15");
  2560. //frsrvtm("16");//[20081125 dhkim] 투여속도추가로 col id 증가
  2561. frsrvtm(grd_prcpdetl.colRef("actorddd"));//2010.06.04 김달현 - 그리드 col의 추가로 colnm참조로 변경함
  2562. }
  2563. /**
  2564. * @group :
  2565. * @ver : 2007.05.22
  2566. * @by : 신혁춘
  2567. * @---------------------------------------------------
  2568. * @type : function
  2569. * @access : public
  2570. * @desc : 처방전 acting chekbox 클릭시
  2571. * @param :
  2572. * @return :
  2573. * @---------------------------------------------------
  2574. */
  2575. function fMpsActing(){
  2576. var mpsacting = checkbox3.value;
  2577. if(mpsacting=="1"){
  2578. button11.disabled = true;
  2579. }else if(mpsacting==""){
  2580. button11.disabled = false;
  2581. }
  2582. }
  2583. /**
  2584. * @group :
  2585. * @ver : 2014.11.27
  2586. * @by : 권영애
  2587. * @---------------------------------------------------
  2588. * @type : function
  2589. * @access : public
  2590. * @desc : 주사라벨 acting chekbox 클릭시
  2591. * @param :
  2592. * @return :
  2593. * @---------------------------------------------------
  2594. */
  2595. function fINJLActing(){
  2596. var injlacting = checkbox1.value;
  2597. if(injlacting =="1"){
  2598. button11.disabled = true;
  2599. }else if(injlacting ==""){
  2600. button11.disabled = false;
  2601. }
  2602. }
  2603. /**
  2604. * @group :
  2605. * @ver : 2007.05.29
  2606. * @by : 신혁춘
  2607. * @---------------------------------------------------
  2608. * @type : function
  2609. * @access : public
  2610. * @desc : 각각의 통계 부분 클릭시
  2611. * @param :
  2612. * @return :
  2613. * @---------------------------------------------------
  2614. */
  2615. function fStats(flag){
  2616. var execnm = model.getValue("/root/main/leftref/execnm");
  2617. var execcd = model.getValue("/root/main/leftref/exec");
  2618. //alert('fStats 로그인정보 : ' + execcd + ', 주사실기준자료정보 : ' + injDeptcd);
  2619. //20090318 dhkim 주사실명칭 하드코딩을 간호부서기준자료코드와 로그인사용자정보로 변경함
  2620. if(execcd != injDeptcd){
  2621. return;
  2622. }
  2623. //20090318 dhkim 주사실명칭 하드코딩을 주석처리
  2624. /*
  2625. if(execnm != "주사실"){
  2626. return;
  2627. }
  2628. */
  2629. model.removeNodeset("/root/send");
  2630. model.makeValue("/root/send/bizdd",model.getValue("/root/main/leftref/bizdd"));
  2631. model.makeValue("/root/send/execflag",model.getValue("/root/main/leftref/execflag"));
  2632. model.makeValue("/root/send/exec",model.getValue("/root/main/leftref/exec"));
  2633. if(flag == "allseq"){
  2634. var chk = opt_allseq.value;
  2635. if(chk == "0"){
  2636. messageBox("검색할 데이터가","I004");
  2637. return;
  2638. }
  2639. model.makeValue("/root/send/stats","allseq");
  2640. }
  2641. if(flag == "A6"){
  2642. var chk = opt_inj.value;
  2643. if(chk == "0"){
  2644. messageBox("검색할 데이터가","I004");
  2645. return;
  2646. }
  2647. model.makeValue("/root/send/stats","A6");
  2648. }
  2649. if(flag == "A7"){
  2650. var chk = opt_ant.value;
  2651. if(chk == "0"){
  2652. messageBox("검색할 데이터가","I004");
  2653. return;
  2654. }
  2655. model.makeValue("/root/send/stats","A7");
  2656. }
  2657. //20150326 kya 임상항암처방 추가
  2658. if(flag == "A5"){
  2659. var chk = opt_ant2.value;
  2660. if(chk == "0"){
  2661. messageBox("검색할 데이터가","I004");
  2662. return;
  2663. }
  2664. model.makeValue("/root/send/stats","A5");
  2665. }
  2666. if(flag == "A71"){
  2667. var chk = opt_ant.value;
  2668. if(chk == "0"){
  2669. messageBox("검색할 데이터가","I004");
  2670. return;
  2671. }
  2672. model.makeValue("/root/send/stats","A71");
  2673. }
  2674. if(flag == "A8"){
  2675. var chk = opt_prvn.value;
  2676. if(chk == "0"){
  2677. messageBox("검색할 데이터가","I004");
  2678. return;
  2679. }
  2680. model.makeValue("/root/send/stats","A8");
  2681. }
  2682. if(flag == "B4"){
  2683. var chk = opt_blod.value;
  2684. if(chk == "0"){
  2685. messageBox("검색할 데이터가","I004");
  2686. return;
  2687. }
  2688. model.makeValue("/root/send/stats","B4");
  2689. }
  2690. if(flag == "B5"){
  2691. var chk = opt_antdelive.value;
  2692. if(chk == "0"){
  2693. messageBox("검색할 데이터가","I004");
  2694. return;
  2695. }
  2696. model.makeValue("/root/send/stats","B5");
  2697. }
  2698. //[20081215 dhkim]
  2699. //ITC 변경개발요청 특정 경구약 주사실 액팅 가능
  2700. //예외용법테이블에 등록된 경구약을 액팅가능함
  2701. if(flag == "A2"){
  2702. var chk = opt_mouth.value;
  2703. if(chk == "0"){
  2704. messageBox("검색할 데이터가","I004");
  2705. return;
  2706. }
  2707. model.makeValue("/root/send/stats","A2");
  2708. }
  2709. //20090225 dhkim
  2710. //통계건수클릭시 업무대상자리스트 조회조건에 플래그 추가하여 조회함
  2711. fbiztrgtman("biztrgt", flag);
  2712. /*
  2713. if(submit("TRMNI00105")){
  2714. //새로 업무대상자 리스트 조회시 다른 내용 삭제
  2715. model.removeNodeset("/root/main/rghtlist");
  2716. model.removeNodeset("/root/main/prcpdetl/prcpdetllist");
  2717. opt_hngnm.value="";
  2718. opt_gndrage.value="";
  2719. opt_rrgstno.value="";
  2720. ipt_pid.value = "";
  2721. opt_hngnm.refresh();
  2722. opt_gndrage.refresh();
  2723. opt_rrgstno.refresh();
  2724. ipt_pid.refresh();
  2725. var seqno = model.getValue("/root/main/rghtlist/memolist/seqno");
  2726. if(seqno == ""){
  2727. //메모 데이타 삭제
  2728. tar_memo.value="";
  2729. tar_memo.refresh();
  2730. }
  2731. }
  2732. */
  2733. }
  2734. /**
  2735. * @group :
  2736. * @ver : 2007.05.30
  2737. * @by : 신혁춘
  2738. * @---------------------------------------------------
  2739. * @type : function
  2740. * @access : public
  2741. * @desc : 미시행 주사내역 부분 클릭시
  2742. * @param :
  2743. * @return :
  2744. * @---------------------------------------------------
  2745. */
  2746. function finjsper(){
  2747. var iRow = grd_injsper.row;
  2748. var xBizInjSper = "/root/main/rghtlist/injsperlist";
  2749. model.removeNodeset("/root/send");
  2750. model.removeNodeset("/root/hidden/main");
  2751. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2752. model.makeValue("/root/send/drugdd",model.getValue(xBizInjSper+"["+iRow+"]/actorddd"));
  2753. model.makeValue("/root/send/orddd",model.getValue(xBizInjSper+"["+iRow+"]/orddd"));
  2754. model.makeValue("/root/send/depthngnm",model.getValue(xBizInjSper+"["+iRow+"]/depthngnm"));
  2755. model.makeValue("/root/send/exec",model.getValue("/root/main/leftref/exec"));
  2756. //조회기간을 추가함 20150528 by kya
  2757. var sdate = model.getValue("/root/main/leftref/sdate");
  2758. var edate = model.getValue("/root/main/leftref/edate");
  2759. model.makeValue("/root/send/sdate",sdate);
  2760. model.makeValue("/root/send/edate",edate);
  2761. var kRows = grd_ordsper.rows;
  2762. var xOresperPath = "/root/main/rghtlist/ordsperlist"
  2763. for(p=1; p<kRows; p++){
  2764. var drugdd = model.getValue("/root/send/drugdd");
  2765. var depthngnm = model.getValue("/root/send/depthngnm");
  2766. var orddd1 = model.getValue(xOresperPath+"["+p+"]/actorddd");
  2767. var depthngnm1 = model.getValue(xOresperPath+"["+p+"]/depthngnm");
  2768. if(drugdd == orddd1 && depthngnm == depthngnm1){
  2769. grd_ordsper.row = p;
  2770. grd_ordsper.refresh();
  2771. }
  2772. }
  2773. //상세내역 조회 20151110
  2774. fDetailsper();
  2775. }
  2776. /**
  2777. * @group :
  2778. * @ver : 2007.06.01
  2779. * @by : 신혁춘
  2780. * @---------------------------------------------------
  2781. * @type : function
  2782. * @access : public
  2783. * @desc : 환자번호 조회 돋보기 클릭시
  2784. * @param :
  2785. * @return :
  2786. * @---------------------------------------------------
  2787. */
  2788. function fPatSrch(){
  2789. modal("../../../pam/patinfomngtweb/xrw/SPPMC02500", "1","150", "150", "SPPMC02500", "/root/source", "/root/send");
  2790. //환자번호 copy
  2791. var popupendflag = model.getValue("/root/main/popupendflag");
  2792. if (popupendflag == "ok"){
  2793. model.setValue("/root/main/rghtref/rghtreflist/pid",model.getValue("/root/main/patinfo/patinfolist/pid"));
  2794. model.refresh();
  2795. var pid = "/root/main/rghtref/rghtreflist/pid"
  2796. if (pid != null && pid != "" && pid != " " && pid != "-"){
  2797. //20090629 dhkim 7월 고시변경으로 인한 리턴값 추가
  2798. var rtn = fpidref("new");
  2799. if(!rtn){
  2800. return ;
  2801. }
  2802. }
  2803. }
  2804. }
  2805. /**
  2806. * @group :
  2807. * @ver : 2007.05.30
  2808. * @by : 신혁춘
  2809. * @---------------------------------------------------
  2810. * @type : function
  2811. * @access : public
  2812. * @desc : 진료내용 부분 클릭시
  2813. * @param :
  2814. * @return :
  2815. * @---------------------------------------------------
  2816. */
  2817. function fordsper(actorddd){
  2818. var iRow = grd_ordsper.row;
  2819. var xBizordsper = "/root/main/rghtlist/ordsperlist";
  2820. var orddd = model.getValue("/root/main/leftref/bizdd");
  2821. //20091015 dhkim 조회기준 일자추가
  2822. if(actorddd == null || actorddd == ""){
  2823. actorddd = model.getValue(xBizordsper+"["+iRow+"]/actorddd");
  2824. }
  2825. model.removeNodeset("/root/send");
  2826. model.removeNodeset("/root/hidden/main");
  2827. model.makeValue("/root/send/orddd",orddd);
  2828. model.makeValue("/root/send/bizorddd", actorddd);
  2829. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2830. model.makeValue("/root/send/drugdd", actorddd);
  2831. //20090429 dhkim 불필요한 cretno param주석처리
  2832. //model.makeValue("/root/send/cretno",model.getValue(xBizordsper+"["+iRow+"]/cretno"));
  2833. //model.makeValue("/root/send/exec",model.getValue("/root/main/leftref/exec"));
  2834. model.makeValue("/root/send/dsper","dsper");
  2835. //20090309 dhkim
  2836. //그리드구분자 추가 (당일업무대상자리스트클릭으로 조회시 : W, 진료내역클릭으로 조회시 : O)
  2837. model.makeValue("/root/send/grdflag", "O");
  2838. //상세내역조회 20151110
  2839. fDetailsper();
  2840. }
  2841. /**
  2842. * @group :
  2843. * @ver : 2015.11.10
  2844. * @by : 권영애
  2845. * @---------------------------------------------------
  2846. * @type : function
  2847. * @access : public
  2848. * @desc : 진료상세내역조회
  2849. * @param :
  2850. * @return :
  2851. * @---------------------------------------------------
  2852. */
  2853. function fDetailsper(actorddd){
  2854. //2010.06.09 김달현 - colHidden에러 수정
  2855. var prcpNmColHidden = grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm"));
  2856. var prcpHngNmColHidden = grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm"));
  2857. //20090924 dhkim 그리드색상초기화
  2858. grd_prcpdetl.rebuildStyle();
  2859. //처방상세조회
  2860. submit("TRMNI00103");
  2861. //2010.06.09 김달현 - colHidden 에러 수정
  2862. if(prcpNmColHidden == true && prcpHngNmColHidden == true){
  2863. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = false;
  2864. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = true;
  2865. }else if(prcpNmColHidden == true){
  2866. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = true;
  2867. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = false;
  2868. }else if(prcpHngNmColHidden == true){
  2869. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = false;
  2870. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = true;
  2871. }
  2872. model.makeValue("/root/hidden/main","");
  2873. model.copyNode("/root/hidden/main", "/root/main");
  2874. var Row = grd_prcpdetl.rows;
  2875. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist";
  2876. var Row = grd_prcpdetl.rows;
  2877. var mixchk = 0;
  2878. var rcptchk; //20090305 dhkim 후수납관련필드추가
  2879. var endyn; //20090309 dhkim 마감여부 색상변경추가
  2880. //처방상태 값에 따른 처방상세내역 리스트에 상태값 을 나타내는 로직 시작
  2881. for(var i=1; i < grd_prcpdetl.rows; i++){
  2882. var execdd = model.getValue(xPrcpDetlPath+"["+i+"]/execrid");
  2883. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat");
  2884. var execprcpstatcd = model.getValue(xPrcpDetlPath+"["+i+"]/execprcpstatcd");
  2885. var prcpclscd = model.getValue(xPrcpDetlPath+"["+i+"]/prcpclscd");
  2886. var drugno = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");
  2887. var cdnm = model.getValue(xPrcpDetlPath+"["+i+"]/cdnm");
  2888. endyn = model.getValue(xPrcpDetlPath+"["+i+"]/endyn"); // 마감여부
  2889. var etcprcpresncd = model.getValue(xPrcpDetlPath+"["+i+"]/etcprcpresncd"); // 수혈반납 및 폐기사유코드
  2890. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat"); // 성분제제상태
  2891. //20090305 dhkim 후수납관련필드추가
  2892. rcptchk = model.getValue(xPrcpDetlPath+"["+i+"]/rcptchk"); // 후수납상태
  2893. //20130220 kya 미수납일경우, 비활성화시킴
  2894. grd_prcpdetl.isReadonly(i, grd_prcpdetl.colRef("flag")) = false;
  2895. var rcptyn = model.getValue(xPrcpDetlPath+"["+i+"]/rcptyn"); // 수납상태
  2896. if ( rcptyn == "N" && rcptchk != "V") {
  2897. grd_prcpdetl.isReadonly(i, grd_prcpdetl.colRef("flag")) = true;
  2898. }
  2899. //20130514 재료일 경우, 비활성화시킴
  2900. if ( prcpclscd == "M2" ) { //재료
  2901. grd_prcpdetl.isReadonly(i, grd_prcpdetl.colRef("flag")) = true;
  2902. }
  2903. var printyn = model.getValue(xPrcpDetlPath+"["+i+"]/prtyn");
  2904. if(printyn == "Y" && execprcpstatcd != "610"){
  2905. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#FFFFCC';
  2906. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 20) = '#FFFFCC';//[20081125 dhkim] 투여속도추가로 col id 증가
  2907. grd_prcpdetl.cellstyle("background-color", i, 0, i, grd_prcpdetl.cols-1) = '#FFFFCC';//2010.06.04 김달현 - column추가로 마지막행까지 set으로 변경
  2908. }
  2909. //20090305 dhkim
  2910. //항암 전송완료 상태로 보여주는 부분 후수납의 경우 230조건 제외할것
  2911. //후수납 : rcptchk값이 V, Y, F일때는 230조건 제외,
  2912. // rcptchk값이 R일때는 230조건
  2913. //20090312 dhkim vip환자의 경우는 수납여부 체크하지 않음
  2914. //20090313 dhkim vip환자와 당일선검사환자의 경우는 수납여부 체크하지 않음
  2915. if(
  2916. (
  2917. (rcptchk == 'R' && execprcpstatcd == "230")
  2918. || (rcptchk == 'V')
  2919. || (rcptchk == 'Y')
  2920. //20090428 dhkim 후불 주석품
  2921. || (rcptchk == 'F')
  2922. )
  2923. && drugno != "0"
  2924. && cdnm!="마약"
  2925. //20090617 dhkim 조제완료가 아닌 약
  2926. && execprcpstatcd != '310'
  2927. && execprcpstatcd != '315'
  2928. ){
  2929. //alert(rcptchk + ' ' + execprcpstatcd + ' ' + drugno);
  2930. grd_prcpdetl.textmatrix(i, 3) = 13; //전송완료
  2931. }
  2932. /*
  2933. if(drugno != "0" && execprcpstatcd == "230" && cdnm!="마약"){
  2934. grd_prcpdetl.textmatrix(i, 3) = 13 //전송완료
  2935. }
  2936. */
  2937. if(execprcpstatcd == "300"){
  2938. grd_prcpdetl.textmatrix(i, 3) = 1; //조제보류
  2939. }
  2940. //alert('execprcpstatcd ' + execprcpstatcd + ' prcpclscd ' + prcpclscd);
  2941. if(execprcpstatcd == "310" || execprcpstatcd == "315" &&
  2942. (prcpclscd == "A7"
  2943. //20090310 dhkim 무균약추가
  2944. || prcpclscd == "A9"
  2945. )
  2946. ){
  2947. //alert('execprcpstatcd ' + execprcpstatcd + ' prcpclscd ' + prcpclscd);
  2948. grd_prcpdetl.textmatrix(i, 3) = 2; //조제완료
  2949. var mixk = model.getValue(xPrcpDetlPath+"["+i+"]/mix");
  2950. var actordddk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  2951. var rsrvtmk = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm");
  2952. var ordddk = model.getValue(xPrcpDetlPath+"["+i+"]/orddd");
  2953. var drugnok = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");//투약번호
  2954. for (r=0; r<grd_prcpdetl.rows; r++){
  2955. var mixr = model.getValue(xPrcpDetlPath+"["+r+"]/mix");
  2956. var actordddr = model.getValue(xPrcpDetlPath+"["+r+"]/actorddd");
  2957. var rsrvtmr = model.getValue(xPrcpDetlPath+"["+r+"]/rsrvtm");
  2958. var ordddr = model.getValue(xPrcpDetlPath+"["+r+"]/orddd");
  2959. var drugnor = model.getValue(xPrcpDetlPath+"["+r+"]/drugno");
  2960. var execprcpstatcdr = model.getValue(xPrcpDetlPath+"["+r+"]/execprcpstatcd");
  2961. //alert('mixk ' + mixk + ' actorddd k ' + actordddk + ' rsrvtmk ' + rsrvtmk + ' ordddk ' + ordddk);
  2962. //alert('mixk ' + mixk + ' mixr ' + mixr + ' actordddr ' + actordddr + ' rsrvtmr ' + rsrvtmr + ' ordddr ' + ordddk);
  2963. //alert('prcpcd:'+model.getValue(xPrcpDetlPath+"["+r+"]/prcpcd")+'mixk:' + mixk + ',mixr:'+mixr+',actordddk:'+actordddk+',actordddr:'+actordddr+',rsrvtmk:'+rsrvtmk+',rsrvtmr:'+rsrvtmr+',ordddk:'+ordddk+',ordddr:'+ordddr+'drugnok:'+drugnok+',drugnor:'+drugnor);
  2964. if(mixk != '-' && execprcpstatcdr != '610' && mixk == mixr && actordddr == actordddk && rsrvtmr == rsrvtmk && ordddr == ordddk && drugnor == drugnok && drugnok != 0){
  2965. grd_prcpdetl.textmatrix(r, 3) = 2; //조제완료
  2966. }
  2967. }
  2968. }
  2969. if(execprcpstatcd == "500" || execprcpstatcd == "505" || execprcpstatcd == "510"){
  2970. grd_prcpdetl.textmatrix(i, 3) = 11; //접수
  2971. }
  2972. if(execprcpstatcd == "520" || execprcpstatcd == "525"){
  2973. grd_prcpdetl.textmatrix(i, 3) = 4; //준비완료
  2974. }
  2975. if(execprcpstatcd == "540"){
  2976. grd_prcpdetl.textmatrix(i, 3) = 7; //반납의뢰
  2977. }
  2978. if(execprcpstatcd == "550"){
  2979. grd_prcpdetl.textmatrix(i, 3) = 8; //반납완료
  2980. }
  2981. if(execprcpstatcd == "530"){
  2982. if (blodcomstat == "8") {
  2983. grd_prcpdetl.textmatrix(i, 3) = 14; //잔여폐기
  2984. }
  2985. else {
  2986. grd_prcpdetl.textmatrix(i, 3) = 5; //불출.출고
  2987. }
  2988. }
  2989. if(execprcpstatcd == "560"){
  2990. if (etcprcpresncd == "07" || etcprcpresncd == "12") {
  2991. grd_prcpdetl.textmatrix(i, 3) = 14; //잔여폐기
  2992. }
  2993. else {
  2994. grd_prcpdetl.textmatrix(i, 3) = 9; //폐기의뢰
  2995. }
  2996. }
  2997. if(execprcpstatcd == "570"){
  2998. grd_prcpdetl.textmatrix(i, 3) = 10; //폐기완료
  2999. }
  3000. if(execprcpstatcd == "320"){
  3001. grd_prcpdetl.textmatrix(i, 3) = 5; //불출.출고
  3002. }
  3003. //2012.11.14 by kya 부서확인 추가
  3004. if(execprcpstatcd == "320N"){
  3005. grd_prcpdetl.textmatrix(i, 3) = 15; //부서확인
  3006. }
  3007. if(prcpclscd =="B4"){
  3008. if(execprcpstatcd == "610"){
  3009. grd_prcpdetl.textmatrix(i, 3) = 12; //실시완료
  3010. }
  3011. }else{
  3012. if(execprcpstatcd == "610"){
  3013. grd_prcpdetl.textmatrix(i, 3) = 6; //시행완료
  3014. }
  3015. }
  3016. /*
  3017. if(execprcpstatcd == "530"){
  3018. grd_prcpdetl.textmatrix(i, 3) = 5 //불출
  3019. }
  3020. */
  3021. var mix = model.getValue(xPrcpDetlPath+"["+i+"]/mix");
  3022. var actorddd = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  3023. var rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm");
  3024. var orddd = model.getValue(xPrcpDetlPath+"["+i+"]/orddd");
  3025. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  3026. var rgstdd = model.getValue(xPrcpDetlPath+"["+i+"]/rgstdd");
  3027. var rgsttm = model.getValue(xPrcpDetlPath+"["+i+"]/rgsttm");
  3028. //20090622 dhkim
  3029. if(orddd.length > 8){
  3030. orddd = orddd.substring(0, 8);
  3031. }
  3032. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  3033. var stat = grd_prcpdetl.textmatrix(i, 3);
  3034. if(prcpclscd == "A7"){
  3035. for(var k=0; k<Row; k++){
  3036. var mixs = model.getValue(xPrcpDetlPath+"["+k+"]/mix");
  3037. var actorddds = model.getValue(xPrcpDetlPath+"["+k+"]/actorddd");
  3038. var rsrvtms = model.getValue(xPrcpDetlPath+"["+k+"]/rsrvtm");
  3039. var orddds = model.getValue(xPrcpDetlPath+"["+k+"]/orddd");
  3040. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  3041. var _rgstdd = model.getValue(xPrcpDetlPath+"["+k+"]/rgstdd");
  3042. var _rgsttm = model.getValue(xPrcpDetlPath+"["+k+"]/rgsttm");
  3043. //20090622 dhkim
  3044. if(orddds.length > 8){
  3045. orddds = orddds.substring(0, 8);
  3046. }
  3047. //alert('mix : '+mix + ', mixs:' + mixs + ', actorddd: ' + actorddd+ ', actorddds:' + actorddds +', rsrvtm:' + rsrvtm + ', rsrvtms:' + rsrvtms + ', orddd:' + orddd + ', orddds : ' + orddds);
  3048. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  3049. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd && rgstdd == _rgstdd && rgsttm == _rgsttm){
  3050. grd_prcpdetl.textmatrix(k, 2) = 'A7';
  3051. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  3052. grd_prcpdetl.textmatrix(k, 3) = stat;
  3053. }
  3054. }
  3055. }
  3056. //20090526 dhkim 무균믹스추가
  3057. if(prcpclscd == "A9"){
  3058. for (var k=0; k<Row; k++){
  3059. var mixs = model.getValue(xPrcpDetlPath+"["+k+"]/mix");
  3060. var actorddds = model.getValue(xPrcpDetlPath+"["+k+"]/actorddd");
  3061. var rsrvtms = model.getValue(xPrcpDetlPath+"["+k+"]/rsrvtm");
  3062. var orddds = model.getValue(xPrcpDetlPath+"["+k+"]/orddd");
  3063. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  3064. var _rgstdd = model.getValue(xPrcpDetlPath+"["+k+"]/rgstdd");
  3065. var _rgsttm = model.getValue(xPrcpDetlPath+"["+k+"]/rgsttm");
  3066. //20090622 dhkim
  3067. if(orddds.length > 8){
  3068. orddds = orddds.substring(0, 8);
  3069. }
  3070. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  3071. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd && rgstdd == _rgstdd && rgsttm == _rgsttm){
  3072. grd_prcpdetl.textmatrix(k, 2) = 'A9';
  3073. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  3074. grd_prcpdetl.textmatrix(k, 3) = stat;
  3075. }
  3076. }
  3077. }
  3078. //20090529 dhkim
  3079. //혈액 상태중 반납의뢰, 통폐기의뢰, 잔여폐기의뢰, 출고, 접수, 준비완료, 반납완료, 통폐기완료, 잔여폐기완료 상태값 정의
  3080. if(prcpclscd == 'B4'){
  3081. grd_prcpdetl.textmatrix(i, 3) = model.getValue(xPrcpDetlPath + "[" + i + "]/bloodst");
  3082. }
  3083. // 마감처방 색깔표시 되도록
  3084. if (endyn == "Y") {
  3085. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#ffcccc';
  3086. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 22) = '#ffcccc';//[20081125 dhkim] 투여속도추가로 col id 증가
  3087. grd_prcpdetl.cellstyle("background-color", i, 0, i, grd_prcpdetl.cols-1) = '#FFCCCC';//2010.06.04 김달현 - column추가로 마지막행까지 set으로 변경
  3088. }
  3089. } //처방 상태값을 나타내는 로직 끝
  3090. //조회기간을 추가함 20150528 by kya
  3091. var sdate = model.getValue("/root/main/leftref/sdate");
  3092. var edate = model.getValue("/root/main/leftref/edate");
  3093. model.makeValue("/root/send/sdate",sdate);
  3094. model.makeValue("/root/send/edate",edate);
  3095. //상병, 메모, 진료예약, 검사예약, 진료내역, 미시행주사내역 조회
  3096. //submit("TRMNI00104");
  3097. var seqno = model.getValue("/root/main/rghtlist/memolist/seqno");
  3098. if(seqno == ""){
  3099. //메모 데이타 없을시 이전 데이타 삭제
  3100. tar_memo.value="";
  3101. tar_memo.refresh();
  3102. }
  3103. // grd_ordsper.row = iRow;
  3104. // model.makeValue("/root/hidden/flags","grd_ordsper");
  3105. }
  3106. /**
  3107. * @group :
  3108. * @ver : 2007.07.27
  3109. * @by : 신혁춘
  3110. * @---------------------------------------------------
  3111. * @type : function
  3112. * @access : public
  3113. * @desc : 간호 기록 연결(값없을때)
  3114. * @param :
  3115. * @return :
  3116. * @---------------------------------------------------
  3117. */
  3118. function fBaseMakeParameter() {
  3119. var param = "";
  3120. rowsep = "▩";
  3121. colsep = "▦";
  3122. //param = "recflag" + colsep + "dutplaccd" + colsep + "reclnkkey"+ rowsep+"I" + colsep + "31900" + colsep + "31900" + rowsep;
  3123. param = "recflag" + colsep + "dutplaccd" + colsep + "reclnkkey"+ rowsep+"I" + colsep + "012" + colsep + "31900" + rowsep;
  3124. return param;
  3125. }
  3126. /**
  3127. * @group :
  3128. * @ver : 2007.07.27
  3129. * @by : 신혁춘
  3130. * @---------------------------------------------------
  3131. * @type : function
  3132. * @access : public
  3133. * @desc : 간호 기록 연결(값있을때)
  3134. * @param :
  3135. * @return :
  3136. * @---------------------------------------------------
  3137. */
  3138. function fMakeParameter() {
  3139. var param = "";
  3140. rowsep = "▩";
  3141. colsep = "▦";
  3142. param = "prcpflag" + colsep + "prcpnm" + rowsep;
  3143. var acptyn ="";
  3144. var prcpflag="";
  3145. var prcpcd = "";
  3146. var prcpnm = "";
  3147. var prcpvol = "";
  3148. var prcpvolunitflag="";
  3149. var prcpqty = "";
  3150. var prcpqtyunitflag = "";
  3151. var prcptims = "";
  3152. var drugmthdspccd = "";
  3153. var abbrnm = "";
  3154. var prcpdeliverfact = "";
  3155. for(var i = 1; i < grd_prcpdetl.rows; i++) {
  3156. acptyn = model.getValue("/root/main/prcpdetl/prcpdetllist[" + i + "]/flag"); //채크여부
  3157. if(acptyn == "1") {
  3158. var datagrouplist = model.getValue("/root/main/prcpdetl/prcpdetllist[" + i + "]/datagroup");
  3159. var datagroup = datagrouplist.split("/")
  3160. prcpflag = model.getValue("/root/main/prcpdetl/prcpdetllist[" + i + "]/prcpclscd"); //주사 혈액등 구분
  3161. prcpcd = model.getValue("/root/main/prcpdetl/prcpdetllist[" + i + "]/prcpcd");
  3162. prcpnm = model.getValue("/root/main/prcpdetl/prcpdetllist[" + i + "]/prcpnm");
  3163. prcpvol = datagroup[0]; //용량
  3164. prcpvolunitflag = datagroup[1]; //단위
  3165. prcpqty = datagroup[2]; //수량
  3166. prcpqtyunitflag = datagroup[3]; //단위
  3167. prcptims = datagroup[4]; //횟수
  3168. //dugmthdspccd = model.getValue("root/main/patdetlinfo/prcpspec[" + i + "]/dugmthdspccd");
  3169. abbrnm = datagroup[5]; //투약경로
  3170. /*
  3171. - 처방구분(prcpflag)
  3172. A : 투약 (A2:경구, A4:외용, A6:주사)
  3173. H : 처치 (F2:재활, G2:RT, H2:수술, H4:처치)
  3174. T : 검사 (B2:진검, B4:수혈, B6:핵의학검체, C2:영상, C4:ANGIO, C6:핵의학영상(체내), D2: 병리, E2:기능)
  3175. */
  3176. // ① 투약 : 처방코드/처방명/일일용량/단위/일일수량/단위/일수/경로/용법
  3177. // * 주사실의 경우 주사에서 내부적으로 구분됨(A7:항암 , A8:예방)
  3178. if(prcpflag=="A2" || prcpflag == "A4" || prcpflag == "A6"|| prcpflag == "A7" || prcpflag == "A8") {
  3179. //param += prcpflag.substr(0,1) + colsep + prcpnm + rowsep;
  3180. param += "A" + colsep + prcpcd + "/" + prcpnm + "/" + prcpvol + "/" + prcpvolunitflag + "/" + prcpqty + "/" + prcpqtyunitflag + "/" + prcptims + "/" + abbrnm + rowsep;
  3181. // ② 처치 : 처방명/일일수량/Remark(의사처방의 remark)
  3182. } else if(prcpflag=="F2" || prcpflag=="G2" || prcpflag=="H2" || prcpflag=="H4") {
  3183. prcpdelivefact = model.getValue("root/main/patdetlinfo/prcpspec[" + i + "]/prcpdelivefact");
  3184. param += "H" + colsep + prcpnm + "/" + prcpqty + prcpdeliverfact + rowsep;
  3185. // ③ 검사 : 처방명/일일수량/Remark(의사처방의 remark)
  3186. } else if(prcpflag=="B2" || prcpflag=="B4" || prcpflag=="B6" || prcpflag=="C2" || prcpflag=="C4" || prcpflag=="C6" || prcpflag=="D2" || prcpflag=="E2") {
  3187. prcpdelivefact = model.getValue("root/main/patdetlinfo/prcpspec[" + i + "]/prcpdelivefact");
  3188. param += "T" + colsep + prcpnm + "/" + prcpqty + prcpdeliverfact + rowsep;
  3189. }
  3190. }
  3191. }
  3192. return param;
  3193. }
  3194. /**
  3195. * @group :
  3196. * @ver : 2007.09.04
  3197. * @by : 신혁춘
  3198. * @---------------------------------------------------
  3199. * @type : function
  3200. * @access : public
  3201. * @desc : 부위, 차수, LOT, MIX, AST 예약시간동시적용
  3202. * @param :
  3203. * @return :
  3204. * @---------------------------------------------------
  3205. */
  3206. function frsrvtm(flag) {
  3207. //15
  3208. var Row = grd_prcpdetl.rows;
  3209. var jRow=grd_prcpdetl.row;
  3210. var xhiddenPrcpDetlPath = "/root/hidden/main/prcpdetl/prcpdetllist"
  3211. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  3212. var rsrvtm = grd_prcpdetl.textmatrix(jRow,flag);
  3213. var chek = 0
  3214. for (i=1; i<Row; i++){
  3215. chek = chek + grd_prcpdetl.textmatrix(i,1);
  3216. }
  3217. if(chek==0){
  3218. return;
  3219. }
  3220. chek3 = model.getValue(xhiddenPrcpDetlPath+"["+jRow+"]/actorddd");
  3221. chek5 = model.getValue(xhiddenPrcpDetlPath+"["+jRow+"]/mix");
  3222. chek7 = model.getValue(xhiddenPrcpDetlPath+"["+jRow+"]/orddd");
  3223. for (i=1; i<Row; i++){
  3224. chek = grd_prcpdetl.textmatrix(i,1);
  3225. chek2 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  3226. chek4 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/mix");
  3227. chek6 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/orddd");
  3228. if(chek==1 && flag == 15 && chek2 == chek3){
  3229. grd_prcpdetl.textmatrix(i,flag) = rsrvtm;
  3230. }
  3231. if(chek==1 && flag == 16 && chek2 == chek3){
  3232. grd_prcpdetl.textmatrix(i,flag) = rsrvtm;
  3233. }
  3234. if(chek==1 && flag != 15 && flag != 16){
  3235. grd_prcpdetl.textmatrix(i,flag) = rsrvtm;
  3236. }
  3237. }
  3238. }
  3239. /**
  3240. * @group :
  3241. * @ver : 2007.09.10
  3242. * @by : 신혁춘
  3243. * @---------------------------------------------------
  3244. * @type : function
  3245. * @access : public
  3246. * @desc : 혈액불출관리 연결
  3247. * @param :
  3248. * @return :
  3249. * @---------------------------------------------------
  3250. */
  3251. function fopr() {
  3252. var pid = ipt_pid.value;
  3253. setParameter("pid", pid);
  3254. setParameter("SMMNR010_Param", "OPRC1");
  3255. open("SMMNR01000","1","15","128");
  3256. }
  3257. /**
  3258. * @group :
  3259. * @ver : 2007.10.15
  3260. * @by : 신혁춘
  3261. * @---------------------------------------------------
  3262. * @type : function
  3263. * @access : public
  3264. * @desc : 진료내역조회 연결
  3265. * @param :
  3266. * @return :
  3267. * @---------------------------------------------------
  3268. */
  3269. function fOpenPrcpSpec() {
  3270. var pid = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/pid");
  3271. var orddd = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/orddd");
  3272. //var param = pid + "▩" + "O" + "▩" + orddd;
  3273. var param = pid;
  3274. setParameter("SMMMO02500_cond", param);
  3275. open("SMMMO02500");
  3276. }
  3277. /**
  3278. * @desc : 처방 상세보기
  3279. * @param : 전처방, 연속처방, 처방검색 탭버튼 눌렀을 경우 원복 orgflag => Y
  3280. * @id : btn_detlvw
  3281. * @event : DOMActivate
  3282. * @return : void
  3283. * @authur : 마정민 2007. 3. 12
  3284. */
  3285. function fDetlVw ( orgflag ) {
  3286. var grdLeft = 827;
  3287. var grdWidht = 367;
  3288. var grdHeight = 128;
  3289. var extnGrdLeft = 0;
  3290. var extnGrdWidht = 1194;
  3291. var extnGrdHeight = 375;
  3292. var prcpcdCol = grd_injsper.colRef("orddd"); //처방코드 컬럼 index
  3293. var prcpnmCol = grd_injsper.colRef("depthngnm"); //처방명 컬럼 index
  3294. var prcpengnmCol = grd_injsper.colRef("prcpcd"); //처방영문명 컬럼 index
  3295. var prcpspecCol = grd_injsper.colRef("prcpnm"); //처방내역 컬럼 index
  3296. //var abbrnmCol = grd_injsper.colRef("abbrnm"); //경로내역 컬럼 index
  3297. //var prcpdelivefactCol = grd_injsper.colRef("prcpdelivefact"); //전달사항(remark 컬럼 index)
  3298. //var ivwLeft = 8;
  3299. //var ivwWidth = 416;
  3300. //var minIvwLeft = ivwLeft;
  3301. //var minIvwWidth = 7;
  3302. var lineX1 = grdLeft;
  3303. var lineX2 = grdLeft + grdWidht;
  3304. var extnLineX1 = extnGrdLeft;
  3305. var extnLineX2 = lineX2;
  3306. var prcpColsize = 50;
  3307. var prcpnmColsize = 130;
  3308. var prcpengnmColsize = 100;
  3309. var prcpspecColsize = 230;
  3310. //var abbrnmColsize = 80;
  3311. //var prcpdelivefactColsize = 40;
  3312. if ( model.getValue( "/root/init/detlvw" ) == "p" && orgflag != "y" ) {
  3313. grd_injsper.attribute ( "left" ) = extnGrdLeft;
  3314. grd_injsper.attribute ( "width" ) = extnGrdWidht;
  3315. grd_injsper.attribute ( "height" ) = extnGrdHeight;
  3316. //ivw_prcp.attribute ( "left" ) = minIvwLeft;
  3317. //ivw_prcp.attribute ( "width" ) = minIvwWidth;
  3318. line12.attribute ( "x1" ) = extnLineX1;
  3319. line12.attribute ( "x2" ) = extnLineX2;
  3320. //line2.attribute ( "x1" ) = extnLineX1;
  3321. //line2.attribute ( "x2" ) = extnLineX2;
  3322. model.setValue( "/root/init/detlvw", "m" );
  3323. grd_injsper.colWidth(prcpcdCol) = grd_injsper.colWidth(prcpcdCol) + prcpColsize;
  3324. if(grd_injsper.colWidth(prcpnmCol) != 0) {
  3325. grd_injsper.colWidth(prcpnmCol) = grd_injsper.colWidth(prcpnmCol) + prcpnmColsize;
  3326. }
  3327. if(grd_injsper.colWidth(prcpengnmCol) != 0) {
  3328. grd_injsper.colWidth(prcpengnmCol) = grd_injsper.colWidth(prcpengnmCol) + prcpengnmColsize;
  3329. }
  3330. grd_injsper.colWidth(prcpspecCol) = grd_injsper.colWidth(prcpspecCol) + prcpspecColsize;
  3331. //grd_injsper.colWidth(abbrnmCol) = grd_injsper.colWidth(abbrnmCol) + abbrnmColsize;
  3332. //grd_injsper.colWidth(prcpdelivefactCol) = grd_injsper.colWidth(prcpdelivefactCol) + prcpdelivefactColsize;
  3333. } else {
  3334. grd_injsper.attribute ( "left" ) = grdLeft;
  3335. grd_injsper.attribute ( "width" ) = grdWidht;
  3336. grd_injsper.attribute ( "height" ) = grdHeight;
  3337. //ivw_prcp.attribute ( "left" ) = ivwLeft;
  3338. //ivw_prcp.attribute ( "width" ) = ivwWidth;
  3339. line12.attribute ( "x1" ) = lineX1;
  3340. line12.attribute ( "x2" ) = lineX2;
  3341. //line2.attribute ( "x1" ) = lineX1;
  3342. //line2.attribute ( "x2" ) = lineX2;
  3343. model.setValue( "/root/init/detlvw", "p" );
  3344. grd_injsper.colWidth(prcpcdCol) = grd_injsper.colWidth(prcpcdCol) - prcpColsize;
  3345. grd_injsper.colWidth(prcpnmCol) = grd_injsper.colWidth(prcpnmCol) - prcpnmColsize;
  3346. grd_injsper.colWidth(prcpengnmCol) = grd_injsper.colWidth(prcpengnmCol) - prcpengnmColsize;
  3347. grd_injsper.colWidth(prcpspecCol) = grd_injsper.colWidth(prcpspecCol) - prcpspecColsize;
  3348. //grd_injsper.colWidth(abbrnmCol) = grd_injsper.colWidth(abbrnmCol) - abbrnmColsize;
  3349. //grd_injsper.colWidth(prcpdelivefactCol) = grd_injsper.colWidth(prcpdelivefactCol) - prcpdelivefactColsize;
  3350. }
  3351. }
  3352. /**
  3353. * @group :
  3354. * @ver : 2007.11.14
  3355. * @by : 신혁춘
  3356. * @---------------------------------------------------
  3357. * @type : function
  3358. * @access : public
  3359. * @desc : 당일 업무대상자 리스트 상세보기
  3360. * @param :
  3361. * @return :
  3362. * @---------------------------------------------------
  3363. */
  3364. function fDetlVwa ( orgflag ) {
  3365. var grdLeft = 0;
  3366. var grdWidht = 582;
  3367. var grdHeight = 354;
  3368. var extnGrdLeft = 0;
  3369. var extnGrdWidht = 582;
  3370. var extnGrdHeight = 599;
  3371. if ( model.getValue( "/root/init/detlvwa" ) == "p" && orgflag != "y" ) {
  3372. grd_biztrgtman.attribute ( "left" ) = extnGrdLeft;
  3373. grd_biztrgtman.attribute ( "width" ) = extnGrdWidht;
  3374. grd_biztrgtman.attribute ( "height" ) = extnGrdHeight;
  3375. model.setValue( "/root/init/detlvwa", "m" );
  3376. } else {
  3377. grd_biztrgtman.attribute ( "left" ) = grdLeft;
  3378. grd_biztrgtman.attribute ( "width" ) = grdWidht;
  3379. grd_biztrgtman.attribute ( "height" ) = grdHeight;
  3380. model.setValue( "/root/init/detlvwa", "p" );
  3381. }
  3382. }
  3383. /**
  3384. * @group :
  3385. * @ver : 2007.11.14
  3386. * @by : 신혁춘
  3387. * @---------------------------------------------------
  3388. * @type : function
  3389. * @access : public
  3390. * @desc : 처방상세 내역 상세보기
  3391. * @param :
  3392. * @return :
  3393. * @---------------------------------------------------
  3394. */
  3395. function fDetlVwb ( orgflag ) {
  3396. var grdLeft = 0;
  3397. var grdTop = 520;
  3398. var grdWidht = 1194;
  3399. var grdHeight = 217;
  3400. var extnGrdLeft = 0;
  3401. //var extnGrdTop = 136;
  3402. var extnGrdTop = 161;
  3403. var extnGrdWidht = 1194;
  3404. var extnGrdHeight = 601;
  3405. var groLeft = 0;
  3406. //var groTop = 492;
  3407. var groTop = 470;
  3408. var groWidht = 1195;
  3409. var groHeight = 50;
  3410. var extnGroLeft = 0;
  3411. var extnGroTop = 109;
  3412. var extnGroWidht = 1195;
  3413. var extnGroHeight = 50;
  3414. if ( model.getValue( "/root/init/detlvwb" ) == "p" && orgflag != "y" ) {
  3415. grd_prcpdetl.attribute ( "left" ) = extnGrdLeft;
  3416. grd_prcpdetl.attribute ( "top" ) = extnGrdTop;
  3417. grd_prcpdetl.attribute ( "width" ) = extnGrdWidht;
  3418. grd_prcpdetl.attribute ( "height" ) = extnGrdHeight;
  3419. group4.attribute ( "left" ) = extnGroLeft;
  3420. group4.attribute ( "top" ) = extnGroTop;
  3421. group4.attribute ( "width" ) = extnGroWidht;
  3422. group4.attribute ( "height" ) = extnGroHeight;
  3423. grd_injsper.visible = false;
  3424. line12.visible = false;
  3425. grd_biztrgtman.visible = false;
  3426. caption10.visible = false;
  3427. button2.visible = false;
  3428. line7.visible = false;
  3429. //20090723 dhkim 당일업무대상자 라벨 hidden하는부분 추가
  3430. group5.visible = false;
  3431. model.setValue( "/root/init/detlvwb", "m" );
  3432. } else {
  3433. grd_prcpdetl.attribute ( "left" ) = grdLeft;
  3434. grd_prcpdetl.attribute ( "top" ) = grdTop;
  3435. grd_prcpdetl.attribute ( "width" ) = grdWidht;
  3436. grd_prcpdetl.attribute ( "height" ) = grdHeight;
  3437. group4.attribute ( "left" ) = groLeft;
  3438. group4.attribute ( "top" ) = groTop;
  3439. group4.attribute ( "width" ) = groWidht;
  3440. group4.attribute ( "height" ) = groHeight;
  3441. grd_injsper.visible = true;
  3442. line12.visible = true;
  3443. grd_biztrgtman.visible = true;
  3444. caption10.visible = true;
  3445. button2.visible = true;
  3446. line7.visible = true;
  3447. //20090723 dhkim 당일업무대상자 라벨 visible 하는부분 추가
  3448. group5.visible = true;
  3449. model.setValue( "/root/init/detlvwb", "p" );
  3450. }
  3451. }
  3452. /**
  3453. * @group :
  3454. * @ver : 2007.11.20
  3455. * @by : 신혁춘
  3456. * @---------------------------------------------------
  3457. * @type : function
  3458. * @access : public
  3459. * @desc : 부위 기준자료 조회
  3460. * @param :
  3461. * @return :
  3462. * @---------------------------------------------------
  3463. */
  3464. function fpartflaginfo(){
  3465. model.removeNodeset("/root/send");
  3466. model.makeValue("/root/send/baseclsflag","J");
  3467. model.makeValue("/root/send/supbasetypecd","JSA");
  3468. submit("TRMNI00106");
  3469. }
  3470. /**
  3471. * @group :
  3472. * @ver : 2007.11.27
  3473. * @by : 신혁춘
  3474. * @---------------------------------------------------
  3475. * @type : function
  3476. * @access : public
  3477. * @desc : MIX 번호에따른 동시 선택
  3478. * @param :
  3479. * @return :
  3480. * @---------------------------------------------------
  3481. */
  3482. function chkflag(){
  3483. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  3484. var iRow = grd_prcpdetl.row;
  3485. var Row = grd_prcpdetl.rows;
  3486. var chk = model.getValue(xPrcpDetlPath+"["+iRow+"]/flag");
  3487. var mix = model.getValue(xPrcpDetlPath+"["+iRow+"]/mix");
  3488. var actorddd = model.getValue(xPrcpDetlPath+"["+iRow+"]/actorddd");
  3489. var orddd = model.getValue(xPrcpDetlPath+"["+iRow+"]/orddd");
  3490. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  3491. var rgstdd = model.getValue(xPrcpDetlPath+"["+iRow+"]/rgstdd");
  3492. var rgsttm = model.getValue(xPrcpDetlPath+"["+iRow+"]/rgsttm");
  3493. if(orddd.length > 8){
  3494. orddd = orddd.substring(0, 8);
  3495. }
  3496. if(chk == "1"){
  3497. if(mix == "-"){
  3498. return;
  3499. }else{
  3500. for(var i=0; i<Row; i++){
  3501. var mixs = model.getValue(xPrcpDetlPath+"["+i+"]/mix");
  3502. var actorddds = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  3503. var orddds = model.getValue(xPrcpDetlPath+"["+i+"]/orddd");
  3504. //20160411 by kya Mix에서 재료는 제외
  3505. var prcpclscdnow = model.getValue(xPrcpDetlPath+"["+i+"]/prcpclscdnow");
  3506. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  3507. var _rgstdd = model.getValue(xPrcpDetlPath+"["+i+"]/rgstdd");
  3508. var _rgsttm = model.getValue(xPrcpDetlPath+"["+i+"]/rgsttm");
  3509. //20090716 dhkim 추가 (orddds는 시간까지 조회함)
  3510. if(orddds.length > 8){
  3511. orddds = orddds.substring(0, 8);
  3512. }
  3513. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  3514. //20160411 by kya Mix에서 재료는 제외
  3515. //if(mix == mixs && actorddd == actorddds && orddd == orddds && rgstdd == _rgstdd && rgsttm == _rgsttm ){
  3516. if(mix == mixs && actorddd == actorddds && orddd == orddds && rgstdd == _rgstdd && rgsttm == _rgsttm && prcpclscdnow != "M2"){
  3517. model.setValue(xPrcpDetlPath+"["+i+"]/flag", "1");
  3518. }
  3519. }
  3520. }
  3521. }
  3522. if(chk == "0"){
  3523. if(mix == "-"){
  3524. return;
  3525. }else{
  3526. for(var i=0; i<Row; i++){
  3527. var mixs = model.getValue(xPrcpDetlPath+"["+i+"]/mix");
  3528. var actorddds = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  3529. var orddds = model.getValue(xPrcpDetlPath+"["+i+"]/orddd");
  3530. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  3531. var _rgstdd = model.getValue(xPrcpDetlPath+"["+i+"]/rgstdd");
  3532. var _rgsttm = model.getValue(xPrcpDetlPath+"["+i+"]/rgsttm");
  3533. //20090716 dhkim 추가 (orddds는 시간까지 조회함)
  3534. if(orddds.length > 8){
  3535. orddds = orddds.substring(0, 8);
  3536. }
  3537. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  3538. if(mix == mixs && actorddd == actorddds && orddd == orddds && rgstdd == _rgstdd && rgsttm == _rgsttm){
  3539. model.setValue(xPrcpDetlPath+"["+i+"]/flag", "0");
  3540. }
  3541. }
  3542. }
  3543. }
  3544. }
  3545. /**
  3546. * @date : 20090529
  3547. * @author : dhkim
  3548. * @desc : 예방주사의경우에만 부위, 차수, LOT No입력가능하도록 수정
  3549. * 일반주사의 경우에만 AST입력가능하도록 수정
  3550. * 처방상세내역 그리드의 onclick이벤트시 호출됨
  3551. * prcpclscd가 예방(A8)인경우만 입력가능상태로 그리드가 변경됨
  3552. */
  3553. function fDisabledVccInj(curRow){
  3554. var prcpclscd = model.getValue('/root/main/prcpdetl/prcpdetllist['+curRow+']/prcpclscdnow');
  3555. //if(prcpclscd == 'A8' || prcpclscd == 'A2'){ 20130506 kya, 수정
  3556. if(prcpclscd == 'A8' || prcpclscd == 'A2' ){
  3557. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("ast")) = true;
  3558. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("partflag")) = false;
  3559. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("dgno")) = false;
  3560. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("lotno")) = false;
  3561. /* 20130506 kya 주사일 경우, 예방과 동일하게 해주세요. req.정경희 , but partflag, dgno,lotno를 true -> false 변경함 */
  3562. }else if(prcpclscd == 'A6'){
  3563. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("ast")) = false;
  3564. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("partflag")) = false;
  3565. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("dgno")) = false;
  3566. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("lotno")) = false;
  3567. }else{
  3568. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("ast")) = true;
  3569. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("partflag")) = true;
  3570. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("dgno")) = true;
  3571. grd_prcpdetl.isReadonly(curRow, grd_prcpdetl.colRef("lotno")) = true;
  3572. }
  3573. }
  3574. /**
  3575. * @date : 20090724
  3576. * @author : dhkim
  3577. * @desc : 예약변경하기전 진단이 있는지 체크하여 이전 진단이 존재하지 않으면 수진선택하도록 팝업호출
  3578. */
  3579. function fPopDiag(curRow){
  3580. /*
  3581. [fFindDiagInfo() 호출정보]
  3582. 진료일 정보를 이용하여 이전 진단명이 존재 외래수진이력 조회 진단명이 없을 경우
  3583. Parameter 값을 이용하여 수진이력 팝업 호출 및 return RESULT
  3584. @param :
  3585. ex) setParameter("preDiagCond", "Etc▦4189074▦20090715▦▦▦/root");
  3586. - 공통
  3587. , jobgubn : 작업구분 : HomeCare-> 가정간호, InjRoom -> 인공신장, Etc : 기타(외래,주사실,진료지원)
  3588. , pid : 등록번호 -> 필수사항
  3589. , orddd : 진료일자 -> 필수사항, 해당 진료일자 이전의 수진이력을 조회함.
  3590. , orddeptcd : 진료과 -> 진료과가 없을 경우 모든 진료과 정보 조회
  3591. , orddrid : 진료의 -> 진료의가 없을 경우 모든 진료의 정보 조회
  3592. , resultXpath : 조회결과가 설정될 hidden Node Xpath -> ex) /root 로 넘어올 경우
  3593. -> 결과는 /root/hidden/ordinfo 밑의 노드에 생성 됨.
  3594. @return : setParameter()로 전달하므로 getParameter("preDiagResult") 로 받아야 함.
  3595. ex) setParameter("preDiagResult", sPid+"▦"+sOrddd+"▦"+sIndd+"▦"+sCretno);
  3596. 설명 : 등록번호▦진료일자▦입원일자▦cretno
  3597. */
  3598. //파라미터 세팅후 호출
  3599. var pid = model.getValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/pid");
  3600. var orddd = model.getValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/oprc_orddd");
  3601. var orddeptcd = model.getValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/oprc_orddeptcd");
  3602. var orddrid = model.getValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/oprc_orddrid");
  3603. var retnPath = "/root";
  3604. var setDiagParam = "Etc▦" + pid + "▦" + orddd + "▦" + orddeptcd + "▦" + orddrid + "▦" + retnPath;
  3605. setParameter("preDiagCond", setDiagParam);
  3606. fFindDiagInfo();//careCom.js
  3607. //팝업호출 후 리턴값을 진단복사를 위한 수진키에 새로 세팅 (리턴값이 있을 경우만 세팅함)
  3608. var getDiagParam = getParameter("preDiagResult").split("▦");
  3609. var retPid = getDiagParam[0];
  3610. var retOrddd = getDiagParam[1];
  3611. var retIndd = getDiagParam[2];
  3612. var retCretno = getDiagParam[3];
  3613. var retGenrflagcd = getDiagParam[4];
  3614. if(retPid == null || retPid == ''){
  3615. return;//리턴값이 없으면 빠져나옴.
  3616. }
  3617. //그리드에 리턴값 세팅
  3618. model.setValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/pop_cretno", retCretno);
  3619. model.setValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/pop_genrflagcd", retGenrflagcd);
  3620. if(retGenrflagcd != 'O'){
  3621. model.setValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/pop_orddd", retIndd);
  3622. }else{
  3623. model.setValue("/root/main/prcpdetl/prcpdetllist[" + curRow + "]/pop_orddd", retOrddd);
  3624. }
  3625. // alert(getDiagParam);
  3626. }
  3627. //미시행내역 화면 오픈
  3628. function fOpenUndoPrcpList() {
  3629. open("SMMNI00200");
  3630. }
  3631. //실시내역 화면 오픈
  3632. function fOpenExecPrcpList() {
  3633. var pid = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/pid");
  3634. var orddd = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/orddd");
  3635. //var param = pid + "▩" + "O" + "▩" + orddd;
  3636. var param = pid;
  3637. setParameter("SMMNI00400_pid", param);
  3638. open("SMMNI00400");
  3639. }
  3640. //처치등록관리 화면 오픈
  3641. function fOpenCureReg() {
  3642. var pid = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/pid");
  3643. var orddd = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/orddd");
  3644. //var param = pid + "▩" + "O" + "▩" + orddd;
  3645. var param = pid;
  3646. setParameter("SMMNI00500_pid", param);
  3647. open("SMMNI00500");
  3648. }
  3649. //예방주사접종이력 화면 오픈
  3650. function fOpenPrvVacnList() {
  3651. var pid = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/pid");
  3652. var orddd = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/orddd");
  3653. //var param = pid + "▩" + "O" + "▩" + orddd;
  3654. var param = pid;
  3655. setParameter("SMMNI01200_pid", param);
  3656. open("SMMNI01200");
  3657. }
  3658. //혈액불출관리 화면 오픈
  3659. function fOpenBlodDelive() {
  3660. open("SMMNR01000");
  3661. }
  3662. //마약처방관리 화면 오픈
  3663. function fOpenNarcPrcp() {
  3664. open("SMADT30400");
  3665. }
  3666. //마약처방관리 화면 오픈
  3667. function fOpenDrugInfo() {
  3668. var prcpclscd = model.getValue ("/root/main/prcpdetl/prcpdetllist[" + grd_prcpdetl.row + "]/prcpclscdnow");
  3669. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
  3670. model.makeValue ( "/root/hidden/receivedata/srchdrugcd", model.getValue ("/root/main/prcpdetl/prcpdetllist[" + grd_prcpdetl.row + "]/prcpcd" ));
  3671. open("SMADB01900", 0, 0, 0, "SMADB01900", "/root/hidden/receivedata","/root/hidden/receivedata");
  3672. }
  3673. }
  3674. /**
  3675. * 2010.03.05 dhkim
  3676. * 환자라벨출력
  3677. * rghtflag - false: 왼쪽환자그리드리스트클릭
  3678. * true : 오른쪽환자조회화면버튼클릭
  3679. */
  3680. function fPrtLabel(rghtflag){
  3681. model.removenode("/root/temp/prtlabel");
  3682. if(rghtflag == true){
  3683. model.makeValue("/root/temp/prtlabel/rghtflag", "T");
  3684. }else{
  3685. model.makeValue("/root/temp/prtlabel/rghtflag", "F");
  3686. }
  3687. model.refresh();
  3688. fOpenLabelPrint_SMMNI00100(rghtflag);
  3689. }
  3690. //2010.03.05 dhkim 추가
  3691. //환자라벨출력
  3692. // rghtflag - false: 왼쪽환자그리드리스트클릭
  3693. // true : 오른쪽환자조회화면버튼클릭
  3694. function fOpenLabelPrint_SMMNI00100(rghtflag){
  3695. var left, top;
  3696. if(rghtflag==true){//라벨출력그룹위치 fix
  3697. left = 650;
  3698. top = 50;
  3699. }else{//그리드 포커스에 맞게 이동
  3700. left = event.ScreenX-window.screenleft-10;
  3701. top = event.ScreenY-window.screenTop-150;
  3702. }
  3703. model.removenode("/root/main/cmpatprtcnt");
  3704. model.makeValue("/root/main/cmpatprtcnt","1");
  3705. model.setFocus("ipt_cmpatprtcnt");
  3706. grp_prtlabel.attribute("left") = left;
  3707. grp_prtlabel.attribute("top") = top;
  3708. grp_prtlabel.attribute("visibility") = "visible";
  3709. model.refresh();
  3710. }
  3711. //2010.03.05 dhkim 추가
  3712. //라벨출력실행
  3713. function fPrintLabel_SMMNI00100(){
  3714. var rghtflag = model.getValue("/root/temp/prtlabel/rghtflag");
  3715. var pid, patnm, rgstno, sexage, btype;
  3716. var roomcd = "";//외래라 roomcd없음
  3717. var prtcnt = model.getValue("/root/main/cmpatprtcnt");
  3718. orddd = getCurrentDate();//현재일자
  3719. if(rghtflag=="T"){
  3720. pid = model.getValue("/root/main/rghtref/rghtreflist/pid");
  3721. patnm = model.getValue("/root/main/rghtref/rghtreflist/hngnm");
  3722. sexage = model.getValue("/root/main/rghtref/rghtreflist/gndrage");
  3723. rgstno = model.getValue("/root/main/rghtref/rghtreflist/rrgstno");
  3724. btype = model.getValue("/root/main/rghtref/rghtreflist/btype");
  3725. }else if(rghtflag=="F"){
  3726. pid = model.getValue("/root/main/biztrgtman/biztrgtmanlist["+grd_biztrgtman.row+"]/pid");
  3727. //혈액형추가 20150427
  3728. btype = model.getValue("/root/main/biztrgtman/biztrgtmanlist["+grd_biztrgtman.row+"]/btype");
  3729. orddd = model.getValue("/root/main/biztrgtman/biztrgtmanlist["+grd_biztrgtman.row+"]/orddd");
  3730. patnm = model.getValue("/root/main/biztrgtman/biztrgtmanlist["+grd_biztrgtman.row+"]/hngnm");
  3731. sexage = model.getValue("/root/main/biztrgtman/biztrgtmanlist["+grd_biztrgtman.row+"]/gndrage");
  3732. rgstno = model.getValue("/root/main/biztrgtman/biztrgtmanlist["+grd_biztrgtman.row+"]/rrgstno");
  3733. }
  3734. if(pid == null || pid == ''){
  3735. messageBox('등록번호를 입력하세요.', 'E999');
  3736. return false;
  3737. }
  3738. // 환자 정보 라벨 출력
  3739. if(prtcnt > 0){
  3740. //1. 바코드 라벨 설정값 조회
  3741. var scrnid = "SMMNI00100";
  3742. model.removeNodeset("/root/main/barcdprntsetup");
  3743. model.removenode("/root/send");
  3744. model.makeValue("/root/send/scrnid", scrnid);
  3745. submit("TRLLC90101");
  3746. //2. 바코드 라벨 환경설정
  3747. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3748. lzzfMakeBrcdPrntObjHanDo("CommAX", barcdRef);
  3749. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  3750. //alert(" pid:"+ pid+" roomcd:"+roomcd+", patnm:"+patnm+", sexage:"+sexage+", rgstno:"+rgstno+", orddd:"+orddd+", prtcnt:"+prtcnt+", portOpenTF :"+portOpenTF)
  3751. //3. 환자라벨출력
  3752. //20150428 수정 혈액형 추가
  3753. //fPrtCarePatNameLabel(barcdRef, pid + " " + roomcd, patnm, sexage, rgstno, orddd, prtcnt, portOpenTF );
  3754. //fPrtCarePatNameLabel(barcdRef, pid, roomcd, patnm, sexage, rgstno, orddd, orddeptnm, prncnt, portOpenTF, btype) 호출순서
  3755. fPrtCarePatNameLabel(barcdRef, pid, btype, patnm, sexage, rgstno, "","처방:"+ orddd, prtcnt, portOpenTF,"");
  3756. }
  3757. grp_prtlabel.attribute("visibility") = "hidden";
  3758. model.removenode("/root/temp/prtlabel/rghtflag");
  3759. model.refresh();
  3760. }
  3761. //2010.03.05 dhkim 추가
  3762. function fCancelPrint_SMMNI00100(){
  3763. model.removenode("/root/main/cmpatprtcnt");
  3764. model.makeValue("/root/main/cmpatprtcnt","1");
  3765. grp_prtlabel.attribute("visibility") = "hidden";
  3766. }
  3767. //2010.06.04 김달현 추가
  3768. //처방상세내역 Value Changed이벤트 발생시 호출함
  3769. function fValueChangedGrdPrcpdetl(iRow, iCol){
  3770. //20090529 dhkim 예방주사는 체크박스동일하게 체크한 내역 동일한값 세팅 안함. 주석처리함
  3771. if(iCol == grd_prcpdetl.colRef("flag")){//체크박스선택
  3772. chkflag();
  3773. }else if(iCol == grd_prcpdetl.colRef("mix")){//Mix
  3774. chkflag();
  3775. }else if(iCol == grd_prcpdetl.colRef("actorddd")){//예약일자
  3776. // 마이그레이션 데이터 예약일시 수정금지_20090607
  3777. if(model.getValue("/root/main/prcpdetl/prcpdetllist["+iRow+"]/mig") != ""){
  3778. messageBox("마이그레이션 데이터는 예약일시를 수정 하실 수 없습니다.", "I");
  3779. model.makeValue("/root/main/prcpdetl/prcpdetllist["+iRow+"]/actorddd", model.getValue("/root/main/prcpdetl/prcpdetllist["+iRow+"]/realactorddd"));
  3780. grd_prcpdetl.refresh();
  3781. return;
  3782. }
  3783. rsrvdd();//예약변경내역 유효성체크
  3784. //20090723 dhkim 진단체크(hit 손주연대리님 요청)
  3785. //js단 수진의 진단 존재여부 check.
  3786. //진단이 있는 수진일 경우 해당 수진내역 return . 그렇지 않을 경우 POPUP 호출 => 수진선택 유도
  3787. fPopDiag(iRow);
  3788. }else if(iCol == grd_prcpdetl.colRef("rsrvtm")){//예약시간
  3789. // 마이그레이션 데이터 예약일시 수정금지_20090607
  3790. if(model.getValue("/root/main/prcpdetl/prcpdetllist["+iRow+"]/mig") != ""){
  3791. messageBox("마이그레이션 데이터는 예약일시를 수정 하실 수 없습니다.", "I");
  3792. var realrsrvtm = model.getValue("/root/main/prcpdetl/prcpdetllist["+iRow+"]/realrsrvtm");
  3793. if(realrsrvtm == ""){
  3794. realrsrvtm = "000000";
  3795. }
  3796. model.makeValue("/root/main/prcpdetl/prcpdetllist["+iRow+"]/rsrvtm", realrsrvtm);
  3797. grd_prcpdetl.refresh();
  3798. return;
  3799. }
  3800. //2010.06.04 김달현 - 그리드 컬럼의 추가가 빈번히 일어남에 따라 col idx가 아닌 colnm참조로 변경함.
  3801. frsrvtm(grd_prcpdetl.colRef("rsrvtm"));
  3802. }else{
  3803. return;
  3804. }
  3805. }
  3806. //2010.06.04 김달현 추가
  3807. //처방상세내역 Double Click이벤트 발생시 호출함
  3808. function fOnDblClickGrdPrcpdetl(){
  3809. //빈센트
  3810. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '04' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdid") ){
  3811. if (isDataCell() == true) {
  3812. if (grd_prcpdetl.col == grd_prcpdetl.colRef("prcpcd")) {
  3813. // var prcpclscd = model.getValue ("/root/main/prcpdetl/prcpdetllist[" + grd_prcpdetl.row + "]/prcpclscdnow");
  3814. model.makeValue ( "/root/hidden/receivedata/srchdrugcd", model.getValue ("/root/main/prcpdetl/prcpdetllist[" + grd_prcpdetl.row + "]/prcpcd" ));
  3815. open("SMADB01900", 0, 0, 0, "SMADB01900", "/root/hidden/receivedata","/root/hidden/receivedata");
  3816. }
  3817. }
  3818. }
  3819. //2010.06.07 김달현 - 처방명헤더 더블클릭시 한글명/영문명변경
  3820. if(isDataCell() == false){
  3821. //2010.06.04 김달현
  3822. //그리드헤더의 처방명 더블클릭시 한글명/영문명 변경
  3823. if(grd_prcpdetl.col == grd_prcpdetl.colRef("prcpnm")){
  3824. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = true;
  3825. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = false;
  3826. }else if(grd_prcpdetl.col == grd_prcpdetl.colRef("prcphngnm")){
  3827. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcphngnm")) = true;
  3828. grd_prcpdetl.colHidden(grd_prcpdetl.colRef("prcpnm")) = false;
  3829. }
  3830. grd_prcpdetl.refresh();
  3831. }
  3832. }
  3833. //2010.06.04 김달현 추가
  3834. //마우스오버 이벤트 발생시 호출함수 추가
  3835. //전달사항 tooltiptext
  3836. //처방명 tooltiptext (약제마스터의 혼동주의 세부항목 표시)
  3837. function fOnMouseoverGrdPrcpdetl(jRow, jCol){
  3838. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist";
  3839. //전달사항
  3840. if(jCol == grd_prcpdetl.colRef("prcpdelivefact")){
  3841. grd_prcpdetl.hint=model.getValue(xPrcpDetlPath+"["+jRow+"]/prcpdelivefact");
  3842. }
  3843. //처방한글명, 처방영문명(약제마스터의 혼동주의 세부항목 표시)
  3844. else if(jCol == grd_prcpdetl.colRef("prcpnm") || jCol == grd_prcpdetl.colRef("prcphngnm")){
  3845. femrViewWarnCnts(grd_prcpdetl, xPrcpDetlPath);//CareCom.js
  3846. }
  3847. else{
  3848. grd_prcpdetl.hint="";
  3849. }
  3850. }
  3851. /**
  3852. * @group :
  3853. * @ver : 2014.06.27
  3854. * @by : 권영애
  3855. * @---------------------------------------------------
  3856. * @type : function
  3857. * @access : public
  3858. * @desc : 상단정보올리기
  3859. * @param :
  3860. * @return :
  3861. * @---------------------------------------------------
  3862. */
  3863. function fTopofInfo(){
  3864. //20140623 kya 주사실이 아니면 상단정보 안올림
  3865. var srcdeptcd = model.getValue("/root/main/leftref/exec");
  3866. //alert(" srcdeptcd = " + srcdeptcd);
  3867. if (srcdeptcd != "3120000000") return;
  3868. if (grd_ordsper.row <= 0) {
  3869. //2011.05.03 cyw 상단정보 초기화
  3870. delPatientInfos();
  3871. return;
  3872. }
  3873. var i = grd_ordsper.row ;
  3874. //alert(" grd_ordsper.row = " + grd_ordsper.row);
  3875. var xTrgtPath = "/root/main/rghtlist/ordsperlist";
  3876. var ordtype = 'O';
  3877. var pid = model.getValue("/root/main/rghtref/rghtreflist/pid");
  3878. var orddd = model.getValue(xTrgtPath+"["+i+"]/actorddd").substr(0, 8);
  3879. var cretno = model.getValue(xTrgtPath+"["+i+"]/cretno");
  3880. var instcd = model.getValue(xTrgtPath+"["+i+"]/instcd");
  3881. var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + '' + "▦" + '';
  3882. //alert("param = " + param);
  3883. setParameter("condparam", param);
  3884. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  3885. }
  3886. /**
  3887. * @group :
  3888. * @ver : 2015.01.05
  3889. * @by : 권영애
  3890. * @---------------------------------------------------
  3891. * @type : function
  3892. * @access : public
  3893. * @desc : 부서 기록관리
  3894. * @param :
  3895. * @return :
  3896. * @---------------------------------------------------
  3897. */
  3898. function fGetMediRec(){
  3899. var pid = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/pid");
  3900. var orddd = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/orddd");
  3901. var cretno = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/cretno");
  3902. var ioflag = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/ordtype");
  3903. var orddeptcd = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/deptcd");
  3904. var orddrid = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/orddrid");
  3905. var patnm = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/hngnm");
  3906. var gndrage = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/gndrage");
  3907. var age = gndrage.substring(0,1);
  3908. var sex = gndrage.substring(2);
  3909. var suppdeptcd = model.getValue("//root/send/globalinstance/instance1");
  3910. var formdeptcd = "2010300000";
  3911. //20131107 실시일자추가
  3912. var execdd = model.getValue("/root/main/biztrgtman/biztrgtmanlist[" + grd_biztrgtman.row + "]/workdd");
  3913. if (execdd == "00000000") {
  3914. execdd = getCurrentDate();
  3915. }
  3916. setParameter("SPMMR05400_parm_pinfo", pid + "▦" + orddd + "▦" + cretno + "▦" + ioflag + "▦" + orddeptcd + "▦" + orddrid +"▦"+ patnm + "▦" + age + "▦" + sex + "▦" + suppdeptcd + "▦" + formdeptcd);
  3917. setParameter("SPMMR05400_parm_formrecdd", execdd); //20131107 kya 추가
  3918. open("SPMMR05400", "", "", "" ,"SPMMR05400", "", "");
  3919. }
  3920. /* @group : 결과조회
  3921. * @ver : 2007.06.14
  3922. * @by : 장준원
  3923. * @-----------------------------------
  3924. * @type : function
  3925. * @access : public
  3926. * @desc : 사용자 환경설정 tab 세팅
  3927. */
  3928. function fSetUserTermInit(){
  3929. var AnswData = fGetIntefeAnsw("063");
  3930. //alert("AnswData = " + AnswData);
  3931. if(AnswData != ""){
  3932. if(AnswData == "001"){
  3933. model.setValue("/root/main/leftref/term", "1");
  3934. }
  3935. if(AnswData == "002"){
  3936. model.setValue("/root/main/leftref/term", "15");
  3937. }
  3938. if(AnswData =="003"){
  3939. model.setValue("/root/main/leftref/term", "30");
  3940. }
  3941. if(AnswData == "004"){
  3942. model.setValue("/root/main/leftref/term", "60");
  3943. }
  3944. if(AnswData == "005"){
  3945. model.setValue("/root/main/leftref/term", "91");
  3946. }
  3947. if(AnswData == "006"){
  3948. model.setValue("/root/main/leftref/term", "182");
  3949. }
  3950. if(AnswData == "007"){
  3951. model.setValue("/root/main/leftref/term", "365");
  3952. }
  3953. if(AnswData == "008"){
  3954. model.setValue("/root/main/leftref/term", "730");
  3955. }
  3956. ipt_edate.value = getCurrentDate();
  3957. var date2 = ipt_edate.value;
  3958. var term = model.getValue("/root/main/leftref/term");
  3959. ipt_sdate.value = date2.toDate().getAddDate(-term, "D").getDateFormat("YYYYMMDD") ;
  3960. }else{
  3961. //조회기간, Combo Box 초기화
  3962. ipt_edate.value = getCurrentDate();
  3963. var vRsrvdd = ipt_edate.value ;
  3964. model.setValue("/root/main/leftref/term", "730");
  3965. var term = model.getValue("/root/main/leftref/term");
  3966. ipt_sdate.value = vRsrvdd.toDate().getAddDate(-term , "D").getDateFormat("YYYYMMDD") ;
  3967. }
  3968. ipt_sdate.refresh();
  3969. ipt_edate.refresh();
  3970. }
  3971. /**
  3972. * @desc : 사용자 환경설정의 값을 조회한다.
  3973. * @param : qestcd : 질문값
  3974. * @return : Answcnt ( 답안값)
  3975. */
  3976. function fGetIntefeAnsw(qestcd){
  3977. var sysMessageobj = getViewer("sysMessage");
  3978. if(sysMessageobj != null){
  3979. var anstcnt = sysMessageobj.window.instance1.selectSingleNode("/root/properties/orderbasicinfo/envinfo[qestcd='" + qestcd + "']/answcnt").text;
  3980. return anstcnt;
  3981. }else{
  3982. var mmb_rsltref = "/root/userenv/answlist";
  3983. var ref = "/root/userenv/cond"
  3984. var answcnt = "";
  3985. model.removeNode(mmb_rsltref);
  3986. model.makeNode(mmb_rsltref);
  3987. model.makeValue(ref + "/interqestcd", qestcd);
  3988. if(submit("TRMMB01104", "false", ref, mmb_rsltref) == true){
  3989. answcnt = model.getValue("/root/userenv/interface/answcnt")
  3990. model.removeNode(mmb_rsltref);
  3991. return answcnt;
  3992. }
  3993. }
  3994. }