Example #1
0
    public Client(
      ClientData client, 
      RiskMap riskMap, 
      IList<ProjectQuestionData> projectQuestions,
      IList<ReferralAgency> referralAgencies) :
        base(client) {

      client.RiskAssessments.Sort(RiskSort);
      riskAssessment_ = new RiskAssessment(client.RiskAssessments, riskMap);

      questions_ = prepareQuestionAnswers(client, projectQuestions);
      referrals_ = prepareReferrals(client, referralAgencies);

      if (client_.Notes == null)
        return;

      generalNote_ = client_.Notes.
        Where(n => n.Type == NoteType.General).
        OrderByDescending(n => n.Timestamp).
        Select(n => n.Text).
        FirstOrDefault();

      timeLine_ = buildTimeLine(client.Notes, client.RiskAssessments, riskMap);
      files_ = client.Notes.
        Where(n => n.Type == NoteType.File).
        OrderByDescending(n => n.Timestamp).
        ToList();
    } // Client
Example #2
0
    } // RiskAssessment

    private void setInitialScores(RiskAssessment initial) {
      foreach (var theme in themeAssessments_) {
        var initialTheme = initial.ThemeAssessments.Where(t => t.Title == theme.Title).Single();
        theme.InitialScore = initialTheme.Score;
        theme.InitialRiskCount = initialTheme.RiskCount;
      } // foreach
    } // setInitialScores
Example #3
0
    } // RiskSort

    private static List<TimelineEntry> buildTimeLine(List<NoteData> notes,
                                                     List<RiskAssessmentData> riskAssessments,
                                                     RiskMap riskMap) {
                                                     Dictionary<DateTime, TimelineEntry> timeLineEntries = new Dictionary<DateTime, TimelineEntry>();

      foreach (var nd in notes.OrderByDescending(n => n.Timestamp)) {
        DateTime date = nd.Timestamp.Date;
        if (!timeLineEntries.Keys.Contains(date))
          timeLineEntries.Add(date, new TimelineEntry(date));
        TimelineEntry tle = timeLineEntries[date];

        if (nd.Type == NoteType.Narrative)
          tle.addNote(nd);
        if ((nd.Type == NoteType.Registered) ||
            (nd.Type == NoteType.Reopen) ||
            (nd.Type == NoteType.DidNotAttend) ||
            (nd.Type == NoteType.Discharged))
          tle.addNote(nd.Text);
        if (nd.Type == NoteType.File)
          tle.addNote("Uploaded " + nd.Text);
        if ((nd.Type == NoteType.Event) ||
            (nd.Type == NoteType.Referral))
          tle.addAction(nd.Text);
      } // foreach note

      foreach (var rad in riskAssessments.OrderByDescending(rad => rad.Timestamp)) {
        DateTime date = rad.Timestamp.Date;
        if (!timeLineEntries.Keys.Contains(date))
          timeLineEntries.Add(date, new TimelineEntry(date));
        TimelineEntry tle = timeLineEntries[date];

        RiskAssessment ra = new RiskAssessment(rad, riskMap);
        tle.addRiskAssessment(ra);
      } // foreach riskassessment

      List<TimelineEntry> timeLine = timeLineEntries.Values.OrderByDescending(tle => tle.Datestamp).ToList();
      if (timeLine.Count > 0) {
        TimelineEntry last = timeLine.Last();
        if (last.RiskScores == null)
          last.defaultRiskScores(riskMap);
        List<TimelineEntry.RiskScore> riskScore = last.RiskScores;
        for (int i = timeLine.Count - 1; i >= 0; --i) {
          TimelineEntry tle = timeLine[i];
          if (tle.RiskScores == null)
            tle.RiskScores = riskScore;
          else
            riskScore = tle.RiskScores;
        } // foreach
      } // if ...
      return timeLine;        
    } // 
Example #4
0
 public void addRiskAssessment(RiskAssessment ra) {
   riskScores_ = ra.ThemeAssessments.
                    Select(ta => new RiskScore { Title = ta.Title, Score = ta.Score }).
                    ToList();
 } // addRiskAssessment