public async Task <Result <PatientLookupView> > Handle(GetPersonDetailsCommand request, CancellationToken cancellationToken)
        {
            using (_unitOfWork)
            {
                try
                {
                    StringBuilder sql = new StringBuilder();
                    sql.Append("exec pr_OpenDecryptedSession;");
                    sql.Append($"SELECT TOP 1 * FROM Api_PatientsView WHERE PersonId = {request.PersonId};");
                    sql.Append("exec [dbo].[pr_CloseDecryptedSession];");

                    var result = await _unitOfWork.Repository <PatientLookupView>().FromSql(sql.ToString());

                    result.ForEach(item =>
                    {
                        item.CalculateYourAge();
                        item.CalculateAgeInMonths();
                    });

                    return(Result <PatientLookupView> .Valid(result.FirstOrDefault()));
                }
                catch (Exception e)
                {
                    Log.Error(e.Message);
                    return(Result <PatientLookupView> .Invalid(e.Message));
                }
            }
        }
예제 #2
0
        public void LoadPersonDetails()
        {
            ICommand <Person> command = new GetPersonDetailsCommand();

            command.Execute();
            var person = command.Result;

            this.View.Model.Age       = person.Age;
            this.View.Model.FirstName = person.FirstName;
            this.View.BindModel();
        }
