foxygit / RPA-Remisser Log in
commits tags

/docs/salma-elvis.md · 4.5 KB

raw

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älma

    och 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

  1. Ärendenummer ur Edge-adressen (read_url + regex).
  2. Grupp / Specialitet ur Sälma (extract_text – selectors är TODO).
  3. Specialfall? lookup i specialWorkflows. Träff → subgrafen

    Specialhantering (visar instruktion, OCR:ar personnr/datum, stänger ärendet i Sälma – aldrig in i ELVIS).

  4. Ohanterad grupp? lookup i unsupportedGroups. Träff → stop med ett

    tydligt meddelande.

  5. Remiss-PDF: öppna Filer-fliken, ladda ner PDF:en (save_attachment).
  6. 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.

  7. Översättning: lookup i translationTable ({grupp}|{spec}) → team,

    orsak, vårdnivå. Fasta värden (typ av vårdbegäran, avvikande avtal, betalarkod) ur salma_config.json.

  8. Avsändarnummer: lookup i salma_avsandare.json. Ingen träff →

    prompt input frågar efter numret och merge_json sparar det till nästa gång.

  9. Granska: prompt fields visar alla värden redigerbara – rätta OCR-fel här.
  10. Fyll ELVIS: desktop_connect + !nb + en {TAB} + desktop_press_key

    per fält i fieldOrder (Ankomstdatum hoppas över, tomma fält bara tabbas förbi). prompt confirm innan Ctrl+S.

  11. 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:

VarVad
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ältenAtt {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-ikondesktop-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: StatusOm 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.
remissdatumOCR 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-fallbacksgroupLevelRules (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_read isolerat: lägg en engångsnod ocr_read source=pdf file=... var=t

    i ett tomt flöde mot en riktig PDF.

  • prompt / lookup / merge_json kräver ingen webbläsare – snabba att

    prova i ett litet variabel-flöde.