Skip to main content
Every call screens the draft and returns its status and screeningAlerts. See Screening.

Example

Choosing the drug

Identify the treatment by exactly one of id, rxNormId, ndc, upc or name, or start from a templateId, which fills in the drug, sig and dispense. An id resolves exactly. A name that fits several products comes back as an AMBIGUOUS change whose options are the candidate drugs. Resend with the chosen option’s value (a treatment.id). See Changes and choices. Syncing without a patient is a safe lookup that never creates anything. Use it to resolve the drug before you draft.
Always send a templateId or a treatment when you draft. With a patient, a sync may continue a draft the patient already has in progress. If they have several, you get AmbiguousPrescriptionMatch. Resend with the id of the one you mean.

Signing

Signing is the prescriber’s approval of exactly what they reviewed:
  1. Every response includes signing.contentHash, a hash of the prescription’s current clinical content.
  2. Show the prescriber the prescription and its screening alerts.
  3. Send that hash back as signing.signedHash, and send no other changes in the same call.
If the content changed after the prescriber reviewed it, the hashes don’t match. Photon rejects the attempt and returns INVALIDATED_SIGN. Show the prescriber the new content and sign again.
Only a prescriber’s user token can sign. A machine token gets an UnauthorizedError. Most integrations let Prescribe do the signing.

Fields