An emergency mental health hold is two forms. A short-term certification is four. An extended certification is three more, one of which repeats most of the first. Across a single admission a clinician can write the same patient's name, date of birth, address, and medical record number a dozen times, on paper, by hand, while the patient waits and the unit is short-staffed and it is somewhere after two in the morning.
Every one of those repetitions is a chance to transpose two digits of a date of birth, name the wrong county, cite the wrong court, or leave the one signature line that makes the filing valid empty. When that happens the packet comes back — and a packet that comes back is a person held on defective paperwork.
This tool exists to make that a single act of typing. Enter the patient once, pick the workflow, and the packet comes out composed in filing order, with the fields that carry legal weight checked before anything is printed.
What it is
A packet builder for the statutory paperwork behind involuntary and voluntary psychiatric admission — emergency holds, certifications for short-term and long-term treatment, transfers, terminations, transport orders, and minor admissions.
It fills the state's own blank forms directly, resolves a patient's address to the county and that county to its filing court, and refuses to generate while a legally material field is still empty. It keeps saved profiles for the people and facilities you file under, so colleagues and hospitals are picked from a list rather than recalled from memory.
What it is not
This tool does not practise medicine or law
It does not decide whether a hold, a certification, or a petition is warranted, and it makes no clinical or legal determination of any kind. Those judgments belong to the clinician, and the clinician who signs a form is responsible for everything on it.
It is not affiliated with, endorsed by, or maintained by any state behavioral health agency, any judicial branch, or any hospital or health system. The blank forms belong to the states that publish them; the assembly around them is this project's.
Statutes, forms, court assignments and judicial rosters change. Before filing, confirm that what you are holding is the version your court currently requires.
How patient data is handled
This handles protected health information at institutions where a hosted service would need a business associate agreement, a vendor security review, and — at a federal facility — an authorization process that would outlast the tool's usefulness.
The way around all of it is to not be that kind of service. Patient details never leave the browser. The page downloads blank state forms and fills them on the machine you are sitting at; there is no upload, no backend that could receive one, and no analytics, advertising, or third-party script on any page of this site.
That claim is enforced by the browser rather than asserted in a policy.
Every page is served under a content security policy of
connect-src 'self' and form-action 'none', which
means the page is structurally incapable of transmitting to anywhere else,
and there is no endpoint on this origin that would accept a patient record
if it somehow tried.
The full accounting — including the two things that genuinely do change when a tool is hosted rather than run from a local file — is in the Privacy Policy.
It keeps working when the network doesn't
A hold gets written at three in the morning on a unit where the wifi drops. So after your first visit the whole application — code, blank forms, county data — is cached on the workstation by the browser itself, and it opens whether or not there is a network. Nothing about that requires a server to be reachable, and nothing about it sends anything anywhere.
How access works
Accounts belong to clinical sites, not to individuals. Once a site is set up, any clinician with a work email address at that site's domain can sign in — no account has to be created for them in advance, and no administrator has to approve anything at two in the morning.
Signing in means entering your work email and typing back the six-digit code that arrives in your inbox. There is no password, deliberately: a password on a shared nursing-station workstation is a password written on that workstation.
Signing in does two things. It puts your own name, credentials, and license number into the forms without your typing them, and it lets you pick a colleague from your site's roster when a packet needs a second certifier — which is the retyping that hurts most, because it happens at the hour when recalling a colleague's license number is hardest.
The identity service knows who is filling out the forms. It never knows who the forms are about — staff details and patient details are stored in completely different places, and only the first of them is stored at all.
Privacy and terms
Everything needed to understand and evaluate Hold Packet is collected here. The detailed policies remain separate documents so they are easy to read, cite, and update without mixing legal language into the project story.
Who makes this
This is an independent project built and maintained by Form Packet, originally for inpatient psychiatry at the University of Colorado Hospital, with Denver Health and the Rocky Mountain Regional VA Medical Center as the next intended sites.
It is not a company and not a product. It was written because the paperwork was genuinely making the work worse, and it is shared with other sites because the paperwork is the same everywhere in the state.
Accuracy, and how it is checked
Correctness here is not a matter of good intentions. Every blank form is content-addressed, so the build knows exactly which revision of which PDF it used. Field placement is verified against the rendered output rather than assumed from the form definitions. The full test suite runs before any deploy, and a failing test blocks the deploy rather than raising a warning.
Every generated packet carries the app version and the identity of the exact form set it was built from in its document properties, so a packet found in a file six months from now can be traced back to what produced it.
None of that makes the output correct for your court. It makes the output reproducible, which is what lets an error be found and fixed once rather than argued about.
Reporting a problem, or asking for another state
If a field lands in the wrong place, a county maps to the wrong court, a form is out of date, or a packet is missing something your court requires, please say so — that is the single most useful thing anyone can send.
If you work outside Colorado and would use this, that is worth hearing too. Which state, and which forms cost you the most time, is the useful version of that message.
Use the contact and feedback form
Please do not include any patient information in that message. A form name, a field name, and a description of what was wrong is enough.