public ActionResult Resolve() { ConflictPatientMatch model = new ConflictPatientMatch(); try { if (Request.Form["action"] == "cancel") { return(RedirectToAction("Conflict")); } ClientRegistryAdminInterfaceClient client = new ClientRegistryAdminInterfaceClient(); decimal survivor = Decimal.Parse(Request.Form["id"]); if (Request.Form["action"] == "merge" && Request.Form["mrg"] != null) { decimal[] ids = Request.Form["mrg"].Split(',').Select(o => Decimal.Parse(o)).ToArray(); client.Merge(ids, survivor); } client.Resolve(survivor); return(RedirectToAction("View", new { id = survivor })); } catch (Exception e) { Trace.TraceError(e.ToString()); model = new ConflictPatientMatch(); } return(View(model)); }
/// <summary> /// Get conflicts /// </summary> public static Models.ConflictPatientMatch[] GetConflicts(int offset, int count) { try { ClientRegistryAdminInterfaceClient client = new ClientRegistryAdminInterfaceClient(); var conflicts = client.GetConflicts(offset, count, false); Models.ConflictPatientMatch[] retVal = new ConflictPatientMatch[conflicts.count]; if (conflicts == null || conflicts.conflict == null) { return(retVal); } for (int i = 0; i < conflicts.conflict.Length; i++) { ConflictPatientMatch match = new ConflictPatientMatch(); match.Patient = ConvertRegistrationEvent(conflicts.conflict[i].source); match.Matching = new List <PatientMatch>(); foreach (var m in conflicts.conflict[i].matches) { match.Matching.Add(ConvertRegistrationEvent(m)); } retVal[offset + i] = match; } return(retVal); } catch (Exception e) { return(null); } }
/// <summary> /// Show the resolution screen /// </summary> public ActionResult Resolve(Decimal?id) { ConflictPatientMatch model = new ConflictPatientMatch(); try { if (id.HasValue) { model = CrUtil.GetConflict(id.Value); } } catch { } return(View(model)); }
/// <summary> /// Get a particular conflict /// </summary> public static ConflictPatientMatch GetConflict(decimal id) { try { ClientRegistryAdminInterfaceClient client = new ClientRegistryAdminInterfaceClient(); var conflicts = client.GetConflict(id).conflict; var conflict = conflicts[0]; ConflictPatientMatch retVal = new ConflictPatientMatch(); retVal.Patient = ConvertRegistrationEvent(conflict.source); retVal.Matching = new List <PatientMatch>(); foreach (var m in conflict.matches) { retVal.Matching.Add(ConvertRegistrationEvent(m)); } return(retVal); } catch (Exception e) { return(null); } }