public ActionResult LocationOfExposure(HumanCase humanCase) { long root = humanCase.idfCase; ViewBag.IdfCase = root; GeoLocation geoLocation = humanCase.PointGeoLocation; ModelStorage.Put(Session.SessionID, root, geoLocation.idfGeoLocation, null, geoLocation); return(PartialView(geoLocation)); }
private static GeoLocation GetCloneOfOriginalGeoLocation(HumanCase humanCase) { GeoLocation originalGeoLocation = humanCase.PointGeoLocation; originalGeoLocation.idfsGeoLocationType = (long)GeoLocationTypeEnum.ExactPoint; GeoLocation cloneGeoLocation = originalGeoLocation.CloneWithSetup(); if (humanCase.PointGeoLocation.IsNull) { cloneGeoLocation.Country = humanCase.Patient.CurrentResidenceAddress.Country; cloneGeoLocation.Region = humanCase.Patient.CurrentResidenceAddress.Region; cloneGeoLocation.Rayon = humanCase.Patient.CurrentResidenceAddress.Rayon; } return(cloneGeoLocation); }
public void PostTest2() { var item = Upload506Item.Accessor.Instance(null).CreateNewForTest2(manager, master); item.Resolution = (int)Upload506Resolution.Created; master.Items.Add(item); Assert.AreEqual(item.idfCase, 0); Assert.IsTrue(master.ValidateItems()); Assert.IsTrue(accessor.Post(manager, master)); Assert.AreNotEqual(item.idfCase, 0); HumanCase hc = HumanCase.Accessor.Instance(null).SelectByKey(manager, item.idfCase); Assert.IsNotNull(hc); Assert.AreEqual(item.idfCase, hc.idfCase); Assert.AreEqual(item.strCaseID, hc.strCaseID); Assert.AreEqual(item.iDISEASE, (int)master.DiagnosisRefs.FirstOrDefault(i => i.idfsTentativeDiagnosis == hc.idfsTentativeDiagnosis, i => i.DISEASE)); Assert.AreEqual(item.NAME, hc.Patient.strName); Assert.AreEqual(item.HN, hc.strLocalIdentifier); Assert.AreEqual(item.SEX, (int)master.HumanGenderRefs.FirstOrDefault(i => i.idfsHumanGender == hc.Patient.idfsHumanGender, i => i.SEX)); Assert.AreEqual(item.YEAR, hc.intPatientAge); Assert.AreEqual(item.MARIETAL, (int)master.MaritalStatusRefs.FirstOrDefault( i => i.idfsMaritalStatus == (long)hc.FFPresenterEpi.ActivityParameters[1].varValue, i => i.MARIETAL)); Assert.AreEqual(item.RACE, (int)master.NationalityRefs.FirstOrDefault(i => i.idfsNationality == hc.Patient.idfsNationality, i => i.RACE)); Assert.AreEqual(item.RACE1, (int)master.ForeignerTypeRefs.FirstOrDefault( i => i.idfsForeignerType == (long)hc.FFPresenterEpi.ActivityParameters[5].varValue, i => i.RACE1)); Assert.AreEqual(item.OCCUPAT, (int)master.OccupationTypeRefs.FirstOrDefault(i => i.idfsOccupationType == hc.idfsOccupationType, i => i.OCCUPAT)); Assert.AreEqual(item.ADDRESS, hc.Patient.CurrentResidenceAddress.strHouse); Assert.AreEqual(item.PROVINCE + item.ADDRCODE, hc.Patient.CurrentResidenceAddress.strBuilding); Assert.AreEqual(item.METROPOL, (int)master.MunicipalityRefs.FirstOrDefault( i => i.idfsMunicipality == (long)hc.FFPresenterEpi.ActivityParameters[3].varValue, i => i.METROPOL)); Assert.AreEqual(item.HOSPITAL, (int)master.HospitalizationRefs.FirstOrDefault( i => i.idfsHospitalization == (long)hc.FFPresenterEpi.ActivityParameters[0].varValue, i => i.HOSPITAL)); Assert.AreEqual(item.TYPE, (int)master.PatientTypeRefs.FirstOrDefault( i => i.idfsPatientType == (long)hc.FFPresenterEpi.ActivityParameters[4].varValue, i => i.TYPE)); Assert.AreEqual(item.RESULT, (int)master.OutcomeRefs.FirstOrDefault(i => i.idfsOutcome == hc.idfsOutcome, i => i.RESULT)); Assert.AreEqual(item.DATESICK, hc.datOnSetDate); Assert.AreEqual(item.DATEDEFINE, hc.datTentativeDiagnosisDate); Assert.AreEqual(item.DATERECORD, hc.datNotificationDate); Assert.AreEqual(item.DATEDEATH, hc.datDateOfDeath); Assert.AreEqual(item.iCOMPLICA, (int)master.ComplicationRefs.FirstOrDefault( i => i.idfsComplication == (long)hc.FFPresenterEpi.ActivityParameters[2].varValue, i => i.COMPLICA)); }
private void HumanCaseWinForm_Load(object sender, EventArgs e) { using (DbManagerProxy manager = DbManagerFactory.Factory.Create()) { HumanCase.Accessor acc = HumanCase.Accessor.Instance(null); m_Case = acc.CreateNewT(manager, null); } m_Case.TentativeDiagnosis = m_Case.TentativeDiagnosisLookup.FirstOrDefault(); //diagnosisLookupBindingSource.DataSource //comboBoxEdit1.DataBindings.Add(new Binding("EditValue", this.diagnosisLookupBindingSource, "name", true)); //this.diagnosisLookupBindingSource.D //comboBox1.DataSource = m_case.TentativeDiagnosisLookup; //comboBox1.DisplayMember = "name"; //comboBox1.ValueMember = "idfsDiagnosis"; //comboBox1.DataBindings.Add(new Binding("idfsTentativeDiagnosis", m_case, "SelectedValue")); //comboBox1.DataBindings.Add(new Binding("SelectedValue", m_case, "TentativeDiagnosis")); //false, DataSourceUpdateMode.OnPropertyChanged, "", null, null)); }
public void OpenApiTestHumanCaseGeneral() { var hcin = new HumanCase(); hcin.Diagnosis = new Diagnosis() { RecordID = ReferenceBll.GetDignosisList().Last(c => !c.Aggregate && (c.AccessoryCode & (int)HACode.Human) != 0).RecordID }; hcin.Patient = new Patient() { PatientLastName = "last", PatientCurrentResidence = new Address() { Country = new GisReference() { RecordID = 780000000 }, Region = new GisReference() { RecordID = ReferenceBll.GetRegionList(780000000).First().RecordID }, } }; hcin.Patient.PatientCurrentResidence.Rayon = new GisReference() { RecordID = ReferenceBll.GetRayonList(hcin.Patient.PatientCurrentResidence.Region.RecordID).First().RecordID }; hcin.SamplesCollected = new Reference() { RecordID = ReferenceBll.GetList(19000100).Single(c => c.RecordID == 10100001).RecordID }; //hcin.strCaseID = "QQQ"; /*hcin.Samples = new List<Sample>(); * hcin.Samples.Add(new Sample() * { * SampleType = new Reference() * { * id = ReferenceBll.GetSampleTypeForDiagnosisList((int)HACode.Human, 0).Last().id * } * }); */ var hcout = HumanCaseBll.Create(hcin); var hcfnd = HumanCaseBll.Select(hcout.RecordID); Assert.IsNotNull(hcfnd.Samples); Assert.AreEqual(0, hcfnd.Samples.Count); var smp = HumanCaseSampleBll.Create(hcfnd.RecordID, new Sample() { SampleType = new Reference() { RecordID = ReferenceBll.GetSampleTypeForDiagnosisList((int)HACode.Human, 0).Last().RecordID } }); hcfnd = HumanCaseBll.Select(hcout.RecordID); Assert.IsNotNull(hcfnd.Samples); Assert.AreEqual(1, hcfnd.Samples.Count); Assert.IsNotNull(hcfnd.Samples[0].RecordID); Assert.AreEqual(smp.RecordID, hcfnd.Samples[0].RecordID); HumanCaseSampleBll.Delete(hcfnd.RecordID, hcfnd.Samples[0].RecordID); hcfnd = HumanCaseBll.Select(hcout.RecordID); Assert.IsNotNull(hcfnd.Samples); Assert.AreEqual(0, hcfnd.Samples.Count); var list = HumanCaseBll.Select(new HumanCaseListFilter()); Assert.IsTrue(list.Count >= 1); list = HumanCaseBll.Select(new HumanCaseListFilter() { CaseID = hcout.CaseID }); Assert.IsTrue(list.Count == 1); list = HumanCaseBll.Select(new HumanCaseListFilter() { Diagnosis = 100 }); Assert.IsTrue(list.Count == 0); list = HumanCaseBll.Select(new HumanCaseListFilter() { Diagnosis = hcout.Diagnosis.RecordID }); Assert.IsTrue(list.Count >= 1); list = HumanCaseBll.Select(new HumanCaseListFilter() { DateEnteredFrom = DateTime.Now.AddMinutes(-1), DateEnteredTo = DateTime.Now.AddDays(1) }); Assert.IsTrue(list.Count >= 1); list = HumanCaseBll.Select(new HumanCaseListFilter() { DateEnteredFrom = DateTime.Now.AddDays(1), DateEnteredTo = DateTime.Now.AddDays(2) }); Assert.IsTrue(list.Count == 0); }
public void PostTest() { var item = Upload506Item.Accessor.Instance(null).CreateNewForTest(manager, master, 22); item.Resolution = (int)Upload506Resolution.Created; master.Items.Add(item); Assert.AreEqual(item.idfCase, 0); Assert.IsTrue(master.ValidateItems()); Assert.IsTrue(accessor.Post(manager, master)); Assert.AreNotEqual(item.idfCase, 0); HumanCase hc = HumanCase.Accessor.Instance(null).SelectByKey(manager, item.idfCase); Assert.IsNotNull(hc); Assert.AreEqual(item.idfCase, hc.idfCase); Assert.AreEqual(item.strCaseID, hc.strCaseID); Assert.AreEqual(item.iDISEASE, (int)master.DiagnosisRefs.FirstOrDefault(i => i.idfsTentativeDiagnosis == hc.idfsTentativeDiagnosis, i => i.DISEASE)); Assert.AreEqual(item.NAME, hc.Patient.strName); Assert.AreEqual(item.HN, hc.strLocalIdentifier); Assert.AreEqual(item.SEX, (int)master.HumanGenderRefs.FirstOrDefault(i => i.idfsHumanGender == hc.Patient.idfsHumanGender, i => i.SEX)); Assert.AreEqual(item.YEAR, hc.intPatientAge); Assert.AreEqual(item.MARIETAL, (int)master.MaritalStatusRefs.FirstOrDefault( i => i.idfsMaritalStatus == (long)hc.FFPresenterEpi.ActivityParameters[1].varValue, i => i.MARIETAL)); Assert.AreEqual(item.RACE, (int)master.NationalityRefs.FirstOrDefault(i => i.idfsNationality == hc.Patient.idfsNationality, i => i.RACE)); Assert.AreEqual(item.RACE1, (int)master.ForeignerTypeRefs.FirstOrDefault( i => i.idfsForeignerType == (long)hc.FFPresenterEpi.ActivityParameters[5].varValue, i => i.RACE1)); Assert.AreEqual(item.OCCUPAT, (int)master.OccupationTypeRefs.FirstOrDefault(i => i.idfsOccupationType == hc.idfsOccupationType, i => i.OCCUPAT)); Assert.AreEqual(item.ADDRESS, hc.Patient.CurrentResidenceAddress.strHouse); Assert.AreEqual(item.PROVINCE + item.ADDRCODE, hc.Patient.CurrentResidenceAddress.strBuilding); Assert.AreEqual(item.METROPOL, (int)master.MunicipalityRefs.FirstOrDefault( i => i.idfsMunicipality == (long)hc.FFPresenterEpi.ActivityParameters[3].varValue, i => i.METROPOL)); Assert.AreEqual(item.HOSPITAL, (int)master.HospitalizationRefs.FirstOrDefault( i => i.idfsHospitalization == (long)hc.FFPresenterEpi.ActivityParameters[0].varValue, i => i.HOSPITAL)); Assert.AreEqual(item.TYPE, (int)master.PatientTypeRefs.FirstOrDefault( i => i.idfsPatientType == (long)hc.FFPresenterEpi.ActivityParameters[4].varValue, i => i.TYPE)); Assert.AreEqual(item.RESULT, (int)master.OutcomeRefs.FirstOrDefault(i => i.idfsOutcome == hc.idfsOutcome, i => i.RESULT)); Assert.AreEqual(item.DATESICK, hc.datOnSetDate); Assert.AreEqual(item.DATEDEFINE, hc.datTentativeDiagnosisDate); Assert.AreEqual(item.DATERECORD, hc.datNotificationDate); Assert.AreEqual(item.DATEDEATH, hc.datDateOfDeath); Assert.AreEqual(item.iCOMPLICA, (int)master.ComplicationRefs.FirstOrDefault( i => i.idfsComplication == (long)hc.FFPresenterEpi.ActivityParameters[2].varValue, i => i.COMPLICA)); var duplicate = Upload506Duplicate.Accessor.Instance(null).SelectByItem(manager, item); Assert.IsNotNull(duplicate); Assert.AreEqual(duplicate.strTentativeDiagnosisEIDSS, duplicate.strTentativeDiagnosis506); Assert.AreEqual(duplicate.strLocalIdentifierEIDSS, duplicate.strLocalIdentifier506); Assert.AreEqual(duplicate.strPatientNameEIDSS, duplicate.strPatientName506); Assert.AreEqual(duplicate.strHumanGenderEIDSS, duplicate.strHumanGender506); Assert.AreEqual(duplicate.datDateofBirthEIDSS, duplicate.datDateofBirth506); Assert.AreEqual(duplicate.intPatientAgeEIDSS, duplicate.intPatientAge506); Assert.AreEqual(duplicate.strHumanAgeTypeEIDSS, duplicate.strHumanAgeType506); Assert.AreEqual(duplicate.strNationalityEIDSS, duplicate.strNationality506); Assert.AreEqual(duplicate.strOccupationTypeEIDSS, duplicate.strOccupationType506); Assert.AreEqual(duplicate.strAddrCodeEIDSS, duplicate.strAddrCode506); Assert.AreEqual(duplicate.strAddressEIDSS, duplicate.strAddress506); Assert.AreEqual(duplicate.strRegionEIDSS, duplicate.strRegion506); Assert.AreEqual(duplicate.strRayonEIDSS, duplicate.strRayon506); Assert.AreEqual(duplicate.strSettlementEIDSS, duplicate.strSettlement506); Assert.AreEqual(duplicate.strTypeEIDSS, duplicate.strType506); Assert.AreEqual(duplicate.strOutcomeEIDSS, duplicate.strOutcome506); Assert.AreEqual(duplicate.strSentByOfficeEIDSS, duplicate.strSentByOffice506); Assert.AreEqual(duplicate.strEmployerNameEIDSS, duplicate.strEmployerName506); Assert.AreEqual(duplicate.datSickEIDSS, duplicate.datSick506); Assert.AreEqual(duplicate.datDefineEIDSS, duplicate.datDefine506); Assert.AreEqual(duplicate.datDeathEIDSS, duplicate.datDeath506); Assert.AreEqual(duplicate.datRecordEIDSS, duplicate.datRecord506); Assert.AreEqual(duplicate.strComplicaEIDSS, duplicate.strComplica506); Assert.AreEqual(duplicate.strMarietalEIDSS, duplicate.strMarietal506); Assert.AreEqual(duplicate.strForeignEIDSS, duplicate.strForeign506); Assert.AreEqual(duplicate.strMunicipalityEIDSS, duplicate.strMunicipality506); Assert.AreEqual(duplicate.strHospitalizationEIDSS, duplicate.strHospitalization506); item.NAME = "BBB CCCCCC"; item.HN = "AAAAAA"; item.SEX = 2; item.YEAR = 50; item.MARIETAL = 2; item.RACE = 6; item.RACE1 = 2; item.OCCUPAT = 2; item.ADDRESS = "63/98"; item.ADDRCODE = "020902"; item.PROVINCE = "12"; item.METROPOL = 2; item.HOSPITAL = 1; item.TYPE = 2; item.RESULT = 3; item.HSERV = "010420"; item.DATESICK = new DateTime(2015, 5, 11); item.DATEDEFINE = new DateTime(2015, 5, 13); item.DATERECORD = new DateTime(2015, 5, 17); item.COMPLICA = "2"; item.Resolution = (int)Upload506Resolution.Updated; Assert.IsTrue(master.ValidateItems()); Assert.IsTrue(accessor.Post(manager, master)); hc = HumanCase.Accessor.Instance(null).SelectByKey(manager, item.idfCase); Assert.AreEqual(item.idfCase, hc.idfCase); Assert.AreEqual(item.strCaseID, hc.strCaseID); Assert.AreEqual(item.iDISEASE, (int)master.DiagnosisRefs.FirstOrDefault(i => i.idfsTentativeDiagnosis == hc.idfsTentativeDiagnosis, i => i.DISEASE)); Assert.AreEqual(item.NAME, hc.Patient.strName); Assert.AreEqual(item.HN, hc.strLocalIdentifier); Assert.AreEqual(item.SEX, (int)master.HumanGenderRefs.FirstOrDefault(i => i.idfsHumanGender == hc.Patient.idfsHumanGender, i => i.SEX)); Assert.AreEqual(item.YEAR, hc.intPatientAge); Assert.AreEqual(item.MARIETAL, (int)master.MaritalStatusRefs.FirstOrDefault( i => i.idfsMaritalStatus == (long)hc.FFPresenterEpi.ActivityParameters[1].varValue, i => i.MARIETAL)); Assert.AreEqual(item.RACE, (int)master.NationalityRefs.FirstOrDefault(i => i.idfsNationality == hc.Patient.idfsNationality, i => i.RACE)); Assert.AreEqual(item.RACE1, (int)master.ForeignerTypeRefs.FirstOrDefault( i => i.idfsForeignerType == (long)hc.FFPresenterEpi.ActivityParameters[5].varValue, i => i.RACE1)); Assert.AreEqual(item.OCCUPAT, (int)master.OccupationTypeRefs.FirstOrDefault(i => i.idfsOccupationType == hc.idfsOccupationType, i => i.OCCUPAT)); Assert.AreEqual(item.ADDRESS, hc.Patient.CurrentResidenceAddress.strHouse); Assert.AreEqual(item.PROVINCE + item.ADDRCODE, hc.Patient.CurrentResidenceAddress.strBuilding); Assert.AreEqual(item.METROPOL, (int)master.MunicipalityRefs.FirstOrDefault( i => i.idfsMunicipality == (long)hc.FFPresenterEpi.ActivityParameters[3].varValue, i => i.METROPOL)); Assert.AreEqual(item.HOSPITAL, (int)master.HospitalizationRefs.FirstOrDefault( i => i.idfsHospitalization == (long)hc.FFPresenterEpi.ActivityParameters[0].varValue, i => i.HOSPITAL)); Assert.AreEqual(item.TYPE, (int)master.PatientTypeRefs.FirstOrDefault( i => i.idfsPatientType == (long)hc.FFPresenterEpi.ActivityParameters[4].varValue, i => i.TYPE)); Assert.AreEqual(item.RESULT, (int)master.OutcomeRefs.FirstOrDefault(i => i.idfsOutcome == hc.idfsOutcome, i => i.RESULT)); Assert.AreEqual(item.DATESICK, hc.datOnSetDate); Assert.AreEqual(item.DATEDEFINE, hc.datTentativeDiagnosisDate); Assert.AreEqual(item.DATERECORD, hc.datNotificationDate); Assert.AreEqual(item.DATEDEATH, hc.datDateOfDeath); Assert.AreEqual(item.iCOMPLICA, (int)master.ComplicationRefs.FirstOrDefault( i => i.idfsComplication == (long)hc.FFPresenterEpi.ActivityParameters[2].varValue, i => i.COMPLICA)); }
public bool Save(bool bSaveNotification) { bool ret = false; using (DbManagerProxy manager = DbManagerFactory.Factory.Create(EidssUserContext.Instance)) { var acc = HumanCase.Accessor.Instance(null); HumanCase hc = null; if (string.IsNullOrEmpty(OfflineCaseID)) { hc = (Id != 0) ? acc.SelectByKey(manager, Id) : acc.CreateNewT(manager, null); } else { var find = find_by_offline_id(manager); if (find != 0) { hc = acc.SelectByKey(manager, find); } else { hc = acc.CreateNewT(manager, null); if (Id != 0) { MarkedToDelete = true; return(true); } } } if (hc == null) { throw new SoapException(string.Format("Case with id='{0}' is not found", Id != 0 ? Id.ToString() : OfflineCaseID), new XmlQualifiedName("id")); } hc.strCaseID = CaseID ?? ""; try { hc.uidOfflineCaseID = new Guid(OfflineCaseID); } catch {} hc.strLocalIdentifier = LocalID; //hc.strLocalIdentifier = LocalIdentifier; hc.datCompletionPaperFormDate = CompletionPaperFormDate; hc.datFacilityLastVisit = FacilityLastVisitDate; hc.datOnSetDate = OnsetDate; if (bSaveNotification) { hc.datNotificationDate = NotificationDate; } hc.TentativeDiagnosis = TentativeDiagnosis == null ? null : hc.TentativeDiagnosisLookup.SingleOrDefault(c => c.idfsDiagnosis == TentativeDiagnosis.Id); hc.datTentativeDiagnosisDate = TentativeDiagnosisDate; hc.FinalDiagnosis = FinalDiagnosis == null ? null : hc.FinalDiagnosisLookup.SingleOrDefault(c => c.idfsDiagnosis == FinalDiagnosis.Id); hc.datFinalDiagnosisDate = FinalDiagnosisDate; hc.intPatientAge = PatientAge.HasValue && PatientAge.Value > 0 ? PatientAge : null; hc.Patient.intPatientAgeFromCase = hc.intPatientAge; hc.Patient.strFirstName = FirstName; hc.Patient.strSecondName = MiddleName; hc.Patient.strLastName = LastName; hc.Patient.HumanAgeType = PatientAgeType == null ? null : hc.Patient.HumanAgeTypeLookup.SingleOrDefault(c => c.idfsBaseReference == PatientAgeType.Id); hc.Patient.Gender = PatientGender == null ? null : hc.Patient.GenderLookup.SingleOrDefault(c => c.idfsBaseReference == PatientGender.Id); hc.CaseProgressStatus = CaseStatus == null ? null : hc.CaseProgressStatusLookup.SingleOrDefault(c => c.idfsBaseReference == CaseStatus.Id); hc.RelatedToOutbreak = RelatedToOutbreak == null ? null : hc.RelatedToOutbreakLookup.SingleOrDefault(c => c.idfsBaseReference == RelatedToOutbreak.Id); hc.PatientLocationType = CurrentLocation == null ? null : hc.PatientLocationTypeLookup.SingleOrDefault(c => c.idfsBaseReference == CurrentLocation.Id); hc.Hospitalization = Hospitalization == null ? null : hc.HospitalizationLookup.SingleOrDefault(c => c.idfsBaseReference == Hospitalization.Id); hc.InitialCaseClassification = CaseClassification == null ? null : hc.InitialCaseClassificationLookup.SingleOrDefault(c => c.idfsReference == CaseClassification.Id); hc.FinalCaseClassification = FinalCaseStatus == null ? null : hc.FinalCaseClassificationLookup.SingleOrDefault(c => c.idfsReference == FinalCaseStatus.Id); hc.PatientState = PatientState == null ? null : hc.PatientStateLookup.SingleOrDefault(c => c.idfsBaseReference == PatientState.Id); hc.Patient.datDateofBirth = DateOfBirth; hc.Patient.Nationality = Citizenship == null ? null : hc.Patient.NationalityLookup.SingleOrDefault(c => c.idfsBaseReference == Citizenship.Id); hc.strNote = AdditionalComment; hc.Outcome = Outcome == null ? null : hc.OutcomeLookup.SingleOrDefault(c => c.idfsBaseReference == Outcome.Id); hc.Patient.CurrentResidenceAddress.Country = CurrentResidence == null || CurrentResidence.Country == null ? null : hc.Patient.CurrentResidenceAddress.CountryLookup.SingleOrDefault(c => c.idfsCountry == CurrentResidence.Country.Id); hc.Patient.CurrentResidenceAddress.Region = CurrentResidence == null || CurrentResidence.Region == null ? null : hc.Patient.CurrentResidenceAddress.RegionLookup.SingleOrDefault(c => c.idfsRegion == CurrentResidence.Region.Id); hc.Patient.CurrentResidenceAddress.Rayon = CurrentResidence == null || CurrentResidence.Rayon == null ? null : hc.Patient.CurrentResidenceAddress.RayonLookup.SingleOrDefault(c => c.idfsRayon == CurrentResidence.Rayon.Id); hc.Patient.CurrentResidenceAddress.Settlement = CurrentResidence == null || CurrentResidence.Settlement == null ? null : hc.Patient.CurrentResidenceAddress.SettlementLookup.SingleOrDefault(c => c.idfsSettlement == CurrentResidence.Settlement.Id); hc.Patient.CurrentResidenceAddress.strStreetName = CurrentResidence == null ? null : CurrentResidence.Street; hc.Patient.CurrentResidenceAddress.strPostCode = CurrentResidence == null ? null : CurrentResidence.ZipCode; hc.Patient.EmployerAddress.Country = EmployerAddress == null || EmployerAddress.Country == null ? null : hc.Patient.EmployerAddress.CountryLookup.SingleOrDefault(c => c.idfsCountry == EmployerAddress.Country.Id); hc.Patient.EmployerAddress.Region = EmployerAddress == null || EmployerAddress.Region == null ? null : hc.Patient.EmployerAddress.RegionLookup.SingleOrDefault(c => c.idfsRegion == EmployerAddress.Region.Id); hc.Patient.EmployerAddress.Rayon = EmployerAddress == null || EmployerAddress.Rayon == null ? null : hc.Patient.EmployerAddress.RayonLookup.SingleOrDefault(c => c.idfsRayon == EmployerAddress.Rayon.Id); hc.Patient.EmployerAddress.Settlement = EmployerAddress == null || EmployerAddress.Settlement == null ? null : hc.Patient.EmployerAddress.SettlementLookup.SingleOrDefault(c => c.idfsSettlement == EmployerAddress.Settlement.Id); hc.Patient.EmployerAddress.strStreetName = EmployerAddress == null ? null : EmployerAddress.Street; hc.Patient.EmployerAddress.strPostCode = EmployerAddress == null ? null : EmployerAddress.ZipCode; hc.Patient.strEmployerName = EmployerName; hc.strCurrentLocation = CurrentLocationName; if (bSaveNotification) { hc.idfSentByOffice = NotificationSentBy.Id; //hc.SentByOffice = NotificationSentBy == null ? null : // hc.SentByOfficeLookup.SingleOrDefault(c => c.idfInstitution == NotificationSentBy.Id); hc.idfSentByPerson = NotificationSentByPerson.Id; //hc.SentByPerson = NotificationSentByPerson == null ? null : // hc.SentByPersonLookup.SingleOrDefault(c => c.idfPerson == NotificationSentByPerson.Id); hc.strSentByFirstName = NotificationSentByFirstName; hc.strSentByPatronymicName = NotificationSentByPatronymicName; hc.strSentByLastName = NotificationSentByLastName; hc.idfReceivedByOffice = NotificationReceivedBy.Id; //hc.ReceivedByOffice = NotificationReceivedBy == null ? null : // hc.ReceivedByOfficeLookup.SingleOrDefault(c => c.idfInstitution == NotificationReceivedBy.Id); hc.strReceivedByFirstName = NotificationReceivedByFirstName; hc.strReceivedByPatronymicName = NotificationReceivedByPatronymicName; hc.strReceivedByLastName = NotificationReceivedByLastName; } hc.Patient.strHomePhone = PhoneNumber; hc.Validation += (sender, args) => { LastErrorDescription = GetErrorMessage(args); throw new SoapException(EidssMessages.GetValidationErrorMessage(args, "en"), new XmlQualifiedName(args.FieldName)); }; ret = acc.Post(manager, hc); if (!ret) { LastErrorDescription = "Unknown error is occured during posting case"; throw new SoapException("Unknown error is occured during posting case", new XmlQualifiedName("post")); } Id = hc.idfCase; CaseID = hc.strCaseID; } return(ret); }