Beispiel #1
0
        public DereferencePatientDataResponse Put(DereferencePatientDataRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }
            var response = new DereferencePatientDataResponse();

            try
            {
                if (string.IsNullOrEmpty(request.UserId))
                {
                    throw new UnauthorizedAccessException("ContactDD:DereferencePatientDataResponse()::Unauthorized Access");
                }

                response         = Manager.DereferencePatient(request);
                response.Version = request.Version;
            }
            catch (Exception ex)
            {
                CommonFormatter.FormatExceptionResponse(response, base.Response, ex);

                string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0";
                Common.Helper.LogException(int.Parse(aseProcessID), ex);
            }
            return(response);
        }
Beispiel #2
0
        public DereferencePatientDataResponse DereferencePatientInContact(string patientId, double version, string contractNumber, string userId)
        {
            DereferencePatientDataResponse dereferencePatientDataResponse = null;

            try
            {
                IRestClient client = new JsonServiceClient();
                string      url    = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/Patient/{4}/Dereference",
                                                                          DDContactServiceUrl,
                                                                          "NG",
                                                                          version,
                                                                          contractNumber, patientId), userId);

                //[Route("/{Context}/{Version}/{ContractNumber}/Contact/CareManagers", "GET")]
                dereferencePatientDataResponse =
                    client.Put <DereferencePatientDataResponse>(url, new DereferencePatientDataRequest
                {
                    ContractNumber = contractNumber,
                    Context        = "NG",
                    PatientId      = patientId,
                    UserId         = userId,
                    Version        = version
                });
            }
            catch (WebServiceException wse)
            {
                throw new WebServiceException("AD:DereferencePatientInContact()::" + wse.Message, wse.InnerException);
            }
            return(dereferencePatientDataResponse);
        }
Beispiel #3
0
        public DereferencePatientDataResponse DereferencePatient(DereferencePatientDataRequest request)
        {
            var response = new DereferencePatientDataResponse();

            try
            {
                var repo         = Factory.GetRepository(request, RepositoryType.Contact);
                var isSuccessful = repo.DereferencePatient(request);

                if (isSuccessful)
                {
                    // Remove this deleted contact(PatientId) from RecentList of  other contacts(users logged in).

                    List <ContactData> contactsWithAPatientInRecentList = repo.FindContactsWithAPatientInRecentList(request.PatientId) as List <ContactData>;
                    if (contactsWithAPatientInRecentList != null && contactsWithAPatientInRecentList.Count > 0)
                    {
                        var contactsWithUpdatedRecentList = new List <ContactWithUpdatedRecentList>();
                        contactsWithAPatientInRecentList.ForEach(c =>
                        {
                            PutRecentPatientRequest recentPatientRequest = new PutRecentPatientRequest
                            {
                                ContactId      = c.Id,
                                Context        = request.Context,
                                ContractNumber = request.ContractNumber,
                                UserId         = request.UserId,
                                Version        = request.Version
                            };
                            int index = c.RecentsList.IndexOf(request.PatientId);
                            if (c.RecentsList.Remove(request.PatientId))
                            {
                                if (repo.UpdateRecentList(recentPatientRequest, c.RecentsList))
                                {
                                    contactsWithUpdatedRecentList.Add(new ContactWithUpdatedRecentList {
                                        ContactId = recentPatientRequest.ContactId, PatientIndex = index
                                    });
                                }
                            }
                        });
                    }
                }
                response.IsSuccessful = isSuccessful;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }