Vai al contenuto

COGZ71 - Fascicoli Ortodonzia

Sorgente: cbl/cogz71.cbl | Program-ID: COGZ71 | Tipo: Programma interattivo (anagrafica fascicoli paziente)

Menu: Lab.Odont. > Ortodonzia > Fascicoli


Scopo

Gestisce l'anagrafica dei fascicoli ortodontici (LODFASCI). Un fascicolo raccoglie i dati del paziente (studio medico di riferimento, nome, data e sesso, eta' in anni e mesi, data di nascita) ed e' l'entita' padre a cui vengono collegate una o piu' commesse di laboratorio; alle commesse si agganciano poi i documenti ortodontici (lettere e cartelle, gestiti da COGZ74 / COGZ77).

Il programma consente l'inserimento, la variazione e la cancellazione di un fascicolo. In inserimento puo' agganciare direttamente il fascicolo alla prima commessa selezionata tramite la ricerca generica COGS98W (studio, paziente, progressivo, numero commessa); l'aggancio e' memorizzato su LODRACCO con tipo "FC" (Fascicolo-Commessa). La numerazione del fascicolo e' progressiva ed e' custodita su LODTABEL (tipo 01, codice 2).

Il programma puo' essere richiamato da un altro modulo (z71-called = "COGZ71-CALLED"): in tal modo parte gia' in inserimento con studio e paziente precompilati e, all'uscita, restituisce al chiamante il numero di fascicolo creato in z71-fascicolo.

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODFASCI ISAM I-O Fascicolo paziente (lfs-num, lfs-cli, lfs-paziente, lfs-data, lfs-data-nas, lfs-eta-anni, lfs-eta-mesi, lfs-sesso, lfs-num-doc)
LODRACCO ISAM (k02) I-O Raccordo fascicolo-commessa, tipo "FC" (lrc-tip, lrc-key-1 = fascicolo, lrc-key-2 = commessa)
LODTABEL ISAM I-O Numeratore fascicolo ortodontico (tipo 01, cod 2 → lta-num)
COGGEANA ISAM Input Anagrafica generale: descrizione studio medico (ana-tipo = "C", ana-cod, ana-nome)

Copybook utilizzate

Copybook Descrizione
cogz71.select, cogz71.fd, cogz71.wrk, cogz71-01.scr, cogz71.prc, cogz71.decla Screen Designer
feurtab.fd, cogfiles.cpy FEURTAB
wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy Working storage standard + dati azienda
utils52.cpy Linkage COGS52 (gestione date)
utils65.cpy Linkage COGS65W (ricerca studio/cliente)
utils98.cpy Linkage COGS98W (ricerca generica prescrizione-commessa)
utilwz15.cpy, sendwz15.cpy Ricerca/lista fascicoli (WZ15) su F8 aiuto del campo Numero
wcont.cpy, wcont1.cpy Aree di contesto standard (linkage)
utilz40.cpy Linkage prescrizione (studio/paziente/progressivo)
utilz71.cpy Linkage di chiamata da altro programma (z71-called, z71-cli, z71-paziente, z71-fascicolo)
stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, mmmask.cpy, opengen.cpy Copybook di fine procedure

Programmi chiamati

Programma Scopo
COGS98W Ricerca/accept generico della prescrizione-commessa da agganciare (studio/paziente/progressivo/numero); riceve i quattro record s98-lpm/lct/lpz/lps
COGS65W Ricerca dello studio medico (tipo "C") sul campo studio del fascicolo
SEND-WZ15 (via sendwz15.cpy) Lista/ricerca fascicoli a supporto del campo Numero (F8)

Logica di elaborazione

Struttura goto-driven con accept di campo in sequenza. Flusso principale:

  • apri: init programma (z-99-init-program), open-files, lettura azienda. Se richiamato (z71-called = "COGZ71-CALLED") imposta lo stato di chiamata (w-dc-called = "S") con studio e paziente ricevuti. Abilita i tasti funzione (F1 configura, F3 conferma/aggiorna, F4 cancella, F8 aiuto/calendario, F9 ricerca avanzata), carica la bitmap labodonto e crea il pulsante custom "Commessa (F5)"; costruisce i controlli (z-costruisci-controlli) e inizializza COGS98W (z-s98-init).
  • a4: reset maschera; default sesso "M" e data fascicolo = data di sistema. Se in stato di chiamata, si posiziona in inserimento (fl-ela = "I"), visualizza lo studio precompilato e salta agli accept dei dati anagrafici.
  • a-tm-num: accept del numero fascicolo. F8 apre la ricerca fascicoli (WZ15). x-controlla-tm-num-1 legge LODFASCI: se il fascicolo esiste passa in stato "V" (variazione) e carica i dati (a1-carica), altrimenti resta in stato "I" (inserimento).
  • a-tm-data-fas ... a-tm-sesso: accept in cascata dei campi anagrafici (data fascicolo, studio medico via COGS65W, paziente, eta' anni/mesi, data di nascita via COGS52, sesso). Ogni campo ha una routine di controllo x-controlla-....
  • a-80-paz: in inserimento (e non da chiamata) apre COGS98W in modalita' "accept" per selezionare la commessa da agganciare al fascicolo. a-80-cerca avvisa se il nome paziente della commessa selezionata diverge dal nome indicato nel fascicolo (confronto sui primi 16 o 25 caratteri secondo az-lod-presc).
  • a-richiesta-conferma: valida tutti i campi (x-imposta-conferma); su F3 chiede conferma ed esegue inserimento (a-900-ins) o variazione (a-900-var); su F4 (solo stato "V") esegue la cancellazione (a-900-cancella).
  • b-inserisci: preleva e incrementa il numeratore su LODTABEL (tipo 01, cod 2), scrive il record LODFASCI (b1-riempi-record), restituisce il numero in w-dc-fascicolo; se dalla commessa selezionata risulta un numero commessa (tm-dc-num), scrive il raccordo LODRACCO tipo "FC" (key-1 = fascicolo, key-2 = commessa).
  • d-varia: rilegge LODFASCI, riscrive i dati anagrafici (rwr-lodfasci).
  • c-cancella: cancella il record LODFASCI (del-lodfasci).
  • ctr-lodracco: in cancellazione via F4, verifica su LODRACCO (tipo "FC", key-1 = fascicolo) se il fascicolo e' gia' collegato a una commessa; in tal caso blocca l'operazione mostrando la commessa collegata.
  • fine / z-chiudi: z-close-files, restituisce z71-fascicolo, 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.
  • Il raccordo fascicolo-commessa su LODRACCO usa il tipo "FC"; la stessa struttura LODRACCO e' condivisa con molti altri tipi di raccordo del laboratorio (vedi lodracco.cpy: "CI", "RI", "AC", ...). La lettura inversa (dalla commessa al fascicolo) usa la chiave secondaria lodracco.k02 (tip + key-2 + key-1).
  • La numerazione del fascicolo e' globale (non per anno): il progressivo e' su LODTABEL tipo 01 cod 2; se il record non esiste viene creato con valore iniziale 1.
  • Il campo lfs-num-doc (primo numero documento libero) sul fascicolo non e' gestito da questo programma ma da COGZ74 in fase di inserimento documenti.
  • Il controllo sul nome paziente della commessa (a-80-cerca) e' solo un avviso non bloccante: consente comunque di collegare una commessa con nome paziente diverso.