예제 #1
0
        public static PatientData MapPatientData(PatientInfo info)
        {
            var pData = new PatientData
            {
                ExternalRecordId = info.PatientId.ToString(),
                FirstName        = info.FirstName,
                MiddleName       = info.MiddleInitial,
                LastName         = info.LastName,
                Suffix           = info.Suffix,
                Gender           = PatientInfoUtils.FormatGender(info.Gender),
                DOB = info.BirthDate.HasValue ? info.BirthDate.Value.ToShortDateString() : string.Empty,
                // LastFourSSN = info.Ssn.Substring(),
                LastFourSSN = info.Ssn != null?Strings.Right(info.Ssn, 4) : null,
                                  RecordCreatedOn    = info.CreateDate.GetValueOrDefault(),
                                  LastUpdatedOn      = info.UpdateDate.GetValueOrDefault(),
                                  StatusId           = PatientInfoUtils.GetStatus(info.Status),
                                  DataSource         = _dataSource,
                                  DeceasedId         = PatientInfoUtils.GetDeceased(info.Status),
                                  PriorityData       = Convert.ToInt32(info.Priority),
                                  ClinicalBackground = !string.IsNullOrEmpty(info.PCP) ? "PCP: " + info.PCP : null,
                                  StatusDataSource   = _dataSource
            };

            return(pData);
        }
예제 #2
0
        public List <ContactData> GetPatientContactsToRegister(List <HttpObjectResponse <PatientData> > saveResults)
        {
            try
            {
                var list = new ConcurrentBag <ContactData>();
                if (PatientDict == null)
                {
                    return(list.ToList());
                }
                var psIds = saveResults.Where(r => r.Code == HttpStatusCode.Created).Select(item => item.Body.ExternalRecordId).Distinct().ToList();
                Parallel.ForEach(psIds, id =>
                {
                    var ptInfo    = PatientDict[Convert.ToInt32(id)];
                    var mongoPtId = saveResults.Find(pt => pt.Body.ExternalRecordId == id).Body.Id;

                    var contactData = new ContactData
                    {
                        PatientId        = mongoPtId,
                        CreatedOn        = ptInfo.CreateDate != null ? Convert.ToDateTime(ptInfo.CreateDate) : default(DateTime),
                        RecentsList      = null,
                        ExternalRecordId = id,
                        FirstName        = ptInfo.FirstName,
                        LastName         = ptInfo.LastName,
                        MiddleName       = ptInfo.MiddleInitial,
                        Gender           = PatientInfoUtils.FormatGender(ptInfo.Gender),
                        Suffix           = ptInfo.Suffix,
                        StatusId         = PatientInfoUtils.GetStatus(ptInfo.Status),
                        DeceasedId       = PatientInfoUtils.GetDeceased(ptInfo.Status),
                        DataSource       = "P-Reg",
                        ContactTypeId    = Phytel.API.DataDomain.Contact.DTO.Constants.PersonContactTypeId
                    };
                    if (!string.IsNullOrEmpty(ptInfo.Phone) && ptInfo.Phone.Length == 10)
                    {
                        contactData.Phones = new List <PhoneData>
                        {
                            new PhoneData
                            {
                                DataSource = "P-Reg",
                                Number     = Convert.ToInt64(ptInfo.Phone),
                                TypeId     = "52e18c2ed433232028e9e3a6"
                            }
                        };
                    }
                    list.Add(contactData);
                });
                return(list.ToList());
            }
            catch (Exception ex)
            {
                LoggerDomainEvent.Raise(new LogStatus {
                    Message = "PatientsImportUow:GetPatientContactsToRegister(): " + ex.Message, Type = LogType.Error
                });
                throw new ArgumentException("PatientsImportUow:GetPatientContactsToRegister(): " + ex.Message);
            }
        }