Vai al contenuto

COGZ09 — Ricostruzione testata commessa (LODCMTES da LODPRESC)

Sorgente: cbl/cogz09.cbl | Program-ID: cogz09 | Tipo: Utility batch di ricostruzione dati con log

Menu: Lab.Odont. > Operativo > Utilita' > Ricostr. testata commessa


Scopo

Ricostruisce le testate commessa di laboratorio (LODCMTES) mancanti, partendo dalle prescrizioni presenti in LODPRESC. Scorre tutte le prescrizioni e, per ciascuna, verifica se esiste la relativa testata commessa; se manca la crea. Segnala su un file di log le anomalie riscontrate (commesse trovate con dati diversi, testate trovate per prescrizione ma non per numero commessa, ecc.) e recupera, ove possibile, il codice piano temporaneo perso.

E' uno strumento di manutenzione/riconciliazione dei dati commessa, tipicamente eseguito una tantum dopo incidenti sui dati.


File e tabelle

File Copybook Accesso Scopo
feurtab cogfiles.cpy Tabella file di sistema
LODPRESC lodpresc.k03 Lettura sequenziale (st/rdnxt), riscrittura Prescrizioni — sorgente della scansione; flag estratta aggiornato
LODCMTES lodcmtes.k02 Lettura diretta / per chia2 (med/paz/pro), scrittura, cancellazione, riscrittura Testate commessa — verificate e ricreate se mancanti
LODPNRIG (via st/rdnxt) Lettura sequenziale Righe piano — usate per recuperare il piano temporaneo perso
coglog (definito nel sorgente) Scrittura line-sequential (extend/output) File di log testuale delle segnalazioni

Il file coglog e' dichiarato manualmente (FD log-rec con data, ora, commessa, prescrizione, descrizione, campo/valore) ed e' scritto in ext-sys-dir con nome COGZ09.LOG.


Programmi chiamati (CALL)

Programma Condizione Scopo
DIALOGS commessa trovata per prescrizione ma non per numero; fine elaborazione con log Finestra di scelta (Esc = salta / F5 = cancella e ripristina; Esc = prosegui / F1 = consulta log)
NOTEPAD F1 alla fine, se ci sono segnalazioni Apre il file di log in un editor

Copybook incluse

Working Storage: feurtab.fd, cogz09.select, cogz09.fd, cogz09.wrk, wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy, utildlg.cpy, utils54.cpy, utils52.cpy, utilnpad.cpy

Linkage: wcont.cpy, wcont1.cpy

Screen: cogz09-01.scr

Procedure: stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, mmmask.cpy, opengen.cpy, cogz09.prc, lodcmtes.k02


Logica di elaborazione

  1. Avvio: dopo la conferma (F3), esegue b-elabora e mostra i contatori a video (prescrizioni lette tm-p-l, commesse trovate tm-c-l, commesse inserite tm-c-s).

  2. Scansione prescrizioni (b-elabora / b-10-loop): legge sequenzialmente LODPRESC. Per ogni prescrizione:

  3. Ricerca per numero commessa (rd-lodcmtes su lpm-num): se trovata, verifica coerenza med/paz/pro (segnala su log se diversi) e, se il piano e' vuoto ma lo stato non e' N, tenta il recupero del piano temporaneo (a15-cerca-piano-temporaneo). Passa alla prescrizione successiva.
  4. Ricerca per medico/paziente/progressivo (chia2): se trovata cosi' ma non per numero, e' un'anomalia — apre DIALOGS per scegliere se saltare o cancellare la commessa e ripristinarla dalla prescrizione (F5 cancella LODCMTES conservandone piano/cassetta/responsabile/coefficiente).
  5. Inserimento LODCMTES mancante: crea la testata commessa con med/paz/pro/numero da LODPRESC, riporta piano/cassetta/responsabile/coefficiente recuperati, data inizio dalla prescrizione, flag programma se presente il modello, data fine se stato C/E. Aggiorna il flag estratta su LODPRESC.

  6. Recupero piano temporaneo (a15-cerca-piano-temporaneo): scandisce LODPNRIG (tipo T) cercando la riga con lpr-cod (11:10) = lct-cod e lpr-prog = 1; se trovata, valorizza il piano e riscrive LODCMTES.

  7. Chiusura (b-90): se sono state prodotte segnalazioni (fl-log = "S"), propone via DIALOGS di consultare il log con NOTEPAD.


Paragrafi chiave

Paragrafo Scopo
apri Inizializzazione: apre file, costruisce nome file log, imposta titolo
a-richiesta-conferma / a-90 Conferma ed esecuzione dell'elaborazione
b-elabora / b-10-loop Scansione LODPRESC e ricostruzione/verifica LODCMTES
a15-cerca-piano-temporaneo Recupero del codice piano temporaneo da LODPNRIG
b-90 Chiusura: proposta consultazione log
x1-scrivi-log Scrive un record di segnalazione sul file coglog (append)
fine / z-chiudi Chiusura file e uscita

Note

  • Il pattern di scansione LODPNRIG in a15-cerca-piano-temporaneo usa perform with test before until w-fine-file con rdnxt interno al loop e rottura via move k-fine-file to statusfi, coerente con le convenzioni del codebase.
  • Il file di log viene aperto in extend (o output se inesistente, stato 35) a ogni scrittura e richiuso subito, cosi' resta consultabile anche durante l'elaborazione.