//private DueCalculationType GetDueCalculationType(string dsioCalcType) //{ // DueCalculationType returnVal = DueCalculationType.Unknown; // Dictionary<string, DueCalculationType> lookup = new Dictionary<string, DueCalculationType>(); // lookup.Add(DsioChecklistItem.InitialCalcType, DueCalculationType.Initial); // lookup.Add(DsioChecklistItem.WeeksGaCalcType, DueCalculationType.WeeksGa); // lookup.Add(DsioChecklistItem.TrimesterGaCalcType, DueCalculationType.TrimesterGa); // lookup.Add(DsioChecklistItem.WeeksPostpartumCalcType, DueCalculationType.WeeksPostpartum); // if (lookup.ContainsKey(dsioCalcType)) // returnVal = lookup[dsioCalcType]; // return returnVal; //} //private ChecklistItemType GetChecklistItemType(string dsioItemType) //{ // ChecklistItemType returnVal = ChecklistItemType.Unknown; // Dictionary<string, ChecklistItemType> lookup = new Dictionary<string, ChecklistItemType>(); // lookup.Add(DsioChecklistItem.MccCallType, ChecklistItemType.MccCall); // lookup.Add(DsioChecklistItem.EdItemType, ChecklistItemType.EducationItem); // lookup.Add(DsioChecklistItem.LabType, ChecklistItemType.Lab); // lookup.Add(DsioChecklistItem.UltrasoundType, ChecklistItemType.Ultrasound); // lookup.Add(DsioChecklistItem.ConsultType, ChecklistItemType.Consult); // lookup.Add(DsioChecklistItem.CdaExchangeType, ChecklistItemType.CdaExchange); // lookup.Add(DsioChecklistItem.VisitType, ChecklistItemType.Visit); // lookup.Add(DsioChecklistItem.OtherType, ChecklistItemType.Other); // if (lookup.ContainsKey(dsioItemType)) // returnVal = lookup[dsioItemType]; // return returnVal; //} private PregnancyChecklistItem GetPatientChecklistItem(DsioPatientChecklistItem dsioItem) { PregnancyChecklistItem returnItem; ChecklistItem baseItem = this.GetChecklistItem(dsioItem); returnItem = new PregnancyChecklistItem(baseItem); returnItem.PatientDfn = dsioItem.PatientDfn; returnItem.PregnancyIen = dsioItem.PregnancyIen; returnItem.ItemDate = VistaDates.ParseDateString(dsioItem.ItemDate, VistaDates.VistADateFormatSix); returnItem.SpecificDueDate = VistaDates.ParseDateString(dsioItem.SpecificDueDate, VistaDates.VistADateOnlyFormat); returnItem.CompletionStatus = dsioItem.CompletionStatus; returnItem.CompleteDate = VistaDates.ParseDateString(dsioItem.CompleteDate, VistaDates.VistADateFormatFour); if (returnItem.CompleteDate == DateTime.MinValue) { if (!string.IsNullOrWhiteSpace(dsioItem.CompleteDate)) { returnItem.CompleteDate = VistaDates.ParseDateString(dsioItem.CompleteDate, VistaDates.VistADateFormatSeven); } } returnItem.CompletionLink = dsioItem.CompletionLink; returnItem.CompletedBy = dsioItem.CompletedBy; returnItem.StoredNote = dsioItem.Note; returnItem.User = dsioItem.User; returnItem.InProgress = (dsioItem.InProgress == "1") ? true : false; returnItem.EducationItemIen = dsioItem.EducationIen; return(returnItem); }
private BrokerOperationResult CompleteItem(PregnancyChecklistItem item) { BrokerOperationResult result = new BrokerOperationResult(); switch (item.ItemType) { // *** For education items, create the education item, and complete the checklist item *** case DsioChecklistItemType.EducationItem: result = ChecklistUtility.CompleteEducationItem( this.DashboardRepository, item.PatientDfn, item.EducationItemIen, item.Ien); break; // *** For all other items, complete the checklist item *** default: result = this.DashboardRepository.Checklist.CompletePregnancyItem(item); break; } // *** Update the next checklist date *** if (result.Success) { result = ChecklistUtility.UpdateNextDates(this.DashboardRepository, item.PatientDfn, item.PregnancyIen); } return(result); }
private PregnancyChecklistItemsResult GetPregnancyItemsInternal(string dfn, string pregIen, string itemIen, DsioChecklistCompletionStatus status) { PregnancyChecklistItemsResult result = new PregnancyChecklistItemsResult(); if (this.broker != null) { DsioGetMccPatientChecklistCommand command = new DsioGetMccPatientChecklistCommand(broker); command.AddCommandArguments(dfn, itemIen, pregIen, status); RpcResponse response = command.Execute(); result.SetResult(response.Status == RpcResponseStatus.Success, response.InformationalMessage); if (result.Success) { result.TotalResults = command.TotalResults; if (command.PatientItems != null) { foreach (DsioPatientChecklistItem dsioItem in command.PatientItems) { PregnancyChecklistItem item = GetPatientChecklistItem(dsioItem); result.Items.Add(item); } } } } return(result); }
private ActionResult PostCancel(PregnancyChecklistIndex model) { PregnancyChecklistItemResult opResult = this.DashboardRepository.Checklist.GetPregnancyItem(model.Patient.Dfn, model.SelectedItemIen); if (!opResult.Success) { this.Error(opResult.Message); } else { PregnancyChecklistItem item = opResult.Item; BrokerOperationResult updateResult = this.DashboardRepository.Checklist.CancelPregnancyItem(item); if (!updateResult.Success) { this.Error(updateResult.Message); } else { // *** Update the next checklist date *** BrokerOperationResult result = ChecklistUtility.UpdateNextDates(this.DashboardRepository, item.PatientDfn, item.PregnancyIen); if (!result.Success) { this.Error("Error updating next dates: " + result.Message); } } } return(RedirectToAction("PregnancyIndex", new { dfn = model.Patient.Dfn, pregIen = model.Pregnancy.Ien, page = model.Paging.CurrentPage })); }
public static BrokerOperationResult CompleteEducationItem(IDashboardRepository repo, string patientDfn, string educationItemIen, string checklistItemIen) { BrokerOperationResult returnResult = new BrokerOperationResult(); // *** Two-step process: // *** (1) Create completed patient education item // *** (2) Complete the checklist item PatientEducationItem patItem = new PatientEducationItem() { PatientDfn = patientDfn, EducationItemIen = educationItemIen, CompletedOn = DateTime.Now }; IenResult saveResult = repo.Education.SavePatientItem(patItem); returnResult.SetResult(saveResult.Success, saveResult.Message); if (saveResult.Success) { PregnancyChecklistItemsResult result = repo.Checklist.GetPregnancyItems(patientDfn, "", checklistItemIen); returnResult.SetResult(result.Success, result.Message); if (result.Success) { if (result.Items != null) { if (result.Items.Count > 0) { PregnancyChecklistItem checkItem = result.Items[0]; checkItem.CompletionStatus = DsioChecklistCompletionStatus.Complete; checkItem.CompletionLink = saveResult.Ien; IenResult ienResult = repo.Checklist.SavePregnancyItem(checkItem); returnResult.SetResult(ienResult.Success, ienResult.Message); if (returnResult.Success) { returnResult = UpdateNextDates(repo, patientDfn, checkItem.PregnancyIen); if (returnResult.Success) { returnResult.Message = "Education item completed"; } } } } } } return(returnResult); }
public BrokerOperationResult CancelPregnancyItem(PregnancyChecklistItem item) { BrokerOperationResult result = new BrokerOperationResult(); item.CompletionStatus = DsioChecklistCompletionStatus.NotNeededOrApplicable; item.InProgress = false; result = this.SavePregnancyItem(item); return(result); }
public BrokerOperationResult CompletePregnancyItem(PregnancyChecklistItem item) { BrokerOperationResult result = new BrokerOperationResult(); item.CompletionStatus = DsioChecklistCompletionStatus.Complete; item.InProgress = false; item.CompleteDate = DateTime.Now; result = this.SavePregnancyItem(item); return(result); }
private ActionResult PostComplete(PregnancyChecklistIndex model) { // *** Update completion status for a pregnancy checklist item *** // *** Create default return action *** ActionResult returnResult = RedirectToAction("PregnancyIndex", new { dfn = model.Patient.Dfn, pregIen = model.Pregnancy.Ien, page = model.Paging.CurrentPage }); // *** Get the item *** PregnancyChecklistItemResult getResult = this.DashboardRepository.Checklist.GetPregnancyItem(model.Patient.Dfn, model.SelectedItemIen); if (!getResult.Success) { this.Error(getResult.Message); } else { // *** Should only be one *** PregnancyChecklistItem item = getResult.Item; BrokerOperationResult opResult; if (item.ItemType == DsioChecklistItemType.MccCall) { if (string.IsNullOrWhiteSpace(item.CompletionLink)) { returnResult = RedirectToAction("Create", "PatientContact", new { @dfn = model.Patient.Dfn, @callType = item.Link, @checkIen = item.Ien }); } else { returnResult = RedirectToAction("Edit", "PatientContact", new { @dfn = model.Patient.Dfn, @noteIen = item.CompletionLink, @checkIen = item.Ien }); } } else { opResult = CompleteItem(item); if (opResult.Success) { this.Information(opResult.Message); } else { this.Error(opResult.Message); } } } return(returnResult); }
public BrokerOperationResult SetPregnancyItemInProgress(PregnancyChecklistItem item) { BrokerOperationResult result = new BrokerOperationResult(); if (item.CompletionStatus == DsioChecklistCompletionStatus.NotComplete) { item.InProgress = true; result = this.SavePregnancyItem(item); } else { result.Message = "Item has already been completed"; } return(result); }
public IenResult SavePregnancyItem(PregnancyChecklistItem item) { IenResult result = new IenResult(); if (this.broker != null) { DsioSaveMccPatChecklistCommand command = new DsioSaveMccPatChecklistCommand(broker); DsioChecklistItem dsioItem = GetDsioChecklistItem(item); DsioPatientChecklistItem patItem = new DsioPatientChecklistItem(dsioItem); patItem.PatientDfn = item.PatientDfn; patItem.PregnancyIen = item.PregnancyIen; if (item.SpecificDueDate != DateTime.MinValue) { patItem.SpecificDueDate = Util.GetFileManDate(item.SpecificDueDate); } patItem.CompletionStatus = item.CompletionStatus; patItem.CompleteDate = Util.GetFileManDate(item.CompleteDate); patItem.CompletionLink = item.CompletionLink; patItem.CompletedBy = item.CompletedBy; patItem.Note = item.StoredNote; patItem.InProgress = (item.InProgress) ? "1" : "0"; // *** These items not saved - generated internally *** //patItem.User = item.User; //patItem.ItemDate = Util.GetFileManDate(item.ItemDate); command.AddCommandArguments(patItem); RpcResponse response = command.Execute(); result.SetResult(response.Status == RpcResponseStatus.Success, response.InformationalMessage); if (result.Success) { result.Ien = command.Ien; } } return(result); }
private ActionResult PostInProgress(PregnancyChecklistIndex model) { PregnancyChecklistItemResult opResult = this.DashboardRepository.Checklist.GetPregnancyItem(model.Patient.Dfn, model.SelectedItemIen); if (!opResult.Success) { this.Error(opResult.Message); } else { PregnancyChecklistItem item = opResult.Item; BrokerOperationResult updateResult = this.DashboardRepository.Checklist.SetPregnancyItemInProgress(item); if (!updateResult.Success) { this.Error(updateResult.Message); } } return(RedirectToAction("PregnancyIndex", new { dfn = model.Patient.Dfn, pregIen = model.Pregnancy.Ien, page = model.Paging.CurrentPage })); }
public BrokerOperationResult AddDefaultPregnancyItems(string dfn, string pregIen) { BrokerOperationResult result = new BrokerOperationResult(); ChecklistItemsResult getResult = this.GetItems("", 1, 1000); if (string.IsNullOrWhiteSpace(dfn)) { result.Message = "The patient could not be identified"; } else { if (string.IsNullOrWhiteSpace(pregIen)) { result.Message = "The pregnancy could not be identified"; } else { if (!getResult.Success) { result.SetResult(getResult.Success, getResult.Message); } else { if (getResult.Items != null) { if (getResult.Items.Count == 0) { result.SetResult(false, "There are no default checklist items to add"); } else { foreach (ChecklistItem item in getResult.Items) { PregnancyChecklistItem patItem = new PregnancyChecklistItem(item); patItem.PatientDfn = dfn; patItem.PregnancyIen = pregIen; patItem.CompletionStatus = DsioChecklistCompletionStatus.NotComplete; patItem.Ien = ""; if (item.DueCalculationType == DsioChecklistCalculationType.Initial) { patItem.SpecificDueDate = DateTime.Now; } IenResult saveResult = this.SavePregnancyItem(patItem); if (!saveResult.Success) { result.SetResult(saveResult.Success, saveResult.Message); break; } else { result.SetResult(saveResult.Success, saveResult.Message); } } } } } } } return(result); }