SMMNP00200.js 142 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177
  1. /* ---------------------------------------------------------------------
  2. 환자 수술전 처치 및 간호상태 확인 사항(SMMNP00200.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2007.05.02
  7. ---------------------------------------------------------------------- */
  8. // XML Data Path
  9. var wDrgCnt = 1 ;
  10. var wDrgIdx = 14 ;
  11. var wDrgFst = true;
  12. var wBolCnt = 1 ;
  13. var wBolIdx = 14 ;
  14. var wBolFst = true;
  15. var wFixGrid = 21 ;
  16. var opIdx = 0;
  17. var xPath_MnphccsrList = "/root/main/MnphccsrData/MnphccsrList" ; // 환자 수술전 처치 및 간호상태 확인 사항 정보
  18. var xPath_allrgspec = "/root/main/MnphccsrData/MnphccsrList/allrgspec" ; // 환자 알레르기 정보
  19. var xPath_testinfospec = "/root/main/MnphccsrData/MnphccsrList/testinfospec" ; // Lab 검사결과
  20. var xPath_sendgoodandmedspec = "/root/main/MnphccsrData/MnphccsrList/sendgoodandmedspec" ; // 보내는 물품/약품 내역
  21. var xPath_infectspec = "/root/main/MnphccsrData/MnphccsrList/infectspec" ; // 환자 감염정보
  22. var xPath_curenurgstatspec = "/root/main/MnphccsrData/MnphccsrList/curenurgstatspec" ; // 환자 수술전 처치 및 간호상태 확인 사항
  23. // XML Format Path
  24. var xPath_Fmt_allrgspec = "/root/init/XmlFormat/allrgspec" ; // 환자 알레르기 정보
  25. var xPath_Fmt_testinfospec = "/root/init/XmlFormat/testinfospec" ; // Lab 검사결과
  26. var xPath_Fmt_sendgoodandmedspec = "/root/init/XmlFormat/sendgoodandmedspec" ; // 보내는 물품/약품 내역
  27. var xPath_Fmt_infectspec = "/root/init/XmlFormat/infectspec" ; // 환자 감염정보
  28. var xPath_Fmt_curenurgstatspec = "/root/init/XmlFormat/curenurgstatspec" ; // 환자 수술전 처치 및 간호상태 확인 사항
  29. var xPath_Fmt_curenurgstatspecT = "/root/temp/XmlFormat/curenurgstatspec" ; // 환자 수술전 처치 및 간호상태 확인 사항(JCI 통증사정추가)2010.04.26 K. J. M
  30. var xPath_Allergy = "/root/main/MnphccsrData/MnphccsrList/allrgspec/AllergyLists" ; // 환자 알레르기 정보
  31. var xPath_Product = "/root/main/MnphccsrData/MnphccsrList/sendgoodandmedspec/ProductLists" ; // 보내는 물품/약품 내역
  32. var xPath_Infection = "/root/main/MnphccsrData/MnphccsrList/infectspec/InfectionLists" ; // 환자 감염정보
  33. var xPath_ItemCheck = "/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists" ; // 환자 수술전 처치 및 간호상태 확인 사항
  34. var xPath_ItemCheckList = "/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList";
  35. var xPathGride = xPath_ItemCheck+"/ItemCheckList";
  36. var xPath_PatLnkInfo = "/root/temp/patlnkinfo"; // 환자 감염정보, 알레르기 정보, Lab 검사결과 정보
  37. // 환자정보 구분
  38. var sPatCls = "O"; //O:수술실, W:병동
  39. var sBool1 = true;
  40. var sBool2 = true;
  41. var sBool3 = true;
  42. var ChkBoxRef = "Pyes Pno Pnothing Syes Sno Snothing Oyes Ono Onothing"; // P:간호단위, S:수술단위
  43. var RefName = ChkBoxRef.split(" ");
  44. var sGBOprsrvno = "";
  45. var sDutDSCFlag = ""; //일일수술실 유무
  46. var sDSCDeptcd = ""; //일일수술실 유무
  47. var sWardOP = "N"; //현장수술 유무
  48. // 동의서 구분
  49. var ITM002 = ""; // 수술동의서
  50. var ITM022 = ""; // PCA동의서
  51. /* ------------------------------------------------- */
  52. /* SMMNP00200_수술전처치 및 간호상태 확인 */
  53. /* On Load 시 Call */
  54. /* ------------------------------------------------- */
  55. /* group : EMR 간호 */
  56. /* ver : 2007.05.03 */
  57. /* by : 최학록 */
  58. /* --------------------------------------------------*/
  59. /* type : function */
  60. /* access : public */
  61. /* desc : xforms-ready시 수행한다 */
  62. /* return : */
  63. /* --------------------------------------------------*/
  64. function fFormInit() {
  65. model.removenode("/root/main/operation");
  66. model.makeNode("/root/main/operation");
  67. model.removenode("/root/main/paminfo");
  68. model.makeNode("/root/main/paminfo");
  69. var sPatInfo = "";
  70. var node = getGlobalVariable("operation");
  71. setCSVToNode("/root/main/operation", node);
  72. var sPid = model.getValue("/root/main/operation/list/pid");
  73. var sGBOprsrvno = model.getValue("/root/main/operation/list/oprsrvno");
  74. fGetNursHardCdInfo("'O11'",getCurrentDate());
  75. if (sPid == "") {
  76. node = getGlobalVariable("paminfo");
  77. setCSVToNode("/root/main/paminfo", node);
  78. sPid = model.getValue("/root/main/paminfo/list/pid");
  79. if (sPid != "") {
  80. model.setValue("/root/init/SendData/pid" , sPid);
  81. model.setValue("/root/init/SendData/instcd", model.getValue("/root/main/paminfo/list/instcd" ));
  82. }
  83. } else {
  84. model.setValue("/root/init/SendData/pid" , sPid);
  85. model.setValue("/root/init/SendData/instcd", model.getValue("/root/main/operation/list/instcd"));
  86. }
  87. if(getNodesetCount("/root/main/operation/list") > 0){
  88. if(model.getValue("/root/main/operation/list/oppatflagcd") == "O"){
  89. txt_nurg.attribute("height") = 60;
  90. grp_bodyinfo.visible = true;
  91. }else{
  92. txt_nurg.attribute("height") = 122;
  93. grp_bodyinfo.visible = false;
  94. }
  95. }else{
  96. if(model.getValue("/root/main/paminfo/list/ioflag") == "O"){
  97. txt_nurg.attribute("height") = 60;
  98. grp_bodyinfo.visible = true;
  99. }else{
  100. txt_nurg.attribute("height") = 122;
  101. grp_bodyinfo.visible = false;
  102. }
  103. }
  104. model.setValue("/root/init/staycls", "");//상단정보 재 조회시 기존 체크된 값 초기화 위해 클리어2010.01.06 K.J.M(대기실, 수술실)
  105. btn_del_grid.disabled = "false";
  106. btn_ins_grid.disabled = "false";
  107. btn_query.disabled = "false";
  108. btn_rgst_tmp.disabled = "false";
  109. btn_rgst_sct.disabled = "false";
  110. //------ Test할때 막는 부분 ------------------------------
  111. if (sPid == "") {
  112. var mainObj = getMainViewer();
  113. messageBox("수술 환자를 ", "C002");
  114. btn_del_grid.disabled = "true";
  115. btn_ins_grid.disabled = "true";
  116. btn_query.disabled = "true";
  117. btn_rgst_tmp.disabled = "true";
  118. btn_rgst_sct.disabled = "true";
  119. // 2007.11.16 간호팀 교육중에 나옴...화면 바로 닫기
  120. if (checkOpener()) {
  121. window.close();
  122. }
  123. // mainObj.javascript.navigate("SMMNP00100"); // 수술마취메인
  124. return;
  125. }
  126. // 2009-03-25 ycd 부서 하드코딩 제어 부분(화면 권한 설정 정보 가져오기)
  127. model.removenode("/root/send");
  128. model.makeValue("/root/send/cdgrupid", "037");
  129. submit("TRMNP00323", false);
  130. if(getNodesetCount("/root/temp/viewctrllist/viewctrlinfo") > 0){
  131. sPatCls = model.getValue("/root/temp/viewctrllist/viewctrlinfo/cdnm");
  132. }else{
  133. sPatCls = "W";
  134. }
  135. Opschedd_Read();
  136. var sCnt = parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM013']")); // 수술전 투약 건수
  137. wDrgIdx = sCnt + 18; // 수술전 투약 건수
  138. wFixGrid += (sCnt - 1);
  139. var sCnt2 = parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM018']")); // 혈액준비사항 건수
  140. wBolIdx = sCnt + sCnt2 + 18; // 혈액준비사항 건수
  141. wFixGrid += (sCnt - 1);
  142. fOpWardCheck(); //
  143. grd_ItemCheckList.refresh();
  144. if ( (sPatCls == "O" || sPatCls == "B") && (model.getValue(xPath_MnphccsrList+"/wardstartdt") == "" || model.getValue(xPath_MnphccsrList+"/wardstarttm") == "")){
  145. messageBox("간호단위에서 기록한 후에 기록이","I006"); // 병실에서 기록한 후에 수술실에서 기록이
  146. if(sPatCls == "O"){
  147. btn_rgst_tmp.disabled = true;
  148. btn_rgst_sct.disabled = true;
  149. }
  150. }
  151. // 현장수술일때 간호단위와 대기실을 같이 기록하게 한다.
  152. sWardOP = model.getValue(xPath_MnphccsrList + "/wardop");
  153. // 일일수술실은 대기실 같이 기록 //sDutDSCFlag, sDSCDeptcd
  154. var dutplcecd = getUserInfo("dutplcecd");
  155. model.removeNode("/root/send/cdgrupid");
  156. model.makeValue("/root/send/cdgrupid", "105");
  157. submit("TRMNP00211");
  158. sDSCDeptcd = model.getValue("/root/temp/dsccode/cdid");
  159. if (dutplcecd == sDSCDeptcd) {
  160. sDutDSCFlag = "Y";
  161. } else {
  162. sDutDSCFlag = "N";
  163. }
  164. btn_dsccopy.visible = false;
  165. if (sDutDSCFlag == "Y" || sWardOP == "Y") {
  166. btn_dsccopy.visible = true;
  167. //일일수술실 환자 수술간호기록의 수술실 퇴실시간 가져와서 병실 도착일시에 반영
  168. var oppatflagcd = model.getValue("/root/main/operation/list/oppatflagcd");
  169. if (oppatflagcd != 'I' || sWardOP == "Y") {
  170. model.removeNode("/root/send/oprsrvno");
  171. model.makeValue("/root/send/oprsrvno", model.getValue(xPath_MnphccsrList+"/oprsrvno"));
  172. submit("TRMNP00212");
  173. var patoutroomdt = model.getValue("/root/temp/patoutroomdt/patoutroomdt");
  174. var wardarrdt = model.getValue(xPath_MnphccsrList + "/wardarrvdt");
  175. if (patoutroomdt == null || patoutroomdt == "000000000000" || patoutroomdt == "") {
  176. } else {
  177. if (wardarrdt == null || wardarrdt == "00000000" || wardarrdt == "") {
  178. var vbYes = messageBox("수술간호기록지 퇴실시간을 '병실 도착일시'로 기록하시겠습니까? ", "Q999");
  179. if (vbYes == 6) {
  180. var outroomdd = patoutroomdt.substr(0, 8);
  181. var outroomtm = patoutroomdt.substr(8, 4);
  182. model.setValue(xPath_MnphccsrList + "/wardarrvdt", outroomdd);
  183. model.setValue(xPath_MnphccsrList + "/wardarrvtm", outroomtm);
  184. ipt_wardarrvdept.value = getUserInfo("dutplcecd");
  185. ipt_wardarrvnursid.value = getUserInfo("userid");
  186. model.setValue(xPath_MnphccsrList + "/nurspartarrvdt", outroomdd + outroomtm);
  187. model.setValue(xPath_MnphccsrList + "/nurspartarrvdept", getUserInfo("dutplcenm"));
  188. model.setValue(xPath_MnphccsrList + "/nurspartarrvnursnm", getUserInfo("usernm"));
  189. model.refresh();
  190. messageBox("병실 도착일시는 인증저장하셔야 기록에 반영됩니다.", "I999");
  191. }
  192. }
  193. }
  194. }
  195. }
  196. var opinrmdd = model.getValue("/root/main/MnphccsrData/MnphccsrList/opinrmdd");
  197. if(opinrmdd == "") {
  198. ipt_wardarrvdt.disabled = true;
  199. ipt_wardarrvtm.disabled = true;
  200. btn_wardarrv.disabled = true;
  201. } else {
  202. ipt_wardarrvdt.disabled = false;
  203. ipt_wardarrvtm.disabled = false;
  204. btn_wardarrv.disabled = false;
  205. }
  206. var node = instance1.selectNodes(grd_famylist.nodeset + "[chkyn='Y']");
  207. if(node.length > 0) {
  208. rdo_smsagreeyn.value="Y";
  209. btn_smsagreeyn.disabled= false;
  210. }
  211. for(i=0; i <= grd_ItemCheckList.rows; i++){
  212. if ( grd_ItemCheckList.valueMatrix( i , grd_ItemCheckList.colRef("ItemCode")) == "ITM002" ){
  213. ITM002 = i;
  214. }else if ( grd_ItemCheckList.valueMatrix( i , grd_ItemCheckList.colRef("ItemCode")) == "ITM022" ){
  215. ITM022 = i;
  216. }
  217. }
  218. }
  219. /* ------------------------------------------------- */
  220. /* type : function */
  221. /* access : public */
  222. /* desc : 병동과 수술실을 Check 수행한다 */
  223. /* return : */
  224. /*
  225. /* 2008-08-04 오전 11:01:30 수술실일 경우 병동 프로세스 작성이 가능하도록 수정 taebum
  226. /* --------------------------------------------------*/
  227. function fOpWardCheck() {
  228. model.setValue("/root/init/gpatcls",sPatCls);
  229. if(getNodesetCount("/root/main/operation/list") > 0){
  230. if(model.getValue("/root/main/operation/list/oppatflagcd") == "O"){
  231. txt_nurg.attribute("height") = 60;
  232. grp_bodyinfo.visible = true;
  233. }else{
  234. txt_nurg.attribute("height") = 122;
  235. grp_bodyinfo.visible = false;
  236. }
  237. }else{
  238. if(model.getValue("/root/main/MnphccsrData/MnphccsrList/inoutflag") == "O"){
  239. txt_nurg.attribute("height") = 60;
  240. grp_bodyinfo.visible = true;
  241. }else{
  242. txt_nurg.attribute("height") = 122;
  243. grp_bodyinfo.visible = false;
  244. }
  245. }
  246. if (sPatCls == "O") { //O:수술실, W:병동
  247. sBool1 = true;
  248. sBool2 = false;
  249. //txt_nurg.disabled = sBool1; //2008-08-04 오전 11:02:28
  250. //txt_nurg.disabled = sBool2; //2008-08-07 오전 9:02:09 taebum 주석처리
  251. txt_nurg.disabled = true; //2008-08-07 오전 9:02:47 taebum add
  252. btn_pcainput.disabled = true;
  253. txt_oper.disabled = false;
  254. bbt_patarrv.disabled = false;
  255. inp_patarrvdt.disabled = false;
  256. inp_patarrvtm.disabled = false;
  257. ipt_oppatbdtp.disabled = true;
  258. ipt_oppatbdwt.disabled = true;
  259. ipt_oppatbdht.disabled = true;
  260. ipt_oppatsbp.disabled = true;
  261. ipt_oppatdbp.disabled = true;
  262. //2008-09-06 오후 4:25:54 대기실, 수술실일경우 행추가, 행삭제 disable 처리
  263. btn_ins_grid.disabled = true;
  264. btn_del_grid.disabled = true;
  265. } else {
  266. sBool1 = false;
  267. sBool2 = true ;
  268. txt_nurg.disabled = false;
  269. btn_pcainput.disabled = false;
  270. txt_oper.disabled = true;
  271. ipt_oppatbdtp.disabled = false;
  272. ipt_oppatbdwt.disabled = false;
  273. ipt_oppatbdht.disabled = false;
  274. ipt_oppatsbp.disabled = false;
  275. ipt_oppatdbp.disabled = false;
  276. if (sPatCls == "B") { // 분만실, DSC
  277. chk_stay.disabled = false;
  278. chk_oper.disabled = false;
  279. }else{
  280. chk_stay.disabled = true;
  281. chk_oper.disabled = true; //2008-07-18 오전 10:09:51 taebum 17일 전수테스트 결과 수정사항
  282. }
  283. bbt_wardstart.disabled = false;
  284. inp_wardstartdt.disabled = false;
  285. inp_wardstarttm.disabled = false;
  286. //병동 도착 일시 활성/비활성
  287. ipt_wardarrvdt.disabled = false;
  288. ipt_wardarrvtm.disabled = false;
  289. btn_wardarrv.disabled = false;
  290. bbt_patarrv.disabled = true;
  291. inp_patarrvdt.disabled = true;
  292. inp_patarrvtm.disabled = true;
  293. }
  294. if (sPatCls == "O") { //O:수술실, W:병동
  295. var chk_Syes = model.getValue(xPath_curenurgstatspec + "/ItemCheckLists/ItemCheckList[" + (grd_ItemCheckList.fixedrows+1) + "]/Syes");
  296. var chk_Sno = model.getValue(xPath_curenurgstatspec + "/ItemCheckLists/ItemCheckList[" + (grd_ItemCheckList.fixedrows+1) + "]/Sno");
  297. var chk_Snothing = model.getValue(xPath_curenurgstatspec + "/ItemCheckLists/ItemCheckList[" + (grd_ItemCheckList.fixedrows+1) + "]/Snothing");
  298. var chk_Pyes = model.getValue(xPath_curenurgstatspec + "/ItemCheckLists/ItemCheckList[" + (grd_ItemCheckList.fixedrows+1) + "]/Pyes");
  299. var chk_Pno = model.getValue(xPath_curenurgstatspec + "/ItemCheckLists/ItemCheckList[" + (grd_ItemCheckList.fixedrows+1) + "]/Pno");
  300. var chk_Pnothing = model.getValue(xPath_curenurgstatspec + "/ItemCheckLists/ItemCheckList[" + (grd_ItemCheckList.fixedrows+1) + "]/Pnothing");
  301. sBool1 = true; //2008-08-07 오전 9:04:30 taebum add
  302. if ( chk_Syes == "true" || chk_Sno == "true" || chk_Snothing == "true") {
  303. sBool2 = true;
  304. sBool3 = false;
  305. chk_oper.value = "2";
  306. fStayOperCheck();
  307. } else if ( chk_Pyes == "false" && chk_Pno == "false" && chk_Pnothing == "false") {
  308. sBool2 = true;
  309. SBool3 = true;
  310. } else {
  311. sBool2 = false;
  312. sBool3 = true;
  313. chk_stay.value = "1";
  314. fStayOperCheck();
  315. }
  316. }
  317. fControlAttribute(grd_ItemCheckList);
  318. }
  319. /* ------------------------------------------------- */
  320. /* type : function */
  321. /* access : public */
  322. /* desc : Grid Attribute Control 시 수행한다 */
  323. /* return : */
  324. /* --------------------------------------------------*/
  325. function fControlAttribute(pGrid) {
  326. var opchkyn="";
  327. var onochkyn="";
  328. for (var iRow = pGrid.fixedrows; iRow <= pGrid.rows; iRow++){
  329. opchkyn = model.getValue(pGrid.nodeset + "[" + (iRow-1) + "]/opchkyn");
  330. onochkyn = model.getValue(pGrid.nodeset + "[" + (iRow-1) + "]/onochkyn");
  331. pGrid.isReadOnly(iRow, pGrid.colRef("Pyes"), iRow, pGrid.colRef("Pnothing"))=sBool1;
  332. pGrid.isReadOnly(iRow, pGrid.colRef("Syes"), iRow, pGrid.colRef("Snothing"))=sBool2;
  333. pGrid.isReadOnly(iRow, pGrid.colRef("Oyes"), iRow, pGrid.colRef("Ono"))=sBool3;
  334. if(sBool3 == false && (onochkyn == "N" || onochkyn == "" || onochkyn == null) ) {
  335. pGrid.isReadOnly(iRow, pGrid.colRef("Onothing"), iRow, pGrid.colRef("Onothing"))= false;
  336. } else {
  337. pGrid.isReadOnly(iRow, pGrid.colRef("Onothing"), iRow, pGrid.colRef("Onothing"))=true;
  338. }
  339. if(opchkyn == "N") {
  340. pGrid.isReadOnly(iRow, pGrid.colRef("Oyes"), iRow, pGrid.colRef("Ono"))= true;
  341. }
  342. if(pGrid.row == 1 && pGrid.col == pGrid.colRef("Oyes") && opchkyn=="N") {
  343. pGrid.valueMatrix(iRow, pGrid.colRef("Oyes")) = false;
  344. }
  345. }
  346. grd_ItemCheckList.fixedcellcheckbox(1,pGrid.colRef("Pyes")) = ((sBool1) ? "false" : "true");
  347. grd_ItemCheckList.fixedcellcheckbox(1,pGrid.colRef("Syes")) = ((sBool2) ? "false" : "true");
  348. grd_ItemCheckList.fixedcellcheckbox(1,pGrid.colRef("Oyes")) = ((sBool3) ? "false" : "true");
  349. }
  350. /* ------------------------------------------------- */
  351. /* type : function */
  352. /* access : public */
  353. /* desc : 수술예약일시 가져오기 */
  354. /* param : 환자번호 */
  355. /* return : */
  356. /* --------------------------------------------------*/
  357. function Opschedd_Read() {
  358. // cmb_opdd.cmb_opdd.removeChild;
  359. var indexflag = "Y";
  360. var cnt = 0;
  361. model.removenode("/root/send");
  362. model.makeValue("/root/send/pid" , model.getValue("/root/init/SendData/pid") );
  363. model.makeValue("/root/send/instcd" , model.getValue("/root/init/SendData/instcd"));
  364. model.makeValue("/root/send/patposcls", sPatCls);
  365. submit("TRMNP00201"); // 환자 수술전 처치 및 간호상태 확인 사항 수술예약일시
  366. var sGBOprsrvno = model.getValue("/root/main/operation/list/oprsrvno");
  367. //2008-11-26 오후 7:51:30 taebum 협진 수술일 경우에는 주수술예약번호를 setting함.
  368. var sGBMainOprsrvno = model.getValue("/root/main/operation/list/mainoprsrvno");
  369. if(sGBMainOprsrvno != "" && sGBMainOprsrvno != null && sGBMainOprsrvno != "undefined" && sGBMainOprsrvno != "-" && sGBMainOprsrvno != sGBOprsrvno){
  370. sGBOprsrvno = sGBMainOprsrvno;
  371. }
  372. if(sGBOprsrvno != null && sGBOprsrvno != "" && sGBOprsrvno != "undefined"){
  373. model.setValue("/root/init/SendData/oprsrvno",sGBOprsrvno);
  374. cmb_opdd.refresh();
  375. }else{
  376. if(getNodesetCount("/root/main/OpddInfoList/OpddInfo") > 0 &&
  377. model.getValue("/root/main/OpddInfoList/OpddInfo[opschedd = "+ getCurrentDate() +"]/oprsrvno") != "" ){
  378. cmb_opdd.value = model.getValue("/root/main/OpddInfoList/OpddInfo[opschedd = "+ getCurrentDate() +"]/oprsrvno");
  379. }else{
  380. //alert(model.getValue("/root/main/OpddInfoList/OpddInfo[indexflag = "+ indexflag +"]/oprsrvno"));
  381. var nodeCnt = getNodesetCount("/root/main/OpddInfoList/OpddInfo");
  382. for( var i = 1; i <= nodeCnt; i++ ) {
  383. if( model.getValue("/root/main/OpddInfoList/OpddInfo["+ i +"]/indexflag") == "Y" ) {
  384. cmb_opdd.value = model.getValue("/root/main/OpddInfoList/OpddInfo["+ i +"]/oprsrvno");
  385. cnt++;
  386. }
  387. }
  388. if( cnt < 1 ) {//선택된 수술예약일시가 없으면 매처음 번호를 셋팅
  389. cmb_opdd.value = model.getValue("/root/main/OpddInfoList/OpddInfo[1]/oprsrvno");
  390. }
  391. //cmb_opdd.value = model.getValue("/root/main/OpddInfoList/OpddInfo[indexflag = "+ "Y" +"]/oprsrvno");
  392. //cmb_opdd.selectedIndex = 0;
  393. }
  394. }
  395. Query_Opdd_All();
  396. ;
  397. }
  398. /* ------------------------------------------------- */
  399. /* SMMNP00200_수술전처치 및 간호상태 확인 */
  400. /* 조회버튼 Click시 Call */
  401. /* ------------------------------------------------- */
  402. /* group : EMR 간호 */
  403. /* ver : 2007.05.03 */
  404. /* by : 최학록 */
  405. /* --------------------------------------------------*/
  406. /* type : function */
  407. /* access : public */
  408. /* desc : GRID 한줄 추가 */
  409. /* param : */
  410. /* return : */
  411. /* --------------------------------------------------*/
  412. function Query_Opdd_All(pFlag) {
  413. opIdx = cmb_opdd.selectedIndex + 1;
  414. var cPath = "/root/main/OpddInfoList/OpddInfo["+opIdx+"]";
  415. //=======================================================================================================
  416. //2008-07-07 오후 7:52:27 taebum 협진 수술을 할 경우 주수술일 경우에만 기록을 작성 할수 있도록 변경함.
  417. var sTempMainoprsrvno = model.getValue(cPath+ "/mainoprsrvno");
  418. var sTempOprsrvno = model.getValue(cPath+ "/oprsrvno" );
  419. if( (sTempMainoprsrvno != "-") && (sTempMainoprsrvno != sTempOprsrvno)){
  420. messageBox("협진수술 ","E008");
  421. btn_del_grid.disabled = "true";
  422. btn_ins_grid.disabled = "true";
  423. btn_query.disabled = "true";
  424. btn_rgst_tmp.disabled = "true";
  425. btn_rgst_sct.disabled = "true";
  426. window.close();
  427. }else{
  428. btn_del_grid.disabled = "false";
  429. btn_ins_grid.disabled = "false";
  430. btn_query.disabled = "false";
  431. btn_rgst_tmp.disabled = "false";
  432. btn_rgst_sct.disabled = "false";
  433. }
  434. //=======================================================================================================
  435. model.makeValue("/root/send/pid" , model.getValue(cPath+ "/pid" ));
  436. model.makeValue("/root/send/instcd" , model.getValue(cPath+ "/instcd" ));
  437. model.makeValue("/root/send/oprsrvno" , model.getValue(cPath+ "/oprsrvno" ));
  438. model.makeValue("/root/send/ophistno" , model.getValue(cPath+ "/ophistno" ));
  439. model.makeValue("/root/send/opbfcureseqno", model.getValue(cPath+ "/opbfcureseqno"));
  440. submit("TRMNP00202"); // 환자 수술전 처치 및 간호상태 확인 사항
  441. var sSmsagreeyn = model.getValue("/root/main/MnphccsrData/MnphccsrList/smsagreeyn");
  442. if(sSmsagreeyn == "Y") {
  443. btn_smsagreeyn.disabled = false;
  444. } else {
  445. btn_smsagreeyn.disabled = true;
  446. }
  447. var nodelist = instance1.selectNodes("/root/main/MnphccsrData/MnwmpfifList");
  448. var nodePath ="/root/main/MnphccsrData/MnphccsrList/famyinfo/famylist";
  449. model.makeNode(nodePath);
  450. var desnode = instance1.selectSingleNode(nodePath);
  451. if(nodelist.length > 0) {
  452. while(node = nodelist.nextNode()) {
  453. model.duplicate(desnode, node);
  454. }
  455. }
  456. var check = grd_ItemCheckList.rows;
  457. var popwh1 = 0;
  458. var popwh2 = 0;
  459. var popwh3 = 0;
  460. var newflag = 0;
  461. // 20110704 wify 경북대병원 해당무 checkbox 추가로 인한 node추가
  462. for(var i = 1 ; i < grd_ItemCheckList.rows; i++) {
  463. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemInfoBk")) == "수술동의서") {
  464. popwh1 = i;
  465. }
  466. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemInfoBk")) == "알러지여부") {
  467. popwh2 = i;
  468. }
  469. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemInfoBk")) == "PCA동의서") {
  470. popwh3 = i;
  471. newflag = "Y";
  472. }
  473. }
  474. if( model.getValue(xPath_MnphccsrList+"/opbfcureseqno") == "-") { // 환자 수술전 처치 및 간호상태 확인사항 자료가 없는 경우
  475. model.copyNode(xPath_allrgspec , xPath_Fmt_allrgspec ); // 환자 알레르기 정보
  476. model.copyNode(xPath_testinfospec , xPath_Fmt_testinfospec ); // Lab 검사결과
  477. model.copyNode(xPath_sendgoodandmedspec, xPath_Fmt_sendgoodandmedspec); // 보내는 물품/약품 내역
  478. model.copyNode(xPath_curenurgstatspec , xPath_Fmt_curenurgstatspec ); // 환자 수술전 처치 및 간호상태 확인 사항
  479. model.makeValue(xPath_MnphccsrList+"/stat", "I");
  480. fSrchPatLnkInfo("all"); // 알레르기 정보
  481. for(var i = 1 ; i < grd_ItemCheckList.rows; i++) {
  482. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemInfoBk")) == "수술동의서") {
  483. popwh1 = i;
  484. }
  485. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemInfoBk")) == "알러지여부") {
  486. popwh2 = i;
  487. }
  488. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemInfoBk")) == "PCA동의서") {
  489. popwh3 = i;
  490. }
  491. }
  492. grd_AllergyList.refresh();
  493. grd_ItemCheckList.refresh();
  494. }else {
  495. fSrchPatLnkInfo("all"); // 알레르기 정보
  496. model.makeValue(xPath_MnphccsrList+"/stat" , "U" );
  497. // 2008-10-05 오전 11:08:56 taebum 2번째 확인내역 상세정보가 merge 되는 현상 처리로 추가함.
  498. grd_ItemCheckList.mergeCells = "bycol";
  499. grd_ItemCheckList.mergeCol(0) = true ;
  500. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("ItemInfoBk")) = true;
  501. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("ItemInfo")) = false;
  502. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pyes")) = false;
  503. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pno")) = false;
  504. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pnothing")) = false;
  505. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Syes")) = false;
  506. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Sno")) = false;
  507. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Snothing")) = false;
  508. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Oyes")) = false;
  509. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Ono")) = false;
  510. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Onothing")) = false;
  511. }
  512. //2008-10-30 오전 9:47:40 taebum curenurgstatspec xml column에 curenurgstatspec 최상위
  513. //노드가 생기는 버그가 발생되어 curenurgstatspec노드가 있을 경우 제거 작업
  514. //2008-10-31 오후 7:11:36 taebum 의뢰내역이 없을경우 script오류 수정
  515. if(model.getValue("/root/init/SendData/oprsrvno") != "" &&
  516. model.getValue("/root/init/SendData/oprsrvno") != "undefined" &&
  517. model.getValue("/root/init/SendData/oprsrvno") != null){
  518. var sTmpCheckNode = instance1.selectSingleNode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec");
  519. if(sTmpCheckNode != null && sTmpCheckNode.childNodes(0).nodeName == "curenurgstatspec"){
  520. model.copyNode("/root/init/errorNode", "/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/curenurgstatspec");
  521. model.removenode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/curenurgstatspec");
  522. model.copyNode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec", "/root/init/errorNode");
  523. }
  524. }else{
  525. messageBox("수술예약일시가 존재하지 않습니다.","I000"); // 병실에서 기록한 후에 수술실에서 기록이
  526. btn_rgst_tmp.disabled = true;
  527. btn_rgst_sct.disabled = true;
  528. window.close();
  529. return;
  530. }
  531. fRowSyle(grd_ItemCheckList);
  532. var ordtype= model.getValue(xPath_MnphccsrList+"/ordtype" );
  533. var wardtel="";
  534. if(ordtype == "E") {
  535. wardtel = "(t." + model.getValue(xPath_MnphccsrList+"/wardtel" ) + ")";
  536. } else {
  537. wardtel = "";
  538. }
  539. var sPatInfo = model.getValue(xPath_MnphccsrList+"/wardcd" ) + " " // 병동
  540. + model.getValue(xPath_MnphccsrList+"/roomcd" ) + wardtel + " " // 병동
  541. + model.getValue(xPath_MnphccsrList+"/patname2" ) + " " // 환자명
  542. + model.getValue(xPath_MnphccsrList+"/sa" ) + " " // SA
  543. + model.getValue(xPath_MnphccsrList+"/pid" ) ; // 등록번호
  544. var sPatInfo2 = "";
  545. // 2008.02.21 변경
  546. if (sPatCls == "O") { //O:수술실, W:병동
  547. sPatInfo2= model.getValue(xPath_MnphccsrList+"/perdeptnm") + " "; // 집도과
  548. } else {
  549. sPatInfo2= model.getValue(xPath_MnphccsrList+"/depthngnm") + " "; // 진료과
  550. }
  551. sPatInfo2 += model.getValue(xPath_MnphccsrList+"/oproomnm" ) + " " // 수술실명
  552. + model.getValue(xPath_MnphccsrList+"/perfdridnm") + " " // 집도의
  553. + model.getValue(xPath_MnphccsrList+"/opcdnm" ) ; // 수술명
  554. model.setValue("/root/init/SendData/patinfo" ,sPatInfo);
  555. model.setValue("/root/init/SendData/patinfo2",sPatInfo2);
  556. if (model.getValue(xPath_MnphccsrList+"/certno") != ""){ // 인증저장후 자료 처리
  557. // if (sPatCls != "O") { //O:수술실, W:병동
  558. btn_rgst_tmp.disabled = true;
  559. // }
  560. }
  561. // 20110711 wify 데이터 없는 row 제거
  562. // for(var i = 1 ; i < grd_ItemCheckList.rows; i++) {
  563. // if ( instance1.selectSingleNode(grd_ItemCheckList.nodeset + "["+ i +"]/ItemInfoBk") == null) {
  564. // grd_ItemCheckList.deleteRow(i);
  565. // }
  566. // if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemInfoBk")) == "") {
  567. // model.removeNodeset(grd_ItemCheckList.nodeset + "[" + i + "]/Snothing");
  568. // model.removeNodeset(grd_ItemCheckList.nodeset + "[" + i + "]/Onothing");
  569. // alert(i);
  570. // grd_ItemCheckList.deleteRow(i+1);
  571. // }
  572. // }
  573. // grd_ItemCheckList.cellstyle("background-image" , 3, 1) = "../../../com/commonweb/images/icon_startend.gif";
  574. // grd_ItemCheckList.cellstyle("background-position", 3, 1) = "center right";
  575. grd_ItemCheckList.cellstyle("background-image" , popwh1, 1) = "../../../com/commonweb/images/icon_startend.gif";
  576. grd_ItemCheckList.cellstyle("background-position", popwh1, 1) = "center right";
  577. // grd_ItemCheckList.cellstyle("background-image" , 5, 1) = "../../../com/commonweb/images/icon_startend.gif";
  578. // grd_ItemCheckList.cellstyle("background-position", 5, 1) = "center right";
  579. //2008-09-09 오전 10:07:40 taebum 12 알러지 여부 이미지버튼 추가
  580. // if( getNodesetCount("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList") == 22 ) { //통증사정이 포함되어 있으면
  581. grd_ItemCheckList.cellstyle("background-image" , 14, 1) = "../../../com/commonweb/images/icon_startend.gif";
  582. grd_ItemCheckList.cellstyle("background-position", 14, 1) = "center right";
  583. // grd_ItemCheckList.cellstyle("background-image" , popwh2, 1) = "../../../com/commonweb/images/icon_startend.gif";
  584. // grd_ItemCheckList.cellstyle("background-position", popwh2, 1) = "center right";
  585. //alert(grd_ItemCheckList.rows);
  586. if ( grd_ItemCheckList.valueMatrix((grd_ItemCheckList.rows - 1), grd_ItemCheckList.colRef("ItemCode")) != "ITM022") {
  587. // grd_ItemCheckList.deleteRow(grd_ItemCheckList.rows - 1);
  588. if(check != "2") {
  589. // grd_ItemCheckList.deleteRow(grd_ItemCheckList.rows);
  590. } else if (check == "2") {
  591. grd_ItemCheckList.cellstyle("background-image" , 23, 1) = "../../../com/commonweb/images/icon_startend.gif";
  592. grd_ItemCheckList.cellstyle("background-position", 23, 1) = "center right";
  593. }
  594. } else {
  595. grd_ItemCheckList.cellstyle("background-image" , grd_ItemCheckList.rows - 1, 1) = "../../../com/commonweb/images/icon_startend.gif";
  596. grd_ItemCheckList.cellstyle("background-position", grd_ItemCheckList.rows - 1, 1) = "center right";
  597. }
  598. // grd_ItemCheckList.cellstyle("background-image" , 23, 1) = "../../../com/commonweb/images/icon_startend.gif";
  599. // grd_ItemCheckList.cellstyle("background-position", 23, 1) = "center right";
  600. // }else {
  601. // grd_ItemCheckList.cellstyle("background-image" , 14, 1) = "../../../com/commonweb/images/icon_startend.gif";
  602. // grd_ItemCheckList.cellstyle("background-position", 14, 1) = "center right";
  603. // }
  604. opt_patinfo.refresh();
  605. opt_patinfo2.refresh();
  606. //2008-09-09 오전 10:41:12 전자 인증시 해당없음을 제외한 내역만 인증하기 위한 Temp Node default 설정
  607. model.removenode("/root/Hide");
  608. model.makeNode("/root/Hide");
  609. model.makeNode("/root/Hide/signstatspec");
  610. model.makeNode("/root/Hide/org_statspec");
  611. //combobox 변경시 저장 버튼 활성화 비활성화 관련.
  612. if(pFlag == "changed"){
  613. var sCnt = parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM013']")); // 수술전 투약 건수
  614. wDrgIdx = sCnt + 18; // 수술전 투약 건수
  615. wFixGrid += (sCnt - 1);
  616. var sCnt2 = parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM018']")); // 혈액준비사항 건수
  617. wBolIdx = sCnt + sCnt2 + 18; // 혈액준비사항 건수
  618. wFixGrid += (sCnt - 1);
  619. fOpWardCheck();
  620. grd_ItemCheckList.refresh();
  621. if ((sPatCls == "O" || sPatCls == "B") && (model.getValue(xPath_MnphccsrList+"/wardstartdt") == "" || model.getValue(xPath_MnphccsrList+"/wardstarttm") == "")){
  622. messageBox("간호단위에서 기록한 후에 기록이","I006"); // 병실에서 기록한 후에 수술실에서 기록이
  623. btn_rgst_tmp.disabled = true;
  624. btn_rgst_sct.disabled = true;
  625. }
  626. }
  627. }
  628. /* ------------------------------------------------- */
  629. /* group : EMR 간호 */
  630. /* ver : 2007.05.03 */
  631. /* by : 최학록 */
  632. /* --------------------------------------------------*/
  633. /* type : function */
  634. /* access : public */
  635. /* desc : GRID 한줄 추가 */
  636. /* param : pGridNm : DataGrid Name */
  637. /* pLine : DataGrid Row */
  638. /* return : */
  639. /* --------------------------------------------------*/
  640. function fAddItem(pGridNm,pLine){
  641. GridNm = eval(pGridNm)
  642. if (pLine == '') {
  643. GridNm.addRow();
  644. }
  645. else {
  646. GridNm.addItem(pLine, "after");
  647. }
  648. }
  649. /* --------------------------------------------------*/
  650. /* type : function */
  651. /* access : public */
  652. /* desc : GRID 한줄 삭제 */
  653. /* param : pGridNm : DataGrid Name */
  654. /* pLine : DataGrid Row */
  655. /* return : */
  656. /* --------------------------------------------------*/
  657. function fDeleteItem(pGridNm,pLine){
  658. GridNm = eval(pGridNm)
  659. if (pLine == '') {
  660. GridNm.removeItem();
  661. }
  662. else {
  663. GridNm.deleteItem(pLine);
  664. }
  665. }
  666. /* --------------------------------------------------*/
  667. /* type : function */
  668. /* access : public */
  669. /* desc : GRID CheckBox 값변경 */
  670. /* param : pGridNm : DataGrid Name */
  671. /* pRow : DataGrid Row */
  672. /* pCol : DataGrid Col */
  673. /* pTrueFase : 논린값 */
  674. /* return : */
  675. /* --------------------------------------------------*/
  676. function fCheckBox(pGridNm,pRow,pCol,pTrueFase){
  677. pGridNm.valueMatrix(pRow,pCol) = pTrueFase;
  678. }
  679. /* ------------------------------------------------- */
  680. /* type : function */
  681. /* access : public */
  682. /* desc : GRID CheckBox 값변경 */
  683. /* param : pGridNm : DataGrid Name */
  684. /* return : */
  685. /* -------------------------------------------------*/
  686. function fGridValueChangedCheckBox(pGridNm){
  687. var wTrueFase
  688. GridNm = eval(pGridNm)
  689. if (GridNm.col > 2) {
  690. wTrueFase = GridNm.valueMatrix(GridNm.row ,GridNm.col);
  691. if (wTrueFase == "true") {
  692. switch(GridNm.col){
  693. case GridNm.colRef("Pyes") :
  694. if( GridNm.row == "1" ) { // 전체 '예' 체크 시
  695. fCheckBox(GridNm, ITM002 ,GridNm.colRef("Pyes"),"false");
  696. fCheckBox(GridNm, ITM022 ,GridNm.colRef("Pyes"),"false");
  697. }
  698. fCheckBox(GridNm, GridNm.row ,GridNm.colRef("Pno"),"false");
  699. fCheckBox(GridNm, GridNm.row ,GridNm.colRef("Pnothing"),"false");
  700. break;
  701. case GridNm.colRef("Pno") :
  702. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Pyes"),"false");
  703. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Pnothing"),"false");
  704. break;
  705. case GridNm.colRef("Pnothing") :
  706. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Pyes"),"false");
  707. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Pno"),"false");
  708. break;
  709. case GridNm.colRef("Syes") :
  710. if( GridNm.row == "1" ) { // 전체 '예' 체크 시
  711. fCheckBox(GridNm, ITM002 ,GridNm.colRef("Syes"),"false");
  712. fCheckBox(GridNm, ITM022 ,GridNm.colRef("Syes"),"false");
  713. }
  714. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Sno"),"false");
  715. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Snothing"),"false");
  716. break;
  717. case GridNm.colRef("Sno") :
  718. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Syes"),"false");
  719. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Snothing"),"false");
  720. break;
  721. case GridNm.colRef("Snothing") :
  722. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Syes"),"false");
  723. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Sno"),"false");
  724. break;
  725. case GridNm.colRef("Oyes") :
  726. if( GridNm.row == "1" ) { // 전체 '예' 체크 시
  727. fCheckBox(GridNm, ITM002 ,GridNm.colRef("Oyes"),"false");
  728. fCheckBox(GridNm, ITM022 ,GridNm.colRef("Oyes"),"false");
  729. }
  730. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Ono"),"false");
  731. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Onothing"),"false");
  732. break;
  733. case GridNm.colRef("Ono") :
  734. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Oyes"),"false");
  735. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Onothing"),"false");
  736. break;
  737. case GridNm.colRef("Onothing") :
  738. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Oyes"),"false");
  739. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("Ono"),"false");
  740. break;
  741. }
  742. }
  743. }
  744. }
  745. /* ---------------------------------------------------------------*/
  746. /* type : function */
  747. /* access : public */
  748. /* desc : 환자 수술전 처치 및 간호상태 확인 사항 INSERT저장 */
  749. /* param : EMR.MNPHCCSR 전체 */
  750. /* return : */
  751. /* ---------------------------------------------------------------*/
  752. function fSave(pFlag){
  753. model.makeValue("/root/send/oprsrvno", model.getValue("/root/init/SendData/oprsrvno"));
  754. var sPid = model.getValue(xPath_MnphccsrList + "/pid" ); // 01 환자번호
  755. var sOprsrvno = model.getValue(xPath_MnphccsrList + "/oprsrvno" ); // 02 의뢰번호(년도(4) + 일련번호(6))
  756. var sOphistno = model.getValue(xPath_MnphccsrList + "/ophistno" ); // 03 예약번호에 따른 이력번호
  757. var sInstcd = model.getValue(xPath_MnphccsrList + "/instcd" ); // 04 원무외래/입원등록정보 PK
  758. var sOprsrvdd = model.getValue(xPath_MnphccsrList + "/oprsrvdd" ); // 05 수술일시:수술이확정된 일시
  759. var sOprsrvtmcd = model.getValue(xPath_MnphccsrList + "/oprsrvtmcd" ); // 06 수술예약시간코드
  760. var sInoutflag = model.getValue(xPath_MnphccsrList + "/inoutflag" ); // 07 외래입원구분
  761. var sOpPatflagcd = model.getValue("/root/main/operation/list/oppatflagcd"); // 11 환자구분
  762. var sOrddd = model.getValue(xPath_MnphccsrList + "/orddd" ); // 08 진료일자
  763. var sOrddeptcd = model.getValue(xPath_MnphccsrList + "/orddeptcd" ); // 09 진료부서
  764. var sInday = model.getValue(xPath_MnphccsrList + "/inday" ); // 10 입원일자
  765. var sEtctel1 = model.getValue(xPath_MnphccsrList + "/etctel1" ); // 47 보호자연락처1
  766. var sEtctel2 = model.getValue(xPath_MnphccsrList + "/etctel2" ); // 48 보호자연락처2
  767. var sSmsagreeyn = model.getValue(xPath_MnphccsrList + "/smsagreeyn" ); // 49 SMS동의여부
  768. var sTempStaycls = model.getValue("/root/init/staycls");
  769. var message = model.getValue(ipt_msginfo.attribute("ref"));
  770. if(sSmsagreeyn == "Y") {
  771. //if(message == "" || message == null) {
  772. // messageBox("SMS동의시에는 SMS문구를 입력하셔야합니다.", "E");
  773. // return
  774. //}
  775. }
  776. if( (sInoutflag != sOpPatflagcd)&&(sOpPatflagcd != "") ) {
  777. //기록지데이터랑 스케쥴 데이터랑 틀릴경우 스케쥴데이터로 처리 2010.03.10 K. J. M
  778. //수술준비확인 기록이후 외래에서 입원으로 스케쥴이 변경된경우 점검리스트 처방 콤보가 제대로 끌려오지 않음
  779. sInoutflag = sOpPatflagcd;
  780. }
  781. if(pFlag == "C" && ( sPatCls == "W" || sPatCls == "B" )) {
  782. if (model.getValue(xPath_MnphccsrList + "/wardstartdt") == "" || model.getValue(xPath_MnphccsrList + "/wardstarttm")=="") {
  783. messageBox("병동출발일시를 입력하십시요!", "I000");
  784. return;
  785. } else {
  786. if (model.getValue(xPath_MnphccsrList + "/wardstarttm").length < 4 ) {
  787. messageBox("병동출발일시를 입력하십시요!", "I000");
  788. return;
  789. }
  790. }
  791. }
  792. // 인증저장된 병동 환자의 경우 CP 기록이랑 연결한다 2012.11.22 KJS
  793. if(pFlag == "C" && ( sPatCls == "W" || sPatCls == "B" )) {
  794. fNrCpRecord();
  795. }
  796. if (model.getValue(xPath_MnphccsrList + "/patarrvdt" ) != "" &&
  797. model.getValue(xPath_MnphccsrList + "/wardstartdt") == "" ){
  798. messageBox("병동출발일시를 입력하십시요!", "I000");
  799. //messageBox("병동출발일시를 ","C001" );
  800. model.setValue(xPath_MnphccsrList + "/patarrvdt","");
  801. model.setValue(xPath_MnphccsrList + "/patarrvtm","");
  802. model.refresh();
  803. return;
  804. }
  805. if( pFlag == "C" && ( sPatCls == "O" || (sPatCls == "B" && ( chk_stay.value== "1" || chk_oper.value == "2" ))) ) {
  806. if(model.getValue(xPath_MnphccsrList + "/patarrvdt") == "" || model.getValue(xPath_MnphccsrList + "/patarrvtm")=="") {
  807. messageBox("환자도착일시를 입력하십시요!", "I000");
  808. return;
  809. }
  810. if(model.getValue(xPath_MnphccsrList + "/patarrvtm").length < 4) {
  811. messageBox("환자도착일시를 입력하십시요!", "I000");
  812. return;
  813. }
  814. if(model.getValue("/root/init/staycls") == "") {
  815. messageBox("환자위치(대기실,수술실)를 선택하십시요!", "I000");
  816. return;
  817. }
  818. if(model.getValue("/root/init/staycls") == "2" && model.getValue(xPath_MnphccsrList + "/staychfid") == "") {
  819. messageBox("대기실 기록을 확인하십시요!", "I000");
  820. return;
  821. }
  822. }
  823. var sOpcnfmtm = model.getValue(xPath_MnphccsrList + "/opcnfmtm").replace(':', '');
  824. var sOpcnfmdt = sOprsrvdd // 05 수술일시:수술이확정된 일시
  825. + sOpcnfmtm.substr(0,4); // 수술일시:수술이확정시간
  826. var sWardstartdttm = model.getValue(xPath_MnphccsrList + "/wardstartdt" )
  827. + model.getValue(xPath_MnphccsrList + "/wardstarttm" ); // 11 병동출발일시통원환자인경우 null' )
  828. var sPatarrvdttm = model.getValue(xPath_MnphccsrList + "/patarrvdt" )
  829. + model.getValue(xPath_MnphccsrList + "/patarrvtm" ); // 12 환자도착일시
  830. var sWardarrvdttm = model.getValue(xPath_MnphccsrList + "/wardarrvdt" )
  831. + model.getValue(xPath_MnphccsrList + "/wardarrvtm" ); // 12_1 병동도착일시
  832. model.setValue(xPath_MnphccsrList + "/wardstartdttm", sWardstartdttm);
  833. model.setValue(xPath_MnphccsrList + "/wardarrvdttm", sWardarrvdttm);
  834. // alert("==>"+sWardstartdttm +"<"+ sPatarrvdttm +"<"+ sOpcnfmdt+"<==");
  835. // if (sPatCls != "O" && sWardstartdttm != "" && sWardstartdttm > sOpcnfmdt){
  836. // messageBox("병동 출발일시가 수술예약일시 보다 시간이 이릅니다. 다시","C001");
  837. // model.setValue(xPath_MnphccsrList + "/wardstartdt" ,"");
  838. // model.setValue(xPath_MnphccsrList + "/wardstarttm" ,"");
  839. // model.refresh();
  840. // return;
  841. // }
  842. //
  843. // if (sPatCls != "W" && sPatarrvdttm != "" && sPatarrvdttm > sOpcnfmdt){
  844. // messageBox("환자 도착일시가 수술예약일시 보다 시간이 이릅니다. 다시","C001");
  845. // //model.setValue(xPath_MnphccsrList + "/patarrvdt" ,"");
  846. // //model.setValue(xPath_MnphccsrList + "/patarrvtm" ,"");
  847. // model.refresh();
  848. // return;
  849. // }
  850. // 환자 도착일시가 병동 출발일시보다 시간 Check
  851. if (sWardstartdttm != "" && sPatarrvdttm != "" && sWardstartdttm > sPatarrvdttm){
  852. messageBox("환자 도착일시를 확인하십시요!","C000");
  853. // model.setValue(xPath_MnphccsrList + "/patarrvdt","");
  854. // model.setValue(xPath_MnphccsrList + "/patarrvtm","");
  855. model.refresh();
  856. return;
  857. }
  858. if (fGridCheckConfirm()) {
  859. messageBox("확인사항을 Check 하지 않은 항목이 있습니다. ","I000");
  860. return;
  861. }
  862. var sInfectspec = instance1.selectSingleNode(xPath_Fmt_infectspec ).xml; // 13 감염정보
  863. var sAllrgspec = instance1.selectSingleNode(xPath_Fmt_allrgspec ).xml; // 14 알러지정보
  864. var sSendgoodandmedspec = instance1.selectSingleNode(xPath_Fmt_sendgoodandmedspec).xml; // 15 보낸물품및약품정보
  865. //20110711 wify 경북대병원 통증사정 사용하지 않음
  866. // if( getNodesetCount("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList") == 22 ) {//통증사정이 있을경우
  867. // var sCurenurgstatspec = instance1.selectSingleNode(xPath_Fmt_curenurgstatspecT).xml; // 16 처치및간호상태정보
  868. // }else {
  869. var sCurenurgstatspec = instance1.selectSingleNode(xPath_Fmt_curenurgstatspec ).xml; // 16 처치및간호상태정보
  870. // }
  871. var sTestinfospec = instance1.selectSingleNode(xPath_Fmt_testinfospec ).xml; // 17 검사정보내역
  872. // 13 감염정보
  873. if(instance1.selectSingleNode(xPath_infectspec).childNodes.length > 0) {
  874. sInfectspec = instance1.selectSingleNode(xPath_Infection).xml;
  875. }
  876. // 14 알러지정보
  877. if(instance1.selectSingleNode(xPath_allrgspec).childNodes.length > 0) {
  878. sAllrgspec = instance1.selectSingleNode(xPath_Allergy).xml;
  879. }
  880. // 15 보낸물품및약품정보
  881. if(instance1.selectSingleNode(xPath_sendgoodandmedspec).childNodes.length > 0) {
  882. sSendgoodandmedspec = instance1.selectSingleNode(xPath_Product).xml;
  883. }
  884. // 16 처치및간호상태정보
  885. if(instance1.selectSingleNode(xPath_curenurgstatspec).childNodes.length > 0) {
  886. sCurenurgstatspec = instance1.selectSingleNode(xPath_ItemCheck).xml;
  887. }
  888. var sNurgpartid = model.getValue(xPath_MnphccsrList + "/nurgpartid" ); // 18 간호단위기록자ID
  889. var sNurgpartrecdttm = model.getValue(xPath_MnphccsrList + "/nurgpartrecdttm" ); // 19 간호단위기록일시
  890. var sNurgpartsavedttm = model.getValue(xPath_MnphccsrList + "/nurgpartsavedttm" ); // 20 간호단위저장일시
  891. var sOperchfid = model.getValue(xPath_MnphccsrList + "/operchfid" ); // 21 수술실 기록자ID
  892. var sOperchfrecdttm = model.getValue(xPath_MnphccsrList + "/operchfrecdttm" ); // 22 수술실 기록일시
  893. var sOperchfsavedttm = model.getValue(xPath_MnphccsrList + "/operchfsavedttm" ); // 23 수술실 저장일시
  894. var sOpercnfmpat = model.getValue(xPath_MnphccsrList + "/opercnfmpat" ); // 24 수술실 환자명
  895. var sOpercnfmid = model.getValue(xPath_MnphccsrList + "/opercnfmid" ); // 25 수술실 등록번호
  896. var sOpercnfmdr = model.getValue(xPath_MnphccsrList + "/opercnfmdr" ); // 26 수술실 집도의
  897. var sOpercnfmpart = model.getValue(xPath_MnphccsrList + "/opercnfmpart" ); // 27 수술실 수술부위
  898. var sOpercnfmpartdisp = model.getValue(xPath_MnphccsrList + "/opercnfmpartdisp" ); // 28 수술실 수술부위표시
  899. var sStaychfid = model.getValue(xPath_MnphccsrList + "/staychfid" ); // 29 대기실 기록자ID
  900. var sStaychfrecdttm = model.getValue(xPath_MnphccsrList + "/staychfrecdttm" ); // 30 대기실 기록일시
  901. var sStaychfsavedttm = model.getValue(xPath_MnphccsrList + "/staychfsavedttm" ); // 31 대기실 저장일시
  902. var sStaycnfmpat = model.getValue(xPath_MnphccsrList + "/staycnfmpat" ); // 32 대기실 환자명
  903. var sStaycnfmid = model.getValue(xPath_MnphccsrList + "/staycnfmid" ); // 33 대기실 등록번호
  904. var sStaycnfmdr = model.getValue(xPath_MnphccsrList + "/staycnfmdr" ); // 34 대기실 집도의
  905. var sStaycnfmpart = model.getValue(xPath_MnphccsrList + "/staycnfmpart" ); // 35 대기실 수술부위
  906. var sStaycnfmpartdisp = model.getValue(xPath_MnphccsrList + "/staycnfmpartdisp" ); // 36 대기실 수술부위표시
  907. var sNurgpartmemo = model.getValue(xPath_MnphccsrList + "/nurgpartmemo" ); // 37 간호단위메모
  908. var sOperchfmemo = model.getValue(xPath_MnphccsrList + "/operchfmemo" ); // 38 수술,대기 단위메모
  909. var sCertno = model.getValue(xPath_MnphccsrList + "/certno" ); // 39 인증번호
  910. var sFstrgstrid = model.getValue(xPath_MnphccsrList + "/fstrgstrid" ); // 40 최초등록자ID
  911. var sLastupdtid = model.getValue(xPath_MnphccsrList + "/lastupdtid" ); // 41 최종수정자
  912. var sStat = model.getValue(xPath_MnphccsrList + "/stat" ); // 42 최종수정자
  913. var sOpbfcureseqno = model.getValue(xPath_MnphccsrList + "/opbfcureseqno" ); // 43 의뢰번호(년도(4) + 일련번호(6))
  914. var sOpstatcd = model.getValue(xPath_MnphccsrList + "/opstatcd" ); // 44 진행상태
  915. var sOpstatcdnew = model.getValue(xPath_MnphccsrList + "/opstatcd" ); // 45 진행상태
  916. var sNurgpartdeptcd = model.getValue(xPath_MnphccsrList + "/nurgpartdeptcd" ); // 46 간호단위기록 부서코드
  917. var sStaychfdeptcd = model.getValue(xPath_MnphccsrList + "/staychfdeptcd" ); // 47 대기실기록 부서코드
  918. var sOperchfdeptcd = model.getValue(xPath_MnphccsrList + "/operchfdeptcd" ); // 48 수술실기록 부서코드
  919. var sStaycnfmRemark = model.getValue(xPath_MnphccsrList + "/staycnfmpartdispremark" ); // 57 대기실 수술부위표시Remark
  920. var sOpercnfmRemark = model.getValue(xPath_MnphccsrList + "/opercnfmpartdispremark" ); // 58 수술실 수술부위표시Remark
  921. var sOpPatbdtp = model.getValue(xPath_MnphccsrList + "/oppatbdtp" ); // 59 체온
  922. var sOpPatbdwt = model.getValue(xPath_MnphccsrList + "/oppatbdwt" ); // 60 체중
  923. var sOpPatbdht = model.getValue(xPath_MnphccsrList + "/oppatbdht" ); // 61 신장
  924. var sOpPatsbp = model.getValue(xPath_MnphccsrList + "/oppatsbp" ); // 62 SBP
  925. var sOpPatdbp = model.getValue(xPath_MnphccsrList + "/oppatdbp" ); // 63 DBP
  926. var sFamyList = instance1.selectNodesXml("/root/main/MnphccsrData/MnphccsrList/famyinfo/famylist"); // 64 가족정보
  927. if( pFlag == "C" ) {
  928. if(fValidForSendMsg() == false) return;
  929. //동의여부 확인
  930. if(sTempStaycls == "1"){//대기실일 경우.
  931. var sSmsagreeyn = model.getValue("/root/main/MnphccsrData/MnphccsrList/smsagreeyn");
  932. if(sSmsagreeyn == "" || sSmsagreeyn == "undefined" || sSmsagreeyn == null){
  933. messageBox("수술진행상태 문자전송 동의여부를 확인하시기 바랍니다. ", "I000");
  934. return;
  935. } else if(sSmsagreeyn == "N"){
  936. //메세지만 띄워진다.
  937. //messageBox("수술진행상태 문자전송을 동의하지 않았습니다.", "I000");
  938. } else if(sSmsagreeyn == "Y"){
  939. var sArriTime = model.getValue("/root/main/MnphccsrData/MnphccsrList/patarrvtm");
  940. var sPatarrisndsmsid = model.getValue("/root/main/MnphccsrData/MnphccsrList/patarrisndsmsid");
  941. if(sArriTime != "" && sArriTime != null && sArriTime != "undefined" && sSmsagreeyn == "Y" && sPatarrisndsmsid == ""){
  942. if(fValidForSendMsg()){
  943. var sPatarrisndsmsid = model.getValue("/root/main/MnphccsrData/MnphccsrList/patarrisndsmsid");
  944. if(sPatarrisndsmsid == "" || sPatarrisndsmsid == null || sPatarrisndsmsid == "undefinded"){
  945. model.setValue("/root/init/sms/arrsmssendflag","Y");
  946. }else{
  947. model.setValue("/root/init/sms/arrsmssendflag","N");
  948. }
  949. } else {
  950. return;
  951. }
  952. }
  953. }
  954. }
  955. }
  956. if (sOpbfcureseqno == "") {
  957. sOpbfcureseqno = "-"; // 02의뢰번호(년도(4) + 일련번호(6))
  958. }
  959. //
  960. var wUserId = getUserInfo("userid" ); // 사용자
  961. var wUserNm = getUserInfo("usernm" ); // 사용자 명
  962. var wDeptCd = getUserInfo("dutplcecd"); // 사용자 부서코드
  963. var wDeptNm = getUserInfo("dutplcenm"); // 사용자 부서명
  964. var wRecoDate = getCurrentDate() + getCurrentTime(); // 시스템일자 기록
  965. var wSaveDate = getCurrentDate() + getCurrentTime(); // 시스템일자 기록
  966. // 간호단위기록
  967. if ( (sDutDSCFlag == "Y" && chk_oper.value != "2" && sOpPatflagcd != "I")
  968. || (sPatCls == "W")
  969. || (sPatCls == "B" && ( chk_stay.value != "1" && chk_oper.value != "2" )) ) {
  970. // 18 간호단위기록일시
  971. if (model.getValue("/root/main/Conditions/Confirm") == "2") { // 사용자일자 기록
  972. wRecoDate = model.getValue("/root/init/HideData/ssDateTime/ssDate")
  973. + model.getValue("/root/init/HideData/ssDateTime/ssTime");
  974. if(wRecoDate.replace(' ', '').length < 12){
  975. messageBox("기록일시를 정확하게 입력 하시기 바랍니다.", "I000");
  976. return;
  977. }
  978. } else{
  979. wRecoDate = wSaveDate;
  980. }
  981. sNurgpartid = wUserId ; // 18 간호단위기록자ID
  982. sNurgpartdeptcd = wDeptCd ;
  983. sNurgpartsavedttm = wSaveDate; // 20 간호단위저장일시
  984. // 임시저장의 경우는 기록일자를 넣지 않는다. 2008.01.23
  985. if (pFlag != "C") {
  986. wRecoDate =""; // 19 간호단위기록일시
  987. }
  988. sNurgpartrecdttm = wRecoDate; // 19 간호단위기록일시
  989. var sWardarrvdept = model.getValue(ipt_wardarrvdept.attribute("ref"));
  990. var startyn = "";
  991. if(sWardarrvdept == "") {
  992. model.setValue(xPath_MnphccsrList + "/nurgpartid" , wUserId ); // 18 간호단위기록자ID
  993. model.setValue(xPath_MnphccsrList + "/nurgpartidnm" , wUserNm ); // 사용자 명
  994. model.setValue(xPath_MnphccsrList + "/nurgpartdeptcd" , wDeptCd ); // 사용자 부서코드
  995. model.setValue(xPath_MnphccsrList + "/nurgpartiddept" , wDeptNm ); // 사용자 부서명
  996. model.setValue(xPath_MnphccsrList + "/nurgpartrecdttm" , wRecoDate); // 19 간호단위기록일시
  997. model.setValue(xPath_MnphccsrList + "/nurgpartsavedttm", wSaveDate); // 20 간호단위저장일시
  998. } else {
  999. model.setValue(xPath_MnphccsrList + "/nurspartarrvdt" , wRecoDate); // 사용자 부서명
  1000. model.setValue(xPath_MnphccsrList + "/nurspartarrvdept" , wDeptNm); // 19 간호단위기록일시
  1001. model.setValue(xPath_MnphccsrList + "/nurspartarrvnursnm", wUserNm); // 20 간호단위저장일시
  1002. }
  1003. }
  1004. // 수술단위기록일시
  1005. if ((sPatCls == "O") ||(sPatCls == "B") ||(sPatCls == "W" && sWardOP == "Y")) {
  1006. wUserId = getUserInfo("userid" ); // 사용자
  1007. wUserNm = getUserInfo("usernm" ); // 사용자 명
  1008. wDeptCd = getUserInfo("dutplcecd"); // 사용자 부서코드
  1009. wDeptNm = getUserInfo("dutplcenm"); // 사용자 부서명
  1010. wRecoDate = getCurrentDate() + getCurrentTime(); // 시스템일자 기록
  1011. wSaveDate = getCurrentDate() + getCurrentTime(); // 시스템일자 기록
  1012. // 18 수술단위기록일시
  1013. if (model.getValue("/root/main/Conditions/Confirm") == "2") { // 사용자일자 기록
  1014. wRecoDate = model.getValue("/root/init/HideData/ssDateTime/ssDate")
  1015. + model.getValue("/root/init/HideData/ssDateTime/ssTime");
  1016. if(wRecoDate.replace(' ', '').length < 12){
  1017. messageBox("기록일시를 정확하게 입력 하시기 바랍니다.", "I000");
  1018. return;
  1019. }
  1020. } else{
  1021. wRecoDate = wSaveDate;
  1022. }
  1023. //대기실 기록을 선택했거나, 현장수술인 병동환자
  1024. if (chk_stay.value == "1" || (sPatCls == "W" && sWardOP == "Y")) {
  1025. //2008-08-04 오후 12:54:02 taebum 수술실에서 병동정보도 입력가능하도록 수정
  1026. //2008-08-07 오전 9:06:29 taebum 수술실에서 병동정보 입력 못하도록 수정
  1027. if (model.getValue("/root/main/MnphccsrData/MnphccsrList/nurgpartrecdttm")=="" && sDutDSCFlag != "Y") {
  1028. messageBox("간호단위 인증저장이 되지 않았습니다. 간호단위 기록정보를 확인하십시요!","I000");
  1029. return;
  1030. }
  1031. sStaychfid = wUserId ; // 29 대기실 기록자ID
  1032. sStaychfdeptcd = wDeptCd ;
  1033. sStaychfsavedttm = wSaveDate; // 31 대기실 저장일시
  1034. // 임시저장의 경우는 기록일자를 넣지 않는다.
  1035. if (pFlag != "C") {
  1036. wRecoDate =""; // 19 간호단위기록일시
  1037. }
  1038. sStaychfrecdttm = wRecoDate; // 30 대기실 기록일시
  1039. model.setValue(xPath_MnphccsrList + "/staychfid" , wUserId ); // 29 대기실 기록자ID
  1040. model.setValue(xPath_MnphccsrList + "/staychfrecdttm" , wRecoDate); // 30 대기실 기록일시
  1041. model.setValue(xPath_MnphccsrList + "/staychfsavedttm", wSaveDate); // 31 대기실 저장일시
  1042. model.setValue(xPath_MnphccsrList + "/staychfidnm" , wUserNm );
  1043. model.setValue(xPath_MnphccsrList + "/staychfdeptcd" , wDeptCd );
  1044. model.setValue(xPath_MnphccsrList + "/staychfiddept" , wDeptNm );
  1045. //
  1046. }
  1047. if (chk_stay.value == "2" && sPatCls != "W") {
  1048. //
  1049. if (model.getValue("/root/main/MnphccsrData/MnphccsrList/staychfrecdttm")=="") {
  1050. messageBox("대기실 인증저장이 되지 않았습니다. 대기실 기록정보를 확인하십시요!","I000");
  1051. return;
  1052. }
  1053. sOperchfid = wUserId ; // 21 수술실 기록자ID
  1054. sOperchfdeptcd = wDeptCd ;
  1055. sOperchfsavedttm = wSaveDate; // 23 수술실 저장일시
  1056. // 임시저장의 경우는 기록일자를 넣지 않는다.
  1057. if (pFlag != "C") {
  1058. wRecoDate =""; // 19 간호단위기록일시
  1059. }
  1060. sOperchfrecdttm = wRecoDate; // 22 수술실 기록일시
  1061. model.setValue(xPath_MnphccsrList + "/operchfid" , wUserId ); // 21 수술실 기록자ID
  1062. model.setValue(xPath_MnphccsrList + "/operchfrecdttm" , wRecoDate); // 22 수술실 기록일시
  1063. model.setValue(xPath_MnphccsrList + "/operchfsavedttm", wSaveDate); // 23 수술실 저장일시
  1064. model.setValue(xPath_MnphccsrList + "/operchfidnm" , wUserNm );
  1065. model.setValue(xPath_MnphccsrList + "/operchfdeptcd" , wDeptCd );
  1066. model.setValue(xPath_MnphccsrList + "/operchfiddept" , wDeptNm );
  1067. }
  1068. //****************************************************************************
  1069. //2008-08-04 오후 3:03:19 taebum
  1070. // 의뢰상태일때 기록을 저장할 경우에는 수술진행사항 Data를 손대지 않는다.
  1071. // 마취과에서 확정 시 의뢰에서 준비확인 간호기록이 작성되었을 경우 OPSTATCD(수술진행상태)를 30(대기)로 update하기로 함.
  1072. if(sOpstatcd == "10"){
  1073. sOpstatcdnew = "10";
  1074. } else{
  1075. if (sPatarrvdttm != "" && sOpstatcd == "20") {
  1076. sOpstatcdnew = "30";
  1077. }
  1078. }
  1079. //****************************************************************************
  1080. }
  1081. model.removenode("/root/send");
  1082. var patarrisndsmsid = model.getValue(xPath_MnphccsrList + "/patarrisndsmsid" ); // sms전송id
  1083. var patnm = getPatientName();
  1084. var sOppatflagnm = model.getValue("/root/main/OpddInfoList/OpddInfo["+(cmb_opdd.selectedIndex + 1)+"]/oppatflagnm");
  1085. var message = model.getValue(ipt_msginfo.attribute("ref"));
  1086. var arrsmssendflag = model.getValue("/root/init/sms/arrsmssendflag");
  1087. var nurspartarrvdt = model.getValue(xPath_MnphccsrList + "/nurspartarrvdt");
  1088. var sWardarrvnursid = model.getValue(ipt_wardarrvnursid.attribute("ref"));
  1089. var sWardarrvdept = model.getValue(ipt_wardarrvdept.attribute("ref"));
  1090. var startyn = "";
  1091. var famylist = instance1.selectNodesXml(grd_famylist.nodeset);
  1092. if(sWardarrvdept == "") {
  1093. startyn = "S";
  1094. } else {
  1095. startyn = "E";
  1096. }
  1097. // Title Set
  1098. var sMnphccsrData = "pid" + "▦" // 01 환자번호
  1099. + "oprsrvno" + "▦" // 02 수술에대한의뢰번호(년도(4) + 일련번호(6))
  1100. + "ophistno" + "▦" // 03 예약번호에 따른 이력번호
  1101. + "instcd" + "▦" // 04 원무외래/입원등록정보 PK
  1102. + "oprsrvdd" + "▦" // 05 수술일시:수술이확정된 일시
  1103. + "oprsrvtmcd" + "▦" // 06 수술예약시간코드
  1104. + "inoutflag" + "▦" // 07 외래입원구분
  1105. + "orddd" + "▦" // 08 진료일자
  1106. + "orddeptcd" + "▦" // 09 진료부서
  1107. + "inday" + "▦" // 10 입원일자
  1108. + "wardstartdttm" + "▦" // 11 병동출발일시통원환자인경우 null' )
  1109. + "patarrvdttm" + "▦" // 12 환자도착일시
  1110. + "wardarrvdttm" + "▦" // 12_1 병동도착일시
  1111. + "wardarrvdept" + "▦" // 12_2 도착부서
  1112. + "wardarrvnursid" + "▦" // 12_3 도착기록자
  1113. + "startyn" + "▦" // 12_4 출발도착여부
  1114. + "nurspartarrvdt" + "▦" // 12_5 간호단위기록시간
  1115. + "infectspec" + "▦" // 13 감염정보
  1116. + "allrgspec" + "▦" // 14 알러지정보
  1117. + "sendgoodandmedspec" + "▦" // 15 보낸물품및약품정보
  1118. + "curenurgstatspec" + "▦" // 16 처치및간호상태정보
  1119. + "testinfospec" + "▦" // 17 검사정보내역
  1120. + "nurgpartid" + "▦" // 18 간호단위기록자ID
  1121. + "nurgpartrecdttm" + "▦" // 19 간호단위기록일시
  1122. + "nurgpartsavedttm" + "▦" // 20 간호단위저장일시
  1123. + "operchfid" + "▦" // 21 수술실 기록자ID
  1124. + "operchfrecdttm" + "▦" // 22 수술실 기록일시
  1125. + "operchfsavedttm" + "▦" // 23 수술실 저장일시
  1126. + "opercnfmpat" + "▦" // 24 수술실 환자명
  1127. + "opercnfmid" + "▦" // 25 수술실 등록번호
  1128. + "opercnfmdr" + "▦" // 26 수술실 집도의
  1129. + "opercnfmpart" + "▦" // 27 수술실 수술부위
  1130. + "opercnfmpartdisp" + "▦" // 28 수술실 수술부위표시
  1131. + "staychfid" + "▦" // 29 대기실 기록자ID
  1132. + "staychfrecdttm" + "▦" // 30 대기실 기록일시
  1133. + "staychfsavedttm" + "▦" // 31 대기실 저장일시
  1134. + "staycnfmpat" + "▦" // 32 대기실 환자명
  1135. + "staycnfmid" + "▦" // 33 대기실 등록번호
  1136. + "staycnfmdr" + "▦" // 34 대기실 집도의
  1137. + "staycnfmpart" + "▦" // 35 대기실 수술부위
  1138. + "staycnfmpartdisp" + "▦" // 36 대기실 수술부위표시
  1139. + "nurgpartmemo" + "▦" // 37 간호단위메모
  1140. + "operchfmemo" + "▦" // 38 수술,대기 단위메모
  1141. + "certno" + "▦" // 39 인증번호
  1142. + "fstrgstrid" + "▦" // 40 최초등록자ID
  1143. + "lastupdtid" + "▦" // 41 최종수정자
  1144. + "opbfcureseqno" + "▦" // 42 수술에대한의뢰번호(년도(4) + 일련번호(6))
  1145. + "opstatcd" + "▦" // 43 진행상태
  1146. + "opstatcdnew" + "▦" // 44 진행상태
  1147. + "stat" + "▦" // 45 상태
  1148. + "certflag" + "▦" // 46 임시/인증 저장 여부(C : 인증, T : 임시)
  1149. + "etctel1" + "▦" // 47 보호자연락처1
  1150. + "etctel2" + "▦" // 48 보호자연락처2
  1151. + "smsagreeyn" + "▦" // 49 SMS동의여부
  1152. + "patarrisndsmsid" + "▦" // 50 SMS전송ID
  1153. + "message" + "▦" // 51 SMS message
  1154. + "arrsmssendflag" + "▦" // 52 sms전송 flag
  1155. + "nurgpartdeptcd" + "▦" // 53 간호단위 기록부서코드
  1156. + "staychfdeptcd" + "▦" // 54 대기실 기록부서코드
  1157. + "operchfdeptcd" + "▦" // 55 수술실 기록부서코드
  1158. + "patnm" + "▦" // 56 환자명
  1159. + "staycnfmpartdispremark" + "▦" // 57 대기실 수술부위표시Remark
  1160. + "opercnfmpartdispremark" + "▦" // 58 수술실 수술부위표시Remark
  1161. + "oppatbdtp" + "▦" // 59 체온
  1162. + "oppatbdwt" + "▦" // 60 체중
  1163. + "oppatbdht" + "▦" // 61 신장
  1164. + "oppatsbp" + "▦" // 62 SBP
  1165. + "oppatdbp" + "▦" // 63 DBP
  1166. + "wardop" + "▦"
  1167. + "famylist" + "▩"; // 64 현장수술여부
  1168. // Title Set
  1169. sMnphccsrData += sPid + "▦" // 01 환자번호
  1170. + sOprsrvno + "▦" // 02 수술에대한의뢰번호(년도(4) + 일련번호(6))
  1171. + sOphistno + "▦" // 03 예약번호에 따른 이력번호
  1172. + sInstcd + "▦" // 04 원무외래/입원등록정보 PK
  1173. + sOprsrvdd + "▦" // 05 수술일시:수술이확정된 일시
  1174. + sOprsrvtmcd + "▦" // 06 수술예약시간코드
  1175. + sInoutflag + "▦" // 07 외래입원구분
  1176. + sOrddd + "▦" // 08 진료일자
  1177. + sOrddeptcd + "▦" // 09 진료부서
  1178. + sInday + "▦" // 10 입원일자
  1179. + sWardstartdttm + "▦" // 11 병동출발일시통원환자인경우 null' )
  1180. + sPatarrvdttm + "▦" // 12 환자도착일시
  1181. + sWardarrvdttm + "▦" // 12_1 병동도착일시
  1182. + sWardarrvdept + "▦" // 12_2 도착부서
  1183. + sWardarrvnursid + "▦" // 12_3 도착기록자
  1184. + startyn + "▦" // 12_4 출발도착여부
  1185. + nurspartarrvdt + "▦" // 12_5 간호단위 도착 기록시간
  1186. + sInfectspec + "▦" // 13 감염정보
  1187. + sAllrgspec + "▦" // 14 알러지정보
  1188. + sSendgoodandmedspec + "▦" // 15 보낸물품및약품정보
  1189. + sCurenurgstatspec + "▦" // 16 처치및간호상태정보
  1190. + sTestinfospec + "▦" // 17 검사정보내역
  1191. + sNurgpartid + "▦" // 18 간호단위기록자ID
  1192. + sNurgpartrecdttm + "▦" // 19 간호단위기록일시
  1193. + sNurgpartsavedttm + "▦" // 20 간호단위저장일시
  1194. + sOperchfid + "▦" // 21 수술실 기록자ID
  1195. + sOperchfrecdttm + "▦" // 22 수술실 기록일시
  1196. + sOperchfsavedttm + "▦" // 23 수술실 저장일시
  1197. + sOpercnfmpat + "▦" // 24 수술실 환자명
  1198. + sOpercnfmid + "▦" // 25 수술실 등록번호
  1199. + sOpercnfmdr + "▦" // 26 수술실 집도의
  1200. + sOpercnfmpart + "▦" // 27 수술실 수술부위
  1201. + sOpercnfmpartdisp + "▦" // 28 수술실 수술부위표시
  1202. + sStaychfid + "▦" // 29 대기실 기록자ID
  1203. + sStaychfrecdttm + "▦" // 30 대기실 기록일시
  1204. + sStaychfsavedttm + "▦" // 31 대기실 저장일시
  1205. + sStaycnfmpat + "▦" // 32 대기실 환자명
  1206. + sStaycnfmid + "▦" // 33 대기실 등록번호
  1207. + sStaycnfmdr + "▦" // 34 대기실 집도의
  1208. + sStaycnfmpart + "▦" // 35 대기실 수술부위
  1209. + sStaycnfmpartdisp + "▦" // 36 대기실 수술부위표시
  1210. + sNurgpartmemo + "▦" // 37 간호단위메모
  1211. + sOperchfmemo + "▦" // 38 수술,대기 단위메모
  1212. + sCertno + "▦" // 39 인증번호
  1213. + sFstrgstrid + "▦" // 40 최초등록자ID
  1214. + sLastupdtid + "▦" // 41 최종수정자
  1215. + sOpbfcureseqno + "▦" // 42 수술에대한의뢰번호(년도(4) + 일련번호(6))
  1216. + sOpstatcd + "▦" // 43 진행상태
  1217. + sOpstatcdnew + "▦" // 44 진행상태
  1218. + sStat + "▦" // 45 상태
  1219. + pFlag + "▦" // 46 임시/인증 저장 여부(C : 인증, T : 임시)
  1220. + sEtctel1 + "▦" // 47 보호자연락처1
  1221. + sEtctel2 + "▦" // 48 보호자연락처2
  1222. + sSmsagreeyn + "▦" // 49 SMS동의여부
  1223. + patarrisndsmsid + "▦" // 50 SMS전송ID 대기실도착
  1224. + message + "▦" // 51 SMS message
  1225. + arrsmssendflag + "▦" // 52 sms전송 flag
  1226. + sNurgpartdeptcd + "▦" // 53 간호단위 기록 부서코드
  1227. + sStaychfdeptcd + "▦" // 54 대기실 기록 부서코드
  1228. + sOperchfdeptcd + "▦" // 55 수술실 기록 부서코드
  1229. + patnm + "▦" // 56 환자명
  1230. + sStaycnfmRemark + "▦" // 57 대기실 수술부위표시Remark
  1231. + sOpercnfmRemark + "▦" // 58 수술실 수술부위표시Remark
  1232. + sOpPatbdtp + "▦" // 59 체온
  1233. + sOpPatbdwt + "▦" // 60 체중
  1234. + sOpPatbdht + "▦" // 61 신장
  1235. + sOpPatsbp + "▦" // 62 SBP
  1236. + sOpPatdbp + "▦" // 63 DBP
  1237. + sWardOP + "▦" // 64 현장수술
  1238. + sFamyList + "▩"; // 환자 및 보호자 연락처
  1239. var chkyn;
  1240. var mpphone;
  1241. var msgHeader="mpphone▩";
  1242. var msgData = "";
  1243. for(var i = grd_famylist.fixedRows; i < grd_famylist.rows; i++) {
  1244. chkyn = grd_famylist.valueMatrix(i, grd_famylist.colRef("chkyn"));
  1245. mpphone = grd_famylist.valueMatrix(i, grd_famylist.colRef("mpphone"));
  1246. if(chkyn == "Y") {
  1247. if(mpphone.length < 11 || mpphone =="" || mpphone == null) {
  1248. messageBox("선택하신 보호자의 연락처가 잘못되었습니다.", "E");
  1249. return;
  1250. } else {
  1251. msgData += mpphone + "▩";
  1252. }
  1253. }
  1254. }
  1255. model.makeValue("/root/send/MnphccsrList",sMnphccsrData);
  1256. model.makeValue("/root/send/msglist", msgHeader +msgData);
  1257. var CertFlag = true;
  1258. if (pFlag == "C") {
  1259. CertFlag = fSignProcessSet();
  1260. }
  1261. if (CertFlag == false){
  1262. //2008-10-01 오전 5:54:13 taebum 인증저 취소시 통합기록 조회관련 요구사항 처리로 인한 오류발생 .
  1263. //화면 close 시킴.
  1264. window.close();
  1265. return; // 인증실패
  1266. }
  1267. if( submit("TXMNP00201") ){
  1268. opIdx = cmb_opdd.selectedIndex + 1;
  1269. var cPath = "/root/main/OpddInfoList/OpddInfo["+opIdx+"]";
  1270. model.setValue(cPath+ "/opbfcureseqno" , model.getValue("/root/temp/retdata/opbfcureseqno"));
  1271. if( pFlag == "C" ) {
  1272. model.setValue(xPath_MnphccsrList+ "/certno" , model.getValue("/root/temp/retdata/certno" ));
  1273. }
  1274. Query_Opdd_All();
  1275. if( (sPatCls == "O") ||(sPatCls == "B") ) {
  1276. //fStayOperCheck(); // 대기실 수술실 Check
  1277. fOpWardCheck();
  1278. }else{
  1279. fOpWardCheck();
  1280. }
  1281. }
  1282. }
  1283. /* ------------------------------------------------- */
  1284. /* type : function */
  1285. /* access : public */
  1286. /* desc : 확인정보 Check 여부을 Check한다 */
  1287. /* return : */
  1288. /* --------------------------------------------------*/
  1289. function fGridCheckConfirm() {
  1290. var BoolCheck = false;
  1291. var GridNm = grd_ItemCheckList;
  1292. var opchkyn ="";
  1293. var cnt = 0;
  1294. for (var iRow = GridNm.fixedrows; iRow < GridNm.rows; iRow++){
  1295. opchkyn = model.getValue(GridNm.nodeset + "[" + (iRow-1) + "]/opchkyn");
  1296. if (chk_stay.value == "1") {
  1297. if ((GridNm.valueMatrix(iRow, GridNm.colRef("Syes"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Syes"))== "") &&
  1298. (GridNm.valueMatrix(iRow, GridNm.colRef("Sno"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Sno"))== "") &&
  1299. (GridNm.valueMatrix(iRow, GridNm.colRef("Snothing"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Snothing"))== "")) {
  1300. BoolCheck = true;
  1301. break;
  1302. }
  1303. } else if (chk_stay.value == "2") {
  1304. if ((GridNm.valueMatrix(iRow, GridNm.colRef("Oyes"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Oyes"))== "") &&
  1305. (GridNm.valueMatrix(iRow, GridNm.colRef("Ono"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Ono"))== "") &&
  1306. (GridNm.valueMatrix(iRow, GridNm.colRef("Onothing"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Onothing"))== "") &&
  1307. (opchkyn == "Y" ||opchkyn == "" || opchkyn == null) ) {
  1308. BoolCheck = true;
  1309. break;
  1310. }
  1311. } else {
  1312. if ((GridNm.valueMatrix(iRow, GridNm.colRef("Pyes"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Pyes"))== "") &&
  1313. (GridNm.valueMatrix(iRow, GridNm.colRef("Pno"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Pno"))== "") &&
  1314. (GridNm.valueMatrix(iRow, GridNm.colRef("Pnothing"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Pnothing"))== "")) {
  1315. BoolCheck = true;
  1316. break;
  1317. }
  1318. }
  1319. }
  1320. return BoolCheck;
  1321. }
  1322. /* ------------------------------------------------- */
  1323. /* SMMNP00200_수술전처치 및 간호상태 확인 */
  1324. /* 조회버튼 Click시 Call */
  1325. /* ------------------------------------------------- */
  1326. function select_opdd() {
  1327. submit("TRMNP00201"); // 환자 수술전 처치 및 간호상태 확인 사항
  1328. }
  1329. function fRowSyleColor(pGrid, pRow, pColor ){
  1330. pGrid.rowstyle( pRow , "data", "background-color") = pColor;
  1331. }
  1332. function fRowSyle(pGrid){
  1333. var sColor = "#ffc0cb"; // "#ffc0cb"; //FF69B4
  1334. /*
  1335. var sRowCnt = pGrid.rows - pGrid.fixedrows;
  1336. for (var i=2; i<= sRowCnt; i++){
  1337. if (model.getValue(xPathGride+"["+(i - 1)+"]/ItemState1") == "Y") {
  1338. fRowSyleColor(pGrid, i, sColor);
  1339. }
  1340. }
  1341. */
  1342. var iRowCnt = pGrid.rows;
  1343. for (var i=1; i<= iRowCnt; i++){
  1344. // if (pGrid.valueMatrix(i, 12) == "Y") {
  1345. if (pGrid.valueMatrix(i, pGrid.colRef("ItemState1")) == "Y") {
  1346. fRowSyleColor(pGrid, i, sColor);
  1347. }
  1348. }
  1349. }
  1350. function fPopUpCall(pFlag){
  1351. var xPathProduct = xPath_Product+"/ProductList";
  1352. var sItemCode = "";
  1353. var iRow = grd_ItemCheckList.row - 1;
  1354. var inoutflag = model.getValue(xPath_MnphccsrList+"/inoutflag");
  1355. var oppatflagcd = model.getValue("/root/main/operation/list/oppatflagcd");
  1356. if( (inoutflag != oppatflagcd)&&(oppatflagcd != "") ) {
  1357. //기록지데이터랑 스케쥴 데이터랑 틀릴경우 스케쥴데이터로 처리 2010.03.10 K. J. M
  1358. //수술준비확인 기록이후 외래에서 입원으로 스케쥴이 변경된경우 점검리스트 처방 콤보가 제대로 끌려오지 않음
  1359. inoutflag = oppatflagcd;
  1360. }
  1361. var sParam = "pid▦orddd▦cretno▦instcd▦inoutflag▩"
  1362. + model.getValue(xPath_MnphccsrList+"/pid" ) + "▦"
  1363. + model.getValue(xPath_MnphccsrList+"/orddd" ) + "▦"
  1364. + model.getValue(xPath_MnphccsrList+"/cretno") + "▦"
  1365. + model.getValue(xPath_MnphccsrList+"/instcd") + "▦"
  1366. + inoutflag + "▩";
  1367. //+ model.getValue(xPath_MnphccsrList+"/inoutflag") + "▩";
  1368. setParameter("SMMNP00201_Param", sParam);
  1369. var ParaItem = "ITM010 " // 금식
  1370. + "ITM012 " // 수술부위 피부준비
  1371. + "ITM013 " // 수술전투약
  1372. + "ITM018 " // 혈액준비사항
  1373. + "ITM019 " // 물품/약품
  1374. + "ITM011 " // 관장
  1375. + "ITM008 " // 알러지여부
  1376. + "ITM017 " // 전염성질환
  1377. + "ITM021 "; // 약품(2009-02-19 YCD 물품과 약품 정보 분리)
  1378. var ParamItm = "ItemCode▦ItemInfo▩";
  1379. var sRowCnt = grd_ItemCheckList.rows - grd_ItemCheckList.fixedrows+1;
  1380. for (var i=1; i<= sRowCnt; i++){
  1381. sItemCode = model.getValue(xPathGride+"["+(i - 1)+"]/ItemCode");
  1382. if (ParaItem.indexOf(sItemCode) != -1) {
  1383. ParamItm += sItemCode + "▦"
  1384. + model.getValue(xPathGride+"["+(i - 1)+"]/ItemInfo")+ "▩";
  1385. }
  1386. }
  1387. setParameter("SMMNP00201_Item", ParamItm);
  1388. modal("SMMNP00201");
  1389. var sCnt = "";
  1390. var sITM013 = "";
  1391. var sPopParam = getParameter("SendData");
  1392. for(var i=1; i< sPopParam.split("▩").length-1; i++){
  1393. sItemCode = getArrayData(sPopParam,i,0);
  1394. if (sItemCode =="ITM013" || sItemCode =="ITM018") { // ITM013:수술전투약 ,ITM018:혈액
  1395. sItemData = getArrayData(sPopParam,i,1);
  1396. // sItemData = sItemData.replace('\n', '★');
  1397. fItemCode1318(sItemCode, sItemData);
  1398. sCnt = parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM013']"));
  1399. sCnt += parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM018']"));
  1400. wFixGrid = sCnt + 21;
  1401. } else {
  1402. model.setValue(xPathGride+"[ItemCode ='"+sItemCode+"']/ItemInfo", getArrayData(sPopParam,i,1));
  1403. }
  1404. }
  1405. grd_ItemCheckList.mergeCol(0) = true;
  1406. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("ItemInfoBk")) = true;
  1407. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("ItemInfo")) = false;
  1408. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pyes")) = false;
  1409. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pno")) = false;
  1410. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pnothing")) = false;
  1411. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Syes")) = false;
  1412. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Sno")) = false;
  1413. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Snothing")) = false;
  1414. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pyes")) = false;
  1415. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pno")) = false;
  1416. grd_ItemCheckList.mergeCol(grd_ItemCheckList.colRef("Pnothing")) = false;
  1417. grd_ItemCheckList.rebuild();
  1418. }
  1419. //
  1420. function fItemCode1318(pItemCode, pParam){
  1421. sParam = pParam.split("★");
  1422. if (sParam.length < 1) return;
  1423. //
  1424. wIdx = 0;
  1425. //var sRowCnt = grd_ItemCheckList.rows - grd_ItemCheckList.fixedrows;
  1426. //var OldCnt = parseInt(getNodesetCount(xPathGride+"[ItemCode ='"+pItemCode+"']")); // 수술전 투약 건수
  1427. //기존에 등록되어 있는 정보는 clear후 다시 생성한다.
  1428. var iTempRows = grd_ItemCheckList.rows;
  1429. var iFirstSamePos = 0;
  1430. var iDeleCnt = 0;
  1431. var sItemState1 = "";
  1432. var sItemState2 = "";
  1433. var sItemState3 = "";
  1434. var sReferenceseq = "";
  1435. for(var i = iTempRows; i >= 1 ; i-- ){
  1436. // if(grd_ItemCheckList.valueMatrix(i, 10) == pItemCode){
  1437. if(grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemCode")) == pItemCode){
  1438. if(iFirstSamePos == 0){
  1439. // sReferenceseq = grd_ItemCheckList.valueMatrix(i, 11);
  1440. // sItemState1 = grd_ItemCheckList.valueMatrix(i, 12);
  1441. // sItemState2 = grd_ItemCheckList.valueMatrix(i, 13);
  1442. // sItemState3 = grd_ItemCheckList.valueMatrix(i, 14);
  1443. sReferenceseq = grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("referenceseq"));
  1444. sItemState1 = grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemState1"));
  1445. sItemState2 = grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemState2"));
  1446. sItemState3 = grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("ItemState3"));
  1447. }
  1448. grd_ItemCheckList.deleteItem(i);
  1449. iFirstSamePos = i-grd_ItemCheckList.fixedrows+1;
  1450. }
  1451. }
  1452. var sTempInfoBk = model.getValue("/root/init/XmlFormat/curenurgstatspec/ItemCheckLists/ItemCheckList[ItemCode='"+pItemCode+"']/ItemInfoBk");
  1453. //alert("iFirstSamePos : "+iFirstSamePos);
  1454. /*
  1455. if(pItemCode == ""){
  1456. iFirstSamePos = 18;
  1457. }else if(pItemCode == ""){
  1458. iFirstSamePos = 17;
  1459. }
  1460. */
  1461. var sColor = "#ffc0cb"; // "#ffc0cb"; //FF69B4
  1462. for(var j=0; j< sParam.length; j++){
  1463. grd_ItemCheckList.insertRow(iFirstSamePos,"below", false);
  1464. model.copyNode(xPathGride+"["+iFirstSamePos+1 +"]", "/root/init/ItemCheckList");
  1465. // alert("cur infobk : "+grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 1)+" , sTempInfoBk : "+sTempInfoBk + " , pItemCode : "+pItemCode);
  1466. // grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 1) = sTempInfoBk;
  1467. // grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 2) = sParam[j];
  1468. // grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 12) = pItemCode;
  1469. // grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 13) = sReferenceseq;
  1470. // grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 14) = sItemState1;
  1471. // grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 15) = sItemState2;
  1472. // grd_ItemCheckList.valueMatrix(iFirstSamePos+1, 16) = sItemState3;
  1473. grd_ItemCheckList.valueMatrix(iFirstSamePos+1, grd_ItemCheckList.colRef("ItemInfoBk")) = sTempInfoBk;
  1474. grd_ItemCheckList.valueMatrix(iFirstSamePos+1, grd_ItemCheckList.colRef("ItemInfo")) = sParam[j];
  1475. grd_ItemCheckList.valueMatrix(iFirstSamePos+1, grd_ItemCheckList.colRef("ItemCode")) = pItemCode;
  1476. grd_ItemCheckList.valueMatrix(iFirstSamePos+1, grd_ItemCheckList.colRef("referenceseq")) = sReferenceseq;
  1477. grd_ItemCheckList.valueMatrix(iFirstSamePos+1, grd_ItemCheckList.colRef("ItemState1")) = sItemState1;
  1478. grd_ItemCheckList.valueMatrix(iFirstSamePos+1, grd_ItemCheckList.colRef("ItemState2")) = sItemState2;
  1479. grd_ItemCheckList.valueMatrix(iFirstSamePos+1, grd_ItemCheckList.colRef("ItemState3")) = sItemState3;
  1480. fRowSyleColor(grd_ItemCheckList, iFirstSamePos+1, sColor);
  1481. grd_ItemCheckList.isReadOnly(iFirstSamePos+1, grd_ItemCheckList.colRef("Pyes"), iFirstSamePos+1, grd_ItemCheckList.colRef("Pnothing"))=sBool1;
  1482. grd_ItemCheckList.isReadOnly(iFirstSamePos+1, grd_ItemCheckList.colRef("Syes"), iFirstSamePos+1, grd_ItemCheckList.colRef("Snothing"))=sBool2;
  1483. grd_ItemCheckList.isReadOnly(iFirstSamePos+1, grd_ItemCheckList.colRef("Oyes"), iFirstSamePos+1, grd_ItemCheckList.colRef("Onothing"))=sBool3;
  1484. // grd_ItemCheckList.isReadOnly(iFirstSamePos+1, 3, iFirstSamePos+1, 5)=sBool1;
  1485. // grd_ItemCheckList.isReadOnly(iFirstSamePos+1, 6, iFirstSamePos+1, 8)=sBool2;
  1486. // grd_ItemCheckList.isReadOnly(iFirstSamePos+1, 9, iFirstSamePos+1, 11)=sBool3;
  1487. iFirstSamePos = iFirstSamePos+1;
  1488. }
  1489. }
  1490. function fPopUpCall_bak(pFlag){
  1491. var xPathGride = xPath_ItemCheck+"/ItemCheckList";
  1492. var xPathProduct = xPath_Product+"/ProductList";
  1493. var sItemCode = "";
  1494. var iRow = grd_ItemCheckList.row - 1;
  1495. var sParam = "pid▦orddd▦cretno▦instcd▩"
  1496. + model.getValue(xPath_MnphccsrList+"/pid" ) + "▦"
  1497. + model.getValue(xPath_MnphccsrList+"/orddd" ) + "▦"
  1498. + model.getValue(xPath_MnphccsrList+"/cretno") + "▦"
  1499. + model.getValue(xPath_MnphccsrList+"/instcd") + "▩";
  1500. setParameter("SMMNP00201_Param", sParam);
  1501. modal("SMMNP00201");
  1502. var sCnt = "";
  1503. var sITM013 = "";
  1504. var sPopParam = getParameter("SendData");
  1505. for(var i=1; i< sPopParam.split("▩").length-1; i++){
  1506. sItemCode = getArrayData(sPopParam,i,0);
  1507. if (sItemCode =="ITM013" || sItemCode =="ITM018") { // ITM013:수술전투약 ,ITM018:혈액
  1508. if (sItemCode =="ITM013") {
  1509. sItmCnt = wDrgIdx;
  1510. model.setValue("/root/init/ItemCheckList/ItemInfoBk", "수술전투약");
  1511. } else {
  1512. sItmCnt = wBolIdx;
  1513. model.setValue("/root/init/ItemCheckList/ItemInfoBk", "혈액준비사항");
  1514. }
  1515. sITM013 = getArrayData(sPopParam,i,1).split("★");
  1516. var jj = sItmCnt + 1; // 14
  1517. var sColor = "#ffc0cb"; // "#ffc0cb"; //FF69B4
  1518. //alert("var "+jj+" = "+sItmCnt+" - 1;")
  1519. if (sITM013.length > 1){
  1520. for(var j=0; j< sITM013.length; j++){
  1521. if ((j > 0) && (sItmCnt <= jj)) {
  1522. grd_ItemCheckList.insertRow(jj,"above", false);
  1523. fRowSyleColor(grd_ItemCheckList, jj, sColor);
  1524. // 20110705 wify 경북대병원 grid.col을 grid.colRef로 정의
  1525. // grd_ItemCheckList.isReadOnly(jj, 3, jj, 5)=sBool1;
  1526. // grd_ItemCheckList.isReadOnly(jj, 6, jj, 7)=sBool2;
  1527. // grd_ItemCheckList.isReadOnly(jj, 8, jj, 9)=sBool3;
  1528. grd_ItemCheckList.isReadOnly(jj, grd_ItemCheckList.colRef("Pyes"), jj, grd_ItemCheckList.colRef("Pnothing"))=sBool1;
  1529. grd_ItemCheckList.isReadOnly(jj, grd_ItemCheckList.colRef("Syes"), jj, grd_ItemCheckList.colRef("Snothing"))=sBool2;
  1530. grd_ItemCheckList.isReadOnly(jj, grd_ItemCheckList.colRef("Oyes"), jj, grd_ItemCheckList.colRef("Onothing"))=sBool3;
  1531. }
  1532. model.setValue("/root/init/ItemCheckList/ItemInfo", sITM013[j]);
  1533. model.copyNode(xPathGride+"["+(jj-1)+"]", "/root/init/ItemCheckList");
  1534. jj++;
  1535. }
  1536. jj--;
  1537. if (sItemCode =="ITM018") {
  1538. wBolCnt = sITM013.length;
  1539. } else {
  1540. wDrgCnt = sITM013.length;
  1541. }
  1542. sItmCnt = sITM013.length;
  1543. }
  1544. //
  1545. // alert("("+wDrgIdx+" > "+jj+")" );
  1546. if (wDrgIdx > jj) {
  1547. for(var j=wDrgIdx; j >= jj; j--){
  1548. grd_ItemCheckList.deleteRow(j, false);
  1549. }
  1550. }
  1551. var sCnt = parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM013']")); // 수술전 투약 건수
  1552. wDrgIdx = sCnt + 18; // 수술전 투약 건수
  1553. wFixGrid = (sCnt - 1)+ 22;
  1554. // wDrgIdx = parseInt(getNodesetCount(xPathGride+"[ItemCode ='ITM013']")) + 13;
  1555. } else {
  1556. model.setValue(xPathGride+"[ItemCode ='"+sItemCode+"']/ItemInfo", getArrayData(sPopParam,i,1));
  1557. }
  1558. }
  1559. grd_ItemCheckList.rebuild();
  1560. }
  1561. /* ---------------------------------------------------------------*/
  1562. /* type : function */
  1563. /* access : public */
  1564. /* desc : 환자별 타업무 연계 정보 조회 */
  1565. /* param : EMR.MNPHCCSR 전체 */
  1566. /* return : */
  1567. /* ---------------------------------------------------------------*/
  1568. function fSrchPatLnkInfo(pFlag){
  1569. var NodeCnt = 0;
  1570. model.removenodeset("/root/send");
  1571. model.makeValue("/root/send/pid" , model.getValue(xPath_MnphccsrList+"/pid"));
  1572. model.makeValue("/root/send/oprsrvdd", model.getValue(xPath_MnphccsrList + "/oprsrvdd"));
  1573. model.makeValue("/root/send/flag" , pFlag);
  1574. if (submit("TRMNP00204")){
  1575. // 알레르기 정보
  1576. if ("all" == pFlag || "allergy" == pFlag){
  1577. model.removenode(xPath_Allergy);
  1578. model.makeNode(xPath_Allergy);
  1579. NodeCnt = getNodesetCnt(model, xPath_PatLnkInfo+"/AllergyList");
  1580. if (NodeCnt > 0){
  1581. for(var j=1; j <= NodeCnt; j++){
  1582. model.duplicate(xPath_Allergy,xPath_PatLnkInfo+"/AllergyList["+j+"]");
  1583. }
  1584. }
  1585. grd_AllergyList.rebuild();
  1586. }
  1587. // 감염정보
  1588. if ("all" == pFlag || "infection" == pFlag){
  1589. model.removenode(xPath_Infection);
  1590. model.makeNode(xPath_Infection);
  1591. NodeCnt = getNodesetCnt(model, xPath_PatLnkInfo+"/InfectionList");
  1592. if (NodeCnt > 0){
  1593. for(var j=1; j <= NodeCnt; j++){
  1594. model.duplicate(xPath_Infection,xPath_PatLnkInfo+"/InfectionList["+j+"]");
  1595. }
  1596. }
  1597. }
  1598. }
  1599. datagrid2.refresh();
  1600. }
  1601. // ------------------------------------------------------
  1602. // ICNP 용어 조회 팝업(SMMNP00201.xfm - JScript )
  1603. // ------------------------------------------------------
  1604. var xPathItem = "/root/main/ItemInfo/ItemCheckList";
  1605. var xPathItemTemp = "/root/ItemCheckLists/ItemCheckList";
  1606. var xPathItemList = "/root/main/ItemInfo/ItemCheckList/ItemList";
  1607. var xFastItemInfoPath = "/root/main/ItemInfo/FastItemInfo"; // 금식
  1608. var xAlgyItemListPath = "/root/main/ItemInfo/AlgyItemInfo/ItemList"; // 알러지
  1609. var xContagSickItemListPath = "/root/main/ItemInfo/ContagSickInfo/ItemList"; // 전염성 질환
  1610. var xEtcItemInfoPath = "/root/main/ItemInfo/EtcItemInfo"; // 기타 항목
  1611. var xPrcpListPath = "/root/main/prcpinfo/prcplist"; // 수술전 처방 목록
  1612. /**
  1613. * @group :
  1614. * @ver : 2007.03.16
  1615. * @by : 최학록
  1616. * @---------------------------------------------------
  1617. * @type : function
  1618. * @access : public
  1619. * @desc : 화면 초기화
  1620. * @param :
  1621. * @return :
  1622. * @---------------------------------------------------
  1623. */
  1624. function fInit(){
  1625. // Test할때 막는부분 ----------------
  1626. var sParamMsg = "";
  1627. var sParamItm = "";
  1628. if (checkOpener()) {
  1629. sParamMsg = opener.javascript.getParameter("SMMNP00201_Param");
  1630. sParamItm = opener.javascript.getParameter("SMMNP00201_Item");
  1631. }
  1632. if(sParamMsg == "") return;
  1633. // 항목 Set
  1634. fSetParameter(sParamItm);
  1635. // 파라메타
  1636. model.setValue("/root/init/cond/pid" , getArrayData(sParamMsg,1,0));
  1637. model.setValue("/root/init/cond/orddd" , getArrayData(sParamMsg,1,1));
  1638. model.setValue("/root/init/cond/cretno" , getArrayData(sParamMsg,1,2));
  1639. model.setValue("/root/init/cond/inoutflag", getArrayData(sParamMsg,1,4));
  1640. // Test할때 막는부분 여기까지----------------
  1641. // 조회조건 SET
  1642. model.removenodeset("/root/send");
  1643. model.makeValue("/root/send/pid" , model.getValue("/root/init/cond/pid" ));
  1644. model.makeValue("/root/send/orddd" , model.getValue("/root/init/cond/orddd" ));
  1645. model.makeValue("/root/send/cretno" , model.getValue("/root/init/cond/cretno"));
  1646. model.makeValue("/root/send/inoutflag", model.getValue("/root/init/cond/inoutflag"));
  1647. if (submit("TRMNP00205")){
  1648. cmb_rgstdata.selectedIndex = 0;
  1649. fSrchPrcpInfo();
  1650. }
  1651. }
  1652. //===================================
  1653. /**
  1654. * @group :
  1655. * @ver : 2007.03.16
  1656. * @by : 최학록
  1657. * @---------------------------------------------------
  1658. * @type : function
  1659. * @access : public
  1660. * @desc : 처방목록
  1661. * @param :
  1662. * @return :
  1663. * @---------------------------------------------------
  1664. */
  1665. function fSetParameter(pItem){
  1666. var sCnt = "";
  1667. var sItemCode = "";
  1668. for(var i=1; i< pItem.split("▩").length-1; i++){
  1669. sItemCode = getArrayData(pItem,i,0);
  1670. sItemInfo = getArrayData(pItem,i,1);
  1671. //
  1672. if(sItemInfo == "") continue;
  1673. //
  1674. sCnt = "";
  1675. switch(sItemCode){
  1676. case "ITM008" : // 알러지여부
  1677. var sITM008 = sItemInfo.split(",");
  1678. for (var j=0; j < sITM008.length; j++){
  1679. if (parseInt(getNodesetCount(xAlgyItemListPath+"[ItmName ='"+sITM008[j]+"']")) == 0) {
  1680. sCnt = (sCnt == "") ? sITM008[j] : (sCnt + "," + sITM008[j]) ;
  1681. } else {
  1682. model.setValue(xAlgyItemListPath+"[ItmName ='"+sITM008[j]+"']/ItmCheck", "true");
  1683. }
  1684. }
  1685. model.setValue("/root/main/ItemInfo/AlgyItemInfo/ItemOther", sCnt);
  1686. break;
  1687. case "ITM017" : // 전염성질환
  1688. var sITM017 = sItemInfo.split(",");
  1689. for (var j=0; j < sITM017.length; j++){
  1690. if (parseInt(getNodesetCount(xContagSickItemListPath+"[ItmName ='"+sITM017[j]+"']")) == 0) {
  1691. sCnt = (sCnt == "") ? sITM017[j] : (sCnt + "," + sITM017[j]) ;
  1692. } else {
  1693. model.setValue(xContagSickItemListPath+"[ItmName ='"+sITM017[j]+"']/ItmCheck", "true");
  1694. }
  1695. }
  1696. model.setValue("/root/main/ItemInfo/ContagSickInfo/ItemOther", sCnt);
  1697. break;
  1698. case "ITM010" : // 금식
  1699. model.setValue(xFastItemInfoPath+"/FastCnts", sItemInfo);
  1700. break;
  1701. case "ITM012" : // 수술부위 피부준비
  1702. model.setValue(xEtcItemInfoPath+"/SkinPrepCnts", sItemInfo);
  1703. break;
  1704. case "ITM013" : // 수술전투약
  1705. RowCnt = grd_Drug.rows;
  1706. for (var iRow = 0; iRow <= RowCnt; iRow++){
  1707. if (iRow == grd_Drug.rows) {
  1708. grd_Drug.addRow();
  1709. }
  1710. //
  1711. if (model.getValue("/root/main/ItemInfo/DrugInfo/DrugList["+(iRow+1)+"]/DrugData") =="") {
  1712. model.setValue("/root/main/ItemInfo/DrugInfo/DrugList["+(iRow+1)+"]/DrugData", sItemInfo);
  1713. break;
  1714. }
  1715. }
  1716. grd_Drug.rebuild();
  1717. //grd_Blod.rebuild();
  1718. break;
  1719. case "ITM018" : // 혈액준비사항
  1720. RowCnt = grd_Blod.rows;
  1721. for (var iRow = 0; iRow <= RowCnt; iRow++){
  1722. if (iRow == grd_Blod.rows) {
  1723. grd_Blod.addRow();
  1724. }
  1725. //
  1726. if (model.getValue("/root/main/ItemInfo/BlodInfo/BlodList["+(iRow+1)+"]/BlodData") =="") {
  1727. model.setValue("/root/main/ItemInfo/BlodInfo/BlodList["+(iRow+1)+"]/BlodData", sItemInfo);
  1728. break;
  1729. }
  1730. }
  1731. grd_Blod.rebuild();
  1732. break;
  1733. case "ITM019" : // 보내는 물품
  1734. model.setValue(xEtcItemInfoPath+"/SendGoodsCnts", sItemInfo);
  1735. break;
  1736. case "ITM021" : // 보내는 약품
  1737. model.setValue(xEtcItemInfoPath+"/SendDrugCnts", sItemInfo);
  1738. break;
  1739. case "ITM011" : // 관장
  1740. model.setValue(xEtcItemInfoPath+"/SendITM011Cnts", sItemInfo);
  1741. break;
  1742. }
  1743. }
  1744. model.refresh();
  1745. }
  1746. //========================================
  1747. /**
  1748. * @group :
  1749. * @ver : 2007.10.15
  1750. * @by :
  1751. * @---------------------------------------------------
  1752. * @type : function
  1753. * @access : public
  1754. * @desc : 전처방 조회
  1755. * @param :
  1756. * @return :
  1757. * @---------------------------------------------------
  1758. */
  1759. function fSrchPrcpInfo(){
  1760. if(model.getValue("/root/init/cond/pid") == "") return;
  1761. var RgstIdx = cmb_rgstdata.selectedIndex + 1;
  1762. var cPath = "/root/main/rgstinfo/rgstlist["+RgstIdx+"]";
  1763. // alert("CMB==>"+cmb_rgstdata.selectedIndex+" :==>"+ RgstIdx);
  1764. // 조회조건 SET
  1765. model.removenodeset("/root/send");
  1766. model.makeValue("/root/send/pid" , model.getValue("/root/init/cond/pid" ));
  1767. model.makeValue("/root/send/orddd" , model.getValue("/root/init/cond/orddd" ));
  1768. model.makeValue("/root/send/cretno" , model.getValue("/root/init/cond/cretno"));
  1769. model.makeValue("/root/send/inoutflag" , model.getValue("/root/init/cond/inoutflag"));
  1770. model.makeValue("/root/send/prcpdd" , model.getValue(cPath+ "/prcpdd" ));
  1771. model.makeValue("/root/send/orddeptcd" , model.getValue(cPath+ "/orddeptcd" ));
  1772. model.makeValue("/root/send/orddrid" , model.getValue(cPath+ "/orddrid" ));
  1773. model.makeValue("/root/send/rgstdd" , model.getValue(cPath+ "/rgstdd" ));
  1774. model.makeValue("/root/send/rgsttm" , model.getValue(cPath+ "/rgsttm" ));
  1775. model.makeValue("/root/send/prcpkindcd" , model.getValue(cPath+ "/prcpkindcd" ));
  1776. if (submit("TRMNP00203")){
  1777. grd_preopprcplist.mergeCells = "bycol";
  1778. grd_preopprcplist.mergeCol(0) = true ;
  1779. grd_preopprcplist.mergeCol(1) = false;
  1780. grd_preopprcplist.mergeCol(2) = false;
  1781. grd_preopprcplist.mergeCol(3) = false;
  1782. grd_preopprcplist.mergeCol(4) = false;
  1783. grd_preopprcplist.mergeCol(5) = false;
  1784. grd_preopprcplist.mergeCol(6) = false;
  1785. grd_preopprcplist.mergeCol(7) = false;
  1786. grd_preopprcplist.mergeCol(8) = false;
  1787. var sPath = "/root/main/prcpinfo/prcplist";
  1788. var sRowCnt = (grd_preopprcplist.rows - grd_preopprcplist.fixedrows) + 1;
  1789. for (var i=1; i < sRowCnt; i++) {
  1790. sPrcpFlag = model.getValue(sPath+"["+i+"]/flag" );
  1791. if ((sPrcpFlag == "[주사]") || (sPrcpFlag == "[경구]") || (sPrcpFlag == "[외용]") || (sPrcpFlag == "[수혈]")) {
  1792. } else {
  1793. model.setvalue(sPath +"["+i+"]/prcpvol" , "");
  1794. model.setvalue(sPath +"["+i+"]/prcpvolunitflag", "");
  1795. model.setvalue(sPath +"["+i+"]/prcpqty" , "");
  1796. model.setvalue(sPath +"["+i+"]/prcpqtyunitflag", "");
  1797. model.setvalue(sPath +"["+i+"]/prcptims" , "");
  1798. model.setvalue(sPath +"["+i+"]/prcpdayno" , "");
  1799. }
  1800. }
  1801. }
  1802. }
  1803. /**
  1804. * @group :
  1805. * @ver : 2007.03.16
  1806. * @by : 최학록
  1807. * @---------------------------------------------------
  1808. * @type : function
  1809. * @access : public
  1810. * @desc : 항목 보내기
  1811. * @param :
  1812. * @return :
  1813. * @---------------------------------------------------
  1814. */
  1815. function fSendItem(){
  1816. var SendData = "itemcd▦iteminfo▩";
  1817. var sCnts = "";
  1818. var iRow = 0;
  1819. var sFastFlag = "";
  1820. var sFastFromDD = "";
  1821. var sFastFromTM = "";
  1822. // 금식
  1823. sCnts = model.getValue(xFastItemInfoPath+"/FastCnts");
  1824. sFastFlag = model.getValue(xFastItemInfoPath+"/FastFlag");
  1825. if(sCnts != "" || sFastFlag != ""){
  1826. if(sFastFlag != ""){
  1827. if (sCnts != "") sCnts += ", ";
  1828. if(sFastFlag == "9"){
  1829. sFastFromDD = model.getValue(xFastItemInfoPath+"/FastFromDD").toDate("YYYYMMDD").getDateFormat("YYYY-MM-DD");
  1830. sFastFromTM = model.getValue(xFastItemInfoPath+"/FastFromTM").toDate("hhmm").getDateFormat("hh:mm");
  1831. sCnts += sFastFromDD+" "+sFastFromTM+"부터 금식 시작";
  1832. }else{
  1833. sCnts += model.getValue("/root/init/FastCheckLists/FastCheckList[itemcd ='"+sFastFlag+"']/itemnm");
  1834. }
  1835. }
  1836. SendData += model.getValue(xFastItemInfoPath+"/ItmCode") + "▦" + sCnts + "▩";
  1837. }
  1838. // 수술부위 피부준비
  1839. sCnts = model.getValue(xEtcItemInfoPath+"/SkinPrepCnts");
  1840. if (sCnts != ""){
  1841. SendData += model.getValue(xEtcItemInfoPath+"/SkinPrepItmCode") + "▦" + sCnts + "▩";
  1842. }
  1843. // 수술전 투약
  1844. sCnts = "";
  1845. if (grd_Drug.rows > 0) {
  1846. var wCnts = "";
  1847. var ii = 0 ;
  1848. for (var iRow = 1; iRow <= grd_Drug.rows; iRow++){
  1849. wCnts = model.getValue("/root/main/ItemInfo/DrugInfo/DrugList["+iRow+"]/DrugData");
  1850. wCnts.replace(/(^\s*)|(\s*$)/g,"");//공백제거됨
  1851. if (wCnts !="") {
  1852. if(ii > 0) sCnts += "★";
  1853. sCnts += wCnts;
  1854. ii++;
  1855. }
  1856. }
  1857. }
  1858. //sCnts = model.getValue(xEtcItemInfoPath+"/MediCnts");
  1859. if (sCnts != ""){
  1860. SendData += model.getValue(xEtcItemInfoPath+"/MediItmCode" ) + "▦" + sCnts + "▩";
  1861. }
  1862. // 혈액준비사항
  1863. // sCnts = model.getValue(xEtcItemInfoPath+"/BlodPrepCnts");
  1864. sCnts = "";
  1865. if (grd_Blod.rows > 0) {
  1866. var wCnts = "";
  1867. var ii = 0 ;
  1868. for (var iRow = 1; iRow <= grd_Blod.rows; iRow++){
  1869. wCnts = model.getValue("/root/main/ItemInfo/BlodInfo/BlodList["+iRow+"]/BlodData");
  1870. wCnts.replace(/(^\s*)|(\s*$)/g,"");//공백제거됨
  1871. if (wCnts !="") {
  1872. if(ii > 0) sCnts += "★";
  1873. sCnts += wCnts;
  1874. ii++;
  1875. }
  1876. }
  1877. }
  1878. // sCnts = model.getValue(xEtcItemInfoPath+"/BlodCnts");
  1879. if (sCnts != ""){
  1880. SendData += model.getValue(xEtcItemInfoPath+"/BlodPrepItmCode") + "▦" + sCnts + "▩";
  1881. }
  1882. // 보내는 물품/약품 --> 약품 물품 분리 작업 기존 사용하던 인스턴스 유지 약품 관련 아이템 추가 : SendDrugCode
  1883. sCnts = model.getValue(xEtcItemInfoPath+"/SendGoodsCnts");
  1884. if (sCnts != ""){
  1885. SendData += model.getValue(xEtcItemInfoPath+"/SendGoodsCode" ) + "▦" + sCnts + "▩";
  1886. }
  1887. //2009-02-24 ycd 보내는 약품
  1888. sCnts = model.getValue(xEtcItemInfoPath+"/SendDrugCnts");
  1889. if (sCnts != ""){
  1890. SendData += model.getValue(xEtcItemInfoPath+"/SendDrugCode" ) + "▦" + sCnts + "▩";
  1891. }
  1892. // 보내는 물품/약품
  1893. sCnts = model.getValue(xEtcItemInfoPath+"/SendITM011Cnts");
  1894. if (sCnts != ""){
  1895. SendData += model.getValue(xEtcItemInfoPath+"/SendITM011" ) + "▦" + sCnts + "▩";
  1896. }
  1897. // 알러지 여부
  1898. sCnts = "";
  1899. for (var i=grd_AlgyItemList.fixedrows; i<= grd_AlgyItemList.rows - grd_AlgyItemList.fixedrows; i++){
  1900. if (model.getValue(xAlgyItemListPath+"["+i+"]/ItmCheck") == "true"){
  1901. if (sCnts != "") {
  1902. sCnts += ",";
  1903. }
  1904. sCnts += model.getValue(xAlgyItemListPath+"["+i+"]/ItmName");
  1905. }
  1906. }
  1907. if (model.getValue("/root/main/ItemInfo/AlgyItemInfo/ItemOther") != ""){
  1908. if (sCnts != "") sCnts += ",";
  1909. sCnts += model.getValue("/root/main/ItemInfo/AlgyItemInfo/ItemOther");
  1910. }
  1911. if( sCnts != ""){
  1912. SendData += model.getValue("/root/main/ItemInfo/AlgyItemInfo/ItemCode") + "▦" + sCnts + "▩";
  1913. }
  1914. // 전염성 질환
  1915. sCnts = "";
  1916. for (var i=grd_ContagSickList.fixedrows; i<= grd_ContagSickList.rows - grd_ContagSickList.fixedrows; i++){
  1917. if (model.getValue(xContagSickItemListPath+"["+i+"]/ItmCheck") == "true"){
  1918. if (sCnts != "") {
  1919. sCnts += ",";
  1920. }
  1921. sCnts += model.getValue(xContagSickItemListPath+"["+i+"]/ItmName");
  1922. }
  1923. }
  1924. if (model.getValue("/root/main/ItemInfo/ContagSickInfo/ItemOther") != ""){
  1925. if (sCnts != "") sCnts += ",";
  1926. sCnts += model.getValue("/root/main/ItemInfo/ContagSickInfo/ItemOther");
  1927. }
  1928. if (sCnts != ""){
  1929. SendData += model.getValue("/root/main/ItemInfo/ContagSickInfo/ItemCode") + "▦" + sCnts + "▩";
  1930. }
  1931. opener.javascript.setParameter("SendData", SendData);
  1932. // model.makeValue("/root/hidden/refinfo/ItemInfo",SendData);
  1933. //
  1934. // if (checkOpener()){
  1935. // model.copyNode(opener.root.HideData.recinfo, root.hidden.refinfo);
  1936. // } else{
  1937. // alert("상위화면이 변경되어 데이터를 전달할 수 없습니다.");
  1938. // }
  1939. // alert(SendData);
  1940. model.close();
  1941. }
  1942. /**
  1943. * @group :
  1944. * @ver : 2007.03.16
  1945. * @by : 최학록
  1946. * @---------------------------------------------------
  1947. * @type : function
  1948. * @access : public
  1949. * @desc : 조회
  1950. * @param :
  1951. * @return :
  1952. * @---------------------------------------------------
  1953. */
  1954. function fSearch(){
  1955. var sTerm = model.getValue(xRefPath+"/terminfo");
  1956. model.removenode("/root/send");
  1957. model.makeValue("/root/send/attrcnts",model.getValue(xRefPath+"/terminfo"));
  1958. submit("TRMNR01501");
  1959. }
  1960. /**
  1961. * @group :
  1962. * @ver : 2007.03.16
  1963. * @by : 최학록
  1964. * @---------------------------------------------------
  1965. * @type : function
  1966. * @access : public
  1967. * @desc : 팝업 호출
  1968. * @param :
  1969. * @return :
  1970. * @---------------------------------------------------
  1971. */
  1972. function fPopUpCall2222(){
  1973. // var xpos = event.screenX-800;
  1974. // var ypos = event.screenY-400;
  1975. var iRow = grd_icnpinfo.row;
  1976. if(iRow < 1){
  1977. messageBox("ICNP 매핑할 용어가","I004");
  1978. return;
  1979. }
  1980. model.makeValue("/root/hidden/refinfo/flag","p");
  1981. open("SMMNR01200",1, 100, 100,"SMMNR01200",xRefPath,xRefPath);
  1982. var sTermInfo = getParameter("terminfo");
  1983. var sValue = sTermInfo.split("▦");
  1984. if(sTermInfo == "") return;
  1985. model.setValue(xICNPListPath+"["+iRow+"]/semantictype", sValue[0]);
  1986. model.setValue(xICNPListPath+"["+iRow+"]/itemcd" , sValue[1]);
  1987. model.setValue(xICNPListPath+"["+iRow+"]/icnphngterm" , sValue[2]);
  1988. model.setValue(xICNPListPath+"["+iRow+"]/icnpengterm" , sValue[3]);
  1989. grd_icnpinfo.rebuild();
  1990. }
  1991. /**
  1992. * @group :
  1993. * @ver : 2007.03.16
  1994. * @by : 최학록
  1995. * @---------------------------------------------------
  1996. * @type : function
  1997. * @access : public
  1998. * @desc : 처방목록
  1999. * @param :
  2000. * @return :
  2001. * @---------------------------------------------------
  2002. */
  2003. function fDdlClickGridRow(){
  2004. var iRow = grd_preopprcplist.row;
  2005. var sItemCD = "";
  2006. var sPrcpNM = "";
  2007. var sPrcpVol = "";
  2008. var sPrcpQty = "";
  2009. var sPrcpTims = "";
  2010. var sPrcpDayNo = "";
  2011. var sAbbrNM = "";
  2012. var sCnts = "";
  2013. var sCnts2 = "";
  2014. var sPrcpKindCd = "";
  2015. //
  2016. if(iRow < 1 || !grd_preopprcplist.isCell(event.target)) return;
  2017. //
  2018. sItemCD = model.getValue("/root/init/cond/itemcd" );
  2019. sPrcpFlag = model.getValue(xPrcpListPath+"["+iRow+"]/flag" );
  2020. sPrcpNM = model.getValue(xPrcpListPath+"["+iRow+"]/prcpnm" );
  2021. sPrcpVol = model.getValue(xPrcpListPath+"["+iRow+"]/prcpvol" )+model.getValue(xPrcpListPath+"["+iRow+"]/prcpvolunitflag");
  2022. sPrcpQty = model.getValue(xPrcpListPath+"["+iRow+"]/prcpqty" )+model.getValue(xPrcpListPath+"["+iRow+"]/prcpqtyunitflag");
  2023. sPrcpTims = model.getValue(xPrcpListPath+"["+iRow+"]/prcptims" );
  2024. // sPrcpDayNo = model.getValue(xPrcpListPath+"["+iRow+"]/prcpdayno" );
  2025. sAbbrNM = model.getValue(xPrcpListPath+"["+iRow+"]/abbrnm" );
  2026. sPrcpKindCd = model.getValue(xPrcpListPath+"["+iRow+"]/prcpkindcd" );
  2027. if (sPrcpFlag != "[Nurse]") {
  2028. if(sPrcpVol != "") sPrcpNM += "/" + sPrcpVol ;
  2029. if(sPrcpQty != "") sPrcpNM += "/" + sPrcpQty ;
  2030. if(sPrcpTims != "") sPrcpNM += "/" + sPrcpTims ;
  2031. if(sPrcpDayNo != "") sPrcpNM += "/" + sPrcpDayNo;
  2032. if(sAbbrNM != "-" && sAbbrNM != ""){
  2033. sPrcpNM += "/" + sAbbrNM;
  2034. }
  2035. }
  2036. //
  2037. if(sItemCD == "") return;
  2038. //
  2039. switch(sItemCD){
  2040. case "ITM010" : // 금식
  2041. sCnts = model.getValue(xFastItemInfoPath+"/FastCnts");
  2042. if (sCnts != "") sCnts += ", ";
  2043. sCnts += sPrcpNM;
  2044. model.setValue(xFastItemInfoPath+"/FastCnts", sCnts);
  2045. break;
  2046. case "ITM012" : // 수술부위 피부준비
  2047. sCnts = model.getValue(xEtcItemInfoPath+"/SkinPrepCnts");
  2048. if (sCnts != "") sCnts += ", ";
  2049. sCnts += sPrcpNM;
  2050. model.setValue(xEtcItemInfoPath+"/SkinPrepCnts", sCnts);
  2051. break;
  2052. case "ITM013" : // 수술전투약
  2053. /*
  2054. // ====== 2008-11-17 오전 9:57:53 taebum add ============================
  2055. if((model.getValue("/root/init/cond/rgstdata")).substr(0,3) != "수술전"){
  2056. alert("수술전 처방만 선택 가능합니다.");
  2057. return;
  2058. }
  2059. // ======================================================================
  2060. */
  2061. if ((sPrcpFlag == "[주사]") || (sPrcpFlag == "[경구]") || (sPrcpFlag == "[외용]")) {
  2062. } else {
  2063. alert("[주사],[경구],[외용] 약만 선택 가능합니다.");
  2064. return;
  2065. }
  2066. RowCnt = grd_Drug.rows;
  2067. for (var iRow = 0; iRow <= RowCnt; iRow++){
  2068. if (iRow == grd_Drug.rows) {
  2069. grd_Drug.addRow();
  2070. }
  2071. //
  2072. if (model.getValue("/root/main/ItemInfo/DrugInfo/DrugList["+(iRow+1)+"]/DrugData") =="") {
  2073. model.setValue("/root/main/ItemInfo/DrugInfo/DrugList["+(iRow+1)+"]/DrugData", sPrcpNM);
  2074. break;
  2075. }
  2076. }
  2077. grd_Blod.rebuild();
  2078. break;
  2079. case "ITM018" : // 혈액준비사항
  2080. if (sPrcpFlag != "[수혈]") {
  2081. alert("[수혈]만 선택 가능합니다.");
  2082. return;
  2083. }
  2084. RowCnt = grd_Blod.rows;
  2085. for (var iRow = 0; iRow <= RowCnt; iRow++){
  2086. if (iRow == grd_Blod.rows) {
  2087. grd_Blod.addRow();
  2088. }
  2089. //
  2090. if (model.getValue("/root/main/ItemInfo/BlodInfo/BlodList["+(iRow+1)+"]/BlodData") =="") {
  2091. model.setValue("/root/main/ItemInfo/BlodInfo/BlodList["+(iRow+1)+"]/BlodData", sPrcpNM);
  2092. break;
  2093. }
  2094. }
  2095. grd_Blod.rebuild();
  2096. break;
  2097. case "ITM019" : // 보내는 물품/약품 --> 보내는 물품 정보만 등록
  2098. if ((sPrcpFlag == "[주사]") || (sPrcpFlag == "[경구]") || (sPrcpFlag == "[외용]")) {
  2099. messageBox("약품은 선택 불가능합니다.", "I000");
  2100. return;
  2101. }
  2102. sCnts = model.getValue(xEtcItemInfoPath+"/SendGoodsCnts");
  2103. if (sCnts != "") sCnts += ", ";
  2104. sCnts += sPrcpNM;
  2105. model.setValue(xEtcItemInfoPath+"/SendGoodsCnts", sCnts);
  2106. break;
  2107. // 2009-02-24 ycd 보낸는 물품, 약품 분리
  2108. case "ITM021" : // 보내는 약품
  2109. if ((sPrcpFlag == "[주사]") || (sPrcpFlag == "[경구]") || (sPrcpFlag == "[외용]")) {
  2110. } else {
  2111. messageBox("[주사],[경구],[외용] 약만 선택 가능합니다.", "I000");
  2112. return;
  2113. }
  2114. sCnts = model.getValue(xEtcItemInfoPath+"/SendDrugCnts");
  2115. if (sCnts != "") sCnts += ", ";
  2116. sCnts += sPrcpNM;
  2117. model.setValue(xEtcItemInfoPath+"/SendDrugCnts", sCnts);
  2118. break;
  2119. case "ITM011" : // 관장
  2120. sCnts = model.getValue(xEtcItemInfoPath+"/SendITM011Cnts");
  2121. if (sCnts != "") sCnts += ", ";
  2122. sCnts += sPrcpNM;
  2123. model.setValue(xEtcItemInfoPath+"/SendITM011Cnts", sCnts);
  2124. break;
  2125. }
  2126. model.refresh();
  2127. }
  2128. // 대기실 수술실 Check
  2129. function fStayOperCheck(){
  2130. // 일일수술실 환자 or 현장수술은 대기실 같이 기록
  2131. if(sDutDSCFlag != "Y" && sWardOP != "Y" && (output1.value == "" || output2.value == "")){
  2132. messageBox("간호단위에서 기록한 후에 선택이 가능합니다.", "I000");
  2133. chk_stay.value = "";
  2134. chk_oper.value = "";
  2135. return;
  2136. }
  2137. btn_ins_grid.disabled = true;
  2138. btn_del_grid.disabled = true;
  2139. if (model.getValue("/root/init/SendData/oprsrvno") != "" ){
  2140. if(sPatCls == "B"){ //분만실, DSC 일경우, 병원
  2141. if(model.getValue("/root/init/staycls") == "" ){
  2142. txt_nurg.disabled = false;
  2143. btn_pcainput.disabled = false;
  2144. ipt_oppatbdtp.disabled = false;
  2145. ipt_oppatbdwt.disabled = false;
  2146. ipt_oppatbdht.disabled = false;
  2147. ipt_oppatsbp.disabled = false;
  2148. ipt_oppatdbp.disabled = false;
  2149. inp_wardstartdt.disabled = false;
  2150. inp_wardstarttm.disabled = false;
  2151. bbt_wardstart.disabled = false;
  2152. //병동 도착 일시 활성/비활성
  2153. ipt_wardarrvdt.disabled = false;
  2154. ipt_wardarrvtm.disabled = false;
  2155. btn_wardarrv.disabled = false;
  2156. txt_oper.disabled = true;
  2157. inp_patarrvdt.disabled = true;
  2158. inp_patarrvtm.disabled = true;
  2159. bbt_patarrv.disabled = true;
  2160. sBool1 = false;
  2161. } else {
  2162. if (sDutDSCFlag != "Y") {
  2163. txt_nurg.disabled = true;
  2164. btn_pcainput.disabled = true;
  2165. ipt_oppatbdtp.disabled = true;
  2166. ipt_oppatbdwt.disabled = true;
  2167. ipt_oppatbdht.disabled = true;
  2168. ipt_oppatsbp.disabled = true;
  2169. ipt_oppatdbp.disabled = true;
  2170. inp_wardstartdt.disabled = true;
  2171. inp_wardstarttm.disabled = true;
  2172. bbt_wardstart.disabled = true;
  2173. }
  2174. //병동 도착 일시 활성/비활성
  2175. ipt_wardarrvdt.disabled = false;
  2176. ipt_wardarrvtm.disabled = false;
  2177. btn_wardarrv.disabled = false;
  2178. txt_oper.disabled = false;
  2179. inp_patarrvdt.disabled = false;
  2180. inp_patarrvtm.disabled = false;
  2181. bbt_patarrv.disabled = false;
  2182. sBool1 = true;
  2183. }
  2184. } else {
  2185. txt_nurg.disabled = true;
  2186. btn_pcainput.disabled = true;
  2187. ipt_oppatbdtp.disabled = true;
  2188. ipt_oppatbdwt.disabled = true;
  2189. ipt_oppatbdht.disabled = true;
  2190. ipt_oppatsbp.disabled = true;
  2191. ipt_oppatdbp.disabled = true;
  2192. inp_wardstartdt.disabled = true;
  2193. inp_wardstarttm.disabled = true;
  2194. //병동 도착 일시 활성/비활성
  2195. ipt_wardarrvdt.disabled = true;
  2196. ipt_wardarrvtm.disabled = true;
  2197. btn_wardarrv.disabled = true;
  2198. bbt_wardstart.disabled = true;
  2199. txt_oper.disabled = false;
  2200. inp_patarrvdt.disabled = false;
  2201. inp_patarrvtm.disabled = false;
  2202. bbt_patarrv.disabled = false;
  2203. sBool1 = true;
  2204. }
  2205. }
  2206. if (model.getValue("/root/init/staycls") == "1"){
  2207. if (model.getValue(xPath_MnphccsrList+"/staycnfmpat") == "") {
  2208. model.setValue(xPath_MnphccsrList+"/staycnfmpat" , "1");
  2209. model.setValue(xPath_MnphccsrList+"/staycnfmid" , "2");
  2210. model.setValue(xPath_MnphccsrList+"/staycnfmdr" , "3");
  2211. model.setValue(xPath_MnphccsrList+"/staycnfmpart" , "4");
  2212. model.setValue(xPath_MnphccsrList+"/staycnfmpartdisp", "Y");
  2213. }
  2214. grd_ItemCheckList.fixedcellcheckbox(1,grd_ItemCheckList.colRef("Syes")) = true;
  2215. sBool2 = false;
  2216. fControlAttribute(grd_ItemCheckList);
  2217. if (model.getValue(xPath_MnphccsrList+"/staychfrecdttm") == "") {
  2218. btn_rgst_tmp.disabled = false;
  2219. } else {
  2220. btn_rgst_tmp.disabled = true;
  2221. }
  2222. } else {
  2223. grd_ItemCheckList.fixedcellcheckbox(1,grd_ItemCheckList.colRef("Syes")) = false;
  2224. sBool2 = true;
  2225. fControlAttribute(grd_ItemCheckList);
  2226. }
  2227. //
  2228. if (model.getValue("/root/init/staycls") == "2"){
  2229. if (model.getValue(xPath_MnphccsrList+"/opercnfmpat") == "") {
  2230. model.setValue(xPath_MnphccsrList+"/opercnfmpat" , "1");
  2231. model.setValue(xPath_MnphccsrList+"/opercnfmid" , "2");
  2232. model.setValue(xPath_MnphccsrList+"/opercnfmdr" , "3");
  2233. model.setValue(xPath_MnphccsrList+"/opercnfmpart" , "4");
  2234. model.setValue(xPath_MnphccsrList+"/opercnfmpartdisp", "Y");
  2235. }
  2236. grd_ItemCheckList.fixedcellcheckbox(1,grd_ItemCheckList.colRef("Oyes")) = true;
  2237. sBool3 = false;
  2238. fControlAttribute(grd_ItemCheckList);
  2239. if (model.getValue(xPath_MnphccsrList+"/operchfrecdttm") == "") {
  2240. btn_rgst_tmp.disabled = false;
  2241. } else {
  2242. btn_rgst_tmp.disabled = true;
  2243. }
  2244. } else {
  2245. grd_ItemCheckList.fixedcellcheckbox(1,grd_ItemCheckList.colRef("Oyes")) = false;
  2246. sBool3 = true;
  2247. fControlAttribute(grd_ItemCheckList);
  2248. }
  2249. ipt_wardarrvdt.disabled = true;
  2250. ipt_wardarrvtm.disabled = true;
  2251. btn_wardarrv.disabled = true;
  2252. grd_ItemCheckList.refresh();
  2253. model.refresh();
  2254. }
  2255. var rStyleData = "473*470#0*943";
  2256. var rStyle = rStyleData.split("#");
  2257. //
  2258. var tColWidth = "52,159,29,28,29,27,28,43,54,0#52,477,50,50,50,50,50,50,94,0";
  2259. var tWidth = tColWidth.split("#");
  2260. // --------------------------------------------------
  2261. // Grid 속성변경 처리하는 함수
  2262. // --------------------------------------------------
  2263. function fSetAttribute(pIdx) {
  2264. var Idx = pIdx;
  2265. //if (grd_preopprcplist.attribute("left") == "490px" || grd_preopprcplist.attribute("left") == "490") {
  2266. // Idx = 0;
  2267. //}
  2268. var sStyle = rStyle[Idx].split("*");
  2269. //alert(grd_preopprcplist.attribute("left")+"=="+sStyle[0]+"=="+sStyle[1]);
  2270. grd_preopprcplist.attribute("left" ) = sStyle[0];
  2271. grd_preopprcplist.attribute("width" ) = sStyle[1];
  2272. var cIdx = 1;
  2273. var sWidth = tWidth[Idx].split(",");
  2274. for (i = 0; i < sWidth.length; i++) {
  2275. grd_preopprcplist.colwidth(i) = sWidth[i];
  2276. cIdx++;
  2277. }
  2278. grd_preopprcplist.refresh();
  2279. }
  2280. // ※ 전자서명 호출
  2281. function fSignProcessSet() {
  2282. //2009-02-25 YCD 인증서 호출 설정 주석 처리
  2283. //Sign.certreload = true;
  2284. var sInoutflag = model.getValue(xPath_MnphccsrList + "/inoutflag" ); // 07 외래입원구분
  2285. var sOpPatflagcd = model.getValue("/root/main/operation/list/oppatflagcd"); // 11 환자구분
  2286. if( (sInoutflag != sOpPatflagcd)&&(sOpPatflagcd != "") ) {
  2287. //기록지데이터랑 스케쥴 데이터랑 틀릴경우 스케쥴데이터로 처리 2010.03.10 K. J. M
  2288. //수술준비확인 기록이후 외래에서 입원으로 스케쥴이 변경된경우 점검리스트 처방 콤보가 제대로 끌려오지 않음
  2289. sInoutflag = sOpPatflagcd;
  2290. }
  2291. if( Sign.signprocess() == true ){ // ▶ 전자인증 관련 환자 인적 정보를 보내줌.
  2292. var wSigninfo = "pid" +"▦" // 등록번호
  2293. + "orddd" +"▦" // 입원일자(입원,응급)/진료일자(외래)
  2294. + "cretno" +"▦" // 생성번호
  2295. + "signno" +"▦" // 서명번호(인증번호)
  2296. + "recdd" +"▦" // 실제 기록이 이루어진 기록일자
  2297. + "rectm" +"▦" // 실제 기록이 이루어진 기록시간
  2298. + "recsaveflag" +"▦" // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  2299. + "signflag" +"▦" // 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  2300. + "signgenrflag" +"▦" // 외래/입원구분(코드정의서 M0010 참조)
  2301. + "formcd" +"▦" // 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
  2302. + "orddeptcd" +"▦" // 진료부서코드
  2303. + "orddrid" +"▦" // 진료의사ID (집도의)
  2304. + "signbfcnts" +"▦" // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  2305. + "signaftcnts" +"▩" // ▶ 공인인증 처리후 데이터
  2306. + model.getValue(xPath_MnphccsrList+"/pid" )+"▦" // 등록번호
  2307. + model.getValue(xPath_MnphccsrList+"/orddd" )+"▦" // 입원일자(입원,응급)/진료일자(외래)
  2308. + model.getValue(xPath_MnphccsrList+"/cretno" )+"▦" // 생성번호
  2309. + model.getValue(xPath_MnphccsrList+"/certno" )+"▦" // 서명번호(인증번호)
  2310. + getCurrentDate() +"▦" // 실제 기록이 이루어진 기록일자
  2311. + getCurrentTime() +"▦" // 실제 기록이 이루어진 기록시간
  2312. + "N" +"▦" // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  2313. + "02" +"▦" // 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  2314. + sInoutflag +"▦" // 외래/입원구분(코드정의서 M0010 참조)
  2315. + "0000002431" +"▦" // 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
  2316. + model.getValue(xPath_MnphccsrList+"/orddeptcd")+"▦" // 진료부서코드
  2317. + model.getValue(xPath_MnphccsrList+"/perfdrid" )+"▦" // 진료의사ID (집도의)
  2318. + Sign.signedInfos[1] +"▦" // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  2319. + Sign.signedInfos[2] +"▩"; // ▶ 공인인증 처리후 데이터
  2320. model.makeValue("/root/send/signinfo" , wSigninfo);
  2321. // model.makeValue("/root/send/signinfo/pid" , model.getValue(xPath_MnphccsrList+"/pid" )); // 등록번호
  2322. // model.makeValue("/root/send/signinfo/orddd" , model.getValue(xPath_MnphccsrList+"/orddd" )); // 입원일자(입원,응급)/진료일자(외래)
  2323. // model.makeValue("/root/send/signinfo/cretno" , model.getValue(xPath_MnphccsrList+"/cretno" )); // 생성번호
  2324. // model.makeValue("/root/send/signinfo/signno" , model.getValue(xPath_MnphccsrList+"/certno" )); // 서명번호(인증번호)
  2325. // model.makeValue("/root/send/signinfo/recdd" , getCurrentDate() ); // 실제 기록이 이루어진 기록일자
  2326. // model.makeValue("/root/send/signinfo/rectm" , getCurrentTime() ); // 실제 기록이 이루어진 기록시간
  2327. // model.makeValue("/root/send/signinfo/recsaveflag" , "N" ); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  2328. // model.makeValue("/root/send/signinfo/signflag" , "02" ); // 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  2329. // model.makeValue("/root/send/signinfo/signgenrflag", model.getValue(xPath_MnphccsrList+"/inoutflag" )); // 외래/입원구분(코드정의서 M0010 참조)
  2330. // model.makeValue("/root/send/signinfo/formcd" , "0000002431" ); // 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
  2331. // model.makeValue("/root/send/signinfo/orddeptcd" , model.getValue(xPath_MnphccsrList+"/orddeptcd" )); // 진료부서코드
  2332. // model.makeValue("/root/send/signinfo/orddrid" , model.getValue(xPath_MnphccsrList+"/perfdrid" )); // 진료의사ID (집도의)
  2333. // model.makeValue("/root/send/signinfo/signbfcnts" , Sign.signedInfos[1]); // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  2334. // model.makeValue("/root/send/signinfo/signaftcnts" , Sign.signedInfos[2]); // ▶ 공인인증 처리후 데이터
  2335. }else{
  2336. return false;
  2337. }
  2338. }
  2339. // ※ 인증데이터 생성함수 만들기
  2340. function fMake_SignData(){
  2341. //2008-08-29 오전 11:18:34 사용자 요구사항
  2342. //간호상태 확인 사항이 예인 경우에만 통합기록조회에서 보여지도록 수정중... 완료된 상태 아님. 주석처리
  2343. // signdata 생성 장소 : /root/temp/SignData/SignInfo/MnphccsrList/curenurgstatspec/ItemCheckLists
  2344. // check 항목 : /root/temp/SignData/SignInfo/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList/
  2345. //1. 원본 간호상태 확인 사항을 복사한다.
  2346. model.copyNode("/root/Hide/org_statspec", "/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists");
  2347. //2.
  2348. var iCurrentStatCnt = getNodesetCount("/root/Hide/org_statspec/ItemCheckList");
  2349. var sTempStateCopyNodePath = "/root/Hide/signstatspec";
  2350. var sPyesFlag = "";
  2351. var sSyesFlag = "";
  2352. var sOyesFlag = "";
  2353. //model.removenode(sTempStateCopyNodePath);
  2354. if(iCurrentStatCnt > 0){
  2355. for(var i = 1; i <= iCurrentStatCnt; i++){
  2356. sPyesFlag = model.getValue("/root/Hide/org_statspec/ItemCheckList["+i+"]/Pyes");
  2357. sSyesFlag = model.getValue("/root/Hide/org_statspec/ItemCheckList["+i+"]/Syes");
  2358. sOyesFlag = model.getValue("/root/Hide/org_statspec/ItemCheckList["+i+"]/Oyes");
  2359. if(sPyesFlag == "true" || sSyesFlag == "true"|| sOyesFlag == "true"){
  2360. model.duplicate(sTempStateCopyNodePath, "/root/Hide/org_statspec/ItemCheckList["+i+"]");
  2361. }
  2362. }
  2363. }
  2364. model.removenode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists");
  2365. model.makenode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists");
  2366. model.copyNode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists", sTempStateCopyNodePath);
  2367. // ▶ 인스턴스 copy 후에 콤보나 체크박스 같은 경우 코드값은 명칭으로 변경해야 함.
  2368. // fSetSignData();
  2369. // Ex)
  2370. // var xRecinfoPath = Sign.XPATH_SIGNINFO+"/recinfo/recinfolists";
  2371. // // 투석장?
  2372. // var sDialPlacCd = model.getValue(xRecinfoPath+"/dialplaccd";
  2373. // if (sDialPlacCd != ""){
  2374. // model.setValue(xRecinfoPath+"/dialplaccd", model.getValue("/root/init/M0129list/M0129[cdid='"+sDialPlacCd+"']/cdnm"));
  2375. // }
  2376. // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
  2377. Sign.addnode(xPath_MnphccsrList);
  2378. Sign.addnode("/root/main/MnphccsrData/specimenlistnew");
  2379. //2008-09-09 오전 10:18:07 taebum 기존에 기록된 내역을 copy한다.
  2380. model.removenode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists");
  2381. model.copyNode("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists", "/root/Hide/org_statspec");
  2382. }
  2383. /**
  2384. * 환자 도착일시 값 변경 시 이벤트
  2385. *
  2386. */
  2387. function fValueChangedPatArrOpRoom(){
  2388. var sArriTime = model.getValue("/root/main/MnphccsrData/MnphccsrList/patarrvtm");
  2389. //시간에 입력된 자릿수가 4이상일 경우 바코드에서 넘어온 데이터 이므로 현재 시/분을 넣는다.
  2390. if(sArriTime.length != null && sArriTime.length > 4){
  2391. //alert("barcode reading 구현 부분입니다.");
  2392. //********************************************************************
  2393. //환자 정보 꼭 확인 해야하는 로직 추가
  2394. //********************************************************************
  2395. sArriTime = getCurrentTime().substr(0, 4);
  2396. model.setValue("/root/main/MnphccsrData/MnphccsrList/patarrvtm", sArriTime);
  2397. inp_patarrvtm.refresh();
  2398. }
  2399. var sSmsYn = model.getValue("/root/main/MnphccsrData/MnphccsrList/smsagreeyn");
  2400. var sPatarrisndsmsid = model.getValue("/root/main/MnphccsrData/MnphccsrList/patarrisndsmsid");
  2401. if(sArriTime != "" && sArriTime != null && sArriTime != "undefined" && sSmsYn == "Y" && sPatarrisndsmsid == ""){
  2402. if(fValidForSendMsg()){
  2403. //재확인
  2404. setParameter("SPMNP00305_message", "메세지 SMS 문자전송 동의 하시겠습니까?");
  2405. setParameter("SPMNP00305_button1", "동 의");
  2406. setParameter("SPMNP00305_button2", "취 소");
  2407. setParameter("SPMNP00305_buttonFocus", "button2");
  2408. setParameter("SPMNP00305_capinfo", "대기실 입실저장 SMS전송");
  2409. modal("SPMNP00305", "", 300, 400, "SPMNP00305", "width:510px;height:130px;");
  2410. var sResult = getParameter("SPMNP00305_result");
  2411. //alert(sResult);
  2412. if (sResult != "true"){
  2413. return;
  2414. }
  2415. var sPatarrisndsmsid = model.getValue("/root/main/MnphccsrData/MnphccsrList/patarrisndsmsid");
  2416. if(sPatarrisndsmsid == "" || sPatarrisndsmsid == null || sPatarrisndsmsid == "undefinded"){
  2417. model.setValue("/root/init/sms/arrsmssendflag","Y");
  2418. }else{
  2419. model.setValue("/root/init/sms/arrsmssendflag","N");
  2420. }
  2421. //설정 후 인증저장 proccess를 그대로 이용한다고 함.
  2422. fSave("C");
  2423. }else{
  2424. return;
  2425. }
  2426. }else{
  2427. fSave("C");
  2428. }
  2429. }
  2430. /**
  2431. * SMS 전송시 연락처1 체크
  2432. *
  2433. */
  2434. function fValidForSendMsg(pFlag){
  2435. var sSmsTel = model.getValue("/root/main/MnphccsrData/MnphccsrList/etctel1");
  2436. /*
  2437. if(sSmsTel.length != 10 && sSmsTel.length != 11){
  2438. messageBox("SMS 전송할 연락처는 10자리 또는 11자리 입니다.", "");
  2439. return false;
  2440. }
  2441. */
  2442. /*
  2443. if(sSmsTel.substr(0,2) != "01"){
  2444. messageBox("SMS 입력형식은 01XXXXXXXX 또는 01XXXXXXXXX 입니다.", "");
  2445. return false;
  2446. }
  2447. */
  2448. /*
  2449. if(sSmsTel == "" || sSmsTel == null || sSmsTel == "undefined"){
  2450. if(pFlag != true ){
  2451. messageBox("SMS 입력형식은 XXX-XXX-XXXX 또는 XXX-XXXX-XXXX 입니다.", "");
  2452. return false;
  2453. }
  2454. }else{
  2455. var sTelArr = sSmsTel.split("-");
  2456. if(sTelArr.length != 3){
  2457. messageBox("SMS 입력형식은 XXX-XXX-XXXX 또는 XXX-XXXX-XXXX 입니다.", "");
  2458. return false;
  2459. }
  2460. if(sTelArr[0] == null || sTelArr[0] == "" || sTelArr[0] == "undefined" || sTelArr[0].length != 3 || sTelArr[0].substr(0,2) != "01"){
  2461. if(isNaN(sTelArr[0]) == true){
  2462. messageBox("SMS 첫번째자리 입력형식은 숫자형이 아닙니다.", "");
  2463. return false;
  2464. }
  2465. messageBox("SMS 첫번째자리 입력형식은 01X 입니다.", "");
  2466. return false;
  2467. }else{
  2468. if(isNaN(sTelArr[0]) == true){ //9: 숫자 0 : 숫자아님
  2469. messageBox("SMS 첫번째자리 입력형식은 숫자형이 아닙니다.", "");
  2470. return false;
  2471. }
  2472. }
  2473. if(sTelArr[1] == null || sTelArr[1] == "" || sTelArr[1] == "undefined" || sTelArr[1].length < 3 || sTelArr[1].length > 4 ){
  2474. if(isNaN(sTelArr[1]) == true){
  2475. messageBox("SMS 두번째자리 입력형식은 숫자형이 아닙니다.", "");
  2476. return false;
  2477. }
  2478. messageBox("SMS 두번째 자리 입력형식은 XXX 또는 XXXX 입니다.", "");
  2479. return false;
  2480. }else{
  2481. if(isNaN(sTelArr[1]) == true){
  2482. messageBox("SMS 두번째자리 입력형식은 숫자형이 아닙니다.", "");
  2483. return false;
  2484. }
  2485. }
  2486. if(sTelArr[2] == null || sTelArr[2] == "" || sTelArr[2] == "undefined" || (sTelArr[2].length != 4) ){
  2487. if(isNaN(sTelArr[2]) == true){
  2488. messageBox("SMS 세번째자리 입력형식은 숫자형이 아닙니다.", "");
  2489. return false;
  2490. }
  2491. messageBox("SMS 세번째 자리 입력형식은 XXXX 입니다.", "");
  2492. return false;
  2493. }else{
  2494. if(isNaN(sTelArr[2]) == true){
  2495. messageBox("SMS 세번째자리 입력형식은 숫자형이 아닙니다.", "");
  2496. return false;
  2497. }
  2498. }
  2499. }
  2500. */
  2501. return true;
  2502. }
  2503. /**
  2504. * CheckBox를 check 선택했을 경우 이벤트
  2505. *
  2506. */
  2507. function fOnSelectCheckBox(pGridNm){
  2508. if(grd_ItemCheckList.row == 1){
  2509. GridNm = eval(pGridNm);
  2510. for (var iRow = GridNm.fixedrows; iRow < GridNm.rows; iRow++){
  2511. if (chk_stay.value == "1") { //환자확인 : 대기실 선택시
  2512. GridNm.valueMatrix(iRow ,GridNm.colRef("Sno")) = "false";
  2513. GridNm.valueMatrix(iRow ,GridNm.colRef("Snothing")) = "false";
  2514. GridNm.valueMatrix(ITM002,GridNm.colRef("Syes")) = "false";
  2515. GridNm.valueMatrix(ITM022,GridNm.colRef("Syes")) = "false";
  2516. } else if (chk_stay.value == "2") {//환자확인 : 수술실 선택시
  2517. GridNm.valueMatrix(iRow ,GridNm.colRef("Ono")) = "false";
  2518. GridNm.valueMatrix(iRow ,GridNm.colRef("Onothing")) = "false";
  2519. GridNm.valueMatrix(ITM002,GridNm.colRef("Oyes")) = "false";
  2520. GridNm.valueMatrix(ITM022,GridNm.colRef("Oyes")) = "false";
  2521. } else if( GridNm.col == GridNm.colRef("Pyes") ){ //간호단위에 예 체크시
  2522. GridNm.valueMatrix(iRow ,GridNm.colRef("Pno")) = "false";
  2523. GridNm.valueMatrix(iRow ,GridNm.colRef("Pnothing")) = "false";
  2524. GridNm.valueMatrix(ITM002,GridNm.colRef("Pyes")) = "false";
  2525. GridNm.valueMatrix(ITM022,GridNm.colRef("Pyes")) = "false";
  2526. }else{
  2527. GridNm.valueMatrix(iRow ,GridNm.colRef("Pno")) = "false";
  2528. GridNm.valueMatrix(iRow ,GridNm.colRef("Pnothing")) = "false";
  2529. }
  2530. }
  2531. }
  2532. fControlAttribute(grd_ItemCheckList);
  2533. }
  2534. /**
  2535. * CheckBox를 check 해제 선택했을 경우 이벤트
  2536. */
  2537. function fOnUnSelectCheckBox(pGridNm){
  2538. if(grd_ItemCheckList.row == 1){
  2539. GridNm = eval(pGridNm);
  2540. for (var iRow = GridNm.fixedrows; iRow < GridNm.rows; iRow++){
  2541. if (chk_stay.value == "1") {
  2542. GridNm.valueMatrix(iRow ,GridNm.colRef("Syes")) = "false";
  2543. } else if (chk_stay.value == "2") {
  2544. GridNm.valueMatrix(iRow ,GridNm.colRef("Oyes")) = "false";
  2545. } else if( grd_spclistnew.col == grd_spclistnew.colRef("Pyes") ) {
  2546. GridNm.valueMatrix(iRow ,GridNm.colRef("Pyes")) = "false";
  2547. } else {
  2548. // GridNm.valueMatrix(iRow ,GridNm.colRef("Pyes")) = "false";
  2549. }
  2550. }
  2551. }
  2552. fControlAttribute(grd_ItemCheckList);
  2553. }
  2554. function fDscRecCopy() {
  2555. // //kjs 수정 시작
  2556. // var item3 = "";
  2557. // var item4 = "";
  2558. // var item5 = "";
  2559. //
  2560. // for (var i = 1; i <= grd_ItemCheckList.rows-2; i++) {
  2561. // item3 = model.getValue("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList[" + i + "]/Pyes");
  2562. // item4 = model.getValue("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList[" + i + "]/Pno");
  2563. // item5 = model.getValue("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList[" + i + "]/Pnothing");
  2564. //
  2565. // model.makeValue("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList[" + i + "]/Syes", item3);
  2566. // model.makeValue("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList[" + i + "]/Sno", item4);
  2567. // model.makeValue("/root/main/MnphccsrData/MnphccsrList/curenurgstatspec/ItemCheckLists/ItemCheckList[" + i + "]/Snothing", item5);
  2568. // }
  2569. // //grd_ItemCheckList.refresh();
  2570. // //fStayOperCheck();
  2571. // chk_stay.select(0);
  2572. }
  2573. /* ------------------------------------------------- */
  2574. /* ------End Of List ------------------------------- */
  2575. /* -------------------------------------------------- */
  2576. function fNrCpRecord() {
  2577. var cpPid = model.getValue("/root/main/paminfo/list/pid");
  2578. var cpIndd = model.getValue("/root/main/paminfo/list/indd");
  2579. var cpCretno = model.getValue("/root/main/paminfo/list/cretno");
  2580. var cpPatnm = model.getValue("/root/main/paminfo/list/hngnm2");
  2581. var cpRoom = model.getValue("/root/main/paminfo/list/roomcd");
  2582. var cpSexage = model.getValue("/root/main/paminfo/list/sex") + "/" + model.getValue("/root/main/paminfo/list/age");
  2583. var cpOrddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
  2584. var cpMedispclid = model.getValue("/root/main/paminfo/list/medispclid");
  2585. var cpWardstartdt = model.getValue("/root/main/MnphccsrData/MnphccsrList/wardstartdt");
  2586. var cpWardstarttm = model.getValue("/root/main/MnphccsrData/MnphccsrList/wardstarttm");
  2587. var cpWardarrvdt = model.getValue("/root/main/MnphccsrData/MnphccsrList/wardarrvdt");
  2588. var cpWardarrvtm = model.getValue("/root/main/MnphccsrData/MnphccsrList/wardarrvtm");
  2589. var cpSupcdid = "";
  2590. model.removenode("root/send/recinfo");
  2591. model.makeValue("root/send/recinfo/pid", cpPid);
  2592. model.makeValue("root/send/recinfo/indd", cpIndd);
  2593. model.makeValue("root/send/recinfo/cretno", cpCretno);
  2594. model.makeValue("root/send/recinfo/checkdate", getCurrentDate());
  2595. //CP 대상 환자여부
  2596. if (submit("TRMNR02903")) {
  2597. var cpCpyn = model.getValue("/root/temp/cpinfo/cpyn");
  2598. var cpCpgno = model.getValue("/root/temp/cpinfo/cpgno");
  2599. var cpRecType = "CP5";
  2600. var cpOrigincd = "";
  2601. if (cpCpyn == "Y" && cpCpgno != 0) {
  2602. //출발일시 기록이면 수술전 간호기록 _ CP3
  2603. //도착일시 기록이면 수술후 간호기록 _ CP4
  2604. if (cpWardarrvdt == "" || cpWardarrvtm == ""){
  2605. cpRecType = "CP3";
  2606. } else{
  2607. cpRecType = "CP4";
  2608. }
  2609. //기록여부 확인
  2610. model.makeValue("/root/temp/cpinfo/cdgrupid", cpRecType);
  2611. if (submit("TRMNW01107")) { //간호기록 코드 가지고 오기
  2612. cpOrigincd = model.getValue("/root/main/cpinfo/termcd/cdid");
  2613. cpSupcdid = model.getValue("/root/main/cpinfo/termcd/supcdid");
  2614. if (cpOrigincd == null || cpOrigincd == "") {
  2615. } else {
  2616. model.makeValue("root/send/recinfo/origincd", cpOrigincd);
  2617. if (submit("TRMNR02902")) {
  2618. var recyn = model.getValue("/root/temp/recinfo/recyn");
  2619. if (recyn != "Y") {
  2620. var rtnval = "";
  2621. if (cpRecType == "CP3") {
  2622. rtnval = messageBox("CP 대상환자입니다. 해당 CP에 구성되어있는 [수술 전 간호기록]을 진행하시겠습니까?", "Q999");
  2623. } else {
  2624. rtnval = messageBox("CP 대상환자입니다. 해당 CP에 구성되어있는 [수술 후 간호기록]을 진행하시겠습니까?", "Q999");
  2625. }
  2626. if (rtnval == "6") {
  2627. //기록 화면으로 연결
  2628. setParameter("pid", cpPid);
  2629. setParameter("indd", cpIndd);
  2630. setParameter("cretno", cpCretno);
  2631. setParameter("patnm", cpPatnm);
  2632. setParameter("room", cpRoom);
  2633. setParameter("sexage", cpSexage);
  2634. setParameter("orddeptcd", cpOrddeptcd);
  2635. setParameter("medispclid", cpMedispclid);
  2636. setParameter("cdid", cpOrigincd);
  2637. setParameter("supcdid", cpSupcdid);
  2638. modal("SMMNR02900", 1, 0, 0 ,"", "", "");
  2639. }
  2640. }
  2641. }
  2642. }
  2643. }
  2644. }
  2645. }
  2646. }