COGZDF — Check fotografico¶
Sorgente: cbl/cogzdf.cbl | Program-ID: cogzdf | Tipo: Programma interattivo GUI a due griglie con anteprima immagine (web-browser)
Menu: Lab.Odont. > Operativo > Check fotografico
Scopo¶
Postazione operativa che affianca le fotografie/scansioni (impronte digitali o immagini di lavori) alle prescrizioni/commesse di laboratorio, per trasformarle in nuove commesse o integrarle su commesse esistenti (flusso Odontoconnect / impronta tradizionale vs digitale).
La maschera presenta due griglie:
- Griglia "Fotografie" (
e-tm-tab2): elenca i file immagine (*.jpg,*.png) presenti nella cartella di archiviazione automatica (path-archiviazione-auto), letti dal filesystem viaC$LIST-DIRECTORY. Selezionando una riga, l'immagine viene mostrata in anteprima tramite un controllo web-browser (e-tm-browser); - Griglia "Pre-commesse/rientri" (
e-tm-tab3): elenca prescrizioni/pre-commesse e rientri di lavoro (tipo"P"= pre-commessa senza prenotazione,"N"= con prenotazione,"U"= rientro di lavoro esistente).
Sopra le griglie compaiono fino a 7 pulsanti configurabili (tm-bottone1..tm-bottone7), ciascuno associato a un tipo impianto/articolo (merce) e a un piano di fabbricazione. Premendo un pulsante, il programma verifica la combinazione di selezioni sulle due griglie (a1-verifica-sel) e determina il tipo caso (A-H), quindi crea la nuova commessa e/o allega il documento fotografico.
La griglia si aggiorna automaticamente a intervalli (cogzdf-tempo-refresh), tranne quando ci sono righe selezionate. Il programma e' attivo solo con la progettazione lab abilitata (labod-progettazione).
Tipi caso (a1-verifica-sel)¶
Determinati dalla combinazione foto/pre-commessa selezionate e dal tipo pre-commessa:
| Caso | Foto | Pre-commessa | Tipo | Significato |
|---|---|---|---|---|
| A | Si | no | — | Nuovo lavoro — impronta tradizionale |
| B | Si | Si | "P" |
Nuovo lavoro Odontoconnect — impronta tradizionale |
| C | Si | Si | "N" |
Nuovo lavoro Odontoconnect — impronta tradizionale con prenotazione |
| D | no | Si | "P" |
Nuovo lavoro Odontoconnect — impronta digitale |
| E | no | Si | "N" |
Nuovo lavoro Odontoconnect — impronta digitale con prenotazione |
| G | Si | Si | "U" |
Rientro di lavoro esistente — impronta tradizionale |
| H | no | Si | "U" |
Rientro di lavoro esistente — impronta digitale |
Un caso speciale (a2-allega-documento, "Caso F") gestisce la sola integrazione di una fotografia su una commessa esistente, quando il pulsante non ha merce configurata.
File e tabelle¶
| File | Copybook (via .prc/.select) |
Accesso | Scopo |
|---|---|---|---|
| LODPRESC | Lettura/scrittura/riscrittura | Prescrizioni: sorgente pre-commesse e creazione nuove commesse | |
| LODCMTES | Lettura/scrittura | Testate commesse | |
| LODCMAGG / LODCMART / LODCMASV / LODCMASI / LODCMAG2 | Lettura/scrittura/riscrittura | Righe/materiali/allegati della commessa (documento fotografico allegato) | |
| LODRACCO | Scrittura | Raccordi commessa | |
| COGMERCI | Lettura diretta | Anagrafica merci: validazione articolo del pulsante | |
| COGANRAG | Lettura diretta (classe arag-classe, tip "M") |
Raggruppamento articolo → tipo impianto (arag-id-padre) |
|
| COGGEANA | Lettura diretta | Anagrafica clienti | |
| COGHTML | FD interno (line sequential, varying) | Scrittura | File HTML temporaneo per l'anteprima immagine nel web-browser |
transito griglia 2 (t-gor-g2) |
wgrid/utilgdad |
I-O temporaneo | Righe griglia "Fotografie" |
transito griglia 3 (t-gor-g3) |
wgrid/utilgdad |
I-O temporaneo | Righe griglia "Pre-commesse/rientri" |
Le immagini non stanno in un file indicizzato: sono file JPG/PNG letti dal filesystem con C$LIST-DIRECTORY.
Tasti funzione¶
| Tasto | Griglia | Azione |
|---|---|---|
| F1 | entrambe | Ricarica dati (con avviso se ci sono righe selezionate) |
| F4 | Fotografie | Visualizza immagine originale (OPENFILE) |
| F5 | Pre-commesse | Stato commessa (COGZ50) |
| Invio / doppio click | entrambe | Seleziona/deseleziona riga (selezione singola per progressivo) |
| S-F4 | entrambe | Gestione colonne griglia (GRIDADMN) |
| S-F5 | entrambe | Esporta griglia in Excel |
| pulsanti 1-7 | — | Esegue il check secondo il tipo caso (crea commessa / allega documento) |
Programmi chiamati (CALL)¶
| Programma | Condizione | Scopo |
|---|---|---|
| COGZSB | apri/a4 per ogni pulsante configurato |
Ricerca del piano di fabbricazione (PDF) collegato al tipo impianto/articolo del pulsante (RICERCA) |
| COGZA6 | ba-crea-nuova-commessa |
Creazione della nuova commessa (numero automatico, data, magazzino) |
| COGS98W | init | Gestione campi prescrizione |
| COGZC5 | flussi di caso | Subroutine gestione impegni/commessa |
| COGZS7 | flussi di caso | Subroutine di supporto commessa |
| COGZ50 | F5 su pre-commessa | Visualizza stato commessa |
| COGZ85 | b1-dialogs (F9) |
Stampa etichetta (paziente/progetto) |
| COGU06 | Subroutine di supporto | |
| COPIAF | anteprima / archiviazione | Copia file (immagine su locale, ecc.) |
| OPENFILE | F4 | Apre l'immagine originale nell'applicazione predefinita |
| GRIDADMN | S-F4 / prepara griglia | Personalizzazione colonne |
| DIALOGS | esiti creazione commessa | Dialog conferma/stampa etichetta |
| RNEWCONF | x99-load-config |
Lettura dei parametri di configurazione |
| C$LIST-DIRECTORY | carica-griglia-2 |
Elenco file immagine nella cartella di archiviazione (utility runtime) |
Copybook incluse¶
Working Storage¶
feurtab.fd, cogfiles.cpy, cogzdf.fd, cogzdf.select, cogzdf.wrk, k-tipi-cogtabel.cpy, k-personal.cpy, costanti-labod.cpy, cogzdf.tm, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilcogzsb.cpy, utilcogza6.cpy, utilzs7.cpy, utilcogzc5.cpy, l-copiaf.cpy, wgrid.cpy, utilgdad.cpy, utilncnf.cpy, utilu06.cpy, utilu10.cpy, k-u10.cpy, wrk-u10.cpy, utilu20.cpy, utils52.cpy, utils93.cpy, utils98.cpy, utilgesstr.cpy, utildlg.cpy, acucobol.def, utilopenfile.cpy
Linkage / Screen¶
wcont.cpy, utilz85.cpy, utilz50.cpy, u-copiaf.cpy, wcont1.cpy, cogzdf-01.scr
Procedure Division¶
cogzdf.decla (+ coghtml)
Parametri di configurazione (RNEWCONF)¶
Caricati in x99-load-config; principali:
| Gruppo | Chiave | Variabile interna | Effetto |
|---|---|---|---|
odonto |
classe-categoria |
tm-cfg-classe-categoria |
Classe/categoria per la ricerca in COGANRAG |
ABILITA |
LABOD-PROGETTAZIONE |
tm-cfg-modalita-prog |
Abilitazione della progettazione lab |
labprepara |
cogzdf-tempo-refresh |
tm-cfg-refresh |
Secondi di attesa per il refresh automatico delle griglie |
labpresc |
path-archiviazione-auto |
tm-cfg-path-archiviazione-auto |
Cartella da cui leggere le immagini e su cui archiviare |
odonto |
documento-accompagnamento |
tm-cfg-tip-doc |
Tipo documento di accompagnamento |
labprepara |
check-pulsante-etichetta (×7) |
tm-cfg-check-etichetta-b1..b7 |
Etichetta dei 7 pulsanti configurabili |
labprepara |
check-pulsante-priorita (×7) |
tm-cfg-check-priorita-b1..b7 |
Priorita' associata a ciascun pulsante |
labprepara |
check-pulsante-articolo (×7) |
tm-cfg-check-merce-b1..b7 |
Articolo/merce associato a ciascun pulsante |
odonto |
numero-commessa-automatico |
tm-cfg-num-aut |
Numerazione automatica commessa |
odonto |
gestione-multi-sede |
tm-cfg-multisede |
Gestione multi-sede |
abilita |
labod-impegni |
tm-cfg-labod-impegni |
Gestione impegni |
Per ogni pulsante configurato, in a4 il programma valida l'articolo (COGMERCI), risale al tipo impianto (COGANRAG, arag-id-padre) e ricava il PDF (COGZSB); se una di queste verifiche fallisce, mostra un errore ("Articolo (n) ...") e termina.
Logica di elaborazione¶
apri: apre i file, carica configurazione, crea i transiti delle due griglie, bitmap e pulsanti custom, controllo web-browser per l'anteprima.a4: per ciascuno dei 7 pulsanti configurati valida merce → tipo impianto → PDF; prepara le due griglie con ordinamento predefinito.a-inizio-carica→carica-dati: ricarica entrambe le griglie (carica-griglia-2legge le immagini dalla cartella viaC$LIST-DIRECTORY;carica-griglia-3legge le pre-commesse/rientri).a-accept-grid2/a-accept-grid3: cicli di gestione delle due griglie (selezione, refresh temporizzato, tasti funzione, menu pop-up). Il refresh automatico e' inibito se esistono righe selezionate (verifica-refresch).- Selezione anteprima (
z-visualizza-anteprima-browser): mostra l'immagine selezionata nel web-browser con opzioni di adattamento (tm-fl-ant-adatta-h/-v/-orig). - Pressione pulsante (
a-tm-bottone1..7): se il pulsante non ha merce configurata esegue soloa2-allega-documento; altrimenti verifica la selezione (a1-verifica-sel), imposta tipo impianto/PDF/priorita'/merce del pulsante e instrada al caso A-H (b1-caso-a..b7-caso-h), che crea la commessa (ba-crea-nuova-commessa→COGZA6) e/o allega il documento fotografico (bb-allego-documento). - Al termine della creazione mostra un dialog con il numero commessa e l'opzione di stampa etichetta (
COGZ85).
Paragrafi chiave¶
| Paragrafo | Scopo |
|---|---|
apri / a4 |
Inizializzazione, validazione pulsanti (merce → tipo impianto → PDF), preparazione griglie |
carica-dati / carica-griglia-2 / carica-griglia-3 |
Caricamento immagini (filesystem) e pre-commesse |
a-accept-grid2 / a-accept-grid3 |
Cicli di gestione delle due griglie |
verifica-refresch |
Inibisce il refresh automatico se ci sono righe selezionate |
a1-verifica-sel |
Determina il tipo caso (A-H) dalla combinazione di selezioni |
a-tm-bottone1..7 |
Handler dei pulsanti configurabili |
b1-caso-a..b7-caso-h |
Esecuzione del check per tipo caso |
ba-crea-nuova-commessa |
Creazione commessa via COGZA6 |
bb-allego-documento / a2-allega-documento |
Allega la fotografia alla commessa |
z-visualizza-anteprima-browser |
Anteprima immagine nel web-browser |
x99-load-config |
Caricamento configurazione (inclusi i 7 pulsanti) |
Note¶
- La sorgente delle immagini e' il filesystem (cartella
path-archiviazione-auto), non un archivio indicizzato: le griglie sono ricostruite ad ogni refresh. - Il refresh automatico temporizzato e' una scelta di ergonomia per postazione "sempre aperta"; viene sospeso in presenza di selezioni per non perdere il lavoro dell'operatore.
- I casi G/H (rientro di lavoro esistente) sono stati aggiunti in un secondo momento (marcatori
050923nel sorgente) insieme alla gestione dei pulsanti senza merce (allega documento). - Il programma usa
PERFORM ... THRUeGO TOin modo estensivo (stile legacy): in manutenzione prestare attenzione allo scope dei loop.