Vai al contenuto

Laboratorio Odontotecnico — Prescrizioni Mediche

Area funzionale: Laboratori Odontotecnici / Operativo Programma documentato: COGZ40 | Righe codice: 7.428


Indice

  1. Panoramica
  2. Struttura dati prescrizione
  3. Funzionalità principali
  4. Pulsanti funzione
  5. Flusso operativo
  6. File principali
  7. Programmi chiamati
  8. Configurazioni
  9. Validazioni

1. Panoramica

COGZ40 — Gestione Prescrizioni Mediche

File: /programmi/eurocoge/cbl/cogz40.cbl (7.428 righe) Autore: Andrea Parmeggiani - Eurosystem Conversione GUI: Daniele

Funzione principale: Punto di ingresso del workflow laboratorio odontotecnico. Gestisce l'inserimento, modifica e visualizzazione delle prescrizioni mediche che costituiscono la base per la successiva creazione delle commesse di laboratorio.

Posizione nel workflow:

[1] COGZ40 (Prescrizione medica) ← TU SEI QUI
     ↓
[2] COGZ41/COGZD1 (Preparazione commessa)
     ↓
[3] COGZ45 (Avanzamento lavori)
     ↓
[4] COGZB7 (Evasione commessa)

Caratteristiche chiave: - 🏥 Gestione completa anagrafica: studio medico, paziente, medico prescrittore - 📋 Numerazione automatica: progressivo prescrizioni configurabile - 📅 Gestione date: entrata, consegna prevista, consegna effettiva - 💰 Preventivo: importo stimato in divisa configurabile - 📎 Allegati: gestione immagini e documenti (archiviazione automatica) - 🔄 Stati: gestione ciclo di vita prescrizione (N/A/C/E) - 📊 Integrazioni: agenti, distributori, bollettini, impegni


2. Struttura dati prescrizione

2.1 Chiave prescrizione

La prescrizione è identificata univocamente da 3 componenti:

Campo Tipo Descrizione
tm-cli pic 9(05) Codice studio medico/cliente
tm-paziente pic x(25) Codice paziente (alfanumerico)
tm-pro pic 9(10) Progressivo prescrizione (numero interno)

Chiave file: LODPRESC (lpm-studio + lpm-paziente + lpm-num)

2.2 Campi principali

Anagrafica

Campo Tipo Descrizione Obbligatorio
tm-num pic 9(10) Numero prescrizione interno ✅ Auto
tm-piano pic x(20) Descrizione piano di cura
tm-n-archivio pic x(12) Numero archivio/cartella paziente
tm-stato pic x(01) Stato (N/A/C/E/F/G/P/U/R)
tm-dottore pic x(40) Nome medico prescrittore
tm-prescrittore Codice medico prescrittore
├─ tm-cp-tip pic x(01) Tipo (M=Medico, A=Agente, etc.)
└─ tm-dottore-cod pic 9(10) Codice anagrafico

Importi e commerciale

Campo Tipo Descrizione
tm-imp-preventivo pic 9(12)v999999 Importo preventivo stimato
tm-imp-divisa pic x(02) Divisa importo (EUR, USD, etc.)
tm-age-cod pic 9(05) Codice agente commerciale
tm-age-des pic x(40) Descrizione agente
tm-dist-cod pic 9(05) Codice distributore
tm-dist-des pic x(40) Descrizione distributore

Date e tempi

Campo Tipo Descrizione
tm-data-ent pic 9(08) Data entrata prescrizione (AAAAMMGG)
tm-data-cns pic 9(08) Data consegna prevista (AAAAMMGG)
tm-ora-cns pic 9(04) Ora consegna prevista (HHMM)
tm-data-cons-eff pic 9(08) Data consegna effettiva (AAAAMMGG)
tm-ora-cons-eff pic 9(04) Ora consegna effettiva (HHMM)
tm-data-ordine pic 9(08) Data ordinazione materiali

Dati paziente

Campo Tipo Descrizione
tm-paz-esteso pic x(40) Nome completo paziente
tm-data-nascita pic 9(08) Data nascita paziente
tm-anni pic 9(03) Età calcolata
tm-telefono pic x(25) Telefono paziente
tm-rif-paziente pic x(30) Riferimento esterno paziente
tm-paz-indi pic x(80) Indirizzo completo paziente
tm-cassetta pic x(15) Numero cassetta/contenitore

