SMMNR034.xjs 145 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 외래간호일지(SMMNR03400.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. var CmbNo = 1;
  8. var sPid = ""; // 환자번호
  9. var sIndd = ""; // 입원일자
  10. var sOrdDD = ""; // 진료일자
  11. var sCretNo = ""; // 환자 일자별 일련번호
  12. var sInstcd = ""; // 기관코드
  13. var sIOFlag = ""; // 입원/외래 구분
  14. var sOrdDeptCd = ""; // 진료과코드
  15. var sOrdDrId = ""; // 진료의사ID
  16. var sHngNm = ""; //환자명
  17. var sAge = ""; //환자나이
  18. var sRecFlag = ""; // 기록 구분
  19. var sGrupCd = ""; // 그룹코드
  20. var sRecLnkKey = ""; // 기록연계키
  21. var sPrcpFlag = ""; // 처방구분
  22. var sPrcpInfo = ""; // 처방정보
  23. var sPrcpNM = ""; // 처방명
  24. var sPatInfo = ""; // 환자정보(상단정보 미존재-가정간호, 내시경)
  25. var sRecDateFlag = "";
  26. var DutPlceCD = "";
  27. var FreeTextOnlyUseYN ="";
  28. var gMenuGrupCd = "";
  29. var gStndColCnt = 13;
  30. var sTextAutoSave = "";
  31. var sAutoProcFlag = "false";
  32. var gSignRecYN = ""; //혈당기록의 경우 화면에서 타입2에 대한 재인증을 해야한다.그래서 타입2에서 인증저장한 흔적을 남겨야한다.20090625
  33. var stmtcd1 = ""; //type2용 진술문번호-투약
  34. var stmtcd2 = ""; //type2용 진술문번호-검사
  35. var stmtcd3 = ""; //type2용 진술문번호-처치
  36. var stmtcd4 = ""; //type2용 진술문번호-재료
  37. var cbk_TRMNR03401_flag = 0; //콜백flag
  38. var cbk_TXMNR03402_flag = 0;
  39. var checkClick=false; //콤보선택시 팝업div 체크
  40. var checkCol = "";
  41. var aCptuniqno = "";
  42. var sCurrentdate = utlf_getCurrentDate();
  43. var lgv_sOrddept = ""; // 진료과명
  44. var lgv_sApntdr = ""; // 지정의
  45. var lgv_sAttndr = ""; // 주치의
  46. var lgv_sInsukind = ""; // 보험유형명
  47. var lgv_sBtype = ""; // 혈액형
  48. var lgv_sSex = ""; // 성별
  49. var lgv_sHeight = ""; // 키
  50. var lgv_sWeight = ""; // 무게
  51. var signtime = "";
  52. var vsettime = "";
  53. /**
  54. * @group :
  55. * @ver : 2007.05.21
  56. * @by : 이은영
  57. * @---------------------------------------------------
  58. * @type : function
  59. * @access : public
  60. * @desc : 화면 초기화
  61. * @param :pFlag : refresh하는 화면에서 init으로 넘겨줌.
  62. * @return :
  63. * @---------------------------------------------------
  64. */
  65. function cf_TRMNR03403(sSvcId, nErrorCode, sErrorMsg) {
  66. if(nErrorCode < 0) return;
  67. }
  68. var arErrorCode = new HashArray();
  69. function cf_TXMNR03401(sSvcId, nErrorCode, sErrorMsg) {
  70. arErrorCode.push(sSvcId, nErrorCode);
  71. if(nErrorCode < 0) return;
  72. utlf_addLog("***** cf_TXMNR03401 *****");
  73. }
  74. function cf_TXMNR00904(sSvcId, nErrorCode, sErrorMsg) {
  75. arErrorCode.push(sSvcId, nErrorCode);
  76. if(nErrorCode < 0) return;
  77. utlf_addLog("***** cf_TXMNR00904 *****");
  78. }
  79. function cf_TRMNR03401(sSvcId, nErrorCode, sErrorMsg) {
  80. arErrorCode.push(sSvcId, nErrorCode);
  81. if(nErrorCode < 0) return;
  82. utlf_addLog("***** cf_TRMNR03401 *****");
  83. }
  84. function cf_TXMNR03402(sSvcId, nErrorCode, sErrorMsg) {
  85. arErrorCode.push(sSvcId, nErrorCode);
  86. if(nErrorCode < 0) return;
  87. utlf_addLog("***** cf_TXMNR03402 *****");
  88. }
  89. function cf_TRMNW10910(sSvcId, nErrorCode, sErrorMsg) {
  90. arErrorCode.push(sSvcId, nErrorCode);
  91. if(nErrorCode < 0) return;
  92. utlf_addLog("***** cf_TRMNW10910 *****");
  93. }
  94. function fInitialize(pFlag){
  95. opener.frmf_setParameter("SMMNR03400_SignRecYN", "");
  96. sTextAutoSave = opener.frmf_getParameter("SMMNR03400_ParamSaveText");
  97. if ( pFlag == "init" ){
  98. var openSID = opener.frmf_getScreenID();
  99. ds_init_gruplist.filter("hngnm=='"+openSID+"'&& cdgrupid == '136'");
  100. var opencdid = ds_init_gruplist.getColumn(0,"paramcd");
  101. ds_init_gruplist.filter("");
  102. if ( !utlf_isNull(openSID) && (utlf_isNull(opencdid) || (frmf_getMenuParam() != '010' && opencdid == "02" )) ){
  103. return;
  104. }
  105. }else{
  106. //20090415 용도부서코드 공통코드테이블에 데이터화. 김홍점
  107. //20090910 136 - 상단정보 바뀔때마다 타입2화면 refresh 할 opener의 SID khj
  108. var cdgrupid = "'054','136','T84'";
  109. ds_send.clearData();
  110. dsf_makeValue(ds_send,"cdgrupid" , "string", cdgrupid);
  111. var oParam = {};
  112. oParam.id = "TRMNR03403";
  113. oParam.service = "carerecapp.NursingRecord";
  114. oParam.method = "reqGetDifDutplceCd";
  115. oParam.inds = "reqCond=ds_send";
  116. oParam.outds = "ds_init_gruplist=gruplist";
  117. oParam.async = false;
  118. oParam.callback = "cf_TRMNR03403";
  119. tranf_submit(oParam);
  120. }
  121. signtime = ds_init_gruplist.lookup("cdgrupid","T84","paramcd");
  122. if(utlf_isNull(signtime)) {
  123. signtime = 0;
  124. }
  125. var oParam = {};
  126. oParam.id = "TRMNR03499";
  127. oParam.service = "carerecapp.NursingRecord";
  128. oParam.method = "reqGetNDTypeIIStmtCd";
  129. oParam.inds = "";
  130. oParam.outds = "ds_init_stmtinfo=stmtinfo";
  131. oParam.async = false;
  132. oParam.callback = "cf_TRMNR03499";
  133. tranf_submit(oParam);
  134. if (utlf_isNull(stmtcd1)) {
  135. sysf_messageBox( "간호type2용진술문에 대한 확인이 필요합니다.","I008");
  136. stmtcd1 = "00000001";
  137. stmtcd2 = "00000002";
  138. stmtcd3 = "00000003";
  139. //stmtcd4 = "00000004";
  140. }
  141. gMenuGrupCd = sysf_getGlobalVariable("menugroupcd");
  142. if(!utlf_isNull(gMenuGrupCd)){
  143. gMenuGrupCd = (gMenuGrupCd.split("|"))[0];
  144. }
  145. /*
  146. - 기록 구분 정보
  147. SMMNR03400_ParamBase : recflag▦dutplaccd▦reclnkkey => 기록구분▦부서코드▦기록연계키
  148. SMMNR03400_ParamPrcp : prcpflag▦prcpnm => 처방구분▦처방정보
  149. - 기록구분( ) :
  150. A : 마취과,
  151. B : 혈당기록(순천향),
  152. C : 특주-> 서울(012)의 경우 암센터주사실,
  153. D : DSC(순천향),
  154. E : 응급실(순천향),
  155. F : BMT주사실,
  156. G : 간호일지 (type2에서 사용하면 안�)
  157. H : 가정간호,
  158. I : 주사실(순천향),
  159. L : 투석실(순천향),
  160. M : 분만간호(순천향)
  161. N : Angio,
  162. O : 외래(순천향),
  163. P : 수술실(순천향),
  164. Q : 심도자실
  165. R : 회복실(순천향),
  166. S : 전문간호,
  167. T : 입원전검사
  168. U : APU 성분헌혈실
  169. W :병동
  170. V : 과내
  171. J :간클리닉
  172. K : 기관지
  173. X :내시경
  174. Y :부정맥
  175. Z :Echo
  176. 1 : DCC
  177. 2 : CT
  178. 3 : 통증(20120924)(순천향)
  179. 4 : 낙상(20120924)(순천향)
  180. 5 : 욕창(20120924)(순천향)
  181. - 부서코드(dutplaccd) :
  182. //Not Used
  183. 12611 : 외래, 33100 : 기능검사, 31900 : 주사실,
  184. 34100 : DSC, 미정 : 전문간호, 50112 : 가정간호,
  185. 82015 : 응급실, 10900 : 마취과, 31170 : 회복실,
  186. 31400 : 투석실 00001 : 혈당기록
  187. //20080708 김홍점 수정
  188. 가정 001
  189. 간클리닉 002
  190. 기관지 003
  191. 내시경 004
  192. 병동 005
  193. 부정맥 006
  194. 분만 007
  195. 성분 008
  196. 외래 009
  197. 응급 010
  198. 전문 011
  199. 주사 012
  200. 통원 013
  201. 투석 014
  202. 혈당 015
  203. Echo 016
  204. 특주 017
  205. 입원전검사 018
  206. Angio 019
  207. 심도자실 020
  208. 수술 021 수술실 따로 떨어짐
  209. 과내 022
  210. BMT주사실 023
  211. DCC 024
  212. CT 025
  213. 분만 026 응급실환자가 분만실에서 처치를 받을경우
  214. 외래 027 병동환자가 외래에서 처치및 소수술을 받는경우
  215. 마취 900
  216. 회복 900
  217. 통증 030(순천향)
  218. 낙상 031(순천향)
  219. 욕창 032(순천향)
  220. - 처방구분(prcpflag)
  221. A : 투약
  222. H : 처치
  223. T : 검사
  224. */
  225. var sPatSelUseYN="";
  226. var sParamInfo = "";
  227. var sPamInfo = "";
  228. var sParamPid = ""; // 141205 - AYS 추가
  229. var sParamRecflag = ""; // 141205 - AYS 추가
  230. if(!utlf_isNull(frmf_getMenuParam())){
  231. ds_init_gruplist.filter("paramcd=='"+frmf_getMenuParam()+"'");
  232. sPatSelUseYN = ds_init_gruplist.getColumn(0,"patseluseyn");
  233. ds_init_gruplist.filter("");
  234. }
  235. if (sPatSelUseYN != "Y"){
  236. // 환자정보 조회
  237. sPamInfo = sysf_getGlobalVariable("paminfo");
  238. if(!utlf_isNull(sPamInfo)){
  239. dsf_setCSVToDs("ds_data_pamlist",sPamInfo);
  240. }
  241. opt_pid.visible = true;
  242. ipt_srchpid.visible = false;
  243. btn_srchpid.visible = false;
  244. cmb_pid.visible = false;
  245. cap_settingrn.visible = false;
  246. cmb_settingrn.visible = false;
  247. cmb_pid_er.visible = false;
  248. caption4.position.left = 390;
  249. cmb_pid.position.left = 478;
  250. //환자정보 세팅
  251. sPid = ds_data_pamlist.getColumn(0,"pid");
  252. sHngNm = ds_data_pamlist.getColumn(0,"hngnm");
  253. sHngNm2 = ds_data_pamlist.getColumn(0,"hngnm2");
  254. sAge = ds_data_pamlist.getColumn(0,"age");
  255. sIOFlag = ds_data_pamlist.getColumn(0,"ioflag"); // 입원/외래 구분
  256. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  257. sIndd = ds_data_pamlist.getColumn(0,"indd"); // 진료일자
  258. sOrdDD = "-";
  259. }else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 itc 요청서에 의한 반영
  260. sOrdDD = ds_data_pamlist.getColumn(0,"orddd"); // 진료일자
  261. sIndd = "-";
  262. }
  263. sCretNo = ds_data_pamlist.getColumn(0,"cretno"); // 환자 일자별 일련번호
  264. sInstcd = ds_data_pamlist.getColumn(0,"instcd"); // 기관코드
  265. sOrdDeptCd = ds_data_pamlist.getColumn(0,"orddeptcd"); // 진료과코드
  266. ds_data_pamlist.addColumn("medispclid","string");
  267. sOrdDrId = ds_data_pamlist.getColumn(0,"medispclid"); // 진료의사ID
  268. if(frmf_checkOpener()){
  269. sParamInfo = utlf_transNullToEmpty(opener.frmf_getParameter("SMMNR03400_ParamBase"));
  270. sPrcpInfo = utlf_transNullToEmpty(opener.frmf_getParameter("SMMNR03400_ParamPrcp"));
  271. sTextAutoSave = utlf_transNullToEmpty(opener.frmf_getParameter("SMMNR03400_ParamSaveText"));
  272. DutPlceCD = getArrayData(sParamInfo,1,1);
  273. sParamRecflag = getArrayData(sParamInfo,1,0);
  274. sParamPid = ((getArrayData(sParamInfo,1,2)).split(","))[1]; // 신장실 투석환자와 상단환자 정보와 다를 시 window.close
  275. if ( DutPlceCD == "014" && sParamRecflag =="L" && !utlf_isNull(sParamPid)){
  276. if( sParamPid != sPid ) {
  277. sysf_messageBox("혈액투석 선택환자와 상단환자가","E004");
  278. this.close();
  279. }
  280. }
  281. if ( !utlf_isNull(DutPlceCD) ){
  282. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  283. sRecFlag = ds_init_gruplist.getColumn(0,"recflag");
  284. ds_init_gruplist.filter("");
  285. }
  286. if(DutPlceCD=="001"){
  287. sPatInfo = opener.frmf_getParameter("SMMNR03400_HomeCare");
  288. opener.frmf_setParameter("SMMNR03400_HomeCare","");
  289. }
  290. if(DutPlceCD=="002" || DutPlceCD=="003" || DutPlceCD=="004" || DutPlceCD=="006" || DutPlceCD=="016" || DutPlceCD=="019" || DutPlceCD=="020" || DutPlceCD=="022" || DutPlceCD=="025"){//기능검사, 과내검사
  291. sPatInfo = opener.frmf_getParameter("SMMNR03400_AST");
  292. opener.frmf_setParameter("SMMNR03400_AST","");
  293. }
  294. opener.frmf_setParameter("SMMNR03400_ParamPrcp","");
  295. opener.frmf_setParameter("SMMNR03400_ParamSaveText", "");
  296. if(!utlf_isNull(frmf_getMenuParam()) && utlf_isNull(sParamInfo) ){
  297. DutPlceCD = frmf_getMenuParam();//20080705
  298. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  299. sRecFlag = ds_init_gruplist.getColumn(0,"recflag");
  300. ds_init_gruplist.filter("");
  301. if(DutPlceCD == "021" && (!utlf_isNull(appf_getOperationInfo("oprsrvno")) && appf_getOperationInfo("oprsrvno") != false)){//수술간호 메뉴에서 오픈시
  302. sRecLnkKey = appf_getOperationInfo("oprsrvno") + "," + sInstcd;
  303. }else{
  304. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  305. }
  306. }else if ( gMenuGrupCd == "MG00520000" ){//전문간호 메뉴그룹으로 들어왔을경우
  307. DutPlceCD = "011";
  308. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  309. sRecFlag = ds_init_gruplist.getColumn(0,"recflag");
  310. ds_init_gruplist.filter("");
  311. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  312. }else if ( gMenuGrupCd == "MG02030000" && DutPlceCD != "015" && DutPlceCD != "021" ){//마취 회복 메뉴그룹으로 들어왔을경우지만 혈당기록에서 띄울경우에는 혈당으로 떠야함.
  313. DutPlceCD = "900";
  314. }
  315. }else{
  316. if ( gMenuGrupCd == "MG00520000" ){//전문간호 메뉴그룹으로 들어왔을경우
  317. DutPlceCD = "011";
  318. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  319. sRecFlag = ds_init_gruplist.getColumn(0,"recflag");
  320. ds_init_gruplist.filter("");
  321. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  322. }else if ( gMenuGrupCd == "MG02030000" && DutPlceCD != "015" && DutPlceCD != "021" ){//마취 회복 메뉴그룹으로 들어왔을경우지만 혈당기록에서 띄울경우에는 혈당으로 떠야함.
  323. DutPlceCD = "900";
  324. }else if( !utlf_isNull(frmf_getMenuParam()) && utlf_isNull(sParamInfo) ){
  325. DutPlceCD = frmf_getMenuParam();//20080705
  326. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  327. sRecFlag = ds_init_gruplist.getColumn(0,"recflag");
  328. ds_init_gruplist.filter("");
  329. if ( DutPlceCD == "021" && (!utlf_isNull(appf_getOperationInfo("oprsrvno")) && appf_getOperationInfo("oprsrvno") != false )){//수술간호 메뉴에서 오픈시
  330. sRecLnkKey = appf_getOperationInfo("oprsrvno") + "," + sInstcd;
  331. } else {
  332. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  333. }
  334. }
  335. }
  336. if(utlf_isNull(sPamInfo) && utlf_isNull(sPatInfo)){
  337. sysf_messageBox("환자를 먼저","C002");
  338. return;
  339. }
  340. if(utlf_isNull(DutPlceCD)){
  341. cmb_deptflag.enable = true;
  342. DutPlceCD = "015";
  343. sRecFlag = "B";//디폴트 혈당
  344. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  345. sGrupCd = ds_init_gruplist.getColumn(0,"grupcd");
  346. ds_init_gruplist.filter("");
  347. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  348. // 마취추가
  349. }else if( DutPlceCD == "900" ){//수술(20080926 따로 떨어짐) 마취 회복에서 호출할경우 || 마취 회복 메뉴그룹으로 들어왔을경우
  350. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  351. ds_init_opanstlist.copyData(ds_init_gruplist, true);
  352. ds_init_gruplist.filter("");
  353. cmb_deptflag.enable = false;
  354. cmb_deptflag.innerdataset = "ds_init_opanstlist";
  355. sRecLnkKey = getArrayData(sParamInfo,1,2);
  356. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  357. sGrupCd = ds_init_gruplist.getColumn(0,"grupcd");
  358. ds_init_gruplist.filter("");
  359. }else if( DutPlceCD=="001"
  360. || DutPlceCD=="002"
  361. || DutPlceCD=="003"
  362. || DutPlceCD=="006"
  363. || DutPlceCD=="019"
  364. || DutPlceCD=="020"
  365. || DutPlceCD=="022"
  366. || DutPlceCD=="025"
  367. || DutPlceCD=="016" ){//가정간호,기능검사에서 호출할경우 상단정보가 없으므로 다시 세팅
  368. sPid = getArrayData(sPatInfo,1,0);
  369. sHngNm = getArrayData(sPatInfo,1,2);
  370. sAge = getArrayData(sPatInfo,1,3);
  371. sIOFlag = getArrayData(sPatInfo,1,6); // 입원/외래 구분
  372. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  373. sIndd = getArrayData(sPatInfo,1,4); // 진료일자
  374. sOrdDD = "-";
  375. }else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 itc 요청서에 의한 반영
  376. sOrdDD = getArrayData(sPatInfo,1,4); // 진료일자
  377. sIndd = "-";
  378. }
  379. sCretNo = getArrayData(sPatInfo,1,5); // 환자 일자별 일련번호
  380. sInstcd = getArrayData(sPatInfo,1,1); // 기관코드
  381. sOrdDeptCd = getArrayData(sPatInfo,1,7); // 진료과코드
  382. sOrdDrId = getArrayData(sPatInfo,1,8); // 진료의사ID
  383. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  384. sGrupCd = ds_init_gruplist.getColumn(0,"grupcd");
  385. ds_init_gruplist.filter("");
  386. if(!utlf_isNull(sParamInfo))
  387. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  388. else
  389. sRecLnkKey = "";
  390. }else {
  391. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  392. sGrupCd = ds_init_gruplist.getColumn(0,"grupcd");
  393. ds_init_gruplist.filter("");
  394. if ( !utlf_isNull(sPamInfo) && DutPlceCD != "900" && DutPlceCD != "021" && DutPlceCD != "001" && DutPlceCD != "014"){
  395. if ( sRecFlag == "B" ){
  396. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  397. }else{
  398. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  399. }
  400. }else if (!utlf_isNull(sParamInfo)){
  401. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  402. }
  403. }
  404. // 조회조건 setting
  405. ds_cond.setColumn(0,"grupcd",sGrupCd);
  406. ds_cond.setColumn(0,"recdateflag","A");
  407. ds_cond.setColumn(0,"certrecflag","C");
  408. ds_cond.setColumn(0,"fromdd",utlf_getCurrentDate());
  409. ds_cond.setColumn(0,"todd",utlf_getCurrentDate());
  410. ds_cond.setColumn(0,"dnarflag","%");
  411. ds_cond.setColumn(0,"sortseq","A");
  412. fSettingRecInfo();
  413. ds_cond.setColumn(0,"pid",sPid);
  414. ds_cond.setColumn(0,"pname", (utlf_isNull(sHngNm2) ? sHngNm : sHngNm2)); //170515_AYS_환자이름 안보이는 경우 발생
  415. ds_cond.setColumn(0,"age",sAge);
  416. swt_recinfo.tabindex = 0;
  417. //btn_set.visible = true;
  418. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"'");
  419. FreeTextOnlyUseYN = ds_init_gruplist.getColumn(0,"freetextonlyuseyn");
  420. ds_init_gruplist.filter("");
  421. if( !utlf_isNull(FreeTextOnlyUseYN) && FreeTextOnlyUseYN == "Y" ){// 심도자실과 성가제외 angio 은 진술문은 존재하지않는다.Free Text 저장만 enable 성가 angio는 진술문 등록함.20090520 김홍점
  422. //btn_stmtsave.disabled = "true"; Free Text도 선택하여 진술문 인증저장버튼 이용.20091221 김홍점
  423. }else{
  424. if(!utlf_isNull(ds_cond.getColumn(0,"grupcd"))){
  425. fMakeStmtList("true");
  426. }
  427. }
  428. if( !utlf_isNull(sTextAutoSave)){
  429. fFreeTextAutoSave();
  430. }
  431. } else {
  432. DutPlceCD = frmf_getMenuParam();
  433. opt_pid.visible = false;
  434. ipt_srchpid.visible = true;
  435. btn_srchpid.visible = true;
  436. cmb_pid.visible = false;
  437. cap_settingrn.visible = false;
  438. cmb_settingrn.visible = false;
  439. cmb_pid_er.visible = false;
  440. ipt_srchpid.setFocus();
  441. caption4.position.left = 390;
  442. cmb_pid.position.left = 478;
  443. if(DutPlceCD == "017") {
  444. suppdeptcd = lf_aezfSetSuppDeptcd();
  445. cmb_pid.visible = true;
  446. cap_settingrn.visible = true;
  447. cmb_settingrn.visible = true;
  448. cmb_pid_er.visible = false;
  449. opt_pid.visible = false;
  450. opt_pname.visible = false;
  451. opt_age.visible = false;
  452. ipt_srchpid.visible = false;
  453. btn_srchpid.visible = false;
  454. caption4.position ="absolute 580 27 665 52";
  455. cmb_pid.position = "absolute 669 30 774 49";
  456. fSetItem();
  457. fSettingnurid();
  458. fGetPatList();
  459. fSetPatInitInfo();
  460. } else if (DutPlceCD == "010") {
  461. suppdeptcd = lf_aezfSetSuppDeptcd();
  462. cmb_pid.visible = false;
  463. cap_settingrn.visible = false;
  464. cmb_settingrn.visible = false;
  465. cmb_pid_er.visible = true;
  466. opt_pid.visible = false;
  467. opt_pname.visible = false;
  468. opt_age.visible = false;
  469. ipt_srchpid.visible = false;
  470. btn_srchpid.visible = false;
  471. caption4.position.left = 390;
  472. cmb_pid.position.left = 478;
  473. //메인에 보여지는 화면 오브젝트를 가져온다.
  474. var mainObj = frmf_getMainViewer();
  475. if(!utlf_isNull(mainObj)) {
  476. scrid = mainObj.frmf_getScreenID();
  477. if(scrid == "SMMNE00100") {
  478. var sSrchData = "";
  479. var sSrchHeader = "flag▦orddept▦orddrid▦section▦fromorddd▦orddd▦wardcd▦outdt▦srchinstcd▩";
  480. var sSrchData = utlf_transNullToEmpty(mainObj.ds_main_cond.getColumn(0,"indschacptstat")) +"▦"
  481. + utlf_transNullToEmpty(mainObj.ds_main_cond.getColumn(0,"orddeptcd")) +"▦"
  482. + utlf_transNullToEmpty(mainObj.ds_main_cond.getColumn(0,"medispclid")) +"▦"
  483. + utlf_transNullToEmpty(mainObj.ds_main_cond.getColumn(0,"section")) +"▦"
  484. + utlf_transNullToEmpty(getDateCalc(utlf_getCurrentDate().substr(0,8), 3, "-")) +"▦"
  485. + utlf_transNullToEmpty(utlf_getCurrentDate().substr(0,8)) +"▦"
  486. + utlf_transNullToEmpty(mainObj.ds_main_cond.getColumn(0,"wardcd")) +"▦"
  487. + utlf_transNullToEmpty(mainObj.ds_main_cond.getColumn(0,"outdt")) +"▦"
  488. + utlf_transNullToEmpty(mainObj.ds_main_cond.getColumn(0,"srchinstcd")) +"▩";
  489. dsf_setCSVToDs("ds_send_mainsearchinfo",sSrchHeader + sSrchData);
  490. }
  491. }
  492. dsf_createDs("ds_searchinfo");
  493. var oParam = {};
  494. oParam.id = "TRMNE00101";
  495. oParam.service = "ercareapp.ERPatMngt";
  496. oParam.method = "reqGetNurseMainInfo";
  497. oParam.inds = "mainsearchinfo=ds_send_mainsearchinfo searchinfo=ds_searchinfo";
  498. oParam.outds = "ds_init_nursemainlist=nursemaininfo";
  499. oParam.async = false;
  500. //oParam.callback = "cf_TRMNE00101";
  501. tranf_submit(oParam);
  502. ///root/main/chemoinfo/
  503. fSetPatInitInfo();
  504. }
  505. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  506. sGrupCd = ds_init_gruplist.getColumn(0,"grupcd");
  507. sRecFlag = ds_init_gruplist.getColumn(0,"recflag");
  508. ds_init_gruplist.filter("");
  509. // 조회조건 setting
  510. ds_cond.setColumn(0,"grupcd",sGrupCd);
  511. ds_cond.setColumn(0,"recdateflag","A");
  512. ds_cond.setColumn(0,"certrecflag","C");
  513. ds_cond.setColumn(0,"fromdd",utlf_getCurrentDate());
  514. ds_cond.setColumn(0,"todd",utlf_getCurrentDate());
  515. ds_cond.setColumn(0,"dnarflag","%");
  516. ds_cond.setColumn(0,"sortseq","A");
  517. fSettingRecInfo();
  518. if( utlf_isNull(DutPlceCD)){
  519. cmb_deptflag.enable =true;
  520. DutPlceCD = "015";
  521. sRecFlag = "B";//디폴트 혈당
  522. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  523. sGrupCd = ds_init_gruplist.getColumn(0,"grupcd");
  524. ds_init_gruplist.filter("");
  525. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  526. } else if( DutPlceCD == "900" ){//수술(20080926 따로 떨어짐) 마취 회복에서 호출할경우 || 마취 회복 메뉴그룹으로 들어왔을경우
  527. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  528. ds_init_opanstlist.copyData(ds_init_gruplist, true);
  529. ds_init_gruplist.filter("");
  530. cmb_deptflag.enable = false;
  531. cmb_deptflag.innerdataset = "ds_init_opanstlist";
  532. sRecLnkKey = getArrayData(sParamInfo,1,2);
  533. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"' && cdgrupid=='054'");
  534. sGrupCd = ds_init_gruplist.getColumn(0,"grupcd");
  535. ds_init_gruplist.filter("");
  536. } else if( DutPlceCD=="001"
  537. || DutPlceCD=="002"
  538. || DutPlceCD=="003"
  539. //|| DutPlceCD=="004"
  540. || DutPlceCD=="006"
  541. || DutPlceCD=="019"
  542. || DutPlceCD=="020"
  543. || DutPlceCD=="022"
  544. || DutPlceCD=="025"
  545. || DutPlceCD=="016" ){//가정간호,기능검사에서 호출할경우 상단정보가 없으므로 다시 세팅
  546. sPid = getArrayData(sPatInfo,1,0);
  547. sHngNm = getArrayData(sPatInfo,1,2);
  548. sAge = getArrayData(sPatInfo,1,3);
  549. sIOFlag = getArrayData(sPatInfo,1,6); // 입원/외래 구분
  550. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  551. sIndd = getArrayData(sPatInfo,1,4); // 진료일자
  552. sOrdDD = "-";
  553. //}else if(sIOFlag == "O"){ // 외래
  554. } else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 김홍점 김영림 itc 요청서에 의한 반영
  555. sOrdDD = getArrayData(sPatInfo,1,4); // 진료일자
  556. sIndd = "-";
  557. }
  558. sCretNo = getArrayData(sPatInfo,1,5); // 환자 일자별 일련번호
  559. sInstcd = getArrayData(sPatInfo,1,1); // 기관코드
  560. sOrdDeptCd = getArrayData(sPatInfo,1,7); // 진료과코드
  561. sOrdDrId = getArrayData(sPatInfo,1,8); // 진료의사ID
  562. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"'&& cdgrupid == '054'");
  563. sGrupCd = ds_init_gruplist.getColumn(0, "grupcd");
  564. ds_init_gruplist.filter("");
  565. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  566. } else {
  567. //ds_init_gruplist
  568. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"'&& cdgrupid == '054'");
  569. sGrupCd = ds_init_gruplist.getColumn(0, "grupcd");
  570. ds_init_gruplist.filter("");
  571. //if ( sRecFlag == "B" ){
  572. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  573. //} else{
  574. // sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  575. //}
  576. //alert("sRecLnkKey:"+sRecLnkKey);
  577. if ( !utlf_isNull(sPamInfo) && DutPlceCD != "900" && DutPlceCD != "021" && DutPlceCD != "001" && DutPlceCD != "014"){
  578. if ( sRecFlag == "B" ){
  579. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";//상단정보존재시 기록연계키를 생성
  580. } else{
  581. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;//상단정보존재시 기록연계키를 생성
  582. }
  583. } else if ( !utlf_isNull(sParamInfo) ){
  584. sRecLnkKey = getArrayData(sParamInfo,1,2); //원무키 + 처방키
  585. }
  586. }
  587. /////////////////////////////////
  588. // 조회조건 setting
  589. ds_cond.setColumn(0,"grupcd",sGrupCd);
  590. ds_cond.setColumn(0,"recdateflag","A");
  591. ds_cond.setColumn(0,"certrecflag","C");
  592. ds_cond.setColumn(0,"fromdd",utlf_getCurrentDate());
  593. ds_cond.setColumn(0,"todd",utlf_getCurrentDate());
  594. ds_cond.setColumn(0,"dnarflag","%");
  595. ds_cond.setColumn(0,"sortseq","A");
  596. fSettingRecInfo();
  597. ds_cond.setColumn(0,"pid",sPid);
  598. ds_cond.setColumn(0,"pname",sHngNm2);
  599. ds_cond.setColumn(0,"age",sAge);
  600. swt_recinfo.tabindex = 0;
  601. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"'");
  602. FreeTextOnlyUseYN = ds_init_gruplist.getColumn(0,"freetextonlyuseyn");
  603. ds_init_gruplist.filter("");
  604. if( !utlf_isNull(FreeTextOnlyUseYN) && FreeTextOnlyUseYN == "Y" ){
  605. } else {
  606. if( !utlf_isNull(ds_cond.getColumn(0,"grupcd"))){
  607. fMakeStmtList("true");
  608. }
  609. }
  610. if( !utlf_isNull(sTextAutoSave) ){
  611. fFreeTextAutoSave();
  612. }
  613. /////////////////////////////////////////////////
  614. }
  615. frmf_addComboItem("cmb_deptflag", "전체", "", "");
  616. if(utlf_isNull(ds_cond.getColumn(0, "grupcd"))){
  617. ds_cond.setColumn(0, "grupcd", "");
  618. }
  619. // cmb_deptflag.value = ds_init_gruplist.getColumn(0, "grupcd");
  620. var inrmdd = sysf_getModelProperty("inrmdd");
  621. var inrmtm = sysf_getModelProperty("inrmtm");
  622. if( !utlf_isNull(inrmdd) ) {
  623. ds_send_reqdata.clearData();
  624. dsf_makeValue(ds_send_reqdata,"pid","string",sPid);
  625. dsf_makeValue(ds_send_reqdata,"indd","string",sIndd);
  626. dsf_makeValue(ds_send_reqdata,"cretno","string",sCretNo);
  627. dsf_makeValue(ds_send_reqdata,"origincd","string", ds_cond.getColumn(0,"grupcd"));
  628. var oParam = {};
  629. oParam.id = "TRMNR03405";
  630. oParam.service = "carerecapp.NursingRecord";
  631. oParam.method = "reqGetPreRecInfo";
  632. oParam.inds = "req=ds_send_reqdata";
  633. oParam.outds = "ds_main_prerecinfo_prereclist=prereclist";
  634. oParam.async = false;
  635. tranf_submit(oParam);
  636. var existyn = ds_main_prerecinfo_prereclist.getColumn(0, "existyn");
  637. if(existyn == "Y") {
  638. swt_recinfo.stmtinfo.rdo_recflag.value = "A";
  639. swt_recinfo.stmtinfo.ipt_recdd.enable = false;
  640. swt_recinfo.stmtinfo.ipt_rectm.enable = false;
  641. swt_recinfo.stmtinfo.btn_recdt.enable = false;
  642. } else {
  643. swt_recinfo.stmtinfo.rdo_recflag.value = "U";
  644. swt_recinfo.stmtinfo.ipt_recdd.value = inrmdd;
  645. swt_recinfo.stmtinfo.ipt_rectm.value = inrmtm;
  646. swt_recinfo.stmtinfo.ipt_recdd.enable = true;
  647. swt_recinfo.stmtinfo.ipt_rectm.enable = true;
  648. swt_recinfo.stmtinfo.btn_recdt.enable = true;
  649. }
  650. }
  651. }
  652. function cf_TRMNR03499(sScvId, nErrorCode, sErrorMsg){
  653. if(nErrorCode == 0){//성공하였을때
  654. stmtcd1 = ds_init_stmtinfo.getColumn(0,"stmtcd1");
  655. stmtcd2 = ds_init_stmtinfo.getColumn(0,"stmtcd2");
  656. stmtcd3 = ds_init_stmtinfo.getColumn(0,"stmtcd3");
  657. }else{
  658. sysf_messageBox(sErrorMsg, "E");
  659. }
  660. }
  661. /**
  662. * @group :
  663. * @ver : 2009.05.20
  664. * @by : 양천덕
  665. * @---------------------------------------------------
  666. * @type : function
  667. * @access : public
  668. * @desc : 화면 오픈시 자동 저장 처리
  669. * @param : sTextAutoSave --> 자동 저장시 필요 Parameter
  670. * @return : true , false
  671. * @---------------------------------------------------
  672. */
  673. function fFreeTextAutoSave(){
  674. var sTextRecFalg = getArrayData(sTextAutoSave, 0, 0); //기록구분
  675. var sTextOutoFlag = getArrayData(sTextAutoSave, 0, 1); //자동기록구분 ("A", "U");
  676. var sTextRecDt = getArrayData(sTextAutoSave, 0, 2); //기록시간
  677. var sTextRecStmt = getArrayData(sTextAutoSave, 0, 3); //기록문장
  678. if(utlf_isNull(sTextRecFalg)) sTextRecFalg = "S";
  679. ds_cond.setColumn(0,"freetextdnarflag",sTextRecFalg);
  680. ds_cond.setColumn(0,"freetextsrchcnts",sTextRecStmt);
  681. ds_cond.setColumn(0,"recdateflag","U");
  682. if(sTextRecDt.length < 12){
  683. ds_cond.setColumn(0,"recdd",utlf_getCurrentDate());
  684. ds_cond.setColumn(0,"rectm",utlf_getCurrentTime());
  685. }else{
  686. ds_cond.setColumn(0,"recdd",sTextRecDt.substr(0, 8));
  687. ds_cond.setColumn(0,"rectm",sTextRecDt.substr(8, 4));
  688. }
  689. if(!utlf_isNull(sTextAutoSave)){
  690. fSelTextStmtInfo();
  691. fSaveCareRec();
  692. opener.frmf_setParameter("SPMNR03400_Return", sAutoProcFlag);
  693. this.close();
  694. }
  695. }
  696. /**
  697. * @group :
  698. * @ver : 2008.07.08
  699. * @by : 김홍점
  700. * @---------------------------------------------------
  701. * @type : function
  702. * @access : public
  703. * @desc : 수술마취회복 선택값
  704. * @param :
  705. * @return :
  706. * @---------------------------------------------------
  707. */
  708. function fGrpOpAnstSel(){
  709. //수술마취회복이 부서코드가 900으로 넘어와 기록구분으로 그룹코드가 선택된다.
  710. sGrupCd = ds_cond.getColumn(0,"grupcd");
  711. ds_init_gruplist.filter("grupcd=='"+sGrupCd+"'");
  712. sRecFlag = ds_init_gruplist.getColumn(0,"recflag");
  713. ds_init_gruplist.filter("");
  714. if ((!utlf_isNull(appf_getOperationInfo("oprsrvno")) && appf_getOperationInfo("oprsrvno") != false) && sRecFlag=="R" ){//회복선택시
  715. sRecLnkKey = sPid+"," + sInstcd + "," + appf_getOperationInfo("oprsrvno") + "," +appf_getOperationInfo("ophistno");
  716. }else if ((!utlf_isNull(appf_getOperationInfo("oprsrvno")) && appf_getOperationInfo("oprsrvno") != false) && sRecFlag=="A" ){//마취선택시
  717. sRecLnkKey = appf_getOperationInfo("oprsrvno") + "," +sInstcd;
  718. }
  719. }
  720. /**
  721. * @group :
  722. * @ver : 2007.05.21
  723. * @by : 이은영
  724. * @---------------------------------------------------
  725. * @type : function
  726. * @access : public
  727. * @desc : 기록정보 Setting
  728. * @param :
  729. * @return :
  730. * @---------------------------------------------------
  731. */
  732. function fSettingRecInfo(){
  733. var sRecDateFlag = ds_cond.getColumn(0,"recdateflag");
  734. if(sRecDateFlag == "A"){ // 자동
  735. ds_cond.setColumn(0,"recdd","");
  736. ds_cond.setColumn(0,"rectm","");
  737. swt_recinfo.stmtinfo.ipt_recdd.enable = false;
  738. swt_recinfo.stmtinfo.ipt_rectm.enable = false;
  739. swt_recinfo.stmtinfo.btn_recdt.enable = false;
  740. }else{ // 사용자 지정
  741. ds_cond.setColumn(0,"recdd",utlf_getCurrentDate());
  742. ds_cond.setColumn(0,"rectm",utlf_getCurrentTime().substr(0,4));
  743. swt_recinfo.stmtinfo.ipt_recdd.enable = true;
  744. swt_recinfo.stmtinfo.ipt_rectm.enable = true;
  745. swt_recinfo.stmtinfo.btn_recdt.enable = true;
  746. }
  747. }
  748. /**
  749. * @group :
  750. * @ver : 2007.05.22
  751. * @by : 이은영
  752. * @---------------------------------------------------
  753. * @type : function
  754. * @access : public
  755. * @desc : 진술문 리스트를 만듬
  756. * @param :pCheck : "false","true" 팝업으로 열릴때는 선택되도록 체크.
  757. * @return :
  758. * @---------------------------------------------------
  759. */
  760. function fMakeStmtList(pCheck){
  761. var iStmtRow = 1; // 진술문 순서
  762. var iAttrRow = 1; // 속성 순서
  763. var sAttrInfo = ""; // 속성정보
  764. var sAttrInfo2 = ""; // 속성정보2
  765. var sGrupNM = ""; // 그룹명
  766. var sStmtCnts = ""; // 진술문장
  767. var sAttrFlag = ""; // 속성구분
  768. var sAttrCD = "" // 속성코드
  769. var sPlnumChoiYN = ""; // 다중속성선택여부
  770. var sStmtCD = ""; // 진술문코드
  771. var sAttrCnt = 0; // 속성개수
  772. var sMaxAttrCnt = 0; // 최대 속성 개수
  773. var sAttrSeq = 0; // 속성순서
  774. var sCtrlID = "";
  775. var sColCnt = swt_recinfo.stmtinfo.grd_stmtinfo.getCellCount("body"); // 컬럼개수
  776. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수 1은 첫번째 속성컬럼
  777. var sGrdCap = ""; // 그리드 컬럼ID
  778. var sGrdCapText = ""; // 그리드 컬럼명
  779. //var sCheckPrcpYN = "N"; //TYPE2로 처방을 연동했는지 검사 20130412 kkm
  780. if ( DutPlceCD =="014"){//소경화 10-15 16:29 시간이요...지정으로 default
  781. ds_cond.setColumn(0,"recdateflag","U");
  782. fSettingRecInfo();
  783. } else {
  784. ds_cond.setColumn(0,"recdateflag","A");
  785. fSettingRecInfo();
  786. }
  787. if( !utlf_isNull(FreeTextOnlyUseYN) && FreeTextOnlyUseYN== "Y" ){//angio(성가 제외), 심도자실은 진술문은 존재하지않는다.Free Text 저장만 enable이므로 이하 리턴
  788. return;
  789. }
  790. for(var iCol=(sColCnt-1); iCol> (sStndColCnt-1); iCol--){
  791. swt_recinfo.stmtinfo.grd_stmtinfo.deleteContentsCol("body", iCol,false);
  792. }
  793. ds_grid_grd_stmtinfo.clearData();
  794. ds_send.clearData();
  795. dsf_makeValue(ds_send,"grupcd", "string", ds_cond.getColumn(0,"grupcd"));
  796. ds_data_attrinfo.clearData();
  797. ds_data_stmtinfo.clearData();
  798. var oParam = {};
  799. oParam.id = "TRMNR03401";
  800. oParam.service = "carerecapp.NursingRecord";
  801. oParam.method = "reqGetNDTypeIIStmtList";
  802. oParam.inds = "refCond=ds_send";
  803. oParam.outds = "ds_data_attrinfo=attrinfo ds_data_stmtinfo=stmtinfo";
  804. oParam.async = false;
  805. oParam.callback = "cf_TRMNR03401";
  806. tranf_submit(oParam);
  807. if(arErrorCode.pop("TRMNR03401") > -1) {
  808. var sStmtRowCnt = ds_data_stmtinfo.rowcount;
  809. // 최대 속성 개수 체크
  810. for(var iRow = 0; iRow < sStmtRowCnt; iRow++){
  811. sStmtCD = ds_data_stmtinfo.getColumn(iRow,"stmtcd");
  812. if( iRow == 0){
  813. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){// 처방관련 진술문은 제외
  814. sMaxAttrCnt = parseInt(ds_data_stmtinfo.getColumn(iRow,"attrcnt")) - 1;
  815. }else{
  816. sMaxAttrCnt = parseInt(ds_data_stmtinfo.getColumn(iRow,"attrcnt"));
  817. }
  818. }else{
  819. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){// 처방관련 진술문은 제외
  820. sAttrCnt = parseInt(ds_data_stmtinfo.getColumn(iRow,"attrcnt")) - 1;
  821. }else{
  822. sAttrCnt = parseInt(ds_data_stmtinfo.getColumn(iRow,"attrcnt"));
  823. }
  824. if( sMaxAttrCnt < sAttrCnt){
  825. sMaxAttrCnt = sAttrCnt;
  826. }
  827. }
  828. }
  829. //model.setValue("/root/temp/maxattrcnt", sMaxAttrCnt);
  830. ds_cond.setColumn(0,"maxattrcnt",sMaxAttrCnt);
  831. fAddGridColumn(0);
  832. fExprsetting();
  833. ds_grid_grd_stmtinfo.enableevent = false;
  834. // SET 별 진술문 정보
  835. for(var iRow = 0; iRow < sStmtRowCnt; iRow++){
  836. sGrupNM = ds_data_stmtinfo.getColumn(iRow,"grupnm");
  837. sStmtCnts = ds_data_stmtinfo.getColumn(iRow,"stmtcnts");
  838. sStmtCD = ds_data_stmtinfo.getColumn(iRow,"stmtcd");
  839. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){
  840. continue; // 처방관련 진술문은 제외
  841. }else {
  842. ds_grid_grd_stmtinfo.addRow();
  843. iStmtRow = ds_grid_grd_stmtinfo.rowcount-1;
  844. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"check","false");
  845. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupcd",ds_data_stmtinfo.getColumn(iRow,"grupcd"));
  846. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupnm",sGrupNM);
  847. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcd",sStmtCD);
  848. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcnts",sStmtCnts);
  849. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo1",ds_data_stmtinfo.getColumn(iRow,"attrinfo1"));
  850. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo2",ds_data_stmtinfo.getColumn(iRow,"attrinfo2"));
  851. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attressnyn",ds_data_stmtinfo.getColumn(iRow,"attressnyn"));
  852. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"dnarflag",ds_data_stmtinfo.getColumn(iRow,"dnarflag"));
  853. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrcnt",ds_data_stmtinfo.getColumn(iRow,"attrcnt"));
  854. fSettingAttrInfo(iStmtRow);
  855. }
  856. }
  857. fExprsetting(); //추가1
  858. ds_grid_grd_stmtinfo.enableevent = true;
  859. if(ds_grid_grd_stmtinfo.rowcount>0)
  860. ds_grid_grd_stmtinfo.rowposition = 0;
  861. // 처방에 따른 입력창 Setting
  862. ds_grid_grd_stmtinfo.enableevent = false;
  863. if(!utlf_isNull(sPrcpInfo) && sPrcpInfo.split("▩").length > 2 ){
  864. var sPrcpCnt = sPrcpInfo.split("▩").length-2;
  865. var sPrcpFlag = "";
  866. var sTerm = "";
  867. //sCheckPrcpYN = "Y"; //type2로 처방이 연동 되었는지 검사 20130413 kkm
  868. for(var iPrcpRow=1; iPrcpRow <= sPrcpCnt; iPrcpRow++){
  869. //grd_stmtinfo.addRow(false);
  870. ds_grid_grd_stmtinfo.addRow();
  871. //if(!ds_grid_grd_stmtinfo.getColumnInfo("prcpchk"))ds_grid_grd_stmtinfo.addColumn("prcpchk","string");
  872. //iStmtRow = grd_stmtinfo.rows - grd_stmtinfo.fixedrows;
  873. iStmtRow = ds_grid_grd_stmtinfo.rowcount-1;
  874. //model.setValue(xStmtInfoPath+"["+iStmtRow+"]/grupcd", "");
  875. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupcd","");
  876. sPrcpFlag = getArrayData(sPrcpInfo,iPrcpRow,0);
  877. if(sPrcpFlag == "A"){ //투약
  878. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupnm","투약");
  879. sStmtCD = stmtcd1;
  880. }else if(sPrcpFlag == "H"){ // 처치
  881. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupnm","처치");
  882. sStmtCD = stmtcd3;
  883. }else{
  884. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupnm","검사");
  885. sStmtCD = stmtcd2;
  886. }
  887. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcd",sStmtCD);
  888. ds_data_stmtinfo.filter("stmtcd=='"+sStmtCD+"'");
  889. sTerm = ds_data_stmtinfo.getColumn(0,"stmtcnts").split(" ");
  890. sAttrInfo = ds_data_stmtinfo.getColumn(0,"attrinfo2").split(" ");
  891. ds_data_stmtinfo.filter("");
  892. for(var i=0; i < sTerm.length; i++){
  893. if(utlf_isNull(sTerm[i])) {
  894. continue;
  895. }else{
  896. if(sTerm[i] != sAttrInfo[i]){
  897. sAttrSeq = eval( sAttrInfo[i].substr(1,1));
  898. if(sAttrSeq == 0){
  899. sStmtCnts = getArrayData(sPrcpInfo,iPrcpRow,1) + " ";
  900. sAttrInfo2 = getArrayData(sPrcpInfo,iPrcpRow,1) + " ";
  901. }else{
  902. sStmtCnts += sTerm[i];
  903. sAttrInfo2 += sAttrInfo[i];
  904. }
  905. }else{
  906. sStmtCnts += sTerm[i];
  907. sAttrInfo2 += sAttrInfo[i];
  908. }
  909. }
  910. }
  911. ds_data_stmtinfo.filter("stmtcd=='"+sStmtCD+"'");
  912. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"check",pCheck);
  913. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcnts",sStmtCnts);
  914. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo1",ds_data_stmtinfo.getColumn(0,"attrinfo1"));
  915. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo2",sAttrInfo2);
  916. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attressnyn",ds_data_stmtinfo.getColumn(0,"attressnyn"));
  917. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"dnarflag",ds_data_stmtinfo.getColumn(0,"dnarflag"));
  918. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrcnt",ds_data_stmtinfo.getColumn(0,"attrcnt"));
  919. //ds_grid_grd_stmtinfo.setColumn(iStmtRow,"prcpchk","Y");
  920. ds_data_stmtinfo.filter("");
  921. fSettingAttrInfo(iStmtRow);
  922. //grd_stmtinfo.rowstyle(iStmtRow,"data","background-color") = "#ffff88";
  923. }
  924. fExprsetting();//추가2
  925. }
  926. ds_grid_grd_stmtinfo.enableevent = true;
  927. //if(sCheckPrcpYN == "Y") ds_grid_grd_stmtinfo.rowposition = iStmtRow;
  928. }
  929. }
  930. function cbk_TRMNR03401(sScvId, nErrorCode, sErrorMsg){
  931. if(nErrorCode == 0){//성공하였을때
  932. cbk_TRMNR03401_flag = 1;
  933. }else{
  934. sysf_messageBox(sErrorMsg, "E");
  935. }
  936. }
  937. /**
  938. * @group :
  939. * @ver : 2007.04.25
  940. * @by : 이은영
  941. * @---------------------------------------------------
  942. * @type : function
  943. * @access : public
  944. * @desc : 그리드 속성 컬럼에 노드셋 설정
  945. * @param :
  946. * @return :
  947. * @---------------------------------------------------
  948. */
  949. function fSettingAttrInfo(pStmtRow){
  950. ds_grid_grd_stmtinfo.addColumn("exprchk","string");
  951. ds_grid_grd_stmtinfo.addColumn("exprchk2","string");
  952. ds_grid_grd_stmtinfo.addColumn("colcount","string");
  953. var sStmtCD = ds_grid_grd_stmtinfo.getColumn(pStmtRow,"stmtcd");
  954. var sAttrInfo;
  955. if(!utlf_isNull(ds_grid_grd_stmtinfo.getColumn(pStmtRow,"attrinfo1"))){
  956. sAttrInfo = ds_grid_grd_stmtinfo.getColumn(pStmtRow,"attrinfo1").split("⊙");
  957. }
  958. var sAttrCnt = 0;
  959. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수
  960. var sMaxAttrCnt = ds_cond.getColumn(0,"maxattrcnt"); // 최대 속성 개수
  961. for(var i=0; i<sMaxAttrCnt; i++){
  962. ds_grid_grd_stmtinfo.addColumn("iconchk"+i,"string");
  963. }
  964. if(!utlf_isNull(sAttrInfo)){
  965. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){ // 처방
  966. sAttrCnt = sAttrInfo.length-2;
  967. }else{
  968. sAttrCnt = sAttrInfo.length-1;
  969. }
  970. }
  971. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"colcount",sAttrCnt);
  972. //sysf_trace(sStndColCnt +" ^^^^^^^ "+i+" ^^^^^^^ "+sAttrCnt);
  973. //14+9 =23/24
  974. for(var i=0; i<sAttrCnt; i++){
  975. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){ // 처방
  976. sAttrCD = sAttrInfo[(i+1)];
  977. }else{
  978. sAttrCD = sAttrInfo[i];
  979. }
  980. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"attryn","▶");
  981. ds_data_attrinfo.filter("supcd=='"+sAttrCD+"'");
  982. var tmp_attrcd = ds_data_attrinfo.getColumn(0,"attrcd");
  983. ds_data_attrinfo.filter("");
  984. if(!utlf_isNull(tmp_attrcd)){
  985. ds_data_attrinfo.filter("attrcd=='"+sAttrCD+"'");
  986. sPlnumChoiYN = ds_data_attrinfo.getColumn(0,"plnumchoiyn");
  987. ds_data_attrinfo.filter("");
  988. if(sPlnumChoiYN == "Y"){
  989. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"exprchk","1");
  990. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"iconchk"+i,i+1);
  991. }else{
  992. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"exprchk","2");
  993. }
  994. }else{
  995. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"exprchk","3");
  996. }
  997. dsf_createDs("ds_comborow"+pStmtRow+i);
  998. //sysf_trace("sAttrCD "+sAttrCD +" "+"pStmtRow " + pStmtRow);//00004177 //00004178
  999. ds_data_attrinfo.filter("supcd=='"+sAttrCD+"'");
  1000. eval("ds_comborow"+pStmtRow+i).copyData(ds_data_attrinfo, true);
  1001. ds_data_attrinfo.filter("");
  1002. ds_grid_grd_stmtinfo.setColumn(pStmtRow, "sdataset"+((sStndColCnt+1)+(3*i)) , "ds_comborow"+pStmtRow+i);
  1003. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Body",(sStndColCnt+1)+(3*i),"combocodecol","attrcd");
  1004. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Body",(sStndColCnt+1)+(3*i),"combodatacol","attrnm");
  1005. eval("ds_comborow"+pStmtRow+i).addRow();
  1006. eval("ds_comborow"+pStmtRow+i).setColumn(eval("ds_comborow"+pStmtRow+i).rowcount - 1, "attrcd", "");
  1007. eval("ds_comborow"+pStmtRow+i).setColumn(eval("ds_comborow"+pStmtRow+i).rowcount - 1, "attrnm", "");
  1008. //sysf_trace("pStmtRow "+pStmtRow + " i "+i + " dataset "+"ds_comborow"+pStmtRow+i);
  1009. ds_data_attrinfo.filter("");
  1010. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"attrcd"+(i+1),sAttrCD);
  1011. }
  1012. // 속성개수가 최대 속성 개수보다 적은 진술문의 추가 속성 입력창은 읽기전용으로 설정
  1013. for(var iAttrRow = sAttrCnt; iAttrRow <= sMaxAttrCnt; iAttrRow++){
  1014. ds_grid_grd_stmtinfo.setColumn(pStmtRow,"exprchk2","4");
  1015. }
  1016. }
  1017. /**
  1018. * @group :
  1019. * @ver : 2007.04.25
  1020. * @by : 이은영
  1021. * @---------------------------------------------------
  1022. * @type : function
  1023. * @access : public
  1024. * @desc : 기록조회
  1025. * @param :
  1026. * @return :
  1027. * @---------------------------------------------------
  1028. */
  1029. function fSrchCareRec(pFlag){
  1030. if(utlf_isNull(ds_cond.getColumn(0,"grupcd"))){
  1031. sysf_messageBox("용도(부서)를 먼저","C002");
  1032. return;
  1033. }
  1034. if ( pFlag == "Y" && !fExistAddDNAR()) return;
  1035. fDeSelect();
  1036. DutPlceCD = frmf_getMenuParam();
  1037. swt_recinfo.tabindex = 1;
  1038. fSearchRecInfo();
  1039. }
  1040. /**
  1041. * @group :
  1042. * @ver : 2007.05.15
  1043. * @by : 이은영
  1044. * @---------------------------------------------------
  1045. * @type : function
  1046. * @access : public
  1047. * @desc : 저장하기 않은 간호기록 내역 존재여부
  1048. * @param :
  1049. * @return :
  1050. * @---------------------------------------------------
  1051. */
  1052. function fDeSelect(){
  1053. for(var i=0; i<ds_grid_grd_stmtinfo.rowcount; i++){
  1054. if(ds_grid_grd_stmtinfo.getColumn(i,"check") == 'true' || ds_grid_grd_stmtinfo.getColumn(i,"check") == '1')
  1055. ds_grid_grd_stmtinfo.setColumn(i,"check",0);
  1056. }
  1057. }
  1058. /**
  1059. * @group :
  1060. * @ver : 2007.05.15
  1061. * @by : 이은영
  1062. * @---------------------------------------------------
  1063. * @type : function
  1064. * @access : public
  1065. * @desc : 저장하기 않은 간호기록 내역 존재여부
  1066. * @param :
  1067. * @return :
  1068. * @---------------------------------------------------
  1069. */
  1070. function fExistAddDNAR(){
  1071. if (ds_grid_grd_stmtinfo.findRowExpr("check == 'true' || check == '1'") >=0){
  1072. var returnMsg = sysf_messageBox("저장하지 않은 선택 내역이 존재합니다. ", "Q002");// 저장하시겠습니까?
  1073. if ( returnMsg == 6 ) {
  1074. return false; //이후 진행 안함.
  1075. } else {
  1076. return true; //이후진행
  1077. }
  1078. }
  1079. return true; //이후진행
  1080. }
  1081. /**
  1082. * @group :
  1083. * @ver : 2007.04.26
  1084. * @by : 이은영
  1085. * @---------------------------------------------------
  1086. * @type : function
  1087. * @access : public
  1088. * @desc : 다중 선택의 속성코드의 경우 멀티 선택 가능 화면을 호출한다.
  1089. * @param : pCode : 속성 코드
  1090. * @return :
  1091. * @---------------------------------------------------
  1092. */
  1093. // function fCallDetlAttrInfo(pRefPath){
  1094. // var sRtn_Msg = "";
  1095. // var sAttrInfo = "";
  1096. // setParameter("SPMNR03000_Param",model.getValue(pRefPath+"/attrcd"));
  1097. // modal("SPMNR03000");
  1098. // setParameter("SPMNR03000_Param","");
  1099. // sRtn_Msg = getParameter("SPMNR03000_Return");
  1100. //
  1101. // if(sRtn_Msg == "" ) return;
  1102. // sAttrInfo = sRtn_Msg.split("▦");
  1103. // model.setValue(pRefPath+"/attrval",sAttrInfo[0]);
  1104. // model.setValue(pRefPath+"/attrvalcd",sAttrInfo[1]);
  1105. // model.refresh();
  1106. // }
  1107. /**
  1108. * @group :
  1109. * @ver : 2007.06.15
  1110. * @by : 이은영
  1111. * @---------------------------------------------------
  1112. * @type : function
  1113. * @access : public
  1114. * @desc : 간호일지 내역 조회
  1115. * @param :
  1116. * @return :
  1117. * @---------------------------------------------------
  1118. */
  1119. function fSearchRecInfo(){
  1120. ds_grid_grd_carerecspec.clearData();
  1121. if( utlf_isNull(sPid)){
  1122. sysf_messageBox("환자를 먼저","C002");
  1123. return;
  1124. }
  1125. var flag = sysf_getModelProperty("flag");
  1126. var ds_temp = dsf_createDsRow("ds_temp", [{col: "pid", val:sPid }
  1127. ,{col: "indd", val:sIndd }
  1128. ,{col: "orddd", val:sOrdDD }
  1129. ,{col: "cretno", val:sCretNo }
  1130. ,{col: "ioflag", val:sIOFlag }
  1131. ,{col: "fromdd", val:ds_cond.getColumn(0,"fromdd") }
  1132. ,{col: "todd", val:ds_cond.getColumn(0,"todd") }
  1133. ,{col: "dnarflag", val:ds_cond.getColumn(0,"dnarflag") }
  1134. ,{col: "sortseq", val:ds_cond.getColumn(0,"sortseq") }
  1135. ,{col: "recflag", val:sRecFlag }
  1136. ,{col: "reclnkkey", val:sRecLnkKey }
  1137. ,{col: "carediagflag", val:ds_cond.getColumn(0,"carediagflag") }
  1138. ,{col: "type2", val:"Y" }
  1139. ,{col: "flag", val:flag }]);
  1140. var oParam = {};
  1141. oParam.id = "TRMNR03402";
  1142. oParam.service = "carerecapp.NursingRecord";
  1143. oParam.method = "reqGetDifRecList";
  1144. oParam.inds = "srchinfo="+ds_temp+"";
  1145. oParam.outds = "ds_grid_grd_carerecspec=nursingrecordlist";
  1146. oParam.async = false;
  1147. //oParam.callback = "cf_TRMNR03402";
  1148. tranf_submit(oParam);
  1149. }
  1150. function cbk_TRMNR03402(sScvId, nErrorCode, sErrorMsg){
  1151. if(nErrorCode == 0){//성공하였을때
  1152. //fSettingRec();
  1153. //grd_carerecspec.resizeCells();
  1154. }else{
  1155. sysf_messageBox(sErrorMsg, "E");
  1156. }
  1157. }
  1158. /**
  1159. * @group :
  1160. * @ver : 2007.06.16
  1161. * @by : 이은영
  1162. * @---------------------------------------------------
  1163. * @type : function
  1164. * @access : public
  1165. * @desc : 기록 setting
  1166. * @param :
  1167. * @return :
  1168. * @---------------------------------------------------
  1169. */
  1170. // function fSettingRec(){
  1171. // grd_carerecspec.mergecells = "byrestriccol";
  1172. // grd_carerecspec.mergecol(4)=false;
  1173. // grd_carerecspec.mergecol(5)=false;
  1174. // grd_carerecspec.mergecol(6)=false;
  1175. // var sCertKey = "";
  1176. // var sInterpRecYN = "";
  1177. //
  1178. // for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1179. // sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1180. // sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1181. // if(sCertKey == ""){
  1182. // if(sInterpRecYN == "N"){
  1183. // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock.gif";
  1184. // }else{
  1185. // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock_add.gif";
  1186. // }
  1187. // }else{
  1188. // if(sInterpRecYN == "N"){
  1189. // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_Lock.gif";
  1190. // }else{
  1191. // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_Lock_add.gif";
  1192. // }
  1193. // }
  1194. // }
  1195. // }
  1196. /**
  1197. * @group :
  1198. * @ver : 2007.06.15
  1199. * @by : 이은영
  1200. * @---------------------------------------------------
  1201. * @type : function
  1202. * @access : public
  1203. * @desc : 통합기록용인증로직
  1204. * @param :
  1205. * @return :
  1206. * @---------------------------------------------------
  1207. */
  1208. function fViewSign(pFreeTextPath){
  1209. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
  1210. var signRecDD = "";
  1211. //model.removenodeset("/root/send/signdata");
  1212. ds_temp_fsign.clearData();
  1213. //var sUpNodepath = (pFreeTextPath == null || pFreeTextPath == "" ? "/root/main/nursingrecordinfo" : pFreeTextPath );
  1214. //var sUpNodepath = utlf_isNull(pFreeTextPath) == true ? "ds_grid_grd_carerecspec" : pFreeTextPath);
  1215. for( var idx = 0 ; idx < ds_data_recddlist.rowcount; idx++ ){
  1216. signRecDD = ds_data_recddlist.getColumn(idx,"recdd");
  1217. ds_data_totnursingrecordlist.filter("recdd=='"+ signRecDD +"'");
  1218. ds_temp_tmpsign.clear();
  1219. if(ds_data_totnursingrecordlist.rowcount > 0){
  1220. ds_temp_tmpsign.copyData(ds_data_totnursingrecordlist,true);
  1221. ds_temp_tmpsign.addColumn("usernm","string");
  1222. for(var i=0; i<ds_temp_tmpsign.rowcount; i++){
  1223. ds_temp_tmpsign.setColumn(i,"usernm",ds_temp_tmpsign.getColumn(i,"fstrgstrnm"));
  1224. // ds_temp_tmpsign.setColumn(i,"dnar",ds_init_dnarflag.getColumn(ds_init_dnarflag.findRowExpr("itemcd=='"+ds_temp_tmpsign.getColumn(i,"dnar")+"'"),"itemnm"));
  1225. }
  1226. if(Sign.signprocess() == true){
  1227. var sSignDataRowCnt = ds_temp_fsign.rowcount;
  1228. ds_temp_fsign.addRow();
  1229. // 전자인증 관련 환자 인적 정보를 보내줌.
  1230. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/status", "i");
  1231. ds_temp_fsign.setColumn(sSignDataRowCnt,"status","i");
  1232. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid );//등록번호
  1233. ds_temp_fsign.setColumn(sSignDataRowCnt,"pid",sPid);
  1234. if( sIOFlag =="O" || sIOFlag =="S" ){
  1235. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sOrdDD);//입원일자(입원,응급)/진료일자(외래)
  1236. ds_temp_fsign.setColumn(sSignDataRowCnt,"orddd",sOrdDD);
  1237. }else{
  1238. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd);//입원일자(입원,응급)/진료일자(외래)
  1239. ds_temp_fsign.setColumn(sSignDataRowCnt,"orddd",sIndd);
  1240. }
  1241. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", "");//서명번호
  1242. ds_temp_fsign.setColumn(sSignDataRowCnt,"signno","");
  1243. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo); //생성번호
  1244. ds_temp_fsign.setColumn(sSignDataRowCnt,"cretno",sCretNo);
  1245. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",signRecDD);// 실제 기록이 이루어진 기록일자
  1246. ds_temp_fsign.setColumn(sSignDataRowCnt,"recdd",signRecDD);
  1247. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm","000000");//실제 기록이 이루어진 기록시간
  1248. ds_temp_fsign.setColumn(sSignDataRowCnt,"rectm","000000");
  1249. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recsaveflag","Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1250. ds_temp_fsign.setColumn(sSignDataRowCnt,"recsaveflag","Y");
  1251. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1252. ds_temp_fsign.setColumn(sSignDataRowCnt,"signflag","02");
  1253. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag",sIOFlag );//외래/입원구분(코드정의서 M0010 참조)
  1254. ds_temp_fsign.setColumn(sSignDataRowCnt,"signgenrflag",sIOFlag);
  1255. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
  1256. ds_temp_fsign.setColumn(sSignDataRowCnt,"formcd","0000002432");
  1257. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddeptcd", sOrdDeptCd); //진료부서코드
  1258. ds_temp_fsign.setColumn(sSignDataRowCnt,"orddeptcd",sOrdDeptCd);
  1259. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddrid", sOrdDrId ); //진료의사ID
  1260. ds_temp_fsign.setColumn(sSignDataRowCnt,"orddrid",sOrdDrId);
  1261. //ds_temp_fsign.setColumn(sSignDataRowCnt,"acptuniqno",aCptuniqno);
  1262. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1263. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1264. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", Sign.signedInfos[1]);
  1265. ds_temp_fsign.setColumn(sSignDataRowCnt,"signbfcnts",Sign.signedInfos[1]);
  1266. // 공인인증 처리후 데이터
  1267. // model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  1268. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/screenid", getScreenID());
  1269. ds_temp_fsign.setColumn(sSignDataRowCnt,"screenid",frmf_getScreenID());
  1270. }
  1271. // else{
  1272. // return;
  1273. // }
  1274. } else{
  1275. //sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  1276. var sSignDataRowCnt = ds_temp_fsign.rowcount;
  1277. ds_temp_fsign.addRow();
  1278. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/status", "d"); //삭제 상태
  1279. ds_temp_fsign.setColumn(sSignDataRowCnt,"status","d");
  1280. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid );//등록번호
  1281. ds_temp_fsign.setColumn(sSignDataRowCnt,"pid",sPid);
  1282. if( sIOFlag =="O" || sIOFlag =="S"){
  1283. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sOrdDD);//입원일자(입원,응급)/진료일자(외래)
  1284. ds_temp_fsign.setColumn(sSignDataRowCnt,"orddd",sOrdDD);
  1285. }else{
  1286. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd);//입원일자(입원,응급)/진료일자(외래)
  1287. ds_temp_fsign.setColumn(sSignDataRowCnt,"orddd",sIndd);
  1288. }
  1289. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", "");//서명번호
  1290. ds_temp_fsign.setColumn(sSignDataRowCnt,"signno","");
  1291. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo); //생성번호
  1292. ds_temp_fsign.setColumn(sSignDataRowCnt,"cretno",sCretNo);
  1293. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1294. ds_temp_fsign.setColumn(sSignDataRowCnt,"signflag","02");
  1295. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag",sIOFlag );//외래/입원구분(코드정의서 M0010 참조)
  1296. ds_temp_fsign.setColumn(sSignDataRowCnt,"signgenrflag",sIOFlag);
  1297. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", "삭제");
  1298. ds_temp_fsign.setColumn(sSignDataRowCnt,"signbfcnts","삭제");
  1299. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
  1300. ds_temp_fsign.setColumn(sSignDataRowCnt,"formcd","0000002432");
  1301. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",signRecDD);// 실제 기록이 이루어진 기록일자
  1302. ds_temp_fsign.setColumn(sSignDataRowCnt,"recdd",signRecDD);
  1303. //model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm","000000");// 실제 기록이 이루어진 기록일자
  1304. ds_temp_fsign.setColumn(sSignDataRowCnt,"rectm","000000");
  1305. }
  1306. }
  1307. ds_data_totnursingrecordlist.filter("");
  1308. if(ds_temp_fsign.rowcount < 1){
  1309. return;
  1310. }
  1311. // tranf_submit({
  1312. // id: "TXMNR00904"
  1313. // , service: "carerecapp.ClincObsRec"
  1314. // , method: "reqExeSaveViewData"
  1315. // , inds: "signinfo=ds_temp_fsign"
  1316. // //, outds: "ds_grid_grd_druginfo=druginfolist"
  1317. // , progress : !utlf_isNull(sTextAutoSave) ? false : true
  1318. // , async: false
  1319. // , callback: "cbk_TXMNR00904"
  1320. // });
  1321. var oParam = {};
  1322. oParam.id = "TXMNR00904";
  1323. oParam.service = "carerecapp.ClincObsRec";
  1324. oParam.method = "reqExeSaveViewData";
  1325. oParam.inds = "signinfo=ds_temp_fsign";
  1326. oParam.outds = "";
  1327. oParam.async = false;
  1328. oParam.callback = "cf_TXMNR00904";
  1329. tranf_submit(oParam);
  1330. if(arErrorCode.pop("TXMNR00904") > -1) {
  1331. gSignRecYN = "Y";
  1332. }
  1333. }
  1334. // function cbk_TXMNR00904(sScvId, nErrorCode, sErrorMsg){
  1335. // if(nErrorCode == 0){//성공하였을때
  1336. // gSignRecYN = "Y";
  1337. // }else{
  1338. // sysf_messageBox(sErrorMsg, "E");
  1339. // }
  1340. // }
  1341. /**
  1342. * @group :
  1343. * @ver : 2007.06.15
  1344. * @by : 이은영
  1345. * @---------------------------------------------------
  1346. * @type : function
  1347. * @access : public
  1348. * @desc : 인증로직
  1349. * @param :
  1350. * @return :
  1351. * @---------------------------------------------------
  1352. */
  1353. function fSign(){
  1354. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  1355. if( utlf_isNull(vsettime) ) {
  1356. Sign.certchkflag = "Y";
  1357. } else {
  1358. var res2 = utlf_getTimeInterval(vsettime, utlf_getCurrentTime(), 'hhmmss');
  1359. if(res2 > signtime* 60 || res2 < 0) {
  1360. Sign.certchkflag = "Y";
  1361. } else {
  1362. Sign.certchkflag = "N";
  1363. }
  1364. }
  1365. if(Sign.signprocess() == true){
  1366. vsettime = utlf_getCurrentTime();
  1367. ds_temp_fsign.addRow();
  1368. ds_temp_fsign.setColumn(0,"pid",sPid);//등록번호
  1369. if( sIOFlag =="O" || sIOFlag =="S" ){
  1370. ds_temp_fsign.setColumn(0,"orddd",sOrdDD);//입원일자(입원,응급)/진료일자(외래)
  1371. }else{
  1372. ds_temp_fsign.setColumn(0,"orddd",sIndd);//입원일자(입원,응급)/진료일자(외래)
  1373. }
  1374. ds_temp_fsign.setColumn(0,"signno","");//서명번호
  1375. ds_temp_fsign.setColumn(0,"cretno",sCretNo);//생성번호
  1376. if ( sRecDateFlag == "U" ){
  1377. ds_temp_fsign.setColumn(0,"recdd",ds_cond.getColumn(0,"recdd"));// 실제 기록이 이루어진 기록일자
  1378. ds_temp_fsign.setColumn(0,"rectm",ds_cond.getColumn(0,"rectm"));//실제 기록이 이루어진 기록시간
  1379. } else {
  1380. ds_temp_fsign.setColumn(0,"recdd",utlf_getCurrentDate());// 실제 기록이 이루어진 기록일자
  1381. ds_temp_fsign.setColumn(0,"rectm",utlf_getCurrentTime());//실제 기록이 이루어진 기록시간
  1382. }
  1383. ds_temp_fsign.setColumn(0,"recsaveflag","Y");//전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)\
  1384. ds_temp_fsign.setColumn(0,"signflag","02");//서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1385. ds_temp_fsign.setColumn(0,"signgenrflag",sIOFlag);//외래/입원구분(코드정의서 M0010 참조)
  1386. ds_temp_fsign.setColumn(0,"formcd","0000002432");//각 기록지별 서식코드0000002464(타입2)->0000002432(간호일지) 20080827 김영림itc 협의완료
  1387. ds_temp_fsign.setColumn(0,"orddeptcd",sOrdDeptCd);//진료부서코드
  1388. ds_temp_fsign.setColumn(0,"orddrid",sOrdDrId);//진료의사ID
  1389. ds_temp_fsign.setColumn(0,"dispyn","N");//기록뷰어에는 조회안되도록
  1390. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1391. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1392. ds_temp_fsign.setColumn(0,"signbfcnts",Sign.signedInfos[1]);
  1393. // 공인인증 처리후 데이터
  1394. ds_temp_fsign.setColumn(0,"signaftcnts",Sign.signedInfos[2]);
  1395. }else{
  1396. return false;
  1397. }
  1398. ds_temp_fsign.setColumn(0,"screenid",frmf_getScreenID());
  1399. return true;
  1400. }
  1401. /**
  1402. * @group :
  1403. * @ver : 2007.06.15
  1404. * @by : 이은영
  1405. * @---------------------------------------------------
  1406. * @type : function
  1407. * @access : public
  1408. * @desc : 인증데이터 생성함수
  1409. * @param :
  1410. * @return :
  1411. * @---------------------------------------------------
  1412. */
  1413. function fMake_SignData(){
  1414. Sign.addnode("/signSaveData/saveDataList",ds_temp_tmpsign.saveXML());
  1415. }
  1416. /**
  1417. * @group :
  1418. * @ver : 2009.12.18
  1419. * @by : khj
  1420. * @---------------------------------------------------
  1421. * @type : function
  1422. * @access : public
  1423. * @desc : 기록 저장 시간 적용
  1424. * @param :
  1425. * @return :
  1426. * @---------------------------------------------------
  1427. */
  1428. function fRecDTAppend (){
  1429. // (A : 자동, U : 지정)
  1430. sRecDateFlag = ds_cond.getColumn(0,"recdateflag");
  1431. var sRecDate = ds_cond.getColumn(0,"recdd");
  1432. var sRecTime = ds_cond.getColumn(0,"rectm");
  1433. var iSelectedRows = grdf_getSelectedRows(swt_recinfo.stmtinfo.grd_stmtinfo);
  1434. var iAppendRow = 0;
  1435. ds_grid_grd_stmtinfo.addColumn("recdtflag","string");
  1436. for(var i=iSelectedRows.length-1; i>=0; i--){
  1437. if( sRecDateFlag == "U" ){
  1438. ds_grid_grd_stmtinfo.setColumn(iSelectedRows[i],"recdtflag","U");
  1439. ds_grid_grd_stmtinfo.setColumn(iSelectedRows[i],"recdt",sRecDate+sRecTime+"00");
  1440. ds_grid_grd_stmtinfo.setColumn(iSelectedRows[i],"check",1);
  1441. // ds_grid_grd_stmtinfo.selectRow(iSelectedRows[i],false);
  1442. }
  1443. }
  1444. /*
  1445. for ( var i = 0 ; i < swt_recinfo.stmtinfo.grd_stmtinfo.selectcount ; i++){
  1446. for ( var j = swt_recinfo.stmtinfo.grd_stmtinfo.selectstartrow[i] ; j <= swt_recinfo.stmtinfo.grd_stmtinfo.selectendrow[i] ; j++){
  1447. if( sRecDateFlag == "U" ){
  1448. ds_grid_grd_stmtinfo.setColumn(j,"recdtflag","U");
  1449. ds_grid_grd_stmtinfo.setColumn(j,"recdt",sRecDate+sRecTime+"00");
  1450. ds_grid_grd_stmtinfo.setColumn(j,"check",1);
  1451. }
  1452. }
  1453. }
  1454. */
  1455. var inrmdd = sysf_getModelProperty("inrmdd");
  1456. if( utlf_isNull(inrmdd) ) {
  1457. ds_cond.setColumn(0,"recdateflag","A");
  1458. fSettingRecInfo();
  1459. }
  1460. }
  1461. /**
  1462. * @group :
  1463. * @ver : 2007.06.15
  1464. * @by : 이은영
  1465. * @---------------------------------------------------
  1466. * @type : function
  1467. * @access : public
  1468. * @desc : 기록 저장
  1469. * @param : pFlag : TempSave : 임시저장, CertSave : 인증저장
  1470. * @return :
  1471. * @---------------------------------------------------
  1472. */
  1473. function fSaveCareRec(pFlag){
  1474. var sAttrEssnYN = ""; // 선택 : C, 필수 : E
  1475. var sAttrinfo1 = "";
  1476. var sArrtCnt = 0;
  1477. var sRecInfo = ""; // 저장 정보
  1478. var sStmtInfo = ""; // 완성된 진술문 정보
  1479. var sAttrInptYN = "N";
  1480. var sSaveData = "";
  1481. // (A : 자동, U : 지정)
  1482. sRecDateFlag = ds_cond.getColumn(0,"recdateflag");
  1483. var sRecDate = "";
  1484. var sStmtCnts = "";
  1485. var sSrchToolStatus = "T";//타입2에서 저장한것을 구분
  1486. var sGrupCD = "";
  1487. var sDNARFlag = "";
  1488. var sDiagStmtCd = "";
  1489. var sDNARNm ="";
  1490. var sDTAllAppYN = "N";
  1491. var sDNAR = "";
  1492. ds_temp_save.clear();
  1493. dsf_createDs("ds_temp_save", [{col: "stmtspec", type:"string" }
  1494. ,{col: "attrinfo", type:"string" }
  1495. ,{col: "status", type:"string" }
  1496. ,{col: "origincd", type:"string" }
  1497. ,{col: "stmtcd", type:"string" }
  1498. ,{col: "dnarflag", type:"string" }
  1499. ,{col: "recoriginflag", type:"string" }
  1500. ,{col: "recdtflag", type:"string" }
  1501. ,{col: "recdt", type:"string" }
  1502. ,{col: "pid", type:"string" }
  1503. ,{col: "indd", type:"string" }
  1504. ,{col: "cretno", type:"string" }
  1505. ,{col: "instcd", type:"string" }
  1506. ,{col: "ioflag", type:"string" }
  1507. ,{col: "orddeptcd", type:"string" }
  1508. ,{col: "recflag", type:"string" }
  1509. ,{col: "reclnkkey", type:"string" }
  1510. ,{col: "diagstmtcd", type:"string" }
  1511. ,{col: "orddd", type:"string" }
  1512. ,{col: "dnarnm", type:"string" }
  1513. ,{col: "usernm", type:"string" }
  1514. ,{col: "deptflagnm", type:"string" }]);
  1515. if(!utlf_isNull(sTextAutoSave)){ //자동저장의 경우 원하는 기록시간
  1516. var sTextRecDt = getArrayData(sTextAutoSave, 0, 2); //기록시간
  1517. if(sTextRecDt.length < 12){
  1518. ds_cond.setColumn(0,"recdd",utlf_getCurrentDate());
  1519. ds_cond.setColumn(0,"rectm",utlf_getCurrentTime());
  1520. }else{
  1521. ds_cond.setColumn(0,"recdd",sTextRecDt.substr(0, 8));
  1522. ds_cond.setColumn(0,"rectm",sTextRecDt.substr(8, 4));
  1523. }
  1524. }
  1525. if(sRecDateFlag == "U" && utlf_isNull(sTextAutoSave)){
  1526. sRecDate = ds_cond.getColumn(0,"recdd")+ds_cond.getColumn(0,"rectm")+"00";
  1527. if(utlf_isValidDateTime(sRecDate,"YYYYMMDDhhmmss")== false){
  1528. sysf_messageBox("기록 시간이 유효하지","E007");
  1529. return;
  1530. }
  1531. } else {
  1532. sRecDate = utlf_getCurrentDate() + utlf_getCurrentTime();
  1533. }
  1534. if(utlf_isNull(sPid)){
  1535. sysf_messageBox("환자를 먼저","C002");
  1536. return;
  1537. }
  1538. sGrupCD = ds_cond.getColumn(0,"grupcd");
  1539. var tmp_chk = 0;
  1540. for(var iRow=0; iRow<ds_grid_grd_stmtinfo.rowcount; iRow++){
  1541. if(ds_grid_grd_stmtinfo.getColumn(iRow,"check") == 1 || ds_grid_grd_stmtinfo.getColumn(iRow,"check") == 'true'){
  1542. sAttrEssnYN = ds_grid_grd_stmtinfo.getColumn(iRow,"attressnyn");
  1543. if(sAttrEssnYN == "E" && fExistAttrInput(iRow) == "N"){
  1544. sStmtCnts = ds_grid_grd_stmtinfo.getColumn(iRow,"stmtcnts");
  1545. sysf_messageBox(sStmtCnts+" 진술문은 속성이","I003");
  1546. return;
  1547. }
  1548. sDNARNm = "";
  1549. sStmtInfo = fMakeStmt(iRow);
  1550. sDNARFlag = ds_grid_grd_stmtinfo.getColumn(iRow,"dnarflag");
  1551. sDiagStmtCd = ds_grid_grd_stmtinfo.getColumn(iRow,"diagstmtcd");
  1552. if (!utlf_isNull(sDiagStmtCd)){
  1553. sDNARNm = ds_init_dnarflag.getColumn(ds_init_dnarflag.findRowExpr("itemcd=='"+sDNARFlag+"'"),"itemnm");
  1554. }
  1555. sDNAR = ds_init_dnarflag.getColumn(ds_init_dnarflag.findRowExpr("itemcd=='"+ds_grid_grd_stmtinfo.getColumn(iRow,"dnarflag")+"'"),"itemnm");
  1556. ds_temp_save.addRow();
  1557. ds_temp_save.setColumn(tmp_chk,"stmtspec",getArrayData(sStmtInfo,0,0));
  1558. ds_temp_save.setColumn(tmp_chk,"attrinfo",getArrayData(sStmtInfo,0,1));
  1559. ds_temp_save.setColumn(tmp_chk,"status","I");
  1560. ds_temp_save.setColumn(tmp_chk,"origincd",sGrupCD);
  1561. ds_temp_save.setColumn(tmp_chk,"stmtcd",ds_grid_grd_stmtinfo.getColumn(iRow,"stmtcd"));
  1562. ds_temp_save.setColumn(tmp_chk,"dnarflag",ds_grid_grd_stmtinfo.getColumn(iRow,"dnarflag"));
  1563. ds_temp_save.setColumn(tmp_chk,"recoriginflag",sSrchToolStatus);
  1564. ds_temp_save.setColumn(tmp_chk,"recdtflag",(utlf_isNull(ds_grid_grd_stmtinfo.getColumn(iRow,"recdt")) || sDTAllAppYN =="Y" ?
  1565. sRecDateFlag : ds_grid_grd_stmtinfo.getColumn(iRow,"recdtflag")));
  1566. ds_temp_save.setColumn(tmp_chk,"recdt", (utlf_isNull(ds_grid_grd_stmtinfo.getColumn(iRow,"recdt")) || sDTAllAppYN =="Y" ?
  1567. sRecDate : ds_grid_grd_stmtinfo.getColumn(iRow,"recdt")));
  1568. ds_temp_save.setColumn(tmp_chk,"pid",sPid);
  1569. ds_temp_save.setColumn(tmp_chk,"indd",sIndd);
  1570. ds_temp_save.setColumn(tmp_chk,"cretno",sCretNo);
  1571. ds_temp_save.setColumn(tmp_chk,"instcd",sInstcd);
  1572. ds_temp_save.setColumn(tmp_chk,"ioflag",sIOFlag);
  1573. ds_temp_save.setColumn(tmp_chk,"orddeptcd",sOrdDeptCd);
  1574. ds_temp_save.setColumn(tmp_chk,"recflag",sRecFlag);
  1575. ds_temp_save.setColumn(tmp_chk,"reclnkkey",sRecLnkKey);
  1576. ds_temp_save.setColumn(tmp_chk,"diagstmtcd",ds_grid_grd_stmtinfo.getColumn(iRow,"diagstmtcd"));
  1577. ds_temp_save.setColumn(tmp_chk,"orddd",sOrdDD);
  1578. ds_temp_save.setColumn(tmp_chk,"dnarnm",sDNAR);
  1579. ds_temp_save.setColumn(tmp_chk,"usernm",sysf_getUserName());
  1580. ds_temp_save.setColumn(tmp_chk,"deptflagnm",(cmb_deptflag.text =="병동" ? "" : "["+cmb_deptflag.text+"]") );
  1581. tmp_chk++;
  1582. }
  1583. }
  1584. if(ds_temp_save.rowcount <=0){
  1585. sysf_messageBox("선택된 진술문이","I004");
  1586. return;
  1587. }
  1588. // 조회조건
  1589. var ds_temp = dsf_createDsRow("ds_temp", [{col: "pid", val:sPid }
  1590. ,{col: "indd", val:sIndd }
  1591. ,{col: "orddd", val:sOrdDD }
  1592. ,{col: "cretno", val:sCretNo }
  1593. ,{col: "ioflag", val:sIOFlag }
  1594. ,{col: "fromdd", val:ds_cond.getColumn(0,"fromdd") }
  1595. ,{col: "todd", val:ds_cond.getColumn(0,"todd") }
  1596. ,{col: "dnarflag", val:ds_cond.getColumn(0,"dnarflag") }
  1597. ,{col: "sortseq", val:ds_cond.getColumn(0,"sortseq") }
  1598. ,{col: "recflag", val:sRecFlag }
  1599. ,{col: "reclnkkey", val:sRecLnkKey }
  1600. ,{col: "carediagflag", val:ds_cond.getColumn(0,"carediagflag") }
  1601. ,{col: "type2", val:"Y" }]);
  1602. ds_temp_tmpsign.copyData(ds_temp_save);
  1603. //인증저장
  1604. var msg = "";
  1605. if( !utlf_isNull(sTextAutoSave) ){
  1606. msg = 6;
  1607. }else{
  1608. msg = sysf_messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  1609. }
  1610. if(Number(msg) == 6){//예
  1611. if (!fSign()) return;
  1612. /*
  1613. tranf_submit({
  1614. id: "TXMNR03401"
  1615. , service: "carerecapp.NursingRecord"
  1616. , method: "reqExeStmtList"
  1617. , inds: "saveData=ds_temp_save signinfo=ds_temp_fsign srchinfo="+ds_temp
  1618. , outds: "ds_grid_grd_carerecspec=nursingrecordlist ds_data_recddlist=recddlist ds_data_totnursingrecordlist=totnursingrecordlist"
  1619. , async: false
  1620. , progress : !utlf_isNull(sTextAutoSave) ? false : true
  1621. , callback: "cbk_TXMNR03401"
  1622. }); */
  1623. var oParam = {};
  1624. oParam.id = "TXMNR03401";
  1625. oParam.service = "carerecapp.NursingRecord";
  1626. oParam.method = "reqExeStmtList";
  1627. oParam.inds = "srchinfo="+ds_temp+" saveData=ds_temp_save signinfo=ds_temp_fsign";
  1628. oParam.outds = "ds_grid_grd_carerecspec=nursingrecordlist ds_data_recddlist=recddlist ds_data_totnursingrecordlist=totnursingrecordlist";
  1629. oParam.async = false;
  1630. oParam.callback = "cf_TXMNR03401";
  1631. tranf_submit(oParam);
  1632. }else {
  1633. return;
  1634. }
  1635. // for(var i = 0 ; i<ds_grid_grd_carerecspec.rowcount;i++){
  1636. // ds_grid_grd_carerecspec.setColumn(i, "dnar", ds_grid_grd_carerecspec.getColumn(i, "dnarflag"));
  1637. // }
  1638. if(arErrorCode.pop("TXMNR03401") > -1) {
  1639. fViewSign();
  1640. gSignRecYN = "Y";
  1641. fSrchCareRec("N");
  1642. //swt_recinfo.stmtinfo.grd_stmtinfo.setFormatColProperty(0,"band","");
  1643. }
  1644. }
  1645. /*
  1646. function cbk_TXMNR03401(sScvId, nErrorCode, sErrorMsg){
  1647. if(nErrorCode == 0){//성공하였을때
  1648. fViewSign();
  1649. gSignRecYN = "Y";
  1650. fSrchCareRec("N");
  1651. swt_recinfo.stmtinfo.grd_stmtinfo.setFormatColProperty(0,"band","");
  1652. }else{
  1653. sysf_messageBox(sErrorMsg, "E");
  1654. }
  1655. }*/
  1656. /**
  1657. * @group :
  1658. * @ver : 2007.06.15
  1659. * @by : 이은영
  1660. * @---------------------------------------------------
  1661. * @type : function
  1662. * @access : public
  1663. * @desc : 필수 입력 진술문 내의 속성이 모두 입력되었는지 여부
  1664. * @param : pPath : 속성 path
  1665. * @return :
  1666. * @---------------------------------------------------
  1667. */
  1668. function fExistAttrInput(iRow){
  1669. var sAttrCnt = ds_grid_grd_stmtinfo.getColumn(iRow,"attrcnt");
  1670. var sStmtCD = ds_grid_grd_stmtinfo.getColumn(iRow,"stmtcd");
  1671. if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3){
  1672. sAttrCnt--;
  1673. }
  1674. for(var iAttrRow=1; iAttrRow <= sAttrCnt; iAttrRow++){
  1675. if(utlf_isNull(ds_grid_grd_stmtinfo.getColumn(iRow,"attrval"+iAttrRow))){
  1676. return "N";
  1677. }
  1678. }
  1679. return "Y";
  1680. }
  1681. /**
  1682. * @group :
  1683. * @ver : 2007.06.15
  1684. * @by : 이은영
  1685. * @---------------------------------------------------
  1686. * @type : function
  1687. * @access : public
  1688. * @desc : 입력받은 속성정보를 가지고 완성된 진술문장을 만든다.
  1689. * @param :
  1690. * @return :
  1691. * @---------------------------------------------------
  1692. */
  1693. function fMakeStmt(iRow){
  1694. var sStmtInfo = ds_grid_grd_stmtinfo.getColumn(iRow,"stmtcnts");
  1695. var sAttrInfo1 = ds_grid_grd_stmtinfo.getColumn(iRow,"attrinfo1");
  1696. var sAttrInfo2 = ds_grid_grd_stmtinfo.getColumn(iRow,"attrinfo2");
  1697. var sAttrCnt = ds_grid_grd_stmtinfo.getColumn(iRow,"attrcnt");
  1698. var sStmtCnts = ""; // 완성된 문장
  1699. var sAttrInfo = ""; // 기록을 원하는 속성명
  1700. var sAttrSeq = 0; // 속성 위치
  1701. var sAttrCd = ""; // 속성코드
  1702. var sAttrNM = ""; // 속성명 (combo)
  1703. var sAttrFlag = ""; // 속성 구분
  1704. var sAttrVal = ""; // 입력된 속성명
  1705. var sUnitNM = ""; // 단위명
  1706. var sPlNumChoiYN = ""; // 속성 멀티 입력 여부
  1707. var sStmtCd = ""; // 진술문 코드
  1708. var sTmpAttrNM = ""; // 속성을 제외한 기호
  1709. var sAttrNmSep = "";
  1710. if(sAttrCnt > 0){
  1711. for( var idx = 0 ; idx < sAttrCnt ; idx++ ){
  1712. sAttrSeq = idx + 1;
  1713. sAttrVal = ds_grid_grd_stmtinfo.getColumn(iRow,"attrval"+sAttrSeq);
  1714. // 속성 성격을 찾기 위해 사용 (combo인지, input 상자인지)
  1715. sAttrCd = ds_grid_grd_stmtinfo.getColumn(iRow,"attrcd"+(sAttrSeq));
  1716. ds_data_attrinfo.filter("attrcd=='"+sAttrCd+"'");
  1717. sAttrFlag = ds_data_attrinfo.getColumn(0,"attrflag");
  1718. if(sAttrFlag == "C" || sAttrFlag == "A"){ // C : 코드속성, A : 사정도구 -> 입력도구 : combo
  1719. ds_data_attrinfo.filter("attrcd=='"+sAttrCd+"'");
  1720. sPlNumChoiYN = ds_data_attrinfo.getColumn(0,"plnumchoiyn");
  1721. if(sPlNumChoiYN == "Y"){ // 멀티 입력 여부
  1722. sAttrInfo += sAttrVal+"⊙";
  1723. sAttrNM = sAttrVal;
  1724. }else{
  1725. ds_data_attrinfo.filter("attrcd=='"+sAttrVal+"'");
  1726. sAttrNM = ds_data_attrinfo.getColumn(0,"attrnm");
  1727. if(!utlf_isNull(sAttrNM)){
  1728. sAttrInfo += sAttrNM+"⊙";
  1729. }else if(!utlf_isNull(sAttrVal) && utlf_isNull(sAttrNM)){
  1730. sAttrInfo += sAttrVal+"⊙";
  1731. sAttrNM = sAttrVal;
  1732. }
  1733. }
  1734. }else if(sAttrFlag == "F"){ // F : 특수속성 -> 입력도구 : input
  1735. sAttrInfo += sAttrVal+"⊙";
  1736. sAttrNM = sAttrVal;
  1737. }else if(sAttrFlag == "V" ){ // V : 수치속성 -> 입력도구 : input값 + 단위명
  1738. ds_data_attrinfo.filter("attrcd=='"+sAttrCd+"'");
  1739. sUnitNM = ds_data_attrinfo.getColumn(0,"unitnm");
  1740. if(!utlf_isNull(sAttrVal)){
  1741. sAttrInfo += sAttrVal + sUnitNM +"⊙";
  1742. sAttrNM = sAttrVal + sUnitNM;
  1743. }else{
  1744. sAttrInfo += "⊙";
  1745. sAttrNM = "";
  1746. }
  1747. }
  1748. sAttrInfo2 = sAttrInfo2.setReplaceWord("@"+idx, sAttrNM);
  1749. }
  1750. }else{
  1751. sAttrInfo2 = ds_grid_grd_stmtinfo.getColumn(iRow,"stmtcnts");
  1752. }
  1753. ds_data_attrinfo.filter("");
  1754. return sAttrInfo2+"▦"+sAttrInfo+"▩";
  1755. }
  1756. // function fMakeStmt_old(pStmtPath){
  1757. // var sStmtInfo = model.getValue(pStmtPath+"/stmtcnts").split(" "); // 실제 진술문
  1758. // var sAttrInfo1 = model.getValue(pStmtPath+"/attrinfo1").split("⊙");
  1759. // var sAttrInfo2 = model.getValue(pStmtPath+"/attrinfo2").split(" ");
  1760. // var sStmtCnts = ""; // 완성된 문장
  1761. // var sAttrInfo = ""; // 기록을 원하는 속성명
  1762. // var sAttrSeq = 0; // 속성 위치
  1763. // var sAttrCd = ""; // 속성코드
  1764. // var sAttrNM = ""; // 속성명 (combo)
  1765. // var sAttrFlag = ""; // 속성 구분
  1766. // var sAttrVal = ""; // 입력된 속성명
  1767. // var sUnitNM = ""; // 단위명
  1768. // var sPlNumChoiYN = ""; // 속성 멀티 입력 여부
  1769. // var sStmtCd = ""; // 진술문 코드
  1770. // var sTmpAttrNM = ""; // 속성을 제외한 기호
  1771. //
  1772. // var sAttrNmSep = "";
  1773. //
  1774. // if(sAttrInfo2.length > 1){
  1775. // for(var i=0; i<sStmtInfo.length; i++){
  1776. // sStmtCd = model.getValue(pStmtPath+"/stmtcd");
  1777. // if( !isNull(sStmtInfo[i]) && !isNull(sAttrInfo2[i]) && sStmtInfo[i] == sAttrInfo2[i]){
  1778. // //------------(20100622:경북대)
  1779. // //if(sStmtCd == "00000001" || sStmtCd == "00000002" || sStmtCd == "00000003"){ // 처방의 경우
  1780. // if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3 || sStmtCD == stmtcd4){ // 처방의 경우
  1781. // //------------(20100622:경북대)
  1782. // if(i < sStmtInfo.length-2){
  1783. // sAttrInfo += sStmtInfo[i] + " ";
  1784. // }else{
  1785. // sAttrInfo += sStmtInfo[i] +"⊙";
  1786. // }
  1787. // }
  1788. // sStmtCnts += sStmtInfo[i]+" "; // 속성이 아닌 경우
  1789. // // }else if( !isNull(sStmtInfo[i]) && !isNull(sAttrInfo2[i]) && sStmtInfo[i] != sAttrInfo2[i]){
  1790. // }else{
  1791. //
  1792. // //---------(20100622:경북대)
  1793. // //if(sStmtCd == "00000001" || sStmtCd == "00000002" || sStmtCd == "00000003"){ // 처방의 경우
  1794. // if(sStmtCD == stmtcd1 || sStmtCD == stmtcd2 || sStmtCD == stmtcd3 || sStmtCD == stmtcd4){ // 처방의 경우
  1795. // //---------(20100622:경북대)
  1796. // sAttrSeq = (!isNull(sAttrInfo2[i]) && (sAttrInfo2[i].substr(1,1)).isNumber()? eval(sAttrInfo2[i].substr(1,1)) : 0);
  1797. // }else{
  1798. // sAttrSeq = (!isNull(sAttrInfo2[i]) && (sAttrInfo2[i].substr(1,1)).isNumber() ? eval(sAttrInfo2[i].substr(1,1))+1 : 0);
  1799. // }
  1800. // sAttrCd = model.getValue(pStmtPath+"/attrcd"+sAttrSeq); // 속성 성격을 찾기 위해 사용 (combo인지, input 상자인지)
  1801. // sAttrFlag = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/attrflag");
  1802. // sAttrVal = model.getValue(pStmtPath+"/attrval"+sAttrSeq);
  1803. // //sTmpAttrNM = sStmtInfo[i].replace(model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/attrnm"),"");
  1804. // if(sAttrFlag == "C" || sAttrFlag == "A"){ // C : 코드속성, A : 사정도구 -> 입력도구 : combo
  1805. // sPlNumChoiYN = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/plnumchoiyn");
  1806. // if(sPlNumChoiYN == "Y"){ // 멀티 입력 여부
  1807. // if(sAttrVal != "") sStmtCnts += sAttrVal+sTmpAttrNM+" ";
  1808. // sAttrInfo += sAttrVal+"⊙";
  1809. // }else{
  1810. // sAttrNM = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrVal+"']/attrnm");
  1811. // if(sAttrNM != ""){
  1812. // sStmtCnts += sAttrNM+sTmpAttrNM+" ";
  1813. // sAttrInfo += sAttrNM+"⊙";
  1814. // }else if(sAttrVal != "" && sAttrNM == ""){
  1815. // sStmtCnts += sAttrVal+sTmpAttrNM+" ";
  1816. // sAttrInfo += sAttrVal+"⊙";
  1817. // }
  1818. // }
  1819. // }else if(sAttrFlag == "F"){ // F : 특수속성 -> 입력도구 : input
  1820. // if(sAttrVal != "") sStmtCnts += sAttrVal +sTmpAttrNM+ " ";
  1821. // sAttrInfo += sAttrVal+"⊙";
  1822. // }else if(sAttrFlag == "V" ){ // V : 수치속성 -> 입력도구 : input값 + 단위명
  1823. // sUnitNM = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCd+"']/unitnm");
  1824. // if(sAttrVal != ""){
  1825. // sStmtCnts += sAttrVal + sUnitNM +sTmpAttrNM+ " ";
  1826. // sAttrInfo += sAttrVal + sUnitNM +"⊙";
  1827. // }else{
  1828. // sAttrInfo += "⊙";
  1829. // }
  1830. // }
  1831. // }
  1832. // }
  1833. // }else{
  1834. // sStmtCnts = model.getValue(pStmtPath+"/stmtcnts");
  1835. // }
  1836. // return sStmtCnts+"▦"+sAttrInfo+"▩";
  1837. // }
  1838. /**
  1839. * @group :
  1840. * @ver : 2007.04.19
  1841. * @by : 이은영
  1842. * @---------------------------------------------------
  1843. * @type : function
  1844. * @access : public
  1845. * @desc : 인증 기록 설정
  1846. * @param : pFlag ( setinfo : set, stmtinfo : 진술문 검색)
  1847. * @return :
  1848. * @---------------------------------------------------
  1849. */
  1850. // function fSettingCertImg(pFlag){
  1851. // var sInterpRecYN = ""; // 기록삽입여부
  1852. // var sCertSelYN = ""; // 인증선택여부
  1853. // var sCertKey = "";
  1854. // var sImagePath = "../../../emr/commonweb/images";
  1855. // switch(pFlag){
  1856. // // case "S" : // 전체선택
  1857. // // for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1858. // // if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1859. // // continue;
  1860. // // }
  1861. // // sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1862. // // sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1863. // // sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1864. // // if(sCertKey == "" && sCertSelYN == "N"){
  1865. // // if(sInterpRecYN == "N"){
  1866. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest.gif";
  1867. // // }else{
  1868. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest_add.gif";
  1869. // // }
  1870. // // model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","Y");
  1871. // // }
  1872. // // }
  1873. // // break;
  1874. // // case "C" : // 전체취소
  1875. // // for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1876. // // if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1877. // // continue;
  1878. // // }
  1879. // // sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1880. // // sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1881. // // sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1882. // // if(sCertKey == "" && sCertSelYN == "Y"){
  1883. // // if(sInterpRecYN == "N"){
  1884. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock.gif";
  1885. // // }else{
  1886. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock_add.gif";
  1887. // // }
  1888. // // model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","N");
  1889. // // }
  1890. // // }
  1891. // // break;
  1892. // case "R" : // row별로 선택시
  1893. // //var iRow = grd_carerecspec.row;
  1894. // var iRow = ds_grid_grd_carerecspec.rowposition;
  1895. // var iCol = grd_carerecspec.col;
  1896. // if(iCol != 4) return;
  1897. // if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1898. // messageBox("다른 사람의 기록은 인증처리","E001");
  1899. // return;
  1900. // }
  1901. // // sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1902. // // sCertKey = model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey");
  1903. // // sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1904. // // if(sCertKey == "" && sCertSelYN == "Y"){
  1905. // // if(sInterpRecYN == "N"){
  1906. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock.gif";
  1907. // // }else{
  1908. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_unLock_add.gif";
  1909. // // }
  1910. // // model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","N");
  1911. // // }else if(sCertKey == "" && sCertSelYN == "N"){
  1912. // // if(sInterpRecYN == "N"){
  1913. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest.gif";
  1914. // // }else{
  1915. // // grd_carerecspec.cellstyle("background-image",iRow,4)=sImagePath+"/btn_LockRequest_add.gif";
  1916. // // }
  1917. // // model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","Y");
  1918. // // }
  1919. // break;
  1920. // }
  1921. // }
  1922. /**
  1923. * @group :
  1924. * @ver : 2007.06.16
  1925. * @by : 이은영
  1926. * @---------------------------------------------------
  1927. * @type : function
  1928. * @access : public
  1929. * @desc : 그리드 팝업메뉴 SETTING
  1930. * @param :
  1931. * @return :
  1932. * @---------------------------------------------------
  1933. */
  1934. // function fSettingPopUpMenu(){
  1935. // if(event.button == 3){
  1936. // if(grd_carerecspec.isCell(event.target) && grd_carerecspec.mouseRow >= grd_carerecspec.fixedrows){
  1937. // var iRow = grd_carerecspec.row;
  1938. // if(model.getValue(xNursingRecordListPath+"["+iRow+"]/certkey") == ""){
  1939. // window.setPopupMenu(true, "/root/temp/popmenu/nursrec_befcret/menu", "name", "func", false);
  1940. // }else{
  1941. // window.setPopupMenu(true, "/root/temp/popmenu/nursrec_aftcret/menu", "name", "func", false);
  1942. // }
  1943. // }else{
  1944. // window.setPopupMenu(false);
  1945. // }
  1946. // }
  1947. //
  1948. // }
  1949. /**
  1950. * @group :
  1951. * @ver : 2007.06.16
  1952. * @by : 이은영
  1953. * @---------------------------------------------------
  1954. * @type : function
  1955. * @access : public
  1956. * @desc : 다중 입력 창의 경우 팝업 호출
  1957. * @param :
  1958. * @return :
  1959. * @---------------------------------------------------
  1960. */
  1961. function fCallAttrPopUp(tmpCol){
  1962. var iCol = tmpCol;
  1963. var iRow = ds_grid_grd_stmtinfo.rowposition;
  1964. if(iCol > gStndColCnt && (iCol-gStndColCnt)%3 == 2){
  1965. var iAttrNo = (iCol-gStndColCnt+1)/3;//icol은 갯수가 아닌 index이므로 +1 해준다.
  1966. var sRtn_Msg = "";
  1967. var sAttrInfo = "";
  1968. //var sAttrCD = model.getValue(xStmtInfoPath+"["+iRow+"]/attrcd"+iAttrNo);
  1969. var sAttrCD = ds_grid_grd_stmtinfo.getColumn(iRow,"attrcd"+(iAttrNo));
  1970. //var sYN = model.getValue(xSrchedAttrInfoPath+"[attrcd='"+sAttrCD+"']/plnumchoiyn");
  1971. ds_data_attrinfo.filter("attrcd=='"+sAttrCD+"'");
  1972. var sYN = ds_data_attrinfo.getColumn(0,"plnumchoiyn");
  1973. ds_data_attrinfo.filter("");
  1974. if ( sYN != "Y" ){
  1975. return;
  1976. }
  1977. frmf_setParameter("SPMNR03000_Param",sAttrCD);
  1978. frmf_modal("SPMNR03000","SPMNR03000","","","","","","","","","","","M");
  1979. frmf_setParameter("SPMNR03000_Param","");
  1980. sRtn_Msg = frmf_getParameter("SPMNR03000_Return");
  1981. if(utlf_isNull(sRtn_Msg)) return;
  1982. sAttrInfo = sRtn_Msg.split("▦");
  1983. ds_grid_grd_stmtinfo.setColumn(iRow,"attrval"+iAttrNo,sAttrInfo[0]);
  1984. ds_grid_grd_stmtinfo.setColumn(iRow,"attrvalcd"+iAttrNo,sAttrInfo[1]);
  1985. ds_grid_grd_stmtinfo.setColumn(iRow,"check",1);
  1986. //sysf_trace(ds_grid_grd_stmtinfo.saveXML());
  1987. if( ds_grid_grd_stmtinfo.getColumn(iRow, "check") == "true" || ds_grid_grd_stmtinfo.getColumn(iRow, "check") == 1){
  1988. //grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#ffff88";
  1989. }else{
  1990. //grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1991. }
  1992. }
  1993. }
  1994. /**
  1995. * @group :
  1996. * @ver : 2007.06.18
  1997. * @by : 이은영
  1998. * @---------------------------------------------------
  1999. * @type : function
  2000. * @access : public
  2001. * @desc : 그리드 선택시 선택 버튼 체크 넣기/풀기
  2002. * @param :
  2003. * @return :
  2004. * @---------------------------------------------------
  2005. */
  2006. // function fClickedGridRow(){
  2007. // var iRow = grd_stmtinfo.row;
  2008. // var iCol = grd_stmtinfo.col;//col은 0부터 시작하므로 15번째 컬럼은 14가 됨.
  2009. // var sAttrInfo = model.getValue(xStmtInfoPath+"["+iRow+"]/attrinfo1").split("⊙");
  2010. // // 2012-05-10 SCHProject 박영우 그룹명별 전체 선택 기능 추가
  2011. // var selGrupCd = "";
  2012. // var chckflag = false;
  2013. //
  2014. // if ( iRow > 0 && iRow <= grd_stmtinfo.rows - grd_stmtinfo.fixedRows ){
  2015. // //if(iCol < gStndColCnt){
  2016. // if(iCol <= grd_stmtinfo.colRef("grupnm")){
  2017. // //시간적용의 추가로 인하여 체크박스만 선택했을때 자동 체크
  2018. // // if(iCol == 0 || iCol == colRef("check")) return;
  2019. //
  2020. // // if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  2021. // // model.setValue(xStmtInfoPath+"["+iRow+"]/check","false");
  2022. // // }else{
  2023. // // model.setValue(xStmtInfoPath+"["+iRow+"]/check","true");
  2024. // // }
  2025. // // 2012-05-10 SCHProject 박영우 그룹명별 전체 선택 기능 추가
  2026. // if(iCol == grd_stmtinfo.colRef("grupnm")) {
  2027. // selGrupCd = model.getValue(xStmtInfoPath+"["+iRow+"]/grupcd");
  2028. //
  2029. // /*
  2030. // for(var i=1; i<=getNodesetCount(xStmtInfoPath); i++) {
  2031. // if(model.getValue(xStmtInfoPath+"["+i+"]/grupcd") == selGrupCd) {
  2032. // if(model.getValue(xStmtInfoPath+"["+i+"]/check") == "true") {
  2033. // chckflag = true; break;
  2034. // }
  2035. // }
  2036. // }
  2037. // */
  2038. // // 속도 개선 주석처리 (2013.10.30 ahn)
  2039. // if(getNodesetCount(xStmtInfoPath + "[grupcd ='" + selGrupCd + "' and check = 'true']") > 0)
  2040. // chckflag = true;
  2041. //
  2042. // for(var i=1; i<=getNodesetCount(xStmtInfoPath); i++) {
  2043. // if(model.getValue(xStmtInfoPath+"["+i+"]/grupcd") == selGrupCd) {
  2044. // if(chckflag) {
  2045. // model.setValue(xStmtInfoPath+"["+i+"]/check", "false");
  2046. // grd_stmtinfo.rowstyle(i,"data","background-color") = "#FFFFFF";
  2047. // } else {
  2048. // model.setValue(xStmtInfoPath+"["+i+"]/check", "true");
  2049. // grd_stmtinfo.rowstyle(i,"data","background-color") = "#ffff88";
  2050. // }
  2051. // }
  2052. // }
  2053. // }
  2054. //
  2055. // if( model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true" ){
  2056. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#ffff88";
  2057. // // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  2058. // }else{
  2059. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  2060. // }
  2061. //
  2062. //
  2063. // }else if(iCol >= gStndColCnt && (iCol-gStndColCnt)%3 == 2 ){
  2064. // fCallAttrPopUp();
  2065. // }
  2066. // }
  2067. //
  2068. // //-------------(20121226)
  2069. // // isreadyonly ; true -> 화이트 , false -> 보라색
  2070. // fnbackColor(iRow);
  2071. // //-------------(20121226)
  2072. //
  2073. // grd_stmtinfo.refresh();
  2074. // }
  2075. /**
  2076. * @group :
  2077. * @ver : 2007.07.18
  2078. * @by : 이은영
  2079. * @---------------------------------------------------
  2080. * @type : function
  2081. * @access : public
  2082. * @desc : 그리드의 값이 변경되면 선택버튼 체크 넣기
  2083. * @param :
  2084. * @return :
  2085. * @---------------------------------------------------
  2086. */
  2087. // function fChangedGridRow(){
  2088. // var iRow = grd_stmtinfo.row;
  2089. // var iCol = grd_stmtinfo.col;
  2090. //
  2091. // if(iCol >= gStndColCnt && (iCol-gStndColCnt)%3 == 1 ){
  2092. // if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  2093. // //model.setValue(xStmtInfoPath+"["+iRow+"]/check","false");
  2094. // }else{
  2095. // model.setValue(xStmtInfoPath+"["+iRow+"]/check","true");
  2096. // }
  2097. //
  2098. // if( model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true" ){
  2099. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#ffff88";
  2100. // // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  2101. // }else{
  2102. // grd_stmtinfo.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  2103. // }
  2104. // }
  2105. //
  2106. // //------(20121226)
  2107. // fnbackColor(iRow);
  2108. // //------(20121226)
  2109. // //grd_stmtinfo.refresh(); 속도 개선 주석처리 (2013.10.30 ahn)
  2110. // }
  2111. /**
  2112. * @group :
  2113. * @ver : 2007.06.18
  2114. * @by : 이은영
  2115. * @---------------------------------------------------
  2116. * @type : function
  2117. * @access : public
  2118. * @desc : 간호기록 수정
  2119. * @param :
  2120. * @return :
  2121. * @---------------------------------------------------
  2122. */
  2123. function fUpdtNursingRecord(){
  2124. var iRow = ds_grid_grd_carerecspec.rowposition;
  2125. if(iRow < 0) return;
  2126. if(ds_grid_grd_carerecspec.getColumn(iRow,"fstrgstrid") != sysf_getUserId()){
  2127. sysf_messageBox("다른 사람의 기록은 수정","E001");
  2128. return;
  2129. }
  2130. if(ds_grid_grd_carerecspec.getColumn(iRow,"dnarflag") == "2N"){
  2131. sysf_messageBox( "간호진단은 수정할 수 없습니다. 삭제 후에 신규 등록","I008");
  2132. return;
  2133. }
  2134. var dnarflag = ds_grid_grd_carerecspec.getColumn(iRow,"dnarflag");
  2135. ds_init_dnarflag.filter("itemcd=='"+dnarflag+"'");
  2136. var dnarnm = ds_init_dnarflag.getColumn(0,"itemnm");
  2137. ds_init_dnarflag.filter("");
  2138. aCptuniqno = utlf_transNullToEmpty(aCptuniqno);
  2139. 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▩";
  2140. var sParam_Data = ds_grid_grd_carerecspec.getColumn(iRow,"recdd")+"▦"
  2141. + ds_grid_grd_carerecspec.getColumn(iRow,"rectm")+"▦"
  2142. + dnarflag+"▦"
  2143. + ds_grid_grd_carerecspec.getColumn(iRow,"stmtspec")+"▦"
  2144. + ds_grid_grd_carerecspec.getColumn(iRow,"fstrgstrnm")+"▦"
  2145. + ds_grid_grd_carerecspec.getColumn(iRow,"signno")+"▦"
  2146. + ds_grid_grd_carerecspec.getColumn(iRow,"recverno")+"▦"
  2147. + ds_grid_grd_carerecspec.getColumn(iRow,"stmtcd")+"▦"
  2148. + ds_grid_grd_carerecspec.getColumn(iRow,"origincd")+"▦"
  2149. + ds_grid_grd_carerecspec.getColumn(iRow,"recoriginflag")+"▦"
  2150. + ds_grid_grd_carerecspec.getColumn(iRow,"carerecno")+"▦"
  2151. + dnarnm+"▦"
  2152. + (cmb_deptflag.text =="병동" ? "" : "["+cmb_deptflag.text+"]")+"▦"
  2153. + sPid + "▦"
  2154. + sIndd + "▦"
  2155. + sOrdDD + "▦"
  2156. + sCretNo + "▦"
  2157. + sInstcd + "▦"
  2158. + sIOFlag + "▦"
  2159. + sOrdDeptCd + "▦"
  2160. + sOrdDrId + "▦"
  2161. + sHngNm + "▦"
  2162. + ( DutPlceCD=="001" ? "Y" : "") +"▩"//가정간호인지 아닌지의 여부를 판단하기 위해추가.. 20090401 가정간호가 상단정보를 올리면서 상단정보의 진료일정을 읽지 못하도록 막아야함.20090403 김홍점
  2163. frmf_setParameter("SMMNR02800_Param",sParam_Header+sParam_Data);
  2164. frmf_modal("SMMNR02800","SMMNR02800","","","","","","","","","","","M");
  2165. if(frmf_getParameter("SMMNR02800_ReturnFlag") == "Y"){
  2166. fSrchCareRec(); // 기록조회
  2167. }
  2168. if(frmf_getParameter("SMMNR02800_SignRecYN") == "Y"){
  2169. gSignRecYN = "Y";
  2170. }
  2171. }
  2172. /**
  2173. * @group :
  2174. * @ver : 2007.05.14
  2175. * @by : 이은영
  2176. * @---------------------------------------------------
  2177. * @type : function
  2178. * @access : public
  2179. * @desc : 기록저장된 데이타중 기록일시 일괄 수정
  2180. * @param : status : T time 수정
  2181. * @return :
  2182. * @---------------------------------------------------
  2183. */
  2184. function fStmtListRecdt(){
  2185. if(utlf_isNull(sPid)){
  2186. sysf_messageBox("환자를 먼저","C002");
  2187. return;
  2188. }
  2189. frmf_modal("SMMNR01300","SMMNR01300","","","","","","","","","","","M");
  2190. var sRtnMsg = frmf_getParameter("SMMNR01300_Return");
  2191. if(utlf_isNull(sRtnMsg)) return;
  2192. var sTmpInfo = sRtnMsg.split("▩");
  2193. var sRecDTInfo = sTmpInfo[1].split("▦");
  2194. var sSaveData = "";
  2195. var sStmtCDList = "";
  2196. var sDNARFlagList = "";
  2197. var sCareRecNoList = "";
  2198. var iSignRow = 0;
  2199. var sDNARFlag = "";
  2200. var sDNARNm = "";
  2201. var sNotSave ="";
  2202. var selectRows = ds_grid_grd_carerecspec.rowcount;
  2203. ds_temp_save.clear();
  2204. ds_temp_tmpsign.clear();
  2205. dsf_createDs("ds_temp_save", [{col: "status", type:"string" }
  2206. ,{col: "recdt", type:"string" }
  2207. ,{col: "prerecdd", type:"string" }
  2208. ,{col: "pid", type:"string" }
  2209. ,{col: "indd", type:"string" }
  2210. ,{col: "cretno", type:"string" }
  2211. ,{col: "instcd", type:"string" }
  2212. ,{col: "ioflag", type:"string" }
  2213. ,{col: "orddd", type:"string" }
  2214. ,{col: "carerecno", type:"string" }]);
  2215. dsf_createDs("ds_temp_tmpsign", [{col: "stmtspec", type:"string" }
  2216. ,{col: "status", type:"string" }
  2217. ,{col: "origincd", type:"string" }
  2218. ,{col: "stmtcd", type:"string" }
  2219. ,{col: "dnarflag", type:"string" }
  2220. ,{col: "recoriginflag", type:"string" }
  2221. ,{col: "recdtflag", type:"string" }
  2222. ,{col: "recdt", type:"string" }
  2223. ,{col: "pid", type:"string" }
  2224. ,{col: "indd", type:"string" }
  2225. ,{col: "cretno", type:"string" }
  2226. ,{col: "instcd", type:"string" }
  2227. ,{col: "ioflag", type:"string" }
  2228. ,{col: "orddeptcd", type:"string" }
  2229. ,{col: "recflag", type:"string" }
  2230. ,{col: "reclnkkey", type:"string" }
  2231. ,{col: "diagstmtcd", type:"string" }
  2232. ,{col: "orddd", type:"string" }
  2233. ,{col: "dnarnm", type:"string" }
  2234. ,{col: "usernm", type:"string" }
  2235. ,{col: "deptflagnm", type:"string" }]);
  2236. var tmp_chk = 0;
  2237. for( var iRow = 0; iRow < selectRows ; iRow++ ){
  2238. if(ds_grid_grd_carerecspec.getSelect(iRow)){
  2239. if(ds_grid_grd_carerecspec.getColumn(iRow,"fstrgstrid") != sysf_getUserId()){
  2240. sNotSave += "["+ds_grid_grd_carerecspec.getColumn(iRow,"stmtspec")+"]\n";
  2241. continue;
  2242. } else {
  2243. ds_temp_save.addRow();
  2244. ds_temp_save.setColumn(tmp_chk,"status","T");
  2245. ds_temp_save.setColumn(tmp_chk,"recdt",sRecDTInfo[1]);
  2246. ds_temp_save.setColumn(tmp_chk,"prerecdd",ds_grid_grd_carerecspec.getColumn(iRow,"recdd"));
  2247. ds_temp_save.setColumn(tmp_chk,"pid",sPid);
  2248. ds_temp_save.setColumn(tmp_chk,"indd",sIndd);
  2249. ds_temp_save.setColumn(tmp_chk,"cretno",sCretNo);
  2250. ds_temp_save.setColumn(tmp_chk,"instcd",sInstcd);
  2251. ds_temp_save.setColumn(tmp_chk,"ioflag",sIOFlag);
  2252. ds_temp_save.setColumn(tmp_chk,"orddd",sOrdDD);
  2253. ds_temp_save.setColumn(tmp_chk,"carerecno",ds_grid_grd_carerecspec.getColumn(iRow,"carerecno"));
  2254. ds_temp_tmpsign.addRow();
  2255. ds_temp_tmpsign.setColumn(tmp_chk,"stmtspec",ds_grid_grd_carerecspec.getColumn(iRow,"stmtspec"));
  2256. ds_temp_tmpsign.setColumn(tmp_chk,"status","U");
  2257. ds_temp_tmpsign.setColumn(tmp_chk,"origincd",ds_grid_grd_carerecspec.getColumn(iRow,"origincd"));
  2258. ds_temp_tmpsign.setColumn(tmp_chk,"stmtcd",ds_grid_grd_carerecspec.getColumn(iRow,"stmtcd"));
  2259. ds_temp_tmpsign.setColumn(tmp_chk,"dnarflag",ds_grid_grd_carerecspec.getColumn(iRow,"dnarflag"));
  2260. ds_temp_tmpsign.setColumn(tmp_chk,"recoriginflag",ds_grid_grd_carerecspec.getColumn(iRow,"recoriginflag"));
  2261. ds_temp_tmpsign.setColumn(tmp_chk,"recdtflag",sRecDTInfo[0]);
  2262. ds_temp_tmpsign.setColumn(tmp_chk,"recdt",sRecDTInfo[1]);
  2263. ds_temp_tmpsign.setColumn(tmp_chk,"pid",sPid);
  2264. ds_temp_tmpsign.setColumn(tmp_chk,"indd",sIndd);
  2265. ds_temp_tmpsign.setColumn(tmp_chk,"cretno",sCretNo);
  2266. ds_temp_tmpsign.setColumn(tmp_chk,"instcd",sInstcd);
  2267. ds_temp_tmpsign.setColumn(tmp_chk,"ioflag",sIOFlag);
  2268. ds_temp_tmpsign.setColumn(tmp_chk,"orddeptcd",sOrdDeptCd);
  2269. ds_temp_tmpsign.setColumn(tmp_chk,"recflag",ds_grid_grd_carerecspec.getColumn(iRow,"recflag"));
  2270. ds_temp_tmpsign.setColumn(tmp_chk,"reclnkkey",ds_grid_grd_carerecspec.getColumn(iRow,"reclnkkey"));
  2271. ds_temp_tmpsign.setColumn(tmp_chk,"diagstmtcd",ds_grid_grd_carerecspec.getColumn(iRow,"diagstmtcd"));
  2272. ds_temp_tmpsign.setColumn(tmp_chk,"orddd",sOrdDD);
  2273. ds_temp_tmpsign.setColumn(tmp_chk,"dnarnm",ds_grid_grd_carerecspec.getColumn(iRow,"dnar"));
  2274. ds_temp_tmpsign.setColumn(tmp_chk,"usernm",ds_grid_grd_carerecspec.getColumn(iRow,"fstrgstrnm"));
  2275. ds_temp_tmpsign.setColumn(tmp_chk,"deptflagnm",(cmb_deptflag.text =="병동" ? "" : "["+cmb_deptflag.text+"]"));
  2276. tmp_chk++;
  2277. }
  2278. }
  2279. }
  2280. // 조회 데이터
  2281. dsf_createDsRow("ds_temp", [{col: "pid", val:sPid }
  2282. ,{col: "indd", val:sIndd }
  2283. ,{col: "orddd", val:sOrdDD }
  2284. ,{col: "cretno", val:sCretNo }
  2285. ,{col: "ioflag", val:sIOFlag }
  2286. ,{col: "fromdd", val:ds_cond.getColumn(0,"fromdd") }
  2287. ,{col: "todd", val:ds_cond.getColumn(0,"todd") }
  2288. ,{col: "dnarflag", val:ds_cond.getColumn(0,"dnarflag") }
  2289. ,{col: "sortseq", val:ds_cond.getColumn(0,"sortseq") }
  2290. ,{col: "recflag", val:sRecFlag }
  2291. ,{col: "reclnkkey", val:sRecLnkKey }
  2292. ,{col: "carediagflag", val:ds_cond.getColumn(0,"carediagflag") }
  2293. ,{col: "type2", val:"Y" }]);
  2294. //인증저장
  2295. var msg = sysf_messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  2296. if(Number(msg) == 6 && ds_temp_save.rowcount > 0){//예
  2297. if (!fSign()) return;
  2298. /*
  2299. tranf_submit({
  2300. id: "TXMNR03402"
  2301. , service: "carerecapp.NursingRecord"
  2302. , method: "reqExeStmtList"
  2303. , inds: "saveData=ds_temp_save signinfo=ds_temp_fsign srchinfo="+ds_temp
  2304. , outds: "ds_grid_grd_carerecspec=nursingrecordlist ds_data_recddlist=recddlist ds_data_totnursingrecordlist=totnursingrecordlist"
  2305. , async: false
  2306. , callback: "cbk_TXMNR03402"
  2307. });
  2308. */
  2309. var oParam = {};
  2310. oParam.id = "TXMNR03402";
  2311. oParam.service = "carerecapp.NursingRecord";
  2312. oParam.method = "reqExeStmtList";
  2313. oParam.inds = "srchinfo=ds_temp saveData=ds_temp_save signinfo=ds_temp_fsign";
  2314. oParam.outds = "ds_grid_grd_carerecspec=nursingrecordlist ds_data_recddlist=recddlist ds_data_totnursingrecordlist=totnursingrecordlist";
  2315. oParam.async = false;
  2316. oParam.callback = "cf_TXMNR03402";
  2317. tranf_submit(oParam);
  2318. if(arErrorCode.pop("TXMNR03402") > -1) {
  2319. fViewSign();
  2320. gSignRecYN = "Y";
  2321. if (!utlf_isNull(sNotSave)){
  2322. sysf_messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  2323. }
  2324. //fSettingRec();
  2325. }
  2326. }else {
  2327. if (!utlf_isNull(sNotSave)){
  2328. sysf_messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  2329. }
  2330. return;
  2331. }
  2332. }
  2333. /**
  2334. * @group :
  2335. * @ver : 2007.06.18
  2336. * @by : 이은영
  2337. * @---------------------------------------------------
  2338. * @type : function
  2339. * @access : public
  2340. * @desc : 간호기록 삭제
  2341. * @param :
  2342. * @return :
  2343. * @---------------------------------------------------
  2344. */
  2345. function fDelNursingRecord(){
  2346. var selectRows = ds_grid_grd_carerecspec.rowcount;
  2347. var sNotSave = "";
  2348. var sSaveData="";
  2349. var sDiagStmtCd = "";
  2350. var sDNARNm ="";
  2351. if(selectRows < 1) return;
  2352. if(utlf_isNull(sPid)){
  2353. sysf_messageBox("환자를 먼저","C002");
  2354. return;
  2355. }
  2356. // 저장데이터
  2357. ds_temp_save.clear();
  2358. ds_temp_tmpsign.clear();
  2359. dsf_createDs("ds_temp_save", [{col: "status", type:"string" }
  2360. ,{col: "carerecno", type:"string" }
  2361. ,{col: "pid", type:"string" }
  2362. ,{col: "indd", type:"string" }
  2363. ,{col: "orddd", type:"string" }
  2364. ,{col: "cretno", type:"string" }
  2365. ,{col: "instcd", type:"string" }
  2366. ,{col: "recdt", type:"string" }
  2367. ,{col: "certkey", type:"string" }]);
  2368. dsf_createDs("ds_temp_tmpsign", [{col: "stmtspec", type:"string" }
  2369. ,{col: "status", type:"string" }
  2370. ,{col: "origincd", type:"string" }
  2371. ,{col: "stmtcd", type:"string" }
  2372. ,{col: "dnarflag", type:"string" }
  2373. ,{col: "recoriginflag", type:"string" }
  2374. ,{col: "recdtflag", type:"string" }
  2375. ,{col: "recdt", type:"string" }
  2376. ,{col: "pid", type:"string" }
  2377. ,{col: "indd", type:"string" }
  2378. ,{col: "cretno", type:"string" }
  2379. ,{col: "instcd", type:"string" }
  2380. ,{col: "ioflag", type:"string" }
  2381. ,{col: "orddeptcd", type:"string" }
  2382. ,{col: "recflag", type:"string" }
  2383. ,{col: "reclnkkey", type:"string" }
  2384. ,{col: "diagstmtcd", type:"string" }
  2385. ,{col: "orddd", type:"string" }
  2386. ,{col: "dnarnm", type:"string" }
  2387. ,{col: "usernm", type:"string" }
  2388. ,{col: "deptflagnm", type:"string" }]);
  2389. var tmp_chk = 0;
  2390. for( var iRow = 0; iRow < selectRows ; iRow++ ){
  2391. if(ds_grid_grd_carerecspec.getSelect(iRow)){
  2392. if(ds_grid_grd_carerecspec.getColumn(iRow,"fstrgstrid") != sysf_getUserId()){
  2393. sNotSave += "["+ds_grid_grd_carerecspec.getColumn(iRow,"stmtspec")+"]\n";
  2394. continue;
  2395. }else{
  2396. ds_temp_save.addRow();
  2397. ds_temp_save.setColumn(tmp_chk,"status","D");
  2398. ds_temp_save.setColumn(tmp_chk,"carerecno",ds_grid_grd_carerecspec.getColumn(iRow,"carerecno"));
  2399. ds_temp_save.setColumn(tmp_chk,"pid",sPid);
  2400. ds_temp_save.setColumn(tmp_chk,"indd",sIndd);
  2401. ds_temp_save.setColumn(tmp_chk,"orddd",sOrdDD);
  2402. ds_temp_save.setColumn(tmp_chk,"cretno",sCretNo);
  2403. ds_temp_save.setColumn(tmp_chk,"instcd",sInstcd);
  2404. ds_temp_save.setColumn(tmp_chk,"recdt",ds_grid_grd_carerecspec.getColumn(iRow,"recdd")
  2405. +ds_grid_grd_carerecspec.getColumn(iRow,"rectm")+"00");
  2406. if(!utlf_isNull(ds_grid_grd_carerecspec.getColumnInfo("certkey")))
  2407. ds_temp_save.setColumn(tmp_chk,"certkey",ds_grid_grd_carerecspec.getColumn(iRow,"certkey"));
  2408. ds_temp_tmpsign.addRow();
  2409. ds_temp_tmpsign.setColumn(tmp_chk,"stmtspec",ds_grid_grd_carerecspec.getColumn(iRow,"stmtspec"));
  2410. ds_temp_tmpsign.setColumn(tmp_chk,"status","D");
  2411. ds_temp_tmpsign.setColumn(tmp_chk,"origincd",ds_grid_grd_carerecspec.getColumn(iRow,"origincd"));
  2412. ds_temp_tmpsign.setColumn(tmp_chk,"stmtcd",ds_grid_grd_carerecspec.getColumn(iRow,"stmtcd"));
  2413. ds_temp_tmpsign.setColumn(tmp_chk,"dnarflag",ds_grid_grd_carerecspec.getColumn(iRow,"dnarflag"));
  2414. ds_temp_tmpsign.setColumn(tmp_chk,"recoriginflag",ds_grid_grd_carerecspec.getColumn(iRow,"recoriginflag"));
  2415. if(!utlf_isNull(ds_grid_grd_carerecspec.getColumnInfo("recdtflag")))
  2416. ds_temp_tmpsign.setColumn(tmp_chk,"recdtflag",ds_grid_grd_carerecspec.getColumn(iRow,"recdtflag"));
  2417. ds_temp_tmpsign.setColumn(tmp_chk,"recdt",ds_grid_grd_carerecspec.getColumn(iRow,"recdd")
  2418. +ds_grid_grd_carerecspec.getColumn(iRow,"rectm")+"00");
  2419. ds_temp_tmpsign.setColumn(tmp_chk,"pid",sPid);
  2420. ds_temp_tmpsign.setColumn(tmp_chk,"indd",sIndd);
  2421. ds_temp_tmpsign.setColumn(tmp_chk,"cretno",sCretNo);
  2422. ds_temp_tmpsign.setColumn(tmp_chk,"instcd",sInstcd);
  2423. ds_temp_tmpsign.setColumn(tmp_chk,"ioflag",sIOFlag);
  2424. ds_temp_tmpsign.setColumn(tmp_chk,"orddeptcd",sOrdDeptCd);
  2425. ds_temp_tmpsign.setColumn(tmp_chk,"recflag",ds_grid_grd_carerecspec.getColumn(iRow,"recflag"));
  2426. ds_temp_tmpsign.setColumn(tmp_chk,"reclnkkey",ds_grid_grd_carerecspec.getColumn(iRow,"reclnkkey"));
  2427. ds_temp_tmpsign.setColumn(tmp_chk,"diagstmtcd",ds_grid_grd_carerecspec.getColumn(iRow,"diagstmtcd"));
  2428. ds_temp_tmpsign.setColumn(tmp_chk,"orddd",sOrdDD);
  2429. ds_temp_tmpsign.setColumn(tmp_chk,"dnarnm",ds_grid_grd_carerecspec.getColumn(iRow,"dnar"));
  2430. ds_temp_tmpsign.setColumn(tmp_chk,"usernm",ds_grid_grd_carerecspec.getColumn(iRow,"fstrgstrnm"));
  2431. ds_temp_tmpsign.setColumn(tmp_chk,"deptflagnm",(cmb_deptflag.text =="병동" ? "" : "["+cmb_deptflag.text+"]"));
  2432. tmp_chk++;
  2433. }
  2434. }
  2435. }
  2436. // 조회 데이터
  2437. dsf_createDsRow("ds_temp", [{col: "pid", val:sPid }
  2438. ,{col: "indd", val:sIndd }
  2439. ,{col: "orddd", val:sOrdDD }
  2440. ,{col: "cretno", val:sCretNo }
  2441. ,{col: "ioflag", val:sIOFlag }
  2442. ,{col: "fromdd", val:ds_cond.getColumn(0,"fromdd") }
  2443. ,{col: "todd", val:ds_cond.getColumn(0,"todd") }
  2444. ,{col: "dnarflag", val:ds_cond.getColumn(0,"dnarflag") }
  2445. ,{col: "sortseq", val:ds_cond.getColumn(0,"sortseq") }
  2446. ,{col: "recflag", val:sRecFlag }
  2447. ,{col: "reclnkkey", val:sRecLnkKey }
  2448. ,{col: "carediagflag", val:ds_cond.getColumn(0,"carediagflag") }
  2449. ,{col: "type2", val:"Y" }]);
  2450. //인증저장
  2451. var msg = sysf_messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  2452. if(Number(msg) == 6 && ds_temp_save.rowcount > 0){//예
  2453. if (!fSign()) return;
  2454. //activateMyWindow(); jh 확인후 변환
  2455. var oParam = {};
  2456. oParam.id = "TXMNR03402";
  2457. oParam.service = "carerecapp.NursingRecord";
  2458. oParam.method = "reqExeStmtList";
  2459. oParam.inds = "srchinfo=ds_temp saveData=ds_temp_save signinfo=ds_temp_fsign";
  2460. oParam.outds = "ds_grid_grd_carerecspec=nursingrecordlist ds_data_recddlist=recddlist ds_data_totnursingrecordlist=totnursingrecordlist";
  2461. oParam.async = false;
  2462. oParam.callback = "cf_TXMNR03402";
  2463. tranf_submit(oParam);
  2464. /*
  2465. tranf_submit({
  2466. id: "TXMNR03402"
  2467. , service: "carerecapp.NursingRecord"
  2468. , method: "reqExeStmtList"
  2469. , inds: "saveData=ds_temp_save signinfo=ds_temp_fsign srchinfo="+ds_temp
  2470. , outds: "ds_grid_grd_carerecspec=nursingrecordlist ds_data_recddlist=recddlist ds_data_totnursingrecordlist=totnursingrecordlist"
  2471. , async: false
  2472. , callback: "cbk_TXMNR03402"
  2473. });
  2474. */
  2475. if(arErrorCode.pop("TXMNR03402") > -1) {
  2476. fViewSign();
  2477. gSignRecYN = "Y";
  2478. if (!utlf_isNull(sNotSave)){
  2479. sysf_messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  2480. }
  2481. //fSettingRec();
  2482. }
  2483. }else {
  2484. if (!utlf_isNull(sNotSave)){
  2485. sysf_messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  2486. }
  2487. return;
  2488. }
  2489. }
  2490. function cbk_TXMNR03402(sScvId, nErrorCode, sErrorMsg){
  2491. if(nErrorCode == 0){//성공하였을때
  2492. cbk_TXMNR03402_flag = 1;
  2493. }else{
  2494. sysf_messageBox(sErrorMsg, "E");
  2495. }
  2496. }
  2497. /**
  2498. * @group :
  2499. * @ver : 2007.06.20
  2500. * @by : 이은영
  2501. * @---------------------------------------------------
  2502. * @type : function
  2503. * @access : public
  2504. * @desc : 부서별 SET 조회 화면 호출
  2505. * @param : "grupcd▦grupnm▦stmtcd▦stmtcnts▦attrinfo1▦attrinfo2▦attressnyn▦dnarflag▦attrcnt▦diagstmtcd▩";
  2506. * @return :
  2507. * @---------------------------------------------------
  2508. */
  2509. function fCallDeptSet(){
  2510. frmf_setParameter("SPMNR03700_Param", sysf_getUserInfo("dutplcecd"));
  2511. frmf_modal("SPMNR03700","SPMNR03700","","","","","","","","","","","M");
  2512. if(swt_recinfo.tabindex == 1){
  2513. return;
  2514. }
  2515. var sStmtInfo = frmf_getParameter("SPMNR03700_Return");
  2516. var sStmtCnt = '';
  2517. if(!utlf_isNull(sStmtInfo)){
  2518. sStmtCnt = sStmtInfo.split("▩").length-1;
  2519. }
  2520. var sMaxAttrCnt = ds_cond.getColumn(0,"maxattrcnt");
  2521. var sAttrCnt = 0;
  2522. var iStmtRow = 0;
  2523. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수
  2524. if(sStmtCnt < 1) return;
  2525. for(var iRow = 0; iRow < sStmtCnt; iRow++){
  2526. if(!utlf_isNull(getArrayData(sStmtInfo,iRow,8)) && (getArrayData(sStmtInfo,iRow,8))!= 'undefined')
  2527. sAttrCnt = getArrayData(sStmtInfo,iRow,8);
  2528. if(sMaxAttrCnt < sAttrCnt){
  2529. sMaxAttrCnt = sAttrCnt;
  2530. }
  2531. }
  2532. sAttrCnt = ds_cond.getColumn(0,"maxattrcnt");
  2533. ds_cond.setColumn(0,"maxattrcnt",sMaxAttrCnt);
  2534. fAddGridColumn(sAttrCnt);
  2535. ds_grid_grd_stmtinfo.enableevent = false;
  2536. if(sStmtCnt > 0){
  2537. ds_grid_grd_stmtinfo.clearSelect();
  2538. }
  2539. for(var iRow = 0; iRow < sStmtCnt; iRow++){
  2540. ds_grid_grd_stmtinfo.addRow();
  2541. iStmtRow = ds_grid_grd_stmtinfo.rowcount-1;
  2542. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"check",1);
  2543. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupcd",getArrayData(sStmtInfo,iRow,0));
  2544. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupnm",getArrayData(sStmtInfo,iRow,1));
  2545. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcd",getArrayData(sStmtInfo,iRow,2));
  2546. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcnts",getArrayData(sStmtInfo,iRow,3));
  2547. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo1",getArrayData(sStmtInfo,iRow,4));
  2548. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo2",getArrayData(sStmtInfo,iRow,5));
  2549. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attressnyn",getArrayData(sStmtInfo,iRow,6));
  2550. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"dnarflag",getArrayData(sStmtInfo,iRow,7));
  2551. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrcnt",getArrayData(sStmtInfo,iRow,8));
  2552. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"diagstmtcd",getArrayData(sStmtInfo,iRow,9));
  2553. fSettingAttrInfo(iStmtRow);
  2554. if(iRow == sStmtCnt - 1){
  2555. ds_grid_grd_stmtinfo.selectRow(iStmtRow);
  2556. }
  2557. //ds_grid_grd_stmtinfo.rowposition = iStmtRow;
  2558. }
  2559. fExprsetting();//추가3
  2560. ds_grid_grd_stmtinfo.enableevent = true;
  2561. }
  2562. /**
  2563. * @group :
  2564. * @ver : 2007.06.20
  2565. * @by : 이은영
  2566. * @---------------------------------------------------
  2567. * @type : function
  2568. * @access : public
  2569. * @desc : 컬럼 추가
  2570. * @param :
  2571. * @return :
  2572. * @---------------------------------------------------
  2573. */
  2574. function fAddGridColumn(pAttrRow){
  2575. var sMaxAttrCnt = ds_cond.getColumn(0,"maxattrcnt");
  2576. var sComboChoice = "";
  2577. var sItemset = "";
  2578. var sCmbID = "";
  2579. var colName = "";
  2580. var sStndColCnt = gStndColCnt; // 기준 그리드 컬럼 개수
  2581. var sAttrInfo = ""; // 속성정보
  2582. var sAttrCnt = 0; // 속성개수
  2583. for(iAttrRow = pAttrRow; iAttrRow < sMaxAttrCnt; iAttrRow++){
  2584. var headcount = "";//ds_data_attrinfo
  2585. swt_recinfo.stmtinfo.grd_stmtinfo.appendContentsCol();
  2586. headcount = swt_recinfo.stmtinfo.grd_stmtinfo.getCellCount("head")-1;
  2587. swt_recinfo.stmtinfo.grd_stmtinfo.setFormatColProperty(headcount,"size","0");
  2588. ds_grid_grd_stmtinfo.addColumn("attrcd"+(Number(iAttrRow)+1),"string");
  2589. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",headcount,"text","bind:"+"attrcd"+(Number(iAttrRow)+1));
  2590. swt_recinfo.stmtinfo.grd_stmtinfo.appendContentsCol();
  2591. headcount = swt_recinfo.stmtinfo.grd_stmtinfo.getCellCount("head")-1;
  2592. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Head", headcount, "text", "속성정보");
  2593. swt_recinfo.stmtinfo.grd_stmtinfo.setFormatColProperty(headcount,"size","135");
  2594. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Body",headcount,"edittype","combo");
  2595. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Body",headcount,"displaytype","combo");
  2596. dsf_createDs("ds_temp_combo");
  2597. ds_data_attrinfo.filter("plnumchoiyn != 'Y'");
  2598. ds_temp_combo.copyData(ds_data_attrinfo, true);
  2599. ds_data_attrinfo.filter("");
  2600. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Body",headcount,"combodataset","ds_temp_combo");
  2601. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Body",headcount,"combocodecol","attrcd");
  2602. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("Body",headcount,"combodatacol","attrnm");
  2603. ds_grid_grd_stmtinfo.addColumn("attrval"+(Number(iAttrRow)+1),"string");
  2604. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",headcount,"text","bind:"+"attrval"+(Number(iAttrRow)+1));
  2605. ds_grid_grd_stmtinfo.addColumn("sdataset"+headcount,"string");
  2606. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",headcount,"combodataset","bind:"+"sdataset"+headcount);
  2607. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",headcount,"combotype","filter");
  2608. swt_recinfo.stmtinfo.grd_stmtinfo.appendContentsCol();
  2609. headcount = swt_recinfo.stmtinfo.grd_stmtinfo.getCellCount("head")-1;
  2610. swt_recinfo.stmtinfo.grd_stmtinfo.setFormatColProperty(headcount,"size","15");
  2611. ds_grid_grd_stmtinfo.addColumn("attrvalcd"+(Number(iAttrRow)+1),"string");
  2612. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",headcount,"displaytype","none");
  2613. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",headcount,"text","bind:"+"attrvalcd"+(Number(iAttrRow)+1));
  2614. }
  2615. }
  2616. /**
  2617. * @group :
  2618. * @ver : 2007.04.24
  2619. * @by : 이은영
  2620. * khj Free Text 선택하여 그리드에 붙이도록 수정 20091218
  2621. * @---------------------------------------------------
  2622. * @type : function
  2623. * @access : public
  2624. * @desc : 기록 저장
  2625. * @param : Free Text 기록 선택 부분
  2626. * @return :
  2627. * @---------------------------------------------------
  2628. */
  2629. function fSelTextStmtInfo(){
  2630. var sSelYN = "N";
  2631. var sAttrinfo1 = "";
  2632. var sArrtCnt = 0;
  2633. // (A : 자동, U : 지정)
  2634. sRecDateFlag = ds_cond.getColumn(0,"recdateflag");
  2635. var sRecDate = "";
  2636. var sDNARFlag = ""; //DNAR 구분
  2637. var sDNARNm = ""; //DNAR 구분
  2638. var sStmtDiagCd = ""; // 진단코드
  2639. var sStmtCnts = "";
  2640. var sLnkStmt = ""; // 링크된 진술문
  2641. var sGrupCD = ""; // 그룹코드
  2642. var sStmtDiagInfo = "";
  2643. if(utlf_isNull(sPid)){
  2644. sysf_messageBox("환자를 먼저","C002");
  2645. return;
  2646. }
  2647. if(utlf_isNull(ds_cond.getColumn(0,"freetextdnarflag"))
  2648. || utlf_isNull(ds_cond.getColumn(0,"freetextsrchcnts"))){
  2649. sysf_messageBox("선택된 FreeText의 SNDAR이 선택되지 않았거나 저장할 데이터가","I004");
  2650. return;
  2651. }
  2652. //ds_grid_grd_stmtinfo.selectRow(ds_grid_grd_stmtinfo.rowposition,false);
  2653. ds_grid_grd_stmtinfo.clearSelect();
  2654. //////
  2655. ds_grid_grd_stmtinfo.addRow();
  2656. iStmtRow = ds_grid_grd_stmtinfo.rowcount-1;
  2657. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"check",1);
  2658. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupcd",ds_cond.getColumn(0,"grupcd"));
  2659. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"grupnm","");
  2660. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcd","--------");
  2661. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"stmtcnts",ds_cond.getColumn(0,"freetextsrchcnts"));
  2662. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo1","");
  2663. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrinfo2","");
  2664. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attressnyn","");
  2665. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"dnarflag",ds_cond.getColumn(0,"freetextdnarflag"));
  2666. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"attrcnt","0");
  2667. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"diagstmtcd","");
  2668. if(sRecDateFlag == "U"){
  2669. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"recdt",ds_cond.getColumn(0,"recdd")+ds_cond.getColumn(0,"rectm")+"00");
  2670. ds_grid_grd_stmtinfo.addColumn("recdtflag","string");
  2671. ds_grid_grd_stmtinfo.setColumn(iStmtRow,"recdtflag","U");
  2672. }
  2673. fSettingAttrInfo(iStmtRow);
  2674. fExprsetting();//추가4
  2675. ds_grid_grd_stmtinfo.rowposition = iStmtRow;
  2676. ds_grid_grd_stmtinfo.selectRow(iStmtRow);
  2677. swt_recinfo.stmtinfo.grd_stmtinfo.vscrollbar.pos = iStmtRow;
  2678. ds_cond.setColumn(0,"freetextsrchcnts","");
  2679. ds_cond.setColumn(0,"freetextdnarflag","");
  2680. /* sStmtInfo += model.getValue("/root/main/cond/freetextsrchcnts")+"▦"
  2681. + "▦"
  2682. + "I▦"
  2683. + model.getValue("/root/main/cond/grupcd")+"▦"
  2684. + "--------"+"▦"
  2685. + model.getValue("/root/main/cond/freetextdnarflag")+"▦"
  2686. + "T▦"
  2687. + sRecDateFlag+"▦"
  2688. + sRecDate+"▦"
  2689. + sPid+"▦"
  2690. + sIndd+"▦"
  2691. + sCretNo+"▦"
  2692. + sInstcd+"▦"
  2693. + sIOFlag+"▦"
  2694. + sOrdDeptCd+"▦"
  2695. + sRecFlag+"▦"
  2696. + sRecLnkKey+"▦"
  2697. + "▦" // 간호진단
  2698. + sOrdDD +"▦"
  2699. + (model.getValue("/root/main/cond/freetextdnarflag") == "2N" ? "N" : "") +"▦" // dnar 구분
  2700. + getUserName() +"▦" // 작성자
  2701. + (cmb_deptflag.label =="병동" ? "" : "["+cmb_deptflag.label+"]") + "▩"; // 용도
  2702. sSaveData = sStmtInfo;
  2703. model.makeValue("/root/send/saveData", sRecInfoHeader+sSaveData);
  2704. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦type2▩";
  2705. var sSrchData = sPid+"▦"
  2706. +sIndd+"▦"
  2707. +sOrdDD+"▦"
  2708. +sCretNo+"▦"
  2709. +sIOFlag+"▦"
  2710. +model.getValue(xCondPath+"/fromdd")+"▦"
  2711. +model.getValue(xCondPath+"/todd")+"▦"
  2712. +model.getValue(xCondPath+"/dnarflag")+"▦"
  2713. +model.getValue(xCondPath+"/sortseq")+"▦"
  2714. +sRecFlag+"▦"
  2715. +sRecLnkKey+"▦"
  2716. +model.getValue(xCondPath+"/carediagflag")+"▦"
  2717. +"Y▩";
  2718. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  2719. model.removeNode("/root/main/signSaveData");
  2720. model.makeNode("/root/main/signSaveData");
  2721. setCSVToNode("/root/main/signSaveData", sRecInfoHeader+sSaveData, "saveDataList");
  2722. // model.removenodeset(xNursingRecInfoPath);
  2723. model.removeNodeset("/root/main/recinfo");
  2724. var msg = "";
  2725. //인증저장
  2726. if(sTextAutoSave != ""){
  2727. msg = 6;
  2728. }else{
  2729. msg = messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  2730. }
  2731. if(Number(msg) == 6){//예
  2732. if (!fSign()) return;
  2733. if(submit("TXMNR00701", false)){
  2734. fViewSign("/root/main/recinfo");
  2735. gSignRecYN = "Y";
  2736. if(getNodesetCount("/root/main/recinfo/nursingrecordlist")>0 ){
  2737. model.makeNode(xNursingRecordListPath);
  2738. // copyNodesetType(xNursingRecordListPath,xNursingRecInfoPath,"replace", model, model);
  2739. copyNodeset("/root/main/nursingrecordinfo","/root/main/recinfo");
  2740. grd_carerecspec.rebuild();
  2741. }
  2742. model.setValue("/root/main/cond/freetextsrchcnts", "");
  2743. model.setValue("/root/main/cond/freetextdnarflag", "");
  2744. textarea4.refresh();
  2745. if(sRecDate == ""){
  2746. sRecDate = getCurrentDate() + getCurrentTime(); // 현재시간
  2747. }
  2748. var iRecDDRow = grd_carerecspec.findRow(sRecDate.substr(0,8),1,17,false,true);
  2749. var iRecTMRow = grd_carerecspec.findRow(sRecDate.substr(8,4),iRecDDRow,18,false,true);
  2750. //grd_carerecspec.topRow = iRecTMRow;
  2751. fDeSelect();
  2752. model.toggle("recinfo");
  2753. fSettingRec();
  2754. sAutoProcFlag = "true";
  2755. }
  2756. }else {
  2757. return;
  2758. } */
  2759. }
  2760. function fExprsetting(){
  2761. var sStndColCnt = gStndColCnt;
  2762. var tmp_maxcnt = ds_cond.getColumn(0,"maxattrcnt");
  2763. //sysf_trace("tmp_maxcnt "+tmp_maxcnt);
  2764. ds_grid_grd_stmtinfo.enableevent = false;
  2765. for(var i=0; i<tmp_maxcnt; i++){
  2766. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"edittype","expr:(((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+")&&!(iconchk"+i+">0)? 'combo':'none'");
  2767. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"displaytype","expr:(((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+")&&!(iconchk"+i+">0)? 'combo':'normal'");
  2768. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"align","expr:(((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+")&&!(iconchk"+i+">0)? 'left middle':'left middle'");
  2769. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"wordwrap","expr:(((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+")&&!(iconchk"+i+">0)? 'word':'word'");
  2770. //swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"expandshow","expr:exprchk==1? 'show':''");
  2771. //swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"expandimage","expr:((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+"? 'theme://images/combo_search.png':''");
  2772. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"expandsize","expr:((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+"? '18':''");
  2773. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"class","cell_nopadding");
  2774. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+2)+(3*i),"backgroundimage","expr:iconchk"+i+">0?'IMG::/emr/MR/icon_btn.png':''");
  2775. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"background","expr:((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+"? '#ffcccc':check==1 || check == 'true'?'#ffff88':''");
  2776. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"background2","expr:((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+"? '#ffcccc':check==1 || check == 'true'?'#ffff88':''");
  2777. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"selectbackground","expr:((exprchk==2||exprchk==3)||(exprchk==1&&exprchk2==4))&&colcount>"+i+"? '#ffcccc':check==1 || check == 'true'?'#ffff88':''");
  2778. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"background","expr:check==1 || check == 'true'?'#ffff88':''");
  2779. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"background2","expr:check==1 || check == 'true'?'#ffff88':''");
  2780. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+1)+(3*i),"selectbackground","expr:check==1 || check == 'true'?'#ffff88':''");
  2781. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+2)+(3*i),"background","expr:check==1 || check == 'true'?'#ffff88':''");
  2782. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+2)+(3*i),"background2","expr:check==1 || check == 'true'?'#ffff88':''");
  2783. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",(sStndColCnt+2)+(3*i),"selectbackground","expr:check==1 || check == 'true'?'#ffff88':''");
  2784. }
  2785. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",1,"background" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2786. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",1,"background2" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2787. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",1,"selectbackground","expr:check == 1 || check == 'true'? '#ffff88':''");
  2788. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",3,"background" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2789. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",3,"background2" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2790. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",3,"selectbackground","expr:check == 1 || check == 'true'? '#ffff88':''");
  2791. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",4,"background" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2792. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",4,"background2" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2793. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",4,"selectbackground","expr:check == 1 || check == 'true'? '#ffff88':''");
  2794. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",6,"background" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2795. swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",6,"background2" ,"expr:check == 1 || check == 'true'? '#ffff88':''");
  2796. // swt_recinfo.stmtinfo.grd_stmtinfo.setCellProperty("body",6,"selectbackground","expr:check == 1 || check == 'true'? '#ffff88':''");
  2797. ds_grid_grd_stmtinfo.enableevent = true;
  2798. }
  2799. function lf_callBack_SearchPatInfo(){
  2800. /*
  2801. if(!utlf_isNull(swt_recinfo.stmtinfo.cp_patientInfo00.edt_pid.value)){
  2802. ds_cond.setColumn(0,"pid",swt_recinfo.stmtinfo.cp_patientInfo00.edt_pid.value);
  2803. }else{
  2804. return;
  2805. }
  2806. ds_data_srchpatlist.clearData();
  2807. var ds_temp = dsf_createDsRow("ds_temp", [{col: "pid", val:ds_cond.getColumn(0,"pid") }
  2808. ]);
  2809. tranf_submit({
  2810. id: "TRMNR03405"
  2811. , service: "carerecapp.NursingRecord"
  2812. , method: "reqGetTopPatinfo"
  2813. , inds: "reqCond="+ds_temp
  2814. , outds: "ds_data_srchpatlist=patlist"
  2815. , async: false
  2816. });
  2817. sPid = ""; // 환자번호
  2818. sIndd = ""; // 입원일자
  2819. sOrdDD = ""; // 진료일자
  2820. sCretNo = ""; // 환자 일자별 일련번호
  2821. sInstcd = ""; // 기관코드
  2822. sIOFlag = ""; // 입원/외래 구분
  2823. sOrdDeptCd = ""; // 진료과코드
  2824. sOrdDrId = ""; // 진료의사ID
  2825. sHngNm = ""; // 환자명
  2826. sAge = ""; // 환자나이
  2827. sRecLnkKey = ""; // 기록연계키
  2828. aCptuniqno = "";
  2829. lgv_sOrddept = ""; // 진료과명
  2830. lgv_sApntdr = ""; // 지정의
  2831. lgv_sAttndr = ""; // 주치의
  2832. lgv_sInsukind = ""; // 보험유형명
  2833. lgv_sBtype = ""; // 혈액형
  2834. lgv_sSex = ""; // 성별
  2835. lgv_sHeight = ""; // 키
  2836. lgv_sWeight = ""; // 무게
  2837. if (ds_data_srchpatlist.rowcount <= 0){
  2838. sysf_messageBox("환자정보가 존재하지 않습니다. ","I007");
  2839. swt_recinfo.stmtinfo.cp_patientInfo00.edt_pid.value = "";
  2840. swt_recinfo.stmtinfo.cp_patientInfo00.edt_patnm.value = "";
  2841. return;
  2842. }
  2843. if(!utlf_isNull(cmb_deptflag.value)) cmb_deptflag.onitemchanged.fireEvent(cmb_deptflag, new ItemChangeEventInfo);
  2844. ds_grid_grd_stmtinfo.filter("prcpchk!='Y'");
  2845. //환자정보 세팅
  2846. sPid = ds_data_srchpatlist.getColumn(0,"pid");
  2847. sHngNm = ds_data_srchpatlist.getColumn(0,"hngnm");
  2848. sAge = ds_data_srchpatlist.getColumn(0,"age");
  2849. sIOFlag = ds_data_srchpatlist.getColumn(0,"ioflag"); // 입원/외래 구분
  2850. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  2851. sIndd = ds_data_srchpatlist.getColumn(0,"ioddd");
  2852. sOrdDD = "-";
  2853. }else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 itc 요청서에 의한 반영
  2854. sOrdDD = ds_data_srchpatlist.getColumn(0,"ioddd");
  2855. sIndd = "-";
  2856. if(sOrdDD < sCurrentdate){
  2857. ds_cond.setColumn(0, "pastorddd", sOrdDD);
  2858. ds_cond.setColumn(0, "pastordddflag", "Y");
  2859. }
  2860. }
  2861. sCretNo = ds_data_srchpatlist.getColumn(0,"cretno");
  2862. sInstcd = sysf_getUserInfo("dutplceinstcd"); // 기관코드
  2863. sOrdDeptCd = ds_data_srchpatlist.getColumn(0,"orddeptcd");
  2864. sOrdDrId = ds_data_srchpatlist.getColumn(0,"medispclid");
  2865. sRecLnkKey = ds_data_srchpatlist.getColumn(0,"reclnkkey");
  2866. if(ds_data_srchpatlist.getColumnInfo("acptuniqno")){
  2867. aCptuniqno= ds_data_srchpatlist.getColumn(0,"acptuniqno");
  2868. }
  2869. lgv_sOrddept = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"orddept")); // 주진료과명
  2870. lgv_sApntdr = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"apntdr")); // 지정의
  2871. lgv_sAttndr = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"attndr")); // 주치의
  2872. lgv_sInsukind = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"insukind")); // 보험유형명
  2873. lgv_sBtype = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"btype")); // 혈액형
  2874. lgv_sSex = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"sex")); // 성별
  2875. lgv_sHeight = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"height")); // 키
  2876. lgv_sWeight = utlf_transNullToEmpty(ds_data_srchpatlist.getColumn(0,"weight")); // 무게
  2877. ds_cond.setColumn(0,"grupcd",sGrupCd);
  2878. ds_cond.setColumn(0,"recdateflag","A");
  2879. ds_cond.setColumn(0,"certrecflag","C");
  2880. ds_cond.setColumn(0,"fromdd",utlf_getCurrentDate());
  2881. ds_cond.setColumn(0,"todd",utlf_getCurrentDate());
  2882. ds_cond.setColumn(0,"dnarflag","%");
  2883. ds_cond.setColumn(0,"sortseq","A");
  2884. ds_cond.setColumn(0,"acptuniqno",aCptuniqno);
  2885. fSettingRecInfo();
  2886. ds_cond.setColumn(0,"pname",sHngNm2);
  2887. ds_cond.setColumn(0,"age",sAge);
  2888. ds_cond.setColumn(0,"pid",sPid);
  2889. cmb_deptflag_onitemchanged();
  2890. */
  2891. }
  2892. function fKeyset(){
  2893. if(ds_init_gruplist.findRow("grupcd",cmb_deptflag.value) > -1){
  2894. if(ds_init_gruplist.getColumn(ds_init_gruplist.findRow("grupcd",cmb_deptflag.value),"paramcd") == '015'){
  2895. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd+",B,015";
  2896. }else{
  2897. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  2898. }
  2899. sRecFlag = ds_init_gruplist.getColumn(ds_init_gruplist.findRow("grupcd",cmb_deptflag.value),"recflag");
  2900. }
  2901. if(sRecFlag=="R" ){ //마취회복 선택시
  2902. if((utlf_isNull(appf_getOperationInfo("oprsrvno")) || appf_getOperationInfo("oprsrvno") == false)
  2903. ||(utlf_isNull(appf_getOperationInfo("ophistno")) || appf_getOperationInfo("oprsrvno") == false)){
  2904. cmb_deptflag.value = '';
  2905. sysf_messageBox("상단 수술스케쥴 정보가 없습니다.","I");
  2906. cmb_deptflag_onitemchanged();
  2907. return;
  2908. }
  2909. if(sPid == appf_getPatientInfo("pid")){
  2910. sRecLnkKey = sPid+"," + sInstcd + "," + appf_getOperationInfo("oprsrvno") + "," +appf_getOperationInfo("ophistno");
  2911. }else{
  2912. sysf_messageBox("상단 수술스케쥴 정보가 없습니다.","I");
  2913. return;
  2914. }
  2915. }else if(sRecFlag=="P"){ //수술 선택시
  2916. if(utlf_isNull(appf_getOperationInfo("oprsrvno")) || appf_getOperationInfo("oprsrvno") == false){
  2917. cmb_deptflag.value = '';
  2918. sysf_messageBox("상단 수술스케쥴 정보가 없습니다.","I");
  2919. cmb_deptflag_onitemchanged();
  2920. return;
  2921. }
  2922. if(sPid == appf_getPatientInfo("pid")){
  2923. sRecLnkKey = appf_getOperationInfo("oprsrvno") + "," +sInstcd;
  2924. }else{
  2925. sysf_messageBox("상단 수술스케쥴 정보가 없습니다.","I");
  2926. return;
  2927. }
  2928. }
  2929. }
  2930. function fSetPatInfoER() {
  2931. var pid = "";
  2932. var indd= "";
  2933. var cretno="";
  2934. var instcd = "";
  2935. var orddd= "";
  2936. var ordtype = "";
  2937. var idx = cmb_pid_er.index;
  2938. if(idx < 0) {
  2939. return;
  2940. }
  2941. pid = utlf_transNullToEmpty(ds_init_nursemainlist.getColumn(idx, "pid"));
  2942. indd = utlf_transNullToEmpty(ds_init_nursemainlist.getColumn(idx, "indd"));
  2943. cretno = utlf_transNullToEmpty(ds_init_nursemainlist.getColumn(idx, "cretno"));
  2944. instcd = utlf_transNullToEmpty(ds_init_nursemainlist.getColumn(idx, "instcd"));
  2945. orddd = utlf_transNullToEmpty(ds_init_nursemainlist.getColumn(idx, "indd"));
  2946. ordtype = "E";
  2947. // 상단 세팅을 위한 파라미터
  2948. condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  2949. appf_initPatientInfo(condparam);
  2950. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2951. }
  2952. function fSetPatInfo() {
  2953. var pid = "";
  2954. var indd= "";
  2955. var cretno="";
  2956. var instcd = "";
  2957. var orddd= "";
  2958. var ordtype = "";
  2959. var idx = cmb_pid.index;
  2960. if(idx < 0) {
  2961. return;
  2962. }
  2963. //----------(20080913)
  2964. var ioflag = ds_init_chemolist.getColumn(idx, "inptcretno");
  2965. var detstatus = ds_init_chemolist.getColumn(idx, "detstatus");
  2966. //if ( ioflag != "") { //입원정보를 기준으로 상단에 반영
  2967. if(detstatus == "외래") {
  2968. pid = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "pid"));
  2969. indd = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "otptorddd"));
  2970. cretno = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "otptcretno"));
  2971. instcd = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "instcd"));
  2972. orddd = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "otptorddd")); //처방일(orddd)
  2973. ordtype = "O";
  2974. }
  2975. else { //외래정보를 기준으로 상단에 반영
  2976. pid = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "pid"));
  2977. indd = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "prcpdd"));
  2978. cretno = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "inptcretno"));
  2979. instcd = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "instcd"));
  2980. orddd = utlf_transNullToEmpty(ds_init_chemolist.getColumn(idx, "prcpdd")); //처방일(orddd)
  2981. //=======================================================================================================
  2982. ordtype = "I"; //--> 'D' (테스트) ==> '상단정보parameter값이 잘못 설정 되었습니다' 로 나옴
  2983. //=======================================================================================================
  2984. }
  2985. //----------(20080913)
  2986. // 상단 세팅을 위한 파라미터
  2987. condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  2988. appf_initPatientInfo(condparam);
  2989. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2990. }
  2991. function fSetPatInitInfo() {
  2992. var sPatSelUseYN="";
  2993. var sParamInfo = "";
  2994. var sPamInfo = "";
  2995. // 환자정보 조회
  2996. ds_data_pamlist.clearData();
  2997. sPamInfo = sysf_getGlobalVariable("paminfo");
  2998. dsf_setCSVToDs("ds_data_pamlist",sPamInfo);
  2999. //환자정보 세팅
  3000. sPid = ds_data_pamlist.getColumn(0, "pid");
  3001. sHngNm = ds_data_pamlist.getColumn(0, "hngnm");
  3002. sHngNm2 = ds_data_pamlist.getColumn(0, "hngnm2");
  3003. sAge = ds_data_pamlist.getColumn(0, "age");
  3004. sIOFlag = ds_data_pamlist.getColumn(0, "ioflag"); // 입원/외래 구분
  3005. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){ // 입원
  3006. sIndd = ds_data_pamlist.getColumn(0, "indd"); // 진료일자
  3007. sOrdDD = "-";
  3008. // } else if(sIOFlag == "O"){ // 외래
  3009. }else if(sIOFlag == "O" || sIOFlag == "S"){ // 외래,건진 20090707 김홍점 김영림 itc 요청서에 의한 반영
  3010. sOrdDD = ds_data_pamlist.getColumn(0, "orddd"); // 진료일자
  3011. sIndd = "-";
  3012. }
  3013. if( !utlf_isNull(sPamInfo) ) {
  3014. ds_cond.setColumn(0, "srch_pid", sPid);
  3015. //cmb_pid.value = sPid;
  3016. }
  3017. sCretNo = ds_data_pamlist.getColumn(0, "cretno"); // 환자 일자별 일련번호
  3018. sInstcd = ds_data_pamlist.getColumn(0, "instcd"); // 기관코드
  3019. sOrdDeptCd = ds_data_pamlist.getColumn(0, "orddeptcd"); // 진료과코드
  3020. sOrdDrId = ds_data_pamlist.getColumn(0, "medispclid"); // 진료의사ID
  3021. if ( gMenuGrupCd == "MG00520000" ){//전문간호 메뉴그룹으로 들어왔을경우
  3022. DutPlceCD = "011";
  3023. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"'&& cdgrupid == '054'");
  3024. sRecFlag = ds_init_gruplist.getColumn(0, "recflag");
  3025. ds_init_gruplist.filter("");
  3026. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  3027. } else if ( gMenuGrupCd == "MG02030000" && DutPlceCD != "015" && DutPlceCD != "021" ){//마취 회복 메뉴그룹으로 들어왔을경우지만 혈당기록에서 띄울경우에는 혈당으로 떠야함.
  3028. DutPlceCD = "900";
  3029. } else if( !utlf_isNull(frmf_getMenuParam()) && utlf_isNull(sParamInfo) ){
  3030. DutPlceCD = frmf_getMenuParam();//20080705 김홍점
  3031. ds_init_gruplist.filter("paramcd=='"+DutPlceCD+"'&& cdgrupid == '054'");
  3032. sRecFlag = ds_init_gruplist.getColumn(0, "recflag");
  3033. ds_init_gruplist.filter("");
  3034. if ( DutPlceCD == "021" && !utlf_isNull(appf_getOperationInfo("oprsrvno")) ){//수술간호 메뉴에서 오픈시
  3035. sRecLnkKey = appf_getOperationInfo("oprsrvno") + "," + sInstcd;
  3036. } else {
  3037. sRecLnkKey = sPid+"," +(sOrdDD == "-" ? sIndd : sOrdDD )+"," +sCretNo+"," +sInstcd;
  3038. }
  3039. }
  3040. }
  3041. //Item 항목 추가 버튼 클릭시 현재 기록항목 Grid Add 이벤트
  3042. function fGirokItemAdd(pSendData){
  3043. if(utlf_isNull(pSendData)){
  3044. return;
  3045. }
  3046. var sRowArr = pSendData.split("▩");
  3047. if(sRowArr.length > 0){
  3048. var sLrgcd = "";
  3049. var sItemcd = "";
  3050. var sLrgnm = "";
  3051. var sItemnm = "";
  3052. var sRecflag = "";
  3053. var sRecovseqno = model.getValue("/root/main/revrInfo/recopkinfo/recovseqno");
  3054. if(sRecovseqno == "" || sRecovseqno == null || sRecovseqno == "undefined"){
  3055. messageBox("기록할 환자 정보가 존재하지 않습니다.", "I000");
  3056. return;
  3057. }
  3058. var iInsertRow = 0;
  3059. for(var i = 0; i < sRowArr.length; i++){
  3060. var sColArr = sRowArr[i].split("▦");
  3061. if(sColArr == "" || sColArr == null || sColArr == "undefined"){
  3062. continue;
  3063. }
  3064. sLrgcd = sColArr[0];
  3065. sItemcd = sColArr[1];
  3066. sLrgnm = sColArr[2];
  3067. sItemnm = sColArr[3];
  3068. sRecflag = sColArr[4];
  3069. var bExistFlag = fExistItem(sLrgcd, sItemcd);
  3070. if(bExistFlag == false || bExistFlag == "false"){
  3071. //항목 추가
  3072. model.setValue("/root/HideData/itemaddlist/mnphrevr/lrgcd" , sLrgcd);
  3073. model.setValue("/root/HideData/itemaddlist/mnphrevr/vsitemcd" , sItemcd);
  3074. model.setValue("/root/HideData/itemaddlist/mnphrevr/recovseqno", sRecovseqno);
  3075. model.setValue("/root/HideData/itemaddlist/mnphrevr/lrgnm" , sLrgnm);
  3076. model.setValue("/root/HideData/itemaddlist/mnphrevr/vsitemnm" , sItemnm);
  3077. iInsertRow = fSearchSameLrgcd(sLrgcd);
  3078. if(iInsertRow == 0){
  3079. datagrid9.addRow(); // 입력할 행 추가.
  3080. var cur_row = datagrid9.row - datagrid9.fixedrows+1; // 추가된 행 번호 가져오기
  3081. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/lrgcd" , sLrgcd);
  3082. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/vsitemcd" , sItemcd);
  3083. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/recovseqno", sRecovseqno);
  3084. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/lrgnm" , sLrgnm);
  3085. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/vsitemnm" , sItemnm);
  3086. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/recflag" , sRecflag);
  3087. }else{
  3088. //debugger;
  3089. datagrid9.insertRow(parseInt(iInsertRow, 10)+2,"below");
  3090. var cur_row = parseInt(iInsertRow, 10) +1;
  3091. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/lrgcd" , sLrgcd);
  3092. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/vsitemcd" , sItemcd);
  3093. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/recovseqno", sRecovseqno);
  3094. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/lrgnm" , sLrgnm);
  3095. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/vsitemnm" , sItemnm);
  3096. model.setValue("/root/main/revrInfo/mnphrevr["+cur_row+"]/recflag" , sRecflag);
  3097. }
  3098. }
  3099. }
  3100. datagrid9.rebuild();
  3101. if(getUserInfo("dutplceinstcd") == yuidoinstcd) { //성모병원만 적용
  3102. //V/S항목 포맷형식 지정 by 박영우 2010-02-22
  3103. var lrgcd = "";
  3104. var vsitemcd = "";
  3105. for(var i = 1; i<getNodesetCount("/root/main/revrInfo/mnphrevr"); i++) {
  3106. lrgcd = model.getValue("/root/main/revrInfo/mnphrevr["+i+"]/lrgcd");
  3107. vsitemcd = model.getValue("/root/main/revrInfo/mnphrevr["+i+"]/vsitemcd");
  3108. if( (lrgcd == "00001" && vsitemcd == "00001") || // lrgcd: PROGRESS, vsitemcd: PROGRESS
  3109. (lrgcd == "00002" && vsitemcd == "00007") || // lrgcd: V/S, vsitemcd: ECG(적용)
  3110. (lrgcd == "00003" && !(vsitemcd == "00001" || vsitemcd == "00006")) || // lrgcd: 호흡관리, vsitemcd: O₂양(L/min), Suction 양 제외!
  3111. (lrgcd == "00008" && (vsitemcd == "00003" || vsitemcd == "00004")) || // lrgcd: 분만관리, vsitemcd: Contraction, Lochia
  3112. // lrgcd: 사정도구, 기본관리, 간호수행, Ventilator, 삽관
  3113. (lrgcd == "00007") || (lrgcd == "00009") || (lrgcd == "00010") || (lrgcd == "00011") || (lrgcd == "00012")
  3114. ) {
  3115. for(var j = 5; j<datagrid9.cols ; j++) {
  3116. datagrid9.cellformat((i+datagrid9.fixedRows-1), j) = "";
  3117. }
  3118. } else {
  3119. for(var j = 5; j<datagrid9.cols ; j++) {
  3120. datagrid9.cellformat((i+datagrid9.fixedRows-1), j) = "999999";
  3121. }
  3122. }
  3123. if( lrgcd == "00002" && vsitemcd == "00005") {
  3124. for(var j = 5; j<datagrid9.cols ; j++) {
  3125. datagrid9.cellformat((i+datagrid9.fixedRows-1), j) = "#.9";
  3126. }
  3127. }
  3128. }
  3129. }
  3130. }
  3131. }
  3132. // 환자정보
  3133. function fGetPatList(){
  3134. var wardcd = ds_tmp_cond.getColumn(0, "wardcd");
  3135. if( utlf_isNull(wardcd) ){
  3136. fSetItem();
  3137. }
  3138. ds_send_reqdata.clearData();
  3139. ds_send_reqdata.copyData(ds_tmp_cond);
  3140. var oParam = {};
  3141. oParam.id = "TRMNI02003";
  3142. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  3143. oParam.method = "reqGetChemoInfo";
  3144. oParam.inds = "reqdata=ds_send_reqdata";
  3145. oParam.outds = "ds_init_chemolist=chemolist";
  3146. oParam.async = false;
  3147. tranf_submit(oParam);
  3148. }
  3149. function fSetItem(){
  3150. //메인에 보여지는 화면 오브젝트를 가져온다.
  3151. var mainObj = frmf_getMainViewer();
  3152. ds_tmp_cond.clearData();
  3153. if(!utlf_isNull(mainObj)) {
  3154. scrid = mainObj.frmf_getScreenID();
  3155. if(scrid == "SMMNI02000") {
  3156. dsf_makeValue(ds_tmp_cond,"wardcd" ,"string",mainObj.ds_main_cond.getColumn(0, "wardcd"));
  3157. dsf_makeValue(ds_tmp_cond,"settingrnid" ,"string",mainObj.ds_main_cond.getColumn(0, "settingrnid"));
  3158. dsf_makeValue(ds_tmp_cond,"orddeptcd" ,"string",mainObj.ds_main_cond.getColumn(0, "orddeptcd"));
  3159. dsf_makeValue(ds_tmp_cond,"medispclid" ,"string",mainObj.ds_main_cond.getColumn(0, "medispclid"));
  3160. dsf_makeValue(ds_tmp_cond,"atdoctid" ,"string",mainObj.ds_main_cond.getColumn(0, "atdoctid"));
  3161. dsf_makeValue(ds_tmp_cond,"indschacptstat" ,"string",mainObj.ds_main_cond.getColumn(0, "indschacptstat"));
  3162. dsf_makeValue(ds_tmp_cond,"prcpdd" ,"string",mainObj.ds_main_cond.getColumn(0, "prcpdd"));
  3163. dsf_makeValue(ds_tmp_cond,"pid" ,"string",mainObj.ds_main_cond.getColumn(0, "pid"));
  3164. dsf_makeValue(ds_tmp_cond,"rsrvinfoflag" ,"string",mainObj.ds_main_cond.getColumn(0, "rsrvinfoflag"));
  3165. dsf_makeValue(ds_tmp_cond,"chk_prcpmixno" ,"string",mainObj.ds_main_cond.getColumn(0, "chk_prcpmixno"));
  3166. dsf_makeValue(ds_tmp_cond,"hngnm" ,"string",mainObj.ds_main_cond.getColumn(0, "hngnm"));
  3167. dsf_makeValue(ds_tmp_cond,"gndrage" ,"string",mainObj.ds_main_cond.getColumn(0, "gndrage"));
  3168. dsf_makeValue(ds_tmp_cond,"rrgstno" ,"string",mainObj.ds_main_cond.getColumn(0, "rrgstno"));
  3169. dsf_makeValue(ds_tmp_cond,"antcncryn" ,"string",mainObj.ds_main_cond.getColumn(0, "antcncryn"));
  3170. dsf_makeValue(ds_tmp_cond,"drprcpetc2" ,"string",mainObj.drprcpetc2);
  3171. }
  3172. }
  3173. }
  3174. // 내환자 셋팅정보 조회
  3175. function fSettingnurid(){
  3176. var wardcd = ds_tmp_cond.getColumn(0, "wardcd");
  3177. if( utlf_isNull(wardcd) ){
  3178. fSetItem();
  3179. }
  3180. ds_send_reqdata.clearData();
  3181. dsf_makeValue(ds_send_reqdata,"wardcd" ,"string",ds_tmp_cond.getColumn(0, "wardcd"));
  3182. var oParam = {};
  3183. oParam.id = "TRMNW10910";
  3184. oParam.service = "wardcareapp.WardCareMngt";
  3185. oParam.method = "reqGetSettingRnList";
  3186. oParam.inds = "req=ds_send_reqdata";
  3187. oParam.outds = "ds_init_settinginfo=settingrn";
  3188. oParam.async = false;
  3189. oParam.callback = "cf_TRMNW10910";
  3190. tranf_submit(oParam);
  3191. if(arErrorCode.pop("TRMNW10910") > -1) {
  3192. var settingnurid = ds_init_settinginfo.lookup("settingrnid", sysf_getUserInfo("userid"), "settingrnid");
  3193. ds_cond.setColumn(0, "settingrnid", settingnurid);
  3194. if( utlf_isNull(settingnurid)){
  3195. ds_cond.setColumn(0, "settingrnid", "");
  3196. cmb_settingrn.index = 0;
  3197. }
  3198. dsf_makeValue(ds_tmp_cond,"settingrnid" , "string", ds_cond.getColumn(0, "settingrnid"));
  3199. }
  3200. }]]></Script>