What is FHIR ?

Featured

Working in healthcare domain is completely different experience to me who has worked mostly in Oil and Gas or Manufacturing domain. Lot of terminologies and hyper sensitive data. Every time we take any scenario, any use case, we can directly relate to ourselves. Post Covid, everyone became health cautious, even heard about lot of health related terminologies which were never heard of. For ex. with my limited knowledge, I could never thought of a CT scan of chest as I was always under assumption that if someone has serious head injury then doctors suggest for CT scan 😀.

Anyways its completely different story and I do not want to go through that angle now.

Just wanted to share what I have learned recently in very short span of time

Now a days, as doctor’s prescribe and we go for different tests like, laboratory tests, radiology tests etc and we get the report in a hardcopy document, or in advanced diagnostic centers we also get a soft copy of the same. Now we are expecting much more advanced digital reports. All this data is called as clinical data of the patients.

When we are talking about healthcare domain, below are the various personas,

  • Patient
  • Healthcare team
  • Providers(Clinicians)
  • Payer(Insurance coverage)

Patient’s clinical history data is stored in different formats by different organizations which becomes difficult if we need to refer any data for better diagnosis, better treatment, insurance payments, it was becoming difficult to everyone to understand the data . To address this problem, in US it is mandated to follow a common framework for all healthcare data which is called as FHIR (pronounced as fire). It is been predicted that FHIR standard would be adapted by maximum healthcare organizations and it would be a key in digital transformation projects in IT industry.

With increasing number of health monitoring devices, there is huge data available about patient’s health for better analysis / diagnosis and medical research. And when we talk about the PHI, Patient’s Healthcare Information , it is most sensitive and confidential data we can cater to. Hence when we talk about digital transformation for healthcare , we should always take care of the data interoperability, data security and compliance from the day one.

What is FHIR? Fast Healthcare Interoperability Resources is a open source data framework for healthcare and not a data standard. It is a foundation and API specifications for exchanging the healthcare data models . It consists of tools and servers for building and interacting with those APIs

Open source standard allows the medical community to collaborate and evolve this standard to continue to grow and enhance. It has definitions for exchange the APIs, it gives all the specifications which secures the data transfer of EHI (Electronic health information)

The FHIR API consists of data formats and elements known as resources. Few of the resources are as mentioned in below snippet

Above resources can be exchanged using Application programming interface (API)

For exchanging the resources API uses a modern web based suit of technology including an HTTP based RESTful protocol, JSON and XML

FHIR brings all the asymmetrical Health data from disparate systems together as mentioned in below snippet

  • Standardize semantics and data exchange into a common definition
  • Secure pipeline for Protected Health Information (PHI)
  • Creates consistency across the health ecosystem
Asymmetrical Health Data from Disparate systems

That is it for now on FHIR, keep learning !!

Featured

Updating Entity Reference Power Automate vs Plugin- Owner

In my last blog, I was getting OwnerType as blank. With help of Microsoft community, I understood that we won’t get the OwnerType from the triggering event output. Ideally it should have directly provided, but since it is not provided, let us use the other way around.

Our requirement is to check the Owner type of the Case record and set the same for the task

After the triggering event, I am using “Get a record” step in my flow and the OwnerType value from this step’s output as shown in below snippet

Again here is a tricky thing to remember. If I directly get the OwnerType field from its output in my next step’s expression, again it would be blank. (Not sure why it can’t be used from output in the expression of next step- I may get the reason and some way around and post it)

Hence after getting the record, I need to get that value in a variable as shown in below snippet

Once I have this value in a variable, I can then use it in any expression in next step

if(equals(variables('Ownertype'),'team'),'teams','systemusers')

I thought multiple times if I should use the if else condition which comes in steps Condition, however when I just need to replace the string based on the if condition and rest of the actions are exactly same, then I won’t recommend to use Condition and use branching with same steps. Instead we can use If condition in the expression

Once I use this condition, automatically, it would pick up the OwnerType based on the Case Owner and accordingly assign the same Owner to the Task, be it Team or User, does not matter. For examples, below the owner is Team , hence its setting as Team.

Now another example is a Case where Owner is User.

Task is getting created with same Owner

Lets also check the flow how its executed

In the post we have seen how we can get the Owner from one record and update the same in another record. Let us continue our Power Automate learning in my further posts

Till that time, happy power automating 🙂 Enjoy new learning!

D365 Solutions – some key notes

In my earlier posts, I have written about solution types, solution deployment etc . When we talk about solutions , we might need to go the real practical aspects of it when we start using it or suddenly face some issues about solutions or solution deployment

Suppose you are designing a managed solution that will be deployed to another part of the business. Users may want to customize specific parts of the solution after the solution is installed. Which capability represents a managed property that users can configure. Below are the only properties which can set for the entity

and when we look at OOB entities, nothing can be changed

Hence it does not have the ability to change the display name of a system entity, or reassign a system dashboard or to rename a web resource, but can have the ability to add forms to a custom entity

You create a Publisher and add entities to a solution.
What are two outcomes of this action?
then there would not be any change to the name for existing custom entities that you add to a solution, however option sets that you create as part of the solution use the prefix that indicates the publisher and the name for custom entities that you create as part of the solution use the prefix that indicates the publisher

When we try to delete an entity we can delete the entity only when the entity is part of an unmanaged solution and another unmanaged entity has a lookup field to the entity on one form, or the entity is part of a managed solution and no other items are dependent upon the entity., or the entity is system-defined and no other items are dependent upon the entity. In short the custom entity can be deleted if its part of un managed solution and does not have any dependency on it like the entity is custom and uses a system-defined global option set. Here the option set has dependency on the entity but entity does not have dependency on the option set

Again you plan to delete a custom entity from an unmanaged solution. there is not no need to you must delete the solution that contains the entity or you can only delete the entity from managed solutions or you must delete all records related to the entity from the database. You must remove any dependencies with other objects.

Below are exclusive two statements are for managed solutions and not unmanaged solutions. You cannot export the solution and When you remove the solution, all components items included in the solution are removed.

You export five modified system security roles from a development environment as an unmanaged solution. You solution into a production environment. then the system security roles in production will be overwritten with the settings imported from the solution.

You install a unmanaged solution named SolutionA that has a dependency on another unmanaged solution named SolutionB. In this case I do not think SolutionB and all components that are not dependencies of SolutionA are removed as well as the system prevents you from deleting Solution B and SolutionB and all related components are removed. But the container for SolutionB is removed, but all its components remain.

You can not add following objects to solution – Goals, Queues, Subjects, Duplicate detection rules, system settings

You are a system administrator for an organization that relies solely on an ISV solution for Microsoft Dynamics 365. Your instances are scheduled to be updated. I think two approaches for this would be test the update in your sandbox environments prior to updating production and contact your ISV provider, and follow their recommendation for this update

You have a sandbox instance being used for development purposes at your organization. The URL for this instance https://contosoSBXDEV.crm.dynamics.com. The instance will now be used to test third-party ISV Solutions. You need to ensure that the instance URL will be https://contosoISVtesting.crm.dynamics.com.. Then  you need to edit the URL on the instance properties.