Altri dati

Campo Tipo Descrizione
tm-com-4 / tm-com-5 pic 9(04/05) Numero commessa collegata
tm-presc pic x(20) Numero prescrizione esterna
tm-fl-preventivo pic x(01) Flag richiede preventivo
tm-fl-progetto pic x(01) Flag richiede progetto tecnico
tm-tip-doc pic x(01) Tipo documento (configurabile)
tm-fl-image pic x(01) Flag ha immagini allegate
tm-ordine pic x(03) Numero ordine materiali
tm-cod-alle pic x(10) Codice allegato/immagine

2.3 Stati prescrizione

Codice Costante Descrizione Modificabile
N k-lo-com-solo-presc Solo prescrizione (non ancora commessa)
P k-lo-com-prescr Prescrizione registrata
A k-lo-com-aperta Commessa aperta (da COGZ41)
C k-lo-com-chiusa Commessa chiusa
E k-lo-com-evasa Commessa evasa
F k-lo-com-lav-esterna Presso fornitore esterno
G k-lo-com-boll-anticipato Bollettino anticipato
U k-lo-com-prova Sospesa per controllo utente
R k-lo-com-rientro Rientro da controllo

Nota: Stati A-E-F-G-U-R rendono la prescrizione non modificabile (solo consultazione).


3. Funzionalità principali

3.1 Inserimento nuova prescrizione

Flusso:

  1. Selezione studio medico (tm-cli):
  2. Lookup su COGGEANA tipo "C" (clienti)
  3. Caricamento dati studio (indirizzo, contatti)

  4. Identificazione paziente (tm-paziente):

  5. Codice alfanumerico max 25 caratteri
  6. Se configurato, attribuzione automatica (tm-cfg-attrib-auto-paz)

  7. Assegnazione numero (tm-num):

  8. Se tm-cfg-num-aut = "S": numerazione automatica progressiva
  9. Altrimenti: inserimento manuale

  10. Compilazione dati:

  11. Medico prescrittore (lookup su anagrafica medici)
  12. Date entrata/consegna
  13. Importo preventivo
  14. Dati paziente (nome, telefono, indirizzo, età)
  15. Agente/distributore

  16. Salvataggio:

  17. WRITE su LODPRESC
  18. Logging operazione (se tm-cfg-log = "S")

3.2 Modifica prescrizione esistente

Validazioni:

  • ✅ Prescrizione deve esistere
  • ✅ Stato deve essere "N" o "P" (no commesse aperte)
  • ✅ Se tm-cfg-mod-consegna-se-chiusa = "N": blocco modifica se chiusa

Campi modificabili:

  • Tutti i campi della prescrizione
  • Date entrata/consegna
  • Importo preventivo
  • Agente/distributore
  • Note e allegati

Non modificabile:

  • Chiave prescrizione (studio/paziente/progressivo)
  • Numero commessa collegata (se esiste)

3.3 Cancellazione prescrizione

Condizioni:

  • Blocco assoluto se esiste commessa collegata (tm-com-4 o tm-com-5 valorizzati)
  • ❌ Blocco se stato diverso da "N" o "P"
  • ✅ Conferma obbligatoria dall'operatore

Operazioni:

  1. Verifica assenza commessa
  2. Conferma utente
  3. DELETE record LODPRESC
  4. Logging cancellazione

3.4 Consultazione prescrizione

Modalità:

  • Diretta: inserimento codice studio/paziente/progressivo
  • Ricerca avanzata (F9): filtri multipli su vari campi
  • Da chiamata esterna: parametro w-dc-called = "S" con chiave preimpostata

Informazioni visualizzate:

  • Tutti i dati della prescrizione
  • Eventuale commessa collegata (numero e stato)
  • Allegati/immagini disponibili
  • Note (interne, particolari, medico, lavoro)

4. Pulsanti funzione

Tabella pulsanti (15 pulsanti custom)

