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); }
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); } }