wiki:Documentatie/Beheerder/Modules/Scannen

Scannen en Foto's

De scan-module is f080_scan_twain. Hiermee kunnen scanners en web-camera's worden aangestuurd en kan er binnen OpenAC gescand worden zodat documenten direct aan het dossier kunnen worden gekoppeld.

Scan-Module Aanzetten

De scan-module is kern.f080_scan_twain. Voeg dit toe aan de module.ini. De scan-module heeft geen parameters -- de module-parameter implementatie heeft in de praktijk geen nut. Nadat de module aangezet is, is het nodig om de sjablonen-codetabel te synchroniseren om de nieuwe sjablonen (voor scans in dossier, behandeltraject en bezoek) toe te voegen. De eenvoudigste manier om dat te doen is:

Python27\python.exe script.py codetabel --load sjabloon

Hierna is de module klaar voor gebruik.

Er is een module-parameter implementatie, om de backend te kunnen selecteren. Op dit moment is er onder Windows alleen TWAIN beschikbaar en onder Linux alleen SANE, dus het heeft niet zo veel nut. Als je onder Linux wilt testen moet je de SANE-backend configureren voor het soort apparaat dat je hebt.

Scan-Module Gebruiken

Bij de correspondentie voor de patiënt, bij zorgtrajecten en bij bezoeken kan je nu kiezen voor SCAN en FOTO. Effectief zijn die hetzelfde -- ze roepen een scanner of camera aan -- maar de FOTO-opties voegen maar een plaatje toe (als JPEG-bestand) terwijl de SCAN-opties een map aanmaken waar meerdere scan-pagina's in opgeslagen kunnen worden.

Na het kiezen van SCAN of FOTO wordt het standaard correspondentie-dialoog getoond met thema-keuzes, maar nu met extra velden:

  • Korte omschrijving Geef hier minstens een woord op voor de omschijving. Dit wordt gebruikt om de bestandsnaam of de naam van de bestandsmap te bepalen. Als je een bestaande omschrijving (die al in gebruik is bij de patient) gebruikt, worden bestanden toegevoegd aan de scan.
  • Kies scanner Een vinkje om aan te geven dat er een andere scanner of camera gebruikt moet worden. Als er geen geselecteerd is, dan moet er altijd gekozen worden. Een eenmaal gekozen scanner wordt onthouden, totdat dit vinkje weer eens aangezet wordt.
  • Scanner instellingen Een vinkje om aan te geven dat de instellingen gewijzigd moeten worden. OpenAC probeert meestal A4 op 100dpi te scannen, maar met dit vinkje kunnen die instellingen worden overschreven. Welke instellingen veranderd kunnen worden hangt af van de driver van de scanner of camera. De instellingen worden niet onthouden door OpenAC.
  • Pagina-invoer (alleen bij scanners) Hiermee is te kiezen of de invoer op een glasplaat-scanner ligt, of in een document-feeder zit. In de praktijk is dit alleen nuttig om de feeder uit te zetten (en maar een enkele pagina te scannen) met een scanner met document-feeder.

Nadat de korte omschrijving is ingevuld en op OK wordt geklikt, volgt eventueel een dialoog om de scanner te selecteren uit een lijst. Daarna kunnen eventueel apparaat-instellingen worden gewijzigd, en wordt de scan uitgevoerd.

De bestanden worden in een map gezet met een naam die is afgeleid van de omschrijving. De bestanden zelf krijgen unieke namen.

Een Foto Maken

Indien een foto wordt gemaakt, slaat OpenAC een enkele foto op als JPEG bestand. Dit verschijnt ook als link in de correspondentie. Klik op de link om de foto te tonen in een paint of foto-viewer programma. De foto's worden als gewoon bestand opgeslagen, in de OpenAC bestanden-map (bijvoorbeeld met de naam ACT-000009-2015-05-17-15.30.08-portret.jpg).

Een tweede foto met dezelfde omschrijving heeft normaliter een andere timestamp en wordt als ander bestand opgeslagen. Gebruik eventueel het prullenbakje om overbodige foto's te verwijderen.

Foto Tonen in Dossier

Naast de patiëntgegevens bovenaan het dossier -- nummer, naam, geboortedatum en aantekeningen -- kan een plaatje worden vertoond.

Welk plaatje wordt vertoond kan worden ingesteld door de model-klasse voor Patient aan te passen en de methode displayfoto() aan te passen. De functie moet een bestandsnaam teruggeven. Als de functie de naam van een bestaand (plaatjes) bestand teruggeeft, wordt dat plaatje getoond.

Om deze functie te definieren, heb je een model.py nodig in de adaptatie (of een model/ directory). Ergens -- of in model.py van de adaptatie of in een model/patient.py van de adaptatie -- kan je een model-klasse voor Patient definiëren. Zo'n definitie ziet er ongeveer zo uit:

