Sälma → ELVIS: remissregistrering
Skelett-flöde för att registrera remisser från Sälma (webbapp i Edge) i ELVIS SU (Windows-app). Portat från en tidigare AutoHotkey-prototyp.
- Flöde:
data/flows/salma-elvis.json(Main + subgraferna Uppdatera Sälmaoch Specialhantering). Ligger i den gitignorerade
data/-mappen eftersom det refererar riktiga vårdenheter. - Data:
data/exports/salma_config.json(översättningstabell, specialfall,fasta värden, fältordning) och
data/exports/salma_avsandare.json(avsändarnamn → nummer, byggs på automatiskt av flödet).
Regenerera bägge med config.json som källa: python scripts/build_salma_flow.py. OBS: det skriver över data/flows/salma-elvis.json – kör bara om när du medvetet vill börja om från skelettet (dina selector-ändringar försvinner då).
Vad flödet gör
- Ärendenummer ur Edge-adressen (
read_url+ regex). - Grupp / Specialitet ur Sälma (
extract_text– selectors är TODO). - Specialfall?
lookupispecialWorkflows. Träff → subgrafenSpecialhantering (visar instruktion, OCR:ar personnr/datum, stänger ärendet i Sälma – aldrig in i ELVIS).
- Ohanterad grupp?
lookupiunsupportedGroups. Träff →stopmed etttydligt meddelande.
- Remiss-PDF: öppna Filer-fliken, ladda ner PDF:en (
save_attachment). - OCR (
ocr_read source=pdf, winocr + sv-SE): personnummer, remissdatum,läkare, avsändare. Inskannade PDF:er OCR:as sida för sida; PDF:er med textlager läses direkt.
- Översättning:
lookupitranslationTable({grupp}|{spec}) → team,orsak, vårdnivå. Fasta värden (typ av vårdbegäran, avvikande avtal, betalarkod) ur
salma_config.json. - Avsändarnummer:
lookupisalma_avsandare.json. Ingen träff →prompt inputfrågar efter numret ochmerge_jsonsparar det till nästa gång. - Granska:
prompt fieldsvisar alla värden redigerbara – rätta OCR-fel här. - Fyll ELVIS:
desktop_connect+!nb+ en{TAB}+desktop_press_keyper fält i
fieldOrder(Ankomstdatum hoppas över, tomma fält bara tabbas förbi).prompt confirminnanCtrl+S. - Uppdatera Sälma: subgrafen Uppdatera Sälma (delas med specialflödet) –
Redigera → lås upp personnummer → fyll personnr/datum → sätt Status → Spara.
Måste verifieras mot en riktig session
Alla noder med TODO: i etiketten. I korthet:
| Var | Vad |
|---|---|
| Main: "läs Grupp/Specialitet" | CSS-selectors i Sälmas huvudvy. Använd ⚙ → Inspektera fönster eller python -m rpa.codegen <sälma-url>. |
| Main: "öppna Filer-fliken" + "ladda ner remiss-PDF" | Hur Filer-listan ser ut (en fil? flera?) och selectorn till remiss-länken. |
| ELVIS-fälten | Att {TAB}-ordningen stämmer mot fieldOrder, och att dropdowns (Team/Orsak/Typ/Vårdnivå) tar emot inskriven text utan att behöva väljas ur listan. Testa mot en testremiss. |
| Uppdatera Sälma: penn-ikon | desktop-selector eller koordinat för penn-ikonen som låser upp personnummer-fältet. Just nu en prompt som ber dig klicka manuellt. |
| Uppdatera Sälma: Status | Om Status är en vanlig <select> (inskriven text + Enter räcker) eller en custom-komponent (kräver klick på rätt listrad). closeValue ("Stängt") är en gissning. |
remissdatum | OCR ger ÅÅÅÅ-MM-DD; ELVIS kan vilja ha ÅÅÅÅMMDD. Rätta i granska-dialogen tills vidare, eller lägg ett litet run_script som formaterar om. |
translationTable-fallbacks | groupLevelRules (t.ex. MEDS Vaskulärmedicin – dynamisk orsak) och rader med _note (Gastro GEA/EUS) hanteras inte automatiskt än – lägg egna if/lookup-grenar vid behov. |
OCR-krav
ocr_read kräver att svenskt OCR-språk är installerat i Windows. Kolla/ installera (admin-terminal):
Get-WindowsCapability -Online -Name "Language.OCR~~~sv-SE*"
Add-WindowsCapability -Online -Name "Language.OCR~~~sv-SE~0.0.1.0"
eller Inställningar → Tid och språk → Språk → Svenska → Språkalternativ → Optisk teckenläsning. Saknas det ger ocr_read ett fel med exakt kommandot.
Testa delarna
- Uppdatera Sälma / Specialhantering var för sig: flikens ▶ Kör denna flik
(fyll i inputs i dialogen).
ocr_readisolerat: lägg en engångsnodocr_read source=pdf file=... var=ti ett tomt flöde mot en riktig PDF.
prompt/lookup/merge_jsonkräver ingen webbläsare – snabba attprova i ett litet variabel-flöde.