Tasto Codice Bitmap Funzione Programma Descrizione
F1 k-f1-note-interne (02) 29 Note interne - Inserimento note uso interno laboratorio
F2 k-f2-note-particol (03) 30 Note particolari - Note specifiche per la lavorazione
F5 k-f5-commessa (01) 5 Commessa COGZ41/COGZD1 Crea commessa da prescrizione
F5 k-f5-stampa-etic (04) 31 Stampa etichette - Stampa etichette prescrizione
F6 k-f6-materiale-cons (07) 34 Materiale consegnato - Materiali consegnati al paziente
F6 k-f6-bollettino (12) 62 Numero bollettino - Associa numero bollettino CCP
F6 k-f6-preventivi (14) 8 Preventivi COGZ43 Gestione preventivo economico
F7 k-f7-archivia-imm (08) 35 Archivia immagine COGU06 Archiviazione/visualizzazione immagini
F9 k-f9-note-lavoro (10) 37 Note lavoro COGZDEW Note di lavorazione estese
F10 k-f10-bollettini (13) 64 Gestione bollettini COGS65W Gestione completa bollettini CCP
Shift+F1 k-sf1-nuovo-fascicolo (11) 38 Nuovo fascicolo COGZ51 Crea fascicolo tecnico paziente
Shift+F4 k-sf4-fascicolo-tec (15) - Fascicolo tecnico COGZ51 Apre fascicolo esistente
Shift+F6 k-sf6-medici (05) 32 Medici COGZA7 Anagrafica medici prescrittori
Shift+F7 k-sf7-note-medico (06) 33 Note medico COGZDEW Istruzioni dal medico
Shift+F8 k-sf8-gest-impegno (09) 36 Gestione impegno - Pianificazione impegni su commessa

Bitmap utilizzate:

  • File labodonto (handle 1): bitmap 5, 8, 29-38, 62, 64
  • File labodonto2 (handle 2): (se presenti)

5. Flusso operativo

5.1 Inizializzazione

AVVIO COGZ40
     │
     ├─ Caricamento configurazioni (COGTABEL tipo 70)
     ├─ Verifica modalità chiamata (diretta / da COGZ07 / parametrica)
     ├─ Creazione 15 pulsanti custom
     ├─ Impostazione tasti funzione (F1, F3, F4, F8, F9)
     │
     └─ Se chiamato con parametri (w-dc-called="S")
        └─ Posizionamento diretto su prescrizione

5.2 Ciclo principale CRUD

┌─────────────────────────────────────────────────────────────────┐
│ CICLO ACCEPT MASCHERA                                           │
└─────────────┬───────────────────────────────────────────────────┘
              │
              ├─[CAMPO tm-cli] Studio medico
              │  ├─ Lookup COGGEANA tipo "C"
              │  ├─ Validazione esistenza
              │  └─ Caricamento indirizzo/contatti
              │
              ├─[CAMPO tm-paziente] Codice paziente
              │  ├─ Se vuoto + cfg auto: genera codice
              │  └─ Lunghezza max 25 caratteri
              │
              ├─[CAMPO tm-pro] Progressivo
              │  ├─ Se vuoto + cfg auto: next progressivo
              │  ├─ Altrimenti: inserimento manuale
              │  └─ Lookup prescrizione esistente
              │
              ├─[CAMPO tm-num] Numero prescrizione
              │  ├─ Se cfg num-aut="S": auto da contatore
              │  └─ Altrimenti: manuale
              │
              ├─[CAMPO tm-dottore] Medico prescrittore
              │  ├─ Ricerca su COGGEANA / COGMODST
              │  └─ Popolamento tm-prescrittore
              │
              ├─[CAMPO tm-age-cod] Agente
              │  ├─ Lookup COGTABEL tipo 21 (agenti)
              │  └─ Multi-agente se configurato
              │
              ├─[CAMPO tm-dist-cod] Distributore
              │  └─ Lookup COGGEANA tipo distributori
              │
              ├─[CAMPO tm-data-*] Date
              │  ├─ Validazioni formato AAAAMMGG
              │  ├─ CALL DTPRG / PRGDT (conversione giuliano)
              │  └─ Controllo coerenza date
              │
              └─[CAMPO tm-imp-preventivo] Importo
                 ├─ Formato 9(12)V999999
                 └─ Validazione divisa

