public PatientSurgery Resolve() { var patientSurgery = new PatientSurgery(); var surgeriesNames = _context.Surgeries.Select(s => s.Name).ToList(); var surgeriesRegex = RegularExpressions.FindWordInList(surgeriesNames); var surgeryMatches = surgeriesRegex.Matches(_surgeryCellValue); var surgeryFieldYearMatches = RegularExpressions.ValidYear().Matches(_surgeryCellValue); if (surgeryMatches.Count > 0) { string matchedSurgeryName = surgeryMatches[0].ToString(); Surgery dbSurgery = FindSurgeryByName(matchedSurgeryName); if (dbSurgery == null) { return(null); } patientSurgery.SurgeryId = dbSurgery.ID; if (NotesCellValueIsNotBlank()) { patientSurgery.Note = notesCellValue(); } FindAndSetYearInSurgeryColumns(patientSurgery, surgeryFieldYearMatches); } return(patientSurgery); }
private void ReadCell(Patient patient, IRow row, int cellCursor) { string header = _headers.ElementAt(cellCursor); string newObjectFields = (string)_dictonary[header]; string propertyValue = row.GetCell(cellCursor, MissingCellPolicy.CREATE_NULL_AS_BLANK).ToString(); if (string.IsNullOrEmpty(propertyValue)) { return; } switch (header) { case "OtherDiagnosisAndNotes": SetPatientGenericNote(patient, propertyValue); break; case "HasLungSurgery": var surgeryResolver = new ManARTSPatientSurgeryResolver(_context, propertyValue, row, _headers); PatientSurgery surgery = surgeryResolver.Resolve(); if (surgery != null) { surgery.PatientId = patient.ID; _context.PatientSurgeries.Add(surgery); Imported.Add(surgery); _context.SaveChanges(); } break; } }
private void FindYearForSurgery(PatientSurgery patientSurgery) { Match matchesYear = RegularExpressions.ValidYear().Match(_potentialSurgery); if (matchesYear.Success) { patientSurgery.SurgeryDate = Int32.Parse(matchesYear.ToString()); } }
public async Task <HttpResponseMessage> AddPatientSugery(PatientSurgery_Custom model) { PatientSurgery psurgery = new PatientSurgery(); try { if (model.bodyPart == null || model.bodyPart == "") { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Invalid surgery name." }); return(response); } if (model.patientID == null || model.patientID == 0) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Invalid patient id." }); return(response); } psurgery = db.PatientSurgeries.Where(p => p.bodyPart.Trim() == model.bodyPart.Trim() && p.patientID == model.patientID && p.active == true).FirstOrDefault(); if (psurgery != null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Surgery already exists." }); response.ReasonPhrase = "Surgery already exists."; return(response); } if (psurgery == null) { psurgery = new PatientSurgery(); psurgery.active = true; psurgery.bodyPart = model.bodyPart; psurgery.patientID = model.patientID; psurgery.cd = System.DateTime.Now; psurgery.reportedDate = System.DateTime.Now; psurgery.cb = model.patientID.ToString(); db.PatientSurgeries.Add(psurgery); await db.SaveChangesAsync(); } } catch (Exception ex) { return(ThrowError(ex, "AddPatientSurgery in PatientSurgeriesController.")); } response = Request.CreateResponse(HttpStatusCode.OK, new ApiResultModel { ID = psurgery.surgeryID, message = "" }); return(response); }
private PatientSurgery GetPatientSurgeriesFromWord(Patient patient, string potentialSurgery) { var dataResolver = new EPRDocxPatientSurgeryResolver(potentialSurgery, patient, _context); PatientSurgery surgery = dataResolver.ResolveSurgery(); if (surgery != null) { _surgeries.Add(surgery); } return(surgery); }
public async Task <HttpResponseMessage> EditPatientSugery(long surgeryID, PatientSurgery_Custom model) { PatientSurgery psurgery = new PatientSurgery(); try { if (model.bodyPart == null || model.bodyPart == "" || !Regex.IsMatch(model.bodyPart.Trim(), "^[0-9a-zA-Z ]+$")) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Invalid surgery. Only letters and numbers are allowed." }); return(response); } if (model.patientID == null || model.patientID == 0) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Invalid patient id." }); return(response); } psurgery = db.PatientSurgeries.Where(all => all.bodyPart.Trim() == model.bodyPart.Trim() && all.surgeryID != surgeryID && all.active == true).FirstOrDefault(); if (psurgery != null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Surgery already exists." }); response.ReasonPhrase = "Surgery already exists."; return(response); } psurgery = db.PatientSurgeries.Where(m => m.surgeryID == surgeryID).FirstOrDefault(); if (psurgery == null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Surgery not found." }); return(response); } psurgery.bodyPart = model.bodyPart; psurgery.md = System.DateTime.Now; psurgery.mb = psurgery.patientID.ToString(); db.Entry(psurgery).State = EntityState.Modified; await db.SaveChangesAsync(); } catch (Exception ex) { return(ThrowError(ex, "EditPatientSurgery in PatientSurgeriesController.")); } response = Request.CreateResponse(HttpStatusCode.OK, new ApiResultModel { ID = surgeryID, message = "" }); return(response); }
private PatientSurgery BuildSurgeryForPatient(string matchingSurgery) { var patientSurgery = new PatientSurgery(); var dbSurgery = _context.Surgeries.Where(s => s.Name.Equals(matchingSurgery)) .FirstOrDefault(); if (dbSurgery == null) { return(null); } patientSurgery.Surgery = dbSurgery; patientSurgery.Note = _potentialSurgery; FindYearForSurgery(patientSurgery); return(patientSurgery); }
private void FindAndSetYearInSurgeryColumns(PatientSurgery patientSurgery, MatchCollection surgeryFieldYearMatches) { if (FoundMatchInSurgeryColumn(surgeryFieldYearMatches)) { int intYear = Int32.Parse(surgeryFieldYearMatches[0].ToString()); patientSurgery.SurgeryDate = intYear; } else if (YearCellValueIsNotBlank()) { var yearFieldYearMatches = RegularExpressions.ValidYear().Matches(yearCellValue()); if (yearFieldYearMatches.Count > 0) { int intYear = Int32.Parse(yearFieldYearMatches[0].ToString()); patientSurgery.SurgeryDate = intYear; } } }
internal PatientSurgery ResolveSurgery() { PatientSurgery patientSurgery = null; var matchingSurgery = FindMatchingSurgeriesInDatabase(); PatientSurgery databaseSurgery = CheckIfMatchingSurgeryAlreadyExists(matchingSurgery); if (databaseSurgery == null && matchingSurgery != null) { patientSurgery = BuildSurgeryForPatient(matchingSurgery); _patient.PatientSurgeries.Add(patientSurgery); _context.PatientSurgeries.Add(patientSurgery); } else if (databaseSurgery != null && matchingSurgery != null) { patientSurgery = databaseSurgery; } return(patientSurgery); }
public async Task <HttpResponseMessage> RemovePatientSurgery(long surgeryID) { try { if (surgeryID == 0) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Invalid surgery ID." }); return(response); } PatientSurgery psurgery = await db.PatientSurgeries.FindAsync(surgeryID); if (psurgery == null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Surgery not found." }); return(response); } else { psurgery.active = false;//Delete Operation changed psurgery.mb = psurgery.patientID.ToString(); psurgery.md = System.DateTime.Now; db.Entry(psurgery).State = EntityState.Modified; await db.SaveChangesAsync(); } } catch (Exception ex) { return(ThrowError(ex, "DeletePatientSurgery in PatientSurgeriesController.")); } response = Request.CreateResponse(HttpStatusCode.OK, new ApiResultModel { ID = surgeryID, message = "" }); return(response); }