Vai al contenuto

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> in ext-tmp-dir), abilitazione tasti funzione, caricamento bitmap labodonto e 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-commessa risale 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; con a1-cerca-ultimo scandaglia 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-controlli abilita/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-lettera verifica che la lettera indicata esista su una delle commesse del fascicolo (LODDFORT tipo "L").
  • a-richiesta-conferma / a-90: x-imposta-conferma valida 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 a a4.
  • c-aggiorna: apre LODTMDES in input. In c-10-cerca-numero legge/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 ... THRU e GO TO in 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-doc e' 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 con lde-tip = "O" + tipo (es. "OL" per lettera, "OC" per cartella) e lde-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 e lodtmdes.k01 a 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).