5.3 Gestione tasti funzione

┌─ F3 (Conferma/Aggiorna) ──────────────────────────────────────┐
│  │                                                              │
│  ├─ [INSERIMENTO] tm-pro non esiste                            │
│  │  ├─ Validazione campi obbligatori                           │
│  │  ├─ WRITE LODPRESC                                          │
│  │  ├─ Logging (se abilitato)                                  │
│  │  └─ Messaggio "Inserimento effettuato"                      │
│  │                                                              │
│  └─ [MODIFICA] tm-pro esiste                                   │
│     ├─ Verifica stato modificabile (N/P)                       │
│     ├─ Controllo assenza commessa collegata                    │
│     ├─ REWRITE LODPRESC                                        │
│     └─ Logging (se abilitato)                                  │
└───────────────────────────────────────────────────────────────┘

┌─ F4 (Cancella) ───────────────────────────────────────────────┐
│  │                                                              │
│  ├─ Validazione esistenza prescrizione                         │
│  ├─ Verifica assenza commessa (tm-com-4/5 = 0)                 │
│  ├─ Conferma operatore                                         │
│  ├─ DELETE LODPRESC                                            │
│  └─ Messaggio "Cancellazione effettuata"                       │
└───────────────────────────────────────────────────────────────┘

┌─ F5 (Commessa) ───────────────────────────────────────────────┐
│  │                                                              │
│  ├─ Verifica prescrizione salvata                              │
│  ├─ Controllo stato = N o P                                    │
│  ├─ CALL COGZ41 o COGZD1 (preparazione commessa)              │
│  │  └─ Passa chiave prescrizione                               │
│  ├─ Ritorno: aggiornamento tm-com-4/5 se creata                │
│  └─ Refresh maschera                                           │
└───────────────────────────────────────────────────────────────┘

┌─ F7 (Archivia immagine) ──────────────────────────────────────┐
│  │                                                              │
│  ├─ CALL COGU06 (gestione allegati)                            │
│  │  ├─ Modalità: A=Archivia, V=Visualizza                      │
│  │  ├─ Tipo documento: LP (Prescrizione Lab.)                  │
│  │  └─ Chiave: studio+paziente+progressivo                     │
│  ├─ Aggiornamento tm-fl-image se allegati presenti             │
│  └─ Path archiviazione da tm-cfg-path-archiviazione-auto       │
└───────────────────────────────────────────────────────────────┘

┌─ F9 (Ricerca avanzata) ───────────────────────────────────────┐
│  │                                                              │
│  ├─ Apertura popup ricerca                                     │
│  ├─ Filtri disponibili:                                        │
│  │  ├─ Studio medico                                           │
│  │  ├─ Paziente (parziale)                                     │
│  │  ├─ Numero prescrizione                                     │
│  │  ├─ Range date entrata/consegna                             │
│  │  ├─ Stato                                                   │
│  │  └─ Agente/Distributore                                     │
│  ├─ Esecuzione query su LODPRESC                               │
│  ├─ Selezione da lista risultati                               │
│  └─ Caricamento prescrizione selezionata                       │
└───────────────────────────────────────────────────────────────┘

6. File principali

6.1 File generali

File Prefisso Descrizione Accesso
FEURTAB - Tabelle file gestionali R
COGTABEL euta- Tabelle configurazione R
COGGEANA ana- Anagrafica generale (studi, medici, pazienti) R/W
COGTESBO tes- Testate bolle/documenti R
COGAPPOG app- Appoggio temporaneo R/W
COGTESCM tsc- Testate commesse generali R
COGRACBB rbb- Raccordi buoni/bollettini R/W
COGDESCR des- Descrizioni variabili (multilingua) R
COGRIFER rif- Riferimenti esterni R/W
COGDESTI dst- Destinazioni uso R
COGANAPP anp- Anagrafica appoggio R
COGANAAG anag- Anagrafica agenti R
COGMODST mod- Modelli standard R
COGMOADG moadg- Modelli agenti R
PRNTOPER ptop- Operatori sistema R
LOGFILE - Log operazioni W

6.2 File laboratorio odontotecnico (LOD*)

