void setDemographics(DemographicSet mdo) { if (mdo.StreetAddresses != null && mdo.StreetAddresses.Count > 0) { this.addresses = new AddressTO[mdo.StreetAddresses.Count]; for (int i = 0; i < mdo.StreetAddresses.Count; i++) { this.addresses[i] = new AddressTO(mdo.StreetAddresses[i]); } } if (mdo.PhoneNumbers != null && mdo.PhoneNumbers.Count > 0) { this.phones = new PhoneNumTO[mdo.PhoneNumbers.Count]; for (int i = 0; i < mdo.PhoneNumbers.Count; i++) { this.phones[i] = new PhoneNumTO(mdo.PhoneNumbers[i]); } } if (mdo.EmailAddresses != null && mdo.EmailAddresses.Count > 0) { this.emailAddresses = new string[mdo.EmailAddresses.Count]; for (int i = 0; i < mdo.EmailAddresses.Count; i++) { this.emailAddresses[i] = mdo.EmailAddresses[i].Address; } } if (mdo.Names != null && mdo.Names.Count > 0) { this.names = new string[mdo.Names.Count]; for (int i = 0; i < mdo.Names.Count; i++) { this.names[i] = mdo.Names[i].getLastNameFirst();; } } }
internal Person toPerson(OracleDataReader rdr) { Person result = new Person(); string s = ""; if (!rdr.IsDBNull(rdr.GetOrdinal("Id"))) { s = rdr["Id"].ToString().Trim(); if (s != "") { result.Id = s; } } if (!rdr.IsDBNull(rdr.GetOrdinal("FirstName")) && !rdr.IsDBNull(rdr.GetOrdinal("LastName"))) { string name = rdr["LastName"].ToString().Trim() + ',' + rdr["FirstName"].ToString().Trim(); if (name != ",") { if (!rdr.IsDBNull(rdr.GetOrdinal("MiddleName"))) { name += ' ' + rdr["MiddleName"].ToString().Trim(); } result.Name = new PersonName(name.Trim()); } } //if (!rdr.IsDBNull(rdr.GetOrdinal("SSN"))) //{ // result.SSN = new SocSecNum(rdr["SSN"].ToString()); //} if (!rdr.IsDBNull(rdr.GetOrdinal("DOB"))) { s = rdr["DOB"].ToString().Trim(); if (s != "") { result.DOB = s; } } if (!rdr.IsDBNull(rdr.GetOrdinal("Gender"))) { s = rdr["Gender"].ToString().Trim(); if (s != "") { result.Gender = s; } } DemographicSet demoSet = new DemographicSet(); demoSet.StreetAddresses = addAddresses(rdr); demoSet.PhoneNumbers = addPhones(rdr); demoSet.EmailAddresses = addEmails(rdr); result.Demographics = new Dictionary <string, DemographicSet>(); result.Demographics.Add(myCxn.DataSource.Protocol, demoSet); return(result); }
public DemographicSet getDemographics(string sitecode, string patientId) { PatientDemographicsResponse response = _svc.getPatientDemographics(new mdo.sm.query.Patient() { ICN = patientId }, sitecode); if (response == null || response.Patient == null || String.Equals(response.Status, "reject", StringComparison.CurrentCultureIgnoreCase) || String.Equals(response.Status, "error", StringComparison.CurrentCultureIgnoreCase)) { throw new MdoException(MdoExceptionCode.DATA_MISSING_REQUIRED, response.Reason); } DemographicSet demogs = new DemographicSet(); demogs.EmailAddresses = new List <EmailAddress>(); demogs.EmailAddresses.Add(new EmailAddress(response.Patient.EmailAddress)); demogs.Names = new List <PersonName>(); demogs.Names.Add( new PersonName() { Firstname = response.Patient.FirstName, Lastname = response.Patient.LastName, }); demogs.PhoneNumbers = new List <PhoneNum>(); demogs.PhoneNumbers.Add(new PhoneNum(response.Patient.HomePhone)); if (response.Patient.HomeAddress != null && response.Patient.HomeAddress.Address != null) { demogs.StreetAddresses = new List <Address>(); demogs.StreetAddresses.Add( new Address() { Street1 = response.Patient.HomeAddress.Address.AddressLine1, Street2 = response.Patient.HomeAddress.Address.AddressLine2, City = response.Patient.HomeAddress.Address.City, County = response.Patient.HomeAddress.Address.County, State = response.Patient.HomeAddress.Address.State, Zipcode = response.Patient.HomeAddress.Address.ZipCode }); } return(demogs); }
public void testBuildPatientObject() { DemographicSet patientDemogs = new DemographicSet(); Address addr = new Address() { City = "Hooville", State = "MI", County = "Eggs and Ham", Street1 = "123 Elm St.", Street2 = "Apt 4", Zipcode = "90210" }; PhoneNum phone = new PhoneNum() { Description = "Cell phone", AreaCode = "555", Exchange = "867", Number = "5309" }; EmailAddress email = new EmailAddress() { Address = "*****@*****.**" }; IList<Address> addresses = new List<Address>() { addr }; IList<PhoneNum> telephones = new List<PhoneNum>() { phone }; IList<EmailAddress> emails = new List<EmailAddress>() { email }; patientDemogs.EmailAddresses = emails.ToList<EmailAddress>(); patientDemogs.PhoneNumbers = telephones.ToList<PhoneNum>(); patientDemogs.StreetAddresses = addresses.ToList<Address>(); CCRHelper helper = new CCRHelper(); ActorType patient = helper.buildPatientObject("1234567890", "987654321", "USER", "ONE", "O", "0000/12/25", "2011", "M", patientDemogs); Assert.IsNotNull(patient); Assert.IsTrue(patient.Item is ActorTypePerson); Assert.AreEqual(patient.Address.Count, 1); Assert.AreEqual(patient.EMail.Count, 1); Assert.AreEqual(patient.Telephone.Count, 1); Assert.AreEqual(patient.IDs.Count, 2); Assert.IsTrue(String.Equals(patient.IDs[0].ID, "1234567890")); Assert.IsTrue(String.Equals(patient.IDs[0].Type.Text, "ID")); Assert.IsTrue(String.Equals(patient.IDs[1].ID, "987654321")); Assert.IsTrue(String.Equals(patient.IDs[1].Type.Text, "SSN")); Assert.IsTrue(String.Equals(patient.Address[0].City, "Hooville")); Assert.IsTrue(String.Equals(patient.Address[0].County, "Eggs and Ham")); Assert.IsTrue(String.Equals(patient.Address[0].Line1, "123 Elm St.")); Assert.IsTrue(String.Equals(patient.Address[0].Line2, "Apt 4")); Assert.IsTrue(String.Equals(patient.Address[0].PostalCode, "90210")); Assert.IsTrue(String.Equals(patient.Address[0].State, "MI")); Assert.IsTrue(String.Equals(patient.EMail[0].Value, "*****@*****.**")); Assert.IsTrue(String.Equals(patient.Telephone[0].Value, "5558675309")); ActorTypePerson person = (ActorTypePerson)patient.Item; Assert.IsTrue(String.Equals(person.DateOfBirth.ExactDateTime, "0000/12/25")); Assert.IsTrue(String.Equals(person.DateOfBirth.Age.Value, "2011")); Assert.IsTrue(String.Equals(person.Gender.Text, "M")); Assert.IsTrue(String.Equals(person.Name.CurrentName.Family.First(), "ONE")); Assert.IsTrue(String.Equals(person.Name.CurrentName.Given.First(), "USER")); Assert.IsTrue(String.Equals(person.Name.CurrentName.Middle.First(), "O")); }
public Patient[] match(string target) { if (!SocSecNum.isValid(target)) { throw new NotImplementedException("non-SSN matches are currently not supported by CDW"); } SqlCommand cmd = new SqlCommand("SELECT * FROM SPatient.SPatient WHERE PatientSSN=@target;"); SqlParameter targetParam = new SqlParameter("@target", System.Data.SqlDbType.VarChar, 9); targetParam.Value = target; SqlDataAdapter adapter = new SqlDataAdapter(cmd); adapter.SelectCommand = new SqlCommand(cmd.CommandText); adapter.SelectCommand.Parameters.Add(targetParam); IDataReader reader = (IDataReader)_cxn.query(adapter); IDictionary <string, Patient> patients = new Dictionary <string, Patient>(); //if (!reader..HasRows) //{ // return new Patient[0]; //} while (reader.Read()) { Patient p = new Patient(); p.LocalSiteId = (reader.GetInt16(reader.GetOrdinal("Sta3n"))).ToString(); p.LocalPid = reader.GetString(reader.GetOrdinal("PatientIEN")); p.Name = new PersonName(reader.GetString(reader.GetOrdinal("PatientName"))); if (!reader.IsDBNull(reader.GetOrdinal("PatientSSN"))) { p.SSN = new SocSecNum(reader.GetString(reader.GetOrdinal("PatientSSN"))); } if (!reader.IsDBNull(reader.GetOrdinal("Gender"))) { p.Gender = reader.GetString(reader.GetOrdinal("Gender")); } else { p.Gender = ""; } if (!reader.IsDBNull(reader.GetOrdinal("DateOfBirthText"))) { p.DOB = reader.GetString(reader.GetOrdinal("DateOfBirthText")); } if (!reader.IsDBNull(reader.GetOrdinal("PatientICN"))) { p.MpiPid = (reader.GetString(reader.GetOrdinal("PatientICN"))).ToString(); } else { // use SSN for patient ICN if (p.SSN == null || String.IsNullOrEmpty(p.SSN.toString())) { throw new MdoException(MdoExceptionCode.DATA_MISSING_REQUIRED, "Unable to process results for " + target + " - CDW record contains no ICN and no SSN"); } p.MpiPid = p.SSN.toString(); } p.Demographics = new Dictionary <string, DemographicSet>(); DemographicSet demogs = new DemographicSet(); demogs.PhoneNumbers = new List <PhoneNum>(); demogs.EmailAddresses = new List <EmailAddress>(); demogs.StreetAddresses = new List <Address>(); if (!reader.IsDBNull(reader.GetOrdinal("PhoneResidence"))) { demogs.PhoneNumbers.Add(new PhoneNum(reader.GetString(reader.GetOrdinal("PhoneResidence")))); } if (!reader.IsDBNull(reader.GetOrdinal("PhoneWork"))) { demogs.PhoneNumbers.Add(new PhoneNum(reader.GetString(reader.GetOrdinal("PhoneWork")))); } Address address = new Address(); if (!reader.IsDBNull(reader.GetOrdinal("StreetAddress1"))) { address.Street1 = reader.GetString(reader.GetOrdinal("StreetAddress1")); } if (!reader.IsDBNull(reader.GetOrdinal("StreetAddress2"))) { address.Street2 = reader.GetString(reader.GetOrdinal("StreetAddress2")); } if (!reader.IsDBNull(reader.GetOrdinal("StreetAddress3"))) { address.Street3 = reader.GetString(reader.GetOrdinal("StreetAddress3")); } if (!reader.IsDBNull(reader.GetOrdinal("City"))) { address.City = reader.GetString(reader.GetOrdinal("City")); } if (!reader.IsDBNull(reader.GetOrdinal("county"))) { address.County = reader.GetString(reader.GetOrdinal("county")); } if (!reader.IsDBNull(reader.GetOrdinal("State"))) { address.State = reader.GetString(reader.GetOrdinal("State")); } if (!reader.IsDBNull(reader.GetOrdinal("Zip"))) { address.Zipcode = reader.GetString(reader.GetOrdinal("Zip")); } demogs.StreetAddresses.Add(address); p.Demographics.Add(p.LocalSiteId, demogs); if (!patients.ContainsKey(p.MpiPid)) { p.SitePids = new System.Collections.Specialized.StringDictionary(); p.SitePids.Add(p.LocalSiteId, p.LocalPid); patients.Add(p.MpiPid, p); } else { if (!(patients[p.MpiPid].SitePids.ContainsKey(p.LocalSiteId))) { patients[p.MpiPid].SitePids.Add(p.LocalSiteId, p.LocalPid); } patients[p.MpiPid].Demographics.Add(p.LocalSiteId, p.Demographics[p.LocalSiteId]); } } // cleanup - need to set all temp ICNs back to null foreach (string key in patients.Keys) { if (!(patients[key].SSN == null) && !String.IsNullOrEmpty(patients[key].SSN.toString()) && !String.IsNullOrEmpty(patients[key].MpiPid) && String.Equals(patients[key].MpiPid, patients[key].SSN.toString())) { patients[key].MpiPid = null; } } Patient[] result = new Patient[patients.Count]; patients.Values.CopyTo(result, 0); return(result); }
public DemographicSetTO(string key, DemographicSet mdo) { this.tag = key; setDemographics(mdo); }
Patient getNextPatient(SqlDataReader reader) { Patient p = new Patient(); p.LocalSiteId = (reader.GetInt16(reader.GetOrdinal("sitecode"))).ToString(); Decimal d = Convert.ToDecimal(reader.GetDecimal(reader.GetOrdinal("localPid"))); if ((d - Math.Floor(d)) > 0) { p.LocalPid = (d).ToString(); } else { p.LocalPid = (Convert.ToInt64(d)).ToString(); } p.Name = new PersonName(reader.GetString(reader.GetOrdinal("name"))); p.SSN = new SocSecNum(reader.GetString(reader.GetOrdinal("ssn"))); if (!reader.IsDBNull(reader.GetOrdinal("gender"))) { p.Gender = reader.GetBoolean(reader.GetOrdinal("gender")) ? "M" : "F"; // 1 or true == male, 0 or false == female } else { p.Gender = ""; } if (!reader.IsDBNull(reader.GetOrdinal("vistaDOB"))) { p.DOB = reader.GetString(reader.GetOrdinal("vistaDOB")); } p.MpiPid = (reader.GetInt32(reader.GetOrdinal("icn"))).ToString(); p.MpiChecksum = (reader.GetInt32(reader.GetOrdinal("icnx"))).ToString(); p.Demographics = new Dictionary <string, DemographicSet>(); DemographicSet demogs = new DemographicSet(); demogs.PhoneNumbers = new List <PhoneNum>(); demogs.EmailAddresses = new List <EmailAddress>(); demogs.StreetAddresses = new List <Address>(); if (!reader.IsDBNull(reader.GetOrdinal("homePhone"))) { demogs.PhoneNumbers.Add(new PhoneNum(reader.GetString(reader.GetOrdinal("homePhone")))); } if (!reader.IsDBNull(reader.GetOrdinal("workPhone"))) { demogs.PhoneNumbers.Add(new PhoneNum(reader.GetString(reader.GetOrdinal("workPhone")))); } if (!reader.IsDBNull(reader.GetOrdinal("cellPhone"))) { demogs.PhoneNumbers.Add(new PhoneNum(reader.GetString(reader.GetOrdinal("cellPhone")))); } if (!reader.IsDBNull(reader.GetOrdinal("emailAddress"))) { demogs.EmailAddresses.Add(new EmailAddress(reader.GetString(reader.GetOrdinal("emailAddress")))); } Address address = new Address(); if (!reader.IsDBNull(reader.GetOrdinal("addressLine1"))) { address.Street1 = reader.GetString(reader.GetOrdinal("addressLine1")); } if (!reader.IsDBNull(reader.GetOrdinal("addressLine2"))) { address.Street2 = reader.GetString(reader.GetOrdinal("addressLine2")); } if (!reader.IsDBNull(reader.GetOrdinal("addressLine3"))) { address.Street3 = reader.GetString(reader.GetOrdinal("addressLine3")); } if (!reader.IsDBNull(reader.GetOrdinal("city"))) { address.City = reader.GetString(reader.GetOrdinal("city")); } if (!reader.IsDBNull(reader.GetOrdinal("county"))) { address.County = reader.GetString(reader.GetOrdinal("county")); } if (!reader.IsDBNull(reader.GetOrdinal("state"))) { address.State = reader.GetString(reader.GetOrdinal("state")); } if (!reader.IsDBNull(reader.GetOrdinal("zipcode"))) { address.Zipcode = reader.GetString(reader.GetOrdinal("zipcode")); } demogs.StreetAddresses.Add(address); p.Demographics.Add(p.LocalSiteId, demogs); return(p); }
public void testBuildPatientObject() { DemographicSet patientDemogs = new DemographicSet(); Address addr = new Address() { City = "Hooville", State = "MI", County = "Eggs and Ham", Street1 = "123 Elm St.", Street2 = "Apt 4", Zipcode = "90210" }; PhoneNum phone = new PhoneNum() { Description = "Cell phone", AreaCode = "555", Exchange = "867", Number = "5309" }; EmailAddress email = new EmailAddress() { Address = "*****@*****.**" }; IList <Address> addresses = new List <Address>() { addr }; IList <PhoneNum> telephones = new List <PhoneNum>() { phone }; IList <EmailAddress> emails = new List <EmailAddress>() { email }; patientDemogs.EmailAddresses = emails.ToList <EmailAddress>(); patientDemogs.PhoneNumbers = telephones.ToList <PhoneNum>(); patientDemogs.StreetAddresses = addresses.ToList <Address>(); CCRHelper helper = new CCRHelper(); ActorType patient = helper.buildPatientObject("1234567890", "987654321", "USER", "ONE", "O", "0000/12/25", "2011", "M", patientDemogs); Assert.IsNotNull(patient); Assert.IsTrue(patient.Item is ActorTypePerson); Assert.AreEqual(patient.Address.Count, 1); Assert.AreEqual(patient.EMail.Count, 1); Assert.AreEqual(patient.Telephone.Count, 1); Assert.AreEqual(patient.IDs.Count, 2); Assert.IsTrue(String.Equals(patient.IDs[0].ID, "1234567890")); Assert.IsTrue(String.Equals(patient.IDs[0].Type.Text, "ID")); Assert.IsTrue(String.Equals(patient.IDs[1].ID, "987654321")); Assert.IsTrue(String.Equals(patient.IDs[1].Type.Text, "SSN")); Assert.IsTrue(String.Equals(patient.Address[0].City, "Hooville")); Assert.IsTrue(String.Equals(patient.Address[0].County, "Eggs and Ham")); Assert.IsTrue(String.Equals(patient.Address[0].Line1, "123 Elm St.")); Assert.IsTrue(String.Equals(patient.Address[0].Line2, "Apt 4")); Assert.IsTrue(String.Equals(patient.Address[0].PostalCode, "90210")); Assert.IsTrue(String.Equals(patient.Address[0].State, "MI")); Assert.IsTrue(String.Equals(patient.EMail[0].Value, "*****@*****.**")); Assert.IsTrue(String.Equals(patient.Telephone[0].Value, "5558675309")); ActorTypePerson person = (ActorTypePerson)patient.Item; Assert.IsTrue(String.Equals(person.DateOfBirth.ExactDateTime, "0000/12/25")); Assert.IsTrue(String.Equals(person.DateOfBirth.Age.Value, "2011")); Assert.IsTrue(String.Equals(person.Gender.Text, "M")); Assert.IsTrue(String.Equals(person.Name.CurrentName.Family.First(), "ONE")); Assert.IsTrue(String.Equals(person.Name.CurrentName.Given.First(), "USER")); Assert.IsTrue(String.Equals(person.Name.CurrentName.Middle.First(), "O")); }
public ActorType buildPatientObject(string id, string ssn, string firstname, string lastName, string middleName, string dob, string age, string gender, DemographicSet demogs) { ActorType patient = new ActorType(); ActorTypePerson person = new ActorTypePerson() { Name = new ActorTypePersonName() { CurrentName = new PersonNameType() { Family = new List<string>() { lastName }, Given = new List<string>() { firstname }, Middle = new List<string>() { middleName } } }, Gender = new CodedDescriptionType() { Text = gender } }; person.DateOfBirth = new DateTimeType() { ExactDateTime = dob, Age = new MeasureType() { Value = age } }; patient.Item = person; patient.Address = new List<ActorTypeAddress>(); if (demogs != null && demogs.StreetAddresses != null && demogs.StreetAddresses.Count > 0) { foreach (Address addr in demogs.StreetAddresses) { ActorTypeAddress newAddr = new ActorTypeAddress() { City = addr.City, County = addr.County, Line1 = addr.Street1, Line2 = addr.Street2, PostalCode = addr.Zipcode, State = addr.State }; patient.Address.Add(newAddr); } } patient.EMail = new List<CommunicationType>(); if (demogs != null && demogs.EmailAddresses != null && demogs.EmailAddresses.Count > 0) { foreach (EmailAddress addy in demogs.EmailAddresses) { CommunicationType newEmail = new CommunicationType() { Type = new CodedDescriptionType() { Text = "Email" }, Value = addy.Address }; patient.EMail.Add(newEmail); } } patient.Telephone = new List<CommunicationType>(); if (demogs != null && demogs.PhoneNumbers != null && demogs.PhoneNumbers.Count > 0) { foreach (PhoneNum phone in demogs.PhoneNumbers) { CommunicationType newPhone = new CommunicationType() { Value = phone.ToString() }; if (String.IsNullOrEmpty(phone.Description)) { newPhone.Type = new CodedDescriptionType() { Text = "Telephone" }; } else { newPhone.Type = new CodedDescriptionType() { Text = phone.Description }; } patient.Telephone.Add(newPhone); } } IDType patientId = new IDType() { ID = id, Type = new CodedDescriptionType() { Text = "ID" } }; IDType patientSSN = new IDType() { ID = ssn, Type = new CodedDescriptionType() { Text = "SSN" } }; patient.IDs = new List<IDType>() { patientId, patientSSN }; return patient; }
public Patient[] match(string target) { if (!SocSecNum.isValid(target)) { throw new NotImplementedException("non-SSN matches are currently not supported by CDW"); } SqlCommand cmd = new SqlCommand("SELECT * FROM SPatient.SPatient WHERE PatientSSN=@target;"); SqlParameter targetParam = new SqlParameter("@target", System.Data.SqlDbType.VarChar, 9); targetParam.Value = target; SqlDataAdapter adapter = new SqlDataAdapter(cmd); adapter.SelectCommand = new SqlCommand(cmd.CommandText); adapter.SelectCommand.Parameters.Add(targetParam); SqlDataReader reader = (SqlDataReader)_cxn.query(adapter); IDictionary<string, Patient> patients = new Dictionary<string, Patient>(); if (!reader.HasRows) { return new Patient[0]; } while (reader.Read()) { Patient p = new Patient(); p.LocalSiteId = (reader.GetInt16(reader.GetOrdinal("Sta3n"))).ToString(); p.LocalPid = reader.GetString(reader.GetOrdinal("PatientIEN")); p.Name = new PersonName(reader.GetString(reader.GetOrdinal("PatientName"))); if (!reader.IsDBNull(reader.GetOrdinal("PatientSSN"))) { p.SSN = new SocSecNum(reader.GetString(reader.GetOrdinal("PatientSSN"))); } if (!reader.IsDBNull(reader.GetOrdinal("gender"))) { p.Gender = reader.GetString(reader.GetOrdinal("gender")); } else { p.Gender = ""; } if (!reader.IsDBNull(reader.GetOrdinal("DateOfBirthText"))) { p.DOB = reader.GetString(reader.GetOrdinal("DateOfBirthText")); } if (!reader.IsDBNull(reader.GetOrdinal("PatientICN"))) { p.MpiPid = (reader.GetString(reader.GetOrdinal("PatientICN"))).ToString(); } else { // use SSN for patient ICN if (p.SSN == null || String.IsNullOrEmpty(p.SSN.toString())) { throw new MdoException(MdoExceptionCode.DATA_MISSING_REQUIRED, "Unable to process results for " + target + " - CDW record contains no ICN and no SSN"); } p.MpiPid = p.SSN.toString(); } p.Demographics = new Dictionary<string, DemographicSet>(); DemographicSet demogs = new DemographicSet(); demogs.PhoneNumbers = new List<PhoneNum>(); demogs.EmailAddresses = new List<EmailAddress>(); demogs.StreetAddresses = new List<Address>(); if (!reader.IsDBNull(reader.GetOrdinal("PhoneResidence"))) { demogs.PhoneNumbers.Add(new PhoneNum(reader.GetString(reader.GetOrdinal("PhoneResidence")))); } if (!reader.IsDBNull(reader.GetOrdinal("PhoneWork"))) { demogs.PhoneNumbers.Add(new PhoneNum(reader.GetString(reader.GetOrdinal("PhoneWork")))); } Address address = new Address(); if (!reader.IsDBNull(reader.GetOrdinal("StreetAddress1"))) { address.Street1 = reader.GetString(reader.GetOrdinal("StreetAddress1")); } if (!reader.IsDBNull(reader.GetOrdinal("StreetAddress2"))) { address.Street2 = reader.GetString(reader.GetOrdinal("StreetAddress2")); } if (!reader.IsDBNull(reader.GetOrdinal("StreetAddress3"))) { address.Street3 = reader.GetString(reader.GetOrdinal("StreetAddress3")); } if (!reader.IsDBNull(reader.GetOrdinal("City"))) { address.City = reader.GetString(reader.GetOrdinal("City")); } if (!reader.IsDBNull(reader.GetOrdinal("county"))) { address.County = reader.GetString(reader.GetOrdinal("county")); } if (!reader.IsDBNull(reader.GetOrdinal("State"))) { address.State = reader.GetString(reader.GetOrdinal("State")); } if (!reader.IsDBNull(reader.GetOrdinal("Zip"))) { address.Zipcode = reader.GetString(reader.GetOrdinal("Zip")); } demogs.StreetAddresses.Add(address); p.Demographics.Add(p.LocalSiteId, demogs); if (!patients.ContainsKey(p.MpiPid)) { p.SitePids = new System.Collections.Specialized.StringDictionary(); p.SitePids.Add(p.LocalSiteId, p.LocalPid); patients.Add(p.MpiPid, p); } else { if (!(patients[p.MpiPid].SitePids.ContainsKey(p.LocalSiteId))) { patients[p.MpiPid].SitePids.Add(p.LocalSiteId, p.LocalPid); } patients[p.MpiPid].Demographics.Add(p.LocalSiteId, p.Demographics[p.LocalSiteId]); } } // cleanup - need to set all temp ICNs back to null foreach (string key in patients.Keys) { if (!(patients[key].SSN == null) && !String.IsNullOrEmpty(patients[key].SSN.toString()) && !String.IsNullOrEmpty(patients[key].MpiPid) && String.Equals(patients[key].MpiPid, patients[key].SSN.toString())) { patients[key].MpiPid = null; } } Patient[] result = new Patient[patients.Count]; patients.Values.CopyTo(result, 0); return result; }
public ActorType buildPatientObject(string id, string ssn, string firstname, string lastName, string middleName, string dob, string age, string gender, DemographicSet demogs) { ActorType patient = new ActorType(); ActorTypePerson person = new ActorTypePerson() { Name = new ActorTypePersonName() { CurrentName = new PersonNameType() { Family = new List <string>() { lastName }, Given = new List <string>() { firstname }, Middle = new List <string>() { middleName } } }, Gender = new CodedDescriptionType() { Text = gender } }; person.DateOfBirth = new DateTimeType() { ExactDateTime = dob, Age = new MeasureType() { Value = age } }; patient.Item = person; patient.Address = new List <ActorTypeAddress>(); if (demogs != null && demogs.StreetAddresses != null && demogs.StreetAddresses.Count > 0) { foreach (Address addr in demogs.StreetAddresses) { ActorTypeAddress newAddr = new ActorTypeAddress() { City = addr.City, County = addr.County, Line1 = addr.Street1, Line2 = addr.Street2, PostalCode = addr.Zipcode, State = addr.State }; patient.Address.Add(newAddr); } } patient.EMail = new List <CommunicationType>(); if (demogs != null && demogs.EmailAddresses != null && demogs.EmailAddresses.Count > 0) { foreach (EmailAddress addy in demogs.EmailAddresses) { CommunicationType newEmail = new CommunicationType() { Type = new CodedDescriptionType() { Text = "Email" }, Value = addy.Address }; patient.EMail.Add(newEmail); } } patient.Telephone = new List <CommunicationType>(); if (demogs != null && demogs.PhoneNumbers != null && demogs.PhoneNumbers.Count > 0) { foreach (PhoneNum phone in demogs.PhoneNumbers) { CommunicationType newPhone = new CommunicationType() { Value = phone.ToString() }; if (String.IsNullOrEmpty(phone.Description)) { newPhone.Type = new CodedDescriptionType() { Text = "Telephone" }; } else { newPhone.Type = new CodedDescriptionType() { Text = phone.Description }; } patient.Telephone.Add(newPhone); } } IDType patientId = new IDType() { ID = id, Type = new CodedDescriptionType() { Text = "ID" } }; IDType patientSSN = new IDType() { ID = ssn, Type = new CodedDescriptionType() { Text = "SSN" } }; patient.IDs = new List <IDType>() { patientId, patientSSN }; return(patient); }
internal Person toPerson(OracleDataReader rdr) { Person result = new Person(); string s = ""; if (!rdr.IsDBNull(rdr.GetOrdinal("Id"))) { s = rdr["Id"].ToString().Trim(); if (s != "") { result.Id = s; } } if (!rdr.IsDBNull(rdr.GetOrdinal("FirstName")) && !rdr.IsDBNull(rdr.GetOrdinal("LastName"))) { string name = rdr["LastName"].ToString().Trim() + ',' + rdr["FirstName"].ToString().Trim(); if (name != ",") { if (!rdr.IsDBNull(rdr.GetOrdinal("MiddleName"))) { name += ' ' + rdr["MiddleName"].ToString().Trim(); } result.Name = new PersonName(name.Trim()); } } //if (!rdr.IsDBNull(rdr.GetOrdinal("SSN"))) //{ // result.SSN = new SocSecNum(rdr["SSN"].ToString()); //} if (!rdr.IsDBNull(rdr.GetOrdinal("DOB"))) { s = rdr["DOB"].ToString().Trim(); if (s != "") { result.DOB = s; } } if (!rdr.IsDBNull(rdr.GetOrdinal("Gender"))) { s = rdr["Gender"].ToString().Trim(); if (s != "") { result.Gender = s; } } DemographicSet demoSet = new DemographicSet(); demoSet.StreetAddresses = addAddresses(rdr); demoSet.PhoneNumbers = addPhones(rdr); demoSet.EmailAddresses = addEmails(rdr); result.Demographics = new Dictionary<string, DemographicSet>(); result.Demographics.Add(myCxn.DataSource.Protocol, demoSet); return result; }
internal DemographicSet toDemographicSet(string[] response) { if (response == null || response.Length == 0) { return null; } DemographicSet result = new DemographicSet(); string[] flds = response[0].Split(new char[] { '^' }); Address addr = new Address(); if (flds.Length > 0 && flds[1] != "") { addr.Street1 = flds[1]; } if (flds.Length > 1 && flds[2] != "") { addr.Street2 = flds[2]; } if (flds.Length > 2 && flds[3] != "") { addr.Street3 = flds[3]; } if (flds.Length > 3 && flds[4] != "") { addr.City = flds[4]; } if (flds.Length > 4 && flds[5] != "") { addr.State = flds[5]; } if (flds.Length > 5 && flds[6] != "") { addr.Zipcode = flds[6]; } if (flds.Length > 6 && flds[7] != "") { addr.County = flds[7]; } result.StreetAddresses.Add(addr); if (flds.Length > 7 && flds[8] != "") { PhoneNum p = new PhoneNum(flds[8]); p.Description = "Home Phone"; result.PhoneNumbers.Add(p); } if (flds.Length > 8 && flds[9] != "") { PhoneNum p = new PhoneNum(flds[9]); p.Description = "Work Phone"; result.PhoneNumbers.Add(p); } if (flds.Length > 9 && flds[10] != "") { PhoneNum p = new PhoneNum(flds[10]); p.Description = "Cell Phone"; result.PhoneNumbers.Add(p); } if (flds.Length > 10) { if (flds[11] != "") { result.EmailAddresses.Add(new EmailAddress(flds[11])); } } return result; }