Exemple #1
0
        public InsertContactDataResponse Post(InsertContactDataRequest request)
        {
            InsertContactDataResponse response = new InsertContactDataResponse();

            if (request != null)
            {
                response.Version = request.Version;
                try
                {
                    if (string.IsNullOrEmpty(request.UserId))
                    {
                        throw new UnauthorizedAccessException("ContactDD:Post()::Unauthorized Access");
                    }

                    response.Id = Manager.InsertContact(request);
                }
                catch (Exception ex)
                {
                    CommonFormat.FormatExceptionResponse(response, base.Response, ex);

                    string aseProcessId = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0";
                    Helpers.LogException(int.Parse(aseProcessId), ex);
                }
            }
            return(response);
        }
Exemple #2
0
        public InsertContactDataResponse InsertContactForAPatient(InsertContactDataRequest putContactRequest, string patientId)
        {
            //[Route("/{Context}/{Version}/{ContractNumber}/Contacts", "POST")]
            Uri contactUri = new Uri(string.Format("{0}/Contact/{1}/{2}/{3}/Contacts?UserId={4}",
                                                   Url,
                                                   Context,
                                                   Version,
                                                   ContractNumber,
                                                   HeaderUserId));
            HttpClient contactClient = GetHttpClient(contactUri);

            DataContractJsonSerializer contactJsonSer = new DataContractJsonSerializer(typeof(InsertContactDataRequest));
            MemoryStream contactMs = new MemoryStream();

            contactJsonSer.WriteObject(contactMs, putContactRequest);
            contactMs.Position = 0;

            //use a Stream reader to construct the StringContent (Json)
            StreamReader  contactSr      = new StreamReader(contactMs);
            StringContent contactContent = new StringContent(contactSr.ReadToEnd(), System.Text.Encoding.UTF8, "application/json");

            contactMs.Dispose();

            //Post the data
            var contactResponse        = contactClient.PostAsync(contactUri, contactContent);
            var contactResponseContent = contactResponse.Result.Content;

            string contactResponseString = contactResponseContent.ReadAsStringAsync().Result;
            InsertContactDataResponse responseContact = null;

            using (var contactMsResponse = new MemoryStream(Encoding.Unicode.GetBytes(contactResponseString)))
            {
                var contactSerializer = new DataContractJsonSerializer(typeof(InsertContactDataResponse));
                responseContact = (InsertContactDataResponse)contactSerializer.ReadObject(contactMsResponse);
            }

            return(responseContact);
        }
Exemple #3
0
        public void ImportFile(string excelFile)
        {
            string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + @";Extended Properties=""Excel 8.0;HDR=YES;""";

            DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");

            using (DbConnection connection = factory.CreateConnection())
            {
                connection.ConnectionString = connectionString;

                using (DbCommand command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT Address, [Birth Date], Gender, [Home Phone],  Name, [Work Phone] FROM [Patient Data$]";

                    connection.Open();

                    using (DbDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            #region Parse all needed data
                            //PatientData
                            string[] fullname = dr["Name"].ToString().Split(", ".ToCharArray());

                            string dob       = dr["Birth Date"].ToString();
                            string firstname = fullname[2].ToString();
                            string lastname  = fullname[0].ToString();
                            string gender    = dr["Gender"].ToString();

                            //Contact Info
                            string   newadd       = dr["Address"].ToString().Replace("<br/>", "-");
                            string[] splitaddress = newadd.Split("-".ToCharArray());
                            string[] cityStateZip = splitaddress[1].Split(",".ToCharArray());
                            string[] stateZip     = cityStateZip[1].Split(" ".ToCharArray());

                            string homePhone = dr["Home Phone"].ToString().Replace("-", string.Empty);
                            string workPhone = dr["Work Phone"].ToString().Replace("-", string.Empty);
                            string line1     = splitaddress[0];
                            string city      = cityStateZip[0].Trim();
                            string state     = stateZip[1];
                            string zip       = stateZip[2];
                            #endregion


                            #region Insert Patient
                            //DOB = Birth Date
                            //FirstName = second part of Name(after , )
                            //Gender = Gender
                            //LastName = first part of Name (before ,)
                            PatientData patient = new PatientData
                            {
                                DOB       = dob,
                                FirstName = firstname,
                                Gender    = gender,
                                LastName  = lastname
                            };
                            PutPatientDataRequest patientRequest = new PutPatientDataRequest
                            {
                                Patient = patient
                            };

                            PutPatientDataResponse responsePatient = import.InsertPatient(patientRequest);
                            #endregion


                            #region Add Contact Info (home phone, work phone, address)
                            if (responsePatient.Id != null)
                            {
                                //timezone defaulting to central
                                TimeZoneData tZone = import.GetDefaultTimeZone();

                                List <IdNamePair>   modesLookUp = import.GetModes();
                                List <CommModeData> modes       = new List <CommModeData>();
                                List <PhoneData>    phones      = new List <PhoneData>();
                                List <AddressData>  addresses   = new List <AddressData>();
                                List <EmailData>    emails      = new List <EmailData>();

                                //modes
                                if (modesLookUp != null && modesLookUp.Count > 0)
                                {
                                    foreach (IdNamePair l in modesLookUp)
                                    {
                                        modes.Add(new CommModeData {
                                            ModeId = l.Id, OptOut = false, Preferred = false
                                        });
                                    }
                                }


                                //phones
                                if (!string.IsNullOrEmpty(homePhone))
                                {
                                    PhoneData home = new PhoneData
                                    {
                                        Number         = Convert.ToInt64(homePhone),
                                        OptOut         = false,
                                        PhonePreferred = true,
                                        TypeId         = import.GetType("Home")
                                    };
                                    phones.Add(home);
                                }

                                if (!string.IsNullOrEmpty(workPhone))
                                {
                                    PhoneData work = new PhoneData
                                    {
                                        Number         = Convert.ToInt64(workPhone),
                                        OptOut         = false,
                                        PhonePreferred = true,
                                        TypeId         = import.GetType("Work")
                                    };
                                    phones.Add(work);
                                }

                                //address
                                if (!string.IsNullOrEmpty(newadd))
                                {
                                    AddressData add1 = new AddressData
                                    {
                                        Line1      = line1,
                                        City       = city,
                                        PostalCode = zip,
                                        OptOut     = false,
                                        Preferred  = true,
                                        StateId    = import.GetState(state),
                                        TypeId     = import.GetFirstTypeLookUp()
                                    };

                                    addresses.Add(add1);
                                }

                                //Contact
                                ContactData data = new ContactData {
                                    PatientId  = responsePatient.Id,
                                    Modes      = modes,
                                    TimeZoneId = tZone.Id,
                                    Phones     = phones,
                                    Emails     = emails,
                                    Addresses  = addresses,
                                };
                                InsertContactDataRequest contactRequest = new InsertContactDataRequest
                                {
                                    ContactData    = data,
                                    Version        = patientRequest.Version,
                                    Context        = patientRequest.Context,
                                    ContractNumber = patientRequest.ContractNumber
                                };

                                InsertContactDataResponse responseContact = import.InsertContactForAPatient(contactRequest, responsePatient.Id.ToString());
                                if (responseContact.Id == null)
                                {
                                    throw new Exception("Contact card import request failed.");
                                }
                            }
                            #endregion
                        }
                    }
                }
            }
        }