public void ProcessPerformanceOutcomeMeasure(Admission admission, PerformanceOutcomeMeasure outcomeMeasure) { if (admission.PerformanceOutcomeMeasures.Any(p => p.SourceRecordIdentifier == outcomeMeasure.SourceRecordIdentifier)) { //same record so just replace it. var existingPerf = admission.PerformanceOutcomeMeasures.Where(p => p.SourceRecordIdentifier == outcomeMeasure.SourceRecordIdentifier).FirstOrDefault(); int id = admission.PerformanceOutcomeMeasures.IndexOf(existingPerf); outcomeMeasure.Admission_SourceRecordIdentifier = admission.SourceRecordIdentifier; admission.PerformanceOutcomeMeasures[id] = outcomeMeasure; return; } if (admission.PerformanceOutcomeMeasures.Any(p => p.PerformanceOutcomeMeasureDate == outcomeMeasure.PerformanceOutcomeMeasureDate)) { //complex data merge here. return; } //last option outcomeMeasure.Admission_SourceRecordIdentifier = admission.SourceRecordIdentifier; admission.PerformanceOutcomeMeasures.Add(outcomeMeasure); }
public void ProcessPerformanceOutcomeMeasure(Discharge discharge, PerformanceOutcomeMeasure outcomeMeasure) { if (discharge.PerformanceOutcomeMeasures == null) { discharge.PerformanceOutcomeMeasures = outcomeMeasure; return; } if (discharge.PerformanceOutcomeMeasures.SourceRecordIdentifier == outcomeMeasure.SourceRecordIdentifier) { //same record so just replace it. discharge.PerformanceOutcomeMeasures = outcomeMeasure; return; } if (discharge.PerformanceOutcomeMeasures.PerformanceOutcomeMeasureDate != outcomeMeasure.PerformanceOutcomeMeasureDate) { //complex data merge here. return; } //last option discharge.PerformanceOutcomeMeasures = outcomeMeasure; }