2023.03.08 TIL(PJ416)

SaGo_MunGcci·2023년 3월 8일
0

업무 프로젝트

목록 보기
16/29

다른화면으로 부터 데이터 전달 받음
단독화면 불가일때 잘보기


/*=====================================================================================
프로젝트명 : AMIS3.0
프로그램ID : VHMGCPJ416S
업  무  명 : 판정권고사항
최초작성일 : 2022.11.29
개  발  자 : 박민준
참고사항   : 
변경이력   : 
====================================================================================*/
using AMIS3.UIFramework;
using AMIS3.UIFramework.DataModel;
using AMIS3.UIFramework.UI;
using AMIS3.UIFramework.UI.Controls;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using AMIS3.HM.ZZ;

namespace AMIS3.HM.GC.PJ416
{
    public partial class VHMGCPJ416S : ScreenBase, ISmartToolbar
    {
        private object oSynthCd;

        // 2022.11.24 / 박민준 / 해당 콤보박스 종합코드 받는 전역변수 추가        
        private String classify;        

        public List<ActionButtonItem> ActionButtonItems { get; set; }

        private DataTable dtList = new DataTable();
        private Dictionary<string, object> mCreateParam;
        GZCDCORCD mTextCode;
        public VHMGCPJ416S()
        {
            InitializeComponent();
            SetControl();
            SetEvent();

            mTextCode = new ZZ.GZCDCORCD("CanStomach1", "CanStomach2", "CanLung", "CanCervix", "CanBreast", "CanLiver", "CanColon1", "CanColon2", "CanColon3");
        }
     
        private void SetEvent()
        {           
            DocumentService.ChangeActionButtons(this);           
        }      

        private void SetControl()
        {           
            // 그리드 row순번표시
            grvSuasion.SetCustomDrawRowIndicatorRowNum();
            
        }

        private void VHMGCPJ416S_Shown(object sender, EventArgs e)
        {
            VerifiedForm();
        }

        // 2022.12.16 / 박민준 / 콤보박스에 데이터가 없을시 단독으로 띄울수 없게 추가
        private void VerifiedForm()
        {
            if (mCreateParam == null)
            {
                AMessageBox.Show("경고", "해당화면은 단독으로 띄울수 없습니다.");
                this.Close();
            }           
           
        }

        // 2022.11.29 / 박민준 / 데이터 전달 받는 메서드 추가
        public override object OnObjectDicReceived(string senderScreen, string messageID, Dictionary<string, object> objectDic)
        {
            #region ...
            mCreateParam = objectDic;

            if (objectDic.ContainsKey("synthCd"))
            {
                oSynthCd = objectDic["synthCd"];
            }

            // pj410에서 전달한 데이터를 받아오는 부분            
            string some = objectDic["key"].ToString();

            // 위암
            if (some == "stomachCancerA") // 위장조영
            {
                InitComboBoxStmCancerA();
            }

            if (some == "stomachCancerB") // 위내시경
            {
                InitComboBoxStmCancerB();
            }

            // 대장암
            if (some == "CanColonA") // 분변잠혈검사
            {
                InitComboBoxCanColonA();
            }

            if (some == "CanColonB") // 대장이중조영검사
            {
                InitComboBoxCanColonB();
            }

            if (some == "CanColonC") // 대장내시경
            {
                InitComboBoxCanColonC();
            }

            if (some == "CanLiverA") // 간암
            {
                InitComboBoxCanLiverA();
            }

            if (some == "CanCervixA") // 자궁경부암
            {
                InitComboBoxCanCervixA();
            }

            if (some == "CanBreastA") // 유방암
            {
                InitComboBoxCanBreastA();
            }

            if (some == "CanLungA") // 폐암
            {
                InitComboBoxCanLungA();
            }

            return String.Empty; 
            #endregion

        }

        // 2022.11.29 / 박민준 / 위장조영 전용 콤보박스 추가
        public void InitComboBoxStmCancerA()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1.이상소견없음 또는 위염", "1");
            dt.Rows.Add("2.양성질환", "2");
            dt.Rows.Add("3.위암 의심", "3");
            dt.Rows.Add("4.위암", "4");
            dt.Rows.Add("5.기타()", "5");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanStomach1";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion

        }


