SMMNP00400.js 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152
  1. /* ---------------------------------------------------------------------
  2. 수술마취메인 (SMMNP00100.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var s1="";
  9. /**
  10. * @group :
  11. * @ver : 2007.04.17
  12. * @by : Choi HakRok
  13. * @---------------------------------------------------
  14. * @type : function
  15. * @access : public
  16. * @desc : 수술 예약정보 가져오기
  17. * @param :
  18. * @return :
  19. * @---------------------------------------------------
  20. */
  21. function fInit(){
  22. //grp_ordmn.visible = false;
  23. //grp_opm.visible = true;
  24. //roundrect1.visible = true;
  25. //cap_state.visible = true;
  26. chk_opnmen.value = "Y";
  27. chk_diagnmkr.value = "Y";
  28. group1.visible = true;
  29. grp_opmdisc.visible = true;
  30. var param = getScreenMenuParameter();
  31. var node = getGlobalVariable("operation");
  32. setCSVToNode("/root/main/operation", node);
  33. inp_opddfr.value = getCurrentDate();
  34. inp_opddto.value = getCurrentDate();
  35. grd_oppatlist.explorerbar = "sortshow";
  36. model.setValue("/root/main/cond/usernm", getUserName() );
  37. model.setValue("/root/main/cond/orddd" , getCurrentDate());//업무일자(Order Manage 조회일자)
  38. model.removenode("/root/send");
  39. model.makeValue("/root/send/flag" , "X" );
  40. model.makeValue("/root/send/searchitem", "XX" );
  41. model.makeValue("/root/send/deptflag" , "011" );
  42. submit("TRMNP00107", false);
  43. submit("TRMNP03004") // 수술실(Rosette) 가져오기
  44. model.removenode("/root/send");
  45. model.makeNode("/root/send");
  46. model.makeValue("/root/send/opcnfmdd" , model.getValue("/root/main/cond/opddfr"));
  47. model.makeValue("/root/send/rosette" ,model.getValue("/root/main/cond/oprosette"));
  48. submit("TRMNP03002"); // 수술실코드 가져오기
  49. addComboItem("cmb_oproomlist","전체","","above");
  50. //addComboItem("cmb_oproomlist", "전 체", "", "above" ); //2009-03-16 TRMNP03004 추가로 인하여 삭제 처리
  51. addComboItem("cmb_orddept" , "전 체" , "" , "above" );
  52. addComboItem("cmb_ccrtstatlist" , "전 체" , "" , "above" ); //2009/01/07 추가부분
  53. addComboItem("cmb_rosette" , "전 체" , "" , "above" );
  54. if( param == "ordmn" ) {//메뉴를 통해 Order Manage를 선택한 경우
  55. fSeletedToggle( param );
  56. }else {
  57. fSelectPos();
  58. }
  59. }
  60. /* --------------------------------------------------*/
  61. /* type : function */
  62. /* access : public */
  63. /* desc : 수술/마취 메인 조회 */
  64. /* param : */
  65. /* return : */
  66. /* --------------------------------------------------*/
  67. function fSelectPos() {
  68. var iRows = -1;
  69. var opflagcd, callyn;
  70. var sPrcpCnt = 0;
  71. var sDispCnt = 0;
  72. model.removenode("/root/send");
  73. model.makeNode("/root/send/reqdata" ); //저장 후 조회조건
  74. model.copyNode("/root/send/reqdata", "/root/main/cond");
  75. submit("TRMNP00401");
  76. iRows = getNodesetCount("/root/main/opPatlist/opPatInfo");
  77. var refMsg = model.getValue("/root/properties/error/msg");
  78. var refMsgCnt = refMsg.substring(0, 1);
  79. if( refMsgCnt == "0" ) {
  80. model.removeNodeset("/root/main/opPatlist/opPatInfo");
  81. if(chk_opnmen.value == "Y"){
  82. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = false;
  83. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  84. }else{
  85. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = true;
  86. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  87. }
  88. if(chk_opnmkr.value == "Y"){
  89. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = false;
  90. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  91. }else{
  92. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = true;
  93. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  94. }
  95. if(chk_afopnm.value == "Y"){
  96. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = false;
  97. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "115";
  98. }else{
  99. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = true;
  100. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "0";
  101. }
  102. model.refresh();
  103. return;
  104. }else {
  105. var ii = 0 ;
  106. var wCnfmDT = "";
  107. var sRoomCd = "";
  108. var wRoomCd = model.getValue("/root/main/opPatlist/opPatInfo[1]/oproomcd");
  109. for(var i = 1; i<=iRows; i++) {
  110. wCnfmDT = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/opcnfmdd")
  111. + model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/fstrgstdt").substr(0,4);
  112. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/fstrgstdt", wCnfmDT);
  113. sRoomCd = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/oproomcd");
  114. callyn = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/callyn");
  115. opflagcd = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/opflagcd");
  116. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/delivefact") != "") {
  117. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("delivefactyn")) = "../../../com/commonweb/images/icon_list.gif";
  118. }else{
  119. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("delivefactyn")) = "";
  120. }
  121. if(model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp1") == "Y" ||
  122. model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp2") == "Y" ||
  123. model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp3") == "Y" ){
  124. sDispCnt++;
  125. }
  126. //감염정보
  127. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp1") == "Y") {
  128. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp1img")) = "../../../com/hismainweb/images/injector_en.gif";
  129. }else{
  130. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp1img")) = "";
  131. }
  132. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp2") == "Y") {
  133. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp2img")) = "../../../com/hismainweb/images/touch_en.gif";
  134. }else{
  135. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp2img")) = "";
  136. }
  137. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp3") == "Y") {
  138. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp3img")) = "../../../com/hismainweb/images/air_en.gif";
  139. }else{
  140. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp3img")) = "";
  141. }
  142. if(model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/uncnfm") != "0/0/0"){
  143. sPrcpCnt++;
  144. }
  145. //변경여부
  146. var cnfmcnclresncd = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd");
  147. if( ( cnfmcnclresncd == "302" )||( cnfmcnclresncd == "303" ) ) {//수술시간변경(환자, 병원사유)
  148. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓣ");
  149. }else if( cnfmcnclresncd == "305" ) {//수술집도의 변경
  150. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓞ");
  151. }else if( cnfmcnclresncd == "301" ) {//수술명 변경
  152. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓝ");
  153. }else if( cnfmcnclresncd == "307" ) {//마취방법 변경
  154. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓐ");
  155. }else if( cnfmcnclresncd == "306" ) {//수술방 변경
  156. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓡ");
  157. }else if( cnfmcnclresncd == "308" ) {//수술집도과 변경
  158. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓓ");
  159. }else if( cnfmcnclresncd == "309" ) {//수술체위 변경
  160. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓢ");
  161. }else{
  162. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "");
  163. }
  164. if( wRoomCd != sRoomCd ) {
  165. ii++;
  166. wRoomCd = sRoomCd;
  167. }
  168. if( ii % 2 == 0 ) {//짝수
  169. grd_oppatlist.rowstyle( i , "data", "background-color") = "#FFFFFF";
  170. }else {
  171. grd_oppatlist.rowstyle( i , "data", "background-color") = "#F7FFF7";
  172. }
  173. if( (opflagcd == "1")||(opflagcd == "3") ){//정규, 추가
  174. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2D2D";
  175. }
  176. if( opflagcd == "2" ) {//응급
  177. grd_oppatlist.rowstyle( i , "data", "color") = "#D22D2D";
  178. }
  179. // 2008-03-13 수정 요청으로... // 2008-08-22 오전 10:27:32 주석해제
  180. //if( opflagcd == "3" ) {//추가
  181. // grd_oppatlist.rowstyle( i , "data", "color") = "#000000";
  182. //}
  183. if( callyn == "Y" ) {//호출여부
  184. grd_oppatlist.rowstyle( i , "data", "background-color") = "#c9d6b9";
  185. }
  186. if( opflagcd == "4" ) {//취소
  187. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2DD2";
  188. }
  189. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/opstatcd").substr(1,1)=="9") {//임시취소
  190. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2DD2";
  191. }
  192. // 마취회복실 응급CCDBAG 사용 했는지 여부에 따라 면색 표기
  193. if( model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/aerbgcd") != ""){
  194. grd_oppatlist.cellStyle("background-color",i, grd_oppatlist.colRef("ccrtstatnm"), i, grd_oppatlist.colRef("ccrtstatnm")) = "#FFFF00";
  195. }
  196. }
  197. if(chk_opnmen.value == "Y"){
  198. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = false;
  199. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  200. }else{
  201. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = true;
  202. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  203. }
  204. if(chk_opnmkr.value == "Y"){
  205. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = false;
  206. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  207. }else{
  208. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = true;
  209. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  210. }
  211. if(chk_diagnmen.value == "Y"){
  212. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagengnm")) = false;
  213. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  214. }else{
  215. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagengnm")) = true;
  216. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  217. }
  218. if(chk_diagnmkr.value == "Y"){
  219. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagcdnm")) = false;
  220. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  221. }else{
  222. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagcdnm")) = true;
  223. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  224. }
  225. if(chk_afopnm.value == "Y"){
  226. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = false;
  227. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "115";
  228. }else{
  229. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = true;
  230. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "0";
  231. }
  232. }
  233. // 혈액준비자 리스트 및 혈액표시 기능 조회 추가_20091007(ByJA)
  234. var blodpreppatlist = "";
  235. for(var i=1; i <grd_oppatlist.rows; i++){
  236. var blodprep = model.getValue("/root/main/opPatlist/opPatInfo[" + i + "]/blodprepyn");
  237. if(blodprep == "Y") {
  238. // 혈액준비자 리스트 값 셋팅
  239. if (blodpreppatlist == "") {
  240. blodpreppatlist = model.getValue("/root/main/opPatlist/opPatInfo[" + i + "]/hngnm");
  241. }else{
  242. blodpreppatlist = blodpreppatlist + ", " + model.getValue("/root/main/opPatlist/opPatInfo[" + i + "]/hngnm");
  243. }
  244. // 혈액표시 이미지
  245. model.makeValue("/root/main/opPatlist/opPatInfo[" + i + "]/blodprepyn", "");
  246. grd_oppatlist.cellstyle("background-image", i , grd_oppatlist.colRef("blodprepyn")) = "../../../emr/commonweb/images/blood.gif";
  247. }else{
  248. grd_oppatlist.cellstyle("background-image", i , grd_oppatlist.colRef("blodprepyn")) = "";
  249. }
  250. }
  251. model.makeValue("/root/temp/blodpreplist", blodpreppatlist); // 혈액준비자 리스트
  252. tar_blodprep.refresh();
  253. model.setValue("/root/temp/sPrcpCnt", sPrcpCnt);
  254. model.setValue("/root/temp/sDispCnt", sDispCnt);
  255. opt_prcpcnt.refresh();
  256. opt_dispcnt.refresh();
  257. model.refresh();
  258. }
  259. /* --------------------------------------------------*/
  260. /* type : function */
  261. /* access : public */
  262. /* desc : 콤보아이템 제거 */
  263. /* param : */
  264. /* return : */
  265. /* --------------------------------------------------*/
  266. function removeComboItem( comboID ) {
  267. var comboObj = document.all.item(comboID);
  268. var comboItemNodeSet = comboObj.choices.itemset.attribute("nodeset");
  269. model.removenode(comboItemNodeSet + "[1]");
  270. model.refresh();
  271. }
  272. /* --------------------------------------------------*/
  273. /* type : function */
  274. /* access : public */
  275. /* desc : 탭 메뉴 선택처리 함수 */
  276. /* param : selFlag : 선택 탭 구분값 */
  277. /* return : */
  278. /* --------------------------------------------------*/
  279. function fSeletedToggle( selFlag ) {
  280. if(model.getValue("/root/main_om/cond/hopedd")==""){
  281. model.makeValue("/root/main_om/cond/hopedd",'4');
  282. model.makeValue("/root/main_om/cond/hopefmdd", '');
  283. model.makeValue("/root/main_om/cond/hopetodd", '');
  284. }
  285. switch(selFlag) {
  286. case "opm" :
  287. model.toggle("opmain");
  288. fSelectPos();
  289. break;
  290. case "ordmn" :
  291. model.toggle("ordmanage");
  292. fGetOMPatList("op");
  293. break;
  294. }
  295. }
  296. /**
  297. * @group :
  298. * @ver : 2007.06.07
  299. * @by : Choi HAkRok
  300. * @---------------------------------------------------
  301. * @type : function
  302. * @access : public
  303. * @desc : 화면상단정보설정
  304. * @param :
  305. * @return :
  306. * @---------------------------------------------------
  307. */
  308. function fSetParam(){
  309. // 입원환자 화면상단정보 설정
  310. if(grd_oppatlist.rows == "1"){
  311. return;
  312. } else {
  313. var sPath = "/root/main/opPatlist/opPatInfo";
  314. var sPatFlag = model.getValue(sPath+"["+grd_oppatlist.row+"]/oppatflagcd");
  315. if (model.getValue(sPath+"["+grd_oppatlist.row+"]/opstatcd").substr(1,1)=="9") {
  316. messageBox('취소된 자료는 선택', 'E001');
  317. return;
  318. }
  319. //2008-08-28 오전 10:09:15 taebum add 수술기록 관련 요구사항 처리중
  320. var sOpenSusulOprsrvno = model.getAttribute("susulrec_oprsrvno");
  321. var sCurrentOprsrvno = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oprsrvno");
  322. if(sOpenSusulOprsrvno != null && sOpenSusulOprsrvno != "" && sOpenSusulOprsrvno != "undefined"){
  323. if(sOpenSusulOprsrvno != sCurrentOprsrvno){
  324. var sOpenSusulPid = model.getAttribute("susulrec_pid" );
  325. var sOpenSusulHngnm = model.getAttribute("susulrec_hngnm");
  326. messageBox("등록번호 : "+sOpenSusulPid+" "+sOpenSusulHngnm+"님의 수술기록 작성 중 입니다. 작성완료 후 수술기록을 닫으시기 바랍니다.", "");
  327. return;
  328. }
  329. }
  330. var sOpenTempOprsrvno = model.getAttribute("SuSulOrder_Temp_oprsrvno");
  331. if(sOpenTempOprsrvno != null && sOpenTempOprsrvno != "" && sOpenTempOprsrvno != "undefined"){
  332. if(sOpenTempOprsrvno != sCurrentOprsrvno){
  333. var sOpenTempPid = model.getAttribute("SuSulOrder_Temp_pid");
  334. var sOpenTempHngnm = model.getAttribute("SuSulOrder_Temp_hngnm");
  335. messageBox("등록번호 : "+sOpenTempPid+" "+sOpenTempHngnm+"님의 수술/마취 간호처방 작성 중 입니다. 작성완료 후 수술/마취 간호처방을 닫으시기 바랍니다.", "");
  336. return;
  337. }
  338. }
  339. //2008-09-30 오전 12:19:07 taebum
  340. //환자구분이 DSC일 경우 수술구분이 정규이면서 현재일자가 수술일자 이전일 경우 CartList만
  341. //저장할 수 있도록 외래상단정보 세팅. 후 수술마취 간호처방에 parameter를 전송한다.
  342. /*
  343. var oppatflagnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oppatflagnm");
  344. var opflagcdnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opflagcdnm");
  345. if((oppatflagnm == "DSC") && (opflagcdnm == "정규") && ( sCurrentdd < opcnfmdd )){
  346. */
  347. //2008-09-26 오전 11:05:01 taebum DSC 뿐 아니라 외래로 확정한 케이스에도 CartList 저장 및 상단 정보 생성요청 적용중.
  348. var sTmpIndd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/iindd");
  349. var orddeptcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/orddeptcd");
  350. var opcnfmdd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opcnfmdd");
  351. var sCurrentdd = getCurrentDate();
  352. if(sTmpIndd == "" || sTmpIndd == null || sTmpIndd == "undefined"){
  353. var sTmpPid = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/pid");
  354. model.removenode("/root/send");
  355. model.makeNode("/root/send/reqdata" ); //저장 후 조회조건
  356. model.makeValue("/root/send/reqdata/pid" , sTmpPid);
  357. model.makeValue("/root/send/reqdata/opcnfmdd", opcnfmdd);
  358. model.makeValue("/root/send/reqdata/orddeptcd", orddeptcd);
  359. submit("TRMNP00108");
  360. if(model.getValue("/root/HideData/otptinfo/pid") != "" &&
  361. model.getValue("/root/HideData/otptinfo/pid") != null &&
  362. model.getValue("/root/HideData/otptinfo/pid") != "undefined" ){
  363. if (sPatFlag == "") {
  364. sPatFlag = "O";
  365. }
  366. var param = "";
  367. if(sPatFlag == "D" || sPatFlag == "I" || sPatFlag == "E"){
  368. //외래환자 상단올리기
  369. var param = model.getValue("/root/HideData/otptinfo/ordtype") + "▦"
  370. + model.getValue("/root/HideData/otptinfo/pid") + "▦"
  371. + model.getValue("/root/HideData/otptinfo/orddd") + "▦"
  372. + model.getValue("/root/HideData/otptinfo/cretno") + "▦"
  373. + model.getValue("/root/HideData/otptinfo/instcd") + "▦"
  374. + "" + "▦"
  375. + model.getValue("/root/HideData/otptinfo/orgorddd");
  376. setParameter("condparam", param);
  377. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  378. }else{
  379. param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  380. + model.getValue(sPath+"["+grd_oppatlist.row+"]/pid" ) + "▦" // 02 등록번호
  381. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦" // 03 수술시작일자
  382. + model.getValue(sPath+"["+grd_oppatlist.row+"]/cretno" ) + "▦" // 04 cretno(없는 경우 ""로 처리)
  383. + model.getValue(sPath+"["+grd_oppatlist.row+"]/instcd" ) + "▦" // 05 기관코드
  384. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdeptcd" ) + "▦" // 06 집도과부서
  385. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdrid1" ) + "▦" // 07 집도의ID
  386. + sPatFlag + "▦" // 08 환자구분
  387. + "F▦" // 09 F -처리구분 무조건 F로 설정
  388. + model.getValue(sPath+"["+grd_oppatlist.row+"]/oprsrvno" ) + "▦" // 10 수술예약번호
  389. + model.getValue(sPath+"["+grd_oppatlist.row+"]/ophistno" ) + "▦" // 11 수술이력번호
  390. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  391. }
  392. setParameter("condparam", param);
  393. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  394. }
  395. }else{
  396. // sPatFlag = (sPatFlag == "O" ) ? "O" : "I";
  397. // sPatFlag = (sPatFlag == "D" ) ? "O" : sPatFlag;
  398. if (sPatFlag == "") {
  399. sPatFlag = "I";
  400. }
  401. var param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  402. + model.getValue(sPath+"["+grd_oppatlist.row+"]/pid" ) + "▦" // 02 등록번호
  403. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦" // 03 수술시작일자
  404. + "▦" // 04 cretno(없는 경우 ""로 처리)
  405. + getUserInfo("dutplceinstcd") + "▦" // 05 기관코드
  406. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdeptcd" ) + "▦" // 06 집도과부서
  407. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdrid1" ) + "▦" // 07 집도의ID
  408. + sPatFlag + "▦" // 08 환자구분
  409. + "F▦" // 09 F -처리구분 무조건 F로 설정
  410. + model.getValue(sPath+"["+grd_oppatlist.row+"]/oprsrvno" ) + "▦" // 10 수술예약번호
  411. + model.getValue(sPath+"["+grd_oppatlist.row+"]/ophistno" ) + "▦" // 11 수술이력번호
  412. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  413. setParameter("condparam", param);
  414. //modal("SPMMO08900"); // modal("SPMMO08900", "1", "5","25");
  415. modal("SPMMO08900", 1, "", "", "", "SPMMO08900", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  416. }
  417. var curNurType2Obj = getOpenWindow("SMMNP00200");
  418. if(curNurType2Obj != null){//준비확인이 열려있으면 상단 환자로 재조회2010.01.04 K.J.M
  419. curNurType2Obj.javascript.fFormInit();
  420. }
  421. }
  422. }
  423. //
  424. function fShowPopup(pData){
  425. var PopupName = "수술준비확인 #"
  426. + "간호일지 Type II #"
  427. + "마취간호처방 #"
  428. + "마약처방관리 #"
  429. + "혈액불출관리 #"
  430. + "현장검사입력 #"
  431. + "바코드출력 #"
  432. + "NAME LABEL 출력 #";
  433. var PopupNm = PopupName.split("#");
  434. var Idx = Number(pData);
  435. fSetParam(); // 상단정보 올리기.
  436. // var paramValue = model.getValue("/root/parameters/SPMMO08900_rtn_useyn/SPMMO08900_rtn_useynvalue");
  437. // if( paramValue == "Y" ) {//상단 정보올리기 성공시만 처리
  438. switch(Idx) {
  439. case 0://수술준비확인
  440. setParameter("OpMenu", "O");
  441. open("SMMNP00200", "", "100", "100", "SMMNP00200", "", "");
  442. break;
  443. case 1://간호일지 Type II
  444. var parammsg = "recflag▦dutplaccd▦reclnkkey▩P▦900▦"+model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oprsrvno")+","+getUserInfo("dutplceinstcd")+"▩";
  445. setParameter("SMMNR03400_ParamBase",parammsg);
  446. modal("SMMNR03400");
  447. break;
  448. case 2://마취간호처방
  449. /*
  450. var oppatflagnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oppatflagnm");
  451. var opflagcdnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opflagcdnm");
  452. var opcnfmdd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opcnfmdd");
  453. var sCurrentdd = getCurrentDate();
  454. if((oppatflagnm == "DSC") && (opflagcdnm == "정규") && ( sCurrentdd < opcnfmdd )){
  455. */
  456. //2008-09-30 오전 12:20:54 taebum DSC 뿐 아니라 외래로 확정한 케이스에도 CartList 저장 및 상단 정보 생성요청 적용중.
  457. var sTmpIndd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/iindd");
  458. var orddeptcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/orddeptcd");
  459. var opcnfmdd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opcnfmdd");
  460. var sCurrentdd = getCurrentDate();
  461. if(sTmpIndd == "" || sTmpIndd == null || sTmpIndd == "undefined"){
  462. var iCurrentrow = grd_oppatlist.row;
  463. if(iCurrentrow > 0){
  464. var sOprsrvno = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oprsrvno");
  465. var sInstcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/instcd");
  466. var sOphistno = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/ophistno");
  467. var sOphistcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/ophistcd");
  468. model.setAttribute("SuSulOrder_Oprsinfo_oprsrvno", sOprsrvno);
  469. model.setAttribute("SuSulOrder_Oprsinfo_instcd" , sInstcd);
  470. model.setAttribute("SuSulOrder_Oprsinfo_ophistno", sOphistno);
  471. model.setAttribute("SuSulOrder_Oprsinfo_ophistcd", sOphistcd);
  472. }
  473. }
  474. open("SMMNP01800", "", "100", "100", "SMMNP01800", "", "");
  475. break;
  476. case 3://마약처방관리
  477. open("SMADT30400", "", "100", "100", "SMADT30400", "", "");
  478. break;
  479. case 4://혈액불출관리
  480. setParameter("SMMNR010_Param", "IPRC1");
  481. open("SMMNR01000", "", "100", "100", "SMMNR01000", "", "");
  482. break;
  483. case 5://현장검사입력
  484. open("SMLLR91100", "", "100", "100", "SMLLR91100", "", "");
  485. break;
  486. case 6://바코드출력
  487. open("SMLLC00200", "", "100", "100", "SMLLC00200", "", "");
  488. break;
  489. case 7://NAME LABEL 출력
  490. group5.visible = true;//출력장수 선택
  491. //var iRow = -1;
  492. //iRow = grd_oppatlist.row;
  493. //var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid");
  494. //var hngnm = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/hngnm");
  495. //var sexage = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/sa");
  496. //fPrintNameLabel(pid, hngnm, sexage);
  497. break;
  498. case 8://수술간호기록
  499. open("SMMNP00300", "", "100", "100", "SMMNP00300", "", "");
  500. break;
  501. case 9://수술실 전광판관리
  502. open("SMMNP06100", "", "100", "100", "SMMNP06100", "", "");
  503. break;
  504. case 10://단문메시지 발송
  505. open("SPZMS00100", "", "100", "100", "SPZMS00100", "", "");
  506. break;
  507. case 11://이송요원호출
  508. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/pid");
  509. var prcpnm = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/opcdknm");
  510. var kind = "5";//기타
  511. var arvposcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/startposcd");
  512. var rsrvdt = "";
  513. var startposcd = getUserInfo("dutplcecd");
  514. fInsTranCallOP(pid, prcpnm, kind, rsrvdt, arvposcd, startposcd);
  515. modal("SMMNB01800" ,"", "200", "200", "SMMNB01800", "", "");
  516. break;
  517. case 12://보호자 호출
  518. var iRow = -1;
  519. var message = "";
  520. iRow = grd_oppatlist.row;
  521. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid" );
  522. var patnm = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/hngnm" );
  523. var oproomcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oproomcd");
  524. var oprsrvno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno");
  525. var sa = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/sa" );
  526. var opdd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opcnfmdd");
  527. var callyn = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/callyn");
  528. var calltel = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/calltel");
  529. var opstatcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opstatcd");
  530. var curtDate = getCurrentDate();
  531. curtDate = curtDate.substring(0, 8);
  532. oproomcd = oproomcd.setReplaceWord("0", ""); //'0'을 공백으로 대체
  533. // 2009-03-02 ycd 호출 Message 선택 기능 추가로 인하여 삭제 처리
  534. //message = patnm + "(" + sa + ") 보호자분은 수술실 입구로 오시기 바랍니다.";
  535. if( (opstatcd == "10")||(opstatcd == "19")||(opstatcd == "20")||(opstatcd == "29")||(opstatcd == "39")||(opstatcd == "49")||(opstatcd == "50")||(opstatcd == "70") ){
  536. messageBox("수술 예정, 취소, 종료 환자는 보호자 호출을", "E001");
  537. return;
  538. }
  539. if( opdd == curtDate ) {
  540. if( oprsrvno != "" ) {
  541. if( callyn == "Y" ) {
  542. messageBox("이미 호출 중 ", "E008");
  543. }else {
  544. if( calltel == "" ) {//호출 전화번호가 없으면 N으로 셋팅
  545. //calltel = "N";
  546. messageBox("호출 전화번호가 ", "I004");
  547. return;
  548. }
  549. //2009-03-02 YCD Message 선택 화면 Parameter 설정 및 호출 추가
  550. setParameter("SPMNP00101_Param", "patnm▦oproomcd▩" + patnm + "▦" + oproomcd + "▩");
  551. setParameter("SPMNP00101_RtnData", "");
  552. modal("SPMNP00101");
  553. message = getParameter("SPMNP00101_RtnData");
  554. if(message == ""){
  555. return;
  556. }
  557. model.removenode("/root/send");
  558. model.makeValue("/root/send/savedata/oprsrvno", oprsrvno);
  559. model.makeValue("/root/send/savedata/message", message);
  560. model.makeValue("/root/send/savedata/calltel", calltel);
  561. model.makeValue("/root/send/savedata/patnm", patnm);
  562. model.makeValue("/root/send/savedata/callyn", callyn);
  563. model.makeValue("/root/send/savedata/stat", "I");
  564. submit("TXMNP00101");
  565. messageBox("호출 ", "I002");
  566. }
  567. }else {
  568. messageBox("수술예약번호가 ", "I004");
  569. }
  570. }else {
  571. messageBox("현재 날짜 이외의 환자는 호출 ", "E001");
  572. }
  573. fSelectPos();
  574. break;
  575. case 13://보호자 호출취소
  576. var iRow = -1;
  577. iRow = grd_oppatlist.row;
  578. var oprsrvno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno");
  579. var callyn = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/callyn");
  580. var opdd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opcnfmdd");
  581. var curtDate = getCurrentDate();
  582. curtDate = curtDate.substring(0, 8);
  583. if( opdd == curtDate ) {
  584. if( oprsrvno != "" ) {
  585. if( callyn != "Y" ) {
  586. messageBox("미호출 상태 ", "E008");
  587. }else {
  588. model.removenode("/root/send");
  589. model.makeValue("/root/send/savedata/oprsrvno", oprsrvno);
  590. model.makeValue("/root/send/savedata/stat", "C");
  591. submit("TXMNP00101");
  592. messageBox("호출 취소를 ", "I002");
  593. }
  594. }else {
  595. messageBox("수술예약번호가 ", "I004");
  596. }
  597. }else {
  598. messageBox("현재 날짜 이외의 환자는 호출 취소", "E001");
  599. }
  600. fSelectPos();
  601. break;
  602. case 14://입 실 취 소
  603. // 직위 1140:간호사, 1110:수간호사
  604. // if (getUserInfo("jobposcd") == "1140" ||
  605. // getUserInfo("jobposcd") == "1110" ) {
  606. // fInOutRoomSave("9"); // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  607. // } else {
  608. // alert("입실 취소는 수간호사 선생님만 가능합니다.("+getUserInfo("jobkindnm")+")");
  609. // return;
  610. // }
  611. fInOutRoomSave("9"); // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  612. break;
  613. case 15://재수술 승인/취소
  614. // 2009-03-02 YCD 재수술일 경우 수술전준비확인 없이 간호기록이 가능하도록 처리 하기 위하여 재수술 체크 누락건에 한에서 간호에서
  615. // 재수술 승인을 할 수 있도록 처리하도록 함. 취소는 간호사가 재수술 승인한 경우에만 가능함.
  616. var iRow = -1;
  617. iRow = grd_oppatlist.row;
  618. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid" );
  619. var patnm = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/hngnm" );
  620. var oproomcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oproomcd" );
  621. var oprsrvno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno" );
  622. var sa = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/sa" );
  623. var opdd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opcnfmdd" );
  624. var callyn = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/callyn" );
  625. var calltel = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/calltel" );
  626. var opstatcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opstatcd" );
  627. var reopflag = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/reopflag" );
  628. var nursreoprgstid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/nursreoprgstid" );
  629. var nursreoprgstdt = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/nursreoprgstdt" );
  630. var nursreopcncldt = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/nursreopcncldt" );
  631. var indd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/iindd" );
  632. var procflag = "E"; //R : 재수술 처리, C : 재수술 취소, E : 실행 종료 처리
  633. var rtnmsg = "";
  634. if(reopflag == "Y"){ //재수술 체크가 되어 있을 경우
  635. if(nursreoprgstid == "-"){
  636. procflag = "E";
  637. messageBox("의사 재수술 지정 스케쥴입니다.", "I000");
  638. return;
  639. }else{
  640. procflag = "C";
  641. }
  642. }else{
  643. procflag = "R";
  644. }
  645. if(procflag == "R"){
  646. rtnmsg = messageBox("재수술 처리를","Q004");
  647. }else if(procflag == "C"){
  648. rtnmsg = messageBox("재수술 취소 처리를","Q004");
  649. }else{
  650. return;
  651. }
  652. if(rtnmsg == "6"){
  653. model.removenode("/root/send");
  654. model.makeValue("/root/send/savedata/oprsrvno" , oprsrvno );
  655. model.makeValue("/root/send/savedata/procflag" , procflag );
  656. model.makeValue("/root/send/savedata/pid" , pid );
  657. model.makeValue("/root/send/savedata/opcnfmdd" , opdd );
  658. submit("TXMNP00103");
  659. }else{
  660. return;
  661. }
  662. fSelectPos();
  663. break;
  664. case 16:
  665. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/pid");
  666. var hngnm = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/hngnm");
  667. var orddeptcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/orddeptcd");
  668. var medispclid = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/medispclid");
  669. var diag = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/diagcdnm");
  670. var diagcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/diagcd");
  671. var sexagestr = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/sa").split("/");
  672. if( sexagestr[0] == "F" ){ var sex = "여자"; }
  673. if( sexagestr[0] == "M" ){ var sex = "남자"; }
  674. var age = sexagestr[1];
  675. var wardcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/wardcd");
  676. var roomcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/patposplcecd");
  677. var ioflag = "I";
  678. setParameter("SMMQR00100_PARAM", pid + "▦" + hngnm + "▦" + orddeptcd + "▦" + medispclid + "▦" + diag + "▦" + diagcd + "▦" + sex + "▦" + age + "▦" + wardcd + "▦" + roomcd + "▦" + ioflag);
  679. modal("../../../emr/qiweb/xrw/SMMQR00100", "","", "", "SMMQR00100", "", "");
  680. break;
  681. default :
  682. break;
  683. }
  684. // }
  685. }
  686. // --------------------------------------------------------------------------
  687. // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  688. // --------------------------------------------------------------------------
  689. function fInOutRoomSave(pFlag){
  690. model.removenode("/root/send");
  691. var wRow = grd_oppatlist.row;
  692. var wDataPath = "/root/main/opPatlist/opPatInfo[" + wRow + "]"
  693. sPid = model.getValue(wDataPath + "/pid" ); // 01 환자번호
  694. sOprsrvno = model.getValue(wDataPath + "/oprsrvno"); // 02 수술예약(의뢰)번호(년도+일련번호)
  695. sOphistno = model.getValue(wDataPath + "/ophistno"); // 03 예약번호에따른이력번호
  696. sInstcd = model.getValue(wDataPath + "/instcd" ); // 04 기관코드
  697. sJobProc = "pid" + "▦" // 01 환자번호
  698. + "oprsrvno" + "▦" // 02 수술예약
  699. + "ophistno" + "▦" // 03 이력번호
  700. + "instcd" + "▦" // 04 기관코드
  701. + "jobflag" + "▩" // 05 작업구분(1:입실저장,2:퇴실저장,9:입실취소)
  702. + sPid + "▦" // 01 환자번호
  703. + sOprsrvno + "▦" // 02 수술예약
  704. + sOphistno + "▦" // 03 이력번호
  705. + sInstcd + "▦" // 04 기관코드
  706. + pFlag + "▩" // 05 작업구분(1:입실저장,2:퇴실저장,9:입실취소)
  707. model.makeValue("/root/send/JobProc", sJobProc);
  708. //alert(sJobProc);
  709. if (submit("TXMNP00102")){ // 수술간호기록정보 입실취소
  710. messageBox("입실취소가", "I002" );
  711. }
  712. }
  713. /**
  714. * @group :
  715. * @ver : 2008.08.01
  716. * @by : dhkim
  717. * @---------------------------------------------------
  718. * @type : function
  719. * @access : public
  720. * @desc : 환자 name라벨 출력
  721. * @param :
  722. * @return :
  723. * @---------------------------------------------------
  724. */
  725. function fPrintNameLabel(pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, pPort,roomcd, allyn){
  726. ////////////////////////////////////////////////////////////////////////////////////////// 원본_20090522
  727. // //20080905 port찾기
  728. // //port정보 가져오기
  729. // model.removenode('/root/send');
  730. // model.removenode('/root/main/barcdprntsetup');
  731. // model.makenode('/root/main/barcdprntsetup');
  732. // model.makeValue('/root/send/scrnid', 'SMMNP00100');
  733. // if(submit('TRLLC90101')){
  734. // pPort = model.getValue('/root/main/barcdprntsetup/prntsetupinfo/setupinfo[1]/comm02/comm');
  735. // }
  736. //
  737. // if(document.all("CommAX") != null) {
  738. // //바코드 출력 시작
  739. //
  740. // var portOpenTF = "";
  741. //
  742. // // CommPort 설정
  743. // if (pPort == "" || pPort == null || pPort == " ") {
  744. // CommAX.CommPort = "1"; // default port setting
  745. // } else {
  746. // CommAX.CommPort = pPort; //Port 설정
  747. // }
  748. //
  749. // CommAX.Settings = "9600,n,8,1";
  750. //
  751. // portOpenTF = CommAX.PortOpen("true"); //Port Open
  752. //
  753. // if(portOpenTF == "TRUE") {
  754. //
  755. // var iLeft = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left");
  756. // var iTop = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top");
  757. //
  758. // if(iLeft == "" || iLeft == "-"){
  759. // iLeft = 0;
  760. // }
  761. // if(iTop == "" || iTop == "-"){
  762. // iTop = 0;
  763. // }
  764. //
  765. // var sData = "^XA^LH0,20";//출력시작점
  766. //
  767. // //출력일
  768. // var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  769. // sData += "^CFA,20,20";//bold, height, width
  770. // sData += "^FO10,20";//위치지정(x축, y축)
  771. // sData += "^FD"+ prndd + "^FS";
  772. //
  773. // //수술정보
  774. // var opinfo = oproomcdnm + "R " + depthngnm + " " + pid;
  775. // sData += CommAX.PrtImgOut(20, 60, opinfo, 1, 1);//PrtImgOut(x축, y축, data, width, heigt)
  776. // sData += CommAX.HanImageData();
  777. //
  778. //
  779. // //환자명
  780. // //글자수가 4이상이면 left정렬 4이하이면 center정렬
  781. // var hx = 20; var hy = 105;
  782. // /*var len = hngnm.length;
  783. // if(len > 4){
  784. // hx = 10;
  785. // }else if(len == 4){
  786. // hx = 90;
  787. // }else if(len == 3){
  788. // hx = 120;
  789. // }else if(len == 2){
  790. // hx = 150;
  791. // }else if(len == 1){
  792. // hx = 180;
  793. // }*/
  794. // sData += CommAX.PrtImgOut(hx, hy, hngnm, 2, 2);//PrtImgOut(x축, y축, data, width, heigt)
  795. // sData += CommAX.HanImageData();
  796. //
  797. // //sexage
  798. // sData += "^CFE,20,20";
  799. // sData += "^FO300,120";//위치지정
  800. // sData += "^FD"+ sexage + "^FS";
  801. //
  802. // sData += "^PQ"+ prncnt + "^XZ";//출력장수
  803. //
  804. // CommAX.SendMessage(sData); // 출력
  805. // CommAX.PortOpen("false"); // 출력종료
  806. //
  807. //
  808. // } else {
  809. // messageBox("아래 사항을 확인후 재출력해주십시오."
  810. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  811. // + " \n 2.케이블 확인"
  812. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  813. // return;
  814. // }
  815. // }
  816. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  817. // SATO용 추가_20090522(ByJA)
  818. if(prncnt > 0){
  819. //1. 바코드 라벨 설정값 조회
  820. var scrnid = "SMMNP00400";
  821. model.removeNodeset("/root/main/barcdprntsetup");
  822. fGetBarCodeInfo(scrnid); // CareCom.js
  823. lzzfMakeBrcdPrntObjHanDo("CommAX");
  824. //2. 바코드 라벨 환경설정
  825. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  826. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  827. /** <addon>
  828. *개발일시: 2010.05.13
  829. *개발자: 양천덕
  830. *요청병원: 세종병원
  831. *요청파트: 간호
  832. *개발내용: 바코드 출력 형식 변경으로 수정 처리(수술)
  833. </addon>
  834. */
  835. if(allyn == "N") {
  836. fPrtORPatNameLabel(barcdRef, pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, roomcd);
  837. } else if(allyn == "Y") {
  838. fPrtAllORPatNameLabel(barcdRef);
  839. }
  840. return;
  841. //3. 환자라벨출력
  842. var esc = String.fromCharCode(27);
  843. var sPrntKind = model.getvalue(barcdRef + "/prntkind");
  844. var iLeft = model.getValue(barcdRef + "[1]/blank/left");
  845. var iTop = model.getValue(barcdRef + "[1]/blank/top");
  846. var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  847. if(iLeft == "" || iLeft == "-"){
  848. iLeft = 0;
  849. }
  850. if(iTop == "" || iTop == "-"){
  851. iTop = 0;
  852. }
  853. // SATO일 경우
  854. if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  855. // 시작위치 셋팅 (A1aaaabbbb:출력 용지 규격(aaaa:세로크기_최대 2848, bbbb:가로크기_최대 832))
  856. var sSndMsg = esc + "A" + esc + "A103500500";
  857. // 출력할 데이터 생성
  858. sSndMsg += esc + "V" + (parseInt(iTop)+20) + esc + "H" + (parseInt(iLeft)+50) + esc + "M" + prndd;
  859. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+60 , parseInt(iLeft)+50, oproomcdnm + "R " + depthngnm + " " + pid, 1, 1); // 한글출력시 PrtImgOut함수 이용
  860. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+105, parseInt(iLeft)+50, hngnm, 2, 2); // 한글출력시 PrtImgOut함수 이용
  861. sSndMsg += esc + "V" + (parseInt(iTop)+120) + esc + "H" + (parseInt(iLeft)+320) + esc + "M" + sexage;
  862. // 종료 및 출력물 출력수량
  863. sSndMsg += esc + "Q" + prncnt + esc + "Z";
  864. var a = CommAX.SendMsg(sSndMsg);
  865. CommAX.PortOpen("false");
  866. }
  867. // SATO가 아닐 경우(기존)
  868. else{
  869. if(portOpenTF == "TRUE"){
  870. var sData = "^XA^LH0,20";//출력시작점
  871. sData += "^CFA,20,20^FO"+(parseInt(iLeft)+10)+","+(parseInt(iTop)+20)+"^FD"+ prndd + "^FS"; //출력일 bold, height, width, 위치지정(x축, y축)
  872. sData += CommAX.PrtImgOut((parseInt(iLeft)+20),(parseInt(iTop)+60) , oproomcdnm + "R " + depthngnm + " " + pid, 1, 1);//수술정보 PrtImgOut(x축, y축, data, width, heigt)
  873. sData += CommAX.HanImageData();
  874. sData += CommAX.PrtImgOut((parseInt(iLeft)+20),(parseInt(iTop)+105), hngnm, 2, 2);//환자명 글자수가 4이상이면 left정렬 4이하이면 center정렬 PrtImgOut(x축, y축, data, width, heigt)
  875. sData += CommAX.HanImageData();
  876. sData += "^CFE,20,20^FO"+(parseInt(iLeft)+300)+","+(parseInt(iTop)+120)+"^FD"+ sexage + "^FS";
  877. sData += "^PQ"+ prncnt + "^XZ";//출력장수
  878. CommAX.SendMessage(sData); // 출력
  879. CommAX.PortOpen("false"); // 출력종료
  880. } else {
  881. messageBox("아래 사항을 확인후 재출력해주십시오."
  882. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  883. + " \n 2.케이블 확인"
  884. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  885. return;
  886. }
  887. }
  888. }
  889. }
  890. /**
  891. * @group :
  892. * @ver : 2007.10.17
  893. * @by : Grace
  894. * @---------------------------------------------------
  895. * @type : function
  896. * @access : public
  897. * @desc : Exel 저장
  898. * @param :
  899. * @return :
  900. * @---------------------------------------------------
  901. */
  902. function fSaveExcel(){
  903. var opfromdd = model.getValue("/root/main/cond/opddfr");
  904. var optodd = model.getValue("/root/main/cond/opddto");
  905. model.removenode("/root/send");
  906. model.makeNode("/root/send/reqdata");
  907. model.copyNode("/root/send/reqdata", "/root/main/cond");
  908. submit("TRMNP00106");
  909. var fileName = window.fileDialog("save", ",", false, "수술스케쥴("+opfromdd+"~"+optodd+")", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  910. if (fileName != "") {
  911. grd_excel.saveExcel(fileName, "SheetName", true, true, "", "", false);
  912. }
  913. }
  914. /**
  915. * @group :
  916. * @ver : 2009.10.12
  917. * @by : 양천덕
  918. * @---------------------------------------------------
  919. * @type : function
  920. * @access : public
  921. * @desc : 수술실 이송요원 호출 함수
  922. * @param :
  923. * @return :
  924. * @---------------------------------------------------
  925. */
  926. function fInsTranCallOP(pid, prcpnm, kind, rsrvdt, arvposcd, startposcd){
  927. setParameter("status", "OP");
  928. setParameter("pid", pid);
  929. setParameter("prcpnm", prcpnm);
  930. setParameter("kind", kind);
  931. setParameter("rsrvdt", rsrvdt);
  932. setParameter("arvposcd", arvposcd);
  933. setParameter("startposcd", startposcd);
  934. modal("SMMNB01810" ,"", "300", "150", "SMMNB01810", "", "");
  935. }
  936. /**
  937. * @desc : 화면ID에 해당하는 컬럼순서를 조회한다.
  938. * @
  939. * @param :
  940. * @return :
  941. * @author : 김영학
  942. * @---------------------------------------------------
  943. */
  944. function reqOrderInfoOfCol(scrnid, grdid, compscd){
  945. model.removeNodeset("/root/send/reqdata");
  946. model.makeValue("/root/send/reqdata/scrnid" , scrnid);
  947. model.makeValue("/root/send/reqdata/compscd" , compscd);
  948. if(submit("TRMNB02401", false)){
  949. var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
  950. var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
  951. if(refdata != "" || sizedata != ""){
  952. setOrderInfoOfCol(grdid , refdata, sizedata);
  953. }
  954. }
  955. }
  956. function setOrderInfoOfCol(grdID, refdata, sizedata){
  957. var grdObj = document.controls.item(grdID);
  958. var refArray = refdata.split("^");
  959. var sizeArray = sizedata.split("^");
  960. for(var i = 0; i < refArray.length; i++){
  961. var colcnt = grdObj.colref("" + refArray[i] + "");
  962. if (colcnt <0 ) colcnt = 0;
  963. // 이동 컬럼과 대상컬럼의 인덱스가 같지 않은 경우만 이동.
  964. if (colcnt != i) {
  965. grdObj.colMove(i, colcnt, "before", false);
  966. }
  967. var size = sizeArray[i];
  968. if(size == 0){ // size of column 0 -> hidden
  969. grdObj.colHidden(i) = true;
  970. }else{
  971. grdObj.colHidden(i) = false;
  972. }
  973. grdObj.colWidth(i) = eval(size);
  974. }
  975. model.refresh();
  976. }
  977. function fColumSetMove(scrnid, grd_nm) {
  978. // 컬럼 순서 저장에 따른 불러오기 추가 : 2009. 10. 11 han19
  979. var sWardCD = getScreenMenuParameter();//model.getValue("/root/main/cond/wardcd") //20080725_메뉴설정에 따른 그리드 동적생성으로 변겅(ByJA)
  980. var prestimportid = model.getValue("/root/main/cond/prestimportid");
  981. var compscd = "";
  982. if(prestimportid == "nm") {
  983. if (sWardCD == "Partrtn") { // 분만
  984. compscd = "PA";
  985. } else if(sWardCD == "NBaby"){ // 신생아
  986. compscd = "NB";
  987. } else if(sWardCD == "BMT"){ //BMT
  988. compscd = "BT";
  989. } else if(sWardCD == "spclinj"){ // 특수주사실
  990. compscd = "SJ";
  991. } else {
  992. compscd = "NM";
  993. }
  994. } else if (prestimportid == "td") { // Todo List : 컬럼설정은 하지 않지만 구분값은 넣어놓음
  995. compscd = "TD";
  996. } else if (prestimportid =="om") { // Order Manage
  997. compscd = "OM";
  998. } else {
  999. if (sWardCD == "Partrtn") { // 분만
  1000. compscd = "PA";
  1001. } else if(sWardCD == "NBaby"){ // 신생아
  1002. compscd = "NB";
  1003. } else if(sWardCD == "BMT"){ //BMT
  1004. compscd = "BT";
  1005. } else if(sWardCD == "spclinj"){ // 특수주사실
  1006. compscd = "SJ";
  1007. } else {
  1008. compscd = "NM";
  1009. }
  1010. }
  1011. reqOrderInfoOfCol(scrnid, grd_nm, compscd);
  1012. // 컬럼 순서 저장에 따른 불러오기 추가 : 2009. 10. 11 han19
  1013. }
  1014. /* ------------------------------------------------- */
  1015. /* ------End Of List ------------------------------- */
  1016. /* -------------------------------------------------- */