SMMNI00100.xjs 163 KB

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