class Patient(model_baseclass("patient")):
    # Code in deze model-klasse
    pass

Als er nog geen patiënt-klasse is gedefiniëerd, voeg deze dan toe. Zet bovenaan het bestand waar de patient-klasse gedefiniëerd wordt, een import, en voeg de definitie van functie displayfoto() toe, zodat het er ongeveer zo uit ziet:

from kern.s040_dossier import foto

class Patient(model_baseclass("patient")):
    # Code in deze model-klasse
    #   ...
    def displayfoto(self):
        return "C:\\plaatje.jpg"

Foto Zoeken voor Dossier

Er is een demonstratie-implementatie en twee "echte" implementaties voor de functie displayfoto(). Hiermee wordt het heel eenvoudig om een foto toe te voegen:

  • displayfoto_geslacht Deze implementatie, voor demonstratie-doeleinden, plaatst een venus- of mars-teken afhankelijk van het geslacht van de patiënt. Deze implementatie staat helemaal los van scannen en foto's.
  • displayfoto_fotosjabloon Deze implementatie laat het meest recente bestand zien dat is toegevoegd met sjabloon FOTO-dossier. Dit is nuttig als de scan-module in gebruik is en dat sjabloon wordt gebruikt voor de foto's. Deze implementatie vereist het gebuik van de scan-module.
  • displayfoto_fotobestand Deze implementatie laat het meest recente bestand zien dat is toegevoegd met een bestandsnaam dat eindigt op foto.jpg. Dit is bruikbaar als een extern fotoprogramma wordt gebruikt in combinatie met de OpenAC-spooler die bestanden aan het dossier toevoegt. Deze implementatie staat helemaal los van de scan-module.

Om een van deze implementaties te gebruiken, definieer displayfoto() als volgt (hier met de voorbeeld-implementatie): roep de implementatiefunctie aan en geef het resultaat terug.

    def displayfoto(self):
        return foto.displayfoto_geslacht(self)

De meest eenvoudige, en vermoedelijk meest voorkomende, implementatie zal er zo uit zien (dit veronderstelt dat je de scan-module aan hebt staan zodat je het bijbehorende sjabloon hebt):

from kern.s040_dossier import foto
class Patient(model_baseclass("patient")):
    def displayfoto(self):
        return foto.displayfoto_fotosjabloon(self)

De herkenning van fotobestanden op naam (met displayfoto_fotobestand()) gaat uit van bestanden waarvan de naam eindigt op foto.jpg. Als dat niet het geval is (omdat de scanner of het fotoprogramma iets anders produceert) dan kan je de herkenning aanpassen. Hiervoor moet je een reguliere expressie maken -- gebruik eventueel een online regexp-editor om daarbij te helpen. Er is een hulpfunctie maak_displayfoto_re_functie() waarmee je de reguliere expressie omzet in een functie die je vanuit displayfoto() aan kunt roepen:

from kern.s040_dossier import foto
fotozoeker = foto.maak_displayfoto_re_functie(".*foto-.*jpg$")

class Patient(model_baseclass("patient")):
    def displayfoto(self):
        return fotozoeker(self)

(De expressie in dit voorbeeld zoekt naar foto- ergens in de bestandsnaam, en het moet eindigen op jpg)

Een Scan Maken

Een scan kan meerdere pagina's bevatten. Elke pagina wordt opgeslagen in een apart bestand (meestal een JPEG bestand van de gescande pagina), en alle pagina's van een scan-sessie zitten samen in een map. De scan-mappen worden aangemaakt in een speciale map scans binnen de OpenAC bestanden-map. Scans verschijnen in het dossier als link met uitgang .scan en een naam gebaseerd op de omschrijving die is opgegeven.

Als een tweede scan gemaakt wordt met dezelfde omschrijving, worden de pagina's van de tweede scan toegevoegd aan de eerste scan en verschijnt er geen extra link. Hiermee kan met een glasplaat-scanner toch een meerbladig document worden gescand en opgenomen als een enkele bestandslink in het dossier.

Een scanner met document-feeder kan meerdere pagina's achter elkaar scannen; deze worden allemaal opgenomen als een enkel scan-document in het dossier.

Als een scan-link wordt aangeklikt, worden de scans geopend in een OpenAC-eigen meerbladige-scanviewer. Hiermee kan eenvoudig worden gebladerd door de afbeeldingen (pagina's) van de scan.

Scanners

De scan-module is getest met de volgende scanners:

  • Epson RX420 (een multifunctie printer/scanner) met Windows Vista
  • Kodak i1150 (een scanner met document-feeder) met Windows 7
  • Kodak i1180 met Windows 7
  • Canon DR-C125 (een scanner met document-feeder) met Windows 7
  • Geintegreerde webcam met Linux
Last modified 7 years ago Last modified on Mar 9, 2017 12:18:07 PM

Attachments (1)

Download all attachments as: .zip