Vai al contenuto

Laboratorio Odontotecnico — Avanzamento Commesse

Area funzionale: Laboratori Odontotecnici / Operativo Programma documentato: COGZ45 | Righe codice: 5.346


Indice

  1. Panoramica
  2. Logica riconoscimento barcode
  3. Comandi barcode disponibili
  4. Flusso operativo
  5. Pulsanti funzione
  6. File principali
  7. Programmi chiamati
  8. 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)

  1. Caricamento configurazioni (righe 492-495):
  2. Lettura configurazioni generali (COGTABEL)
  3. Configurazioni specifiche operatore
  4. Parametri laboratorio odontotecnico

  5. Creazione pulsanti custom (righe 415-483):

  6. 10 bitmap custom caricate da file labodonto e labodonto2
  7. Creazione pulsanti funzione F2-F10, Shift+F5, Shift+F6, Shift+F7

  8. Inizializzazione griglia (righe 1249-1310):

  9. Preparazione struttura griglia avanzamento
  10. 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:

  1. Esistenza commessa (riga 1778-1783): cobol perform rd-lodcmtes if not w-verbo-ok move "Commessa non esistente!!" to x-f3-msg

  2. Blocco laboratorio (riga 1785-1789):

  3. Verifica flag lct-blocco-lab
  4. Se "S", impedisce avanzamento

  5. Stato commessa (righe 1818-1850):

  6. N (Non aperta): blocco totale
  7. C (Completata): warning, permesso solo per Wilocs
  8. E (Evasa): warning, permesso solo per Wilocs
  9. U (Sospesa utente): blocco totale
  10. F (Presso subfornitore): blocco totale

  11. Filtro clinica (righe 1856-1872):

  12. Se configurato tm-cfg-clinica-ope, verifica appartenenza commessa alla clinica

  13. Caricamento azioni (loop e-10-loop, righe 1944-2086):

  14. Scansione LODCMRIG (righe commessa)
  15. Per ogni azione: carica dettagli, operatore, stato, controlli
  16. 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