COGZ74 - Inserimento Documento Ortodontico (Lettera/Cartella)¶
Sorgente: cbl/cogz74.cbl | Program-ID: COGZ74 | Tipo: Programma interattivo (inserimento documenti ortodontici)
Menu: Lab.Odont. > Ortodonzia > Inserimento Documento
Scopo¶
Inserisce un nuovo documento ortodontico (lettera o cartella) collegato a una commessa di laboratorio, e quindi al relativo fascicolo paziente. L'operatore identifica la commessa tramite la ricerca generica COGS98W (studio, paziente, progressivo, numero commessa); il programma risale al fascicolo tramite il raccordo LODRACCO tipo "FC" e mostra i dati del fascicolo, oltre agli estremi degli ultimi documenti (lettera e cartella) gia' presenti.
Dopo la scelta del tipo documento ("L" = Lettera, "C" = Cartella), della data e dell'eventuale riferimento a lettera (per le cartelle), il programma delega la composizione del testo al sottoprogramma COGZ74L (lettere) o COGZ74C (cartelle), che scrive il contenuto nell'archivio temporaneo LODTMDES. Se la composizione va a buon fine, COGZ74 assegna un numero documento progressivo per fascicolo, crea il record documento su LODDFORT, travasa il testo da LODTMDES a LODDESCR e offre la stampa immediata tramite COGZO3L / COGZO3C.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| LODFASCI | ISAM | I-O | Fascicolo paziente; letto per risalire ai dati e aggiornato per il progressivo documenti (lfs-num, lfs-cli, lfs-paziente, lfs-num-doc) |
| 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 (ldf-commessa, ldf-tip, ldf-num, ldf-data, ldf-rif-lettera) |
| LODDESCR | ISAM | I-O | Testo del documento (lde-tip = "O" + tipo, lde-cod = commessa+num+tabella, lde-pro, lde-des) |
| LODTMDES | ISAM | Input | Archivio temporaneo dei testi prodotto da COGZ74L/COGZ74C (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 |
|---|---|
cogz74.select, cogz74.fd, cogz74.wrk, cogz74-01.scr, cogz74.prc, cogz74.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) |
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) |
COGZ74L / COGZ74C |
Composizione interattiva del testo della lettera (L) o cartella (C); scrive in LODTMDES (z74x-ope = "I" = inserimento); 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), abilitazione tasti funzione, caricamento bitmaplabodontoe pulsante custom "Commessa (F5)", inizializzazione COGS98W. - a4: reset maschera; data documento = data di sistema, tipo default "L".
- a-tm-cli: apre COGS98W in modalita' "accept" per selezionare la commessa. Uscita →
fine; "prev" → torna al reset. - a-fine-commessa:
x-controlla-commessarisale al fascicolo leggendo LODRACCO tipo "FC" per chiave 2 (numero commessa) e verifica che il fascicolo esista su LODFASCI. Visualizza studio (descrizione da COGGEANA), paziente e numero fascicolo; cona1-cerca-ultimoscandaglia tutte le commesse del fascicolo e i relativi documenti (LODDFORT) per mostrare gli estremi dell'ultima lettera e dell'ultima cartella. - a-tm-tip: accept del tipo documento (COGS60).
z-cambia-controlliabilita/disabilita il campo "rif. lettera" a seconda del tipo. - a-tm-data: accept della data documento (COGS52, con calendario F8).
- a-tm-rif-let: accept del riferimento a lettera (attivo solo per le cartelle).
a2-cerca-letteraverifica che la lettera indicata esista su una delle commesse del fascicolo (LODDFORT tipo "L"). - a-richiesta-conferma / a-90:
x-imposta-confermavalida i campi; su conferma imposta il nome sottoprogramma (COGZ74L o COGZ74C), chiama la composizione del testo (z74x-ope = "I") dentro finestra di appoggio; se l'esito e' "S" esegue l'aggiornamento (c-aggiorna), altrimenti torna aa4. - c-aggiorna: apre LODTMDES in input. In
c-10-cerca-numerolegge/incrementa il progressivo documenti sul fascicolo (lfs-num-doc, unico sul fascicolo), inizializza e scrive il record LODDFORT (commessa + tipo + numero + data + rif. lettera); se la scrittura fallisce per chiave duplicata ripete con numero successivo. Travasa quindi il testo da LODTMDES a LODDESCR (c-20-loop: per ogni record temporaneo cancella l'eventuale record LODDESCR omonimo e riscrive), poi propone 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. - La numerazione dei documenti e' unica per fascicolo (non per commessa ne' per tipo): il progressivo
lfs-num-doce' custodito sul record LODFASCI. La chiave di LODDFORT (commessa + tip + num) e' invece storicamente per commessa e tipo; per gestire eventuali duplicati la scrittura ritenta con il numero successivo (c-10-cerca-numero). - Il testo del documento e' composto dal sottoprogramma esterno in un archivio temporaneo LODTMDES (una copia per operatore, nome
#$COGZ74.<operatore>), poi trasferito in LODDESCR conlde-tip = "O" + tipo(es. "OL" per lettera, "OC" per cartella) elde-cod = commessa + numero documento + codice tabella. - LODTMDES e' una tabella temporanea dichiarata manualmente nel sorgente (SELECT nel
.select, FD nel file section, COPY del layout elodtmdes.k01a fine procedure) perche' non gestibile da Screens. - 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).