Laboratorio Odontotecnico — Avanzamento Commesse¶
Area funzionale: Laboratori Odontotecnici / Operativo Programma documentato: COGZ45 | Righe codice: 5.346
Indice¶
- Panoramica
- Logica riconoscimento barcode
- Comandi barcode disponibili
- Flusso operativo
- Pulsanti funzione
- File principali
- Programmi chiamati
- Configurazioni
1. Panoramica¶
COGZ45 — Avanzamento Commessa Step by Step¶
File: /programmi/eurocoge/cbl/cogz45.cbl (5.346 righe)
Autore: Andrea Parmeggiani - Eurosystem
Conversione GUI: Gianluca 13/10/2007
Funzione principale: Gestione avanzamento lavorazioni in laboratorio odontotecnico tramite lettore barcode. Il programma permette di tracciare in tempo reale lo stato di avanzamento delle commesse attraverso la scansione di codici a barre associati a operatori, comandi e commesse.
Modalità operativa: - L'operatore legge il proprio badge (codice operatore) - Legge eventuali comandi speciali (sospensione, riapertura, etc.) - Legge il barcode della commessa - Il sistema registra automaticamente l'avanzamento e si riposiziona sul campo di lettura per una nuova scansione
Caratteristiche chiave: - ⚡ Operatività veloce: workflow ottimizzato per lettura barcode continua - 🔄 Riposizionamento automatico: dopo ogni operazione torna al campo lettura - ✅ Validazioni in tempo reale: controllo immediato di stato commessa, operatore, autorizzazioni - 📊 Griglia avanzamento: visualizzazione dinamica delle azioni eseguite sulla commessa
2. Logica riconoscimento barcode¶
Il programma riconosce automaticamente il tipo di dato letto in base alla lunghezza del codice a barre (righe 16-21):
| Lunghezza | Tipo dato | Descrizione | Azione |
|---|---|---|---|
| 1-4 cifre | Operatore | Badge operatore di laboratorio | Carica dati operatore, valida abilitazioni |
| 5-6 cifre | Comando | Comando speciale (100002-100034) | Imposta operazione da eseguire |
| 7-10 cifre | Commessa | Numero commessa laboratorio | Carica commessa e registra avanzamento |
Implementazione (sezione a-tm-lettura):
evaluate true
when tm-lettura numeric and
tm-lettura >= 1 and tm-lettura <= 9999
* Operatore (1-4 cifre)
perform c-operatore
when tm-lettura numeric and
tm-lettura >= 10000 and tm-lettura <= 999999
* Comando (5-6 cifre)
perform d-comando
when tm-lettura numeric and
tm-lettura >= 1000000
* Commessa (7-10 cifre)
perform e-commessa
end-evaluate
3. Comandi barcode disponibili¶
Tabella comandi (righe 70-82)¶
| Codice barcode | Costante | Funzione | Descrizione |
|---|---|---|---|
| 100002 | k-cmd-sospensione | Sospensione | Sospende temporaneamente l'azione corrente |
| 100004 | k-cmd-riapertura | Riapertura | Riapertura forzata di un'azione chiusa |
| 100005 | k-cmd-mod-ope | Modifica operatore | Cambia l'operatore associato all'azione |
| 100006 | k-cmd-ins-azione | Inserimento | Inserisce una nuova azione sulla commessa |
| 100007 | k-cmd-canc-azione | Cancellazione | Elimina un'azione dalla commessa |
| 100011 | k-cmd-ges-prest | Gestione prestazioni | Apre la gestione prestazioni per l'azione |
| 100012 | k-cmd-ges-mat | Gestione materiali | Apre la gestione materiali consumati |
| 100021 | k-cmd-note-istr | Note istruzioni | Inserisce note/istruzioni d'uso |
| 100022 | k-cmd-note-buoni | Note buoni | Inserisce note per i buoni |
| 100031 | k-cmd-ripartizione | Ripartizione | Ripartizione lavoro tra operatori |
| 100032 | k-cmd-note-medico | Note medico | Istruzioni dal medico |
| 100033 | k-cmd-note-lavoro | Note lavoro | Note di lavorazione interne |
| 100034 | k-cmd-progetto | Progetto tecnico | Gestione progetto tecnico |
Nota: Alcuni comandi (es. ripartizione) modificano il flusso e richiedono letture aggiuntive (righe 1756-1765).
4. Flusso operativo¶
4.1 Inizializzazione (sezione apri)¶
- Caricamento configurazioni (righe 492-495):
- Lettura configurazioni generali (COGTABEL)
- Configurazioni specifiche operatore
-
Parametri laboratorio odontotecnico
-
Creazione pulsanti custom (righe 415-483):
- 10 bitmap custom caricate da file
labodontoelabodonto2 -
Creazione pulsanti funzione F2-F10, Shift+F5, Shift+F6, Shift+F7
-
Inizializzazione griglia (righe 1249-1310):
- Preparazione struttura griglia avanzamento
- Colonne: Sequenza, Azione, Operatore, Stato, Controllo, Prestazioni, Materiali, Sede
4.2 Ciclo di lettura barcode (sezione a-tm-lettura)¶
┌─────────────────────────────────────────────────────────────┐
│ 1. LETTURA BARCODE (campo tm-lettura) │
└─────────────────┬───────────────────────────────────────────┘
│
├─[1-4 cifre]──> C-OPERATORE
│ ├─ Legge PRNTOPER
│ ├─ Valida operatore attivo
│ ├─ Verifica responsabilità
│ └─ Carica dati operatore
│
├─[5-6 cifre]──> D-COMANDO
│ ├─ Valida comando (100002-100034)
│ ├─ Imposta flag operazione
│ └─ Mostra label operazione
│
└─[7-10 cifre]─> E-COMMESSA
├─ Legge LODCMTES (commessa)
├─ Valida stato commessa
├─ Legge LODPRESC (prescrizione)
├─ Verifica blocchi/sospensioni
├─ Carica azioni (LODCMRIG)
├─ Aggiorna griglia
└─ Registra avanzamento
4.3 Elaborazione commessa (sezione e-commessa, righe 1772-2131)¶
Validazioni eseguite:
-
Esistenza commessa (riga 1778-1783):
cobol perform rd-lodcmtes if not w-verbo-ok move "Commessa non esistente!!" to x-f3-msg -
Blocco laboratorio (riga 1785-1789):
- Verifica flag
lct-blocco-lab -
Se "S", impedisce avanzamento
-
Stato commessa (righe 1818-1850):
- N (Non aperta): blocco totale
- C (Completata): warning, permesso solo per Wilocs
- E (Evasa): warning, permesso solo per Wilocs
- U (Sospesa utente): blocco totale
-
F (Presso subfornitore): blocco totale
-
Filtro clinica (righe 1856-1872):
-
Se configurato
tm-cfg-clinica-ope, verifica appartenenza commessa alla clinica -
Caricamento azioni (loop
e-10-loop, righe 1944-2086): - Scansione
LODCMRIG(righe commessa) - Per ogni azione: carica dettagli, operatore, stato, controlli
- Popola griglia con colori differenziati per stato
4.4 Gestione griglia avanzamento¶
Struttura record griglia (righe 217-241):
- Sequenza: fase-1.fase-2.fase-3 (es. "01.02.03")
- Azione: codice + descrizione (8+40 caratteri)
- Azione NC: codice non conformità (2 caratteri)
- Operatore: codice + descrizione (3+40 caratteri)
- Stato: descrizione testuale (15 caratteri)
- Controllo: data controllo (GG/MM/AAAA)
- Prestazioni: flag presenza prestazioni (11 caratteri)
- Materiali: flag presenza materiali (10 caratteri)
- Sede: codice + descrizione sede (1+25 caratteri)
Colorazione righe (sezione x-riempi-grid-record, righe 1476-1531):
- Azioni completate: colore standard
- Azioni sospese: colore warning (
tm-cfg-color-warning) - Azione corrente: evidenziata
5. Pulsanti funzione¶
Tabella pulsanti (righe 57-66, 425-483)¶
| Tasto | Codice | Funzione | Programma chiamato | Descrizione |
|---|---|---|---|---|
| F2 | k-f2-materiale-cons (08) | Materiale consumato | COGZ88 | Gestione materiali consumati per l'azione |
| F4 | k-f4-rapp-nc (03) | Rapporto NC | COGZCF | Creazione rapporto non conformità |
| F5 | k-f5-note-reparto (05) | Note reparto | - | Visualizza/modifica note reparto |
| F6 | k-f6-dettaglio-azione (01) | Dettaglio azione | COGZ46 | Visualizza dettaglio completo azione |
| F7 | k-f7-vis-prestaz (07) | Visualizza prestazioni | COGZ60 | Elenco prestazioni associate |
| F9 | k-f9-note-lavoro (02) | Note lavoro | COGZDEW | Gestione note di lavorazione |
| F10 | k-f10-chiusura (09) | Chiusura lavoro | - | Chiude l'azione corrente |
| Shift+F5 | k-s-f5-preparazione (06) | Preparazione | COGZ48 | Preparazione commessa |
| Shift+F6 | k-s-f6-vis-rapp-nc (04) | Vis. rapporti NC | - | Visualizza rapporti non conformità |
| Shift+F7 | k-s-f7-fascicolo (10) | Fascicolo tecnico | COGZSA | Apertura fascicolo tecnico |
Bitmap utilizzate:
- File
labodonto(handle 1): bitmap 7, 8, 10, 11, 12, 37, 61, 76, 79 - File
labodonto2(handle 2): bitmap 13
6. File principali¶
6.1 File generali¶
| File | Prefisso | Descrizione | Tipo accesso |
|---|---|---|---|
| FEURTAB | - | Tabelle file gestionali | R |
| COGTABEL | euta- | Tabelle di configurazione generale | R |
| COGGEANA | ana- | Anagrafica generale (clienti/fornitori) | R |
| COGMAGAZ | mag- | Magazzino articoli | R |
| COGDESCR | des- | Descrizioni variabili (multilingua) | R |
| PRNTOPER | ptop- | Anagrafica operatori | R |
6.2 File laboratorio odontotecnico (LOD*)¶
| File | Prefisso | Descrizione | Tipo accesso | Chiave |
|---|---|---|---|---|
| LODTABEL | lt*- | Tabelle configurazione laboratorio | R | tipo+codice |
| LODDESCR | - | Descrizioni laboratorio (variabili) | R | - |
| LODCONTR | - | Controlli qualità | R/W | - |
| LODRACCO | - | Raccolta dati | R/W | - |
| LODAZION | laz- | Anagrafica azioni/operazioni | R | codice |
| LODPNTES | lpt- | Piani di lavoro (testa) | R | numero piano |
| LODPNRIG | lpr- | Piani di lavoro (righe) | R | piano+riga |
| LODPNMAT | - | Piani di lavoro (materiali) | R | - |
| LODPRESC | lpm- | Prescrizioni mediche | R/W | numero prescrizione |
| LODCMTES | lct- | Commesse (testa) | R/W | numero commessa |
| LODCMRIG | lcr- | Commesse (righe/azioni) | R/W | commessa+sequenza |
| LODCMDET | lcd- | Commesse (dettaglio) | R/W | commessa+riga |
| LODCMMMD | lmd- | Commesse (materiali/merci) | R/W | commessa+tipo+articolo |
| LODRAPNC | - | Rapporti non conformità | R/W | - |
| LODCMCTR | - | Commesse (controlli) | R/W | - |
| LODCMAG2 | - | Commesse (magazzino secondario) | R/W | - |
| LODCMASV | - | Commesse (salvataggi/backup) | R/W | - |
| LODTMDES | - | Descrizioni tabelle master | R | - |
Relazioni principali:
LODPRESC (prescrizione medica)
├── 1:1 ─> LODCMTES (commessa di laboratorio)
│ └── 1:N ─> LODCMRIG (azioni da eseguire)
│ ├── 0:N ─> LODCMDET (dettaglio prestazioni)
│ ├── 0:N ─> LODCMMMD (materiali consumati)
│ └── 0:N ─> LODRAPNC (rapporti NC)
└── 1:1 ─> COGGEANA (paziente/cliente)
7. Programmi chiamati¶
7.1 Programmi laboratorio (COGZ*)¶
| Programma | Funzione | Quando viene chiamato |
|---|---|---|
| COGZ23 | Lookup commessa | All'avvio per selezionare commessa iniziale |
| COGZ39 | Gestione azioni | Inserimento/modifica azioni, gestione stati |
| COGZ41 | Ripartizione lavoro | Su comando barcode 100031 (ripartizione) |
| COGZ42 | Note operative | Gestione note interne |
| COGZ46 | Dettaglio azione | Pressione F6, visualizzazione completa azione |
| COGZ47 | Storico azione | Visualizzazione cronologia modifiche |
| COGZ48 | Preparazione commessa | Shift+F5, preparazione iniziale commessa |
| COGZ51 | Gestione note fase | Note specifiche per fase di lavorazione |
| COGZ54 | Inizializzazione configurazione | All'avvio, carica parametri laboratorio |
| COGZ60 | Gestione prestazioni | F7 o gestione prestazioni azione |
| COGZ88 | Materiali consumati | F2, registrazione materiali usati |
| COGZ45A | Utility avanzamento A | Funzioni ausiliarie avanzamento (util-z45a) |
| COGZ45O | Utility avanzamento O | Funzioni ausiliarie avanzamento (util-z45o) |
| COGZC1 | Gestione commesse | Operazioni complesse su commesse |
| COGZC5 | Utilità commesse | Funzioni di supporto gestione commesse |
| COGZCF | Rapporti non conformità | F4, creazione/gestione NC |
| COGZD1 | Gestione dati D1 | Elaborazioni dati specifiche |
| COGZDE / COGZDEW | Note estese | F9, gestione note di lavoro estese |
| COGZSA | Fascicolo tecnico | Shift+F7, apertura/gestione fascicolo |
7.2 Programmi generali¶
| Programma | Funzione | Utilizzo |
|---|---|---|
| GRIDADMN | Amministrazione griglia | Gestione griglia avanzamento azioni |
| COGS98W | Gestione commesse generica | Caricamento dati commessa, validazioni |
| COGS62 | Utilità stringhe | Manipolazione testi, formattazioni |
| COGY23 | Gestione anagrafica | Lookup clienti/pazienti |
| COGF14 | Gestione finanziaria | Controlli amministrativi/finanziari |
| APO212 | Post-operazioni | Operazioni post-avanzamento, sincronizzazioni |
8. Configurazioni¶
8.1 Configurazioni COGTABEL¶
Il programma legge configurazioni da COGTABEL tramite le utility x99-confi e x99-confi-operatore (righe 492-495).
Struttura configurazione (righe 200-213):
01 tm-cfg.
02 tm-cfg-qta-obb pic x(01). * Quantità obbligatoria
02 tm-cfg-ges-rep pic x(01). * Gestione reparti
02 tm-cfg-gestione-spedizioni pic x(01). * Gestione spedizioni
02 tm-cfg-color-warning pic 9(08). * Colore warning griglia
02 tm-cfg-vis-rig-ope pic x(01). * Visualizza righe operatore
02 tm-cfg-labod-impegni pic x(01). * Gestione impegni
02 tm-cfg-esecuz-piani pic x(01). * Esecuzione piani automatica
02 tm-cfg-avanzamento-tipo pic x(01). * Tipo avanzamento
02 tm-cfg-chiamo-preparazione pic x(01). * Chiama automaticamente preparazione
02 tm-cfg-modifica-note-lavoro pic x(01). * Permetti modifica note lavoro
02 tm-cfg-azione-riconsegna pic x(08). * Codice azione riconsegna
02 tm-cfg-clinica-ope pic x(02). * Clinica operatore (filtro)
02 tm-cfg-avanzamento-web pic x(01). * Avanzamento da web
8.2 Parametri linkage¶
Struttura dati chiamata (righe 196-198):
01 w-dati-called.
02 w-dc-called pic x(01). * "S" se chiamato da altro programma
02 w-dc-commessa pic 9(10). * Numero commessa preimpostata
Se w-dc-called = "S", il programma si posiziona direttamente sulla commessa w-dc-commessa senza richiedere lettura barcode.
8.3 Tabella elementi griglia¶
Dimensionamento (riga 87):
78 k-max-ele-tab value 800. * Max 800 azioni visualizzabili
La griglia può contenere fino a 800 righe (azioni) per commessa, dimensionata per schermo massimizzato.
Diagramma di flusso completo¶
AVVIO COGZ45
│
├─ Caricamento configurazioni (COGTABEL)
├─ Creazione pulsanti custom (10 pulsanti)
├─ Inizializzazione griglia
│
├─ Se chiamato (w-dc-called="S")
│ └─ Posizionamento su commessa preimpostata
│
└─ LOOP PRINCIPALE
│
├─[LETTURA BARCODE tm-lettura]
│ │
│ ├─ 1-4 cifre ──> OPERATORE
│ │ ├─ Valida su PRNTOPER
│ │ ├─ Verifica responsabilità
│ │ └─ Carica dati operatore
│ │
│ ├─ 5-6 cifre ──> COMANDO
│ │ ├─ Valida comando (100002-100034)
│ │ ├─ Imposta flag operazione
│ │ └─ Prepara azione successiva
│ │
│ └─ 7-10 cifre ──> COMMESSA
│ ├─ Legge LODCMTES + LODPRESC
│ ├─ Validazioni:
│ │ ├─ Esistenza
│ │ ├─ Stato (N/C/E/U/F)
│ │ ├─ Blocco laboratorio
│ │ └─ Filtro clinica
│ │
│ ├─ Carica azioni (LODCMRIG)
│ │ └─ Loop su righe commessa
│ │ ├─ Legge dettaglio (LODCMDET)
│ │ ├─ Verifica controlli (LODCMCTR)
│ │ ├─ Controlla prestazioni
│ │ ├─ Controlla materiali
│ │ └─ Popola griglia
│ │
│ ├─ Visualizza griglia avanzamento
│ ├─ Registra avanzamento
│ └─ Riposiziona su tm-lettura
│
├─[PULSANTI FUNZIONE]
│ ├─ F2 ──> COGZ88 (Materiali)
│ ├─ F4 ──> COGZCF (NC)
│ ├─ F5 ──> Note reparto
│ ├─ F6 ──> COGZ46 (Dettaglio)
│ ├─ F7 ──> COGZ60 (Prestazioni)
│ ├─ F9 ──> COGZDEW (Note lavoro)
│ ├─ F10 ──> Chiusura azione
│ ├─ S-F5 ──> COGZ48 (Preparazione)
│ ├─ S-F6 ──> Visualizza NC
│ └─ S-F7 ──> COGZSA (Fascicolo)
│
└─[EVENTI GRIGLIA]
├─ Click riga ──> Posizionamento azione
├─ Doppio click ──> Dettaglio azione (COGZ46)
└─ Tasto destro ──> Menu contestuale
Note implementative¶
Gestione stati azione¶
Le azioni in LODCMRIG possono avere vari stati. Il programma gestisce:
- Aperta: azione in corso
- Completata: azione terminata
- Sospesa: temporaneamente fermata
- Controllata: passata al controllo qualità
- Non conforme: rilevate NC
Colorazione dinamica griglia¶
Il programma usa tm-cfg-color-warning per evidenziare:
- Azioni in ritardo
- Azioni sospese
- Azioni con NC aperte
Riposizionamento automatico¶
Dopo ogni operazione, il programma esegue (righe 1532-1564):
x-attiva-tf-lettura.
modify e-tm-lettura, enabled = 1
move 1 to screen-entry-field
perform display-screen-3
accept screen-3
Questo riporta il cursore nel campo barcode, permettendo lettura continua.
Debug e logging¶
Il programma integra la utility gesdebug (righe 497, 1749, 1802):
- Logging operazioni eseguite
- Trace letture barcode
- Monitoraggio errori
Vedi anche¶
- Piani di controllo qualita' — gestione dei piani di controllo associati alle azioni: anagrafiche (LODCONTR, LODRACCO, LODCTRPB), registrazione esecuzione (LODCMCTR), sincronizzazione anagrafica verso Odontosoft (SWN136 esteso)
Documentato da: Claude (Anthropic) Data: 2026-03-03 Versione: 1.0