Skip to end of metadata
Go to start of metadata

Problem Statement

In a case management plan there are generally 5-10 goals under which there are a number of activities that need to take place in order to achieve these goals. Progress is then tracked via the successful completion of activities and eventually the goal. I wonder if there is a relatively simple way to create this extra level in the case component to record the higher goals?

Misc Thoughts (comments invited!)

My initial thought is that this goes back to that "activities are themselves sets of activities", which we didn't implement in 2.2 because custom fields met the need at the time. If we did have that feature, then it's just an activity is complete if either:

  • (the set of subactivities is empty and this activity is complete)
    or
  • (all the subactivities are complete)

With the current feature set, you might be able to model these goals as "timelines" in the xml configuration, and then use the audit report feature to run a report on a specific timeline (goal) to see if all the activities related to that goal are complete. It's a little awkward, but then at least we've found a use for this feature (grin).

Or maybe a custom field "is this activity a goal?", and then you run an advanced search or set up a custom search to report on that. There's no easy way though to see what the subtasks are as part of the UI.

I'd like to keep with the "everything is an activity" theme, which means that goals are activities. This brings up the question of what special features goals have that other activities don't have, or maybe it would work to make every activity potentially a goal. But for now, indulge me in the fantasy that some activities are goals, and some are not.

Users set goals either by adding an activity to a case that is a "set a goal" activity type, or goals could be included in the "timeline" for a case type. Just like other activities, goals have a status, (although it may be wise to think carefully about the option choices for status fields if goals are to be used, since they may do well with slightly different option choices than other activities).

I can think of a few ways to associate a goal with the activities that are part of the achievement of the goal. Here's one. A user creates an activity, and is prompted by a statement like "is this activity working toward a goal?" or "which goal is this activity working toward?". The prompt is displayed next to a drop-down list of the goals that have already been set (i.e. by being added as activities in the case). As the activity is being saved, some magic happens to let the applicable goal(s) know that some activity has been posted in partial fulfillment of them. If the previous status of the goal was "not started" then mabye this changes the status to "partially complete". This complexity might be unnecessary, though. It could be that goals are just always incomplete until someone updates their status to complete. In any event, I think when you open a goal to look at it, you should be able to see which activities
have been linked to it as a result of a user having selected the goal as the one they were trying to achieve in completing the activity that links inbound. At some point a user could decide that based on the activities linked to it that the goal was achieved, and could be marked as such. I'd throw it open for debate about whether the setting of a goal and the achieving of a goal should be displayed as two separate activities, or whether they should be a single one. I think I favor the approach of displaying them separately, because it tells a better story of the case. That may not work in practice, though.

One important question is: do you know in advance which activities will complete a goal, or do you decide on the fly whether an activity in a case is working toward one of the goals that has (previously) been set in a case.   When do you go in and say that "this goal has now been reached".  I think this would be a great set of features, although it seems as though it might be complex to implement.  Setting the goal and then manually adjusting the progress toward it in separate stages seems like a good idea. A goal will usually start with a set of activities but these activities may be changed along the way.

Here's a more practical example of how goals interact with the workflow of case management. A client is assessed and admitted to a service and hence a case begins. Part of the assessment will involve determining client goals that they wish to achieve as part of the service intervention. These can be a combination of life goals and specific goals associated with the service intervention. Therefore they can be short and long term. Goals should also have timeframes ie I would like to achieve this goal within 6 months.

A client will generally have anywhere between 5 and 10 goals that will provide the focus of interventions with the service that they are now a client of. In order to support the client to achieve these goals a series of activities or strategies are developed around each goal that ill outline the steps in achieving each goal. For example

Goal: To secure safe and affordable housing
Strategies/activities to reach the goal:

  1. Register with the social housing department
  2. Research available rental properties
  3. Pay off rental arrears in weekly instalments
  4. Collect references from previous rental accommodation
  5. Successfully maintain a placement in the hostel until accommodation found
  6. Develop skills in cleaning and cooking 7. Develop budget skills etc

In CiviCase it is important that those working with this client can easily differentiate between goal and the activity associated with this goal. Hence a tree structure might be useful.

Success could be measured incrementally based on the number of activities successfully completed. One way of doing this is to have a goal status/progress field associated with the goals where the caseworker can input a some sort of progress measure. This could be like the % rating used in Microsoft Outlook Tasks perhaps. As a case manager or coordinator works with a client, the goals (and the activities under the goals) can change depending on changes in life circumstances and needs. So perhaps there needs to be a way that goals or activities can be modified or marked as no longer relevant.

Sometimes it would be handy to be able to standardise common goals and activity sets in some services so I guess you could also use the current timeline feature here but it would have to be build around goals rather than the whole case perhaps. For example, if the case type is social housing the common goals might be:

  1. find housing
  2. develop living skills
  3. restore family relationships.
    It would be great if you could select these from a drop down list of gaols and then have an automated list of tasks as well that could be then customised for that client.

If the above can be achieved it would dramatically increase the functionality of the civi case component and would better meet the needs of a number of clients that we have that are using CIVI CRM. In my limited knowledge I would think that the easiest modification of 2.2 to enable at least the parent level of goals is to add the extra layer as an activity and to use custom fields to build other aspects such as goal progress.

Sometimes in case management you want to see the "tree" view, where the goals are shown with related activities as subordinate to them, and sometimes you want the "story" view, where all the action on a case is displayed in chronological order. This means that the setting of a goal, the deciding that a goal is x% complete, the deletion of a goal, the modification of a goal, the posting of an activity that relates to a goal, are all in and of themselves activities that happen at a certain time, and under the watch of a particular person.

I'd like to advocate for keeping each of them as a separate form of activity, so that it's possible to construct either the story view or the tree view.

Labels:

Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.