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 bitmaplabodontoe 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-1legge 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-cercaavvisa se il nome paziente della commessa selezionata diverge dal nome indicato nel fascicolo (confronto sui primi 16 o 25 caratteri secondoaz-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 inw-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, restituiscez71-fascicolo,cancel "COGS98W",exit program.
Note¶
- Il codice usa
PERFORM ... THRUeGO TOin 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 secondarialodracco.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.