Provider-driven pre-visit
Endpoint: POST /v1/sessions/previsit/provider
Use this when a staff member (front-desk, nurse, or doctor) fills the form while the patient is present — on a clinic tablet, front-desk PC, or your internal portal.
The request body and response are identical to the patient-driven route. The difference is:
- The generated form is rendered in clinician mode (more clinical language, fewer explanatory notes)
ui_typein the response is"clinician"instead of"patient"
Minimal request
Section titled “Minimal request”curl -X POST https://api.snowmed.io/v1/sessions/previsit/provider \ -H "Authorization: Bearer sn_live_your_key" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: appt-12345-provider-intake" \ -d '{ "patient": { "name": "Priya S" }, "clinic": { "doctor": "Dr. Padmavathi", "display_name": "Sunrise Clinic" } }'const res = await fetch("https://api.snowmed.io/v1/sessions/previsit/provider", { method: "POST", headers: { "Authorization": `Bearer ${process.env.SNOW_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": `appt-${appointmentId}-provider-intake`, }, body: JSON.stringify({ patient: { name: "Priya S" }, clinic: { doctor: "Dr. Padmavathi", display_name: "Sunrise Clinic" }, }),})const session = await res.json()// Open session.session_url on a clinic tabletimport requests, os
resp = requests.post( "https://api.snowmed.io/v1/sessions/previsit/provider", headers={ "Authorization": f"Bearer {os.environ['SNOW_API_KEY']}", "Idempotency-Key": f"appt-{appointment_id}-provider-intake", }, json={ "patient": {"name": "Priya S"}, "clinic": {"doctor": "Dr. Padmavathi", "display_name": "Sunrise Clinic"}, },)resp.raise_for_status()session = resp.json()# Open session["session_url"] on a clinic tabletimport okhttp3.*;import org.json.*;
OkHttpClient client = new OkHttpClient();
String body = new JSONObject() .put("patient", new JSONObject().put("name", "Priya S")) .put("clinic", new JSONObject() .put("doctor", "Dr. Padmavathi") .put("display_name", "Sunrise Clinic")) .toString();
Request request = new Request.Builder() .url("https://api.snowmed.io/v1/sessions/previsit/provider") .post(RequestBody.create(body, MediaType.get("application/json"))) .addHeader("Authorization", "Bearer " + System.getenv("SNOW_API_KEY")) .addHeader("Idempotency-Key", "appt-" + appointmentId + "-provider-intake") .build();
try (Response response = client.newCall(request).execute()) { JSONObject session = new JSONObject(response.body().string()); String sessionUrl = session.getString("session_url"); // Open sessionUrl on a clinic tablet}When to use which mode
Section titled “When to use which mode”| Scenario | Use |
|---|---|
| Clinic sends link to patient via SMS/WhatsApp before appointment | previsit/patient |
| PHR app lets patients fill history on their phone | previsit/patient |
| Front-desk staff collects history at check-in on clinic tablet | previsit/provider |
| Nurse fills vitals + history on a ward PC | previsit/provider |
| Telehealth intake — patient on a phone call, staff types responses | previsit/provider |