/// <summary>
        /// Сохранить список операционных протоколов
        /// </summary>
        private void Save()
        {
            var operationProtocolsStr = new StringBuilder();

            foreach (COperationProtocol operationProtocolInfo in _operationProtocolList)
            {
                operationProtocolsStr.Append(
                    "OperationId=" + operationProtocolInfo.OperationId + DataSplitStr +
                    "OperationCourse=" + operationProtocolInfo.OperationCourse + DataSplitStr +
                    "TreatmentPlanDate=" + CConvertEngine.DateTimeToString(operationProtocolInfo.TreatmentPlanDate) + DataSplitStr +
                    "TreatmentPlanInspection=" + operationProtocolInfo.TreatmentPlanInspection + DataSplitStr +
                    "IsTreatmentPlanActiveInOperationProtocol=" + operationProtocolInfo.IsTreatmentPlanActiveInOperationProtocol + DataSplitStr +
                    "ADFirst=" + operationProtocolInfo.ADFirst + DataSplitStr +
                    "ADSecond=" + operationProtocolInfo.ADSecond + DataSplitStr +
                    "Breath=" + operationProtocolInfo.Breath + DataSplitStr +
                    "ChDD=" + operationProtocolInfo.ChDD + DataSplitStr +
                    "Complaints=" + operationProtocolInfo.Complaints + DataSplitStr +
                    "State=" + operationProtocolInfo.State + DataSplitStr +
                    "HeartRhythm=" + operationProtocolInfo.HeartRhythm + DataSplitStr +
                    "HeartSounds=" + operationProtocolInfo.HeartSounds + DataSplitStr +
                    "IsDairyEnabled=" + operationProtocolInfo.IsDairyEnabled + DataSplitStr +
                    "Pulse=" + operationProtocolInfo.Pulse + DataSplitStr +
                    "StLocalis=" + operationProtocolInfo.StLocalis + DataSplitStr +
                    "Stomach=" + operationProtocolInfo.Stomach + DataSplitStr +
                    "Stool=" + operationProtocolInfo.Stool + DataSplitStr +
                    "Temperature=" + operationProtocolInfo.Temperature + DataSplitStr +
                    "TimeWriting=" + CConvertEngine.DateTimeToString(operationProtocolInfo.TimeWriting, true) + DataSplitStr +
                    "Urination=" + operationProtocolInfo.Urination + DataSplitStr +
                    "Wheeze=" + operationProtocolInfo.Wheeze + DataSplitStr + ObjSplitStr);
            }

            CDatabaseEngine.PackText(operationProtocolsStr.ToString(), _operationProtocolPath);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Сохранить список операций
        /// </summary>
        private void Save()
        {
            _operationList.Sort(COperation.Compare);

            var operationsStr = new StringBuilder();

            foreach (COperation operationInfo in _operationList)
            {
                operationsStr.Append(
                    "Id=" + operationInfo.Id + DataSplitStr +
                    "HospitalizationId=" + operationInfo.HospitalizationId + DataSplitStr +
                    "PatientId=" + operationInfo.PatientId + DataSplitStr +
                    "DateOfOperation=" + CConvertEngine.DateTimeToString(operationInfo.DateOfOperation) + DataSplitStr +
                    "StartTimeOfOperation=" + CConvertEngine.DateTimeToString(operationInfo.StartTimeOfOperation, true) + DataSplitStr +
                    "EndTimeOfOperation=" + CConvertEngine.DateTimeToString(operationInfo.EndTimeOfOperation, true) + DataSplitStr +
                    "Name=" + operationInfo.Name + DataSplitStr +
                    "Surgeons=" + CConvertEngine.ListToString(operationInfo.Surgeons) + DataSplitStr +
                    "Assistents=" + CConvertEngine.ListToString(operationInfo.Assistents) + DataSplitStr +
                    "OperationTypes=" + CConvertEngine.ListToString(operationInfo.OperationTypes) + DataSplitStr +
                    "HeAnaesthetist=" + operationInfo.HeAnaesthetist + DataSplitStr +
                    "SheAnaesthetist=" + operationInfo.SheAnaesthetist + DataSplitStr +
                    "ScrubNurse=" + operationInfo.ScrubNurse + DataSplitStr +
                    "Orderly=" + operationInfo.Orderly + ObjSplitStr);
            }

            CDatabaseEngine.PackText(operationsStr.ToString(), _operationPath);
        }
        /// <summary>
        /// Сохранить список выписных эпикризов
        /// </summary>
        private void Save()
        {
            var dischargeEpicrisissStr = new StringBuilder();

            foreach (CDischargeEpicrisis dischargeEpicrisisInfo in _dischargeEpicrisisList)
            {
                dischargeEpicrisissStr.Append(
                    "HospitalizationId=" + dischargeEpicrisisInfo.HospitalizationId + DataSplitStr +
                    "AnalysisDate=" + CConvertEngine.DateTimeToString(dischargeEpicrisisInfo.AnalysisDate) + DataSplitStr +
                    "AfterOperation=" + dischargeEpicrisisInfo.AfterOperation + DataSplitStr +
                    "ConservativeTherapy=" + dischargeEpicrisisInfo.ConservativeTherapy + DataSplitStr +
                    "Ekg=" + dischargeEpicrisisInfo.Ekg + DataSplitStr +
                    "OakEritrocits=" + dischargeEpicrisisInfo.OakEritrocits + DataSplitStr +
                    "OakHb=" + dischargeEpicrisisInfo.OakHb + DataSplitStr +
                    "OakLekocits=" + dischargeEpicrisisInfo.OakLekocits + DataSplitStr +
                    "OakSoe=" + dischargeEpicrisisInfo.OakSoe + DataSplitStr +
                    "OamColor=" + dischargeEpicrisisInfo.OamColor + DataSplitStr +
                    "OamDensity=" + dischargeEpicrisisInfo.OamDensity + DataSplitStr +
                    "OamEritrocits=" + dischargeEpicrisisInfo.OamEritrocits + DataSplitStr +
                    "OamLekocits=" + dischargeEpicrisisInfo.OamLekocits + DataSplitStr +
                    "AdditionalAnalises=" + dischargeEpicrisisInfo.AdditionalAnalises + DataSplitStr +
                    "Recomendations=" + CConvertEngine.ListToString(dischargeEpicrisisInfo.Recomendations) + DataSplitStr +
                    "AdditionalRecomendations=" + CConvertEngine.ListToString(dischargeEpicrisisInfo.AdditionalRecomendations) + ObjSplitStr);
            }

            CDatabaseEngine.PackText(dischargeEpicrisissStr.ToString(), _dischargeEpicrisisPath);
        }
Exemplo n.º 4
0
        private void CreateMergeInfos(
            ObjectType objectType,
            string patientFio,
            string nosology,
            string parameterName,
            string ownValue,
            string foreignValue,
            CVisit diffVisit,
            out CMergeInfo ownPatientMergeInfo,
            out CMergeInfo foreignPatientMergeInfo)
        {
            const string differenceStr = "Пациент: '{0}'. Нозология: '{1}'. Дата консультации: '{2}'.\r\nНазвание параметра: '{3}'. Значение: '{4}'";

            ownPatientMergeInfo = new CMergeInfo
            {
                IdOwnPatient = PatientId,
                IdOwnVisit   = Id,
                TypeOfObject = objectType,
                Value        = ownValue,
                Difference   = string.Format(differenceStr, patientFio, nosology, CConvertEngine.DateTimeToString(VisitDate, true), parameterName, ownValue)
            };

            foreignPatientMergeInfo = new CMergeInfo
            {
                IdForeignPatient = diffVisit.PatientId,
                IdForeignVisit   = diffVisit.Id,
                TypeOfObject     = objectType,
                Value            = foreignValue,
                Difference       = string.Format(differenceStr, patientFio, nosology, CConvertEngine.DateTimeToString(diffVisit.VisitDate, true), parameterName, foreignValue)
            };
        }
Exemplo n.º 5
0
        private void CreateMergeInfos(
            ObjectType objectType,
            string patientFio,
            string nosology,
            string parameterName,
            string ownValue,
            string foreignValue,
            CHospitalization diffHospitalization,
            out CMergeInfo ownPatientMergeInfo,
            out CMergeInfo foreignPatientMergeInfo)
        {
            const string differenceStr = "Пациент: '{0}'. Нозология: '{1}'. Дата госпитализации: '{2}'.\r\nНазвание параметра: '{3}'. Значение: '{4}'";

            ownPatientMergeInfo = new CMergeInfo
            {
                IdOwnPatient         = PatientId,
                IdOwnHospitalization = Id,
                TypeOfObject         = objectType,
                Value      = ownValue,
                Difference = string.Format(differenceStr, patientFio, nosology, CConvertEngine.DateTimeToString(DeliveryDate, true), parameterName, ownValue)
            };

            foreignPatientMergeInfo = new CMergeInfo
            {
                IdForeignPatient         = diffHospitalization.PatientId,
                IdForeignHospitalization = diffHospitalization.Id,
                TypeOfObject             = objectType,
                Value      = foreignValue,
                Difference = string.Format(differenceStr, patientFio, nosology, CConvertEngine.DateTimeToString(diffHospitalization.DeliveryDate, true), parameterName, foreignValue)
            };
        }
        /// <summary>
        /// Сохранить список карт обследования
        /// </summary>
        /// <param name="saveBrachialPlexusCardInfo">Информация о карте, которую сохраняем</param>
        private void Save(CBrachialPlexusCard saveBrachialPlexusCardInfo)
        {
            var brachialPlexusCardsStr = new StringBuilder();

            foreach (CBrachialPlexusCard brachialPlexusCardInfo in _brachialPlexusCardList)
            {
                brachialPlexusCardsStr.Append(
                    "HospitalizationId=" + brachialPlexusCardInfo.HospitalizationId + DataSplitStr +
                    "VisitId=" + brachialPlexusCardInfo.VisitId + DataSplitStr +
                    "Diaphragm=" + brachialPlexusCardInfo.Diaphragm + DataSplitStr +
                    "EMNG=" + brachialPlexusCardInfo.EMNG + DataSplitStr +
                    "EMNGDate=" + CConvertEngine.DateTimeToString(brachialPlexusCardInfo.EMNGDate) + DataSplitStr +
                    "HornersSyndrome=" + brachialPlexusCardInfo.HornersSyndrome + DataSplitStr +
                    "IsEMNGEnabled=" + brachialPlexusCardInfo.IsEMNGEnabled + DataSplitStr +
                    "IsMyelographyEnabled=" + brachialPlexusCardInfo.IsMyelographyEnabled + DataSplitStr +
                    "Myelography=" + brachialPlexusCardInfo.Myelography + DataSplitStr +
                    "MyelographyDate=" + CConvertEngine.DateTimeToString(brachialPlexusCardInfo.MyelographyDate) + DataSplitStr +
                    "MyelographyType=" + brachialPlexusCardInfo.MyelographyType + DataSplitStr +
                    "TinelsSymptom=" + brachialPlexusCardInfo.TinelsSymptom + DataSplitStr +
                    "VascularStatus=" + brachialPlexusCardInfo.VascularStatus + DataSplitStr +
                    "CardSide=" + brachialPlexusCardInfo.SideOfCard + ObjSplitStr);

                if (saveBrachialPlexusCardInfo != null && saveBrachialPlexusCardInfo.IsEqual(brachialPlexusCardInfo))
                {
                    CDatabaseEngine.SaveBitmapToFile(
                        brachialPlexusCardInfo.Picture,
                        GetPicturePath(brachialPlexusCardInfo.GetPictureFileName()));
                }
            }

            CDatabaseEngine.PackText(brachialPlexusCardsStr.ToString(), _brachialPlexusCardPath);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Сгенерировать папку с фотографиями
        /// </summary>
        /// <param name="sender">Объект, пославший сообщение</param>
        /// <param name="e">Объект, содержащий данные посланного сообщения</param>
        private void buttonGenerateFolder_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(_patientInfo.PrivateFolder) ||
                !Directory.Exists(CConvertEngine.GetFullPrivateFolderPath(_patientInfo.PrivateFolder)))
            {
                MessageBox.ShowDialog("Личная папка не указана или её не существует");
                return;
            }

            string fotoFolderName = CConvertEngine.DateTimeToString(dateTimePickerDeliveryDate.Value, true).Replace(":", "_").Replace(".", "_");
            string fotoPath       = Path.Combine(_realPrivateFolder, fotoFolderName);

            if (Directory.Exists(fotoPath))
            {
                MessageBox.ShowDialog("Папка для этой госпитализации уже создана", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Directory.CreateDirectory(fotoPath);
                MessageBox.ShowDialog("Папка для этой госпитализации создана успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            textBoxFotoFolderName.Text = fotoFolderName;
            textBoxFotoFolderName.Focus();
        }
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным
        /// этапным эпикризом
        /// </summary>
        /// <param name="diffLineOfCommunicationEpicrisis">Импортируемый этапный эпикриз</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CLineOfCommunicationEpicrisis diffLineOfCommunicationEpicrisis,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (AdditionalInfo != diffLineOfCommunicationEpicrisis.AdditionalInfo)
            {
                CreateMergeInfos(
                    ObjectType.LineOfCommunicationEpicrisisAdditionalInfo,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дополнительная информация",
                    AdditionalInfo,
                    diffLineOfCommunicationEpicrisis.AdditionalInfo,
                    diffLineOfCommunicationEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Plan != diffLineOfCommunicationEpicrisis.Plan)
            {
                CreateMergeInfos(
                    ObjectType.LineOfCommunicationEpicrisisPlan,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Планирующиеся действия",
                    Plan,
                    diffLineOfCommunicationEpicrisis.Plan,
                    diffLineOfCommunicationEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(WritingDate, diffLineOfCommunicationEpicrisis.WritingDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.LineOfCommunicationEpicrisisWritingDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дата написания документа",
                    CConvertEngine.DateTimeToString(WritingDate),
                    CConvertEngine.DateTimeToString(diffLineOfCommunicationEpicrisis.WritingDate),
                    diffLineOfCommunicationEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Exemplo n.º 9
0
 /// <summary>
 /// Получить строку с паспортными данными
 /// </summary>
 /// <returns></returns>
 public string GetPassInformation()
 {
     return(string.Format(
                "сер. {0} № {1} Дата выдачи: {2} Код подразделения: {3} Кем выдан: {4}",
                Series,
                Number,
                DeliveryDate.HasValue ? CConvertEngine.DateTimeToString(DeliveryDate.Value) : string.Empty,
                SubdivisionCode,
                Organization));
 }
Exemplo n.º 10
0
 public override string ToString()
 {
     return(string.Format(
                "{1}{0}{2}{0}{3}{0}{4}{0}{5}",
                CBaseWorker.ListSplitStr,
                Series,
                Number,
                CConvertEngine.DateTimeToString(DeliveryDate),
                SubdivisionCode,
                Organization));
 }
Exemplo n.º 11
0
        private void CheckTransferableEpicrisis()
        {
            List <CTransferableEpicrisis> wrongTransferableEpicrisiss = _workersKeeper.TransferableEpicrisisWorker.GetWrongTransferableEpicrisis(_workersKeeper.HospitalizationWorker);

            foreach (CTransferableEpicrisis transferableEpicrisis in wrongTransferableEpicrisiss)
            {
                string info = string.Format(
                    "Переводной эпикриз: id госп-и={0}, Дата написания={1}, План={2}",
                    transferableEpicrisis.HospitalizationId,
                    CConvertEngine.DateTimeToString(transferableEpicrisis.WritingDate),
                    transferableEpicrisis.Plan);
                WrongItemsList.Items.Add(info);
            }
        }
Exemplo n.º 12
0
        private void CheckLineOfCommunicationEpicrisis()
        {
            List <CLineOfCommunicationEpicrisis> wrongLineOfCommunicationEpicrisiss = _workersKeeper.LineOfCommunicationEpicrisisWorker.GetWrongLineOfCommunicationEpicrisis(_workersKeeper.HospitalizationWorker);

            foreach (CLineOfCommunicationEpicrisis lineOfCommunicationEpicrisis in wrongLineOfCommunicationEpicrisiss)
            {
                string info = string.Format(
                    "Этапный эпикриз: id госп-и={0}, Дата написания={1}, План={2}",
                    lineOfCommunicationEpicrisis.HospitalizationId,
                    CConvertEngine.DateTimeToString(lineOfCommunicationEpicrisis.WritingDate),
                    lineOfCommunicationEpicrisis.Plan);
                WrongItemsList.Items.Add(info);
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Сохранить список анамнезов
        /// </summary>
        private void Save()
        {
            var anamnesesStr = new StringBuilder();

            foreach (CAnamnese anamneseInfo in _anamneseList)
            {
                anamnesesStr.Append(
                    "PatientId=" + anamneseInfo.PatientId + DataSplitStr +
                    "AnMorbi=" + anamneseInfo.AnMorbi + DataSplitStr +
                    "TraumaDate=" + CConvertEngine.DateTimeToString(anamneseInfo.TraumaDate) + ObjSplitStr);
            }

            CDatabaseEngine.PackText(anamnesesStr.ToString(), _anamnesePath);
        }
Exemplo n.º 14
0
        private void CheckAnamneses()
        {
            List <CAnamnese> wrongAnamneses = _workersKeeper.AnamneseWorker.GetWrongAnamneses(_workersKeeper.PatientWorker);

            foreach (CAnamnese anamnese in wrongAnamneses)
            {
                string info = string.Format(
                    "Анамнез: id пациента={0}, Дата травмы={1}, AnMorbi={2}",
                    anamnese.PatientId,
                    CConvertEngine.DateTimeToString(anamnese.TraumaDate),
                    anamnese.AnMorbi);
                WrongItemsList.Items.Add(info);
            }
        }
        /// <summary>
        /// Сохранить список этапных эпикризов
        /// </summary>
        private void Save()
        {
            var lineOfCommunicationEpicrisissStr = new StringBuilder();

            foreach (CLineOfCommunicationEpicrisis lineOfCommunicationEpicrisisInfo in _lineOfCommunicationEpicrisisList)
            {
                lineOfCommunicationEpicrisissStr.Append(
                    "HospitalizationId=" + lineOfCommunicationEpicrisisInfo.HospitalizationId + DataSplitStr +
                    "AdditionalInfo=" + lineOfCommunicationEpicrisisInfo.AdditionalInfo + DataSplitStr +
                    "Plan=" + lineOfCommunicationEpicrisisInfo.Plan + DataSplitStr +
                    "WritingDate=" + CConvertEngine.DateTimeToString(lineOfCommunicationEpicrisisInfo.WritingDate) + ObjSplitStr);
            }

            CDatabaseEngine.PackText(lineOfCommunicationEpicrisissStr.ToString(), _lineOfCommunicationEpicrisisPath);
        }
Exemplo n.º 16
0
        private void CheckOperationProtocols()
        {
            List <COperationProtocol> wrongOperationProtocols = _workersKeeper.OperationProtocolWorker.GetWrongOperationProtocols(_workersKeeper.OperationWorker);

            foreach (COperationProtocol operationProtocol in wrongOperationProtocols)
            {
                string info = string.Format(
                    "Протокол операции: id операции={0}, Время написания={1}, Жалобы={2},  Ход операции={3}",
                    operationProtocol.OperationId,
                    CConvertEngine.DateTimeToString(operationProtocol.TimeWriting),
                    operationProtocol.Complaints,
                    operationProtocol.OperationCourse);
                WrongItemsList.Items.Add(info);
            }
        }
Exemplo n.º 17
0
        private void CheckVisits()
        {
            List <CVisit> wrongVisits = _workersKeeper.VisitWorker.GetWrongVisits(_workersKeeper.PatientWorker);

            foreach (CVisit visit in wrongVisits)
            {
                string info = string.Format(
                    "Консультация: id={0}, id пациента={1}, Дата консультации={2}, Лечащий врач={3}, Диагноз={4}",
                    visit.Id,
                    visit.PatientId,
                    CConvertEngine.DateTimeToString(visit.VisitDate),
                    visit.Doctor,
                    visit.DiagnoseOneLine);
                WrongItemsList.Items.Add(info);
            }
        }
Exemplo n.º 18
0
        private void CheckOperations()
        {
            List <COperation> wrongOperations = _workersKeeper.OperationWorker.GetWrongOperations(_workersKeeper.PatientWorker, _workersKeeper.HospitalizationWorker);

            foreach (COperation operation in wrongOperations)
            {
                string info = string.Format(
                    "Операция: id={0}, id пациента={1}, id госп-и={2},  Дата операции={3}, Хирург(и)={4}, Название={5}",
                    operation.Id,
                    operation.PatientId,
                    operation.HospitalizationId,
                    CConvertEngine.DateTimeToString(operation.DateOfOperation),
                    CConvertEngine.ListToString(operation.Surgeons, ", "),
                    operation.Name);
                WrongItemsList.Items.Add(info);
            }
        }
Exemplo n.º 19
0
        private void CheckHospitalizations()
        {
            List <CHospitalization> wrongHospitalizations = _workersKeeper.HospitalizationWorker.GetWrongHospitalizations(_workersKeeper.PatientWorker);

            foreach (CHospitalization hospitalization in wrongHospitalizations)
            {
                string info = string.Format(
                    "Госпитализация: id={0}, id пациента={1}, Номер ИБ={2}, Лечащий врач={3}, Дата поступления={4}, Диагноз={5}",
                    hospitalization.Id,
                    hospitalization.PatientId,
                    hospitalization.NumberOfCaseHistory,
                    hospitalization.DoctorInChargeOfTheCase,
                    CConvertEngine.DateTimeToString(hospitalization.DeliveryDate),
                    hospitalization.DiagnoseOneLine);
                WrongItemsList.Items.Add(info);
            }
        }
        /// <summary>
        /// Сохранить список переводных эпикризов
        /// </summary>
        private void Save()
        {
            var transferableEpicrisissStr = new StringBuilder();

            foreach (CTransferableEpicrisis transferableEpicrisisInfo in _transferableEpicrisisList)
            {
                transferableEpicrisissStr.Append(
                    "HospitalizationId=" + transferableEpicrisisInfo.HospitalizationId + DataSplitStr +
                    "AfterOperationPeriod=" + transferableEpicrisisInfo.AfterOperationPeriod + DataSplitStr +
                    "Plan=" + transferableEpicrisisInfo.Plan + DataSplitStr +
                    "WritingDate=" + CConvertEngine.DateTimeToString(transferableEpicrisisInfo.WritingDate) + DataSplitStr +
                    "AdditionalInfo=" + transferableEpicrisisInfo.AdditionalInfo + DataSplitStr +
                    "DisabilityList=" + transferableEpicrisisInfo.DisabilityList + DataSplitStr +
                    "IsIncludeDisabilityList=" + transferableEpicrisisInfo.IsIncludeDisabilityList + ObjSplitStr);
            }

            CDatabaseEngine.PackText(transferableEpicrisissStr.ToString(), _transferableEpicrisisPath);
        }
Exemplo n.º 21
0
        /// <summary>
        /// Сохранить список госпитализаций
        /// </summary>
        private void Save()
        {
            _hospitalizationList.Sort(CHospitalization.Compare);

            var hospitalizationsStr = new StringBuilder();

            foreach (CHospitalization hospitalizationInfo in _hospitalizationList)
            {
                hospitalizationsStr.Append(
                    "Id=" + hospitalizationInfo.Id + DataSplitStr +
                    "PatientId=" + hospitalizationInfo.PatientId + DataSplitStr +
                    "DeliveryDate=" + CConvertEngine.DateTimeToString(hospitalizationInfo.DeliveryDate, true) + DataSplitStr +
                    "ReleaseDate=" + CConvertEngine.DateTimeToString(hospitalizationInfo.ReleaseDate) + DataSplitStr +
                    "NumberOfCaseHistory=" + hospitalizationInfo.NumberOfCaseHistory + DataSplitStr +
                    "Diagnose=" + hospitalizationInfo.Diagnose + DataSplitStr +
                    "FotoFolderName=" + hospitalizationInfo.FotoFolderName + DataSplitStr +
                    "DoctorInChargeOfTheCase=" + hospitalizationInfo.DoctorInChargeOfTheCase + ObjSplitStr);
            }

            CDatabaseEngine.PackText(hospitalizationsStr.ToString(), _hospitalizationPath);
        }
Exemplo n.º 22
0
        /// <summary>
        /// Сохранить список осмотров в отделении
        /// </summary>
        private void Save()
        {
            var medicalInspectionsStr = new StringBuilder();

            foreach (CMedicalInspection medicalInspectionInfo in _medicalInspectionList)
            {
                medicalInspectionsStr.Append(
                    "HospitalizationId=" + medicalInspectionInfo.HospitalizationId + DataSplitStr +
                    "AnamneseAnMorbi=" + medicalInspectionInfo.AnamneseAnMorbi + DataSplitStr +
                    "StLocalisDescription=" + medicalInspectionInfo.StLocalisDescription + DataSplitStr +
                    "StLocalisRentgen=" + medicalInspectionInfo.StLocalisRentgen + DataSplitStr +
                    "AnamneseAnVitae=" + CConvertEngine.ListToString(medicalInspectionInfo.AnamneseAnVitae) + DataSplitStr +
                    "AnamneseCheckboxes=" + CConvertEngine.ListToString(medicalInspectionInfo.AnamneseCheckboxes) + DataSplitStr +
                    "AnamneseTextBoxes=" + CConvertEngine.ListToString(medicalInspectionInfo.AnamneseTextBoxes) + DataSplitStr +
                    "Complaints=" + medicalInspectionInfo.Complaints + DataSplitStr +
                    "ExpertAnamnese=" + medicalInspectionInfo.ExpertAnamnese + DataSplitStr +
                    "InspectionPlan=" + medicalInspectionInfo.InspectionPlan + DataSplitStr +
                    "IsAnamneseActive=" + medicalInspectionInfo.IsAnamneseActive + DataSplitStr +
                    "IsPlanEnabled=" + medicalInspectionInfo.IsPlanEnabled + DataSplitStr +
                    "IsStLocalisPart1Enabled=" + medicalInspectionInfo.IsStLocalisPart1Enabled + DataSplitStr +
                    "IsStLocalisPart2Enabled=" + medicalInspectionInfo.IsStLocalisPart2Enabled + DataSplitStr +
                    "LnFirstDateStart=" + CConvertEngine.DateTimeToString(medicalInspectionInfo.LnFirstDateStart) + DataSplitStr +
                    "LnWithNumberDateEnd=" + CConvertEngine.DateTimeToString(medicalInspectionInfo.LnWithNumberDateEnd) + DataSplitStr +
                    "LnWithNumberDateStart=" + CConvertEngine.DateTimeToString(medicalInspectionInfo.LnWithNumberDateStart) + DataSplitStr +
                    "StLocalisPart1Fields=" + CConvertEngine.ListToString(medicalInspectionInfo.StLocalisPart1Fields) + DataSplitStr +
                    "StLocalisPart1OppositionFinger=" + medicalInspectionInfo.StLocalisPart1OppositionFinger + DataSplitStr +
                    "StLocalisPart2ComboBoxes=" + CConvertEngine.ListToString(medicalInspectionInfo.StLocalisPart2ComboBoxes) + DataSplitStr +
                    "StLocalisPart2LeftHand=" + CConvertEngine.ListToString(medicalInspectionInfo.StLocalisPart2LeftHand) + DataSplitStr +
                    "StLocalisPart2NumericUpDown=" + medicalInspectionInfo.StLocalisPart2NumericUpDown + DataSplitStr +
                    "StLocalisPart2RightHand=" + CConvertEngine.ListToString(medicalInspectionInfo.StLocalisPart2RightHand) + DataSplitStr +
                    "StLocalisPart2TextBoxes=" + CConvertEngine.ListToString(medicalInspectionInfo.StLocalisPart2TextBoxes) + DataSplitStr +
                    "StLocalisPart2WhichHand=" + medicalInspectionInfo.StLocalisPart2WhichHand + DataSplitStr +
                    "StPraesensComboBoxes=" + CConvertEngine.ListToString(medicalInspectionInfo.StPraesensComboBoxes) + DataSplitStr +
                    "StPraesensNumericUpDowns=" + CConvertEngine.ListToString(medicalInspectionInfo.StPraesensNumericUpDowns) + DataSplitStr +
                    "StPraesensTextBoxes=" + CConvertEngine.ListToString(medicalInspectionInfo.StPraesensTextBoxes) + DataSplitStr +
                    "TeoRisk=" + medicalInspectionInfo.TeoRisk + ObjSplitStr);
            }

            CDatabaseEngine.PackText(medicalInspectionsStr.ToString(), _medicalInspectionPath);
        }
Exemplo n.º 23
0
        /// <summary>
        /// Сохранить список консультаций
        /// </summary>
        private void Save()
        {
            _visitList.Sort(CVisit.Compare);

            var visitsStr = new StringBuilder();

            foreach (CVisit visitInfo in _visitList)
            {
                visitsStr.Append(
                    "Id=" + visitInfo.Id + DataSplitStr +
                    "PatientId=" + visitInfo.PatientId + DataSplitStr +
                    "VisitDate=" + CConvertEngine.DateTimeToString(visitInfo.VisitDate, true) + DataSplitStr +
                    "Evenly=" + visitInfo.Evenly + DataSplitStr +
                    "Recommendation=" + visitInfo.Recommendation + DataSplitStr +
                    "Comments=" + visitInfo.Comments + DataSplitStr +
                    "Doctor=" + visitInfo.Doctor + DataSplitStr +
                    "IsLastParagraphForCertificateNeeded=" + visitInfo.IsLastParagraphForCertificateNeeded + DataSplitStr +
                    "IsLastOdkbParagraphForCertificateNeeded=" + visitInfo.IsLastOdkbParagraphForCertificateNeeded + DataSplitStr +
                    "Diagnose=" + visitInfo.Diagnose + ObjSplitStr);
            }

            CDatabaseEngine.PackText(visitsStr.ToString(), _visitPath);
        }
Exemplo n.º 24
0
        /// <summary>
        /// Сохранить список пациентов
        /// </summary>
        private void Save()
        {
            _patientList.Sort(CPatient.Compare);

            var patientsStr = new StringBuilder();

            foreach (CPatient patientInfo in _patientList)
            {
                patientsStr.Append(
                    "Birthday=" + CConvertEngine.DateTimeToString(patientInfo.Birthday) + DataSplitStr +
                    "BuildingNumber=" + patientInfo.BuildingNumber + DataSplitStr +
                    "CityName=" + patientInfo.CityName + DataSplitStr +
                    "FlatNumber=" + patientInfo.FlatNumber + DataSplitStr +
                    "HomeNumber=" + patientInfo.HomeNumber + DataSplitStr +
                    "Id=" + patientInfo.Id + DataSplitStr +
                    "LastName=" + patientInfo.LastName + DataSplitStr +
                    "Name=" + patientInfo.Name + DataSplitStr +
                    "NosologyList=" + CConvertEngine.ListToString(patientInfo.NosologyList) + DataSplitStr +
                    "Patronymic=" + patientInfo.Patronymic + DataSplitStr +
                    "Phone=" + patientInfo.Phone + DataSplitStr +
                    "PrivateFolder=" + patientInfo.PrivateFolder + DataSplitStr +
                    "Relatives=" + patientInfo.Relatives + DataSplitStr +
                    "IsSpecifyLegalRepresent=" + patientInfo.IsSpecifyLegalRepresent + DataSplitStr +
                    "LegalRepresent=" + patientInfo.LegalRepresent + DataSplitStr +
                    "WorkPlace=" + patientInfo.WorkPlace + DataSplitStr +
                    "EMail=" + patientInfo.EMail + DataSplitStr +
                    "InsuranceSeries=" + patientInfo.InsuranceSeries + DataSplitStr +
                    "InsuranceNumber=" + patientInfo.InsuranceNumber + DataSplitStr +
                    "InsuranceType=" + patientInfo.InsuranceType + DataSplitStr +
                    "InsuranceName=" + patientInfo.InsuranceName + DataSplitStr +
                    "PassInformation=" + patientInfo.PassInformation + DataSplitStr +
                    "StreetName=" + patientInfo.StreetName + ObjSplitStr);
            }

            CDatabaseEngine.PackText(patientsStr.ToString(), _patientPath);
        }
Exemplo n.º 25
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным
        /// протоколом операции
        /// </summary>
        /// <param name="diffOperationProtocol">Импортируемый протокол операции</param>
        /// <param name="patientFio">ФИО импортируемого пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата импортируемой госпитализации</param>
        /// <param name="operationName">Название импортируемой операции</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            COperationProtocol diffOperationProtocol,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            string operationName,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (TreatmentPlanInspection != diffOperationProtocol.TreatmentPlanInspection)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTreatmentPlanInspection,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Обследование пациента",
                    TreatmentPlanInspection,
                    diffOperationProtocol.TreatmentPlanInspection,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsTreatmentPlanActiveInOperationProtocol != diffOperationProtocol.IsTreatmentPlanActiveInOperationProtocol)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolIsTreatmentPlanActiveInOperationProtocol,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Активен ли план обследования в операционном протоколе",
                    IsTreatmentPlanActiveInOperationProtocol.ToString(),
                    diffOperationProtocol.IsTreatmentPlanActiveInOperationProtocol.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ADFirst != diffOperationProtocol.ADFirst)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolADFirst,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Первое значение AD",
                    ADFirst.ToString(),
                    diffOperationProtocol.ADFirst.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ADSecond != diffOperationProtocol.ADSecond)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolADSecond,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Второе значение AD",
                    ADSecond.ToString(),
                    diffOperationProtocol.ADSecond.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Breath != diffOperationProtocol.Breath)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolBreath,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Дыхание",
                    Breath,
                    diffOperationProtocol.Breath,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ChDD != diffOperationProtocol.ChDD)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolChDD,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "ЧДД",
                    ChDD.ToString(),
                    diffOperationProtocol.ChDD.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Complaints != diffOperationProtocol.Complaints)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolComplaints,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Жалобы",
                    Complaints,
                    diffOperationProtocol.Complaints,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (string.Compare(Complaints, diffOperationProtocol.Complaints) == 0)
            {
            }

            if (State != diffOperationProtocol.State)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolState,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Состояние",
                    State,
                    diffOperationProtocol.State,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HeartRhythm != diffOperationProtocol.HeartRhythm)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolHeartRhythm,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Ритм сердца",
                    HeartRhythm,
                    diffOperationProtocol.HeartRhythm,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HeartSounds != diffOperationProtocol.HeartSounds)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolHeartSounds,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Тоны сердца",
                    HeartSounds,
                    diffOperationProtocol.HeartSounds,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsDairyEnabled != diffOperationProtocol.IsDairyEnabled)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolIsDairyEnabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Активен ли дневник",
                    IsDairyEnabled.ToString(),
                    diffOperationProtocol.IsDairyEnabled.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Pulse != diffOperationProtocol.Pulse)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolPulse,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Пульс",
                    Pulse.ToString(),
                    diffOperationProtocol.Pulse.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalis != diffOperationProtocol.StLocalis)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolStLocalis,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "StLocalis",
                    StLocalis,
                    diffOperationProtocol.StLocalis,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Stomach != diffOperationProtocol.Stomach)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolStomach,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Живот",
                    Stomach,
                    diffOperationProtocol.Stomach,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Stool != diffOperationProtocol.Stool)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolStool,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Стул",
                    Stool,
                    diffOperationProtocol.Stool,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Temperature != diffOperationProtocol.Temperature)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTemperature,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Температура тела",
                    Temperature,
                    diffOperationProtocol.Temperature,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Urination != diffOperationProtocol.Urination)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolUrination,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Мочеиспускание",
                    Urination,
                    diffOperationProtocol.Urination,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Wheeze != diffOperationProtocol.Wheeze)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolWheeze,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Хрипы",
                    Wheeze,
                    diffOperationProtocol.Wheeze,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OperationCourse != diffOperationProtocol.OperationCourse)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolOperationCourse,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Ход операции",
                    OperationCourse,
                    diffOperationProtocol.OperationCourse,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(TreatmentPlanDate, diffOperationProtocol.TreatmentPlanDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTreatmentPlanDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Дата написание плана обследования",
                    CConvertEngine.DateTimeToString(TreatmentPlanDate),
                    CConvertEngine.DateTimeToString(diffOperationProtocol.TreatmentPlanDate),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareTime(TimeWriting, diffOperationProtocol.TimeWriting) != 0)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTimeWriting,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Время написания эпикриза",
                    CConvertEngine.TimeToString(TimeWriting),
                    CConvertEngine.TimeToString(diffOperationProtocol.TimeWriting),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Exemplo n.º 26
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным
        /// осмотром в отделении
        /// </summary>
        /// <param name="diffMedicalInspection">Импортируемый осмотр в отделении</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CMedicalInspection diffMedicalInspection,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (AnamneseAnMorbi != diffMedicalInspection.AnamneseAnMorbi)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseAnMorbi,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Анамнез, AnMorbi",
                    AnamneseAnMorbi,
                    diffMedicalInspection.AnamneseAnMorbi,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Complaints != diffMedicalInspection.Complaints)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionComplaints,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, жалобы",
                    Complaints,
                    diffMedicalInspection.Complaints,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ExpertAnamnese != diffMedicalInspection.ExpertAnamnese)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionExpertAnamnese,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, 1, 2 или 3 лист нетрудоспособности",
                    ExpertAnamnese.ToString(),
                    diffMedicalInspection.ExpertAnamnese.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisDescription != diffMedicalInspection.StLocalisDescription)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisDescription,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Описание StLocalis-а",
                    StLocalisDescription,
                    diffMedicalInspection.StLocalisDescription,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisRentgen != diffMedicalInspection.StLocalisRentgen)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisRentgen,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Тип рентгена",
                    StLocalisRentgen,
                    diffMedicalInspection.StLocalisRentgen,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (InspectionPlan != diffMedicalInspection.InspectionPlan)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionInspectionPlan,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, обследование",
                    InspectionPlan,
                    diffMedicalInspection.InspectionPlan,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsAnamneseActive != diffMedicalInspection.IsAnamneseActive)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsAnamneseActive,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли анамнез в общий отчёт",
                    IsAnamneseActive.ToString(),
                    diffMedicalInspection.IsAnamneseActive.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsPlanEnabled != diffMedicalInspection.IsPlanEnabled)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsPlanEnabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли план осмотра в отчёт",
                    IsPlanEnabled.ToString(),
                    diffMedicalInspection.IsPlanEnabled.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsStLocalisPart1Enabled != diffMedicalInspection.IsStLocalisPart1Enabled)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsStLocalisPart1Enabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли st.localis часть 1 в общий отчёт",
                    IsStLocalisPart1Enabled.ToString(),
                    diffMedicalInspection.IsStLocalisPart1Enabled.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsStLocalisPart2Enabled != diffMedicalInspection.IsStLocalisPart2Enabled)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsStLocalisPart2Enabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли st.localis часть 2 в общий отчёт",
                    IsStLocalisPart2Enabled.ToString(),
                    diffMedicalInspection.IsStLocalisPart2Enabled.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisPart1OppositionFinger != diffMedicalInspection.StLocalisPart1OppositionFinger)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart1OppositionFinger,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "st.localis часть 1, номер пальца в оппозиции",
                    StLocalisPart1OppositionFinger,
                    diffMedicalInspection.StLocalisPart1OppositionFinger,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisPart2NumericUpDown != diffMedicalInspection.StLocalisPart2NumericUpDown)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2NumericUpDown,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "st.localis часть 2, числовое поле",
                    StLocalisPart2NumericUpDown.ToString(),
                    diffMedicalInspection.StLocalisPart2NumericUpDown.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisPart2WhichHand != diffMedicalInspection.StLocalisPart2WhichHand)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2WhichHand,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "st.localis часть 2, выбор повреждённой руки",
                    StLocalisPart2WhichHand,
                    diffMedicalInspection.StLocalisPart2WhichHand,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (TeoRisk != diffMedicalInspection.TeoRisk)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionTeoRisk,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, риск ТЭО",
                    TeoRisk,
                    diffMedicalInspection.TeoRisk,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(LnFirstDateStart, diffMedicalInspection.LnFirstDateStart) != 0)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionLnFirstDateStart,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "общие данные, выдан первично с",
                    CConvertEngine.DateTimeToString(LnFirstDateStart),
                    CConvertEngine.DateTimeToString(diffMedicalInspection.LnFirstDateStart),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(LnWithNumberDateEnd, diffMedicalInspection.LnWithNumberDateEnd) != 0)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionLnWithNumberDateEnd,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "общие данные, выдан амбулаторно до",
                    CConvertEngine.DateTimeToString(LnWithNumberDateEnd),
                    CConvertEngine.DateTimeToString(diffMedicalInspection.LnWithNumberDateEnd),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(LnWithNumberDateStart, diffMedicalInspection.LnWithNumberDateStart) != 0)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionLnWithNumberDateStart,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "общие данные, выдан амбулаторно с",
                    CConvertEngine.DateTimeToString(LnWithNumberDateStart),
                    CConvertEngine.DateTimeToString(diffMedicalInspection.LnWithNumberDateStart),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(AnamneseAnVitae, diffMedicalInspection.AnamneseAnVitae, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseAnVitae,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "осмотр в отделении, анамнез, AnVitae",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AnamneseAnVitae;
                foreignPatientMergeInfo.Object = diffMedicalInspection.AnamneseAnVitae;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StPraesensTextBoxes, diffMedicalInspection.StPraesensTextBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStPraesensTextBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StPraesens, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StPraesensTextBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StPraesensTextBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(AnamneseCheckboxes, diffMedicalInspection.AnamneseCheckboxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseCheckboxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "анамнез, checkbox-ы",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AnamneseCheckboxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.AnamneseCheckboxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(AnamneseTextBoxes, diffMedicalInspection.AnamneseTextBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseTextBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "анамнез, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AnamneseTextBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.AnamneseTextBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart1Fields, diffMedicalInspection.StLocalisPart1Fields, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart1Fields,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 1, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart1Fields;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart1Fields;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2ComboBoxes, diffMedicalInspection.StLocalisPart2ComboBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2ComboBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, comboBox-ы",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2ComboBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2ComboBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2LeftHand, diffMedicalInspection.StLocalisPart2LeftHand, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2LeftHand,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, comboBox-ы для левой руки",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2LeftHand;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2LeftHand;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2RightHand, diffMedicalInspection.StLocalisPart2RightHand, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2RightHand,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, comboBox-ы для правой руки",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2RightHand;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2RightHand;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2TextBoxes, diffMedicalInspection.StLocalisPart2TextBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2TextBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2TextBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2TextBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StPraesensComboBoxes, diffMedicalInspection.StPraesensComboBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStPraesensComboBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StPraesens, comboBox-ы",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StPraesensComboBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StPraesensComboBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StPraesensNumericUpDowns, diffMedicalInspection.StPraesensNumericUpDowns, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStPraesensNumericUpDowns,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StPraesens, числовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StPraesensNumericUpDowns;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StPraesensNumericUpDowns;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Exemplo n.º 27
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и
        /// переданным переводным эпикризом
        /// </summary>
        /// <param name="diffTransferableEpicrisis">Импортируемый переводной эпикриз</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CTransferableEpicrisis diffTransferableEpicrisis,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (AfterOperationPeriod != diffTransferableEpicrisis.AfterOperationPeriod)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisAfterOperationPeriod,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Послеоперационный период",
                    AfterOperationPeriod,
                    diffTransferableEpicrisis.AfterOperationPeriod,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Plan != diffTransferableEpicrisis.Plan)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisPlan,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Планирующиеся действия",
                    Plan,
                    diffTransferableEpicrisis.Plan,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(WritingDate, diffTransferableEpicrisis.WritingDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisWritingDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дата написания документа",
                    CConvertEngine.DateTimeToString(WritingDate),
                    CConvertEngine.DateTimeToString(diffTransferableEpicrisis.WritingDate),
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (AdditionalInfo != diffTransferableEpicrisis.AdditionalInfo)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisAdditionalInfo,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дополнительная информация",
                    AdditionalInfo,
                    diffTransferableEpicrisis.AdditionalInfo,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (DisabilityList != diffTransferableEpicrisis.DisabilityList)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisDisabilityList,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Личный номер",
                    DisabilityList,
                    diffTransferableEpicrisis.DisabilityList,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsIncludeDisabilityList != diffTransferableEpicrisis.IsIncludeDisabilityList)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisIsIncludeDisabilityList,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включать ли личный номер в отчёт",
                    IsIncludeDisabilityList.ToString(),
                    diffTransferableEpicrisis.IsIncludeDisabilityList.ToString(),
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Exemplo n.º 28
0
        public CPatientView(CPatient patientInfo, CWorkersKeeper workersKeeper)
        {
            Id                 = patientInfo.Id.ToString(CultureInfo.InvariantCulture);
            Nosology           = patientInfo.Nosology;
            FullName           = patientInfo.GetFullName();
            HospitalizationCnt = workersKeeper.HospitalizationWorker.GetCountByPatientId(patientInfo.Id).ToString(CultureInfo.InvariantCulture);
            VisitCnt           = workersKeeper.VisitWorker.GetCountByPatientId(patientInfo.Id).ToString(CultureInfo.InvariantCulture);
            COperation[] operations = workersKeeper.OperationWorker.GetListByPatientId(patientInfo.Id);
            OperationCnt = operations.Length.ToString(CultureInfo.InvariantCulture);
            Age          = CConvertEngine.GetAge(patientInfo.Birthday);

            var operationTypeSB = new StringBuilder();

            foreach (COperation operation in operations)
            {
                foreach (string operationType in operation.OperationTypes)
                {
                    if (!operationTypeSB.ToString().Contains(operationType))
                    {
                        operationTypeSB.Append(operationType + ", ");
                    }
                }
            }

            OperationTypes = operationTypeSB.Length > 0
                ? operationTypeSB.ToString().Substring(0, operationTypeSB.Length - 2)
                : operationTypeSB.ToString();

            int    hospitalizationCnt = Convert.ToInt32(HospitalizationCnt);
            int    visitCnt           = Convert.ToInt32(VisitCnt);
            CVisit lastVisit          = null;

            if (visitCnt > 0)
            {
                lastVisit = workersKeeper.VisitWorker.GetListByPatientId(patientInfo.Id)[visitCnt - 1];
            }

            CHospitalization lastHospitalization = null;

            if (hospitalizationCnt > 0)
            {
                lastHospitalization = workersKeeper.HospitalizationWorker.GetListByPatientId(patientInfo.Id)[hospitalizationCnt - 1];
            }

            if (lastHospitalization != null)
            {
                DeliveryDateString = CConvertEngine.DateTimeToString(lastHospitalization.DeliveryDate, true);

                ReleaseDateString = CConvertEngine.DateTimeToString(lastHospitalization.ReleaseDate, false);

                KD = lastHospitalization.KD;

                if (lastVisit == null)
                {
                    Diagnose = lastHospitalization.DiagnoseOneLine;
                }
            }

            if (lastVisit != null)
            {
                VisitDateString = CConvertEngine.DateTimeToString(lastVisit.VisitDate, true);
            }

            if (lastHospitalization == null && lastVisit != null)
            {
                Diagnose = lastVisit.DiagnoseOneLine;
            }
            else if (lastHospitalization != null && lastVisit != null)
            {
                int dateCompareResult = CCompareEngine.CompareDateTime(lastHospitalization.DeliveryDate, lastVisit.VisitDate);
                Diagnose = dateCompareResult >= 0
                    ? lastHospitalization.DiagnoseOneLine
                    : lastVisit.DiagnoseOneLine;
            }
        }
Exemplo n.º 29
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и
        /// переданным анамнезом
        /// </summary>
        /// <param name="diffAnamnese">Импортируемый анамнез</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(CAnamnese diffAnamnese, string patientFio, string nosology, CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (AnMorbi != diffAnamnese.AnMorbi)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseAnMorbi,
                    patientFio,
                    nosology,
                    "Описание анамнеза",
                    AnMorbi,
                    diffAnamnese.AnMorbi,
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (TraumaDate.HasValue && !diffAnamnese.TraumaDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseTraumaDate,
                    patientFio,
                    nosology,
                    "Дата травмы",
                    CConvertEngine.DateTimeToString(TraumaDate.Value, false),
                    "Нет значения",
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (!TraumaDate.HasValue && diffAnamnese.TraumaDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseTraumaDate,
                    patientFio,
                    nosology,
                    "Дата травмы",
                    "Нет значения",
                    CConvertEngine.DateTimeToString(diffAnamnese.TraumaDate.Value, false),
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (TraumaDate.HasValue && diffAnamnese.TraumaDate.HasValue &&
                     CCompareEngine.CompareDate(TraumaDate.Value, diffAnamnese.TraumaDate.Value) != 0)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseTraumaDate,
                    patientFio,
                    nosology,
                    "Дата травмы",
                    CConvertEngine.DateTimeToString(TraumaDate.Value, false),
                    CConvertEngine.DateTimeToString(diffAnamnese.TraumaDate.Value, false),
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Exemplo n.º 30
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным
        /// выписным эпикризом
        /// </summary>
        /// <param name="diffDischargeEpicrisis">Импортируемый выписной эпикриз</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CDischargeEpicrisis diffDischargeEpicrisis,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;


            if (AnalysisDate.HasValue && diffDischargeEpicrisis.AnalysisDate.HasValue &&
                CCompareEngine.CompareDate(AnalysisDate.Value, diffDischargeEpicrisis.AnalysisDate.Value) != 0)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAfterOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дата взятия анализов",
                    CConvertEngine.DateTimeToString(AnalysisDate.Value),
                    CConvertEngine.DateTimeToString(diffDischargeEpicrisis.AnalysisDate.Value),
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (AfterOperation != diffDischargeEpicrisis.AfterOperation)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAfterOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "После операции",
                    AfterOperation,
                    diffDischargeEpicrisis.AfterOperation,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ConservativeTherapy != diffDischargeEpicrisis.ConservativeTherapy)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisConservativeTherapy,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Консервативное лечение",
                    ConservativeTherapy,
                    diffDischargeEpicrisis.ConservativeTherapy,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Ekg != diffDischargeEpicrisis.Ekg)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisEkg,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "ЭКГ",
                    Ekg,
                    diffDischargeEpicrisis.Ekg,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakEritrocits != diffDischargeEpicrisis.OakEritrocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakEritrocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, эритроциты",
                    OakEritrocits,
                    diffDischargeEpicrisis.OakEritrocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakHb != diffDischargeEpicrisis.OakHb)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakHb,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, Hb",
                    OakHb,
                    diffDischargeEpicrisis.OakHb,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakLekocits != diffDischargeEpicrisis.OakLekocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakLekocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, лейкоциты",
                    OakLekocits,
                    diffDischargeEpicrisis.OakLekocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakSoe != diffDischargeEpicrisis.OakSoe)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakSoe,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, СОЭ",
                    OakSoe,
                    diffDischargeEpicrisis.OakSoe,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamColor != diffDischargeEpicrisis.OamColor)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamColor,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, цвет",
                    OamColor,
                    diffDischargeEpicrisis.OamColor,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamDensity != diffDischargeEpicrisis.OamDensity)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamDensity,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, относительная плотность",
                    OamDensity,
                    diffDischargeEpicrisis.OamDensity,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamEritrocits != diffDischargeEpicrisis.OamEritrocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamEritrocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, эритроциты",
                    OamEritrocits,
                    diffDischargeEpicrisis.OamEritrocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamLekocits != diffDischargeEpicrisis.OamLekocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamLekocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, лейкоциты",
                    OamLekocits,
                    diffDischargeEpicrisis.OamLekocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (AdditionalAnalises != diffDischargeEpicrisis.AdditionalAnalises)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAdditionalAnalises,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Другие анализы",
                    AdditionalAnalises,
                    diffDischargeEpicrisis.AdditionalAnalises,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(Recomendations.ToArray(), diffDischargeEpicrisis.Recomendations.ToArray(), out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisRecomendations,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Рекомендации при выписке",
                    ownValue,
                    foreignValue,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = Recomendations;
                foreignPatientMergeInfo.Object = diffDischargeEpicrisis.Recomendations;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(AdditionalRecomendations.ToArray(), diffDischargeEpicrisis.AdditionalRecomendations.ToArray(), out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAdditionalRecomendations,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дополнительные рекомендации при выписке",
                    ownValue,
                    foreignValue,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AdditionalRecomendations;
                foreignPatientMergeInfo.Object = diffDischargeEpicrisis.AdditionalRecomendations;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }