Пример #1
0
        public List <Entities.Patient> SearchPatients(Entities.Patient patient)
        {
            List <Entities.Patient> patients = new List <Entities.Patient>();

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.SearchPatients))
                {
                    //database.AddInParameter(dbCommand, "@where_clause", DbType.String, searchCriteria);
                    database.AddInParameter(dbCommand, "@first_name", DbType.String, patient.FirstName);
                    database.AddInParameter(dbCommand, "@last_name", DbType.String, patient.LastName);
                    database.AddInParameter(dbCommand, "@employer_name", DbType.String, patient.EmployerName);
                    database.AddInParameter(dbCommand, "@patient_code", DbType.Int32, patient.PatientCode);

                    using (IDataReader reader = database.ExecuteReader(dbCommand))
                    {
                        patients = GetPatients(reader);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(patients);
        }
Пример #2
0
        public Entities.Patient FindById(Guid id)
        {
            GridReader gridReader = QueryMultiple("[EPONS].[FindPatientById]", new
            {
                patientId = id
            });

            Entities.Patient patient = gridReader.Read <Entities.Patient>().FirstOrDefault();

            IEnumerable <ValueObjects.SupportService> supportServices = gridReader.Read <ValueObjects.SupportService>();

            IList <EntityViews.MeasurementTool> measurementTools = Query <EntityViews.MeasurementTool>("[EPONS].[FindMeasurementToolsByPatientId]", new
            {
                patientId = id
            });

            patient.SupportServices         = supportServices.ToList();
            patient.Titles                  = Query <ValueObjects.ListItem>("[EPONS].[ListTitles]", null);
            patient.Genders                 = Query <ValueObjects.ListItem>("[EPONS].[ListGenders]", null);
            patient.Races                   = Query <ValueObjects.ListItem>("[EPONS].[ListRaces]", null);
            patient.Countries               = Query <ValueObjects.ListItem>("[EPONS].[ListCountries]", null);
            patient.MedicalSchemes          = Query <ValueObjects.ListItem>("[EPONS].[ListMedicalSchemes]", null);
            patient.ResidentialEnvironments = Query <ValueObjects.ListItem>("[EPONS].[ListResidentialEnvironments]", null);
            patient.SupportServicesList     = Query <ValueObjects.ListItem>("[EPONS].[ListSupportServices]", null);
            return(patient);
        }
Пример #3
0
        public async Task <Response> Handle(ListOnePatientRequest request, CancellationToken cancellationToken)
        {
            //Verifica se a requisição é válida
            if (request == null)
            {
                AddNotification("Request", "A requisição é inválida!");
                return(new Response(this));
            }

            //Verifica se o paciente informado existe no banco
            if (!_patientRepository.Exists(request.Id))
            {
                AddNotification("Paciente", "Paciente não encontrado");
                return(new Response(this));
            }

            if (IsInvalid())
            {
                return(new Response(this));
            }

            //Busca o paciente pelo ID
            Entities.Patient patient
                = _patientRepository.GetOne(request.Id);

            //Cria o objeto da resposta
            var response = new Response(this, patient);

            //Retorna o resultado da ação
            return(await Task.FromResult(response));
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="patient"></param>
        /// <returns></returns>
        private bool DeletePatient(Entities.Patient patient, DbTransaction dbTransaction)
        {
            bool isDeleted = false;

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.DeletePatient))
                {
                    database.AddInParameter(dbCommand, "@patient_id", DbType.Int32, patient.PatientId);
                    database.AddInParameter(dbCommand, "@deleted_by", DbType.Int32, patient.DeletedBy);
                    database.AddInParameter(dbCommand, "@deleted_by_ip", DbType.String, patient.DeletedByIP);

                    database.AddOutParameter(dbCommand, "@return_value", DbType.Int32, 0);

                    var result = database.ExecuteNonQuery(dbCommand, dbTransaction);

                    if (database.GetParameterValue(dbCommand, "@return_value") != DBNull.Value)
                    {
                        isDeleted = Convert.ToBoolean(database.GetParameterValue(dbCommand, "@return_value"));
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(isDeleted);
        }
Пример #5
0
 public void UpdatePatient(Entities.Patient patient)
 {
     Execute("[EPONS].[UpdatePatient]", new
     {
         patientId                = patient.Id,
         firstname                = patient.Firstname,
         lastname                 = patient.Lastname,
         dateOfBirth              = patient.DateOfBirth,
         genderId                 = patient.GenderId,
         raceId                   = patient.RaceId,
         identificationNumber     = patient.IdentificationNumber,
         medicalSchemeId          = patient.MedicalSchemeId,
         titleId                  = patient.TitleId,
         contactNumber            = patient.ContactNumber,
         street                   = patient.Street,
         postalCode               = patient.PostalCode,
         nameOfNextOfKin          = patient.NameOfNextOfKin,
         contactNumberOfNextOfKin = patient.ContactNumberOfNextOfKin,
         medicalSchemeNumber      = patient.MedicalSchemeNumber,
         cityId                   = patient.CityId,
         emailAddressOfNextOfKin  = patient.EmailAddressOfNextOfKin,
         relantionshipOfNextOfKin = patient.RelationshipOfNextOfKin,
         residentialEnvironmentId = patient.ResidentialEnvironmentId,
     });
     foreach (var i in patient.SupportServices)
     {
         Execute("[EPONS].[UpdatePatientSupportService]", new
         {
             patientId        = patient.Id,
             supportServiceId = i.Id,
             text             = i.Text
         });
     }
 }
Пример #6
0
        public bool updatePatinetBasicInfo(Entities.Patient patient)
        {
            int count = 0;

            using (Entities.Entities ctx = new Entities.Entities())
            {
                Patient patientEntity = ctx.Patients.Find(patient.PatientID);
                if (patientEntity == null)
                {
                    return(false);
                }

                patientEntity.Name      = patient.Name;
                patientEntity.Mobile    = patient.Mobile;
                patientEntity.Notice    = patient.Notice;
                patientEntity.Phone     = patient.Phone;
                patientEntity.Address   = patient.Address;
                patientEntity.BrithDate = patient.BrithDate;
                patientEntity.E_mail    = patient.E_mail;
                patientEntity.gender    = patient.gender;

                ctx.Entry(patientEntity).State = System.Data.Entity.EntityState.Modified;
                count = ctx.SaveChanges();
            }
            return(count > 0 ? true : false);
        }
Пример #7
0
        public async Task <AuthenticatePatientResponse> Handle(AuthenticatePatientRequest request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                AddNotification("Request", "A requisição não pode ser nula");
                return(null);
            }

            request.Password = request.Password.Encrypt();

            Entities.Patient patient = _patientRepository.Login(request.Email, request.Password);

            if (patient == null)
            {
                AddNotification("Autenticação", "Email ou senha inválidos!");
                return(new AuthenticatePatientResponse
                {
                    Authenticated = false
                });
            }

            var response = (AuthenticatePatientResponse)patient;

            return(await Task.FromResult(response));
        }
Пример #8
0
 private PatientModel MapPatientEntityToPatientModel(Entities.Patient patientEntity)
 {
     return(new PatientModel
     {
         Id = patientEntity.Id,
         Family = patientEntity.LastName,
         Given = patientEntity.FirstName,
         Dob = patientEntity.DateOfBirth,
         Address = patientEntity.Address,
         Phone = patientEntity.Phone,
         Sex = patientEntity.Sex
     });
 }
Пример #9
0
        public Entities.Patient FindBase()
        {
            Entities.Patient patient = new Entities.Patient();

            patient.Titles                  = Query <ValueObjects.ListItem>("[EPONS].[ListTitles]", null);
            patient.Genders                 = Query <ValueObjects.ListItem>("[EPONS].[ListGenders]", null);
            patient.Races                   = Query <ValueObjects.ListItem>("[EPONS].[ListRaces]", null);
            patient.Countries               = Query <ValueObjects.ListItem>("[EPONS].[ListCountries]", null);
            patient.MedicalSchemes          = Query <ValueObjects.ListItem>("[EPONS].[ListMedicalSchemes]", null);
            patient.ResidentialEnvironments = Query <ValueObjects.ListItem>("[EPONS].[ListResidentialEnvironments]", null);
            patient.SupportServicesList     = Query <ValueObjects.ListItem>("[EPONS].[ListSupportServices]", null);

            return(patient);
        }
Пример #10
0
        private Entities.Patient MapPatientModelToPatient(PatientModel patientModel, Entities.Patient patient = null)
        {
            if (patient == null)
            {
                patient = new Entities.Patient();
            }

            patient.Id          = patientModel.Id;
            patient.LastName    = patientModel.Family;
            patient.FirstName   = patientModel.Given;
            patient.Address     = patientModel.Address;
            patient.DateOfBirth = patientModel.Dob;
            patient.Phone       = patientModel.Phone;
            patient.Sex         = patientModel.Sex;

            return(patient);
        }
Пример #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="patient"></param>
        /// <returns></returns>
        private Int32 UpdatePatient(Entities.Patient patient, DbTransaction dbTransaction)
        {
            var patientId = 0;

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.UpdatePatient))
                {
                    database.AddInParameter(dbCommand, "@patient_id", DbType.Int32, patient.PatientId);
                    database.AddInParameter(dbCommand, "@title", DbType.String, patient.Title);
                    database.AddInParameter(dbCommand, "@first_name", DbType.String, patient.FirstName);
                    database.AddInParameter(dbCommand, "@middle_name", DbType.String, patient.MiddleName);
                    database.AddInParameter(dbCommand, "@last_name", DbType.String, patient.LastName);
                    database.AddInParameter(dbCommand, "@address", DbType.String, patient.Address);
                    database.AddInParameter(dbCommand, "@date_of_birth", DbType.String, patient.DateOfBirth);
                    database.AddInParameter(dbCommand, "@contact_no_1", DbType.String, patient.ContactNo1);
                    database.AddInParameter(dbCommand, "@contact_no_2", DbType.String, patient.ContactNo2);
                    database.AddInParameter(dbCommand, "@mobile_no_1", DbType.String, patient.MobileNo1);
                    database.AddInParameter(dbCommand, "@mobile_no_2", DbType.String, patient.MobileNo2);
                    database.AddInParameter(dbCommand, "@email_id", DbType.String, patient.EmailId);
                    database.AddInParameter(dbCommand, "@pan_no ", DbType.String, patient.PANNo);
                    database.AddInParameter(dbCommand, "@department", DbType.String, patient.Department);
                    database.AddInParameter(dbCommand, "@designation", DbType.String, patient.Designation);
                    database.AddInParameter(dbCommand, "@gender", DbType.String, patient.Gender);
                    database.AddInParameter(dbCommand, "@employer_id", DbType.Int32, patient.EmployerId);
                    database.AddInParameter(dbCommand, "@modified_by", DbType.Int32, patient.ModifiedBy);
                    database.AddInParameter(dbCommand, "@modified_by_ip", DbType.String, patient.ModifiedByIP);

                    database.AddOutParameter(dbCommand, "@return_value", DbType.Int32, 0);

                    patientId = database.ExecuteNonQuery(dbCommand, dbTransaction);

                    if (database.GetParameterValue(dbCommand, "@return_value") != DBNull.Value)
                    {
                        patientId = Convert.ToInt32(database.GetParameterValue(dbCommand, "@return_value"));
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(patientId);
        }
Пример #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="patientId"></param>
        /// <returns></returns>
        public Entities.Patient GetPatientDetailsById(Int32 patientId)
        {
            var patientInfo = new Entities.Patient();

            using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.GetPatientDetailsById)) {
                database.AddInParameter(dbCommand, "@patient_id", DbType.Int32, patientId);

                using (IDataReader reader = database.ExecuteReader(dbCommand))
                {
                    while (reader.Read())
                    {
                        var patient = new Entities.Patient()
                        {
                            PatientId    = DRE.GetNullableInt32(reader, "patient_id", 0),
                            PatientCode  = DRE.GetNullableInt32(reader, "patient_code", null),
                            Title        = DRE.GetNullableString(reader, "title", null),
                            FirstName    = DRE.GetNullableString(reader, "first_name", null),
                            MiddleName   = DRE.GetNullableString(reader, "middle_name", null),
                            LastName     = DRE.GetNullableString(reader, "last_name", null),
                            FullName     = DRE.GetNullableString(reader, "full_name", null),
                            Gender       = DRE.GetNullableString(reader, "gender", null),
                            Address      = DRE.GetNullableString(reader, "address", null),
                            DateOfBirth  = DRE.GetNullableString(reader, "date_of_birth", null),
                            ContactNo1   = DRE.GetNullableString(reader, "contact_no_1", null),
                            ContactNo2   = DRE.GetNullableString(reader, "contact_no_2", null),
                            MobileNo1    = DRE.GetNullableString(reader, "mobile_no_1", null),
                            MobileNo2    = DRE.GetNullableString(reader, "mobile_no_2", null),
                            EmailId      = DRE.GetNullableString(reader, "email_id", null),
                            PANNo        = DRE.GetNullableString(reader, "pan_no", null),
                            Department   = DRE.GetNullableString(reader, "department", null),
                            Designation  = DRE.GetNullableString(reader, "designation", null),
                            EmployerId   = DRE.GetNullableInt32(reader, "employer_id", null),
                            EmployerName = DRE.GetNullableString(reader, "employer_name", null)
                        };

                        patientInfo = patient;
                    }
                }
            }

            return(patientInfo);
        }
Пример #13
0
        private List <Entities.Patient> GetPatients(IDataReader reader)
        {
            var patients = new List <Entities.Patient>();

            while (reader.Read())
            {
                PatientPersonalHistory patientPersonalHistory = new PatientPersonalHistory();
                PatientExerciseHistory patientExerciseHistory = new PatientExerciseHistory();

                var patient = new Entities.Patient
                {
                    PatientId                = DRE.GetNullableInt32(reader, "patient_id", 0),
                    PatientCode              = DRE.GetNullableInt32(reader, "patient_code", null),
                    Title                    = DRE.GetNullableString(reader, "title", null),
                    FirstName                = DRE.GetNullableString(reader, "first_name", null),
                    MiddleName               = DRE.GetNullableString(reader, "middle_name", null),
                    LastName                 = DRE.GetNullableString(reader, "last_name", null),
                    FullName                 = DRE.GetNullableString(reader, "full_name", null),
                    Address                  = DRE.GetNullableString(reader, "address", null),
                    Gender                   = DRE.GetNullableString(reader, "gender", null),
                    DateOfBirth              = DRE.GetNullableString(reader, "date_of_birth", null),
                    ContactNos               = DRE.GetNullableString(reader, "contact_nos", null),
                    ContactNo1               = DRE.GetNullableString(reader, "contact_no_1", null),
                    ContactNo2               = DRE.GetNullableString(reader, "contact_no_2", null),
                    MobileNo1                = DRE.GetNullableString(reader, "mobile_no_1", null),
                    MobileNo2                = DRE.GetNullableString(reader, "mobile_no_2", null),
                    EmailId                  = DRE.GetNullableString(reader, "email_id", null),
                    PANNo                    = DRE.GetNullableString(reader, "pan_no", null),
                    Department               = DRE.GetNullableString(reader, "department", null),
                    Designation              = DRE.GetNullableString(reader, "designation", null),
                    EmployerId               = DRE.GetNullableInt32(reader, "employer_id", null),
                    EmployerName             = DRE.GetNullableString(reader, "employer_name", null),
                    PatientPersonalHistory   = patientPersonalHistory.GetPatientPersonalHistoriesByPatientId(DRE.GetInt32(reader, "patient_id")),
                    PatientExerciseHistories = patientExerciseHistory.GetPatientExerciseHistoriesByPatientId(DRE.GetInt32(reader, "patient_id"))
                };

                patients.Add(patient);
            }

            return(patients);
        }
