Indbakke: mail og API
Ordre-mail
Under Indstillinger → Mail vælger laboratoriet sin egen ordre-adresse, fx
smilelab@mail.toothlab.io. Giv adressen videre til jeres klinikker — en klinik,
der bruger flere laboratorier, styrer med adressen præcis, hvem ordren lander
hos. Mailen bliver automatisk til en sag:
- Afsenderens e-mail skal stå på kunden under Kunder. Kommer mailen fra en ukendt adresse, gemmes den som "Ikke genkendt" og bliver ikke til en sag — listen nederst på Indstillinger → Mail viser de seneste indgående mails, så I kan se den, tilføje adressen på kundekortet og bede om, at mailen sendes igen.
- Emnet kan indeholde
patient: X(ogsåpt:,journal:ellerid:). Så bliver X patientens journalreference. Ellers får sagen et midlertidigt MAIL-nummer, som I retter bagefter. Ligner X et CPR-nummer, gemmes det ikke: sagen får MAIL-nummeret, og der står i bemærkningerne, at Patient-ID'et i emnet lignede et CPR og blev udeladt. - Vedhæftninger lægges på sagen og virusscannes, før de bliver synlige.
- Sagen oprettes som Modtaget på første trin med arbejdstypen "Andet" og mailens tekst i bemærkningerne. Ret arbejdstype, tænder og frist bagefter.
- Er en 3Shape-ordre vedhæftet (en
.3oxeller en zip af ordremappen), udfyldes sedlen i stedet automatisk — se Importér 3Shape-ordrer. Klinikkens 3Shape-id bliver husket, så en senere ordre fra samme klinik også kan lægges ind som fil. - Skriver tandlægen et CPR-nummer i mailen, fjernes det, før teksten gemmes. Vi opbevarer aldrig CPR.
Den fælles adresse ordre@mail.toothlab.io virker stadig, men kun når afsenderen
entydigt hører til ét laboratorium — er afsenderen kunde hos flere, skal jeres
egen adresse bruges (eller ordre+<de 8 første tegn af lab-id>@…).
API-nøgler
Under Indstillinger → API opretter I nøgler til mappe-vagt på scanner-pc'en, scanner-software eller økonomisystem. Giv nøglen et navn, tryk Opret nøgle, og kopiér den straks — den vises kun én gang. Listen viser navn, nøglens første tegn og hvornår den sidst blev brugt. Tilbagekald slår nøglen fra permanent. Nøglen sendes som Authorization: Bearer tf_… og giver kun adgang til jeres egen organisations data.
De tre kald
Liste over sager (valgfrit status og limit, højst 500):
curl -H "Authorization: Bearer tf_…" \
"https://toothlab.io/api/v1/cases?status=received"
Opret en sag på en kunde (clientEmail skal være den e-mail, der står på kundekortet — alternativt labClientId; journalRef er påkrævet):
curl -H "Authorization: Bearer tf_…" -H "Content-Type: application/json" \
-d '{"clientEmail":"bo@klinik.dk","journalRef":"P-12","workType":"Krone","teeth":[16],"material":"Zirkonia","dueDate":"2026-09-10"}' \
https://toothlab.io/api/v1/cases
Læg en fil på sagen (multipart, feltet hedder file; GET på samme adresse lister filerne med status og sha256):
curl -H "Authorization: Bearer tf_…" \
-F file=@scan.stl \
https://toothlab.io/api/v1/cases/<id>/files
Importér en hel 3Shape-ordre (multipart; send hver fil i ordremappen som en
file-del, eller én zip). clientEmail er kun nødvendig første gang en klinik
optræder — derefter routes ordren på klinikkens 3Shape-id:
curl -H "Authorization: Bearer tf_…" \
-F clientEmail=bo@klinik.dk \
-F file=@2490963853_20251208.3ox -F file=@74d1b057.dcm -F file=@c317ac58.dcm \
https://toothlab.io/api/v1/cases
Svaret rummer sagen, de danske filnavne og hvad der blev kasseret. Er ordren
importeret før, svarer kaldet 200 med "duplicate": true og den eksisterende
sag i stedet for at oprette en tvilling.
Filer uploadet via API'et virusscannes som alle andre og bliver først synlige, når de er kontrolleret.