setEvent에 판정문 청구용 글자수제한 이벤트 및 바이트수 표기 공부하기.
using AMIS3.HM.ZZ;
using AMIS3.HM.ZZ.ZZLIB003;
using AMIS3.HM.ZZ.ZZLIB003.AutoCal;
using AMIS3.HM.ZZ.ZZLIB003.Controls;
using AMIS3.HM.ZZ.ZZLIB003.Dto;
using AMIS3.HM.ZZ.ZZLIB003.Mvc.Utils;
using AMIS3.UIFramework;
using AMIS3.UIFramework.DataModel;
using AMIS3.UIFramework.FxExtension;
using AMIS3.UIFramework.UI;
using AMIS3.UIFramework.UI.Controls;
using AMIS3.ZZ.ZZ.ZZ.Common.Message;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid.Views.Grid;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
namespace AMIS3.HM.GC.PJ401
{
public partial class VHMGCPJ401S : ScreenBase, ISmartToolbar
{
DataTable svDt = null;
DataTable dtRes = null;
DataTable dtMun = null;
DataTable dtTab = null;
APanelControl pn = new APanelControl();
PreData searchParam = null;
HMPatVO patVO = null;
DataTable dtExamRsltCd = new DataTable(); //검사결과코드
private const string strFormNm = "VHMGCPJ401S"; // 폼이름
private string strJudgDivCd = "G"; // 판정구분
private string strFormCd = "PG20220101"; // 서식코드
private string strFormVerCd = "PG2022010101"; // 서식버전 코드
string sPatno = "";
string sheDt = "";
long vistSn = 0;
string doclicnsNo = ""; // 의사면허번호
string doctorId = ""; // 의사아이디
string doctorNm = ""; // 의사명
string judgDt = ""; // 판정일자
string rsltPrntDt = ""; // 결과물출력일자
string gubun = ""; // 탭구분
UserT UserInfo = null;
public List<ActionButtonItem> ActionButtonItems { get; set; } = new List<ActionButtonItem>();
public VHMGCPJ401S()
{
InitializeComponent();
UserInfo = SecurityWrapper.Instance.SecurityService.GetUserInfo(this);
GetDoctorLicnsNo cs = new GetDoctorLicnsNo(UserInfo.usrId);
if (cs != null)
{
doclicnsNo = cs.GetLicnsNo(); // 의사면허번호
doctorId = cs.GetDoctorId(); // 의사아이디
doctorNm = cs.GetDoctorNm(); // 의사명
}
SetEvent();
SetControl();
}
private void VHMGCPJ401S_Load(object sender, EventArgs e)
{
dcHeDt.ToDateTime = DateTime.Today.AddDays(3);
dcHeDt.FromDateTime = DateTime.Today;
Screen_Clear();
}
private void SetControl()
{
//this.pn.SetControl();
this.Gpanel.SetControl();
this.Tpanel.SetControl();
ActionBtnSetting();
SetDoctorInfo();
}
/// <summary>
/// 조회버튼
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSearch_Click(object sender, EventArgs e)
{
retrievePatInfo();
SetDoctorInfo();
}
/// <summary>
/// 수진자목록
/// </summary>
private async void retrievePatInfo()
{
PreData preDt = new PreData();
if (dcHeDt.FromDateTime == null
|| dcHeDt.ToDateTime == null)
{
AMessageBox.ShowDialog(this, "필수", "조회기간을 선택하세요");
return;
}
preDt["startDt"] = dcHeDt.FromDateTime.ToString("yyyyMMdd");
preDt["endDt"] = dcHeDt.ToDateTime.ToString("yyyyMMdd");
preDt["patno"] = txtPatno.EditValue.ToStringDefault();
preDt["gubun"] = aTabControl1.SelectedTabPage.Name.ToStringDefault(); // 판정완료, 미판정, 전체
preDt["heBasisPkgCd"] = "gb"; // 일반,생활습관
AmcData amcDataParam = new AmcData
{
preDatas = new PreDatas
{
{ "IPD", preDt }
}
};
AmcData resultList = await CommService.CallServiceAsync("SHMGC3101R", amcDataParam, this, LoadingType.BlockLoad);
// 4.응답전문 => DT 변환
if (resultList.IsSuccess)
{
DataTable returnDT = resultList.recordSets["ORS"].ToDataTable();
this.grdPatList.DataSource = returnDT;
}
}
/// <summary>
/// 의사정보셋팅
/// </summary>
private void SetDoctorInfo()
{
this.txtLnoG.EditValue = doclicnsNo; // 의사자격번호
this.txtLnoT.EditValue = doclicnsNo;
this.txtDoctorNmG.EditValue = doctorNm; // 의사명
this.txtDoctorNmT.EditValue = doctorNm;
}
private void ActionBtnSetting()
{
ActionButtonItems = new List<ActionButtonItem>();
ActionButtonItems.Add(new ActionButtonItem
{
Text = "저장",
Idx = 0,
IsImportant = true,
Permissions = "W",
ClickAction = OnSaveAction,
Name = "actSave"
});
btnAction.Items = ActionButtonItems;
DocumentService.ChangeActionButtons(this);
btnAction.FallDownMenuWidth = 80;
}
#region ====== 단축키 설정 ======
/// <summary>
/// 저장 Ctrl+S
/// </summary>
protected override void SaveMethod()
{
OnSaveAction();
base.SaveMethod();
}
#endregion
private void SetEvent()
{
//그리드 행 선택시
grvPatList.RowCellClick += (sender, e) =>
{
Screen_Clear();
GridView gv = sender as GridView;
if (!gv.IsValidRowHandle(e.RowHandle)) return;
sPatno = grvPatList.GetFocusedRowCellValue("patno").ToStringDefault();
string sPatNm = grvPatList.GetFocusedRowCellValue("patNm").ToStringDefault();
sheDt = grvPatList.GetFocusedRowCellValue("heDt").ToString().Replace("-", "");
string ssexAge = grvPatList.GetFocusedRowCellValue("sexage").ToStringDefault();
vistSn = grvPatList.GetFocusedRowCellValue("vistSn").ToStringDefault("0").ToLong();
rsltPrntDt = grvPatList.GetFocusedRowCellValue("rsltPrntDt").ToStringDefault(); // 결과물출력일자
gubun = grvPatList.GetFocusedRowCellValue("gubun").ToStringDefault(); // 탭
string[] sSexAge = ssexAge.Split('/');
patVO = new HMPatVO();
patVO.patNo = sPatno;
patVO.heDt = sheDt;
patVO.dept = "GHS";
patVO.vistSn = vistSn;
patVO.sex = sSexAge[0];
patVO.age = ssexAge[1].To<long>(0);
lblSelHedt.Text = sheDt;
lblSelName.Text = sPatNm;
lblSelPatno.Text = sPatno;
lblSelSexAge.Text = ssexAge;
searchParam = new PreData()
{
["patno"] = sPatno,
["heDt"] = sheDt,
["vistSn", ADataType.L] = vistSn,
["formCd"] = strFormCd,
["formVerCd"] = strFormVerCd,
["heFormDivCd"] = strJudgDivCd
};
if ("G".Equals(this.tabGubun.SelectedTabPage.Name.ToStringDefault()))
{
strJudgDivCd = "G"; // 일반
strFormCd = "PG20220101";
strFormVerCd = "PG2022010101";
pn = this.Gpanel;
}
else if ("T".Equals(this.tabGubun.SelectedTabPage.Name.ToStringDefault()))
{
strJudgDivCd = "T"; // 생활습관처방
strFormCd = "PT20220101";
strFormVerCd = "PT2022010101";
pn = this.Tpanel;
}
if ("G".Equals(gubun))
{
this.tabGubun.TabPages[1].PageEnabled = false; // 생활습관처방
}
else
{
this.tabGubun.TabPages[0].PageEnabled = true;
this.tabGubun.TabPages[1].PageEnabled = true;
//생활습관처방 상세탭
}
retrieveOrdrLIstItemInfo(searchParam); // 검사내역 및 서식값조회
SetDoctorInfo();
};
txtPatno.KeyPress += (sender, e) =>
{
Screen_Clear();
btnSearch.PerformClick();
};
grvExamItem.CustomRowCellEdit += (sender, e) =>
{
RepositoryItemImageComboBox rCombo = new RepositoryItemImageComboBox();
RepositoryItemTextEdit rText = new RepositoryItemTextEdit();
if (e.Column.FieldName == "rsltVal")
{
string rsltValCd = grvExamItem.GetRowCellValue(e.RowHandle, "rsltValCd").ToStringDefault();
DataRow[] dtDtl = dtExamRsltCd.AsEnumerable().Where(r => r["rsltValCd"].ToStringDefault() == rsltValCd).ToArray();
if (dtDtl != null && dtDtl.Length > 0) //rsltVal 명 rsltValDtlCd 코드
{
rCombo.SetDataSource(dtDtl.CopyToDataTable(), "rsltVal", "rsltValDtlCd", AComboFirstValueType.None);
e.RepositoryItem = rCombo;
}
else
{
e.RepositoryItem = rText;
}
}
else
{
e.RepositoryItem = rText;
}
};
grvExamItem.RowStyle += GrvExamItem_RowStyle;
// 판정문 청구용 글자수제한 이벤트
aMemoEdit1.EditValueChanged += (s, e) => { memoEdit_EditValueChanged(aMemoEdit1, aLabelControl72); };
aMemoEdit2.EditValueChanged += (s, e) => { memoEdit_EditValueChanged(aMemoEdit2, aLabelControl75); };
aMemoEdit3.EditValueChanged += (s, e) => { memoEdit_EditValueChanged(aMemoEdit3, aLabelControl77); };
aMemoEdit4.EditValueChanged += (s, e) => { memoEdit_EditValueChanged(aMemoEdit4, aLabelControl79); };
//바이트수 표기
aMemoEdit1.Click += (s, e) => { aMemoEdit_Click(aMemoEdit1, aLabelControl72); };
aMemoEdit2.Click += (s, e) => { aMemoEdit_Click(aMemoEdit2, aLabelControl75); };
aMemoEdit3.Click += (s, e) => { aMemoEdit_Click(aMemoEdit3, aLabelControl77); };
aMemoEdit4.Click += (s, e) => { aMemoEdit_Click(aMemoEdit4, aLabelControl79); };
//2023.01.27 오은진 주석처리
//// 의심질환 (청구용)
//aMemoEdit1.EditValueChanged += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit1.Text).Length;
// aLabelControl72.Text = messageSize.ToString();
// if (messageSize > 500)
// {
// AMessageBox.ShowInstant("입력데이터는 500바이트를 초과할 수 없습니다.");
// Byte[] bt = Encoding.UTF8.GetBytes(aMemoEdit1.Text);
// aMemoEdit1.Text = Encoding.UTF8.GetString(bt, 0, 498);
// aLabelControl72.Focus();
// SuspecDisease.Focus();
// aLabelControl72.Text = messageSize.ToString();
// }
//};
//aMemoEdit1.Click += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit1.Text).Length;
// aLabelControl72.Text = messageSize.ToString();
//};
//// 의심질환소견 판정문 탭 누를시 바이트수 초기화.
//aTabControl2.SelectedPageChanged += (sender, e) =>
//{
// if (aTabControl2.SelectedTabPageIndex == 0)
// {
// aLabelControl72.Text = "-";
// }
//};
//// 유질환(청구용)
//aMemoEdit2.EditValueChanged += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit2.Text).Length;
// aLabelControl75.Text = messageSize.ToString();
// if (messageSize > 500)
// {
// AMessageBox.ShowInstant("입력데이터는 500바이트를 초과할 수 없습니다.");
// Byte[] bt = Encoding.UTF8.GetBytes(aMemoEdit2.Text);
// aMemoEdit2.Text = Encoding.UTF8.GetString(bt, 0, 498);
// aLabelControl75.Focus();
// aMemoEdit2.Focus();
// aLabelControl75.Text = messageSize.ToString();
// }
//};
//aMemoEdit2.Click += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit2.Text).Length;
// aLabelControl75.Text = messageSize.ToString();
//};
//aTabControl3.SelectedPageChanged += (sender, e) =>
//{
// if (aTabControl3.SelectedTabPageIndex == 0)
// {
// aLabelControl75.Text = "-";
// }
//};
//// 생활습관 (청구용)
//aMemoEdit3.EditValueChanged += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit3.Text).Length;
// aLabelControl77.Text = messageSize.ToString();
// if (messageSize > 500)
// {
// AMessageBox.ShowInstant("입력데이터는 500바이트를 초과할 수 없습니다.");
// Byte[] bt = Encoding.UTF8.GetBytes(aMemoEdit3.Text);
// aMemoEdit3.Text = Encoding.UTF8.GetString(bt, 0, 498);
// aLabelControl77.Focus();
// aMemoEdit3.Focus();
// aLabelControl77.Text = messageSize.ToString();
// }
//};
//aMemoEdit3.Click += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit3.Text).Length;
// aLabelControl77.Text = messageSize.ToString();
//};
//aTabControl4.SelectedPageChanged += (sender, e) =>
//{
// if (aTabControl4.SelectedTabPageIndex == 0)
// {
// aLabelControl77.Text = "-";
// }
//};
//// 기타질환(청구용)
//aMemoEdit4.EditValueChanged += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit4.Text).Length;
// aLabelControl79.Text = messageSize.ToString();
// if (messageSize > 500)
// {
// AMessageBox.ShowInstant("입력데이터는 500바이트를 초과할 수 없습니다.");
// Byte[] bt = Encoding.UTF8.GetBytes(aMemoEdit4.Text);
// aMemoEdit4.Text = Encoding.UTF8.GetString(bt, 0, 498);
// aLabelControl79.Focus();
// aMemoEdit4.Focus();
// aLabelControl79.Text = messageSize.ToString();
// }
//};
//aMemoEdit4.Click += (sender, e) =>
//{
// int messageSize = Encoding.UTF8.GetBytes(aMemoEdit4.Text).Length;
// aLabelControl79.Text = messageSize.ToString();
//};
//aTabControl5.SelectedPageChanged += (sender, e) =>
//{
// if (aTabControl5.SelectedTabPageIndex == 0)
// {
// aLabelControl79.Text = "-";
// }
//};
}
private void GrvExamItem_RowStyle(object sender, RowStyleEventArgs e)
{
GridView view = sender as GridView;
if (e.RowHandle >= 0)
{
string data = view.GetRowCellValue(e.RowHandle, "rsltJudgCd").ToStringDefault();
if ("R".Equals(data.ToStringDefault()))
{
e.Appearance.BackColor = System.Drawing.Color.MistyRose;
e.HighPriority = true;
}
}
}
/// <summary>
/// 결과코드리스트 조회
/// </summary>
private void RetrieveExamRsltCdList()
{
AmcData amcDataParam = new AmcData
{
};
var responseData = CommService.CallService("SHMGX4010R", amcDataParam);
if (string.Equals(responseData.header.resultCode, "S"))
{
dtExamRsltCd = responseData.recordSets["ORS"].ToDataTable(true);
}
}
private void Screen_Clear()
{
this.pn.SetControlClear();
lblSelHedt.Text = "";
lblSelName.Text = "";
lblSelPatno.Text = "";
lblSelSexAge.Text = "";
patVO = null;
dtMun = null;
dtRes = null;
}
/// <summary>
/// 검사내역 및 서식데이터
/// </summary>
private async void retrieveOrdrLIstItemInfo(PreData searchParam)
{
AmcData amcDataParam = new AmcData
{
preDatas = new PreDatas
{
{ "IPD", searchParam }
}
};
AmcData resultList = await CommService.CallServiceAsync("SHMGC3102R", amcDataParam, this, LoadingType.BlockLoad);
// 4.응답전문 => DT 변환
if (resultList.IsSuccess)
{
DataTable returnDT = resultList.recordSets["ORS"].ToDataTable();
DataTable returnItem = resultList.recordSets["ORS_ITEM"].ToDataTable();
dtTab = resultList.recordSets["ORS_PK"].ToDataTable();
this.grdExamItem.DataSource = returnDT;
if (dtTab.Rows.Count > 0)
{
foreach (DataRow dr in dtTab.Rows)
{
if ("gbT01".Equals(dr["heBasisPkgCd"].ToString()))
{
gbT01.PageEnabled = true;
}
else if ("gbT02".Equals(dr["heBasisPkgCd"].ToString()))
{
gbT02.PageEnabled = true;
}
else if ("gbT03".Equals(dr["heBasisPkgCd"].ToString()))
{
gbT031.PageEnabled = true;
gbT032.PageEnabled = true;
gbT033.PageEnabled = true;
}
}
}
if (returnItem.Rows.Count > 0)
{
pn.SetData(returnItem, "itemCd", "answer");
}
else
{
//검사수행정보
dtRes = RetrieveExamList(patVO);
//문진정보
dtMun = RetrieveMunjinInfo(patVO);
//신규판정대상의 경우 자동판정 진행
AutoJudgment autoJM = new AutoJudgment();
//검사결과참고치
List<HeExRefVal> heExRefVal = new List<HeExRefVal>();
AmcData adParam = new AmcData
{
header = new HeaderData { debug = 0 },
preDatas = new PreDatas
{
{ "IPD", searchParam },
}
};
var responseData = await CommService.CallServiceAsync("SHMGZ7110R", adParam, this, LoadingType.BlockSearch);
DataTable dtExRefVal = responseData.recordSets["ORS"].ToDataTable(false);
dtExRefVal.AcceptChanges(); // 조회후 데이터 상태 초기화
for (int i = 0; i < dtExRefVal.Rows.Count; i++)
{
HeExRefVal dto = new HeExRefVal
{
rsltJudgCd = dtExRefVal.Rows[i]["rsltJudgCd"].ToStringDefault(),
ordrCd = dtExRefVal.Rows[i]["ordrCd"].ToStringDefault(),
dtlCd = dtExRefVal.Rows[i]["dtlCd"].ToStringDefault(),
rsltTypVal = dtExRefVal.Rows[i]["rsltTypVal"].ToStringDefault(),
useSexCd = dtExRefVal.Rows[i]["useSexCd"].ToStringDefault(),
applyStDt = dtExRefVal.Rows[i]["applyStDt"].ToStringDefault(),
applyEndDt = dtExRefVal.Rows[i]["applyEndDt"].ToStringDefault(),
crteLowAge = dtExRefVal.Rows[i]["crteLowAge"].ToLong(),
crteUplmtAge = dtExRefVal.Rows[i]["crteUplmtAge"].ToLong(),
rmrk = dtExRefVal.Rows[i]["rmrk"].ToStringDefault()
};
heExRefVal.Add(dto);
}
//검진자동판정
AutoCalculator.AutoJudgment(patVO, dtRes, dtMun, ref autoJM, heExRefVal);
//Display
DisplayAutoJudgement(autoJM);
}
SetDoctorInfo();
}
}
private DataTable RetrieveMunjinInfo(HMPatVO patVO)
{
DataTable dt = new DataTable();
PreData searchParam = new PreData
{
["patno"] = patVO.patNo,
["heDt"] = patVO.heDt.Replace("-", ""),
["vistSn"] = patVO.vistSn.ToStringDefault(),
["examActDeptCd"] = "",
};
AmcData amcDataParam = new AmcData
{
header = new HeaderData { debug = 0 },
preDatas = new PreDatas { { "IPD", searchParam }, }
};
var responseData = CommService.CallService("SHMGX4007R", amcDataParam);
if (string.Equals(responseData.header.resultCode, "S"))
{
dt = responseData.recordSets["ORS"].ToDataTable(true);
dt.AcceptChanges(); // 조회후 데이터 상태 초기화
}
return dt;
}
private DataTable RetrieveExamList(HMPatVO patVO)
{
DataTable dt = new DataTable();
PreData searchParam = new PreData
{
["patno"] = patVO.patNo,
["heDt"] = patVO.heDt.Replace("-", ""),
["vistSn"] = patVO.vistSn.ToStringDefault(),
["examActDeptCd"] = "",
};
AmcData amcDataParam = new AmcData
{
header = new HeaderData { debug = 0 },
preDatas = new PreDatas { { "IPD", searchParam }, }
};
var responseData = CommService.CallService("SHMGX4007R", amcDataParam);
if (string.Equals(responseData.header.resultCode, "S"))
{
dt = responseData.recordSets["ORS"].ToDataTable(true);
dt.AcceptChanges(); // 조회후 데이터 상태 초기화
}
return dt;
}
private void DisplayAutoJudgement(AutoJudgment autoJM)
{
PanA.EditValue = "1";
for (int i = 0; i < autoJM.PanB.Length; i++)
{
if ("1".Equals(autoJM.PanB[i]))
{
PanA.EditValue = "0";
break;
}
}
if ("1".Equals(PanA.EditValue))
{
for (int i = 0; i < autoJM.PanR1.Length; i++)
{
if ("1".Equals(autoJM.PanR1[i]))
{
PanA.EditValue = "0";
break;
}
}
}
//정상 B
PanB0.EditValue = autoJM.PanB[0]; PanB1.EditValue = autoJM.PanB[1]; PanB2.EditValue = autoJM.PanB[2];
PanB3.EditValue = autoJM.PanB[3]; PanB4.EditValue = autoJM.PanB[4]; PanB5.EditValue = autoJM.PanB[5];
PanB6.EditValue = autoJM.PanB[6]; PanB7.EditValue = autoJM.PanB[7]; PanB8.EditValue = autoJM.PanB[8];
PanB9.EditValue = autoJM.PanB[9];
//의심 R
PanR0.EditValue = autoJM.PanR1[0]; PanR1.EditValue = autoJM.PanR1[1]; PanR2.EditValue = autoJM.PanR1[2];
PanR3.EditValue = autoJM.PanR1[3]; PanR4.EditValue = autoJM.PanR1[4]; PanR5.EditValue = autoJM.PanR1[5];
PanR6.EditValue = autoJM.PanR1[6]; PanR7.EditValue = autoJM.PanR1[7]; PanR8.EditValue = autoJM.PanR1[8];
PanR9.EditValue = autoJM.PanR1[9]; PanR10.EditValue = autoJM.PanR1[10]; PanR11.EditValue = autoJM.PanR1[11];
//유질환 D
PanD0.EditValue = autoJM.PanD[0]; PanD1.EditValue = autoJM.PanD[1]; PanD2.EditValue = autoJM.PanD[2]; PanD3.EditValue = autoJM.PanD[3];
//의심질환소견
SuspecDisease.EditValue = autoJM.SuspecDisease;
//유질환소견
Disease.EditValue = autoJM.Disease;
//생활습관소견
LifeDisease.EditValue = autoJM.LifeDisease;
//기타소견
EtcDisease.EditValue = autoJM.EtcDisease;
}
/// <summary>
/// 서식데이터조회
/// </summary>
/// <param name="searchParam"></param>
private async void retrievetItemInfo(PreData searchParam)
{
AmcData amcDataParam = new AmcData
{
preDatas = new PreDatas
{
{ "IPD", searchParam }
}
};
AmcData resultList = await CommService.CallServiceAsync("SHMGC3103R", amcDataParam, this, LoadingType.BlockLoad);
// 4.응답전문 => DT 변환
if (resultList.IsSuccess)
{
DataTable returnItem = resultList.recordSets["ORS_ITEM"].ToDataTable();
if (returnItem.Rows.Count > 0)
{
pn.SetData(returnItem, "itemCd", "answer");
}
SetDoctorInfo();
}
}
/// <summary>
/// 저장
/// </summary>
private void OnSaveAction()
{
SvCallSaveInfo();
// SavePanJ();
}
/// <summary>
/// 판정저장
/// </summary>
private async void SavePanJ()
{
PreData sParam = new PreData();
sParam["patno"] = sPatno;
sParam["vistSn", ADataType.L] = vistSn;
sParam["heDt"] = sheDt;
sParam["heFormDivCd"] = strJudgDivCd;
sParam["judgDt"] = this.judgDt;
sParam["judgDrLcnsNo"] = this.doclicnsNo;
AmcData amcDataSearchParam = new AmcData
{
preDatas = new PreDatas { { "IPD", sParam } }
};
AmcData amcMainData = await CommService.CallServiceAsync("SHMGC3200U", amcDataSearchParam, this, LoadingType.BlockLoad);
}
/// <summary>
/// 판정데이터저장
/// </summary>
private async void SvCallSaveInfo()
{
if (!("").Equals(rsltPrntDt))
{
AMessageBox.Show("", "결과지를 출력한 서식은 수정할수 없습니다. ");
return;
}
if (ValidationCheck())
{
// 저장로직 처리
svDt = new DataTable();
AmcData amcDataParam = new AmcData();
amcDataParam.recordSets = new RecordSets();
amcDataParam.preDatas = new PreDatas();
PreData sParam = new PreData();
sParam["patno"] = sPatno;
sParam["vistSn", ADataType.L] = vistSn;
sParam["heDt"] = sheDt;
sParam["heFormDivCd"] = strJudgDivCd;
sParam["judgDt"] = judgDt;
sParam["judgDrLcnsNo"] = this.doclicnsNo;
svDt.SetSvDataTable("판정", strJudgDivCd, strFormCd, strFormVerCd, sPatno, sheDt, vistSn, false);
pn.GetData(ref svDt, "itemItemCd", "itemResultVal");
amcDataParam.recordSets.Add("IRS", svDt.ToRecordSet(true)); // 데이터저장
amcDataParam.preDatas.Add("IPD", sParam); // 상태값변경
var responseData = await CommService.CallServiceAsync("SHMGC3001T", amcDataParam);
AMessageBox.ShowInstant(this, responseData.header.message);
//성공인 경우, 재 조회~
if (string.Equals(responseData.header.resultCode, "S"))
{
AMessageBox.Show("저장완료", "정상적으로 수정되었습니다.", AMessageType.OK);
if ("B".Equals(gubun))
{
if ("G".Equals(this.tabGubun.SelectedTabPage.Name.ToStringDefault()))
{
AMessageBox.Show("", "생활습관 처방이 있습니다. \n");
this.tabGubun.SelectedTabPage = this.T;
return;
}
}
retrievePatInfo(); // 수신자목록재조회
}
else
{
AMessageBox.Show("저장에러", responseData.header.message, AMessageType.Error);
}
}
}
/// <summary>
/// 판정(청구용)바이트제한 체크
/// </summary>
/// <returns></returns>
private bool ValidationCheck()
{
bool rslt = true;
if(Encoding.UTF8.GetByteCount(aMemoEdit1.EditValue.ToStringDefault()) > 500)
{
AMessageBox.ShowDialog("", "[의심질환 소견] 입력데이터가 500바이트를 초과하였습니다.");
aTabControl2.SelectedTabPageIndex = 1;
aMemoEdit1.Focus();
aMemoEdit1.Select(aMemoEdit1.EditValue.ToStringDefault().Length, 1);
return rslt = false;
}
if (Encoding.UTF8.GetByteCount(aMemoEdit2.EditValue.ToStringDefault()) > 500)
{
AMessageBox.ShowDialog("", "[유질환 소견] 입력데이터가 500바이트를 초과하였습니다.");
aTabControl3.SelectedTabPageIndex = 1;
aMemoEdit2.Focus();
aMemoEdit2.Select(aMemoEdit2.EditValue.ToStringDefault().Length, 1);
return rslt = false;
}
if (Encoding.UTF8.GetByteCount(aMemoEdit3.EditValue.ToStringDefault()) > 500)
{
AMessageBox.ShowDialog("", "[생활습관 소견] 입력데이터가 500바이트를 초과하였습니다.");
aTabControl4.SelectedTabPageIndex = 1;
aMemoEdit3.Focus();
aMemoEdit3.Select(aMemoEdit3.EditValue.ToStringDefault().Length, 1);
return rslt = false;
}
if (Encoding.UTF8.GetByteCount(aMemoEdit4.EditValue.ToStringDefault()) > 500)
{
AMessageBox.ShowDialog("", "[기타 소견] 입력데이터가 500바이트를 초과하였습니다.");
aTabControl5.SelectedTabPageIndex = 1;
aMemoEdit4.Focus();
aMemoEdit4.Select(aMemoEdit4.EditValue.ToStringDefault().Length, 1);
return rslt = false;
}
return rslt;
}
private void tabGubun_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e)
{
if (searchParam == null) return;
if ("G".Equals(this.tabGubun.SelectedTabPage.Name.ToStringDefault()))
{
strJudgDivCd = "G"; // 일반
strFormCd = "PG20220101";
strFormVerCd = "PG2022010101";
judgDt = this.txtJudgDtG.EditValue.ToDate().ToString("yyyyMMdd");
pn = this.Gpanel;
}
else if ("T".Equals(this.tabGubun.SelectedTabPage.Name.ToStringDefault()))
{
strJudgDivCd = "T"; // 생활습관처방
strFormCd = "PT20220101";
strFormVerCd = "PT2022010101";
judgDt = this.txtJudgDtT.EditValue.ToDate().ToString("yyyyMMdd");
pn = this.Tpanel;
}
searchParam = new PreData()
{
["patno"] = sPatno,
["heDt"] = sheDt,
["vistSn", ADataType.L] = vistSn,
["formCd"] = strFormCd,
["formVerCd"] = strFormVerCd,
["heFormDivCd"] = strJudgDivCd
};
retrievetItemInfo(searchParam); // 서식재조회
}
private void aTabControl1_Click(object sender, EventArgs e)
{
// 판정, 미판정 탭구분해서 재조회, 쿼리차후 수정
retrievePatInfo();
this.grdExamItem.DataSource = null;
this.grdPatList.DataSource = null;
this.pnlMain.SetControlClear();
}
private void txtJudgDtT_EditValueChanged(object sender, EventArgs e)
{
judgDt = this.txtJudgDtT.EditValue.ToDate().ToString("yyyyMMdd");
}
private void txtJudgDtG_EditValueChanged(object sender, EventArgs e)
{
judgDt = this.txtJudgDtG.EditValue.ToDate().ToString("yyyyMMdd");
}
/// <summary>
/// 2023.01.27 오은진
/// 판정문(청구용)글자수 제한이벤트
/// </summary>
/// <param name="aMemo"></param>
/// <param name="alCtrl"></param>
private void memoEdit_EditValueChanged(AMemoEdit aMemo, ALabelControl albCtrl)
{
int messageSize = Encoding.UTF8.GetByteCount(aMemo.EditValue.ToStringDefault());
albCtrl.Text = messageSize.ToStringDefault("0"); // 바이트수
if (messageSize > 500)
{
AMessageBox.ShowInstant("입력글자는 500바이트를 초과할수 없습니다.");
albCtrl.Text = messageSize.ToStringDefault("0");
}
}
/// <summary>
/// 바이트표기
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void aMemoEdit_Click(AMemoEdit aMemo, ALabelControl albCtrl)
{
aLabelControl72.Text = Encoding.UTF8.GetByteCount(aMemoEdit1.EditValue.ToStringDefault()).ToStringDefault("0");
}
}
}