File Prefisso Descrizione Accesso Chiave
LODTABEL lt*- Tabelle configurazione laboratorio R tipo+codice
LODDESCR - Descrizioni laboratorio R -
LODRACCO - Raccordi R/W -
LODPNTES lpt- Piani di lavoro (testa) R numero piano
LODPNRIG lpr- Piani di lavoro (righe) R piano+riga
LODPRESC lpm- Prescrizioni mediche (file principale) R/W/D studio+paziente+numero
LODCMTES lct- Commesse laboratorio (testa) R numero commessa
LODCMRIG lcr- Commesse laboratorio (righe) R commessa+riga
LODFASCI lfc- Fascicoli tecnici pazienti R/W studio+paziente+numero
LODPFSTD pfs- Piani fabbricazione standard R codice
LODCMAGG cma- Commesse aggiuntive R -
LODBOLCL lbc- Bollettini clienti/CCP R/W numero
LODINFCC icc- Informazioni commesse clinica R/W -
LODCMAG2 - Commesse magazzino 2 R/W -
LODTABDU - Tabelle dati utente R -
LODMODST - Modelli standard laboratorio R -
LODRMSTD - Righe modelli standard R -
LODTMDES - Temporaneo descrizioni R/W temporaneo

Relazioni principali:

COGGEANA (studio medico tipo "C")
    ├── 1:N ─> LODPRESC (prescrizioni per studio)
    │           ├── chiave: studio+paziente+progressivo
    │           └── 1:1 ─> LODCMTES (commessa generata)
    │                       └── numero in lpm-num-com
    └── 1:N ─> LODFASCI (fascicoli tecnici pazienti)

LODPRESC
    ├── 0:N ─> LODBOLCL (bollettini CCP)
    ├── 0:N ─> Allegati/immagini (COGU06)
    └── 0:N ─> Note (COGZDEW)

7. Programmi chiamati

7.1 Programmi laboratorio (COGZ*)

Programma Funzione Quando viene chiamato
COGZ0A Gestione azzera prescrizione Utility azzeramento dati (util-cogz0a)
COGZ13 Gestione elementi dentali Gestione elementi dentali per prescrizione
COGZ41 Preparazione commessa standard F5, creazione commessa da prescrizione
COGZ43 Gestione preventivo F6, elaborazione preventivo economico
COGZ51 Fascicolo tecnico Shift+F1/Shift+F4, gestione fascicolo paziente
COGZ53 Gestione bollettini F10, gestione bollettini CCP
COGZ71 Gestione progressivi Attribuzione numero progressivo prescrizione
COGZ85 Gestione impegni Shift+F8, pianificazione impegni
COGZ93 Gestione rientro Gestione rientro prescrizione (util-z93)
COGZA7 Anagrafica medici Shift+F6, lookup/gestione medici prescrittori
COGZAP Gestione appoggio prescrizioni Utility gestione appoggio (util-cogzap)
COGZC5 Utility commesse 5 Funzioni supporto commesse (util-cogzc5)
COGZC8 Utility commesse 8 Funzioni supporto commesse (util-cogzc8)
COGZCH Utility check commesse Controlli validazione commesse (util-cogzch)
COGZCF Rapporti non conformità Gestione NC su prescrizioni
COGZD1 Preparazione commessa avanzata Versione avanzata COGZ41 con ODONTO.CNF
COGZDEW Note estese F9/Shift+F7, gestione note lavoro/medico
COGZ1C Gestione commesse 1C Utility gestione commesse (util-cogz1c)

7.2 Programmi generali

