private Patient ReadCellsForPatient(Patient patient, IRow row, int cellCount) { var stgResolver = new PatientSTGQuestionnaireResolver(_context); for (int cellCursor = 0; cellCursor < cellCount; cellCursor++) { if (row.GetCell(cellCursor, MissingCellPolicy.CREATE_NULL_AS_BLANK) != null) { ReadCell(patient, row, stgResolver, cellCursor); } } var questionnaires = stgResolver.Resolve(); patient.STGQuestionnaires = questionnaires; return(patient); }
private void ReadCell(Patient patient, IRow row, PatientSTGQuestionnaireResolver resolver, int cellIndex) { string header = _headers.ElementAt(cellIndex); string newObjectFields = (string)_dictonary[header]; string propertyValue = row.GetCell(cellIndex, MissingCellPolicy.CREATE_NULL_AS_BLANK).ToString(); if (!string.IsNullOrEmpty(propertyValue) && newObjectFields != null && FirstTwoCellsNotEmpty(row)) { var klassAndField = newObjectFields.Split("."); switch (klassAndField[0]) { case "Patient": string propertyName = klassAndField[1]; if (propertyName == "Gender") { if (propertyValue == "2") { propertyValue = "Male"; } else if (propertyValue == "1") { propertyValue = "Female"; } } SetPatientProperty(patient, propertyName, row, cellIndex, propertyValue); break; case "PatientDiagnosis": if (propertyValue == "1") { var diagnosesResolver = new PatientDiagnosisResolver(patient, _context); var diagnoses = diagnosesResolver.ResolveForName(header, "Underlying Diagnosis"); } break; case "PatientSTGQuestionnaire": string columnName = klassAndField[1]; resolver.SetQuestionnaireProperty(columnName, propertyValue); break; } } }