        // 2022.11.29 / 박민준 / 위내시경 전용 콤보박스 추가
        public void InitComboBoxStmCancerB()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:이상소견없음 또는 위염", "1");
            dt.Rows.Add("2:양성질환", "2");
            dt.Rows.Add("3:위암 의심", "3");
            dt.Rows.Add("4:위암", "4");
            dt.Rows.Add("5:기타()", "5");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanStomach2";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion

        }

        // 2022.11.29 / 박민준 / 분변잠혈반응검사 전용 콤보박스 추가
        public void InitComboBoxCanColonA()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:이상소견없음 또는 위염", "1");
            dt.Rows.Add("2:대장폴립(용종)", "2");
            dt.Rows.Add("3:대장암 의심", "3");
            dt.Rows.Add("4:대장암", "4");
            dt.Rows.Add("5:기타", "5");
            dt.Rows.Add("6:잠혈반응없음", "6");
            dt.Rows.Add("7:잠혈반응있음", "7");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanColon1";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion

        }

        // 2022.11.29 / 박민준 / 대장이중조영검사 전용 콤보박스 추가
        public void InitComboBoxCanColonB()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:이상소견없음 또는 위염", "1");
            dt.Rows.Add("2:대장폴립(용종)", "2");
            dt.Rows.Add("3:대장암 의심", "3");
            dt.Rows.Add("4:대장암", "4");
            dt.Rows.Add("5:기타", "5");
            dt.Rows.Add("6:잠혈반응없음", "6");
            dt.Rows.Add("7:잠혈반응있음", "7");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanColon2";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion

        }

        // 2022.11.29 / 박민준 / 대장내시경 전용 콤보박스 추가
        public void InitComboBoxCanColonC()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:이상소견없음 또는 위염", "1");
            dt.Rows.Add("2:대장폴립(용종)", "2");
            dt.Rows.Add("3:대장암 의심", "3");
            dt.Rows.Add("4:대장암", "4");
            dt.Rows.Add("5:기타", "5");
            dt.Rows.Add("6:잠혈반응없음", "6");
            dt.Rows.Add("7:잠혈반응있음", "7");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanColon3";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion

        }

        // 2022.11.29 / 박민준 / 간암 전용 콤보박스 추가
        private void InitComboBoxCanLiverA()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:간암 의심소견 없음", "1");
            dt.Rows.Add("2:추적검사 요망(3개월 이내)", "2");
            dt.Rows.Add("3:간암 의심(정밀 검사 요망)", "3");
            dt.Rows.Add("4:기타", "4");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanLiver";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion
        }

        // 2022.11.29 / 박민준 / 자궁경부암 전용 콤보박스 추가
        private void InitComboBoxCanCervixA()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:이상소견없음", "1");
            dt.Rows.Add("2:반응성 소견 및 감염성 질환", "2");
            dt.Rows.Add("3:비정형 상피세포 이상", "3");
            dt.Rows.Add("4:자궁경부암 전구단계 의심", "4");
            dt.Rows.Add("5:자궁경부암의심", "5");
            dt.Rows.Add("6:기타", "6");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanCervix";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion

        }

        // 2022.11.29 / 박민준 / 유방암 전용 콤보박스 추가
        private void InitComboBoxCanBreastA()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:이상소견없음", "1");
            dt.Rows.Add("2:양성질환", "2");
            dt.Rows.Add("3:유방암의심", "3");
            dt.Rows.Add("4:판정유보", "4");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanBreast";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion
        }

        // 2022.11.29 / 박민준 / 폐암 전용 콤보박스 추가
        private void InitComboBoxCanLungA()
        {
            #region ...
            DataTable dt = new DataTable();
            dt.Columns.Add("Text");
            dt.Columns.Add("Value");

            dt.Rows.Add("1:이상소견없음", "1");
            dt.Rows.Add("2:양성결절", "2");
            dt.Rows.Add("3:경계선 결절", "3");
            dt.Rows.Add("4:폐암의심", "4");
            dt.Rows.Add("4:폐암 매우 의심", "5");

            cbtest.SetDataSource(dt, "Text", "Value", AComboFirstValueType.All);

            classify = "CanLung";

            // 2022.11.29 / 박민준 / 전용 콤보박스 생성 동시에 전체 검색.
            GetCodeList(); 
            #endregion
        }


        // 2022.11.29 / 박민준 / 콤보박스 컨텐츠 선택
        private void cbtest_SelectedIndexChanged(object sender, EventArgs e)
        {
            AComboBox cb = sender as AComboBox;
            cbtest.Text = cb.SelectedItem.ToString();
            cbtest.EditValue = cb.EditValue.ToString();
        }

        // 조회하기 버튼 이벤트
        private void btnSearch_Click(object sender, EventArgs e)
        {
            GetCodeList();
        }

        // 2022.11.29 / 박민준 / 해당 테이블 생성 
        private void GetCodeList()
        {
            try
            {
                dtList = new DataTable();

                DataTable dtCanStomach1 = mTextCode.Get("CanStomach1");
                DataTable dtCanStomach2 = mTextCode.Get("CanStomach2");
                DataTable dtCanLung = mTextCode.Get("CanLung");
                DataTable dtCanCervix = mTextCode.Get("CanCervix");
                DataTable dtCanBreast = mTextCode.Get("CanBreast");
                DataTable dtCanLiver = mTextCode.Get("CanLiver");
                DataTable dtCanColon1 = mTextCode.Get("CanColon1");
                DataTable dtCanColon2 = mTextCode.Get("CanColon2");
                DataTable dtCanColon3 = mTextCode.Get("CanColon3");

                dtList = mTextCode.Get(classify).Copy();
                dtList.Columns["dtlCd"].ColumnName = "dtlCd";
                dtList.Columns["korNm"].ColumnName = "korNm";
                dtList.Columns["engNm"].ColumnName = "engNm";
                dtList.Columns["atriVal1"].ColumnName = "atriVal1";
                dtList.AcceptChanges();
                dtList.DefaultView.Sort = "dtlCd ASC";
                grdSuasion.DataSource = dtList;

            }

            catch (Exception ex)
            {
                AMessageBox.Show("에러", ex.Message);
                return;
            }
        }

        // 조회하면서 해당 권고사항 반환하기
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            OnOkAction();            
        }

        // 2022.11.29 / 박민준 / 선택한 권고사항을 해당 판정폼에 전달
        private void OnOkAction()
        {
            // 해당 선택한 열의 권고사항 컬럼값을 StringBuilder로 생성한후 각 화면에 다시 데이터를 반환함.
            #region ...
            StringBuilder sb = new StringBuilder();

            foreach (int id in grvSuasion.GetSelectedRows())
            {
                sb.Append(grvSuasion.GetRowCellValue(id, "atriVal1") as object);
            }

            // 위장조영일때
            if (classify == "CanStomach1")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanStomach1", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ410S", "Msg01", dicRes, "AMIS3.HM.GC.PJ410.dll");

                //this.ParentForm.Close();
                this.Close();
            }

            // 위내시경일때
            if (classify == "CanStomach2")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanStomach2", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ410S", "Msg01", dicRes, "AMIS3.HM.GC.PJ410.dll");
                this.Close();
            }

            // 분변잠혈반응검사
            if (classify == "CanColon1")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanColon1", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ411S", "Msg01", dicRes, "AMIS3.HM.GC.PJ411.dll");
                this.Close();
            }

            // 대장이중조영검사
            if (classify == "CanColon2")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanColon2", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ411S", "Msg01", dicRes, "AMIS3.HM.GC.PJ411.dll");
                this.Close();
            }

            // 대장내시경
            if (classify == "CanColon3")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanColon3", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ411S", "Msg01", dicRes, "AMIS3.HM.GC.PJ411.dll");
                this.Close();
            }

            // 간암
            if (classify == "CanLiver")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanLiver", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ412S", "Msg01", dicRes, "AMIS3.HM.GC.PJ412.dll");
                this.Close();
            }

            // 자궁경부암
            if (classify == "CanCervix")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanCervix", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ413S", "Msg01", dicRes, "AMIS3.HM.GC.PJ413.dll");
                this.Close();
            }

            // 유방암
            if (classify == "CanBreast")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanBreast", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ414S", "Msg01", dicRes, "AMIS3.HM.GC.PJ414.dll");
                this.Close();
            }

            if (classify == "CanLung")
            {
                Dictionary<string, object> dicRes = new Dictionary<string, object>();
                dicRes.Add("CanLung", sb);

                object ret = this.SendObjectDicToScreen("VHMGCPJ415S", "Msg01", dicRes, "AMIS3.HM.GC.PJ415.dll");
                this.Close();

            } 
            #endregion

        }

       

    }
}



profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글