Programma Funzione Utilizzo
COGU10W Gestione commesse generica Utility generale gestione (util-u10)
COGU06 Gestione allegati/immagini F7, archiviazione/visualizzazione documenti
COGU41 Utility 41 Funzioni di supporto (util-u41)
COGS52W Gestione stringhe 52 Manipolazione testi (util-s52)
COGS54 Gestione stringhe 54 Manipolazione testi (util-s54)
COGS65W Gestione bollettini CCP F10, gestione completa bollettini
COGS94W Gestione stampe 94 Stampe varie (util-s94)
COGS98W Gestione commesse generica Caricamento/validazione commesse (util-s98)
COGD88 Gestione documenti 88 Gestione documenti vari (util-d88)
COGF14 Gestione finanziaria Controlli amministrativi/finanziari
COGG32 Gestione anagrafica 32 Lookup anagrafica generale (util-g32)
COGV93 Gestione V93 Utility (util-cogv93)
COPIAF Copia files Copia/gestione file documenti
DIALOGS Dialoghi GUI Popup e dialoghi vari (util-dlg)
DTPRG Data → Progressivo giuliano Conversione data calendario ↔ giuliano
PRGDT Progressivo giuliano → Data Conversione giuliano ↔ calendario
RNEWCONF Lettura nuova configurazione Ricarica configurazioni runtime (util-ncnf)

8. Configurazioni

8.1 Configurazioni COGTABEL tipo 70

Il programma legge configurazioni specifiche laboratorio da COGTABEL tipo 70, argomento configurazione laboratorio.

Struttura configurazione (righe 148-176):

01 tm-cfg.
   02 tm-cfg-tip-doc              pic x(01).    * Gestione tipi documento
   02 tm-cfg-num-aut              pic x(01).    * Numerazione automatica S/N
   02 tm-cfg-cnt-medico           pic x(03).    * Contatore numero medico
   02 tm-cfg-log                  pic x(01).    * Logging operazioni S/N
   02 tm-cfg-z40-mostra-lavori    pic x(01).    * Mostra lavori in corso
   02 tm-cfg-z40-avv-commessa     pic x(01).    * Avvia automaticamente commessa
   02 tm-cfg-piu-agenti           pic x(01).    * Multi-agente S/N
   02 tm-cfg-pagam-anticipato-cc  pic x(01).    * Pagamento anticipato CCP
   02 tm-cfg-attrib-auto-paz      pic x(01).    * Attribuzione auto paziente
   02 tm-cfg-auto-paz             pic x(10).    * Prefisso auto paziente
   02 tm-cfg-cass-vis             pic x(01).    * Visualizza cassetta
   02 tm-cfg-datanas-vis          pic x(01).    * Visualizza data nascita
   02 tm-cfg-respons-vis          pic x(01).    * Visualizza responsabile
   02 tm-cfg-ges-tipo-doc         pic x(01).    * Gestione tipo documento
   02 tm-cfg-mod-com-doc          pic x(01).    * Modifica commessa/documento
   02 tm-cfg-rientro              pic x(01).    * Gestione rientri
   02 tm-cfg-gg-ant-chiusura      pic 9(02)v9(01). * Giorni anticipo chiusura
   02 tm-cfg-labod-impegni        pic x(01).    * Gestione impegni S/N
   02 tm-cfg-gg-lav-in-prova      pic 9(04)v9(01). * Giorni lavoro in prova
   02 tm-cfg-vis-data-cons-effettiva   pic x(01). * Visualizza data consegna effettiva
   02 tm-cfg-mod-consegna-se-chiusa    pic x(01). * Modifica consegna se chiusa
   02 tm-cfg-mod-consegna-ultima-riga  pic x(01). * Modifica consegna ultima riga
   02 tm-cfg-fpa-rch-com              pic x(01). * Flag PA richiede commessa
   02 tm-cfg-abilita-ordine           pic x(01). * Abilita ordinazione materiali
   02 tm-cfg-path-archiviazione-auto  pic x(80). * Path archiviazione automatica
   02 tm-cfg-modo-gestione-allegati   pic x(01). * Modalità gestione allegati
   02 tm-cfg-modalita-prog            pic x(01). * Modalità progressivo
   02 tm-cfg-nr-commesse-per-data-cons pic 9(06). * Max commesse per data consegna

8.2 Parametri linkage

Chiamata da altri programmi (righe 191-197):

01 w-dati-called.
   02 w-dc-called         pic x(01).    * "S" se chiamato
   02 w-dc-cogz07         pic x(01).    * "S" se chiamato da COGZ07
   02 w-dc-prescrizione.                * Chiave preimpostata:
      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

Uso: - Se w-dc-called = "S": il programma si posiziona direttamente sulla prescrizione specificata - Se w-dc-cogz07 = "S": chiamata da COGZ07, disabilita numerazione automatica

