Laboratorio Odontotecnico — Preparazione Commessa¶
Area funzionale: Laboratori Odontotecnici / Operativo Programmi documentati: COGZ41 + COGZD1 | Righe codice: 24.533 (7.531 + 17.002)
Indice¶
- Panoramica
- Differenze COGZ41 vs COGZD1
- Flusso operativo
- Logica preparazione
- Piani di fabbricazione
- Pulsanti funzione
- File principali
- Programmi chiamati
- Configurazioni
1. Panoramica¶
COGZ41 / COGZD1 — Preparazione Commessa¶
File:
- /programmi/eurocoge/cbl/cogz41.cbl (7.531 righe) — versione standard
- /programmi/eurocoge/cbl/cogzd1.cbl (17.002 righe) — versione avanzata
Autore: Andrea Parmeggiani - Eurosystem Conversione GUI: Gianluca 29/09/2007
Funzione principale: Step 2 del workflow laboratorio odontotecnico. Trasforma una prescrizione medica (COGZ40) in una commessa operativa assegnando un piano di fabbricazione personalizzato e generando le righe di lavorazione (azioni) che costituiranno la commessa.
Posizione nel workflow:
[1] COGZ40 (Prescrizione medica)
↓
[2] COGZ41 / COGZD1 (Preparazione commessa) ← TU SEI QUI
↓
[3] COGZ45 (Avanzamento lavori)
↓
[4] COGZB7 (Evasione commessa)
Caratteristiche chiave: - 📋 Piano di fabbricazione: Assegnazione piano personalizzato o da modelli standard - 🔄 Generazione azioni: Creazione righe commessa da piano di lavorazione - 🎨 Personalizzazione: Modifica sequenze, tempi, materiali per singola commessa - 🏗️ Tipo piano temporaneo: Piano specifico della commessa (non riutilizzabile) - 📊 Griglia interattiva: Visualizzazione e modifica azioni con drag&drop - 🔗 Collegamento prescrizione→commessa: Aggiornamento bidirezionale
Differenza fondamentale: - COGZ41: Basato su programma COGZ20, logica standard - COGZD1: Usa file di configurazione ODONTO.CNF, logica avanzata con gestione prestazioni/proprietà/fasi
2. Differenze COGZ41 vs COGZD1¶
2.1 Confronto architetturale¶
| Aspetto | COGZ41 (Standard) | COGZD1 (Avanzata) |
|---|---|---|
| Righe codice | 7.531 | 17.002 (+126%) |
| File configurazione | ODONTO.CNF (opzionale) | ODONTO.CNF obbligatorio |
| File temporanei | LODTMDES, LODTMMAT | + 4 file aggiuntivi (prestazioni, fasi, proprietà, collegamenti) |
| Logica prestazioni | Semplice | Complessa con proprietà e vincoli |
| Gestione fasi | Lineare | Gerarchica con ordinamento dinamico |
| Collegamento azioni-prestazioni | Diretto | Tramite file t-az-prest |
| Complessità UI | Standard | Avanzata con più livelli |
| Personalizzazione | Base | Estesa (proprietà, varianti, opzioni) |
2.2 File temporanei aggiuntivi COGZD1¶
COGZD1 usa 4 file indexed temporanei per gestire la logica avanzata:
1. T-PRESTAZIONI (cogzd1-t-prestazioni)¶
Memorizza le prestazioni selezionate per la commessa con linking a elementi/propriet à.
Struttura (principale):
01 t-prs-rec.
02 t-prs-id pic 9(04). * ID univoco prestazione
02 t-prs-seq pic 9(04). * Sequenza visualizzazione
02 t-prs-cod pic x(08). * Codice prestazione
02 t-prs-des pic x(40). * Descrizione
02 t-prs-elementi pic x(40). * Elementi dentali coinvolti
02 t-prs-qta pic 9(04). * Quantità
Chiavi:
- Primaria: t-prs-id
- Alternata: t-prs-seq (ordinamento)
2. T-PROPRIETA¶
Proprietà selezionate per ciascuna prestazione (materiali, colori, caratteristiche).
Struttura:
01 t-ppt-rec.
02 t-ppt-chia1.
03 t-ppt-prs-id pic 9(04). * ID prestazione
03 t-ppt-proprieta.
04 t-ppt-tab pic x(08). * Tabella proprietà
04 t-ppt-id pic 9(04). * ID proprietà
02 t-ppt-mat pic x(09). * Materiale collegato
02 t-ppt-mat-um pic x(02). * Unità misura
Chiave: t-ppt-prs-id + t-ppt-tab + t-ppt-id
3. T-FASI¶
Fasi (azioni) generate per la commessa da prestazioni/modelli.
Struttura:
01 t-fas-rec.
02 t-fas-id pic 9(04). * ID univoco fase
02 t-fas-prs-id pic 9(04). * Prestazione generatrice
02 t-fas-seq pic 9(04). * Sequenza fase
02 t-fas-ese-ord pic 9(04). * Ordine esecuzione
02 t-fas-azione-cod pic x(08). * Codice azione
02 t-fas-azione-des pic x(40). * Descrizione
02 t-fas-tempo pic 9(04). * Tempo previsto (minuti)
02 t-fas-operatore pic 9(03). * Operatore assegnato
Chiavi multiple per ricerche diverse:
- t-fas-chia1: ID fase (primaria)
- t-fas-chia2: Ordinamento esecuzione (ese-ord, prs-seq, seq, id)
- t-fas-chia3: Per prestazione (prs-id, id)
- t-fas-chia4: Per prestazione ordinato (prs-id, seq, id)
4. T-AZ-PREST¶
Collegamento bidirezionale azioni ↔ prestazioni (una fase può derivare da più prestazioni).
Struttura:
01 t-cpa-rec.
02 t-cpa-chia1.
03 t-cpa-prs-id pic 9(04). * ID prestazione
03 t-cpa-fas-id pic 9(04). * ID fase
Chiavi:
- t-cpa-chia1: Da prestazione a fasi
- t-cpa-chia2: Da fase a prestazioni (fas-id, prs-id)
2.3 Quando usare quale versione¶
| Scenario | Versione | Motivo |
|---|---|---|
| Laboratorio semplice, pochi prodotti | COGZ41 | Meno complessità, più veloce |
| Prodotti standardizzati, poche varianti | COGZ41 | Piano fisso sufficiente |
| Laboratorio complesso, molti prodotti | COGZD1 | Gestione avanzata prestazioni |
| Prodotti altamente personalizzabili | COGZD1 | Proprietà/varianti dinamiche |
| Necessità analisi prestazioni-azioni | COGZD1 | File t-az-prest per reportistica |
| Vincoli tra prestazioni | COGZD1 | Logica controlli ODONTO.CNF |
| Fasi con ordinamento complesso | COGZD1 | Chiavi multiple t-fasi |
Nota: La scelta è definita in configurazione e non è modificabile runtime. Una volta scelto, tutto il laboratorio usa la stessa versione.
3. Flusso operativo¶
3.1 Input: Prescrizione da COGZ40¶
Il programma riceve una prescrizione esistente con: - Studio medico - Paziente - Numero prescrizione - Stato: "N" (solo prescrizione) o "P" (prescrizione registrata)
Parametri linkage (comuni a entrambi):
01 w-dati-called.
02 w-dc-called pic x(01). * "S" = chiamato da altro programma
02 w-dc-pdf pic x(20). * PDF da elaborare (opzionale)
02 w-dc-riga-da pic 9(04). * Riga inizio elaborazione
02 w-dc-riga-a pic 9(04). * Riga fine elaborazione
02 w-dc-prescrizione. * Chiave prescrizione:
03 w-dc-studio pic 9(05). * - Studio medico
03 w-dc-paziente pic x(25). * - Paziente
03 w-dc-pro pic 9(10). * - Progressivo prescrizione
3.2 Flusso COGZ41 (Standard)¶
AVVIO COGZ41
│
├─ Caricamento prescrizione (LODPRESC)
├─ Verifica stato modificabile (N/P)
├─ Creazione 15 pulsanti custom
│
├─[SELEZIONE PIANO FABBRICAZIONE]
│ ├─ Scelta da modelli standard (LODPFSTD)
│ ├─ Lookup piano esistente (LODPNTES)
│ └─ Creazione piano nuovo "Temporaneo"
│
├─[GENERAZIONE RIGHE COMMESSA]
│ ├─ Lettura righe piano (LODPNRIG)
│ ├─ Per ogni riga piano:
│ │ ├─ Crea riga commessa (LODCMRIG)
│ │ ├─ Copia azione, tempi, operatore
│ │ ├─ Assegna sequenza (fase1.fase2.fase3)
│ │ └─ Carica materiali (LODPNMAT → temp)
│ └─ Salvataggio temporaneo in LODTMDES
│
├─[PERSONALIZZAZIONE GRIGLIA]
│ ├─ Visualizzazione 800 righe max
│ ├─ Colonne: Sequenza, Azione, Tempo, Operatore, Materiali, etc.
│ ├─ Modifica inline: tempi, operatori, flag
│ ├─ Drag&drop per riordinamento
│ └─ Aggiungi/Togli azioni
│
├─[F3 CONFERMA: CREAZIONE COMMESSA]
│ ├─ Generazione numero commessa
│ ├─ WRITE LODCMTES (testata commessa)
│ │ ├─ Copia dati da prescrizione
│ │ ├─ Stato = "A" (Aperta)
│ │ └─ Riferimento piano fabbricazione
│ ├─ WRITE LODCMRIG (righe commessa)
│ │ └─ Tutte le righe dalla griglia
│ ├─ WRITE LODCMMMD (materiali commessa)
│ │ └─ Se presenti materiali su righe
│ ├─ REWRITE LODPRESC
│ │ ├─ lpm-num-com = numero commessa creato
│ │ └─ lpm-stato = "A"
│ └─ Pulizia file temporanei
│
└─ Chiusura programma
3.3 Flusso COGZD1 (Avanzata)¶
AVVIO COGZD1
│
├─ Caricamento prescrizione (LODPRESC)
├─ Verifica stato modificabile (N/P)
├─ Lettura ODONTO.CNF (configurazione obbligatoria)
├─ Creazione 15 pulsanti custom
│
├─[SELEZIONE PRESTAZIONI]
│ ├─ Popup selezione prestazioni (da catalogo)
│ ├─ Per ogni prestazione selezionata:
│ │ ├─ WRITE T-PRESTAZIONI
│ │ ├─ Assegna ID univoco (contatore)
│ │ ├─ Elementi dentali coinvolti
│ │ └─ Quantità
│ │
│ └─[SELEZIONE PROPRIETÀ per prestazione]
│ ├─ Lookup proprietà disponibili (ODONTO.CNF)
│ ├─ Popup scelta: materiali, colori, caratteristiche
│ ├─ WRITE T-PROPRIETA per ogni selezione
│ └─ Collegamento materiali automatico
│
├─[GENERAZIONE FASI DA PRESTAZIONI]
│ ├─ Per ogni prestazione in T-PRESTAZIONI:
│ │ ├─ Lettura modello prestazione (ODONTO.CNF)
│ │ ├─ Generazione fasi/azioni da modello
│ │ ├─ WRITE T-FASI per ogni azione generata
│ │ ├─ Calcolo sequenze/ordinamento
│ │ └─ WRITE T-AZ-PREST (collegamento)
│ │
│ └─[APPLICAZIONE PROPRIETÀ A FASI]
│ ├─ Per ogni proprietà in T-PROPRIETA:
│ ├─ Identifica fasi impattate
│ ├─ Aggiorna materiali fasi (T-FASI)
│ └─ Aggiorna tempi se necessario
│
├─[RIORDINAMENTO FASI]
│ ├─ Lettura T-FASI ordinato per ese-ord
│ ├─ Algoritmo ordinamento rispettando vincoli:
│ │ ├─ Priorità prestazioni
│ │ ├─ Dipendenze tra fasi
│ │ └─ Parallelismo possibile
│ └─ Aggiornamento t-fas-ese-ord
│
├─[PERSONALIZZAZIONE GRIGLIA]
│ ├─ Visualizzazione fasi da T-FASI
│ ├─ Colonne estese: +Prestazione, +Proprietà
│ ├─ Modifica inline avanzata
│ ├─ Drag&drop con ricalcolo vincoli
│ └─ Aggiungi/Togli con propagazione
│
├─[F3 CONFERMA: CREAZIONE COMMESSA]
│ ├─ Generazione numero commessa
│ ├─ WRITE LODCMTES (testata commessa)
│ │ ├─ Copia dati prescrizione
│ │ ├─ Stato = "A"
│ │ └─ Riferimenti prestazioni/piano
│ ├─ WRITE LODCMRIG (righe da T-FASI)
│ │ └─ Conversione T-FASI → LODCMRIG
│ ├─ WRITE LODCMDET (dettaglio prestazioni)
│ │ └─ Da T-PRESTAZIONI
│ ├─ WRITE LODCMMMD (materiali)
│ │ └─ Da T-PROPRIETA + T-FASI
│ ├─ WRITE LODINFCC (info commessa clinica)
│ │ └─ Collegamenti prestazioni-fasi da T-AZ-PREST
│ ├─ REWRITE LODPRESC
│ │ ├─ lpm-num-com = numero commessa
│ │ └─ lpm-stato = "A"
│ ├─ Pulizia file temporanei (T-*)
│ └─ Logging operazioni
│
└─ Chiusura programma
4. Logica preparazione¶
4.1 Numero commessa¶
Generazione automatica:
Numero commessa = Numero prescrizione + Suffisso
Esempio:
Prescrizione: 0000012345
Commessa: 1234500001 (10 cifre)
Formato: pic 9(10)
Se esistono più commesse per stessa prescrizione:
- Prima commessa: 1234500001
- Seconda commessa: 1234500002
- etc.
4.2 Piano di fabbricazione¶
Tipo piano: "T" (Temporaneo)¶
Caratteristiche piano temporaneo:
- ✅ Specifico della singola commessa
- ✅ Modificabile liberamente
- ❌ Non riutilizzabile per altre commesse
- ✅ Generato da piano standard ma personalizzato
- ✅ Memorizzato in LODPNTES/LODPNRIG
Processo creazione:
- Selezione modello (piano standard o esistente)
- Copia righe da piano modello
- Assegnazione chiave univoca piano temporaneo
- Personalizzazione per commessa specifica
- Salvataggio LODPNTES + LODPNRIG
4.3 Sequenza azioni (Fase1.Fase2.Fase3)¶
Le azioni nella commessa hanno una sequenza gerarchica a 3 livelli:
Sequenza: 01.02.03
│ │ └─ Fase 3 (micro-step)
│ └──── Fase 2 (sub-step)
└─────── Fase 1 (macro-step)
Esempio pratico:
01.00.00 Preparazione modello
01.01.00 Impronta superiore
01.01.01 Verifica impronte
01.01.02 Pulizia impronta
01.02.00 Impronta inferiore
01.02.01 Verifica impronte
01.02.02 Pulizia impronta
02.00.00 Lavorazione protesi
02.01.00 Struttura metallica
02.01.01 Preparazione metallo
02.01.02 Fusione
02.02.00 Ceramica
Riordinamento:
- Drag&drop nella griglia
- Ricalcolo automatico sequenze
- Mantenimento gerarchie
- Validazione vincoli dipendenze
4.4 Materiali su azioni¶
Associazione materiali (COGZ41):
Piano fabbricazione (LODPNRIG)
└─> Materiali piano (LODPNMAT)
└─> Copia su temporaneo (LODTMMAT)
└─> Salva su commessa (LODCMMMD)
Associazione materiali avanzata (COGZD1):
Prestazione (T-PRESTAZIONI)
└─> Proprietà (T-PROPRIETA)
├─> Materiale associato (t-ppt-mat)
└─> Fase impattata (T-FASI)
└─> Materiale su azione (LODCMMMD)
5. Piani di fabbricazione¶
5.1 Tipologie piani¶
| Tipo | Codice | Descrizione | Uso | Riutilizzabile |
|---|---|---|---|---|
| Standard | S | Modelli predefiniti per tipo lavoro | Selezione iniziale | ✅ Sì |
| Personalizzato | P | Piani creati e salvati da operatore | Riuso frequente | ✅ Sì |
| Temporaneo | T | Piano specifico commessa | Preparazione commessa | ❌ No |
5.2 Struttura piano¶
LODPNTES (Testata piano):
01 lpt-rec.
02 lpt-cod pic x(20). * Codice piano
02 lpt-des pic x(40). * Descrizione
02 lpt-tipo pic x(01). * S/P/T
02 lpt-tot-tempo pic 9(06). * Tempo totale (minuti)
02 lpt-tot-righe pic 9(04). * Numero righe
LODPNRIG (Righe piano):
01 lpr-rec.
02 lpr-piano pic x(20). * Chiave piano
02 lpr-prog pic 9(04). * Progressivo riga
02 lpr-sequenza. * Sequenza gerarchica:
03 lpr-fas-1 pic 9(02). * Fase 1
03 lpr-fas-2 pic 9(02). * Fase 2
03 lpr-fas-3 pic 9(02). * Fase 3
02 lpr-azione pic x(08). * Codice azione (LODAZION)
02 lpr-azione-des pic x(40). * Descrizione azione
02 lpr-tempo-std pic 9(04). * Tempo standard (minuti)
02 lpr-operatore pic 9(03). * Operatore assegnato
02 lpr-fl-rep pic x(01). * Flag reparto
02 lpr-note pic x(80). * Note riga
LODPNMAT (Materiali piano):
01 lmt-rec.
02 lmt-piano pic x(20). * Chiave piano
02 lmt-riga pic 9(04). * Riga piano riferimento
02 lmt-tip-merce pic x(01). * Tipo merce (articolo/kit)
02 lmt-merce. * Chiave merce:
03 lmt-gru pic x(02). * Gruppo
03 lmt-sot pic x(02). * Sottogruppo
03 lmt-cod pic 9(05). * Codice
02 lmt-qta pic 9(06)v9(03). * Quantità
02 lmt-um pic x(02). * Unità misura
5.3 Conversione Piano → Commessa¶
Mapping campi:
| Campo piano (LODPNRIG) | Campo commessa (LODCMRIG) |
|---|---|
| lpr-piano | lcr-piano-orig (riferimento) |
| lpr-prog | - (rigenerato) |
| lpr-sequenza | lcr-sequenza (identica) |
| lpr-azione | lcr-azione |
| lpr-azione-des | lcr-azione-des |
| lpr-tempo-std | lcr-tempo-std |
| lpr-operatore | lcr-operatore |
| lpr-fl-rep | lcr-fl-rep |
| lpr-note | lcr-note |
Campi aggiuntivi commessa (non su piano):
- lcr-data-inizio: Data inizio prevista
- lcr-data-fine: Data fine prevista
- lcr-stato: Stato azione (N/A/C/S)
- lcr-tempo-effettivo: Tempo consuntivo
- lcr-ope-effettivo: Operatore effettivo
- lcr-data-inizio-eff: Data inizio effettiva
- lcr-data-fine-eff: Data fine effettiva
6. Pulsanti funzione¶
Tabella pulsanti (15 pulsanti comuni)¶
| Tasto | Codice | Funzione | Descrizione | Disponibilità |
|---|---|---|---|---|
| F1 | k-f1-prestazione (06) | Aggiungi prestazione | Solo COGZD1: selezione prestazione da catalogo | COGZD1 |
| F1 | k-f1-riapri (04) | Riapri commessa | Riapre commessa chiusa per modifica | Entrambi |
| F2 | k-f2-sblocca (14) | Sblocca commessa | Toglie blocco laboratorio da commessa | Entrambi |
| F3 | - | Conferma | Salva e crea commessa definitiva | Entrambi |
| F4 | k-f4-rinumera (08) | Rinumera sequenze | Riassegna sequenze automaticamente | Entrambi |
| F5 | k-f5-commessa (01) | Dati commessa | Visualizza/modifica dati testata commessa | Entrambi |
| F5 | k-f5-materiali (07) | Gestione materiali | Materiali associati a riga selezionata | Entrambi |
| F6 | k-f6-blocca (13) | Blocca commessa | Imposta blocco laboratorio su commessa | Entrambi |
| F6 | k-f6-rientro (03) | Rientro | Gestione rientro da lavorazione esterna | Entrambi |
| F6 | k-f6-gestione (05) | Gestione azione | Dettaglio completo azione selezionata | Entrambi |
| F7 | k-f7-aggiungi (10) | Aggiungi azione | Inserisce nuova azione in griglia | Entrambi |
| F7 | k-f7-togli-apertura (02) | Togli apertura | Rimuove azione selezionata | Entrambi |
| F9 | k-f9-note (09) | Note lavoro | Note estese di lavorazione (COGZDEW) | Entrambi |
| Shift+F1 | k-s-f1-presc (11) | Torna a prescrizione | Ritorna a COGZ40 senza salvare | Entrambi |
| Shift+F5 | k-s-f5-avanz (12) | Avanzamento | Vai a COGZ45 (dopo salvataggio) | Entrambi |
| Shift+F7 | k-s-f7-fascicolo (15) | Fascicolo tecnico | Apre fascicolo tecnico paziente (COGZ51) | Entrambi |
Bitmap utilizzate:
- File
labodonto(handle 1): varie bitmap - File
labodonto2(handle 2): bitmap aggiuntive
7. File principali¶
7.1 File generali (comuni)¶
| File | Prefisso | Descrizione | Accesso |
|---|---|---|---|
| FEURTAB | - | Tabelle file gestionali | R |
| COGTABEL | euta- | Tabelle configurazione | R |
| COGGEANA | ana- | Anagrafica generale | R |
7.2 File laboratorio (comuni)¶
| File | Prefisso | Descrizione | Accesso | Uso |
|---|---|---|---|---|
| LODPRESC | lpm- | Prescrizioni mediche | R/W | Input prescrizione, update dopo creazione |
| LODCMTES | lct- | Commesse testa | W | Output: testata commessa creata |
| LODCMRIG | lcr- | Commesse righe (azioni) | W | Output: righe commessa create |
| LODCMMMD | lmd- | Commesse materiali | W | Output: materiali associati |
| LODPNTES | lpt- | Piani fabbricazione testa | R/W | Piano modello e piano temporaneo |
| LODPNRIG | lpr- | Piani fabbricazione righe | R/W | Righe piano modello e temporaneo |
| LODPNMAT | lmt- | Piani fabbricazione materiali | R | Materiali da piano modello |
| LODPFSTD | pfs- | Piani standard predefiniti | R | Selezione piano modello |
| LODAZION | laz- | Anagrafica azioni | R | Descrizioni azioni |
| LODTABEL | lt*- | Tabelle laboratorio | R | Configurazioni varie |
| LODTMDES | - | Temporaneo descrizioni | R/W | Work file temporaneo COGZ41 |
| LODTMMAT | - | Temporaneo materiali | R/W | Work file temporaneo COGZ41/COGZD1 |
7.3 File specifici COGZD1¶
| File | Tipo | Descrizione | Chiave | Uso |
|---|---|---|---|---|
| T-PRESTAZIONI | Indexed temp | Prestazioni selezionate | t-prs-id | Gestione prestazioni commessa |
| T-PROPRIETA | Indexed temp | Proprietà per prestazione | t-ppt-prs-id + proprieta | Varianti/materiali prestazione |
| T-FASI | Indexed temp | Fasi generate | 4 chiavi alternative | Azioni da prestazioni |
| T-AZ-PREST | Indexed temp | Collegamento azioni↔prestazioni | bidirezionale | Tracciabilità derivazione |
| LODCMDET | lcd- | Commesse dettaglio prestazioni | W | Salvataggio prestazioni su commessa |
| LODINFCC | icc- | Info commessa clinica | W | Collegamenti avanzati |
Nota: I file T-* sono temporanei creati all'avvio e cancellati alla fine. Non persistono tra sessioni.
8. Programmi chiamati¶
8.1 Programmi laboratorio comuni¶
| Programma | Funzione | Uso |
|---|---|---|
| COGZ30 | Gestione piani fabbricazione | Selezione/modifica piano (util-z30) |
| COGZ61 | Gestione commesse base | Creazione numero commessa, validazioni |
| COGZ93 | Gestione commesse 93 | Utility commesse (util-z93) |
| COGZ51 | Fascicolo tecnico | Shift+F7, gestione fascicolo paziente |
| COGZ45 | Avanzamento lavori | Shift+F5, passaggio a fase successiva |
| COGZ23 | Lookup commessa | Ricerca commesse esistenti |
| COGZ25 | Gestione azioni | Modifica azioni (util-z25) |
| COGZ31 | Gestione righe commessa | Utility righe (util-z31) |
| COGZDEW | Note estese | F9, gestione note lavoro |
| COGZC1 | Utility commesse C1 | Funzioni supporto (util-zc1) |
| COGZC5 | Utility commesse C5 | Funzioni supporto (util-cogzc5) |
| COGZC8 | Utility commesse C8 | Funzioni supporto (util-cogzc8) |
| COGZCH | Utility check commesse | Controlli validazione (util-cogzch) |
8.2 Programmi specifici COGZD1¶
| Programma | Funzione | Uso |
|---|---|---|
| COGZ48 | Stesura progetto tecnico | Gestione progetto commessa (util-z48) |
| COGZ13 | Gestione elementi dentali | Elementi coinvolti prestazione |
| COGZD1A | Utility COGZD1 A | Funzioni ausiliarie (util-cogzd1a) |
| COGZDC | Gestione configurazione ODONTO.CNF | Lettura/parsing configurazione (util-cogzdc) |
| COGZCN | Gestione connessioni | Collegamenti prestazioni (util-cogzcn) |
| COGZS5 | Utility S5 | Funzioni di supporto (util-zs5) |
| WINZ04 | Window utility 04 | Popup selezione (util-wz04) |
| WINZ07 | Window utility 07 | Popup proprietà (util-wz07) |
| WINZ22 | Window utility 22 | Popup avanzati (util-wz22) |
8.3 Programmi generali¶
| Programma | Funzione | Uso |
|---|---|---|
| COGU10W | Utility generale 10 | Gestione commesse (util-u10) |
| COGU06 | Gestione allegati | Archiviazione documenti (util-u06) |
| COGS98W | Utility 98 | Funzioni supporto (util-s98) |
| GRIDADMN | Amministrazione griglia | Gestione griglia azioni |
| DIALOGS | Dialoghi GUI | Popup e conferme (util-dlg) |
| COGF12 | Gestione finanziaria | Controlli amministrativi |
9. Configurazioni¶
9.1 File ODONTO.CNF (COGZD1)¶
Posizione: Directory configurazione applicativo Formato: INI-style configuration file Obbligatorio: Sì per COGZD1, opzionale per COGZ41
Sezioni principali:
[PRESTAZIONI]¶
Definizione prestazioni disponibili.
[PRESTAZIONI]
PREST001=Corona singola,COR,1
PREST002=Ponte 3 elementi,PON,3
PREST003=Protesi mobile totale,PMT,1
[PROPRIETA]¶
Proprietà configurabili per prestazione.
[PROPRIETA]
MATERIALE=Materiale base,MAT,T
COLORE=Colore ceramica,COL,L
FINITURA=Tipo finitura,FIN,V
[MATERIALE]¶
Valori ammessi per proprietà MATERIALE.
[MATERIALE]
CERAMICA=Ceramica standard
ZIRCONIO=Zirconio
DISILICATO=Disilicato di litio
[MODELLI]¶
Modelli di fasi per prestazione.
[MODELLI]
PREST001_FASI=3
PREST001_FASE1=IMPRC01,Impronta,30,
PREST001_FASE2=MODMC01,Modello,45,
PREST001_FASE3=CERMC01,Ceramica,120,
[VINCOLI]¶
Vincoli tra prestazioni e fasi.
[VINCOLI]
; Se PREST001 selezionato, PREST002 incompatibile
INCOMP_PREST001=PREST002
; Se MATERIALE=ZIRCONIO, FASE=CERMC02 (non CERMC01)
PROP_MAT_ZIRC_FASE=CERMC02
9.2 Configurazioni COGTABEL¶
Configurazioni specifiche preparazione commessa (tipo 70):
01 tm-cfg-preparazione.
02 tm-cfg-piano-default pic x(20). * Piano default se non scelto
02 tm-cfg-genera-auto-mat pic x(01). * S/N genera materiali auto
02 tm-cfg-copia-note-prescr pic x(01). * S/N copia note prescrizione
02 tm-cfg-assegna-ope-auto pic x(01). * S/N assegna operatore auto
02 tm-cfg-operatore-default pic 9(03). * Operatore default
02 tm-cfg-calcolo-tempi pic x(01). * M=Manuale, A=Automatico
02 tm-cfg-usa-odonto-cnf pic x(01). * S=COGZD1, N=COGZ41
02 tm-cfg-validazione-vincoli pic x(01). * S/N valida vincoli ODONTO.CNF
9.3 Parametri linkage¶
Chiamata da COGZ40 (prescrizione):
CALL "COGZ41" USING stringhe w-dati-called
* oppure
CALL "COGZD1" USING stringhe w-dati-called
Dove w-dati-called contiene:
w-dc-called = "S"
w-dc-prescrizione = chiave prescrizione (studio+paziente+prog)
Chiamata standalone:
CALL "COGZ41" USING stringhe
* w-dc-called = "N" o spaces
* Richiede input manuale prescrizione
Diagramma flusso integrato¶
[COGZ40] Prescrizione medica
│
├─ F5: Crea commessa
│
├─── Se tm-cfg-usa-odonto-cnf = "N" ────> [COGZ41 STANDARD]
│ │
│ ├─ Carica prescrizione LODPRESC
│ ├─ Seleziona piano standard
│ │ └─> Lookup LODPFSTD
│ ├─ Crea piano temporaneo
│ │ ├─> WRITE LODPNTES (tipo T)
│ │ └─> WRITE LODPNRIG (copia da std)
│ ├─ Carica materiali
│ │ └─> LODPNMAT → LODTMMAT
│ ├─ Visualizza griglia azioni
│ │ ├─ Modifica tempi/operatori
│ │ ├─ Riordina sequenze
│ │ └─ Aggiungi/Rimuovi azioni
│ ├─ F3: Conferma
│ ├─> WRITE LODCMTES
│ ├─> WRITE LODCMRIG (da griglia)
│ ├─> WRITE LODCMMMD (da LODTMMAT)
│ ├─> REWRITE LODPRESC (stato=A)
│ └─> Pulizia temp + chiusura
│
└─── Se tm-cfg-usa-odonto-cnf = "S" ────> [COGZD1 AVANZATA]
│
├─ Carica prescrizione LODPRESC
├─ Lettura ODONTO.CNF
├─ OPEN file temporanei (T-*)
│
├─[FASE 1: PRESTAZIONI]
│ ├─ F1: Seleziona prestazioni
│ ├─ Popup catalogo (da ODONTO.CNF)
│ ├─ Per ogni prestazione:
│ │ ├─> WRITE T-PRESTAZIONI
│ │ ├─ Assegna ID univoco
│ │ ├─ Elementi dentali (COGZ13)
│ │ └─ Quantità
│ │
│ └─[PROPRIETÀ PRESTAZIONE]
│ ├─ Popup proprietà (WINZ07)
│ ├─ Selezioni: materiale/colore/etc
│ └─> WRITE T-PROPRIETA
│
├─[FASE 2: GENERAZIONE FASI]
│ ├─ Per ogni T-PRESTAZIONI:
│ │ ├─ Legge modello (ODONTO.CNF)
│ │ ├─ Genera azioni da modello
│ │ ├─> WRITE T-FASI (per ogni azione)
│ │ └─> WRITE T-AZ-PREST (collegamento)
│ │
│ ├─ Applica proprietà a fasi:
│ │ ├─ Per ogni T-PROPRIETA:
│ │ ├─ Identifica T-FASI impattate
│ │ └─> REWRITE T-FASI (materiali)
│ │
│ └─ Ordinamento fasi:
│ ├─ Algoritmo sequenze ottimali
│ ├─ Rispetta vincoli ODONTO.CNF
│ └─> REWRITE T-FASI (ese-ord)
│
├─[FASE 3: PERSONALIZZAZIONE]
│ ├─ Visualizza griglia da T-FASI
│ ├─ Colonne estese (+Prestazione)
│ ├─ Modifica inline avanzata
│ ├─ Drag&drop con vincoli
│ └─ Aggiungi/Rimuovi con validazione
│
├─[FASE 4: CONFERMA F3]
│ ├─ Generazione numero commessa
│ ├─> WRITE LODCMTES
│ ├─> WRITE LODCMRIG (da T-FASI)
│ ├─> WRITE LODCMDET (da T-PRESTAZIONI)
│ ├─> WRITE LODCMMMD (da T-PROPRIETA/FASI)
│ ├─> WRITE LODINFCC (da T-AZ-PREST)
│ ├─> REWRITE LODPRESC (stato=A)
│ └─ Pulizia file T-* + chiusura
│
└─> [COGZ45] Avanzamento lavori
Note implementative¶
Validazioni commessa¶
Controlli pre-creazione:
* Prescrizione deve esistere
if not w-verbo-ok after READ LODPRESC
display "Prescrizione non trovata"
exit
end-if
* Prescrizione non deve avere già commessa
if lpm-num-com > 0
display "Prescrizione già ha commessa collegata"
exit
end-if
* Stato deve permettere apertura commessa
if lpm-stato not = "N" and not = "P"
display "Stato prescrizione non valido per apertura commessa"
exit
end-if
* Deve avere almeno 1 azione in griglia
if tm-grid-pnt = 0
display "Inserire almeno una azione nella commessa"
exit
end-if
Performance COGZD1¶
Ottimizzazioni file temporanei:
- File T-* creati in RAM disk se disponibile
- Indici multipli per ricerche veloci
- Pulizia automatica a fine elaborazione
Limiti dimensionali:
- Max prestazioni: 100 per commessa
- Max proprietà: 500 totali (5 per prestazione media)
- Max fasi: 800 (limite griglia)
- Max collegamenti: 2.000 (t-az-prest)
Differenze comportamento¶
Modifica commessa esistente:
- COGZ41: Riapre piano temporaneo, modifica, salva
- COGZD1: Rilegge LODCMDET/LODINFCC, ricrea T-*, modifica, salva
Annullamento:
- COGZ41: Pulizia LODTMDES/LODTMMAT
- COGZD1: CLOSE + DELETE file T-* (automatico)
Documentato da: Claude (Anthropic) Data: 2026-03-03 Versione: 1.0