Answers a sample of this template's fields against a real patient chart WITHOUT persisting
anything — no run, no answers, no document, no analytics event claiming a fill happened.
Carries canAccessPatient rather than a template gate: unlike every other procedure in this
router it reads a patient's chart. The form, its org and every chosen contact are authorized
inside the service by the SAME checks startFormFillRun runs.
It runs INLINE, which is why the field cap exists. An uncapped session stays inline by chunking:
annotationIds bounds each call to one chunk of the output's aiFieldIds, and a final
renderAnswers call draws the accumulated answers into ONE PDF. The server remembers nothing
between calls, so the client carries the answers.
Answers a sample of this template's fields against a real patient chart WITHOUT persisting anything — no run, no answers, no document, no analytics event claiming a fill happened.
Carries
canAccessPatientrather than a template gate: unlike every other procedure in this router it reads a patient's chart. The form, its org and every chosen contact are authorized inside the service by the SAME checksstartFormFillRunruns.It runs INLINE, which is why the field cap exists. An uncapped session stays inline by chunking:
annotationIdsbounds each call to one chunk of the output'saiFieldIds, and a finalrenderAnswerscall draws the accumulated answers into ONE PDF. The server remembers nothing between calls, so the client carries the answers.