Пример #14
0
        public async Task <Response> Handle(EditPatientRequest request, CancellationToken cancellationToken)
        {
            //Verifica se a requisição é nula
            if (request == null)
            {
                AddNotification("Request", "A requisição é nula");
                return(new Response(this));
            }

            //Verifica se existe o paciente no banco
            if (!_patientRepository.Exists(request.Id))
            {
                AddNotification("Paciente inexistente", "O paciente informado não foi encontrado!");
                return(new Response(this));
            }

            Entities.Patient patient = _patientRepository.GetOne(request.Id);
            patient.EditPatient(request.FirstName, request.LastName, request.Email,
                                request.Password, request.Phone, request.BirthDate, request.CPF, request.RG, request.CEP,
                                request.Address, request.District, request.Complement, request.City, request.State);

            //Valida a requisição
            if (IsInvalid())
            {
                return(new Response(this));
            }

            //Salva as alterações no banco
            patient = _patientRepository.Edit(patient);

            //Cria o objeto da resposta
            var result   = new { Patient = patient };
            var response = new Response(this, result);

            //Retorna a resposta
            return(await Task.FromResult(response));
        }
Пример #15
0
        public List <Entities.Patient> GetPatientIdAndNameByPatientName(string firstName, string lastName)
        {
            List <Entities.Patient> patients = new List <Entities.Patient>();

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.GetPatientIdAndNameByPatientName))
                {
                    //database.AddInParameter(dbCommand, "@patient_name", DbType.String, patientName);
                    database.AddInParameter(dbCommand, "@first_name", DbType.String, firstName);
                    database.AddInParameter(dbCommand, "@last_name", DbType.String, lastName);

                    using (IDataReader reader = database.ExecuteReader(dbCommand))
                    {
                        while (reader.Read())
                        {
                            var patient = new Entities.Patient()
                            {
                                PatientId    = DRE.GetNullableInt32(reader, "patient_id", null),
                                PatientCode  = DRE.GetNullableInt32(reader, "patient_code", null),
                                EmployerName = DRE.GetNullableString(reader, "employer_name", null),
                                FullName     = DRE.GetNullableString(reader, "full_name", null)
                            };

                            patients.Add(patient);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(patients);
        }
Пример #16
0
        /// <summary>
        ///  Sort and save to DB HL7 incoming Messages.
        /// </summary>
        /// <param name="request"></param>
        void HadleHL7Message(HL7RequestInfo request, string createdFromHl7Message)
        {
            try
            {
                // Handle ADT_A01 - incoming patient registration. Also save the raw HL7 Messages. To log and store it.
                if (request.Message.ToString().Contains("ADT_A01"))
                {
                    var pateitnToAdd = new Entities.Patient()
                    {
                        Archived   = true,
                        Name       = ((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.PatientName.GivenName.Value + " " + ((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.PatientName.FamilyName.Value,
                        Gender     = ((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.Sex.Value,
                        ExternalId = Convert.ToInt32(((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.PatientAccountNumber.ID.Value),
                        Age        = ((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.DateOfBirth.TimeOfAnEvent.Year,
                        BirthDate  = new DateTime(
                            ((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.DateOfBirth.TimeOfAnEvent.Year,
                            ((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.DateOfBirth.TimeOfAnEvent.Month,
                            ((NHapi.Model.V23.Message.ADT_A01)request.Message).PID.DateOfBirth.TimeOfAnEvent.Day),
                        OriginalHL7Message = createdFromHl7Message,
                    };

                    _patientInfoRepository.AddPatient(pateitnToAdd);
                    _patientInfoRepository.Save();
                }
                // Handle  ORU_R01 - incoming Examination data.
                if (request.Message.ToString().Contains("ORU_R01"))
                {
                    int                 externalID        = Convert.ToInt32(((NHapi.Model.V23.Message.ORU_R01)request.Message).GetRESPONSE().PATIENT.PID.PatientAccountNumber.ID.Value);
                    Patient             patient           = new Patient();
                    Examination         examToAdd         = new Examination();
                    BloodPressureData   newExamData       = new BloodPressureData();
                    SpOData             newExaamSPo       = new SpOData();
                    BodyTemperatureData newExamBTD        = new BodyTemperatureData();
                    bool                BloodPressureFalg = false;
                    if (_patientInfoRepository.PatientExistsByExtId(externalID))
                    {
                        patient = _patientInfoRepository.GetPatientByExtID(externalID);
                    }
                    else
                    {
                        // Todo Save Patient.
                    }

                    int obsCount = ((NHapi.Model.V23.Message.ORU_R01)request.Message).GetRESPONSE().ORDER_OBSERVATIONRepetitionsUsed;
                    for (int i = 0; i < obsCount; i++)
                    {
                        var orderObservation = ((NHapi.Model.V23.Message.ORU_R01)request.Message).GetRESPONSE().GetORDER_OBSERVATION(i);
                        int obxCount         = ((NHapi.Model.V23.Message.ORU_R01)request.Message).GetRESPONSE().GetORDER_OBSERVATION(i).OBSERVATIONRepetitionsUsed;
                        for (int j = 0; j < obxCount; j++)
                        {
                            NHapi.Model.V23.Segment.OBX obx = orderObservation.GetOBSERVATION(j).OBX;
                            var obxVaries = orderObservation.GetOBSERVATION(j).OBX.GetObservationValue();

                            if (obx.ObservationIdentifier.Text.Value == "Body temperature")
                            {
                                Examination examToAddBDT = new Examination();
                                examToAddBDT.Description     = String.Empty;
                                examToAddBDT.Archived        = true;
                                examToAddBDT.PatientId       = patient.Id;
                                examToAddBDT.Value           = DateTime.Now.ToString();
                                examToAddBDT.ExaminationType = "Body temperature";
                                newExamBTD.TemperatureValue  = Convert.ToInt32(((NHapi.Base.Model.AbstractPrimitive)obx.GetObservationValue(0).Data).Value);
                                _patientInfoRepository.AddExaminationToPatient(patient.Id, examToAddBDT, ExaminationType.BodyTemperature, newExamBTD, null);
                            }
                            if (obx.ObservationIdentifier.Text.Value == "SpO2")
                            {
                                Examination examToAddSPO = new Examination();
                                examToAddSPO.PatientId       = patient.Id;
                                examToAddSPO.Description     = String.Empty;
                                examToAddSPO.Archived        = true;
                                examToAddSPO.Value           = DateTime.Now.ToString();
                                examToAddSPO.ExaminationType = "SpO2";
                                newExaamSPo.SPOValue         = Convert.ToInt32(((NHapi.Base.Model.AbstractPrimitive)obx.GetObservationValue(0).Data).Value);
                                _patientInfoRepository.AddExaminationToPatient(patient.Id, examToAddSPO, ExaminationType.BloodSpO2, newExaamSPo, null);
                            }
                            if (obx.ObservationIdentifier.Text.Value == "Mean blood pressure")
                            {
                                BloodPressureFalg             = true;
                                examToAdd.PatientId           = patient.Id;
                                examToAdd.Description         = String.Empty;
                                examToAdd.Archived            = true;
                                examToAdd.Value               = DateTime.Now.ToString();
                                examToAdd.ExaminationType     = "BloodPressure";
                                newExamData.MeanBloodPressure = Convert.ToInt32(((NHapi.Base.Model.AbstractPrimitive)obx.GetObservationValue(0).Data).Value);
                            }
                            if (obx.ObservationIdentifier.Text.Value == "Pulse rate")
                            {
                                BloodPressureFalg         = true;
                                examToAdd.PatientId       = patient.Id;
                                examToAdd.Archived        = true;
                                examToAdd.Description     = String.Empty;
                                examToAdd.Value           = DateTime.Now.ToString();
                                examToAdd.ExaminationType = "BloodPressure";
                                newExamData.PulseRate     = Convert.ToInt32(((NHapi.Base.Model.AbstractPrimitive)obx.GetObservationValue(0).Data).Value);
                            }
                            if (obx.ObservationIdentifier.Text.Value == "Diastolic blood pressure")
                            {
                                BloodPressureFalg          = true;
                                examToAdd.PatientId        = patient.Id;
                                examToAdd.Archived         = true;
                                examToAdd.Description      = String.Empty;
                                examToAdd.Value            = DateTime.Now.ToString();
                                examToAdd.ExaminationType  = "BloodPressure";
                                newExamData.DiastolicValue = Convert.ToInt32(((NHapi.Base.Model.AbstractPrimitive)obx.GetObservationValue(0).Data).Value);
                            }
                            if (obx.ObservationIdentifier.Text.Value == "Systolic blood pressure")
                            {
                                BloodPressureFalg         = true;
                                examToAdd.PatientId       = patient.Id;
                                examToAdd.Archived        = true;
                                examToAdd.Description     = String.Empty;
                                examToAdd.Value           = DateTime.Now.ToString();
                                examToAdd.ExaminationType = "BloodPressure";
                                newExamData.SystolicValue = Convert.ToInt32(((NHapi.Base.Model.AbstractPrimitive)obx.GetObservationValue(0).Data).Value);
                            }
                        }
                        if (BloodPressureFalg)
                        {
                            _patientInfoRepository.AddExaminationToPatient(patient.Id, examToAdd, ExaminationType.BloodPressure, newExamData, null);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogInformation("HadleHL7Message error: " + ex.Message);
            }
        }
Пример #17
0
 public List <Entities.Patient> SearchPatients(Entities.Patient patient)
 {
     return(_patient.SearchPatients(patient));
 }
Пример #18
0
 public Int32 SavePatient(Entities.Patient patient)
 {
     return(_patient.SavePatient(patient));
 }
Пример #19
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="patient"></param>
        /// <returns></returns>
        public Int32 SavePatient(Entities.Patient patient)
        {
            var patientId = 0;

            var db = DBConnect.getDBConnection();

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();

                using (DbTransaction transaction = conn.BeginTransaction())
                {
                    try
                    {
                        var patientPersonalHistoryId = 0;
                        var patientExerciseHistoryId = 0;

                        if (patient != null)
                        {
                            if (patient.PatientId == null || patient.PatientId == 0)
                            {
                                patientId = AddPatient(patient, transaction);
                            }
                            else if (patient.ModifiedBy != null || patient.ModifiedBy > 0)
                            {
                                patientId = UpdatePatient(patient, transaction);
                            }
                            else if (patient.IsDeleted == true)
                            {
                                var result = DeletePatient(patient, transaction);


                                if (result)
                                {
                                    patientId = (int)patient.PatientId;
                                }
                                else
                                {
                                    patientId = 1;
                                }
                            }

                            if (patientId > 0)
                            {
                                if (patient.PatientPersonalHistory != null)
                                {
                                    PatientPersonalHistory personalHistory = new PatientPersonalHistory();

                                    patient.PatientPersonalHistory.PatientId = patientId;

                                    patientPersonalHistoryId = personalHistory.SavePatientPersonalHistory(patient.PatientPersonalHistory, transaction);

                                    if (patientPersonalHistoryId < 0)
                                    {
                                        patientId = -1;
                                    }
                                }

                                if (patient.PatientExerciseHistories != null)
                                {
                                    if (patient.PatientExerciseHistories.Count > 0)
                                    {
                                        foreach (Entities.PatientExerciseHistory patientExerciseHistory in patient.PatientExerciseHistories)
                                        {
                                            PatientExerciseHistory exerciseHistory = new PatientExerciseHistory();

                                            patientExerciseHistory.PatientId = patientId;

                                            patientExerciseHistoryId = exerciseHistory.SavePatientExerciseHistory(patientExerciseHistory, transaction);

                                            if (patientExerciseHistoryId < 0)
                                            {
                                                patientId = -1;
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        if (patientId > 0)
                        {
                            transaction.Commit();
                        }
                        else
                        {
                            transaction.Rollback();
                        }
                    }
                    catch (Exception ex)
                    {
                        patientId = -1;
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }


            return(patientId);
        }
Пример #20
0
 public void Save(Entities.Patient patient)
 {
     _patientRepository.UpdatePatient(patient);
 }
Пример #21
0
 public Guid Create(Entities.Patient patient)
 {
     return(_patientRepository.SavePatient(patient));
 }