/// <summary> /// По заданному Referral'у строит Options для SeacrhOne. /// /// Может можно сделать лучше?(проверки на null) /// /// </summary> public Options GetRefferalReturnOptions_SearchOne(Referral referral, Privilege[] privileges, string idMq, Coding mqReferralStatus) { Options opt = new Options(); opt.IdMq = idMq; if (referral.ReferralInfo != null) { opt.ReferralInfo = new ReferralInfo { ProfileMedService = referral.ReferralInfo.ProfileMedService, ReferralType = referral.ReferralInfo.ReferralType, MqReferralStatus = mqReferralStatus }; } if (referral.Target != null) { opt.Target = new ReferralTarget { Lpu = referral.Target.Lpu }; } if (referral.Source != null) { opt.Source = new ReferralSource { Lpu = referral.Source.Lpu }; } if (referral.ReferralSurvey != null) { opt.Survey = new Survey { SurveyType = referral.ReferralSurvey.SurveyType, SurveyOrgan = referral.ReferralSurvey.SurveyOrgan }; } if (referral.Patient != null) { opt.Patient.Person = new Person { BirthDate = referral.Patient.Person.BirthDate, IdPatientMis = referral.Patient.Person.IdPatientMis }; if (referral.Patient.Person.HumanName != null) { opt.Patient.Person.HumanName = new HumanName { FamilyName = referral.Patient.Person.HumanName.FamilyName, GivenName = referral.Patient.Person.HumanName.GivenName, MiddleName = referral.Patient.Person.HumanName.MiddleName }; } } if (privileges != null) { opt.Patient.Privileges = (Privilege[])privileges.Clone(); } if (referral.EventsInfo != null && referral.EventsInfo.Target != null) { opt.EventsInfo.Target = new EventTarget { IsReferralReviwed = referral.EventsInfo.Target.IsReferralReviwed, ReceptionAppointDate = referral.EventsInfo.Target.ReceptionAppointDate }; } OptionData.options = opt; return opt; }