Junction Object/VAF Module for Related Objects and Their Properties

I was hoping to get a sense of whether or not I'm headed in the right direction with a request that I recently received from some under user teams for our M-Files Desktop Environments. We primarily work with Health Care data so one of our main Parent Objects is a Patient/Member, with Document's being a child of the Patient. During the enrollment process for our Patients there are several assessments and State/Federal forms and applications that need to be completed. Sometimes they need to be completed more than once and even yet some of the forms/applications need to be completed annually. Our enrollment team recently requested that the Start and End/Expiration dates of these documents be displayed directly on the Patient object. My initial thought was that this would be easy enough to develop as a VAF module, with a Configuration Editor to control which documents and their dates should populate into the associated Patient's fields after the Create and Checkin events. (e.g., Document Class A is associated with Properties X and Y on the Patient, Document Class B is associated Property Z on the Patient, etc.)

What I was hoping to get some input or insight on is whether I'm over engineering this and there is some out of the box functionality that already exists within M-Files Desktop? The data model that I've inherited and is very flat. An ongoing project for myself and my team is making it more relational and moving a lot of the Patient properties into separate objects with associated workflows. I think this could solve some of the use cases they presented, but some of their processes have enough variability that I still see some use in just being able to set parameters for something like Source Class, Source Key Field, Source Property, Target Property, and then some additional fields to dictate behavior (e.g., Always update the Parent value is New date is greater than Current date value, always update date value, etc.) and just have this always run regardless of any object of workflow state. 

  • If I understand the scenario correctly, this can likely be addressed with the free add-on modules Property Calculator and Managed Properties (part of Compliance Kit).

    Implementing this solution will require a fair amount of configuration, and the exact steps will depend on your current vault setup and specific requirements. At a high level, the approach would be:

    1. Use the Managed Properties module to automatically create references from the Patient object to related documents whenever new documents are added for that patient. The result is a multi-select property on the Patient metadata card listing the relevant documents. These references will be necessary for the next step.

    2. Configure the Property Calculator to copy values from the documents to the Patient object based on defined criteria. The Property Calculator is highly flexible and can even perform comparisons across documents (for example, retrieving the earliest date from a specific property among documents listed in a multi-select property). You will likely need to create multiple rules to accommodate the requirements for each document class and property.

    3. By default, the Patient properties updated in the previous step will only refresh when the Patient object itself changes. To ensure updates occur when the patient documents are modified, you can configure an additional Property Calculator rule to trigger a recalculation on the Patient object.

    This is an advanced configuration. If you are not familiar with these add-ons, I recommend contacting your M-Files representative for assistance. However, if you would like to explore this further on your own, the following resources provide detailed guidance:

  • Joonas,

    I'm somewhat familiar with the Compliance Kit, thankfully mostly with the Managed Properties calculator so I should be able to figure this out on my own. I had initially looked at this module, but I thought the blocker would be that I'd need to update the patient object to have the related values automatically populate, the use cases I was presented with wouldn't always have the patient object be updated or at least not in a short enough period to be sufficient. (e.g., Users don't want to update a property on the patient object to just see the correct date value for a document) I didn't know about setting additional property rules, so I'll have a look at the documentation you provided. If all else fails, I'll contact our rep. The VAF is simple enough to implement, but obviously if the Compliance Kit can handle something like this, I'd rather save the time and engineering effort. Thank You!

  • In property calculator and compliance kit -> managed properties you can add additional conditons to not copy information from an object to another immediately. Property Calculator and Managed Properties will wait until all the conditons were met.