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¶
-
Avvio: dopo la conferma (F3), esegue
b-elaborae mostra i contatori a video (prescrizioni lettetm-p-l, commesse trovatetm-c-l, commesse inseritetm-c-s). -
Scansione prescrizioni (
b-elabora/b-10-loop): legge sequenzialmenteLODPRESC. Per ogni prescrizione: - Ricerca per numero commessa (
rd-lodcmtessulpm-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. - Ricerca per medico/paziente/progressivo (
chia2): se trovata cosi' ma non per numero, e' un'anomalia — apreDIALOGSper scegliere se saltare o cancellare la commessa e ripristinarla dalla prescrizione (F5 cancellaLODCMTESconservandone piano/cassetta/responsabile/coefficiente). -
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 statoC/E. Aggiorna il flag estratta suLODPRESC. -
Recupero piano temporaneo (
a15-cerca-piano-temporaneo): scandisceLODPNRIG(tipoT) cercando la riga conlpr-cod (11:10) = lct-codelpr-prog = 1; se trovata, valorizza il piano e riscriveLODCMTES. -
Chiusura (
b-90): se sono state prodotte segnalazioni (fl-log = "S"), propone viaDIALOGSdi consultare il log conNOTEPAD.
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
LODPNRIGina15-cerca-piano-temporaneousaperform with test before until w-fine-fileconrdnxtinterno al loop e rottura viamove k-fine-file to statusfi, coerente con le convenzioni del codebase. - Il file di log viene aperto in
extend(ooutputse inesistente, stato35) a ogni scrittura e richiuso subito, cosi' resta consultabile anche durante l'elaborazione.