COGZ77 - Modifica Documento Ortodontico (Lettera/Cartella)¶
Sorgente: cbl/cogz77.cbl | Program-ID: COGZ77 | Tipo: Programma interattivo (modifica documenti ortodontici)
Menu: Lab.Odont. > Ortodonzia > Modifica Documento
Scopo¶
Modifica un documento ortodontico (lettera o cartella) gia' esistente, collegato a una commessa di laboratorio e al relativo fascicolo. L'operatore identifica la commessa tramite la ricerca generica COGS98W, sceglie il tipo documento e il numero da modificare; il programma risale al fascicolo (LODRACCO tipo "FC"), verifica l'esistenza del documento (LODDFORT), carica il testo esistente da LODDESCR nell'archivio temporaneo LODTMDES e delega la rieditazione del testo al sottoprogramma COGZ74L (lettere) / COGZ74C (cartelle) in modalita' visualizzazione/modifica. Al termine, se confermato, aggiorna la data sul documento LODDFORT, riscrive il testo su LODDESCR e offre la stampa tramite COGZO3L / COGZO3C.
Il programma puo' essere richiamato da COGZ76 (z77-called = "COGZ77-CALLED") passando direttamente commessa, tipo e numero documento: in tal caso salta la selezione manuale e va diretto alla modifica del testo.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| LODFASCI | ISAM | Input | Fascicolo paziente; letto per i dati anagrafici (lfs-num, lfs-cli, lfs-paziente) |
| LODRACCO | ISAM (k02) | Input | Raccordo fascicolo-commessa, tipo "FC" (lrc-key-1 = fascicolo, lrc-key-2 = commessa) |
| LODDFORT | ISAM | I-O | Documento del fascicolo/commessa; letto e aggiornato nella data (ldf-commessa, ldf-tip, ldf-num, ldf-data) |
| LODDESCR | ISAM | I-O | Testo del documento; letto in caricamento e riscritto in aggiornamento (lde-tip = "O" + tipo, lde-cod, lde-pro, lde-des) |
| LODTMDES | ISAM | I-O | Archivio temporaneo del testo in editing (ltd-cod, ltd-pro, ltd-len, ltd-des) |
| COGGEANA | ISAM | Input | Anagrafica generale: descrizione studio medico del fascicolo (ana-tipo = "C") |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogz77.select, cogz77.fd, cogz77.wrk, cogz77-01.scr, cogz77.prc, cogz77.decla |
Screen Designer |
feurtab.fd, cogfiles.cpy |
FEURTAB |
lodtmdes.fd, lodtmdes.cpy, lodtmdes.k01 |
Archivio temporaneo testi (dichiarato manualmente nel sorgente) |
wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy |
Working storage standard + dati azienda |
utilfnt.cpy |
Gestione font |
utils54.cpy |
Linkage COGS54 (selezione stampante/emulazione) |
utils52.cpy, utils93.cpy, utils94.cpy |
Linkage COGS52/COGS93/COGS94 (date e servizi maschera) |
utils98.cpy |
Linkage COGS98W (ricerca generica prescrizione-commessa) |
utilz74x.cpy |
Linkage COGZ74L/COGZ74C (z74x-ope, z74x-esito) |
utilzo3x.cpy |
Linkage COGZO3L/COGZO3C (zo3x-commessa, zo3x-tip, zo3x-num) |
wcont.cpy, wcont1.cpy |
Aree di contesto standard (linkage) |
utilz77.cpy |
Linkage di chiamata da COGZ76 (z77-called, z77-commessa, z77-tip-doc, z77-num-doc) |
stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, mmmask.cpy, opengen.cpy |
Copybook di fine procedure |
lodracco.k02 |
Chiave secondaria per la lettura commessa → fascicolo |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
COGS98W |
Ricerca/accept generico della commessa (studio/paziente/progressivo/numero); usato anche in modalita' "find"/"display" quando richiamato da COGZ76 |
COGZ74L / COGZ74C |
Rieditazione del testo della lettera (L) o cartella (C); il testo esistente e' precaricato in LODTMDES e riproposto (z74x-ope = "V" = visualizzazione/modifica); restituisce z74x-esito |
COGS54 |
Selezione stampante ed emulazione per la stampa del documento |
COGZO3L / COGZO3C |
Stampa del documento lettera (L) o cartella (C) |
Logica di elaborazione¶
Struttura goto-driven. Flusso principale:
- apri: init programma,
open-files, costruzione del nome del file temporaneo LODTMDES (#$COGZ74.<operatore>inext-tmp-dir— riusa lo stesso nome di COGZ74). Se richiamato (z77-called = "COGZ77-CALLED") imposta lo stato di chiamata con commessa, tipo e numero documento ricevuti. Abilita i tasti funzione, carica bitmaplabodontoe pulsante custom "Commessa (F5)", inizializza COGS98W. - a4: reset maschera; data documento = data di sistema, tipo default "L". Se in stato di chiamata precompila tipo e numero documento e, tramite COGS98W in modalita' "find"/"display", posiziona direttamente la commessa ricevuta (salto a
a-10-out); se la commessa non e' trovata avvisa e torna all'accept. - a-tm-cli: in modalita' manuale apre COGS98W in "accept" per selezionare la commessa.
- a-fine-commessa:
x-controlla-commessa; visualizza gli estremi dell'ultima lettera e dell'ultima cartella della commessa (a1-cerca-ultimosu LODDFORT letto inrdprvdal numero 9999); risale al fascicolo tramite LODRACCO tipo "FC" (chiave 2 = commessa) e verifica LODFASCI; mostra studio (descrizione da COGGEANA), paziente e numero fascicolo. Se in stato di chiamata legge subito il documento indicato (LODDFORT) e salta all'accept della data. - a-tm-tip / a-tm-num-doc / a-tm-data: accept in cascata del tipo documento (COGS60), del numero documento e della data (COGS52, calendario F8).
x-controlla-tm-num-docverifica che il documento (commessa + tipo + numero) esista su LODDFORT. - a-richiesta-conferma / a-90 / a-90-ok:
x-imposta-confermavalida i campi; se richiamato salta la conferma manuale. Ina-90-ok: a2-carica-documento: apre LODTMDES in output e travasa il testo esistente da LODDESCR (lde-tip = "O" + tipo,lde-cod= commessa + numero doc + tabella) nell'archivio temporaneo, cosi' il sottoprogramma di editing lo ripropone.a3-salva-modifiche: aggiorna la data del documento su LODDFORT (write, e in caso di record esistente rewrite).- chiama COGZ74L / COGZ74C in modalita' "V" (visualizzazione/modifica) dentro finestra di appoggio; se l'esito e' "S" esegue
c-aggiorna. - c-aggiorna: apre LODTMDES in input;
c1-cancellaelimina il testo precedente del documento su LODDESCR, poi (c-20-loop) riscrive il nuovo testo da LODTMDES a LODDESCR. Propone infine la stampa (c-50/c-60) tramite COGS54 + COGZO3L/COGZO3C. - fine / z-chiudi:
z-close-files,close lodtmdes,cancel "COGS98W",exit program.
Note¶
- Il codice usa
PERFORM ... THRUeGO TOin modo estensivo (stile legacy pre-convenzioni attuali); commento "Conversione Daniele" in testata. - Rispetto a COGZ74 (inserimento), COGZ77 lavora su un documento gia' esistente: non genera un nuovo numero documento e non tocca il progressivo
lfs-num-docdel fascicolo; puo' modificare la data del documento (LODDFORT) e il testo (LODDESCR). - Il testo esistente viene precaricato in LODTMDES prima di richiamare il sottoprogramma di editing (
z74x-ope = "V"), a differenza dell'inserimento dove LODTMDES parte vuoto. In aggiornamento il testo su LODDESCR viene prima cancellato integralmente (c1-cancella) e poi riscritto. - LODTMDES e' una tabella temporanea dichiarata manualmente nel sorgente (SELECT nel
.select, FD nel file section, COPY del layout elodtmdes.k01a fine procedure). Il nome del file (#$COGZ74.<operatore>) coincide con quello usato da COGZ74. - Il raccordo commessa → fascicolo usa la chiave secondaria
lodracco.k02(tip + key-2 + key-1), quindi la ricerca parte dal numero commessa (lrc-key-2). - La ricerca dell'ultimo documento (
a1-cerca-ultimo) usa una lettura all'indietro (st-loddfort-mincon num = 9999 seguita dardprv-loddfort) per intercettare il numero documento piu' alto della commessa per il tipo richiesto.