Changes between Version 7 and Version 8 of Documentatie/Beheerder/Modules/Scannen


Ignore:
Timestamp:
Jan 7, 2016 11:51:48 AM (10 years ago)
Author:
adriaan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentatie/Beheerder/Modules/Scannen

    v7 v8  
    4848[[Image(dossierfoto.png, align=center, class=inline)]] 
    4949 
    50 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. Er is een demonstratie-implementatie en twee implementaties die nuttig zijn voor productie. Kies '''een''' van deze drie, of schrijf een eigen versie: 
     50Welk 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. 
    5151 
    52  - `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. 
    53  - `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. 
    54  - `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. 
    55  
    56 Om een van deze implementaties te gebruiken, 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: 
     52Om 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: 
    5753 
    5854{{{ 
     
    6258}}} 
    6359 
    64 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, deze import: 
     60Als 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: 
    6561 
    6662{{{ 
    6763from kern.s040_dossier import foto 
     64 
     65class Patient(model_baseclass("patient")): 
     66    # Code in deze model-klasse 
     67    #   ... 
     68    def displayfoto(self): 
     69        return "C:\\plaatje.jpg" 
    6870}}} 
    6971 
    70 Voeg deze methode toe aan de model-klasse `Patient`: 
     72=== Foto Zoeken voor Dossier === 
     73 
     74Er is een demonstratie-implementatie en twee "echte" implementaties voor de functie `displayfoto()`. Hiermee wordt het heel eenvoudig om een foto toe te voegen: 
     75 
     76 - `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. 
     77 - `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. 
     78 - `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. 
     79 
     80Om een van deze implementaties te gebruiken, definieer `displayfoto()` als volgt (hier met de voorbeeld-implementatie): roep de implementatiefunctie aan en geef het resultaat terug. 
    7181 
    7282{{{ 
     
    7585}}} 
    7686 
    77 Vul hier in de implementatie die gewenst is: in het voorbeeld wordt de demo-functie gebruikt die niet erg zinvol is voor productie. De functie `displayfoto()` moet een bestandsnaam teruggeven. Het is uiteraard mogelijk om een geheel eigen implementatie te schrijven op basis van andere kenmerken van het dossier, zolang die uiteindelijk een bestandsnaam (`C:\een\plaatje\hier.png` bijvoorbeeld) teruggeeft. 
    7887 
    7988De 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): 
     
    8695        return foto.displayfoto_fotosjabloon(self) 
    8796}}} 
     97 
     98 
     99De 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 [https://docs.python.org/2/library/re.html reguliere expressie] maken -- gebruik eventueel een [https://regex101.com/ online regexp-editor] om daarbij te helpen. Je kan de herkenning van fotobestanden aanpassen als volgt: importeer de module `re` en vervang `foto.MATCH_FOTOBESTAND`: 
     100 
     101{{{ 
     102from kern.s040_dossier import foto 
     103import re 
     104foto.MATCH_FOTOBESTAND = re.compile(".*foto-.*jpg$") 
     105}}} 
     106 
     107(De expressie in dit voorbeeld zoekt naar ''foto-'' ergens in de bestandsnaam, en het moet eindigen op ''jpg'') 
    88108 
    89109=== Een Scan Maken ===