예제 #3
0
        public async Task <Result <GetPersonDetailsResponse> > Handle(GetPersonDetailsCommand request, CancellationToken cancellationToken)
        {
            try
            {
                RegisterPersonService rs = new RegisterPersonService(_unitOfWork);
                int id = request.PersonId;
                if (request.PersonId > 0)
                {
                    persondetail = await rs.GetPerson(id);

                    personEducation = await rs.GetCurrentPersonEducation(id);

                    personocc = await rs.GetCurrentOccupation(id);

                    personmarital = await rs.GetFirstPatientMaritalStatus(id);

                    personlocation = await rs.GetCurrentPersonLocation(id);

                    personcontact = await rs.GetCurrentPersonContact(id);

                    personemerg = await rs.GetCurrentPersonEmergency(id);

                    pid = await rs.GetCurrentPersonIdentifier(id);

                    pt = await rs.GetPatientByPersonId(id);
                }


                _unitOfWork.Dispose();


                return(Result <GetPersonDetailsResponse> .Valid(new GetPersonDetailsResponse()
                {
                    personDetail = persondetail,
                    personEducation = personEducation,
                    personOccupation = personocc,
                    personMaritalStatus = personmarital,
                    personLocation = personlocation,
                    personContact = personcontact,
                    PersonEmergencyView = personemerg,
                    personIdentifier = pid,
                    patient = pt
                }));
            }
            catch (Exception ex)
            {
                return(Result <GetPersonDetailsResponse> .Invalid(ex.Message));
            }
        }
        public async Task <Result <List <PersonDetailsView> > > Handle(GetPersonDetailsCommand request, CancellationToken cancellationToken)
        {
            try
            {
                PersonDetailsViewService personDetailsViewService = new PersonDetailsViewService(_unitOfWork);
                var personDetail = await personDetailsViewService.GetPersonDetails(request.PersonId);

                return(Result <List <PersonDetailsView> > .Valid(personDetail));
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message + " " + ex.InnerException);
                return(Result <List <PersonDetailsView> > .Invalid(ex.Message));
            }
        }
        public async Task <Result <PatientLookupView> > Handle(GetPersonDetailsCommand request, CancellationToken cancellationToken)
        {
            using (_unitOfWork)
            {
                try
                {
                    StringBuilder sql = new StringBuilder();
                    sql.Append("exec pr_OpenDecryptedSession;");
                    sql.Append("SELECT ISNULL(ROW_NUMBER() OVER(ORDER BY PersonId ASC), -1) AS RowID, * ");
                    sql.Append(" FROM ( ");
                    sql.Append("SELECT P.[Id] PersonId, P.DeleteFlag, PT.Id PatientId, PT.ptn_pk, CAST(DECRYPTBYKEY(P.[FirstName]) AS VARCHAR(50)) AS[FirstName], CAST(DECRYPTBYKEY(P.[MidName]) AS VARCHAR(50)) AS[MidName],");
                    sql.Append("CAST(DECRYPTBYKEY(P.[LastName]) AS VARCHAR(50)) AS[LastName], P.Sex, Gender = (SELECT TOP 1 ItemName FROM LookupItemView WHERE ItemId = P.Sex AND MasterName = 'Gender'), ");
                    sql.Append("DateOfBirth = ISNULL(P.DateOfBirth, PT.DateOfBirth), PT.[DobPrecision], PatientType = CASE(SELECT TOP 1 ItemName FROM LookupItemView WHERE ItemId = PT.PatientType AND MasterName = 'PatientType') WHEN 'New' THEN 'NEW' WHEN 'Transfer-In' THEN 'TRANSFER-IN' WHEN 'Transit' THEN 'TRANSIT' ELSE '' END, ");
                    sql.Append("CAST(DECRYPTBYKEY(PT.[NationalId]) AS VARCHAR(50)) AS[NationalId], ISNULL(P.RegistrationDate, PT.RegistrationDate) AS[RegistrationDate], PE.EnrollmentDate, pni.IdentifierValue, ");
                    sql.Append("SE.Id ServiceAreaId, SE.Name ServiceAreaName, CAST(DECRYPTBYKEY(PC.PhysicalAddress) AS VARCHAR(50)) AS PhysicalAddress, CAST(DECRYPTBYKEY(PC.MobileNumber) AS VARCHAR(50)) AS MobileNumber, ");
                    sql.Append("PMS.MaritalStatusId, MaritalStatusName = (SELECT TOP 1 ItemName FROM LookupItemView WHERE ItemId = PMS.MaritalStatusId AND MasterName = 'MaritalStatus'), PL.LandMark, County = (select TOP 1 CountyName from County where WardId = PL.Ward), ");
                    sql.Append("SubCounty = (select TOP 1 Subcountyname from County where WardId = PL.Ward), Ward = (select TOP 1 WardName from County where WardId = PL.Ward) ");
                    sql.Append("FROM[dbo].[Person] P LEFT JOIN dbo.Patient AS PT ON P.Id = PT.PersonId LEFT JOIN dbo.PatientEnrollment AS PE ON PT.Id = PE.PatientId LEFT JOIN dbo.PatientIdentifier AS pni ON pni.PatientId = PT.Id and PE.Id = pni.PatientEnrollmentId ");
                    sql.Append("LEFT JOIN dbo.Identifiers ON pni.IdentifierTypeId = dbo.Identifiers.Id LEFT JOIN dbo.ServiceArea SE ON SE.Id = PE.ServiceAreaId LEFT JOIN dbo.PersonContact PC ON PC.PersonId = P.Id LEFT JOIN[dbo].[PatientMaritalStatus] PMS ON PMS.PersonId = P.Id ");
                    sql.Append("LEFT JOIN[dbo].[PersonLocation] PL ON PL.PersonId = P.Id ) A");
                    sql.Append($" WHERE A.PersonId = {request.PersonId};");
                    sql.Append("exec [dbo].[pr_CloseDecryptedSession];");

                    var result = await _unitOfWork.Repository <PatientLookupView>().FromSql(sql.ToString());

                    result.ForEach(item =>
                    {
                        item.CalculateYourAge();
                        item.CalculateAgeInMonths();
                    });

                    return(Result <PatientLookupView> .Valid(result.FirstOrDefault()));
                }
                catch (Exception e)
                {
                    Log.Error(e.Message);
                    return(Result <PatientLookupView> .Invalid(e.Message));
                }
            }
        }