8.3 Logging operazioni

Se tm-cfg-log = "S", il programma registra su file LOGFILE: - Inserimenti prescrizioni - Modifiche prescrizioni - Cancellazioni prescrizioni - Operatore, data/ora, chiave record


9. Validazioni

9.1 Validazioni campi obbligatori

Campo Validazione Messaggio errore
tm-cli Deve esistere in COGGEANA tipo "C" "Studio medico non esistente"
tm-paziente Lunghezza <= 25, not spaces "Codice paziente obbligatorio"
tm-num Se num-aut="N": deve essere inserito "Numero prescrizione obbligatorio"
tm-data-ent Formato AAAAMMGG, data valida "Data entrata non valida"
tm-data-cns Formato AAAAMMGG, >= data-ent "Data consegna non valida"

9.2 Validazioni campi opzionali

Campo Validazione
tm-age-cod Se valorizzato: deve esistere in COGTABEL tipo 21
tm-dist-cod Se valorizzato: deve esistere in COGGEANA
tm-dottore-cod Se valorizzato: deve esistere in anagrafica medici
tm-imp-preventivo Se valorizzato: deve essere >= 0
tm-ora-cns Formato HHMM, HH 00-23, MM 00-59
tm-data-nascita Se valorizzata: calcolo automatico tm-anni
tm-telefono Formato libero max 25 caratteri

9.3 Validazioni stato

Regole modificabilità:

if lpm-stato = "A" or "C" or "E" or "F" or "G" or "U" or "R"
   move "N" to tm-modificabile
   display "Prescrizione non modificabile (commessa già aperta/chiusa)"
else
   move "S" to tm-modificabile
end-if

Regole cancellazione:

if lpm-num-com > 0    * Esiste commessa collegata
   display "Impossibile cancellare: commessa già generata"
   exit paragraph
end-if

9.4 Validazioni coerenza date

* Data consegna >= Data entrata
if tm-data-cns < tm-data-ent
   display "Data consegna non può essere precedente a data entrata"
   move 1 to campo-in-errore
end-if

* Data consegna effettiva >= Data entrata
if tm-data-cons-eff not = 0
   if tm-data-cons-eff < tm-data-ent
      display "Data consegna effettiva non valida"
   end-if
end-if

9.5 Controlli automatici

Attribuzione automatica paziente (se tm-cfg-attrib-auto-paz = "S"):

if tm-paziente = spaces
   string tm-cfg-auto-paz "-" progressivo-auto
      delimited size into tm-paziente
end-if

Calcolo età paziente:

if tm-data-nascita not = 0
   compute tm-anni = (datasis - tm-data-nascita) / 10000
   * Arrotondamento a anni interi
end-if

Diagramma flusso completo

