It's really a form of self-regulation - you fill in a form - but you need to justify why you think the app will function as you have said it will, and why that's correct in the first place. We built a chain of documentation. Why do we think the hardware does what we coded? Why do we think what we coded was what we designed? Why do we think what we designed matches what we understand about the clinical policy? Why do we think we understand the clinical policy correctly? Why do we think the clinical policy is correct? For each of those questions we provided evidence and argument.
It looks like the process has been refined since we did it