public override int GetHashCode() { int hash = 1; if (Name.Length != 0) { hash ^= Name.GetHashCode(); } if (Description.Length != 0) { hash ^= Description.GetHashCode(); } hash ^= targetResources_.GetHashCode(); if (InsightSubtype.Length != 0) { hash ^= InsightSubtype.GetHashCode(); } if (content_ != null) { hash ^= Content.GetHashCode(); } if (lastRefreshTime_ != null) { hash ^= LastRefreshTime.GetHashCode(); } if (observationPeriod_ != null) { hash ^= ObservationPeriod.GetHashCode(); } if (stateInfo_ != null) { hash ^= StateInfo.GetHashCode(); } if (Category != global::Google.Cloud.Recommender.V1.Insight.Types.Category.Unspecified) { hash ^= Category.GetHashCode(); } if (Etag.Length != 0) { hash ^= Etag.GetHashCode(); } hash ^= associatedRecommendations_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public void MergeFrom(Insight other) { if (other == null) { return; } if (other.Name.Length != 0) { Name = other.Name; } if (other.Description.Length != 0) { Description = other.Description; } targetResources_.Add(other.targetResources_); if (other.InsightSubtype.Length != 0) { InsightSubtype = other.InsightSubtype; } if (other.content_ != null) { if (content_ == null) { Content = new global::Google.Protobuf.WellKnownTypes.Struct(); } Content.MergeFrom(other.Content); } if (other.lastRefreshTime_ != null) { if (lastRefreshTime_ == null) { LastRefreshTime = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } LastRefreshTime.MergeFrom(other.LastRefreshTime); } if (other.observationPeriod_ != null) { if (observationPeriod_ == null) { ObservationPeriod = new global::Google.Protobuf.WellKnownTypes.Duration(); } ObservationPeriod.MergeFrom(other.ObservationPeriod); } if (other.stateInfo_ != null) { if (stateInfo_ == null) { StateInfo = new global::Google.Cloud.Recommender.V1.InsightStateInfo(); } StateInfo.MergeFrom(other.StateInfo); } if (other.Category != global::Google.Cloud.Recommender.V1.Insight.Types.Category.Unspecified) { Category = other.Category; } if (other.Etag.Length != 0) { Etag = other.Etag; } associatedRecommendations_.Add(other.associatedRecommendations_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); }
public override Attrition Build(ChunkData data, KeyMasterOffsetManager o) { Offset = o; ChunkData = data; var result = BuildPerson(PersonRecords.ToList()); var person = result.Key; if (person == null) { Complete = true; return(result.Value); } var obs = ObservationPeriodsRaw.Where(op => op.TypeConceptId > 0).ToArray(); ObservationPeriod[] observationPeriods; if (obs.Length == 0) { observationPeriods = new ObservationPeriod[0]; } else { observationPeriods = BuildObservationPeriods(person.ObservationPeriodGap, ObservationPeriodsRaw.Where(op => op.TypeConceptId > 0).ToArray()) .ToArray(); } if (Excluded(person, observationPeriods)) { Complete = true; return(Attrition.ImplausibleYOBPostEarliestOP); } var visitDetails = BuildVisitDetails(null, VisitOccurrencesRaw.ToArray(), observationPeriods).ToArray(); var visitOccurrences = new Dictionary <long, VisitOccurrence>(); var visitIds = new List <long>(); foreach (var visitOccurrence in BuildVisitOccurrences(VisitOccurrencesRaw.ToArray(), observationPeriods)) { visitOccurrence.Id = Offset.GetKeyOffset(visitOccurrence.PersonId).VisitOccurrenceId; if (!visitOccurrences.ContainsKey(visitOccurrence.Id)) { visitOccurrences.Add(visitOccurrence.Id, visitOccurrence); visitIds.Add(visitOccurrence.Id); } } foreach (var visitDetail in visitDetails) { var vo = GetVisitOccurrence(visitDetail); visitDetail.VisitOccurrenceId = vo?.Id ?? 0; if (visitDetail.VisitOccurrenceId.HasValue && !_visitDetails.ContainsKey(visitDetail.VisitOccurrenceId.Value)) { _visitDetails.Add(visitDetail.VisitOccurrenceId.Value, new List <VisitDetail>()); } _visitDetails[visitDetail.VisitOccurrenceId.Value].Add(visitDetail); } long?prevVisitId = null; foreach (var visitId in visitIds.OrderBy(v => v)) { if (prevVisitId.HasValue) { visitOccurrences[visitId].PrecedingVisitOccurrenceId = prevVisitId; } prevVisitId = visitId; } var conditionOccurrences = BuildConditionOccurrences(ConditionOccurrencesRaw.ToArray(), visitOccurrences, observationPeriods) .ToArray(); foreach (var co in conditionOccurrences) { co.Id = Offset.GetKeyOffset(co.PersonId).ConditionOccurrenceId; } var procedureOccurrences = BuildProcedureOccurrences(ProcedureOccurrencesRaw.ToArray(), visitOccurrences, observationPeriods) .ToArray(); foreach (var procedureOccurrence in procedureOccurrences) { procedureOccurrence.Id = Offset.GetKeyOffset(procedureOccurrence.PersonId).ProcedureOccurrenceId; } var observations = BuildObservations(ObservationsRaw.ToArray(), visitOccurrences, observationPeriods) .ToArray(); foreach (var ob in observations) { ob.Id = Offset.GetKeyOffset(ob.PersonId).ObservationId; } var drugExposures = BuildDrugExposures(DrugExposuresRaw.ToArray(), visitOccurrences, observationPeriods) .ToArray(); var measurements = BuildMeasurement(MeasurementsRaw.ToArray(), visitOccurrences, observationPeriods) .ToArray(); var deviceExposure = BuildDeviceExposure(DeviceExposureRaw.ToArray(), visitOccurrences, observationPeriods) .ToArray(); Console.WriteLine($"PeronsId={person.PersonSourceValue};" + $"cond={conditionOccurrences.Length};" + $"drg={drugExposures.Length};" + $"proc={procedureOccurrences.Length};" + $"mes={measurements.Length};" + $"obser={observations.Length};" + $"dev={deviceExposure.Length};" + $"vo={visitOccurrences.Values.Count};" + $"vd={visitDetails.Length}"); // set corresponding ProviderIds SetProviderIds(drugExposures); SetProviderIds(conditionOccurrences); SetProviderIds(visitOccurrences.Values.ToArray()); SetProviderIds(procedureOccurrences); SetProviderIds(observations); SetProviderIds(visitDetails); SetVisitDetailId(drugExposures, visitOccurrences.Values.ToArray()); SetVisitDetailId(conditionOccurrences, visitOccurrences.Values.ToArray()); SetVisitDetailId(procedureOccurrences, visitOccurrences.Values.ToArray()); SetVisitDetailId(measurements, visitOccurrences.Values.ToArray()); SetVisitDetailId(observations, visitOccurrences.Values.ToArray()); SetVisitDetailId(deviceExposure, visitOccurrences.Values.ToArray()); // push built entities to ChunkBuilder for further save to CDM database AddToChunk(person, null, observationPeriods, new PayerPlanPeriod[0], drugExposures, conditionOccurrences, procedureOccurrences, observations, measurements, visitOccurrences.Values.ToArray(), visitDetails, new Cohort[0], deviceExposure, new Note[0]); Complete = true; return(Attrition.None); }