AVVIO COGZ40
     │
     ├─ Caricamento configurazioni (COGTABEL tipo 70)
     ├─ Verifica modalità chiamata
     │  ├─ w-dc-called="S" → posizionamento diretto
     │  ├─ w-dc-cogz07="S" → disabilita num auto
     │  └─ Altrimenti → modalità normale
     ├─ Creazione 15 pulsanti custom (labodonto/labodonto2)
     ├─ Impostazione tasti funzione
     │
     └─ CICLO PRINCIPALE
        │
        ├─[INPUT tm-cli] Studio medico
        │  ├─ Lookup COGGEANA tipo "C"
        │  ├─ Validazione esistenza
        │  └─ Caricamento dati studio
        │
        ├─[INPUT tm-paziente] Codice paziente
        │  ├─ Se vuoto + cfg auto → genera codice
        │  └─ Validazione lunghezza max 25
        │
        ├─[INPUT tm-pro] Progressivo
        │  ├─ Se vuoto → nuovo inserimento
        │  │  └─ Se num-aut="S" → next progressivo
        │  └─ Se valorizzato → lookup LODPRESC
        │     ├─ Se trovato → MODIFICA
        │     │  ├─ Caricamento tutti i campi
        │     │  ├─ Verifica stato modificabile (N/P)
        │     │  └─ Blocco se commessa esistente
        │     └─ Se non trovato → INSERIMENTO
        │
        ├─[COMPILAZIONE CAMPI]
        │  ├─ tm-num (numero prescrizione)
        │  ├─ tm-dottore (medico) → lookup COGGEANA
        │  ├─ tm-data-ent/cns (date)
        │  ├─ tm-imp-preventivo (importo)
        │  ├─ tm-age-cod (agente) → COGTABEL tipo 21
        │  ├─ tm-dist-cod (distributore) → COGGEANA
        │  ├─ tm-paz-esteso (nome paziente)
        │  ├─ tm-data-nascita → calcolo tm-anni auto
        │  ├─ tm-telefono, tm-paz-indi (contatti)
        │  └─ Campi vari (cassetta, tipo doc, etc.)
        │
        ├─[TASTI FUNZIONE]
        │  ├─ F1  → Note interne
        │  ├─ F2  → Note particolari
        │  ├─ F3  → CONFERMA/AGGIORNA
        │  │  ├─ Validazioni campi obbligatori
        │  │  ├─ Se nuovo → WRITE LODPRESC
        │  │  ├─ Se esistente → REWRITE LODPRESC
        │  │  └─ Logging (se abilitato)
        │  ├─ F4  → CANCELLA
        │  │  ├─ Verifica assenza commessa
        │  │  ├─ Conferma utente
        │  │  └─ DELETE LODPRESC
        │  ├─ F5  → Crea COMMESSA (CALL COGZ41/COGZD1)
        │  ├─ F6  → Preventivo (COGZ43) / Bollettino / Materiale
        │  ├─ F7  → Archivia immagine (COGU06)
        │  ├─ F9  → Ricerca avanzata
        │  ├─ F10 → Gestione bollettini (COGS65W)
        │  ├─ S-F1 → Nuovo fascicolo (COGZ51)
        │  ├─ S-F4 → Fascicolo tecnico (COGZ51)
        │  ├─ S-F6 → Anagrafica medici (COGZA7)
        │  ├─ S-F7 → Note medico (COGZDEW)
        │  └─ S-F8 → Gestione impegno
        │
        └─[EVENTI SPECIALI]
           ├─ Cambio studio → clear paziente/progressivo
           ├─ Cambio paziente → clear progressivo
           ├─ Data nascita → ricalcolo età automatico
           └─ Agente → verifica multi-agente cfg

Note implementative

Numerazione automatica

Meccanismo (se tm-cfg-num-aut = "S"): 1. Lettura ultimo numero da contatore (file COGTABEL o LODPRESC) 2. Incremento +1 3. Assegnazione a tm-num 4. Aggiornamento contatore

Formato numero: pic 9(10), max 9.999.999.999

Gestione allegati

Archiviazione automatica (se tm-cfg-path-archiviazione-auto valorizzato): - Path base da configurazione - Sottocartelle per anno/mese - Nomenclatura file: LP_studio_paziente_progressivo_timestamp.ext - Tipi supportati: PDF, JPG, PNG, TIFF, DOC, DOCX

Flag immagine: - tm-fl-image = "S": almeno un allegato presente - tm-fl-image = "N": nessun allegato

Multi-agente

Se tm-cfg-piu-agenti = "S": - Possibilità di associare più agenti alla prescrizione - Gestione percentuali provvigione per agente - Ripartizione automatica importi

Integrazione commessa

Flusso creazione commessa (F5):

COGZ40 (Prescrizione)
    │
    ├─ Salvataggio prescrizione (se modificata)
    ├─ CALL COGZ41 (preparazione standard)
    │   │  O
    │   └─ CALL COGZD1 (preparazione avanzata con ODONTO.CNF)
    │      │
    │      ├─ Copia dati prescrizione → commessa
    │      ├─ Assegnazione piano fabbricazione
    │      ├─ Creazione righe commessa (azioni)
    │      ├─ Calcolo tempi e materiali
    │      └─ WRITE LODCMTES + LODCMRIG
    │
    ├─ Aggiornamento LODPRESC:
    │  ├─ lpm-num-com = numero commessa generata
    │  └─ lpm-stato = "A" (aperta)
    │
    └─ Refresh maschera

Documentato da: Claude (Anthropic) Data: 2026-03-03 Versione: 1.0