SMMMO19200.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. /*function list
  2. * fInitialize_SMMMO19200 : 최초 화면초기화 함수
  3. * fInitialize_SMMMO19200_L : 좌측 처방리스트 초기화 함수
  4. * fInitialize_SMMMO19200_R : 우측 처방별 정보 초기화 함수
  5. * fRightDisabled : PK값이 들어가있는 오브젝트 활성여부 체크 함수
  6. */
  7. var sMULTIORD_LIST_PATH = "/root/main/mutiordinfo/patlist"; // 다학제 환자 리스트
  8. var sMULTIORD_INFO_PATH = "/root/main/applyinfo/patinfo"; // 다학제 환자 적용 정보
  9. var sMULTIORD_USER_PATH = "/root/main/applyinfo/userinfo/userlist"; // 적용진료과 진료의 정보
  10. function fInitialize_SMMMO19200(){
  11. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/centdept", "C"); //센터 콤보
  12. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "A"); //진료과 콤보
  13. addComboInstance("/root/init/centdept", "deptcd^depthngnm", "-^", "dept"); //센터콤보 전체항목 추가
  14. fInitialize_SMMMO19200_L();
  15. fInitialize_SMMMO19200_R();
  16. fGetMultiOrdlist();
  17. fRightDisabled(true);
  18. }
  19. function fInitialize_SMMMO19200_L(){
  20. fRightDisabled(true);
  21. model.removeNodeset(sMULTIORD_LIST_PATH);
  22. model.setValue("/root/send/searchinfo/fromdd", getCurrentDate());
  23. model.setValue("/root/send/searchinfo/styno", "");
  24. model.setValue("/root/send/searchinfo/stynm", "");
  25. model.setValue("/root/send/searchinfo/pid", "");
  26. model.setValue("/root/send/searchinfo/hngnm", "");
  27. model.setValue("/root/send/searchinfo/useynflag", "");
  28. model.refresh();
  29. }
  30. function fInitialize_SMMMO19200_R(){
  31. fRightDisabled(true);
  32. btn_save.disabled = false;
  33. model.setValue(sMULTIORD_INFO_PATH + "/genrdd", getCurrentDate());
  34. model.setValue(sMULTIORD_INFO_PATH + "/genrno", "0");
  35. model.setValue(sMULTIORD_INFO_PATH + "/fromdd", getCurrentDate());
  36. model.setValue(sMULTIORD_INFO_PATH + "/todd", "99991231");
  37. model.setValue(sMULTIORD_INFO_PATH + "/histcd", "O");
  38. model.setValue(sMULTIORD_INFO_PATH + "/styno", "");
  39. model.setValue(sMULTIORD_INFO_PATH + "/stynm", "");
  40. model.setValue(sMULTIORD_INFO_PATH + "/pid", "");
  41. model.setValue(sMULTIORD_INFO_PATH + "/hngnm", "");
  42. model.setValue(sMULTIORD_INFO_PATH + "/authdeptcd", "");
  43. model.setValue(sMULTIORD_INFO_PATH + "/authdeptnm", "");
  44. model.setValue(sMULTIORD_INFO_PATH + "/telno", "");
  45. model.setValue(sMULTIORD_INFO_PATH + "/rmk", "");
  46. model.removeNodeset(sMULTIORD_USER_PATH);
  47. model.refresh();
  48. }
  49. function fRightDisabled(flag){
  50. if(flag){
  51. btn_search_pat_R.disabled = true;
  52. btn_search_sty_R.disabled = true;
  53. }else{
  54. btn_search_pat_R.disabled = false;
  55. btn_search_sty_R.disabled = false;
  56. }
  57. }
  58. function fPatSearch(sFlag){
  59. modal("SPPMC02500");
  60. var sPid = model.getValue("/root/main/patinfo/patinfolist/pid");
  61. var sHngNm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  62. if(sFlag == "L") {
  63. model.setValue("/root/send/searchinfo/pid", sPid);
  64. model.setValue("/root/send/searchinfo/hngnm", sHngNm);
  65. fGetMultiOrdlist();
  66. } else if(sFlag == "R") {
  67. model.setValue(sMULTIORD_INFO_PATH+"/pid", sPid);
  68. model.setValue(sMULTIORD_INFO_PATH+"/hngnm", sHngNm);
  69. }
  70. model.refresh();
  71. }
  72. function fStySearch(sFlag){
  73. setParameter("SMMMO19300_flag", "select");
  74. modal("SMMMO19300");
  75. clearParameter("SMMMO19300_flag");
  76. var sStyNo = model.getValue("/root/main/styinfo/stylist/styno");
  77. var sStyNm = model.getValue("/root/main/styinfo/stylist/stynm");
  78. if(sFlag == "L") {
  79. model.setValue("/root/send/searchinfo/styno", sStyNo);
  80. model.setValue("/root/send/searchinfo/stynm", sStyNm);
  81. fGetMultiOrdlist();
  82. } else if(sFlag == "R") {
  83. model.setValue(sMULTIORD_INFO_PATH+"/styno", sStyNo);
  84. model.setValue(sMULTIORD_INFO_PATH+"/stynm", sStyNm);
  85. }
  86. model.refresh();
  87. }
  88. function fPrinfoEmptyCheck(){
  89. if(model.getValue(sMULTIORD_INFO_PATH+"/authdeptcd") == ""){
  90. model.setValue(sMULTIORD_INFO_PATH+"/authdeptcd", getUserInfo("dutplcecd"));
  91. }
  92. if(model.getValue(sMULTIORD_INFO_PATH+"/styno") == ""){
  93. messageBox("다학제 과제을","C001");
  94. return false;
  95. }
  96. if(model.getValue(sMULTIORD_INFO_PATH+"/pid") == ""){
  97. messageBox("환자번호을","C001");
  98. return false;
  99. }
  100. var sOrdCls = "";
  101. var nMainOrd = 0;
  102. var nStatus = 0;
  103. var srcNodeList = model.instances(0).selectNodes (sMULTIORD_USER_PATH);
  104. for ( var i=1; i <= srcNodeList.length; i++ ) {
  105. sOrdCls = model.getValue ( sMULTIORD_USER_PATH + "[" + i + "]/ordcls" );
  106. nStatus = grd_apply_user.rowstatus(i);
  107. if(sOrdCls == "M" && nStatus != 4) { // 삭제상태가 아닌것만
  108. nMainOrd = nMainOrd + 1;
  109. }
  110. }
  111. if(nMainOrd == 0) {
  112. messageBox("주 진료의는 반드시 존재 하여야 합니다.", "E");
  113. return false;
  114. } else if(nMainOrd > 1) {
  115. messageBox("주 진료의는 반드시 1명만 존재 하여야 합니다.", "E");
  116. return false;
  117. }
  118. return true;
  119. }
  120. function fSaveMutilOrdinfo(){
  121. if(!fPrinfoEmptyCheck()) {
  122. return;
  123. }
  124. model.removeNodeset("/root/send/reqdata/");
  125. model.copyNode("/root/send/reqdata", sMULTIORD_INFO_PATH);
  126. model.makeValue("/root/send/reqdata/userinfo", grd_apply_user.getUpdateData());
  127. model.refresh();
  128. if(submit("TXMMO19200")){
  129. fInitialize_SMMMO19200_R();
  130. fGetMultiOrdlist();
  131. messageBox("저장 되었습니다.","I999");
  132. } else {
  133. messageBox("저장에 실패하였습니다.","I999");
  134. }
  135. }
  136. function fGetMutiOrdDetail(){
  137. var currow = grd_mutiordlist.row;
  138. model.removeNodeset("/root/send/reqdata/");
  139. model.copyNode("/root/send/reqdata", sMULTIORD_LIST_PATH + "["+currow+"]");
  140. model.makeValue("/root/send/reqdata/useynflag", model.getValue("/root/send/searchinfo/useynflag"))
  141. if(submit("TRMMO19201")){
  142. var sAuthDeptCd = model.getValue( sMULTIORD_INFO_PATH + "/authdeptcd");
  143. if(getUserInfo("dutplcecd") != sAuthDeptCd && getUserInfo("userid") != "EMR"){
  144. btn_save.disabled = true;
  145. }else{
  146. btn_save.disabled = false;
  147. }
  148. fRightDisabled(true);
  149. }
  150. }
  151. function fGetMultiOrdlist(){
  152. if(submit("TRMMO19200")){
  153. model.setValue("/root/main/objectinfo/user/orddrid","");
  154. model.setValue("/root/main/objectinfo/user/orddept","");
  155. }
  156. }
  157. /*
  158. */
  159. function fGridAdd(datagrid){
  160. var sOrdDrId = model.getValue("/root/main/objectinfo/user/orddrid");
  161. var sOrdDrNm = model.getValue("/root/init/userlist/usercombo[userid = '"+sOrdDrId+"']/usernm");
  162. var sCentCd = model.getValue("/root/main/objectinfo/user/centcd");
  163. var sCentNm = model.getValue("/root/init/centdept/dept[deptcd = '"+sCentCd+"']/depthngnm");
  164. var sOrdDeptCd = model.getValue("/root/main/objectinfo/user/orddept");
  165. var sOrdDeptNm = model.getValue("/root/init/orddept/dept[deptcd = '"+sOrdDeptCd+"']/depthngnm");
  166. if(getUserInfo("dutplceinstcd") == "032") {
  167. if(sCentCd == "" || sCentCd == "-") {
  168. messageBox("진료의의 센터 정보를 선택 하세요.", "I999");
  169. return;
  170. }
  171. }
  172. if(sOrdDrId != ""){
  173. if(fCheckDup(sOrdDrId, sMULTIORD_USER_PATH)){
  174. msg = "해당 진료의는";
  175. messageBox(msg,"E006");
  176. return;
  177. }
  178. datagrid.addRow(true, true);
  179. var nRow = datagrid.rows;
  180. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/genrdd", model.getValue("/root/main/applyinfo/patinfo/genrdd"));
  181. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/genrno", model.getValue("/root/main/applyinfo/patinfo/genrno"));
  182. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/genrseq", "0");
  183. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/ordcls", "S");
  184. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/centcd", sCentCd);
  185. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/centnm", sCentNm);
  186. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddeptcd", sOrdDeptCd);
  187. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddeptnm", sOrdDeptNm);
  188. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddrid", sOrdDrId);
  189. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddrnm", sOrdDrNm);
  190. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/fromdd", getCurrentDate());
  191. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/todd", "99991231");
  192. model.refresh();
  193. }else{
  194. messageBox("추가 할 진료의을 왼쪽에서 선택 하세요.", "I999");
  195. return;
  196. }
  197. }
  198. function fGridDel(datagrid){
  199. var sNodeSet = "";
  200. var nRow = datagrid.row;
  201. var nStatus = null;
  202. if( nRow <= 0 ){
  203. alert("삭제할 항목을 선택해주십시오.");
  204. return;
  205. }
  206. nStatus = datagrid.rowstatus(nRow);
  207. if(nStatus == 0) { // 기존데이터
  208. datagrid.rowstatus(nRow) = 4;
  209. } else if (nStatus == 1) { // 신규데이터
  210. datagrid.deleteRow(nRow);
  211. } else if (nStatus == 4) { // 삭제데이터
  212. datagrid.rowstatus(nRow) = 0;
  213. }
  214. model.refresh();
  215. }
  216. function fCheckDup(sValue, sNodeSet){
  217. var nCnt = getNodesetCount(sNodeSet);
  218. var bExist = false;
  219. for(i=1; i<= nCnt; i++){
  220. if(sValue == model.getValue(sNodeSet+"["+i+"]/orddrid")){
  221. bExist = true;
  222. }
  223. }
  224. return bExist;
  225. }
  226. function fCompareDate(){
  227. var fromdd = model.getValue("/root/main/applyinfo/prcpinfo/fromdd");
  228. var todd = model.getValue("/root/main/applyinfo/prcpinfo/todd");
  229. if(fromdd != "" && todd != ""){
  230. if(todd < fromdd){
  231. messageBox("시작일자가 종료일자보다 빠를 수","I004");
  232. return;
  233. }
  234. }
  235. }
  236. function fCopyDridList() {
  237. var datagrid = null;
  238. var sNodeSet = "";
  239. var sOrdCls = "";
  240. var sOrdDeptCd = "";
  241. var sOrdDeptNm = "";
  242. var sOrdDrId = "";
  243. var sOrdDrNm = "";
  244. var currow = grd_mutiordlist.row;
  245. model.removeNodeset("/root/send/reqdata/");
  246. model.copyNode("/root/send/reqdata", "/root/main/mutiordinfo/patlist["+currow+"]");
  247. if(submit("TRMMO19203")){
  248. var copyNodes = instance1.selectNodes("/root/hidden/copylist");
  249. for ( var i=1; i<=copyNodes.length ; i++){
  250. sOrdCls = model.getValue("/root/hidden/copylist[" + i + "]/ordcls");
  251. sOrdDrId = model.getValue("/root/hidden/copylist[" + i + "]/orddrid");
  252. sOrdDrNm = model.getValue("/root/hidden/copylist[" + i + "]/orddrnm");
  253. sCentCd = model.getValue("/root/hidden/copylist[" + i + "]/centcd");
  254. sCentNm = model.getValue("/root/hidden/copylist[" + i + "]/centnm");
  255. sOrdDeptCd = model.getValue("/root/hidden/copylist[" + i + "]/orddeptcd");
  256. sOrdDeptNm = model.getValue("/root/hidden/copylist[" + i + "]/orddeptnm");
  257. if(sOrdDrId != ""){
  258. if(fCheckDup(sOrdDrId, sMULTIORD_USER_PATH)){
  259. messageBox(sOrdDrNm + "은 중복으로 추가하지 않습니다." ,"I999");
  260. continue;
  261. }
  262. }
  263. grd_apply_user.addRow(true, true);
  264. var nRow = grd_apply_user.rows;
  265. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/genrdd", model.getValue("/root/main/applyinfo/patinfo/genrdd"));
  266. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/genrno", model.getValue("/root/main/applyinfo/patinfo/genrno"));
  267. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/genrseq", "0");
  268. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/ordcls", sOrdCls);
  269. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/centcd", sCentCd);
  270. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/centnm", sCentNm);
  271. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddeptcd", sOrdDeptCd);
  272. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddeptnm", sOrdDeptNm);
  273. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddrid", sOrdDrId);
  274. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/orddrnm", sOrdDrNm);
  275. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/fromdd", getCurrentDate());
  276. model.setValue(sMULTIORD_USER_PATH + "["+eval(nRow-1)+"]/todd", "99991231");
  277. }
  278. model.refresh();
  279. }
  280. }
  281. function fItegRec(){
  282. var param = model.getValue("/root/main/applyinfo/patinfo/pid");
  283. if( param != "" ) {
  284. setParameter("SMMRI00500_param", param);
  285. modal("SMMRI00500");
  286. }else{
  287. messageBox("조회된 데이터가 없습니다.","E");
  288. }
  289. }