SMMNR034.js 119 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139
  1. /*
  2. 외래간호일지(SMMNR03400.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xCondPath = "/root/main/cond"; // 조건정보
  7. var xPamInfoPath = "/root/main/paminfo/pamlist"; // 환자정보
  8. var xSrchedStmtInfoPath = "/root/init/recinfo/stmtinfo"; // 조회된진술문정보
  9. var xSrchedAttrInfoPath = "/root/init/recinfo/attrinfo"; // 조회된속성정보
  10. var xInitGrupInfoPath = "/root/init/grupinfo/gruplist"; // 부서(용도)코드
  11. var xInitPatInfoPath = "/root/init/patinfo/patlist"; // 환자조회정보
  12. var xOpAnstInfoPath = "/root/init/opanstinfo/opanstlist"; // 수술마취 부서(용도)코드
  13. var xStmtInfoPath = "/root/main/stmtinfo/stmtlist"; // 진술문정보
  14. var xNursingRecordListPath = "/root/main/nursingrecordinfo/nursingrecordlist"; // 간호기록 내역
  15. var xNursingRecInfoPath = "/root/main/recinfo/nursingrecordlist"; // 간호기록 내역
  16. var xSignPath = "/root/main/signSaveData/saveDataList";//인증저장관련노드
  17. var srchFlag = "";
  18. var CmbNo = 1;
  19. var sPid = ""; // 환자번호
  20. var sIndd = ""; // 입원일자
  21. var sOrdDD = ""; // 진료일자
  22. var sCretNo = ""; // 환자 일자별 일련번호
  23. var sInstcd = ""; // 기관코드
  24. var sIOFlag = ""; // 입원/외래 구분
  25. var sOrdDeptCd = ""; // 진료과코드
  26. var sOrdDrId = ""; // 진료의사ID
  27. var sHngNm = ""; //환자명
  28. var sAge = ""; //환자나이
  29. var sRecFlag = ""; // 기록 구분
  30. var sGrupCd = ""; // 그룹코드
  31. var sRecLnkKey = ""; // 기록연계키
  32. var sPrcpFlag = ""; // 처방구분
  33. var sPrcpInfo = ""; // 처방정보
  34. var sPrcpNM = ""; // 처방명
  35. var sImagePath = "../../../emr/commonweb/images";
  36. var sPatInfo = ""; // 환자정보(상단정보 미존재-가정간호, 내시경)
  37. var sRecDateFlag = "";
  38. var DutPlceCD = "";
  39. var FreeTextOnlyUseYN ="";
  40. var gMenuGrupCd = "";
  41. var gStndColCnt = 13;
  42. var sTextAutoSave = "";
  43. var sAutoProcFlag = "false";
  44. var gSignRecYN = ""; //혈당기록의 경우 화면에서 타입2에 대한 재인증을 해야한다.그래서 타입2에서 인증저장한 흔적을 남겨야한다.20090625 김홍점
  45. //------------(20100622:경북대)
  46. var stmtcd1 = ""; //type2용 진술문번호-투약
  47. var stmtcd2 = ""; //type2용 진술문번호-검사
  48. var stmtcd3 = ""; //type2용 진술문번호-처치
  49. //------------(20100622:경북대)
  50. var signtime = "";
  51. var vsettime = "";
  52. /**
  53. * @group :
  54. * @ver : 2007.05.21
  55. * @by : 이은영
  56. * @---------------------------------------------------
  57. * @type : function
  58. * @access : public
  59. * @desc : 화면 초기화
  60. * @param :pFlag : refresh하는 화면에서 init으로 넘겨줌.
  61. * @return :
  62. * @---------------------------------------------------
  63. */
  64. function fInitialize(pFlag){
  65. //zbcfGetCodeList(new Array("M0199"), new Array("/root/init/grupcdinfo/grupcdlist")); // 부서정보(기록구분)
  66. //var sSupCd = "00000005";
  67. //
  68. opener.javascript.setParameter("SMMNR03400_SignRecYN", "");
  69. if ( pFlag == "init" ){
  70. var openSID = opener.javascript.getScreenID() ;
  71. var opencdid = model.getValue(xInitGrupInfoPath+"[hngnm='"+openSID+"' and cdgrupid = '136']/paramcd");
  72. if ( !isNull(openSID) && ( isNull(opencdid) || (getScreenMenuParameter() != '010' && opencdid == "02" )) ){
  73. return;
  74. }
  75. } else{
  76. //20090415 용도부서코드 공통코드테이블에 데이터화. 김홍점
  77. //20090910 136 - 상단정보 바뀔때마다 타입2화면 refresh 할 opener의 SID khj
  78. model.makeValue("/root/send/cdgrupid","'054','136','T84'");
  79. submit("TRMNR03403");
  80. }
  81. signtime = model.getValue("/root/init/grupinfo/gruplist[cdgrupid ='T84']/paramcd");
  82. if(signtime == "" || signtime == null) {
  83. signtime = 0;
  84. }
  85. //-------------(20100622:경북대)
  86. if(submit("TRMNR03499")){
  87. stmtcd1 = model.getValue("/root/hidden2/stmtinfo/stmtcd1");
  88. stmtcd2 = model.getValue("/root/hidden2/stmtinfo/stmtcd2");
  89. stmtcd3 = model.getValue("/root/hidden2/stmtinfo/stmtcd3");
  90. }
  91. if (stmtcd1 == "") {
  92. messageBox( "간호type2용진술문에 대한 확인이 필요합니다.","I008");
  93. stmtcd1 = "00000001";
  94. stmtcd2 = "00000002";
  95. stmtcd3 = "00000003";
  96. }
  97. //alert(stmtcd1 + "/" + stmtcd2 + "/" + stmtcd3 );
  98. //-------------(20100622:경북대)
  99. gMenuGrupCd = getGlobalVariable("menugroupcd");
  100. gMenuGrupCd = (gMenuGrupCd.split("|"))[0];
  101. /*
  102. - 기록 구분 정보
  103. SMMNR03400_ParamBase : recflag▦dutplaccd▦reclnkkey => 기록구분▦부서코드▦기록연계키
  104. SMMNR03400_ParamPrcp : prcpflag▦prcpnm => 처방구분▦처방정보
  105. - 기록구분(recflag) :
  106. A : 일일입원실,
  107. B : 혈당기록,
  108. C : 특주-> 서울(012)의 경우 암센터주사실,
  109. D : DSC,
  110. E : 응급실,
  111. F : BMT주사실,
  112. G : 간호일지 (type2에서 사용하면 안됌)
  113. H : 가정간호,
  114. I : 주사실,
  115. L : 투석실,
  116. M : 분만간호
  117. N : Angio,
  118. O : 외래,
  119. P : 수술실,
  120. Q : 심도자실
  121. R : 회복실,
  122. S : 전문간호,
  123. T : 입원전검사
  124. U : APU 성분헌혈실
  125. W :병동
  126. V : 과내
  127. J :간클리닉
  128. K : 기관지
  129. X :내시경
  130. Y :부정맥
  131. Z :Echo
  132. 1 : DCC
  133. 2 : CT
  134. - 부서코드(dutplaccd) :
  135. //Not Used
  136. 12611 : 외래, 33100 : 기능검사, 31900 : 주사실,
  137. 34100 : DSC, 미정 : 전문간호, 50112 : 가정간호,
  138. 82015 : 응급실, 10900 : 마취과, 31170 : 회복실,
  139. 31400 : 투석실 00001 : 혈당기록
  140. //20080708 김홍점 수정
  141. 가정 001
  142. 간클리닉 002
  143. 기관지 003
  144. 내시경 004
  145. 병동 005
  146. 부정맥 006
  147. 분만 007
  148. 성분 008
  149. 외래 009
  150. 응급 010
  151. 전문 011
  152. 주사 012
  153. 통원 013
  154. 투석 014
  155. 혈당 015
  156. Echo 016
  157. 특주 017
  158. 입원전검사 018
  159. Angio 019
  160. 심도자실 020
  161. 수술 021 수술실 따로 떨어짐
  162. 과내 022
  163. BMT주사실 023
  164. DCC 024
  165. CT 025
  166. 분만 026 응급실환자가 분만실에서 처치를 받을경우
  167. 외래 027 병동환자가 외래에서 처치및 소수술을 받는경우
  168. 마취 900
  169. 회복 900
  170. - 처방구분(prcpflag)
  171. A : 투약
  172. H : 처치
  173. T : 검사 */
  174. var sPatSelUseYN="";
  175. var sParamInfo = "";
  176. var sPamInfo = "";
  177. var sParamPid = ""; // 141205 - AYS 추가
  178. var sParamRecflag = ""; // 141205 - AYS 추가
  179. if( !isNull(getScreenMenuParameter()) ){
  180. sPatSelUseYN = model.getValue(xInitGrupInfoPath+"[paramcd="+getScreenMenuParameter()+"]/patseluseyn");
  181. }
  182. grd_stmtinfo.fixedcellcheckbox(0, grd_stmtinfo.colRef("check")) = true;
  183. if ( sPatSelUseYN != "Y" ){
  184. model.removenode(xStmtInfoPath);
  185. //grd_stmtinfo.fixedcellcheckbox(0, grd_stmtinfo.colRef("check")) = true;
  186. // 환자정보 조회
  187. model.removenode("/root/main/paminfo");
  188. model.makenode("/root/main/paminfo");
  189. sPamInfo = getGlobalVariable("paminfo");
  190. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
  191. opt_pid.visible = true;
  192. ipt_srchpid.visible = false;
  193. btn_srchpid.visible = false;
  194. cmb_pid.visible = false;
  195. cap_settingrn.visible = false;
  196. cmb_settingrn.visible = false;
  197. cmb_pid_er.visible = false;
  198. caption4.attribute("left") = "340px";
  199. cmb_pid.attribute("left") = "428px";
  200. //환자정보 세팅
  201. sPid = model.getValue(xPamInfoPath+"/pid");
  202. sHngNm = model.getValue(xPamInfoPath+"/hngnm");
  203. sHngNm2 = model.getValue(xPamInfoPath+"/hngnm2");
  204. sAge = model.getValue(xPamInfoPath+"/age");
  205. sIOFlag = model.getValue(xPamInfoPath+"/ioflag"); // 입원/외래 구분
  206. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  207. sIndd = model.getValue(xPamInfoPath+"/indd"); // 진료일자
  208. sOrdDD = "-";
  209. //} else if(sIOFlag == "O"){ // 외래
  210. } else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 김홍점 김영림 itc 요청서에 의한 반영
  211. sOrdDD = model.getValue(xPamInfoPath+"/orddd"); // 진료일자
  212. sIndd = "-";
  213. }
  214. sCretNo = model.getValue(xPamInfoPath+"/cretno"); // 환자 일자별 일련번호
  215. sInstcd = model.getValue(xPamInfoPath+"/instcd"); // 기관코드
  216. sOrdDeptCd = model.getValue(xPamInfoPath+"/orddeptcd"); // 진료과코드
  217. sOrdDrId = model.getValue(xPamInfoPath+"/medispclid"); // 진료의사ID
  218. if(checkOpener()){
  219. sParamInfo = opener.javascript.getParameter("SMMNR03400_ParamBase");
  220. sPrcpInfo = opener.javascript.getParameter("SMMNR03400_ParamPrcp");
  221. sTextAutoSave = opener.javascript.getParameter("SMMNR03400_ParamSaveText");
  222. //sRecFlag = getArrayData(sParamInfo,1,0); // 기록구분 20090409 김홍점
  223. DutPlceCD = getArrayData(sParamInfo,1,1); // 부서코드
  224. sParamRecflag = getArrayData(sParamInfo,1,0);
  225. sParamPid = ((getArrayData(sParamInfo,1,2)).split(","))[1]; // 신장실 투석환자와 상단환자 정보와 다를 시 window.close
  226. //sParamPid = (sParamPid.split(","))[1];
  227. if ( DutPlceCD == "014" && sParamRecflag =="L" && !isNull(sParamPid)){
  228. if( sParamPid != sPid ) {
  229. messageBox("혈액투석 선택환자와 상단환자가","E004");
  230. window.close();
  231. }
  232. }
  233. if ( !isNull(DutPlceCD) ){
  234. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  235. }
  236. if(DutPlceCD=="001"){
  237. //pid ▦ instcd ▦ hngnm ▦ age ▦ cretno ▦ ioflag ▦ orddeptcd ▩
  238. sPatInfo = opener.javascript.getParameter("SMMNR03400_HomeCare");
  239. opener.javascript.setParameter("SMMNR03400_HomeCare","");
  240. }
  241. if(DutPlceCD=="002" || DutPlceCD=="003" || DutPlceCD=="004" || DutPlceCD=="006" || DutPlceCD=="016" || DutPlceCD=="019" || DutPlceCD=="020" || DutPlceCD=="022" || DutPlceCD=="025"){//기능검사, 과내검사
  242. //pid ▦ instcd ▦ hngnm ▦ age ▦ cretno ▦ ioflag ▦ orddeptcd ▩
  243. sPatInfo = opener.javascript.getParameter("SMMNR03400_AST");
  244. opener.javascript.setParameter("SMMNR03400_AST","");
  245. }
  246. //opener.javascript.setParameter("SMMNR03400_ParamBase","");
  247. opener.javascript.setParameter("SMMNR03400_ParamPrcp","");
  248. opener.javascript.setParameter("SMMNR03400_ParamSaveText", "");
  249. if( getScreenMenuParameter()!= null && isNull(sParamInfo) ){
  250. DutPlceCD = getScreenMenuParameter();//20080705 김홍점
  251. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  252. if ( DutPlceCD == "021" && !isNull(getOperationInfo("oprsrvno")) ){//수술간호 메뉴에서 오픈시
  253. sRecLnkKey = getOperationInfo("oprsrvno") + "," + sInstcd;
  254. } else {
  255. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  256. }
  257. } else if ( gMenuGrupCd == "MG00520000" ){//전문간호 메뉴그룹으로 들어왔을경우
  258. DutPlceCD = "011";
  259. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  260. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  261. } else if ( gMenuGrupCd == "MG02030000" && DutPlceCD != "015" && DutPlceCD != "021" ){//마취 회복 메뉴그룹으로 들어왔을경우지만 혈당기록에서 띄울경우에는 혈당으로 떠야함.
  262. DutPlceCD = "900";
  263. }
  264. } else{
  265. if ( gMenuGrupCd == "MG00520000" ){//전문간호 메뉴그룹으로 들어왔을경우
  266. DutPlceCD = "011";
  267. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  268. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  269. } else if ( gMenuGrupCd == "MG02030000" && DutPlceCD != "015" && DutPlceCD != "021" ){//마취 회복 메뉴그룹으로 들어왔을경우지만 혈당기록에서 띄울경우에는 혈당으로 떠야함.
  270. DutPlceCD = "900";
  271. } else if( getScreenMenuParameter()!= null && isNull(sParamInfo) ){
  272. DutPlceCD = getScreenMenuParameter();//20080705 김홍점
  273. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  274. if ( DutPlceCD == "021" && !isNull(getOperationInfo("oprsrvno")) ){//수술간호 메뉴에서 오픈시
  275. sRecLnkKey = getOperationInfo("oprsrvno") + "," + sInstcd;
  276. } else {
  277. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  278. }
  279. }
  280. }
  281. if(sPamInfo == "" && sPatInfo == ""){
  282. messageBox("환자를 먼저","C002");
  283. return;
  284. }
  285. //else if ( sPamInfo != "" && DutPlceCD != "900" && DutPlceCD != "021" && DutPlceCD != "001" && DutPlceCD != "014"){
  286. // if ( sRecFlag == "B" ){
  287. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  288. // } else{
  289. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  290. // }
  291. //}
  292. if( isNull(DutPlceCD)){
  293. cmb_deptflag.disabled ="false";
  294. DutPlceCD = "015";
  295. sRecFlag = "B";//디폴트 혈당
  296. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  297. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  298. } else if( DutPlceCD == "900" ){//수술(20080926 따로 떨어짐) 마취 회복에서 호출할경우 || 마취 회복 메뉴그룹으로 들어왔을경우
  299. /*
  300. //용도(부서) : 마취삭제, 회복으로 기본 셋팅_KNU_20110111_SMY
  301. //grp_opanst.visible = "true";
  302. model.removeNodeset(xOpAnstInfoPath);
  303. model.makeNode(xOpAnstInfoPath);
  304. copyNodeset(xOpAnstInfoPath, xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']");
  305. cmb_deptflag.disabled ="false";
  306. cmb_deptflag.choices.itemset.attribute("nodeset") = xOpAnstInfoPath;
  307. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  308. cmb_deptflag.refresh(); */
  309. //grp_opanst.visible = "true";
  310. model.removeNodeset(xOpAnstInfoPath);
  311. model.makeNode(xOpAnstInfoPath);
  312. copyNodeset(xOpAnstInfoPath, xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']");
  313. cmb_deptflag.disabled ="true";
  314. cmb_deptflag.choices.itemset.attribute("nodeset") = xOpAnstInfoPath;
  315. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  316. cmb_deptflag.refresh();
  317. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  318. } else if( DutPlceCD=="001"
  319. || DutPlceCD=="002"
  320. || DutPlceCD=="003"
  321. //|| DutPlceCD=="004"
  322. || DutPlceCD=="006"
  323. || DutPlceCD=="019"
  324. || DutPlceCD=="020"
  325. || DutPlceCD=="022"
  326. || DutPlceCD=="025"
  327. || DutPlceCD=="016" ){//가정간호,기능검사에서 호출할경우 상단정보가 없으므로 다시 세팅
  328. sPid = getArrayData(sPatInfo,1,0);
  329. sHngNm = getArrayData(sPatInfo,1,2);
  330. sAge = getArrayData(sPatInfo,1,3);
  331. sIOFlag = getArrayData(sPatInfo,1,6); // 입원/외래 구분
  332. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  333. sIndd = getArrayData(sPatInfo,1,4); // 진료일자
  334. sOrdDD = "-";
  335. //}else if(sIOFlag == "O"){ // 외래
  336. } else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 김홍점 김영림 itc 요청서에 의한 반영
  337. sOrdDD = getArrayData(sPatInfo,1,4); // 진료일자
  338. sIndd = "-";
  339. }
  340. sCretNo = getArrayData(sPatInfo,1,5); // 환자 일자별 일련번호
  341. sInstcd = getArrayData(sPatInfo,1,1); // 기관코드
  342. sOrdDeptCd = getArrayData(sPatInfo,1,7); // 진료과코드
  343. sOrdDrId = getArrayData(sPatInfo,1,8); // 진료의사ID
  344. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  345. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  346. } else {
  347. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  348. //if ( sRecFlag == "B" ){
  349. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  350. //}else{
  351. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  352. //}
  353. //alert("sRecLnkKey:"+sRecLnkKey);
  354. if ( sPamInfo != "" && DutPlceCD != "900" && DutPlceCD != "021" && DutPlceCD != "001" && DutPlceCD != "014"){
  355. if ( sRecFlag == "B" ){
  356. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  357. } else{
  358. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  359. }
  360. } else if (sParamInfo != ""){
  361. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  362. }
  363. }
  364. // 조회조건 setting
  365. //sOrdDD = model.getValue(xPamInfoPath+"/orddd");
  366. model.setValue(xCondPath+"/grupcd",sGrupCd);
  367. model.setValue(xCondPath+"/recdateflag","A");
  368. model.setValue(xCondPath+"/certrecflag","C");
  369. model.setValue(xCondPath+"/fromdd",getCurrentDate());
  370. model.setValue(xCondPath+"/todd",getCurrentDate());
  371. model.setValue(xCondPath+"/dnarflag","%");
  372. model.setValue(xCondPath+"/sortseq","A");
  373. fSettingRecInfo();
  374. model.setValue(xCondPath+"/pid",sPid);
  375. model.setValue(xCondPath+"/pname",sHngNm2);
  376. model.setValue(xCondPath+"/age",sAge);
  377. model.toggle("stmtinfo");
  378. model.refresh();
  379. FreeTextOnlyUseYN = model.getValue(xInitGrupInfoPath+"[paramcd="+DutPlceCD+"]/freetextonlyuseyn");
  380. //if(DutPlceCD=="019" || DutPlceCD=="020"){//angio, 심도자실은 진술문은 존재하지않는다.Free Text 저장만 enable
  381. if( FreeTextOnlyUseYN != null && FreeTextOnlyUseYN== "Y" ){// 심도자실과 성가제외 angio 은 진술문은 존재하지않는다.Free Text 저장만 enable 성가 angio는 진술문 등록함.20090520 김홍점
  382. //btn_stmtsave.disabled = "true"; Free Text도 선택하여 진술문 인증저장버튼 이용.20091221 김홍점
  383. } else {
  384. if( !isNull(model.getValue(xCondPath+"/grupcd")) ){
  385. fMakeStmtList("true");
  386. }
  387. }
  388. if( sTextAutoSave != "" ){
  389. fFreeTextAutoSave();
  390. }
  391. } else {
  392. DutPlceCD = getScreenMenuParameter();
  393. opt_pid.visible = false;
  394. ipt_srchpid.visible = true;
  395. btn_srchpid.visible = true;
  396. cmb_pid.visible = false;
  397. cap_settingrn.visible = false;
  398. cmb_settingrn.visible = false;
  399. cmb_pid_er.visible = false;
  400. model.setFocus("ipt_srchpid");
  401. caption4.attribute("left") = "340px";
  402. cmb_pid.attribute("left") = "428px";
  403. if(DutPlceCD == "017") {
  404. suppdeptcd = aezfSetSuppDeptcd();
  405. cmb_pid.visible = true;
  406. cap_settingrn.visible = true;
  407. cmb_settingrn.visible = true;
  408. cmb_pid_er.visible = false;
  409. opt_pid.visible = false;
  410. opt_pname.visible = false;
  411. opt_age.visible = false;
  412. ipt_srchpid.visible = false;
  413. btn_srchpid.visible = false;
  414. caption4.attribute("left") = "530px";
  415. cmb_pid.attribute("left") = "618px";
  416. //2013.07.24 fSetItem() 함수로 빼냄
  417. /*
  418. //메인에 보여지는 화면 오브젝트를 가져온다.
  419. var mainObj = getMainViewer();
  420. model.makeNode("/root/tmp/cond");
  421. if(mainObj != null) {
  422. scrid = mainObj.javascript.getScreenID();
  423. if(scrid == "SMMNI02000") {
  424. model.makeValue("/root/tmp/cond/wardcd" , mainObj.model.getValue("/root/main/cond/wardcd" ));
  425. model.makeValue("/root/tmp/cond/settingrnid" , mainObj.model.getValue("/root/main/cond/settingrnid" ));
  426. model.makeValue("/root/tmp/cond/orddeptcd" , mainObj.model.getValue("/root/main/cond/orddeptcd" ));
  427. model.makeValue("/root/tmp/cond/medispclid" , mainObj.model.getValue("/root/main/cond/medispclid" ));
  428. model.makeValue("/root/tmp/cond/atdoctid" , mainObj.model.getValue("/root/main/cond/atdoctid" ));
  429. model.makeValue("/root/tmp/cond/indschacptstat" , mainObj.model.getValue("/root/main/cond/indschacptstat"));
  430. model.makeValue("/root/tmp/cond/prcpdd" , mainObj.model.getValue("/root/main/cond/prcpdd" ));
  431. model.makeValue("/root/tmp/cond/pid" , mainObj.model.getValue("/root/main/cond/pid" ));
  432. model.makeValue("/root/tmp/cond/rsrvinfoflag" , mainObj.model.getValue("/root/main/cond/rsrvinfoflag" ));
  433. model.makeValue("/root/tmp/cond/chk_prcpmixno" , mainObj.model.getValue("/root/main/cond/chk_prcpmixno" ));
  434. model.makeValue("/root/tmp/cond/hngnm" , mainObj.model.getValue("/root/main/cond/hngnm" ));
  435. model.makeValue("/root/tmp/cond/gndrage" , mainObj.model.getValue("/root/main/cond/gndrage" ));
  436. model.makeValue("/root/tmp/cond/rrgstno" , mainObj.model.getValue("/root/main/cond/rrgstno" ));
  437. model.makeValue("/root/tmp/cond/antcncryn" , mainObj.model.getValue("/root/main/cond/antcncryn" ));
  438. model.makeValue("/root/tmp/cond/drprcpetc2" , mainObj.javascript.drprcpetc2);
  439. }
  440. }
  441. */
  442. fSetItem();
  443. fSettingnurid();
  444. fGetPatList();
  445. fSetPatInitInfo();
  446. } else if (DutPlceCD == "010") {
  447. suppdeptcd = aezfSetSuppDeptcd();
  448. cmb_pid.visible = false;
  449. cap_settingrn.visible = false;
  450. cmb_settingrn.visible = false;
  451. cmb_pid_er.visible = true;
  452. opt_pid.visible = false;
  453. opt_pname.visible = false;
  454. opt_age.visible = false;
  455. ipt_srchpid.visible = false;
  456. btn_srchpid.visible = false;
  457. caption4.attribute("left") = "340px";
  458. cmb_pid.attribute("left") = "428px";
  459. //메인에 보여지는 화면 오브젝트를 가져온다.
  460. var mainObj = getMainViewer();
  461. if(mainObj != null) {
  462. scrid = mainObj.javascript.getScreenID();
  463. if(scrid == "SMMNE00100") {
  464. var sSrchData = "";
  465. var sSrchHeader = "flag▦orddept▦orddrid▦section▦fromorddd▦orddd▦wardcd▦outdt▦srchinstcd▩";
  466. var sSrchData = mainObj.model.getValue("/root/main/cond/indschacptstat") +"▦"
  467. + mainObj.model.getValue("/root/main/cond/orddeptcd") +"▦"
  468. + mainObj.model.getValue("/root/main/cond/medispclid") +"▦"
  469. + mainObj.model.getValue("/root/main/cond/section") +"▦"
  470. + getDateCalc(getCurrentDate().substr(0,8), 3, "-") +"▦"
  471. + getCurrentDate().substr(0,8) +"▦"
  472. + mainObj.model.getValue("/root/main/cond/wardcd") +"▦"
  473. + mainObj.model.getValue("/root/main/cond/outdt") +"▦"
  474. + mainObj.model.getValue("/root/main/cond/srchinstcd") +"▩";
  475. model.makeValue("/root/send/mainsearchinfo", sSrchHeader + sSrchData);
  476. }
  477. }
  478. submit("TRMNE00101");
  479. ///root/main/chemoinfo/
  480. fSetPatInitInfo();
  481. } else {
  482. }
  483. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  484. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  485. // 조회조건 setting
  486. //sOrdDD = model.getValue(xPamInfoPath+"/orddd");
  487. model.setValue(xCondPath+"/grupcd",sGrupCd);
  488. model.setValue(xCondPath+"/recdateflag","A");
  489. model.setValue(xCondPath+"/certrecflag","C");
  490. model.setValue(xCondPath+"/fromdd",getCurrentDate());
  491. model.setValue(xCondPath+"/todd",getCurrentDate());
  492. model.setValue(xCondPath+"/dnarflag","%");
  493. model.setValue(xCondPath+"/sortseq","A");
  494. fSettingRecInfo();
  495. if( isNull(DutPlceCD)){
  496. cmb_deptflag.disabled ="false";
  497. DutPlceCD = "015";
  498. sRecFlag = "B";//디폴트 혈당
  499. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  500. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  501. } else if( DutPlceCD == "900" ){//수술(20080926 따로 떨어짐) 마취 회복에서 호출할경우 || 마취 회복 메뉴그룹으로 들어왔을경우
  502. /*
  503. //용도(부서) : 마취삭제, 회복으로 기본 셋팅_KNU_20110111_SMY
  504. //grp_opanst.visible = "true";
  505. model.removeNodeset(xOpAnstInfoPath);
  506. model.makeNode(xOpAnstInfoPath);
  507. copyNodeset(xOpAnstInfoPath, xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']");
  508. cmb_deptflag.disabled ="false";
  509. cmb_deptflag.choices.itemset.attribute("nodeset") = xOpAnstInfoPath;
  510. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  511. cmb_deptflag.refresh(); */
  512. //grp_opanst.visible = "true";
  513. model.removeNodeset(xOpAnstInfoPath);
  514. model.makeNode(xOpAnstInfoPath);
  515. copyNodeset(xOpAnstInfoPath, xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']");
  516. cmb_deptflag.disabled ="true";
  517. cmb_deptflag.choices.itemset.attribute("nodeset") = xOpAnstInfoPath;
  518. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  519. cmb_deptflag.refresh();
  520. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  521. } else if( DutPlceCD=="001"
  522. || DutPlceCD=="002"
  523. || DutPlceCD=="003"
  524. //|| DutPlceCD=="004"
  525. || DutPlceCD=="006"
  526. || DutPlceCD=="019"
  527. || DutPlceCD=="020"
  528. || DutPlceCD=="022"
  529. || DutPlceCD=="025"
  530. || DutPlceCD=="016" ){//가정간호,기능검사에서 호출할경우 상단정보가 없으므로 다시 세팅
  531. sPid = getArrayData(sPatInfo,1,0);
  532. sHngNm = getArrayData(sPatInfo,1,2);
  533. sAge = getArrayData(sPatInfo,1,3);
  534. sIOFlag = getArrayData(sPatInfo,1,6); // 입원/외래 구분
  535. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  536. sIndd = getArrayData(sPatInfo,1,4); // 진료일자
  537. sOrdDD = "-";
  538. //}else if(sIOFlag == "O"){ // 외래
  539. } else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 김홍점 김영림 itc 요청서에 의한 반영
  540. sOrdDD = getArrayData(sPatInfo,1,4); // 진료일자
  541. sIndd = "-";
  542. }
  543. sCretNo = getArrayData(sPatInfo,1,5); // 환자 일자별 일련번호
  544. sInstcd = getArrayData(sPatInfo,1,1); // 기관코드
  545. sOrdDeptCd = getArrayData(sPatInfo,1,7); // 진료과코드
  546. sOrdDrId = getArrayData(sPatInfo,1,8); // 진료의사ID
  547. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  548. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  549. } else {
  550. sGrupCd = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/grupcd");
  551. //if ( sRecFlag == "B" ){
  552. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  553. //} else{
  554. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  555. //}
  556. //alert("sRecLnkKey:"+sRecLnkKey);
  557. if ( sPamInfo != "" && DutPlceCD != "900" && DutPlceCD != "021" && DutPlceCD != "001" && DutPlceCD != "014"){
  558. if ( sRecFlag == "B" ){
  559. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  560. } else{
  561. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  562. }
  563. } else if (sParamInfo != ""){
  564. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  565. }
  566. }
  567. // 조회조건 setting
  568. //sOrdDD = model.getValue(xPamInfoPath+"/orddd");
  569. model.setValue(xCondPath+"/grupcd",sGrupCd);
  570. model.setValue(xCondPath+"/recdateflag","A");
  571. model.setValue(xCondPath+"/certrecflag","C");
  572. model.setValue(xCondPath+"/fromdd",getCurrentDate());
  573. model.setValue(xCondPath+"/todd",getCurrentDate());
  574. model.setValue(xCondPath+"/dnarflag","%");
  575. model.setValue(xCondPath+"/sortseq","A");
  576. fSettingRecInfo();
  577. model.setValue(xCondPath+"/pid",sPid);
  578. model.setValue(xCondPath+"/pname",sHngNm2);
  579. model.setValue(xCondPath+"/age",sAge);
  580. model.toggle("stmtinfo");
  581. model.refresh();
  582. FreeTextOnlyUseYN = model.getValue(xInitGrupInfoPath+"[paramcd="+DutPlceCD+"]/freetextonlyuseyn");
  583. //if(DutPlceCD=="019" || DutPlceCD=="020"){//angio, 심도자실은 진술문은 존재하지않는다.Free Text 저장만 enable
  584. if( FreeTextOnlyUseYN != null && FreeTextOnlyUseYN== "Y" ){// 심도자실과 성가제외 angio 은 진술문은 존재하지않는다.Free Text 저장만 enable 성가 angio는 진술문 등록함.20090520 김홍점
  585. //btn_stmtsave.disabled = "true"; Free Text도 선택하여 진술문 인증저장버튼 이용 20091221 김홍점
  586. } else {
  587. if( !isNull(model.getValue(xCondPath+"/grupcd")) ){
  588. fMakeStmtList("true");
  589. }
  590. }
  591. if( sTextAutoSave != "" ){
  592. fFreeTextAutoSave();
  593. }
  594. }
  595. addComboItem("cmb_deptflag", "전체", "");
  596. var inrmdd = model.property("inrmdd");
  597. var inrmtm = model.property("inrmtm");
  598. if(inrmdd != null && inrmdd != "") {
  599. model.makeValue("/root/send/reqdata/pid", sPid);
  600. model.makeValue("/root/send/reqdata/indd", sIndd);
  601. model.makeValue("/root/send/reqdata/cretno", sCretNo);
  602. model.makeValue("/root/send/reqdata/origincd", model.getValue("/root/main/cond/grupcd"));
  603. submit("TRMNR03405");
  604. var existyn = model.getValue("/root/main/prerecinfo/prereclist/existyn");
  605. if(existyn == "Y") {
  606. rdo_recflag.value = "A";
  607. ipt_recdd.disabled = true;
  608. ipt_rectm.disabled = true;
  609. btn_recdt.disabled = true;
  610. } else {
  611. rdo_recflag.value = "U";
  612. ipt_recdd.value = inrmdd;
  613. ipt_rectm.value = inrmtm;
  614. ipt_recdd.disabled = false;
  615. ipt_rectm.disabled = false;
  616. btn_recdt.disabled = false;
  617. }
  618. }
  619. }
  620. /**
  621. * @group :
  622. * @ver : 2009.05.20
  623. * @by : 양천덕
  624. * @---------------------------------------------------
  625. * @type : function
  626. * @access : public
  627. * @desc : 화면 오픈시 자동 저장 처리
  628. * @param : sTextAutoSave --> 자동 저장시 필요 Parameter
  629. * @return : true , false
  630. * @---------------------------------------------------
  631. */
  632. function fFreeTextAutoSave(){
  633. var sTextRecFalg = getArrayData(sTextAutoSave, 0, 0); //기록구분
  634. var sTextOutoFlag = getArrayData(sTextAutoSave, 0, 1); //자동기록구분 ("A", "U");
  635. var sTextRecDt = getArrayData(sTextAutoSave, 0, 2); //기록시간
  636. var sTextRecStmt = getArrayData(sTextAutoSave, 0, 3); //기록문장
  637. if(sTextRecFalg == "") sTextRecFalg = "S";
  638. rdo_freetextdnarflag.value = sTextRecFalg;
  639. textarea4.value = sTextRecStmt;
  640. rdo_recflag.value = "U";
  641. if(sTextRecDt.length < 12){
  642. ipt_recdd.value = getCurrentDate();
  643. ipt_rectm.value = getCurrentTime();
  644. }else{
  645. ipt_recdd.value = sTextRecDt.substr(0, 8);
  646. ipt_rectm.value = sTextRecDt.substr(8, 4);
  647. }
  648. if(sTextAutoSave != ""){
  649. //fSaveTextStmtInfo();
  650. fSelTextStmtInfo();
  651. fSaveCareRec();
  652. opener.javascript.setParameter("SPMNR03400_Return", sAutoProcFlag);
  653. model.close();
  654. }
  655. }
  656. /**
  657. * @group :
  658. * @ver : 2008.07.08
  659. * @by : 김홍점
  660. * @---------------------------------------------------
  661. * @type : function
  662. * @access : public
  663. * @desc : 수술마취회복 선택값
  664. * @param :
  665. * @return :
  666. * @---------------------------------------------------
  667. */
  668. function fGrpOpAnstSel(){
  669. // if( grd_opanst.row > 0 && grd_opanst.row < grd_opanst.rows-grd_opanst.fixedRows){
  670. // sGrupCd = model.getValue(xOpAnstInfoPath+"["+grd_opanst.row+"]/grupcd");
  671. // sRecFlag = model.getValue(xOpAnstInfoPath+"["+grd_opanst.row+"]/recflag");
  672. // grp_opanst.visible = "false";
  673. // }
  674. //수술마취회복이 부서코드가 900으로 넘어와 기록구분으로 그룹코드가 선택된다.
  675. sGrupCd = model.getValue("/root/main/cond/grupcd");
  676. sRecFlag = model.getValue(xInitGrupInfoPath+"[grupcd='"+sGrupCd+"']/recflag");
  677. if ( !isNull(getOperationInfo("oprsrvno")) && sRecFlag=="R" ){//회복선택시
  678. sRecLnkKey = sPid+"," + sInstcd + "," + getOperationInfo("oprsrvno") + "," +getOperationInfo("ophistno");
  679. }else if ( !isNull(getOperationInfo("oprsrvno")) && sRecFlag=="A" ){//마취선택시
  680. sRecLnkKey = getOperationInfo("oprsrvno") + "," +sInstcd;
  681. }
  682. // else if ( isNull(sRecLnkKey) ){
  683. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  684. // }
  685. }
  686. /**
  687. * @group :
  688. * @ver : 2007.05.21
  689. * @by : 이은영
  690. * @---------------------------------------------------
  691. * @type : function
  692. * @access : public
  693. * @desc : 기록정보 Setting
  694. * @param :
  695. * @return :
  696. * @---------------------------------------------------
  697. */
  698. function fSettingRecInfo(){
  699. var sRecDateFlag = model.getValue(xCondPath+"/recdateflag");
  700. if(sRecDateFlag == "A"){ // 자동
  701. model.setValue(xCondPath+"/recdd","");
  702. model.setValue(xCondPath+"/rectm","");
  703. btn_recdt.disabled = true;
  704. ipt_recdd.disabled = true;
  705. ipt_rectm.disabled = true;
  706. }else{ // 사용자 지정
  707. model.setValue(xCondPath+"/recdd",getCurrentDate());
  708. model.setValue(xCondPath+"/rectm",getCurrentTime().substr(0,4));
  709. ipt_recdd.disabled = false;
  710. ipt_rectm.disabled = false;
  711. btn_recdt.disabled = false;
  712. }
  713. ipt_recdd.refresh();
  714. ipt_rectm.refresh();
  715. rdo_recflag.refresh();
  716. }
  717. /**
  718. * @group :
  719. * @ver : 2007.05.22
  720. * @by : 이은영
  721. * @---------------------------------------------------
  722. * @type : function
  723. * @access : public
  724. * @desc : 진술문 리스트를 만듬
  725. * @param :pCheck : "false","true" 팝업으로 열릴때는 선택되도록 체크.
  726. * @return :
  727. * @---------------------------------------------------
  728. */
  729. function fMakeStmtList(pCheck){
  730. var iStmtRow = 1; // 진술문 순서
  731. var iAttrRow = 1; // 속성 순서
  732. var sAttrInfo = ""; // 속성정보
  733. var sAttrInfo2 = ""; // 속성정보2
  734. var sGrupNM = ""; // 그룹명
  735. var sStmtCnts = ""; // 진술문장
  736. var sAttrFlag = ""; // 속성구분
  737. var sAttrCD = "" // 속성코드
  738. var sPlnumChoiYN = ""; // 다중속성선택여부
  739. var sStmtCD = ""; // 진술문코드
  740. var sAttrCnt = 0; // 속성개수
  741. var sMaxAttrCnt = 0; // 최대 속성 개수
  742. var sAttrSeq = 0; // 속성순서
  743. var sCtrlID = "";
  744. // 해당 nodeset을 삭제하고 컬럼을 삭제함.
  745. var sColCnt = grd_stmtinfo.cols; // 컬럼개수
  746. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수 1은 첫번째 속성컬럼
  747. var sGrdCap = ""; // 그리드 컬럼ID
  748. var sGrdCapText = ""; // 그리드 컬럼명
  749. if ( DutPlceCD =="014"){//소경화 10-15 16:29 시간이요...지정으로 default
  750. model.setValue(xCondPath+"/recdateflag","U");
  751. rdo_recflag.dispatch("xforms-value-changed");
  752. } else {
  753. model.setValue(xCondPath+"/recdateflag", "A");
  754. rdo_recflag.dispatch("xforms-value-changed");
  755. }
  756. if( FreeTextOnlyUseYN != null && FreeTextOnlyUseYN== "Y" ){//angio(성가 제외), 심도자실은 진술문은 존재하지않는다.Free Text 저장만 enable이므로 이하 리턴
  757. return;
  758. }
  759. model.removenodeset(xStmtInfoPath);
  760. // col hidden상태에서 removeColumn시 colHidden 안 먹는 버그로 인해 잠시...
  761. //sColCnt컬럼 갯수이므로 실제 컬럼index는 -1해준다.(컬럼index는 0부터시작)
  762. for(var iCol=(sColCnt-1); iCol> (sStndColCnt-1); iCol--){
  763. if( grd_stmtinfo.colHidden(iCol) )
  764. grd_stmtinfo.colHidden(iCol) = false;
  765. }
  766. for(var iCol=(sColCnt-1); iCol> (sStndColCnt-1); iCol--){
  767. grd_stmtinfo.deleteColumn(iCol,"false");
  768. }
  769. //grd_stmtinfo.refresh();
  770. sGrdCap = grd_stmtinfo.caption.split("^");
  771. for(var iCol = 0; iCol < sStndColCnt; iCol++){
  772. sGrdCapText += sGrdCap[iCol];
  773. if(iCol < (sStndColCnt-1)){
  774. sGrdCapText += "^";
  775. }
  776. }
  777. grd_stmtinfo.caption = sGrdCapText;
  778. model.removenode("/root/send");
  779. model.makeValue("/root/send/grupcd",model.getValue(xCondPath+"/grupcd"));
  780. model.removenode("/root/init/recinfo");
  781. if(submit("TRMNR03401")){
  782. var sStmtRowCnt = getNodesetCnt(model, xSrchedStmtInfoPath);
  783. // 최대 속성 개수 체크
  784. for(var iRow = 1; iRow <= sStmtRowCnt; iRow++){
  785. sStmtCD = model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/stmtcd");
  786. if( iRow == 1){
  787. //--------(20100622:경북대)
  788. //if(sStmtCD == "00000001" || sStmtCD == "00000002" || sStmtCD == "00000003"){// 처방관련 진술문은 제외
  789. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){// 처방관련 진술문은 제외
  790. //--------(20100622:경북대)
  791. sMaxAttrCnt = eval(model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attrcnt"))-1;
  792. }else{
  793. sMaxAttrCnt = eval(model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attrcnt"));
  794. }
  795. }else{
  796. //--------(20100622:경북대)
  797. //if(sStmtCD == "00000001" || sStmtCD == "00000002" || sStmtCD == "00000003"){// 처방관련 진술문은 제외
  798. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){// 처방관련 진술문은 제외
  799. //--------(20100622:경북대)
  800. sAttrCnt = eval(model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attrcnt"))-1;
  801. }else{
  802. sAttrCnt = eval(model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attrcnt"));
  803. }
  804. if( sMaxAttrCnt < sAttrCnt){
  805. sMaxAttrCnt = sAttrCnt;
  806. }
  807. }
  808. }
  809. model.setValue("/root/temp/maxattrcnt", sMaxAttrCnt);
  810. fAddGridColumn(1);
  811. // SET 별 진술문 정보
  812. for(var iRow = 1; iRow <= sStmtRowCnt; iRow++){
  813. sGrupNM = model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/grupnm");
  814. sStmtCnts = model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/stmtcnts");
  815. sStmtCD = model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/stmtcd");
  816. //----------(20100622:경북대)
  817. //if(sStmtCD == "00000001" || sStmtCD == "00000002" || sStmtCD == "00000003"){
  818. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){
  819. //----------(20100622:경북대)
  820. continue; // 처방관련 진술문은 제외
  821. }else {
  822. grd_stmtinfo.addRow(false);
  823. iStmtRow = grd_stmtinfo.rows - grd_stmtinfo.fixedrows;
  824. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/check", "false");
  825. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupcd", model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/grupcd"));
  826. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupnm", sGrupNM);
  827. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcd", sStmtCD);
  828. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcnts", sStmtCnts);
  829. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo1", model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attrinfo1"));
  830. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo2", model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attrinfo2"));
  831. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attressnyn", model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attressnyn"));
  832. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/dnarflag", model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/dnarflag"));
  833. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrcnt", model.getValue(xSrchedStmtInfoPath+"["+iRow+"]/attrcnt"));
  834. fSettingAttrInfo(iStmtRow);
  835. }
  836. }
  837. grd_stmtinfo.allstyle("data","background-color") = "#FFFFFF"; // 전체 바탕색을 흰색으로 설정.
  838. // 처방에 따른 입력창 Setting
  839. if(sPrcpInfo != "" && sPrcpInfo.split("▩").length > 2 ){
  840. var sPrcpCnt = sPrcpInfo.split("▩").length-2;
  841. var sPrcpFlag = "";
  842. var sTerm = "";
  843. for(var iPrcpRow=1; iPrcpRow <= sPrcpCnt; iPrcpRow++){
  844. grd_stmtinfo.addRow(false);
  845. iStmtRow = grd_stmtinfo.rows - grd_stmtinfo.fixedrows;
  846. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupcd", "");
  847. sPrcpFlag = getArrayData(sPrcpInfo,iPrcpRow,0);
  848. if(sPrcpFlag == "A"){ //투약
  849. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupnm", "투약");
  850. //----------(20100622:경북대)
  851. //sStmtCD = "00000001";
  852. sStmtCD = stmtcd1;
  853. //----------(20100622:경북대)
  854. }else if(sPrcpFlag == "H"){ // 처치
  855. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupnm", "처치");
  856. //----------(20100622:경북대)
  857. //sStmtCD = "00000003";
  858. sStmtCD = stmtcd3;
  859. //----------(20100622:경북대)
  860. }else{
  861. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupnm", "검사");
  862. //----------(20100622:경북대)
  863. //sStmtCD = "00000002";
  864. sStmtCD = stmtcd2;
  865. //----------(20100622:경북대)
  866. }
  867. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcd", sStmtCD);
  868. sTerm = model.getValue(xSrchedStmtInfoPath+"[stmtcd ='"+sStmtCD+"']/stmtcnts").split(" ");
  869. sAttrInfo = model.getValue(xSrchedStmtInfoPath+"[stmtcd ='"+sStmtCD+"']/attrinfo2").split(" ");
  870. for(var i=0; i < sTerm.length; i++){
  871. if(sTerm[i] == "") {
  872. continue;
  873. }else{
  874. if(sTerm[i] != sAttrInfo[i]){
  875. sAttrSeq = eval( sAttrInfo[i].substr(1,1));
  876. if(sAttrSeq == 0){
  877. sStmtCnts = getArrayData(sPrcpInfo,iPrcpRow,1) + " ";
  878. sAttrInfo2 = getArrayData(sPrcpInfo,iPrcpRow,1) + " ";
  879. }else{
  880. sStmtCnts += sTerm[i];
  881. sAttrInfo2 += sAttrInfo[i];
  882. }
  883. }else{
  884. sStmtCnts += sTerm[i];
  885. sAttrInfo2 += sAttrInfo[i];
  886. }
  887. }
  888. }
  889. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/check", pCheck);
  890. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcnts", sStmtCnts);
  891. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo1", model.getValue(xSrchedStmtInfoPath+"[stmtcd ='"+sStmtCD+"']/attrinfo1"));
  892. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo2", sAttrInfo2);
  893. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attressnyn", model.getValue(xSrchedStmtInfoPath+"[stmtcd ='"+sStmtCD+"']/attressnyn"));
  894. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/dnarflag", model.getValue(xSrchedStmtInfoPath+"[stmtcd ='"+sStmtCD+"']/dnarflag"));
  895. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrcnt", model.getValue(xSrchedStmtInfoPath+"[stmtcd ='"+sStmtCD+"']/attrcnt"));
  896. fSettingAttrInfo(iStmtRow);
  897. grd_stmtinfo.rowstyle(iStmtRow,"data","background-color") = "#ffff88";
  898. }
  899. }
  900. grd_stmtinfo.mergecells = "bycol";
  901. grd_stmtinfo.mergecol(0) = false;
  902. grd_stmtinfo.mergecol(1) = false;
  903. grd_stmtinfo.mergecol(5) = false;
  904. grd_stmtinfo.refresh();
  905. grd_stmtinfo.resizeCells();
  906. }
  907. }
  908. /**
  909. * @group :
  910. * @ver : 2007.04.25
  911. * @by : 이은영
  912. * @---------------------------------------------------
  913. * @type : function
  914. * @access : public
  915. * @desc : 그리드 속성 컬럼에 노드셋 설정
  916. * @param :
  917. * @return :
  918. * @---------------------------------------------------
  919. */
  920. function fSettingAttrInfo(pStmtRow){
  921. var sStmtCD = model.getValue(xStmtInfoPath+"["+pStmtRow+"]/stmtcd");
  922. var sAttrInfo = model.getValue(xStmtInfoPath+"["+pStmtRow+"]/attrinfo1").split("⊙");
  923. var sAttrCnt = 0;
  924. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수
  925. var sMaxAttrCnt = model.getValue("/root/temp/maxattrcnt"); // 최대 속성 개수
  926. //-----------(20100622:경북대)
  927. //if(sStmtCD == "00000001" || sStmtCD == "00000002" || sStmtCD == "00000003" ){ // 처방
  928. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){ // 처방
  929. //-----------(20100622:경북대)
  930. sAttrCnt = sAttrInfo.length-2;
  931. }else{
  932. sAttrCnt = sAttrInfo.length-1;
  933. }
  934. for(var i=0; i<sAttrCnt; i++){
  935. //-----------(20100622:경북대)
  936. //if(sStmtCD == "00000001" || sStmtCD == "00000002" || sStmtCD == "00000003" ){ // 처방
  937. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){ // 처방
  938. //-----------(20100622:경북대)
  939. sAttrCD = sAttrInfo[(i+1)];
  940. }else{
  941. sAttrCD = sAttrInfo[i];
  942. }
  943. //grd_stmtinfo.cellstyle("background-image",pStmtRow,(sStndColCnt+3)+(3*i))="../../../com/commonweb/images/icon_btn.gif";
  944. //grd_stmtinfo.cellstyle("background-image",pStmtRow,0)="../../../emr/commonweb/images/event1.gif";
  945. model.makeValue(xStmtInfoPath+"["+pStmtRow+"]/attryn","▶");
  946. if(model.getValue(xSrchedAttrInfoPath+"[supcd='"+sAttrCD+"']/attrcd") != ""){
  947. sPlnumChoiYN = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCD+"']/plnumchoiyn");
  948. if(sPlnumChoiYN == "Y"){
  949. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+1)+(3*i)) = true;
  950. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+2)+(3*i)) = false;
  951. grd_stmtinfo.cellstyle("background-image",pStmtRow,(sStndColCnt+2)+(3*i))="../../../com/commonweb/images/icon_btn.gif";
  952. }else{
  953. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+1)+(3*i)) = false;
  954. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+2)+(3*i)) = true;
  955. }
  956. }else{
  957. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+1)+(3*i)) = false;
  958. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+2)+(3*i)) = true;
  959. }
  960. grd_stmtinfo.cellComboNodeset(pStmtRow,(sStndColCnt+1)+(3*i)) = xSrchedAttrInfoPath+"[supcd='"+sAttrCD+"']";
  961. model.setValue(xStmtInfoPath+"["+pStmtRow+"]/attrcd"+(i+1),sAttrCD);
  962. }
  963. // 속성개수가 최대 속성 개수보다 적은 진술문의 추가 속성 입력창은 읽기전용으로 설정
  964. for(var iAttrRow = sAttrCnt; iAttrRow < sMaxAttrCnt; iAttrRow++){
  965. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+1)+(3*iAttrRow)) = true;
  966. grd_stmtinfo.isreadonly(pStmtRow,(sStndColCnt+2)+(3*iAttrRow)) = true;
  967. }
  968. }
  969. /**
  970. * @group :
  971. * @ver : 2007.04.25
  972. * @by : 이은영
  973. * @---------------------------------------------------
  974. * @type : function
  975. * @access : public
  976. * @desc : 기록조회
  977. * @param :
  978. * @return :
  979. * @---------------------------------------------------
  980. */
  981. function fSrchCareRec(pFlag){
  982. if( isNull(model.getValue("/root/main/cond/grupcd"))){
  983. messageBox("용도(부서)를 먼저","C002");
  984. return;
  985. }
  986. if ( pFlag == "Y" && !fExistAddDNAR()) return;
  987. fDeSelect();
  988. DutPlceCD = getScreenMenuParameter();
  989. //항암주사실일경우에는 기록창으로 그냥 있도록 수정.
  990. model.toggle("recinfo");
  991. fSearchRecInfo();
  992. //if(DutPlceCD == "017") {
  993. // if(srchFlag == "1") {
  994. // fMakeStmtList("false");
  995. // } else if(srchFlag =="2") {
  996. // model.toggle("recinfo");
  997. // fSearchRecInfo();
  998. // }
  999. //
  1000. //} else {
  1001. // model.toggle("recinfo");
  1002. // fSearchRecInfo();
  1003. //}
  1004. }
  1005. /**
  1006. * @group :
  1007. * @ver : 2007.05.15
  1008. * @by : 이은영
  1009. * @---------------------------------------------------
  1010. * @type : function
  1011. * @access : public
  1012. * @desc : 저장하기 않은 간호기록 내역 존재여부
  1013. * @param :
  1014. * @return :
  1015. * @---------------------------------------------------
  1016. */
  1017. function fDeSelect(){
  1018. if( !isNull(model.getValue(xStmtInfoPath+"[check = 'true']/check")) ){
  1019. for(var idx = grd_stmtinfo.fixedRows ; idx <= grd_stmtinfo.rows-grd_stmtinfo.fixedRows ; idx++){
  1020. model.setValue(xStmtInfoPath+"["+ idx +"]/check", "false");
  1021. }
  1022. }
  1023. }
  1024. /**
  1025. * @group :
  1026. * @ver : 2007.05.15
  1027. * @by : 이은영
  1028. * @---------------------------------------------------
  1029. * @type : function
  1030. * @access : public
  1031. * @desc : 저장하기 않은 간호기록 내역 존재여부
  1032. * @param :
  1033. * @return :
  1034. * @---------------------------------------------------
  1035. */
  1036. function fExistAddDNAR(){
  1037. if ( !isNull(model.getValue(xStmtInfoPath+"[check = 'true']/check")) ){
  1038. var returnMsg = messageBox("저장하지 않은 선택 내역이 존재합니다. ", "Q002");// 저장하시겠습니까?
  1039. if ( returnMsg == 6 ) {
  1040. return false; //이후 진행 안함.
  1041. } else {
  1042. return true; //이후진행
  1043. }
  1044. }
  1045. return true; //이후진행
  1046. }
  1047. /**
  1048. * @group :
  1049. * @ver : 2007.04.26
  1050. * @by : 이은영
  1051. * @---------------------------------------------------
  1052. * @type : function
  1053. * @access : public
  1054. * @desc : 다중 선택의 속성코드의 경우 멀티 선택 가능 화면을 호출한다.
  1055. * @param : pCode : 속성 코드
  1056. * @return :
  1057. * @---------------------------------------------------
  1058. */
  1059. function fCallDetlAttrInfo(pRefPath){
  1060. var sRtn_Msg = "";
  1061. var sAttrInfo = "";
  1062. setParameter("SPMNR03000_Param",model.getValue(pRefPath+"/attrcd"));
  1063. modal("SPMNR03000");
  1064. setParameter("SPMNR03000_Param","");
  1065. sRtn_Msg = getParameter("SPMNR03000_Return");
  1066. if(sRtn_Msg == "" ) return;
  1067. sAttrInfo = sRtn_Msg.split("▦");
  1068. model.setValue(pRefPath+"/attrval",sAttrInfo[0]);
  1069. model.setValue(pRefPath+"/attrvalcd",sAttrInfo[1]);
  1070. model.refresh();
  1071. }
  1072. /**
  1073. * @group :
  1074. * @ver : 2007.06.15
  1075. * @by : 이은영
  1076. * @---------------------------------------------------
  1077. * @type : function
  1078. * @access : public
  1079. * @desc : 간호일지 내역 조회
  1080. * @param :
  1081. * @return :
  1082. * @---------------------------------------------------
  1083. */
  1084. function fSearchRecInfo(){
  1085. model.removeNodeset(xNursingRecordListPath);
  1086. if( isNull(sPid)){
  1087. messageBox("환자를 먼저","C002");
  1088. return;
  1089. }
  1090. var flag = model.property("flag");
  1091. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦type2▦flag▩";
  1092. var sSrchData = sPid+"▦"
  1093. +sIndd +"▦"
  1094. +sOrdDD+"▦"
  1095. +sCretNo+"▦"
  1096. +sIOFlag+"▦"
  1097. +model.getValue(xCondPath+"/fromdd")+"▦"
  1098. +model.getValue(xCondPath+"/todd")+"▦"
  1099. +model.getValue(xCondPath+"/dnarflag")+"▦"
  1100. +model.getValue(xCondPath+"/sortseq")+"▦"
  1101. +sRecFlag+"▦"
  1102. +sRecLnkKey+"▦"
  1103. +model.getValue(xCondPath+"/carediagflag")+"▦"
  1104. + "Y" + "▦"
  1105. + flag + "▩";
  1106. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  1107. if(submit("TRMNR03402")){
  1108. fSettingRec();
  1109. grd_carerecspec.resizeCells();
  1110. }
  1111. }
  1112. /**
  1113. * @group :
  1114. * @ver : 2007.06.16
  1115. * @by : 이은영
  1116. * @---------------------------------------------------
  1117. * @type : function
  1118. * @access : public
  1119. * @desc : 기록 setting
  1120. * @param :
  1121. * @return :
  1122. * @---------------------------------------------------
  1123. */
  1124. function fSettingRec(){
  1125. grd_carerecspec.mergecells = "byrestriccol";
  1126. grd_carerecspec.mergecol(4)=false;
  1127. grd_carerecspec.mergecol(5)=false;
  1128. grd_carerecspec.mergecol(6)=false;
  1129. var sCertKey = "";
  1130. var sInterpRecYN = "";
  1131. for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1132. sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1133. sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1134. if(sCertKey == ""){
  1135. if(sInterpRecYN == "N"){
  1136. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock.gif";
  1137. }else{
  1138. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock_add.gif";
  1139. }
  1140. }else{
  1141. if(sInterpRecYN == "N"){
  1142. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_Lock.gif";
  1143. }else{
  1144. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_Lock_add.gif";
  1145. }
  1146. }
  1147. }
  1148. }
  1149. /**
  1150. * @group :
  1151. * @ver : 2007.06.15
  1152. * @by : 이은영
  1153. * @---------------------------------------------------
  1154. * @type : function
  1155. * @access : public
  1156. * @desc : 통합기록용인증로직
  1157. * @param :
  1158. * @return :
  1159. * @---------------------------------------------------
  1160. */
  1161. function fViewSign(pFreeTextPath){
  1162. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
  1163. var signRecDD = "";
  1164. model.removenodeset("/root/send/signdata");
  1165. var sUpNodepath = (pFreeTextPath == null || pFreeTextPath == "" ? "/root/main/nursingrecordinfo" : pFreeTextPath );
  1166. for( var idx = 1 ; idx <= getNodesetCount( sUpNodepath + "/recddlist"); idx++ ){
  1167. signRecDD = model.getValue(sUpNodepath + "/recddlist["+ idx +"]/recdd");
  1168. model.removenodeset(xSignPath);
  1169. model.makeNode(xSignPath);
  1170. if(getNodesetCount(sUpNodepath + "/totnursingrecordlist[recdd='"+ signRecDD +"']")>0 ){
  1171. copyNodeset(xSignPath,sUpNodepath + "/totnursingrecordlist[recdd='"+ signRecDD +"']");
  1172. if(Sign.signprocess() == true){
  1173. var sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  1174. // 전자인증 관련 환자 인적 정보를 보내줌.
  1175. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/status", "i");
  1176. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid );//등록번호
  1177. if( sIOFlag =="O" || sIOFlag =="S" ){
  1178. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sOrdDD);//입원일자(입원,응급)/진료일자(외래)
  1179. }else{
  1180. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd);//입원일자(입원,응급)/진료일자(외래)
  1181. }
  1182. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", "");//서명번호
  1183. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo); //생성번호
  1184. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",signRecDD);// 실제 기록이 이루어진 기록일자
  1185. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm","000000");//실제 기록이 이루어진 기록시간
  1186. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recsaveflag","Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1187. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1188. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag",sIOFlag );//외래/입원구분(코드정의서 M0010 참조)
  1189. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
  1190. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddeptcd", sOrdDeptCd); //진료부서코드
  1191. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddrid", sOrdDrId ); //진료의사ID
  1192. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1193. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1194. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", Sign.signedInfos[1]);
  1195. // 공인인증 처리후 데이터
  1196. // model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  1197. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/screenid", getScreenID());
  1198. }
  1199. // else{
  1200. // return;
  1201. // }
  1202. } else{
  1203. sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  1204. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/status", "d"); //삭제 상태
  1205. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid );//등록번호
  1206. if( sIOFlag =="O" || sIOFlag =="S"){
  1207. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sOrdDD);//입원일자(입원,응급)/진료일자(외래)
  1208. }else{
  1209. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd);//입원일자(입원,응급)/진료일자(외래)
  1210. }
  1211. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", "");//서명번호
  1212. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo); //생성번호
  1213. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1214. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag",sIOFlag );//외래/입원구분(코드정의서 M0010 참조)
  1215. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", "삭제");
  1216. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
  1217. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",signRecDD);// 실제 기록이 이루어진 기록일자
  1218. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm","000000");// 실제 기록이 이루어진 기록일자
  1219. }
  1220. }
  1221. if ( getNodesetCount("/root/send/signdata") < 1 ){
  1222. return;
  1223. }
  1224. // submit("TXMNR00904");
  1225. if(submit("TXMNR00904")){
  1226. gSignRecYN = "Y";
  1227. }
  1228. }
  1229. /**
  1230. * @group :
  1231. * @ver : 2007.06.15
  1232. * @by : 이은영
  1233. * @---------------------------------------------------
  1234. * @type : function
  1235. * @access : public
  1236. * @desc : 인증로직
  1237. * @param :
  1238. * @return :
  1239. * @---------------------------------------------------
  1240. */
  1241. function fSign(){
  1242. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  1243. if( vsettime == "") {
  1244. Sign.certchkflag = "Y";
  1245. } else {
  1246. var res2 = getTimeInterval(vsettime, getCurrentTime(), 'hhmmss');
  1247. if(res2 > signtime* 60 || res2 < 0) {
  1248. Sign.certchkflag = "Y";
  1249. } else {
  1250. Sign.certchkflag = "N";
  1251. }
  1252. }
  1253. if(Sign.signprocess() == true){
  1254. vsettime = getCurrentTime();
  1255. // 전자인증 관련 환자 인적 정보를 보내줌.
  1256. model.makeValue("/root/send/signdata/pid", sPid );//등록번호
  1257. if( sIOFlag =="O" || sIOFlag =="S" ){
  1258. model.makeValue("/root/send/signdata/orddd", sOrdDD);//입원일자(입원,응급)/진료일자(외래)
  1259. }else{
  1260. model.makeValue("/root/send/signdata/orddd", sIndd);//입원일자(입원,응급)/진료일자(외래)
  1261. }
  1262. model.makeValue("/root/send/signdata/signno", "");//서명번호
  1263. model.makeValue("/root/send/signdata/cretno", sCretNo); //생성번호
  1264. if ( sRecDateFlag == "U" ){
  1265. model.makeValue("/root/send/signdata/recdd",model.getValue(xCondPath+"/recdd"));// 실제 기록이 이루어진 기록일자
  1266. model.makeValue("/root/send/signdata/rectm",model.getValue(xCondPath+"/rectm"));//실제 기록이 이루어진 기록시간
  1267. } else {
  1268. model.makeValue("/root/send/signdata/recdd",getCurrentDate());// 실제 기록이 이루어진 기록일자
  1269. model.makeValue("/root/send/signdata/rectm",getCurrentTime());//실제 기록이 이루어진 기록시간
  1270. }
  1271. model.makeValue("/root/send/signdata/recsaveflag","Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1272. model.makeValue("/root/send/signdata/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1273. model.makeValue("/root/send/signdata/signgenrflag",sIOFlag );//외래/입원구분(코드정의서 M0010 참조)
  1274. model.makeValue("/root/send/signdata/formcd","0000002432" ); //각 기록지별 서식코드0000002464(타입2)->0000002432(간호일지) 20080827 김영림itc 협의완료
  1275. model.makeValue("/root/send/signdata/orddeptcd", sOrdDeptCd); //진료부서코드
  1276. model.makeValue("/root/send/signdata/orddrid", sOrdDrId ); //진료의사ID
  1277. model.makeValue("/root/send/signdata/dispyn", "N"); //기록뷰어에는 조회안되도록
  1278. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1279. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1280. model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]);
  1281. // 공인인증 처리후 데이터
  1282. model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  1283. }else{
  1284. return false;
  1285. }
  1286. model.makeValue("/root/send/signdata/screenid", getScreenID());
  1287. return true;
  1288. }
  1289. /**
  1290. * @group :
  1291. * @ver : 2007.06.15
  1292. * @by : 이은영
  1293. * @---------------------------------------------------
  1294. * @type : function
  1295. * @access : public
  1296. * @desc : 인증데이터 생성함수
  1297. * @param :
  1298. * @return :
  1299. * @---------------------------------------------------
  1300. */
  1301. function fMake_SignData(){
  1302. Sign.addnode("/root/main/signSaveData");
  1303. }
  1304. /**
  1305. * @group :
  1306. * @ver : 2009.12.18
  1307. * @by : khj
  1308. * @---------------------------------------------------
  1309. * @type : function
  1310. * @access : public
  1311. * @desc : 기록 저장 시간 적용
  1312. * @param :
  1313. * @return :
  1314. * @---------------------------------------------------
  1315. */
  1316. function fRecDTAppend(){
  1317. sRecDateFlag = model.getValue(xCondPath+"/recdateflag"); // (A : 자동, U : 지정)
  1318. var sRecDate = model.getValue(xCondPath+"/recdd");
  1319. var sRecTime = model.getValue(xCondPath+"/rectm");
  1320. var iSelectedRows = grd_stmtinfo.selectedRows;
  1321. var iAppendRow = 0;
  1322. for ( var idx = 0 ; idx < iSelectedRows ; idx++){
  1323. iAppendRow = grd_stmtinfo.selectedRow(idx);
  1324. if( sRecDateFlag == "U" ){
  1325. model.makeValue(xStmtInfoPath+"["+iAppendRow+"]/recdtflag", "U" );
  1326. model.setValue(xStmtInfoPath+"["+iAppendRow+"]/recdt", sRecDate+sRecTime+"00");
  1327. model.setValue(xStmtInfoPath+"["+iAppendRow+"]/check", "true" );
  1328. }
  1329. }
  1330. var inrmdd = model.property("inrmdd");
  1331. if(inrmdd == "" || inrmdd == null) {
  1332. model.setValue(xCondPath+"/recdateflag", "A");
  1333. rdo_recflag.dispatch("xforms-value-changed");
  1334. rdo_recflag.refresh();
  1335. } else {
  1336. //for(var i = grd_stmtinfo.fixedRows; i < grd_stmtinfo.rows; i++) {
  1337. // chkyn = grd_stmtinfo.valueMatrix(i, grd_stmtinfo.colRef("check"));
  1338. //
  1339. // if(chkyn == "true") {
  1340. //
  1341. // model.makeValue(xStmtInfoPath+"["+i+"]/recdtflag", "U" );
  1342. // model.setValue(xStmtInfoPath+"["+i+"]/recdt", sRecDate+sRecTime+"00");
  1343. // model.setValue(xStmtInfoPath+"["+i+"]/check", "true" );
  1344. // }
  1345. //}
  1346. }
  1347. grd_stmtinfo.refresh();
  1348. }
  1349. /**
  1350. * @group :
  1351. * @ver : 2007.06.15
  1352. * @by : 이은영
  1353. * @---------------------------------------------------
  1354. * @type : function
  1355. * @access : public
  1356. * @desc : 기록 저장
  1357. * @param : pFlag : TempSave : 임시저장, CertSave : 인증저장
  1358. * @return :
  1359. * @---------------------------------------------------
  1360. */
  1361. function fSaveCareRec(pFlag){
  1362. var sAttrEssnYN = ""; // 선택 : C, 필수 : E
  1363. var sAttrinfo1 = "";
  1364. var sArrtCnt = 0;
  1365. var sRecInfoHeader = "stmtspec▦attrinfo▦status▦origincd▦stmtcd▦dnarflag▦recoriginflag▦recdtflag▦recdt▦"
  1366. +"pid▦indd▦cretno▦instcd▦ioflag▦orddeptcd▦recflag▦reclnkkey▦diagstmtcd▦orddd▦dnarnm▦usernm▦deptflagnm▩"; // 저장 정보
  1367. var sRecInfo = ""; // 저장 정보
  1368. var sStmtInfo = ""; // 완성된 진술문 정보
  1369. var sAttrInptYN = "N";
  1370. var sSaveData = "";
  1371. sRecDateFlag = model.getValue(xCondPath+"/recdateflag"); // (A : 자동, U : 지정)
  1372. var sRecDate = "";
  1373. var sStmtCnts = "";
  1374. var sSrchToolStatus = "T";//타입2에서 저장한것을 구분
  1375. var sGrupCD = "";
  1376. var sDNARFlag = "";
  1377. var sDiagStmtCd = "";
  1378. var sDNARNm ="";
  1379. var sDTAllAppYN = "N";
  1380. if(sRecDateFlag == "U"){
  1381. //기록건별 시간적용으로 변경 됨에 따른 추가 20091218 김홍점
  1382. // var rtnMsg = messageBox("적용하지 않은 지정 기록시간이 존재합니다.\n 저장할 모든 기록을 지정한 시간으로 ","Q009"); //Q009=적용 하시겠습니까?
  1383. // if ( rtnMsg != 6 ){
  1384. // sRecDate = "";
  1385. // return;
  1386. // }
  1387. //
  1388. // sDTAllAppYN = "Y";
  1389. sRecDate = model.getValue(xCondPath+"/recdd")+model.getValue(xCondPath+"/rectm") + "00";
  1390. if(isValidDateTime(sRecDate,"YYYYMMDDhhmmss")== false){
  1391. messageBox("기록 시간이 유효하지","E007");
  1392. return;
  1393. }
  1394. } else {
  1395. sRecDate = getCurrentDate() + getCurrentTime();
  1396. }
  1397. if(sPid == ""){
  1398. messageBox("환자를 먼저","C002");
  1399. return;
  1400. }
  1401. model.removenode("/root/send");
  1402. sGrupCD = model.getValue(xCondPath+"/grupcd");
  1403. for(var iRow=grd_stmtinfo.fixedrows; iRow<=grd_stmtinfo.rows-grd_stmtinfo.fixedrows; iRow++){
  1404. if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  1405. sAttrEssnYN = model.getValue(xStmtInfoPath+"["+iRow+"]/attressnyn");
  1406. // if(sGrupCD == ""){
  1407. // sSrchToolStatus = "J"; // 처방
  1408. // }
  1409. if(sAttrEssnYN == "E" && fExistAttrInput(xStmtInfoPath+"["+iRow+"]") == "N"){
  1410. sStmtCnts = model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcnts");
  1411. messageBox(sStmtCnts+" 진술문은 속성이","I003");
  1412. return;
  1413. }
  1414. sDNARNm = "";
  1415. sStmtInfo = fMakeStmt(xStmtInfoPath+"["+iRow+"]");
  1416. sDNARFlag = model.getValue(xStmtInfoPath+"["+iRow+"]/dnarflag");
  1417. sDiagStmtCd = model.getValue(xStmtInfoPath+"["+iRow+"]/diagstmtcd");
  1418. if ( !isNull(sDiagStmtCd)){
  1419. sDNARNm = model.getValue("/root/init/dnarflag/itemset[itemcd = '"+sDNARFlag+"']/itemnm");
  1420. }
  1421. sRecInfo += getArrayData(sStmtInfo,0,0) +"▦" // 진술문장
  1422. + getArrayData(sStmtInfo,0,1) + "▦" // 속성정보
  1423. + "I▦" // 상태
  1424. + sGrupCD + "▦" // 출처코드
  1425. + model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcd")+"▦" // 진술문코드
  1426. + model.getValue(xStmtInfoPath+"["+iRow+"]/dnarflag") + "▦" // dnar 구분
  1427. + sSrchToolStatus +"▦" // 기록 출처 구분
  1428. + ( isNull(model.getValue(xStmtInfoPath+"["+iRow+"]/recdt")) || sDTAllAppYN =="Y" ? sRecDateFlag
  1429. : model.getValue(xStmtInfoPath+"["+iRow+"]/recdtflag") ) + "▦" // 기록시간 구분
  1430. + ( isNull(model.getValue(xStmtInfoPath+"["+iRow+"]/recdt")) || sDTAllAppYN =="Y" ? sRecDate
  1431. : model.getValue(xStmtInfoPath+"["+iRow+"]/recdt") ) + "▦" // 기록시간 구분
  1432. // + sRecDate+"▦" // 기록시간
  1433. + sPid+"▦" // 환자번호
  1434. + sIndd+"▦" // 입원일자
  1435. + sCretNo+"▦" // 환자 일자별 일련번호
  1436. + sInstcd+"▦" // 기관코드
  1437. + sIOFlag+"▦" // 입원/외래 구분
  1438. + sOrdDeptCd+"▦" // 진료과코드
  1439. + sRecFlag+"▦" // 기록구분
  1440. + sRecLnkKey+"▦" // 기록연계키
  1441. + model.getValue(xStmtInfoPath+"["+iRow+"]/diagstmtcd")+"▦" // 간호진단
  1442. + sOrdDD +"▦"
  1443. + ( isNull(sDNARNm) ? "" : sDNARNm) +"▦" // dnar 구분
  1444. + getUserName() +"▦" // 작성자
  1445. + (cmb_deptflag.label =="병동" ? "" : "["+cmb_deptflag.label+"]") + "▩"; // 용도
  1446. }
  1447. }
  1448. if(sRecInfo == ""){
  1449. messageBox("선택된 진술문이","I004");
  1450. return;
  1451. }
  1452. model.makeValue("/root/send/saveData", sRecInfoHeader+sRecInfo);
  1453. // 조회조건
  1454. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦type2▩";
  1455. var sSrchData = sPid+"▦"
  1456. +sIndd+"▦"
  1457. +sOrdDD+"▦"
  1458. +sCretNo+"▦"
  1459. +sIOFlag+"▦"
  1460. +model.getValue(xCondPath+"/fromdd")+"▦"
  1461. +model.getValue(xCondPath+"/todd")+"▦"
  1462. +model.getValue(xCondPath+"/dnarflag")+"▦"
  1463. +model.getValue(xCondPath+"/sortseq")+"▦"
  1464. +sRecFlag+"▦"
  1465. +sRecLnkKey+"▦"
  1466. +model.getValue(xCondPath+"/carediagflag")+"▦"
  1467. +"Y▩";
  1468. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  1469. model.removeNode("/root/main/signSaveData");
  1470. model.makeNode("/root/main/signSaveData");
  1471. setCSVToNode("/root/main/signSaveData", sRecInfoHeader+sRecInfo, "saveDataList");
  1472. //인증저장
  1473. var msg = "";
  1474. if( !isNull(sTextAutoSave) ){
  1475. msg = 6;
  1476. }else{
  1477. msg = messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  1478. }
  1479. if(Number(msg) == 6){//예
  1480. if (!fSign()) return;
  1481. activateMyWindow();
  1482. if(submit("TXMNR03401")){
  1483. fViewSign();
  1484. gSignRecYN = "Y";
  1485. fSrchCareRec("N");
  1486. // fDeSelect();
  1487. // model.toggle("recinfo");
  1488. // fSettingRec();
  1489. }
  1490. }else {
  1491. return;
  1492. }
  1493. model.refresh();
  1494. }
  1495. /**
  1496. * @group :
  1497. * @ver : 2007.06.15
  1498. * @by : 이은영
  1499. * @---------------------------------------------------
  1500. * @type : function
  1501. * @access : public
  1502. * @desc : 필수 입력 진술문 내의 속성이 모두 입력되었는지 여부
  1503. * @param : pPath : 속성 path
  1504. * @return :
  1505. * @---------------------------------------------------
  1506. */
  1507. function fExistAttrInput(pPath){
  1508. var sAttrCnt = model.getValue(pPath+"/attrcnt");
  1509. var sStmtCD = model.getValue(pPath+"/stmtcd");
  1510. //--------(20100622:경북대)
  1511. //if(sStmtCD == "00000001" || sStmtCD == "00000002" || sStmtCD == "00000003"){
  1512. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){
  1513. //--------(20100622:경북대)
  1514. sAttrCnt--;
  1515. }
  1516. for(var iAttrRow=1; iAttrRow <= sAttrCnt; iAttrRow++){
  1517. if(model.getValue(pPath+"/attrval"+iAttrRow) == ""){
  1518. return "N";
  1519. }
  1520. }
  1521. return "Y";
  1522. }
  1523. /**
  1524. * @group :
  1525. * @ver : 2007.06.15
  1526. * @by : 이은영
  1527. * @---------------------------------------------------
  1528. * @type : function
  1529. * @access : public
  1530. * @desc : 입력받은 속성정보를 가지고 완성된 진술문장을 만든다.
  1531. * @param :
  1532. * @return :
  1533. * @---------------------------------------------------
  1534. */
  1535. function fMakeStmt(pStmtPath){
  1536. var sStmtInfo = model.getValue(pStmtPath+"/stmtcnts"); // 실제 진술문
  1537. var sAttrInfo1 = model.getValue(pStmtPath+"/attrinfo1");
  1538. var sAttrInfo2 = model.getValue(pStmtPath+"/attrinfo2");
  1539. var sAttrCnt = model.getValue(pStmtPath+"/attrcnt");
  1540. var sStmtCnts = ""; // 완성된 문장
  1541. var sAttrInfo = ""; // 기록을 원하는 속성명
  1542. var sAttrSeq = 0; // 속성 위치
  1543. var sAttrCd = ""; // 속성코드
  1544. var sAttrNM = ""; // 속성명 (combo)
  1545. var sAttrFlag = ""; // 속성 구분
  1546. var sAttrVal = ""; // 입력된 속성명
  1547. var sUnitNM = ""; // 단위명
  1548. var sPlNumChoiYN = ""; // 속성 멀티 입력 여부
  1549. var sStmtCd = ""; // 진술문 코드
  1550. var sTmpAttrNM = ""; // 속성을 제외한 기호
  1551. var sAttrNmSep = "";
  1552. if(sAttrCnt > 0){
  1553. for( var idx = 0 ; idx < sAttrCnt ; idx++ ){
  1554. sAttrSeq = idx + 1;
  1555. sAttrVal = model.getValue(pStmtPath+"/attrval"+sAttrSeq);
  1556. sAttrCd = model.getValue(pStmtPath+"/attrcd"+sAttrSeq); // 속성 성격을 찾기 위해 사용 (combo인지, input 상자인지)
  1557. sAttrFlag = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/attrflag");
  1558. if(sAttrFlag == "C" || sAttrFlag == "A"){ // C : 코드속성, A : 사정도구 -> 입력도구 : combo
  1559. sPlNumChoiYN = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/plnumchoiyn");
  1560. if(sPlNumChoiYN == "Y"){ // 멀티 입력 여부
  1561. sAttrInfo += sAttrVal+"⊙";
  1562. sAttrNM = sAttrVal;
  1563. }else{
  1564. sAttrNM = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrVal+"']/attrnm");
  1565. if(sAttrNM != ""){
  1566. sAttrInfo += sAttrNM+"⊙";
  1567. }else if(sAttrVal != "" && sAttrNM == ""){
  1568. sAttrInfo += sAttrVal+"⊙";
  1569. sAttrNM = sAttrVal;
  1570. }
  1571. }
  1572. }else if(sAttrFlag == "F"){ // F : 특수속성 -> 입력도구 : input
  1573. sAttrInfo += sAttrVal+"⊙";
  1574. sAttrNM = sAttrVal;
  1575. }else if(sAttrFlag == "V" ){ // V : 수치속성 -> 입력도구 : input값 + 단위명
  1576. sUnitNM = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/unitnm");
  1577. if(sAttrVal != ""){
  1578. sAttrInfo += sAttrVal + sUnitNM +"⊙";
  1579. sAttrNM = sAttrVal + sUnitNM;
  1580. }else{
  1581. sAttrInfo += "⊙";
  1582. sAttrNM = "";
  1583. }
  1584. }
  1585. sAttrInfo2 = sAttrInfo2.setReplaceWord("@"+idx, sAttrNM);
  1586. }
  1587. }else{
  1588. sAttrInfo2 = model.getValue(pStmtPath+"/stmtcnts");
  1589. }
  1590. return sAttrInfo2+"▦"+sAttrInfo+"▩";
  1591. }
  1592. function fMakeStmt_old(pStmtPath){
  1593. var sStmtInfo = model.getValue(pStmtPath+"/stmtcnts").split(" "); // 실제 진술문
  1594. var sAttrInfo1 = model.getValue(pStmtPath+"/attrinfo1").split("⊙");
  1595. var sAttrInfo2 = model.getValue(pStmtPath+"/attrinfo2").split(" ");
  1596. var sStmtCnts = ""; // 완성된 문장
  1597. var sAttrInfo = ""; // 기록을 원하는 속성명
  1598. var sAttrSeq = 0; // 속성 위치
  1599. var sAttrCd = ""; // 속성코드
  1600. var sAttrNM = ""; // 속성명 (combo)
  1601. var sAttrFlag = ""; // 속성 구분
  1602. var sAttrVal = ""; // 입력된 속성명
  1603. var sUnitNM = ""; // 단위명
  1604. var sPlNumChoiYN = ""; // 속성 멀티 입력 여부
  1605. var sStmtCd = ""; // 진술문 코드
  1606. var sTmpAttrNM = ""; // 속성을 제외한 기호
  1607. var sAttrNmSep = "";
  1608. if(sAttrInfo2.length > 1){
  1609. for(var i=0; i<sStmtInfo.length; i++){
  1610. sStmtCd = model.getValue(pStmtPath+"/stmtcd");
  1611. if( !isNull(sStmtInfo[i]) && !isNull(sAttrInfo2[i]) && sStmtInfo[i] == sAttrInfo2[i]){
  1612. //------------(20100622:경북대)
  1613. //if(sStmtCd == "00000001" || sStmtCd == "00000002" || sStmtCd == "00000003"){ // 처방의 경우
  1614. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){ // 처방의 경우
  1615. //------------(20100622:경북대)
  1616. if(i < sStmtInfo.length-2){
  1617. sAttrInfo += sStmtInfo[i] + " ";
  1618. }else{
  1619. sAttrInfo += sStmtInfo[i] +"⊙";
  1620. }
  1621. }
  1622. sStmtCnts += sStmtInfo[i]+" "; // 속성이 아닌 경우
  1623. // }else if( !isNull(sStmtInfo[i]) && !isNull(sAttrInfo2[i]) && sStmtInfo[i] != sAttrInfo2[i]){
  1624. }else{
  1625. //---------(20100622:경북대)
  1626. //if(sStmtCd == "00000001" || sStmtCd == "00000002" || sStmtCd == "00000003"){ // 처방의 경우
  1627. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){ // 처방의 경우
  1628. //---------(20100622:경북대)
  1629. sAttrSeq = (!isNull(sAttrInfo2[i]) && (sAttrInfo2[i].substr(1,1)).isNumber()? eval(sAttrInfo2[i].substr(1,1)) : 0);
  1630. }else{
  1631. sAttrSeq = (!isNull(sAttrInfo2[i]) && (sAttrInfo2[i].substr(1,1)).isNumber() ? eval(sAttrInfo2[i].substr(1,1))+1 : 0);
  1632. }
  1633. sAttrCd = model.getValue(pStmtPath+"/attrcd"+sAttrSeq); // 속성 성격을 찾기 위해 사용 (combo인지, input 상자인지)
  1634. sAttrFlag = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/attrflag");
  1635. sAttrVal = model.getValue(pStmtPath+"/attrval"+sAttrSeq);
  1636. //sTmpAttrNM = sStmtInfo[i].replace(model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/attrnm"),"");
  1637. if(sAttrFlag == "C" || sAttrFlag == "A"){ // C : 코드속성, A : 사정도구 -> 입력도구 : combo
  1638. sPlNumChoiYN = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/plnumchoiyn");
  1639. if(sPlNumChoiYN == "Y"){ // 멀티 입력 여부
  1640. if(sAttrVal != "") sStmtCnts += sAttrVal+sTmpAttrNM+" ";
  1641. sAttrInfo += sAttrVal+"⊙";
  1642. }else{
  1643. sAttrNM = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrVal+"']/attrnm");
  1644. if(sAttrNM != ""){
  1645. sStmtCnts += sAttrNM+sTmpAttrNM+" ";
  1646. sAttrInfo += sAttrNM+"⊙";
  1647. }else if(sAttrVal != "" && sAttrNM == ""){
  1648. sStmtCnts += sAttrVal+sTmpAttrNM+" ";
  1649. sAttrInfo += sAttrVal+"⊙";
  1650. }
  1651. }
  1652. }else if(sAttrFlag == "F"){ // F : 특수속성 -> 입력도구 : input
  1653. if(sAttrVal != "") sStmtCnts += sAttrVal +sTmpAttrNM+ " ";
  1654. sAttrInfo += sAttrVal+"⊙";
  1655. }else if(sAttrFlag == "V" ){ // V : 수치속성 -> 입력도구 : input값 + 단위명
  1656. sUnitNM = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/unitnm");
  1657. if(sAttrVal != ""){
  1658. sStmtCnts += sAttrVal + sUnitNM +sTmpAttrNM+ " ";
  1659. sAttrInfo += sAttrVal + sUnitNM +"⊙";
  1660. }else{
  1661. sAttrInfo += "⊙";
  1662. }
  1663. }
  1664. }
  1665. }
  1666. }else{
  1667. sStmtCnts = model.getValue(pStmtPath+"/stmtcnts");
  1668. }
  1669. return sStmtCnts+"▦"+sAttrInfo+"▩";
  1670. }
  1671. /**
  1672. * @group :
  1673. * @ver : 2007.04.19
  1674. * @by : 이은영
  1675. * @---------------------------------------------------
  1676. * @type : function
  1677. * @access : public
  1678. * @desc : 인증 기록 설정
  1679. * @param : pFlag ( setinfo : set, stmtinfo : 진술문 검색)
  1680. * @return :
  1681. * @---------------------------------------------------
  1682. */
  1683. function fSettingCertImg(pFlag){
  1684. var sInterpRecYN = ""; // 기록삽입여부
  1685. var sCertSelYN = ""; // 인증선택여부
  1686. var sCertKey = "";
  1687. var sImagePath = "../../../emr/commonweb/images";
  1688. switch(pFlag){
  1689. case "S" : // 전체선택
  1690. for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1691. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1692. continue;
  1693. }
  1694. sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1695. sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1696. sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1697. if(sCertKey == "" && sCertSelYN == "N"){
  1698. if(sInterpRecYN == "N"){
  1699. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest.gif";
  1700. }else{
  1701. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest_add.gif";
  1702. }
  1703. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","Y");
  1704. }
  1705. }
  1706. break;
  1707. case "C" : // 전체취소
  1708. for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1709. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1710. continue;
  1711. }
  1712. sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1713. sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1714. sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1715. if(sCertKey == "" && sCertSelYN == "Y"){
  1716. if(sInterpRecYN == "N"){
  1717. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock.gif";
  1718. }else{
  1719. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock_add.gif";
  1720. }
  1721. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","N");
  1722. }
  1723. }
  1724. break;
  1725. case "R" : // row별로 선택시
  1726. var iRow = grd_carerecspec.row;
  1727. var iCol = grd_carerecspec.col;
  1728. if(iCol != 4) return;
  1729. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1730. messageBox("다른 사람의 기록은 인증처리","E001");
  1731. return;
  1732. }
  1733. sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1734. sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1735. sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1736. if(sCertKey == "" && sCertSelYN == "Y"){
  1737. if(sInterpRecYN == "N"){
  1738. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock.gif";
  1739. }else{
  1740. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock_add.gif";
  1741. }
  1742. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","N");
  1743. }else if(sCertKey == "" && sCertSelYN == "N"){
  1744. if(sInterpRecYN == "N"){
  1745. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest.gif";
  1746. }else{
  1747. grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest_add.gif";
  1748. }
  1749. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","Y");
  1750. }
  1751. break;
  1752. }
  1753. }
  1754. /**
  1755. * @group :
  1756. * @ver : 2007.06.16
  1757. * @by : 이은영
  1758. * @---------------------------------------------------
  1759. * @type : function
  1760. * @access : public
  1761. * @desc : 그리드 팝업메뉴 SETTING
  1762. * @param :
  1763. * @return :
  1764. * @---------------------------------------------------
  1765. */
  1766. function fSettingPopUpMenu(){
  1767. if(event.button == 3){
  1768. if(grd_carerecspec.isCell(event.target) && grd_carerecspec.mouseRow >= grd_carerecspec.fixedrows){
  1769. var iRow = grd_carerecspec.row;
  1770. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey") == ""){
  1771. window.setPopupMenu(true, "/root/temp/popmenu/nursrec_befcret/menu", "name", "func", false);
  1772. }else{
  1773. window.setPopupMenu(true, "/root/temp/popmenu/nursrec_aftcret/menu", "name", "func", false);
  1774. }
  1775. }else{
  1776. window.setPopupMenu(false);
  1777. }
  1778. }
  1779. }
  1780. /**
  1781. * @group :
  1782. * @ver : 2007.06.16
  1783. * @by : 이은영
  1784. * @---------------------------------------------------
  1785. * @type : function
  1786. * @access : public
  1787. * @desc : 다중 입력 창의 경우 팝업 호출
  1788. * @param :
  1789. * @return :
  1790. * @---------------------------------------------------
  1791. */
  1792. function fCallAttrPopUp(){
  1793. var iCol = grd_stmtinfo.col;
  1794. var iRow = grd_stmtinfo.row;
  1795. if(iCol > gStndColCnt && (iCol-gStndColCnt)%3 == 2){
  1796. var iAttrNo = (iCol-gStndColCnt+1)/3;//icol은 갯수가 아닌 index이므로 +1 해준다.
  1797. var sRtn_Msg = "";
  1798. var sAttrInfo = "";
  1799. var sAttrCD = model.getValue(xStmtInfoPath+"["+iRow+"]/attrcd"+iAttrNo);
  1800. var sYN = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCD+"']/plnumchoiyn");
  1801. if ( sYN != "Y" ){
  1802. return;
  1803. }
  1804. setParameter("SPMNR03000_Param",sAttrCD);
  1805. modal("SPMNR03000");
  1806. setParameter("SPMNR03000_Param","");
  1807. sRtn_Msg = getParameter("SPMNR03000_Return");
  1808. if(sRtn_Msg == "" ) return;
  1809. sAttrInfo = sRtn_Msg.split("▦");
  1810. model.setValue(xStmtInfoPath+"["+iRow+"]/attrval"+iAttrNo,sAttrInfo[0]);
  1811. model.setValue(xStmtInfoPath+"["+iRow+"]/attrvalcd"+iAttrNo,sAttrInfo[1]);
  1812. model.setValue(xStmtInfoPath+"["+iRow+"]/check","true");
  1813. if( model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true" ){
  1814. grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#ffff88";
  1815. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1816. }else{
  1817. grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1818. }
  1819. grd_stmtinfo.refresh();
  1820. }
  1821. }
  1822. /**
  1823. * @group :
  1824. * @ver : 2007.06.18
  1825. * @by : 이은영
  1826. * @---------------------------------------------------
  1827. * @type : function
  1828. * @access : public
  1829. * @desc : 그리드 선택시 선택 버튼 체크 넣기/풀기
  1830. * @param :
  1831. * @return :
  1832. * @---------------------------------------------------
  1833. */
  1834. function fClickedGridRow(){
  1835. var iRow = grd_stmtinfo.row;
  1836. var iCol = grd_stmtinfo.col;//col은 0부터 시작하므로 15번째 컬럼은 14가 됨.
  1837. var sAttrInfo = model.getValue(xStmtInfoPath+"["+iRow+"]/attrinfo1").split("⊙");
  1838. if ( iRow > 0 && iRow <= grd_stmtinfo.rows - grd_stmtinfo.fixedRows ){
  1839. //if(iCol < gStndColCnt){
  1840. if(iCol <= grd_stmtinfo.colRef("check")){
  1841. //시간적용의 추가로 인하여 체크박스만 선택했을때 자동 체크
  1842. // if(iCol == 0 || iCol == colRef("check")) return;
  1843. // if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  1844. // model.setValue(xStmtInfoPath+"["+iRow+"]/check","false");
  1845. // }else{
  1846. // model.setValue(xStmtInfoPath+"["+iRow+"]/check","true");
  1847. // }
  1848. if( model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true" ){
  1849. grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#ffff88";
  1850. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1851. }else{
  1852. grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1853. }
  1854. }else if(iCol >= gStndColCnt && (iCol-gStndColCnt)%3 == 2 ){
  1855. fCallAttrPopUp();
  1856. }
  1857. }
  1858. grd_stmtinfo.refresh();
  1859. }
  1860. /**
  1861. * @group :
  1862. * @ver : 2007.07.18
  1863. * @by : 이은영
  1864. * @---------------------------------------------------
  1865. * @type : function
  1866. * @access : public
  1867. * @desc : 그리드의 값이 변경되면 선택버튼 체크 넣기
  1868. * @param :
  1869. * @return :
  1870. * @---------------------------------------------------
  1871. */
  1872. function fChangedGridRow(){
  1873. var iRow = grd_stmtinfo.row;
  1874. var iCol = grd_stmtinfo.col;
  1875. if(iCol >= gStndColCnt && (iCol-gStndColCnt)%3 == 1 ){
  1876. if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  1877. //model.setValue(xStmtInfoPath+"["+iRow+"]/check","false");
  1878. }else{
  1879. model.setValue(xStmtInfoPath+"["+iRow+"]/check","true");
  1880. }
  1881. if( model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true" ){
  1882. grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#ffff88";
  1883. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1884. }else{
  1885. grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1886. }
  1887. }
  1888. grd_stmtinfo.refresh();
  1889. }
  1890. /**
  1891. * @group :
  1892. * @ver : 2007.06.18
  1893. * @by : 이은영
  1894. * @---------------------------------------------------
  1895. * @type : function
  1896. * @access : public
  1897. * @desc : 간호기록 수정
  1898. * @param :
  1899. * @return :
  1900. * @---------------------------------------------------
  1901. */
  1902. function fUpdtNursingRecord(){
  1903. var iRow = grd_carerecspec.row;
  1904. if(iRow < 1) return;
  1905. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1906. messageBox("다른 사람의 기록은 수정","E001");
  1907. return;
  1908. }
  1909. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/dnarflag") == "2N"){
  1910. messageBox( "간호진단은 수정할 수 없습니다. 삭제 후에 신규 등록","I008");
  1911. return;
  1912. }
  1913. var dnarflag = model.getValue(xNursingRecordListPath+"["+iRow+"]/dnarflag");
  1914. var sParam_Header = "recdd▦rectm▦dnarflag▦stmtspec▦fstrgstrnm▦certkey▦recverno▦stmtcd▦origincd▦recoriginflag▦carerecno▦dnarnm▦deptflagnm▦pid▦indd▦orddd▦cretno▦instcd▦ioflag▦orddeptcd▦orddrid▦hngnm▦homeyn▩";
  1915. var sParam_Data = model.getValue(xNursingRecordListPath+"["+iRow+"]/recdd")+"▦"
  1916. + model.getValue(xNursingRecordListPath+"["+iRow+"]/rectm")+"▦"
  1917. + dnarflag+"▦"
  1918. + model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtspec")+"▦"
  1919. + model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrnm")+"▦"
  1920. + model.getValue(xNursingRecordListPath+"["+iRow+"]/signno")+"▦"
  1921. + model.getValue(xNursingRecordListPath+"["+iRow+"]/recverno")+"▦"
  1922. + model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtcd")+"▦"
  1923. + model.getValue(xNursingRecordListPath+"["+iRow+"]/origincd")+"▦"
  1924. + model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag")+"▦"
  1925. + model.getValue(xNursingRecordListPath+"["+iRow+"]/carerecno")+"▦"
  1926. + model.getValue("/root/init/dnarflag/itemset[itemcd = '"+dnarflag+"']/itemnm")+"▦"
  1927. + (cmb_deptflag.label =="병동" ? "" : "["+cmb_deptflag.label+"]")+"▦"
  1928. + sPid + "▦"
  1929. + sIndd + "▦"
  1930. + sOrdDD + "▦"
  1931. + sCretNo + "▦"
  1932. + sInstcd + "▦"
  1933. + sIOFlag + "▦"
  1934. + sOrdDeptCd + "▦"
  1935. + sOrdDrId + "▦"
  1936. + sHngNm + "▦"
  1937. + ( DutPlceCD=="001" ? "Y" : "") +"▩";//가정간호인지 아닌지의 여부를 판단하기 위해추가.. 20090401 가정간호가 상단정보를 올리면서 상단정보의 진료일정을 읽지 못하도록 막아야함.20090403 김홍점
  1938. setParameter("SMMNR02800_Param",sParam_Header+sParam_Data);
  1939. modal("SMMNR02800");
  1940. if(getParameter("SMMNR02800_ReturnFlag") == "Y"){
  1941. fSrchCareRec(); // 기록조회
  1942. }
  1943. if(getParameter("SMMNR02800_SignRecYN") == "Y"){
  1944. gSignRecYN = "Y";
  1945. }
  1946. }
  1947. /**
  1948. * @group :
  1949. * @ver : 2007.05.14
  1950. * @by : 이은영
  1951. * @---------------------------------------------------
  1952. * @type : function
  1953. * @access : public
  1954. * @desc : 기록저장된 데이타중 기록일시 일괄 수정
  1955. * @param : status : T time 수정
  1956. * @return :
  1957. * @---------------------------------------------------
  1958. */
  1959. function fStmtListRecdt(){
  1960. if(sPid == ""){
  1961. messageBox("환자를 먼저","C002");
  1962. return;
  1963. }
  1964. modal("SMMNR01300");
  1965. var sRtnMsg = getParameter("SMMNR01300_Return");
  1966. if(sRtnMsg == "") return;
  1967. var sTmpInfo = sRtnMsg.split("▩");
  1968. var sRecDTInfo = sTmpInfo[1].split("▦");
  1969. var sSaveHeader = "status▦recdt▦prerecdd▦"
  1970. +"pid▦indd▦cretno▦instcd▦ioflag▦orddd▦carerecno▩"; // 저장 정보
  1971. var sSaveData = "";
  1972. var sStmtCDList = "";
  1973. var sDNARFlagList = "";
  1974. var sCareRecNoList = "";
  1975. var iSignRow = 0;
  1976. var sDNARFlag = "";
  1977. var sDNARNm = "";
  1978. var sNotSave ="";
  1979. var selectRows = grd_carerecspec.selectedRows;
  1980. model.removeNode("/root/main/signSaveData");
  1981. model.makeNode(xSignPath);
  1982. for( var iRow = 0; iRow < selectRows ; iRow++ ){
  1983. // if(grd_carerecspec.isSelected(iRow) == true){
  1984. if(model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/fstrgstrid") != getUserId()){
  1985. sNotSave += "["+model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec")+"]\n";
  1986. continue;
  1987. } else {
  1988. sSaveData += "T▦"
  1989. + sRecDTInfo[1] +"▦"
  1990. + model.getValue(xNursingRecordListPath+"["+ grd_carerecspec.selectedRow(iRow) +"]/recdd") +"▦"
  1991. + sPid +"▦"
  1992. + sIndd +"▦"
  1993. + sCretNo +"▦"
  1994. + sInstcd +"▦"
  1995. + sIOFlag +"▦"
  1996. + sOrdDD +"▦"
  1997. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/carerecno") +"▩";
  1998. iSignRow++;
  1999. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtspec", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec"));
  2000. model.makeValue(xSignPath + "[" + iSignRow + "]/status", "U");
  2001. model.makeValue(xSignPath + "[" + iSignRow + "]/origincd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/origincd"));
  2002. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtcd"));
  2003. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/dnarflag"));
  2004. model.makeValue(xSignPath + "[" + iSignRow + "]/recoriginflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag"));
  2005. model.makeValue(xSignPath + "[" + iSignRow + "]/recdtflag", sRecDTInfo[0]);
  2006. model.makeValue(xSignPath + "[" + iSignRow + "]/recdt", sRecDTInfo[1]);
  2007. model.makeValue(xSignPath + "[" + iSignRow + "]/pid", sPid);
  2008. model.makeValue(xSignPath + "[" + iSignRow + "]/indd", sIndd);
  2009. model.makeValue(xSignPath + "[" + iSignRow + "]/cretno", sCretNo);
  2010. model.makeValue(xSignPath + "[" + iSignRow + "]/instcd", sInstcd);
  2011. model.makeValue(xSignPath + "[" + iSignRow + "]/ioflag", sIOFlag);
  2012. model.makeValue(xSignPath + "[" + iSignRow + "]/orddeptcd", sOrdDeptCd);
  2013. model.makeValue(xSignPath + "[" + iSignRow + "]/recflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recflag"));
  2014. model.makeValue(xSignPath + "[" + iSignRow + "]/reclnkkey", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/reclnkkey"));
  2015. model.makeValue(xSignPath + "[" + iSignRow + "]/diagstmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtcd"));
  2016. model.makeValue(xSignPath + "[" + iSignRow + "]/orddd", sOrdDD);
  2017. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarnm", grd_carerecspec.labelMatrix(grd_carerecspec.selectedRow(iRow),grd_carerecspec.colRef("dnar")));
  2018. model.makeValue(xSignPath + "[" + iSignRow + "]/usernm", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/fstrgstrnm"));
  2019. model.makeValue(xSignPath + "[" + iSignRow + "]/deptflagnm", (cmb_deptflag.label =="병동" ? "" : "["+cmb_deptflag.label+"]"));
  2020. }
  2021. // }
  2022. }
  2023. // 조회 데이터
  2024. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦type2▩";
  2025. var sSrchData = sPid+"▦"
  2026. + sIndd+"▦"
  2027. + sOrdDD +"▦"
  2028. + sCretNo+"▦"
  2029. + sIOFlag+"▦"
  2030. + model.getValue(xCondPath+"/fromdd")+"▦"
  2031. + model.getValue(xCondPath+"/todd")+"▦"
  2032. + model.getValue(xCondPath+"/dnarflag")+"▦"
  2033. + model.getValue(xCondPath+"/sortseq")+"▦"
  2034. + sRecFlag+"▦"
  2035. + sRecLnkKey+"▦"
  2036. + model.getValue(xCondPath+"/carediagflag")+"▦"
  2037. +"Y▩";
  2038. model.removenode("/root/send");
  2039. model.makeValue("/root/send/saveData", sSaveHeader+sSaveData);
  2040. model.makeValue("/root/send/srchinfo", sSrchHeader+sSrchData);
  2041. //인증저장
  2042. var msg = messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  2043. if(Number(msg) == 6 && sSaveData != ""){//예
  2044. if (!fSign()) return;
  2045. activateMyWindow();
  2046. if(submit("TXMNR03402")){
  2047. fViewSign();
  2048. gSignRecYN = "Y";
  2049. //deleteSelectedRows(grd_carerecspec,"false");
  2050. if ( sNotSave != ""){
  2051. messageBox("다른 사람이 기록한 "+sNotSave+" 수정","E001");
  2052. }
  2053. fSettingRec();
  2054. }
  2055. }else {
  2056. if ( sNotSave != ""){
  2057. messageBox("다른 사람이 기록한 "+sNotSave+" 수정","E001");
  2058. }
  2059. return;
  2060. }
  2061. }
  2062. /**
  2063. * @group :
  2064. * @ver : 2007.06.18
  2065. * @by : 이은영
  2066. * @---------------------------------------------------
  2067. * @type : function
  2068. * @access : public
  2069. * @desc : 간호기록 삭제
  2070. * @param :
  2071. * @return :
  2072. * @---------------------------------------------------
  2073. */
  2074. function fDelNursingRecord(){
  2075. var selectRows = grd_carerecspec.selectedRows;
  2076. var sNotSave = "";
  2077. var sSaveData="";
  2078. var sDiagStmtCd = "";
  2079. var sDNARNm ="";
  2080. if(selectRows < 1) return;
  2081. if(sPid == ""){
  2082. messageBox("환자를 먼저","C002");
  2083. return;
  2084. }
  2085. // 저장데이터
  2086. var sSaveHeader = "status▦carerecno▦pid▦indd▦orddd▦cretno▦instcd▦recdt▦certkey▩";
  2087. for( var iRow = 0; iRow < selectRows ; iRow++ ){
  2088. if(model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/fstrgstrid") != getUserId()){
  2089. sNotSave += "["+model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec")+"]\n";
  2090. continue;
  2091. } else {
  2092. sSaveData += "D▦"
  2093. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/carerecno")+"▦"
  2094. + sPid+"▦"
  2095. + sIndd +"▦"
  2096. + sOrdDD +"▦"
  2097. + sCretNo +"▦"
  2098. + sInstcd +"▦"
  2099. + (model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recdd")
  2100. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/rectm")+"00") +"▦"
  2101. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/certkey")+"▩";
  2102. model.removeNode(xSignPath);
  2103. model.makeNode(xSignPath);
  2104. model.makeValue(xSignPath + "/stmtspec", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec"));
  2105. model.makeValue(xSignPath + "/status", "D");
  2106. model.makeValue(xSignPath + "/origincd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/origincd"));
  2107. model.makeValue(xSignPath + "/stmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtcd"));
  2108. model.makeValue(xSignPath + "/dnarflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/dnarflag"));
  2109. model.makeValue(xSignPath + "/recoriginflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag"));
  2110. model.makeValue(xSignPath + "/recdtflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recdtflag"));
  2111. model.makeValue(xSignPath + "/recdt", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recdd")
  2112. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/rectm")+"00" );
  2113. model.makeValue(xSignPath + "/pid", sPid);
  2114. model.makeValue(xSignPath + "/indd", sIndd);
  2115. model.makeValue(xSignPath + "/cretno", sCretNo);
  2116. model.makeValue(xSignPath + "/instcd", sInstcd);
  2117. model.makeValue(xSignPath + "/ioflag", sIOFlag);
  2118. model.makeValue(xSignPath + "/orddeptcd", sOrdDeptCd);
  2119. model.makeValue(xSignPath + "/recflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recflag"));
  2120. model.makeValue(xSignPath + "/reclnkkey", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/reclnkkey"));
  2121. model.makeValue(xSignPath + "/diagstmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtcd"));
  2122. model.makeValue(xSignPath + "/orddd", sOrdDD);
  2123. model.makeValue(xSignPath + "/dnarnm", grd_carerecspec.labelMatrix(grd_carerecspec.selectedRow(iRow),grd_carerecspec.colRef("dnar")));
  2124. model.makeValue(xSignPath + "/usernm", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/fstrgstrnm"));
  2125. model.makeValue(xSignPath + "/deptflagnm", (cmb_deptflag.label =="병동" ? "" : "["+cmb_deptflag.label+"]"));
  2126. }
  2127. }
  2128. // 조회 데이터
  2129. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦type2▩";
  2130. var sSrchData = sPid+"▦"
  2131. + sIndd+"▦"
  2132. + sOrdDD +"▦"
  2133. + sCretNo+"▦"
  2134. + sIOFlag+"▦"
  2135. + model.getValue(xCondPath+"/fromdd")+"▦"
  2136. + model.getValue(xCondPath+"/todd")+"▦"
  2137. + model.getValue(xCondPath+"/dnarflag")+"▦"
  2138. + model.getValue(xCondPath+"/sortseq")+"▦"
  2139. + sRecFlag+"▦"
  2140. + sRecLnkKey+"▦"
  2141. + model.getValue(xCondPath+"/carediagflag")+"▦"
  2142. +"Y▩";
  2143. model.removenode("/root/send");
  2144. model.makeValue("/root/send/saveData", sSaveHeader+sSaveData);
  2145. model.makeValue("/root/send/srchinfo", sSrchHeader+sSrchData);
  2146. //인증저장
  2147. var msg = messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  2148. if(Number(msg) == 6 && sSaveData != ""){//예
  2149. if (!fSign()) return;
  2150. activateMyWindow();
  2151. if(submit("TXMNR03402")){
  2152. fViewSign();
  2153. gSignRecYN = "Y";
  2154. //deleteSelectedRows(grd_carerecspec,"false");
  2155. if ( sNotSave != ""){
  2156. messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  2157. }
  2158. fSettingRec();
  2159. }
  2160. }else {
  2161. if ( sNotSave != ""){
  2162. messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  2163. }
  2164. return;
  2165. }
  2166. }
  2167. /**
  2168. * @group :
  2169. * @ver : 2007.06.20
  2170. * @by : 이은영
  2171. * @---------------------------------------------------
  2172. * @type : function
  2173. * @access : public
  2174. * @desc : 부서별 SET 조회 화면 호출
  2175. * @param : "grupcd▦grupnm▦stmtcd▦stmtcnts▦attrinfo1▦attrinfo2▦attressnyn▦dnarflag▦attrcnt▦diagstmtcd▩";
  2176. * @return :
  2177. * @---------------------------------------------------
  2178. */
  2179. function fCallDeptSet(){
  2180. setParameter("SPMNR03700_Param", getUserInfo("dutplcecd"));
  2181. modal("SPMNR03700");
  2182. if(swt_recinfo.selectedIndex == 1){
  2183. return;
  2184. }
  2185. var sStmtInfo = getParameter("SPMNR03700_Return");
  2186. var sStmtCnt = sStmtInfo.split("▩").length-1;
  2187. var sMaxAttrCnt = model.getValue("/root/temp/maxattrcnt");
  2188. var sAttrCnt = 0;
  2189. var iStmtRow = 0;
  2190. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수
  2191. if(sStmtCnt < 2) return;
  2192. for(var iRow = 1; iRow < sStmtCnt; iRow++){
  2193. sAttrCnt = getArrayData(sStmtInfo,iRow,8);
  2194. if(sMaxAttrCnt < sAttrCnt){
  2195. sMaxAttrCnt = sAttrCnt;
  2196. }
  2197. }
  2198. sAttrCnt = eval(model.getValue("/root/temp/maxattrcnt"));
  2199. model.setValue("/root/temp/maxattrcnt", sMaxAttrCnt);
  2200. fAddGridColumn(sAttrCnt+1);
  2201. for(var iRow = 1; iRow < sStmtCnt; iRow++){
  2202. grd_stmtinfo.addRow(false);
  2203. iStmtRow = grd_stmtinfo.rows - grd_stmtinfo.fixedrows;
  2204. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/check", "true");
  2205. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupcd", getArrayData(sStmtInfo,iRow,0));
  2206. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupnm", getArrayData(sStmtInfo,iRow,1));
  2207. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcd", getArrayData(sStmtInfo,iRow,2));
  2208. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcnts", getArrayData(sStmtInfo,iRow,3));
  2209. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo1", getArrayData(sStmtInfo,iRow,4));
  2210. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo2", getArrayData(sStmtInfo,iRow,5));
  2211. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attressnyn", getArrayData(sStmtInfo,iRow,6));
  2212. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/dnarflag", getArrayData(sStmtInfo,iRow,7));
  2213. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrcnt", getArrayData(sStmtInfo,iRow,8));
  2214. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/diagstmtcd", getArrayData(sStmtInfo,iRow,9));
  2215. fSettingAttrInfo(iStmtRow);
  2216. if( model.getValue(xStmtInfoPath+"["+iStmtRow+"]/check") == "true" ){
  2217. grd_stmtinfo.rowstyle(iStmtRow,"data","background-color") = "#ffff88";
  2218. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  2219. }else{
  2220. grd_stmtinfo.rowstyle(iStmtRow,"data","background-color") = "#FFFFFF";
  2221. }
  2222. }
  2223. grd_stmtinfo.refresh();
  2224. grd_stmtinfo.resizeCells();
  2225. }
  2226. /**
  2227. * @group :
  2228. * @ver : 2007.06.20
  2229. * @by : 이은영
  2230. * @---------------------------------------------------
  2231. * @type : function
  2232. * @access : public
  2233. * @desc : 컬럼 추가
  2234. * @param :
  2235. * @return :
  2236. * @---------------------------------------------------
  2237. */
  2238. function fAddGridColumn(pAttrRow){
  2239. var sMaxAttrCnt = model.getValue("/root/temp/maxattrcnt");
  2240. var sComboChoice = "";
  2241. var sItemset = "";
  2242. var sCmbID = "";
  2243. var colName = "";
  2244. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수
  2245. var sAttrInfo = ""; // 속성정보
  2246. var sAttrCnt = 0; // 속성개수
  2247. for(iAttrRow = pAttrRow; iAttrRow <= sMaxAttrCnt; iAttrRow++){
  2248. grd_stmtinfo.addColumn("ref:attrcd"+iAttrRow+"; type:output;", "false");
  2249. sCmbID = "grd_cmb"+CmbNo;
  2250. CmbNo++;
  2251. grd_stmtinfo.addColumn("ref:attrval"+iAttrRow+"; type:combo; editmode:input; id:"+sCmbID, "false");
  2252. colName = eval(sCmbID);
  2253. sComboChoice = colName.createChild("xforms:choices","");
  2254. sItemset = sComboChoice.createChild("xforms:itemset", "nodeset:"+xSrchedAttrInfoPath+"[plnumchoiyn!='Y']");
  2255. sItemset.createChild("xforms:label", "ref:attrnm");
  2256. sItemset.createChild("xforms:value", "ref:attrcd");
  2257. //icon_fill_pattern.gif
  2258. grd_stmtinfo.addColumn("ref:attrvalcd"+iAttrRow+";", "false");
  2259. //grd_stmtinfo.caption = grd_stmtinfo.caption+"^"+iAttrRow+"^속성정보^";
  2260. grd_stmtinfo.caption = grd_stmtinfo.caption+"^^속성정보^";
  2261. grd_stmtinfo.colhidden((sStndColCnt+0)+(3*(iAttrRow-1))) = true;
  2262. grd_stmtinfo.colhidden((sStndColCnt+1)+(3*(iAttrRow-1))) = false;
  2263. grd_stmtinfo.colhidden((sStndColCnt+2)+(3*(iAttrRow-1))) = false;
  2264. grd_stmtinfo.colwidth((sStndColCnt+0)+(3*(iAttrRow-1))) = 0;
  2265. grd_stmtinfo.colwidth((sStndColCnt+1)+(3*(iAttrRow-1))) = 135;
  2266. grd_stmtinfo.colwidth((sStndColCnt+2)+(3*(iAttrRow-1))) = 15;
  2267. grd_stmtinfo.mergecol((sStndColCnt+1)+(3*(iAttrRow-1))) = false;
  2268. grd_stmtinfo.mergecol((sStndColCnt+2)+(3*(iAttrRow-1))) = false;
  2269. }
  2270. grd_stmtinfo.refresh();
  2271. if((grd_stmtinfo.rows - grd_stmtinfo.fixedrows) < 1){
  2272. model.removenodeset(xStmtInfoPath);
  2273. }else{
  2274. var sStmtCnt = grd_stmtinfo.rows - grd_stmtinfo.fixedrows;
  2275. for(var iStmtRow = 1; iStmtRow <= sStmtCnt; iStmtRow++){
  2276. sAttrCnt = eval(model.getValue(xStmtInfoPath+"["+iStmtRow+"]/attrcnt"));
  2277. // 속성개수가 최대 속성 개수보다 적은 진술문의 추가 속성 입력창은 읽기전용으로 설정
  2278. for(var iAttrRow = sAttrCnt; iAttrRow < sMaxAttrCnt; iAttrRow++){
  2279. grd_stmtinfo.isreadonly(iStmtRow,(sStndColCnt+1)+(3*iAttrRow)) = true;
  2280. grd_stmtinfo.isreadonly(iStmtRow,(sStndColCnt+2)+(3*iAttrRow)) = true;
  2281. }
  2282. }
  2283. }
  2284. grd_stmtinfo.refresh();
  2285. }
  2286. /**
  2287. * @group :
  2288. * @ver : 2007.04.24
  2289. * @by : 이은영
  2290. * khj Free Text 선택하여 그리드에 붙이도록 수정 20091218
  2291. * @---------------------------------------------------
  2292. * @type : function
  2293. * @access : public
  2294. * @desc : 기록 저장
  2295. * @param : Free Text 기록 선택 부분
  2296. * @return :
  2297. * @---------------------------------------------------
  2298. */
  2299. function fSelTextStmtInfo(){
  2300. var sSelYN = "N";
  2301. var sAttrinfo1 = "";
  2302. var sArrtCnt = 0;
  2303. // var sRecInfoHeader = "stmtspec▦attrinfo▦status▦origincd▦stmtcd▦dnarflag▦recoriginflag▦recdtflag▦recdt▦"
  2304. // +"pid▦indd▦cretno▦instcd▦ioflag▦orddeptcd▦recflag▦reclnkkey▦diagstmtcd▦orddd▦dnarnm▦usernm▦deptflagnm▩"; // 저장 정보
  2305. // var sStmtInfo = ""; // 저장 정보
  2306. // var sAttrInptParamInfo = ""; // 속성창 입력 정보
  2307. // var sAttrInptYN = "N";
  2308. // var sSaveData = "";
  2309. sRecDateFlag = model.getValue(xCondPath+"/recdateflag"); // (A : 자동, U : 지정)
  2310. //var sRecDateFlag = "A"; // (A : 자동, U : 지정)
  2311. var sRecDate = "";
  2312. var sDNARFlag = ""; //DNAR 구분
  2313. var sDNARNm = ""; //DNAR 구분
  2314. var sStmtDiagCd = ""; // 진단코드
  2315. var sStmtCnts = "";
  2316. var sLnkStmt = ""; // 링크된 진술문
  2317. var sGrupCD = ""; // 그룹코드
  2318. var sStmtDiagInfo = "";
  2319. // if(sRecDateFlag == "U"){
  2320. // sRecDate = model.getValue(xCondPath+"/recdd")+model.getValue(xCondPath+"/rectm") + "00";
  2321. // if(isValidDateTime(sRecDate,"YYYYMMDDhhmmss")== false){
  2322. // messageBox("기록 시간이 유효하지","E007");
  2323. // return;
  2324. // }
  2325. // } else {
  2326. // sRecDate = getCurrentDate() + getCurrentTime();
  2327. // }
  2328. if(sPid == ""){
  2329. messageBox("환자를 먼저","C002");
  2330. return;
  2331. }
  2332. if( model.getValue("/root/main/cond/freetextdnarflag") == ""
  2333. || model.getValue("/root/main/cond/freetextsrchcnts") == ""){
  2334. messageBox("선택된 FreeText의 SNDAR이 선택되지 않았거나 저장할 데이터가","I004");
  2335. return;
  2336. }
  2337. grd_stmtinfo.addRow(false);
  2338. iStmtRow = grd_stmtinfo.rows - grd_stmtinfo.fixedrows;
  2339. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/check", "true");
  2340. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupcd", model.getValue("/root/main/cond/grupcd"));
  2341. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupnm", "");
  2342. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcd", "--------");
  2343. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/stmtcnts", model.getValue("/root/main/cond/freetextsrchcnts"));
  2344. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo1", "");
  2345. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrinfo2", "");
  2346. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attressnyn", "");
  2347. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/dnarflag", model.getValue("/root/main/cond/freetextdnarflag"));
  2348. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/attrcnt", "0");
  2349. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/diagstmtcd", "");
  2350. if ( sRecDateFlag == "U" ){
  2351. model.setValue(xStmtInfoPath+"["+iStmtRow+"]/recdt", ipt_recdd.value+ipt_rectm.value+"00");
  2352. model.makeValue(xStmtInfoPath+"["+iStmtRow+"]/recdtflag", "U");
  2353. }
  2354. fSettingAttrInfo(iStmtRow);
  2355. if( model.getValue(xStmtInfoPath+"["+iStmtRow+"]/check") == "true" ){
  2356. grd_stmtinfo.rowstyle(iStmtRow,"data","background-color") = "#ffff88";
  2357. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  2358. }else{
  2359. grd_stmtinfo.rowstyle(iStmtRow,"data","background-color") = "#FFFFFF";
  2360. }
  2361. grd_stmtinfo.bottomRow = iStmtRow;
  2362. model.setValue("/root/main/cond/freetextsrchcnts","");
  2363. model.setValue("/root/main/cond/freetextdnarflag","");
  2364. model.refresh();
  2365. /* sStmtInfo += model.getValue("/root/main/cond/freetextsrchcnts")+"▦"
  2366. + "▦"
  2367. + "I▦"
  2368. + model.getValue("/root/main/cond/grupcd")+"▦"
  2369. + "--------"+"▦"
  2370. + model.getValue("/root/main/cond/freetextdnarflag")+"▦"
  2371. + "T▦"
  2372. + sRecDateFlag+"▦"
  2373. + sRecDate+"▦"
  2374. + sPid+"▦"
  2375. + sIndd+"▦"
  2376. + sCretNo+"▦"
  2377. + sInstcd+"▦"
  2378. + sIOFlag+"▦"
  2379. + sOrdDeptCd+"▦"
  2380. + sRecFlag+"▦"
  2381. + sRecLnkKey+"▦"
  2382. + "▦" // 간호진단
  2383. + sOrdDD +"▦"
  2384. + (model.getValue("/root/main/cond/freetextdnarflag") == "2N" ? "N" : "") +"▦" // dnar 구분
  2385. + getUserName() +"▦" // 작성자
  2386. + (cmb_deptflag.label =="병동" ? "" : "["+cmb_deptflag.label+"]") + "▩"; // 용도
  2387. sSaveData = sStmtInfo;
  2388. model.makeValue("/root/send/saveData", sRecInfoHeader+sSaveData);
  2389. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦type2▩";
  2390. var sSrchData = sPid+"▦"
  2391. +sIndd+"▦"
  2392. +sOrdDD+"▦"
  2393. +sCretNo+"▦"
  2394. +sIOFlag+"▦"
  2395. +model.getValue(xCondPath+"/fromdd")+"▦"
  2396. +model.getValue(xCondPath+"/todd")+"▦"
  2397. +model.getValue(xCondPath+"/dnarflag")+"▦"
  2398. +model.getValue(xCondPath+"/sortseq")+"▦"
  2399. +sRecFlag+"▦"
  2400. +sRecLnkKey+"▦"
  2401. +model.getValue(xCondPath+"/carediagflag")+"▦"
  2402. +"Y▩";
  2403. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  2404. model.removeNode("/root/main/signSaveData");
  2405. model.makeNode("/root/main/signSaveData");
  2406. setCSVToNode("/root/main/signSaveData", sRecInfoHeader+sSaveData, "saveDataList");
  2407. // model.removenodeset(xNursingRecInfoPath);
  2408. model.removeNodeset("/root/main/recinfo");
  2409. var msg = "";
  2410. //인증저장
  2411. if(sTextAutoSave != ""){
  2412. msg = 6;
  2413. }else{
  2414. msg = messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  2415. }
  2416. if(Number(msg) == 6){//예
  2417. if (!fSign()) return;
  2418. if(submit("TXMNR00701", false)){
  2419. fViewSign("/root/main/recinfo");
  2420. gSignRecYN = "Y";
  2421. if(getNodesetCount("/root/main/recinfo/nursingrecordlist")>0 ){
  2422. model.makeNode(xNursingRecordListPath);
  2423. // copyNodesetType(xNursingRecordListPath,xNursingRecInfoPath,"replace", model, model);
  2424. copyNodeset("/root/main/nursingrecordinfo","/root/main/recinfo");
  2425. grd_carerecspec.rebuild();
  2426. }
  2427. model.setValue("/root/main/cond/freetextsrchcnts", "");
  2428. model.setValue("/root/main/cond/freetextdnarflag", "");
  2429. textarea4.refresh();
  2430. if(sRecDate == ""){
  2431. sRecDate = getCurrentDate() + getCurrentTime(); // 현재시간
  2432. }
  2433. var iRecDDRow = grd_carerecspec.findRow(sRecDate.substr(0,8),1,17,false,true);
  2434. var iRecTMRow = grd_carerecspec.findRow(sRecDate.substr(8,4),iRecDDRow,18,false,true);
  2435. //grd_carerecspec.topRow = iRecTMRow;
  2436. fDeSelect();
  2437. model.toggle("recinfo");
  2438. fSettingRec();
  2439. sAutoProcFlag = "true";
  2440. }
  2441. }else {
  2442. return;
  2443. } */
  2444. }
  2445. /**
  2446. * @group :
  2447. * @ver : 2009.12.22
  2448. * @by : khj
  2449. * @---------------------------------------------------
  2450. * @type : function
  2451. * @access : public
  2452. * @desc : 환자정보 조회
  2453. * @param : 환자정보 조회 pPidFlag : P 등록번호 입력
  2454. * @return :
  2455. * @---------------------------------------------------
  2456. */
  2457. function fSrchPatInfo(pPidFlag){
  2458. // if( isNull(model.getValue(xCondPath+"/srch_pid")) ){
  2459. // messageBox("환자를 먼저","C002");
  2460. // return;
  2461. // }
  2462. if ( isNull(pPidFlag) ){
  2463. model.makeValue("/root/hidden/pidpopupinfo/checkfnexam", "1");
  2464. model.makeValue("/root/hidden/pidpopupinfo/autoflag", "Y");
  2465. model.makeValue("/root/hidden/pidpopupinfo/srchcond", '2');
  2466. model.removeNodeset("/root/main/patinfo/patinfolist");
  2467. model.makeNode("/root/main/patinfo/patinfolist");
  2468. modal("SPPMC02500", "1","150", "150", "SPPMC02500", "/root/hidden/pidpopupinfo", "/root/send");
  2469. model.resetInstanceNode("/root/source");
  2470. //환자번호 copy
  2471. var popupendflag = model.getValue("/root/main/popupendflag");
  2472. if (popupendflag == "ok")
  2473. {
  2474. model.setValue(xCondPath+"/srch_pid", model.getValue("/root/main/patinfo/patinfolist/pid"));
  2475. }else {
  2476. return;
  2477. }
  2478. }
  2479. model.removenode("/root/send");
  2480. model.makeValue("/root/send/pid",model.getValue(xCondPath+"/srch_pid"));
  2481. model.makeValue("/root/send/workflag",DutPlceCD );
  2482. model.removenode("/root/init/patinfo");
  2483. model.setValue(xCondPath+"/pname", "");
  2484. model.setValue(xCondPath+"/age","");
  2485. model.setValue(xCondPath+"/pid","");
  2486. sPid = ""; // 환자번호
  2487. sIndd = ""; // 입원일자
  2488. sOrdDD = ""; // 진료일자
  2489. sCretNo = ""; // 환자 일자별 일련번호
  2490. sInstcd = ""; // 기관코드
  2491. sIOFlag = ""; // 입원/외래 구분
  2492. sOrdDeptCd = ""; // 진료과코드
  2493. sOrdDrId = ""; // 진료의사ID
  2494. sHngNm = ""; //환자명
  2495. sAge = ""; //환자나이
  2496. sRecLnkKey = ""; // 기록연계키
  2497. if(submit("TRMNR03404")){
  2498. sIOFlag = model.getValue(xInitPatInfoPath+"/ioflag"); // 입원/외래 구분
  2499. if ( isNull(sIOFlag)
  2500. && ( DutPlceCD == "026" || DutPlceCD == "027" ) ){
  2501. messageBox("환자정보가 존재하지 않습니다. ","I007");
  2502. model.setFocus("ipt_srchpid");
  2503. model.setValue(xCondPath+"/srch_pid", "");
  2504. ipt_srchpid.refresh();
  2505. return;
  2506. }
  2507. // if ( DutPlceCD == "027" && sIOFlag != "I" ){
  2508. //
  2509. // messageBox("[병동] 재원중인 환자가 아닙니다.","I007");
  2510. // model.setValue(xCondPath+"/srch_pid", "");
  2511. // model.setFocus("ipt_srchpid");
  2512. // ipt_srchpid.refresh();
  2513. // return;
  2514. //
  2515. // }
  2516. //환자정보 세팅
  2517. sPid = model.getValue(xInitPatInfoPath+"/pid");
  2518. sHngNm = model.getValue(xInitPatInfoPath+"/hngnm");
  2519. sAge = model.getValue(xInitPatInfoPath+"/age");
  2520. sIOFlag = model.getValue(xInitPatInfoPath+"/ioflag"); // 입원/외래 구분
  2521. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  2522. sIndd = model.getValue(xInitPatInfoPath+"/indd"); // 진료일자
  2523. sOrdDD = "-";
  2524. }else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 김홍점 김영림 itc 요청서에 의한 반영
  2525. sOrdDD = model.getValue(xInitPatInfoPath+"/orddd"); // 진료일자
  2526. sIndd = "-";
  2527. }
  2528. sCretNo = model.getValue(xInitPatInfoPath+"/cretno"); // 환자 일자별 일련번호
  2529. sInstcd = getUserInfo("dutplceinstcd"); // 기관코드
  2530. sOrdDeptCd = model.getValue(xInitPatInfoPath+"/orddeptcd"); // 진료과코드
  2531. sOrdDrId = model.getValue(xInitPatInfoPath+"/medispclid"); // 진료의사ID
  2532. sRecLnkKey = model.getValue(xInitPatInfoPath+"/reclnkkey"); //pid||','||indd||','||cretno||','||instcd
  2533. model.setValue(xCondPath+"/pname", sHngNm);
  2534. model.setValue(xCondPath+"/age",sAge);
  2535. model.setValue(xCondPath+"/pid",sPid);
  2536. model.refresh();
  2537. }
  2538. }
  2539. function fcolwidth() {
  2540. var cnt = 0;
  2541. for ( var i = 0; i < grd_stmtinfo.cols; i++ ) {
  2542. cnt =+ cnt + grd_stmtinfo.colWidth(i)
  2543. }
  2544. // alert( cnt);
  2545. var wid = grd_stmtinfo.attribute("width");
  2546. var allcnt = wid.substr(0,3);
  2547. var checkcnt = allcnt - cnt;
  2548. // alert(checkcnt);
  2549. var stmtcnt = grd_stmtinfo.colWidth(grd_stmtinfo.colRef("stmtcnts"));
  2550. if ( allcnt > (cnt+25) ) {
  2551. if ( checkcnt > 300 ) {
  2552. grd_stmtinfo.colWidth(grd_stmtinfo.colRef("stmtcnts")) = stmtcnt + 300 ;
  2553. grd_stmtinfo.refresh();
  2554. } else {
  2555. grd_stmtinfo.colWidth(grd_stmtinfo.colRef("stmtcnts")) = stmtcnt + checkcnt - 25 ;
  2556. grd_stmtinfo.refresh();
  2557. }
  2558. }
  2559. }
  2560. function fSetPatInfo() {
  2561. var pid = "";
  2562. var indd= "";
  2563. var cretno="";
  2564. var instcd = "";
  2565. var orddd= "";
  2566. var ordtype = "";
  2567. var idx = cmb_pid.focusIndex + 1;
  2568. if(idx < 1) {
  2569. return;
  2570. }
  2571. //----------(20080913)
  2572. var ioflag = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/inptcretno") ;
  2573. var detstatus = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/detstatus") ;
  2574. //if ( ioflag != "") { //입원정보를 기준으로 상단에 반영
  2575. if(detstatus == "외래") {
  2576. pid = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/pid") ;
  2577. indd = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/otptorddd") ;
  2578. cretno = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/otptcretno") ;
  2579. instcd = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/instcd");
  2580. orddd = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/otptorddd"); //처방일(orddd)
  2581. ordtype = "O";
  2582. }
  2583. else { //외래정보를 기준으로 상단에 반영
  2584. pid = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/pid") ;
  2585. indd = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/prcpdd") ;
  2586. cretno = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/inptcretno") ;
  2587. instcd = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/instcd");
  2588. orddd = model.getValue("/root/main/chemoinfo/chemolist["+idx+"]/prcpdd"); //처방일(orddd)
  2589. //=======================================================================================================
  2590. ordtype = "I"; //--> 'D' (테스트) ==> '상단정보parameter값이 잘못 설정 되었습니다' 로 나옴
  2591. //=======================================================================================================
  2592. }
  2593. //----------(20080913)
  2594. // 상단 세팅을 위한 파라미터
  2595. condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  2596. setParameter("condparam", condparam);
  2597. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2598. }
  2599. function fSetPatInfoER() {
  2600. var pid = "";
  2601. var indd= "";
  2602. var cretno="";
  2603. var instcd = "";
  2604. var orddd= "";
  2605. var ordtype = "";
  2606. var idx = cmb_pid_er.focusIndex + 1;
  2607. if(idx < 1) {
  2608. return;
  2609. }
  2610. pid = model.getValue("/root/main/nursemainlist/nursemaininfo["+idx+"]/pid") ;
  2611. indd = model.getValue("/root/main/nursemainlist/nursemaininfo["+idx+"]/indd") ;
  2612. cretno = model.getValue("/root/main/nursemainlist/nursemaininfo["+idx+"]/cretno") ;
  2613. instcd = model.getValue("/root/main/nursemainlist/nursemaininfo["+idx+"]/instcd");
  2614. orddd = model.getValue("/root/main/cnursemainlist/nursemaininfo["+idx+"]/indd");
  2615. ordtype = "E";
  2616. // 상단 세팅을 위한 파라미터
  2617. condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  2618. setParameter("condparam", condparam);
  2619. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2620. }
  2621. function fSetPatInitInfo() {
  2622. var sPatSelUseYN="";
  2623. var sParamInfo = "";
  2624. var sPamInfo = "";
  2625. // 환자정보 조회
  2626. model.removenode("/root/main/paminfo");
  2627. model.makenode("/root/main/paminfo");
  2628. sPamInfo = getGlobalVariable("paminfo");
  2629. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
  2630. //환자정보 세팅
  2631. sPid = model.getValue(xPamInfoPath+"/pid");
  2632. sHngNm = model.getValue(xPamInfoPath+"/hngnm");
  2633. sHngNm2 = model.getValue(xPamInfoPath+"/hngnm2");
  2634. sAge = model.getValue(xPamInfoPath+"/age");
  2635. sIOFlag = model.getValue(xPamInfoPath+"/ioflag"); // 입원/외래 구분
  2636. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  2637. sIndd = model.getValue(xPamInfoPath+"/indd"); // 진료일자
  2638. sOrdDD = "-";
  2639. // } else if(sIOFlag == "O"){ // 외래
  2640. }else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 김홍점 김영림 itc 요청서에 의한 반영
  2641. sOrdDD = model.getValue(xPamInfoPath+"/orddd"); // 진료일자
  2642. sIndd = "-";
  2643. }
  2644. if(sPamInfo != "") {
  2645. cmb_pid.value = sPid;
  2646. }
  2647. sCretNo = model.getValue(xPamInfoPath+"/cretno"); // 환자 일자별 일련번호
  2648. sInstcd = model.getValue(xPamInfoPath+"/instcd"); // 기관코드
  2649. sOrdDeptCd = model.getValue(xPamInfoPath+"/orddeptcd"); // 진료과코드
  2650. sOrdDrId = model.getValue(xPamInfoPath+"/medispclid"); // 진료의사ID
  2651. if ( gMenuGrupCd == "MG00520000" ){//전문간호 메뉴그룹으로 들어왔을경우
  2652. DutPlceCD = "011";
  2653. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  2654. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  2655. } else if ( gMenuGrupCd == "MG02030000" && DutPlceCD != "015" && DutPlceCD != "021" ){//마취 회복 메뉴그룹으로 들어왔을경우지만 혈당기록에서 띄울경우에는 혈당으로 떠야함.
  2656. DutPlceCD = "900";
  2657. } else if( getScreenMenuParameter()!= null && isNull(sParamInfo) ){
  2658. DutPlceCD = getScreenMenuParameter();//20080705 김홍점
  2659. sRecFlag = model.getValue(xInitGrupInfoPath+"[paramcd='"+DutPlceCD+"' and cdgrupid = '054']/recflag");
  2660. if ( DutPlceCD == "021" && !isNull(getOperationInfo("oprsrvno")) ){//수술간호 메뉴에서 오픈시
  2661. sRecLnkKey = getOperationInfo("oprsrvno") + "," + sInstcd;
  2662. } else {
  2663. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  2664. }
  2665. }
  2666. }
  2667. function fSetItem(){
  2668. //메인에 보여지는 화면 오브젝트를 가져온다.
  2669. var mainObj = getMainViewer();
  2670. model.makeNode("/root/tmp/cond");
  2671. if(mainObj != null) {
  2672. scrid = mainObj.javascript.getScreenID();
  2673. if(scrid == "SMMNI02000") {
  2674. model.makeValue("/root/tmp/cond/wardcd" , mainObj.model.getValue("/root/main/cond/wardcd" ));
  2675. model.makeValue("/root/tmp/cond/settingrnid" , mainObj.model.getValue("/root/main/cond/settingrnid" ));
  2676. model.makeValue("/root/tmp/cond/orddeptcd" , mainObj.model.getValue("/root/main/cond/orddeptcd" ));
  2677. model.makeValue("/root/tmp/cond/medispclid" , mainObj.model.getValue("/root/main/cond/medispclid" ));
  2678. model.makeValue("/root/tmp/cond/atdoctid" , mainObj.model.getValue("/root/main/cond/atdoctid" ));
  2679. model.makeValue("/root/tmp/cond/indschacptstat" , mainObj.model.getValue("/root/main/cond/indschacptstat"));
  2680. model.makeValue("/root/tmp/cond/prcpdd" , mainObj.model.getValue("/root/main/cond/prcpdd" ));
  2681. model.makeValue("/root/tmp/cond/pid" , mainObj.model.getValue("/root/main/cond/pid" ));
  2682. model.makeValue("/root/tmp/cond/rsrvinfoflag" , mainObj.model.getValue("/root/main/cond/rsrvinfoflag" ));
  2683. model.makeValue("/root/tmp/cond/chk_prcpmixno" , mainObj.model.getValue("/root/main/cond/chk_prcpmixno" ));
  2684. model.makeValue("/root/tmp/cond/hngnm" , mainObj.model.getValue("/root/main/cond/hngnm" ));
  2685. model.makeValue("/root/tmp/cond/gndrage" , mainObj.model.getValue("/root/main/cond/gndrage" ));
  2686. model.makeValue("/root/tmp/cond/rrgstno" , mainObj.model.getValue("/root/main/cond/rrgstno" ));
  2687. model.makeValue("/root/tmp/cond/antcncryn" , mainObj.model.getValue("/root/main/cond/antcncryn" ));
  2688. model.makeValue("/root/tmp/cond/drprcpetc2" , mainObj.javascript.drprcpetc2);
  2689. }
  2690. }
  2691. }
  2692. // 환자정보
  2693. function fGetPatList(){
  2694. var wardcd = model.getValue("/root/tmp/cond/wardcd");
  2695. if(wardcd == null || wardcd == ""){
  2696. fSetItem();
  2697. }
  2698. model.makeNode("/root/send/reqdata");
  2699. model.copyNode("/root/send/reqdata", "/root/tmp/cond");
  2700. submit("TRMNI02003");
  2701. }
  2702. // 내환자 셋팅정보 조회
  2703. function fSettingnurid(){
  2704. var wardcd = model.getValue("/root/tmp/cond/wardcd");
  2705. if(wardcd == null || wardcd == ""){
  2706. fSetItem();
  2707. }
  2708. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/tmp/cond/wardcd") );
  2709. if(submit("TRMNW10910") == true){
  2710. var settingnurid = model.getValue("/root/init/settinginfo/settingrn[settingrnid='" + getUserInfo("userid") +"']/settingrnid");
  2711. model.setValue("/root/main/cond/settingrnid", settingnurid);
  2712. model.makeValue("/root/tmp/cond/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  2713. }
  2714. cmb_settingrn.refresh();
  2715. }
  2716. function fprtlnm(){
  2717. var pid = model.getValue("/root/main/cond/srch_pid");
  2718. var chemo = getNodesetCount("/root/main/chemoinfo/chemolist");
  2719. var prtlnm = "";
  2720. if (pid != ""){
  2721. if(chemo > 0){
  2722. prtlnm = model.getValue("/root/main/chemoinfo/chemolist[pid = '" + pid +"']/prtlnm");
  2723. model.setValue("/root/init/prtlinfo/prtllist/prtlnm", prtlnm);
  2724. model.refresh();
  2725. }
  2726. }
  2727. }