/// <summary>Возраст относительно посещения поликлиники</summary> private void apaAge() { try { PROP_Text = PROP_Text.Replace("[apaAge]", Convert.ToString(MyGlo.HashAPAC["Age"])); if (PROP_Text == "11" || PROP_Text == "12" || PROP_Text == "13" || PROP_Text == "14") { PROP_Text += " лет"; } else { switch (PROP_Text.Last()) { case '1': PROP_Text += " год"; break; case '2': case '3': case '4': PROP_Text += " года"; break; default: PROP_Text += " лет"; break; } } } catch { PROP_Text = PROP_Text.Replace("[apaAge]", ""); } }
/// <summary>Вид оплаты (ОМС, платное)</summary> private void astOMS() { string[] _mOMS = { "ОМС", "ДМС", "Платное", "Бюджетное" }; int _Cod = Convert.ToInt16(MyGlo.HashAPSTAC["OMS"]); PROP_Text = PROP_Text.Replace("[astOMS]", _mOMS[_Cod - 1]); }
/// <summary>Инвалидность</summary> private void kboInv() { string[] _mInval = { "I группа", "II группа", "III группа", "ребенок-инвалид", "", "", "снята" }; int _Cod = Convert.ToInt16(MyGlo.HashKBOL["Inv"]); PROP_Text = PROP_Text.Replace("[kboInv]", _Cod > 0 ? _mInval[_Cod - 1] : ""); }
/// <summary>Телефон домашний</summary> private void Tel() { string _Tel = Convert.ToString(MyGlo.HashKBOL["TelDom"]); _Tel = _Tel == "" ? "" : ", тел.:" + _Tel; PROP_Text = PROP_Text.Replace("[Tel]", _Tel); }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { // Располагаем текст this.HorizontalAlignment = HorizontalAlignment.Left; if (PROP_Format.MET_If("ac")) { this.HorizontalAlignment = HorizontalAlignment.Center; } if (PROP_Format.MET_If("ar")) { this.HorizontalAlignment = HorizontalAlignment.Right; } // Если указанно в формате, что показываем 1, а не 2 месяца if (PROP_Format.MET_If("m1")) { PART_Calendar.Columns = 1; PART_Calendar.Width = 250; } // Помечаем в календаре указанные даты foreach (var _Dat in PROP_Text.Split(';')) { if (DateTime.TryParse(_Dat, out DateTime _DateTime)) { PART_Calendar.SelectedDates.Add(_DateTime); } } }
/// <summary>Дата протокола</summary> private void pDate() { string _Date = ""; if (PROP_Protokol != null) { _Date = PROP_Protokol.PROP_pDate.ToShortDateString() + "г."; } PROP_Text = PROP_Text.Replace("[pDate]", _Date); }
/// <summary>Пользователь создавший протокол</summary> /// <remarks>Только для 15 типа (метки), так как в начале протокола ещё нет</remarks> private void User() { string _User = ""; if (PROP_Protokol != null) { _User = MyMet.MET_UserName(PROP_Protokol.PROP_xUserUp); } PROP_Text = PROP_Text.Replace("[User]", _User); }
/// <summary>Дата выписки из стационара</summary> private void DateVip() { if (Convert.ToString(MyGlo.HashAPSTAC["DK"]) == "") { PROP_Text = PROP_Text.Replace("[DateVip]", " . ."); } else { PROP_Text = PROP_Text.Replace("[DateVip]", Convert.ToString(MyGlo.HashAPSTAC["DK"]).Substring(0, 10) + " г."); } }
/// <summary>Сколько лет (относительно посещения стационара)</summary> private void astAge() { try { DateTime _DN = Convert.ToDateTime(MyGlo.HashAPSTAC["DN"]); DateTime _DR = Convert.ToDateTime(MyGlo.DR); int _Age = (int)(_DN.Subtract(_DR).Days * 0.99932 / 365); // 0.99932 - убераем високосные дни PROP_Text = PROP_Text.Replace("[astAge]", _Age.ToString()); } catch { PROP_Text = PROP_Text.Replace("[astAge]", ""); } }
/// <summary>Паспортные данные</summary> private void Pasport() { try { string _Pasport = "серия " + Convert.ToString(MyGlo.HashKBOL["Pasp_Ser"]) + " № " + Convert.ToString(MyGlo.HashKBOL["Pasp_Nom"]) + " выдан " + Convert.ToString(MyGlo.HashKBOL["Pasp_Kogda"]).Substring(0, 10) + "г. " + Convert.ToString(MyGlo.HashKBOL["Pasp_Kem"]); PROP_Text = PROP_Text.Replace("[Pasport]", _Pasport); } catch { PROP_Text = PROP_Text.Replace("[Pasport]", ""); } }
/// <summary>Полис (из стационара APSTAC)</summary> private void astPolis() { // Наименование страховой компании string _Comp = MySql.MET_NameSpr((int)(MyGlo.HashAPSTAC["ScomEnd"]), "s_StrahComp"); // Серия string _Seria = Convert.ToString(MyGlo.HashAPSTAC["SSEnd"]); _Seria = _Seria == "" ? "" : " серия " + _Seria; // Номер string _Nomer = Convert.ToString(MyGlo.HashAPSTAC["SNEnd"]); _Nomer = _Nomer == "" ? "" : " № " + _Nomer; // Выводим PROP_Text = PROP_Text.Replace("[astPolis]", _Comp + _Seria + _Nomer); }
/// <summary>Тройная переменная по шаблону и номеру вопроса (VarId) [ShabVarId|620|50]</summary> private void ShabVarId() { try { int _Start = PROP_Text.IndexOf("[ShabVarId"); int _End = PROP_Text.IndexOf("]", _Start) - _Start + 1; string[] _mArr = PROP_Text.Substring(_Start + 1, _End - 2).Split('|'); // Если номер шаблона меньше 100, то это номер для всех отделениий int _Num = Convert.ToInt32(_mArr[1]); _Num = _Num < 100 ? MET_NomShablon(_Num) : _Num; PROP_Text = PROP_Text.Replace(PROP_Text.Substring(_Start, _End), MET_StrRazdel(_Num, "", Convert.ToInt32(_mArr[2]), "", true)); } catch { } }
private void fFormula() { try { string _Str = PRI_TextBody; _Str = _Str.Replace("|VarId", " cast(replace(dbo.GetPole("); _Str = _Str.Replace("xd|", ",'" + PROP_Protokol.PROP_Protokol + "'), ',','.') as float) "); // replace на всякий случай для расчетов меняем все запятые на точки _Str = _Str.Replace("nc|", ",'" + PROP_Protokol.PROP_Protokol + "'), '','') as nvarchar) "); // для обычного текста _Str = $"select cast({_Str} as nvarchar)"; string _Value = MySql.MET_QueryStr(_Str); PROP_Text = PROP_Text.Replace(PRI_TextPr, _Value); } catch { PROP_Text = PROP_Text.Replace(PRI_TextPr, ""); } }
/// <summary>Полный диагноз посещения поликлиники</summary> private void apaDiag() { string _Diag; try { _Diag = Convert.ToInt16(MyGlo.HashAPAC["EndMKB"]) == 1 ? "(окончательный) " : "(предварительный) "; string _D = (string)MyGlo.HashAPAC["D"]; _Diag += _D + " " + MySql.MET_NameSpr(_D, "s_Diag"); } catch { _Diag = ""; } PROP_Text = PROP_Text.Replace("[apaDiag]", _Diag); }
/// <summary>Оплата по тарифу Поликлиники</summary> private void apaSumTarif() { string _SumTarif; try { _SumTarif = MySql.MET_QueryStr(MyQuery.MET_varSumTarifPol_Select_1(MyGlo.IND)); } catch { _SumTarif = ""; } if (_SumTarif == "0") { _SumTarif = ""; } PROP_Text = PROP_Text.Replace("[apaSumTarif]", _SumTarif); }
/// <summary>Шапка Шаблона выписки из стационара</summary> private void astShapkaExtact() { string _Str = "Бюджетное учреждение здравоохранения Омской области \"Клинический онкологический диспансер\"\n\n"; // Адрес медицинской организации if (MyGlo.Server == 3) { _Str += "г. Омск, ул. Завертяева 9/1\n"; } else { _Str += "г. Омск, ул. Учебная 205\n"; } // Находим код отделения int _CodOtd = MySql.MET_QueryInt(MyQuery.APSTAC_Select_5(PROP_Protokol.PROP_CodApstac)); // Наименование Отделения _Str += MySql.MET_QueryStr(MyQuery.MET_s_ListDocum_Select_2("2", _CodOtd)) + "\n"; // Линия _Str += "_________________________________________________________________________________________"; PROP_Text = PROP_Text.Replace("[astShapkaExtact]", _Str); }
/// <summary>Кто направил на обследование</summary> private void ParSend() { PROP_Text = PROP_Text.Replace("[ParSend]", MySql.MET_NameSpr((int)MyGlo.IND, "parObsledov", "SendName", "Cod")); }
/// <summary>Номер истории болезни</summary> private void NStac() { PROP_Text = PROP_Text.Replace("[NStac]", MyGlo.NSTAC.ToString()); }
/// <summary>Наименование текущего Отделения с номером</summary> private void astOtd() { PROP_Text = PROP_Text.Replace("[astOtd]", $"{MyGlo.Otd}. {MyMet.MET_NameOtd()}"); }
/// <summary>Адрес родственников и номер телефона</summary> private void astRelative() { PROP_Text = PROP_Text.Replace("[astRelative]", Convert.ToString(MyGlo.HashAPSTAC["Relative"])); }
/// <summary>Код диагноза посещения поликлиники</summary> private void apaMkb10() { PROP_Text = PROP_Text.Replace("[apaMkb10]", Convert.ToString(MyGlo.HashAPAC["D"])); }
/// <summary>Находим значение с прошлого документа, этого же типа</summary> private void LastDocum() { PROP_Text = PROP_Text.Replace("[LastDocum]", MET_StrRazdel(PROP_NomShabl, "", PROP_VarId, "", true)); }
/// <summary>Вставляем текст в зависимости от кода отделения Otd</summary> /// <remarks> /// <para>Вид переменной: [astIfOtd|Условие|Отд1,Отд2, ... |Текст]</para> /// <list type="table"> /// <listheader><term>Константа</term><description>Описание</description></listheader> /// <item><term>astIfOtd</term><description>константа (имя переменной)</description></item> /// <item><term>Условие</term><description>3 спец символа</description></item> /// <item><term>- =</term><description>отделение равно указанным отделениям</description> </item> /// <item><term>- !</term><description>отделение не равно указанным отделениям</description> </item> /// <item><term>- ></term><description>отделеие больше указанной госпитализации</description> </item> /// <item><term>Отд1,Отд2, ... </term><description>перечень отделений</description> </item> /// <item><term>Текст</term><description>отображаемый текст, в случае правильного отделения</description></item> /// </list> /// </remarks> private void astIfOtd() { try { int _Start = PROP_Text.IndexOf("[astIfOtd"); int _End = PROP_Text.IndexOf("]", _Start) - _Start + 1; // 0 - условие, 1 - перечень отделений, через запятую, 2 - текст который вставляем string[] _mArr = PROP_Text.Substring(_Start + 1, _End - 2).Split('|'); // Подстановочный текст string _Text = _mArr[3]; try { // Отделение госпитализации int _Otd = (int)MyGlo.HashAPSTAC["otd"]; if (_Otd == 0) { _Text = ""; goto exit; } // Перечень отделений int[] _mOtd = _mArr[2].Split(',').Select(int.Parse).ToArray(); // Условия switch (_mArr[1]) { case "=": if (Array.IndexOf(_mOtd, _Otd) == -1) { _Text = ""; } break; case "!": if (Array.IndexOf(_mOtd, _Otd) != -1) { _Text = ""; } break; case ">": if (_Otd <= _mOtd[0]) { _Text = ""; } break; default: _Text = ""; break; } exit: ; } catch { _Text = ""; } PROP_Text = PROP_Text.Replace(PROP_Text.Substring(_Start, _End), _Text); } catch { } }
/// <summary>Наименование текущего Отделения</summary> private void NameOtd() { PROP_Text = PROP_Text.Replace("[NameOtd]", MyMet.MET_NameOtd()); }
/// <summary>Аппарат</summary> private void Apparat() { PROP_Text = PROP_Text.Replace("[Apparat]", MySql.MET_QueryStr(MyQuery.parObsledovt_Select_2((int)MyGlo.IND))); }
/// <summary>Код диагноза стационара (из приемного отделения)</summary> private void DiagMKB() { PROP_Text = PROP_Text.Replace("[DiagMKB]", MyGlo.DiagStac); }
/// <summary>Полная строка диагноза (из приемного отделения)</summary> private void DiagPriem() { PROP_Text = PROP_Text.Replace("[DiagPriem]", MyGlo.DiagStac + " " + MySql.MET_NameSpr(MyGlo.DiagStac, "s_Diag")); }
/// <summary>Площадь пациента</summary> private void astSquare() { PROP_Text = PROP_Text.Replace("[astSquare]", Convert.ToString(MyGlo.HashAPSTAC["Square"])); }
/// <summary>Рост пациента</summary> private void astHeight() { PROP_Text = PROP_Text.Replace("[astHeight]", Convert.ToString(MyGlo.HashAPSTAC["Height"])); }
/// <summary>Полная строка диагноза (из осмотра при поступлении)</summary> private void DiagPrOsmotr() { PROP_Text = PROP_Text.Replace("[DiagPrOsmotr]", MET_StrRazdel(MET_NomShablon(1), "Диагноз")); }