Vai al contenuto

COGZ83 - Stampa Istruzioni per l'Uso

Sorgente: cbl/cogz83.cbl | Program-ID: COGZ83 | Tipo: Programma interattivo con stampa (allegato commessa laboratorio)

Menu: Lab.Odont. > Operativo > Stampe > Allegati > Istruzioni d'Uso (anche Lab.Odont. > Archivi > Stampe)


Scopo

Stampa l'allegato "Istruzioni per l'Uso" del dispositivo medico associato a una commessa di laboratorio. L'operatore identifica la commessa tramite la ricerca generica (studio/paziente/progressivo o numero commessa), il programma verifica prescrizione, stato commessa e appartenenza clinica, poi genera il documento in linguaggio HP-GL/2 su file di stampa via COGS54.

Il testo delle istruzioni e' impaginato su tre colonne, ripetendo per 10 blocchi titolo/testo alternati (conta 0..9), ciascuno con un tipo descrizione w-titolo/w-testo derivato dal modello di allegato (A..E) restituito da COGZS3.

Se la configurazione MODO-STAMPA-ALLEGATI = "WORD", il programma delega l'intera stampa a COGZ82M (allegato "IS") e termina senza usare il motore HP-GL/2 interno.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODDESCR ISAM Input Descrizioni allegato per tipo (lde-tip, lde-cod, lde-pro, lde-rec, lde-des)
LODTMDES ISAM I-O (temp) File temporaneo per operatore: buffer descrizioni caricate (ltd-rec)
LODTRDES ISAM Input Descrizioni "renderizzate" a misura da COGZDEW (ltr-pro, ltr-des)
LODPRESC ISAM Input Prescrizione (lpm-med, lpm-paz, lpm-pro, lpm-num)
LODCMTES ISAM Input (k02) Testata commessa via chiave 2 (lct-chia2, lct-piano, lct-coeff, lct-rec)
LODPNTES ISAM Input Testata piano/dispositivo (lpt-cod, lpt-tip, lpt-des)
LODTABEL ISAM Input Tabelle: titoli allegato tipo 10, chiave I<all>T1/I<all>T2 (lta-cod, lta-tipo, lta-10-des)
LODCMAGG ISAM Input Dati aggiuntivi commessa (lcg-cod, lcg-data-stampa)
FLSTA seq Output File di stampa HP-GL/2 (record riga)

LODTMDES e' un file temporaneo per operatore: il nome viene costruito in w-ltd-nome con ext-tmp-dir + #$COGZ83.<operatore>; e' aperto in output esclusivo a inizio elaborazione come lock di funzione ("Funzione gia' in uso dall'operatore").

Copybook utilizzate

Copybook Descrizione
cogz83.select, cogz83.fd, cogz83.wrk, cogz83-01.scr, cogz83.prc, cogz83.decla Screen Designer
feurtab.fd, cogfiles.cpy FEURTAB
lodtmdes.fd/.cpy/.k01, lodtrdes.fd/.cpy/.k01 File temporanei descrizioni
flsta.fd/.cpy File di stampa
wstato, wopenf, wgrave, wnscr, cogazien Working storage standard + dati azienda
utils54, utils52, utils98, utilzde, utilfnt, utilzs3 Linkage subroutine COGS54/COGS52/COGS98W/COGZDEW/COGFNT/COGZS3
utilncnf Linkage RNEWCONF
k-personal Costanti personalizzazioni azienda
wcont, wcont1, utilz82 Linkage di chiamata (stringhe, parametri Z82)
lodcmtes.k02 Chiave secondaria commessa (aggiunta a fine procedure)

Logica

Struttura a "goto-driven" con paragrafi etichettati (stile legacy dei moduli di stampa allegati). Flusso principale:

  • apri / main: init programma, costruzione nomi file temporanei, rd-azi, open-files. Se chiamato da altro modulo (z82-called = "COGZ83-CALLED") recupera dati archiviazione/prescrizione. Carica config con x99-confi e x99-confi-operatore. Se MODO-STAMPA-ALLEGATI = "WORD" chiama COGZ82M (allegato "IS") e va a fine. Altrimenti prepara i tasti funzione, la bitmap labodonto, il pulsante custom "Commessa (F5)", visualizza la maschera.
  • a4: reset maschera, apertura esclusiva/lock del temporaneo LODTMDES, z-carica-controlli. Se w-dc-called = "S" salta direttamente a a-10-cerca.
  • a-tm-cli: accept della prescrizione via COGS98W (routine z-s98-tm-presc); gestisce exit/prev/next.
  • x-controlla-commessa: cerca prescrizione (find+display su COGS98W), legge testata commessa (rd-lodcmtes-lk-chia2), controlla stato commessa "C"/"E", verifica clinica operatore (tm-cfg-clinica-ope), chiama COGZS3 per ottenere il modello di allegato (zs3-allegato), imposta w-titolo/w-testo in base al modello (A..E), legge LODCMAGG.
  • a-20: apre il file di stampa via COGS54 e chiede conferma periferica (F3); in modalita' archiviazione con w-dc-fl-cogz50 = "S" salta a a-30 senza richiesta.
  • a-30 / crea-stampa: loop su tm-cfg-n-copie; per ogni copia crea-stampa costruisce le 10 sezioni titolo/testo (cs-30-loop), poi chiude la pagina.
  • b-carica / carica-trans: carica-trans copia da LODDESCR a LODTMDES (temp) i testi del tipo corrente; COGZDEW genera in LODTRDES le righe impaginate a w-lunghezza 83; il testo reso viene caricato in tab-all-des-1.
  • c-stampa: emette comandi HP-GL/2 PU.../LB...#; per ogni riga, con cambio colonna/pagina via d-rect.
  • testa / x4-format-page / x41-init-page / x41-close-page: impaginazione HP-GL/2 (rettangoli, font SD..., logo se ISTRUZIONI-USO-LOGO="SI", data stampa da lcg-data-stampa o data sistema, titoli T1/T2 letti da LODTABEL e centrati via COGFNT).
  • fine / z-chiudi: chiusura file, cancel di COGZS3 e COGS98W, exit program.

Configurazioni (RNEWCONF)

Gruppo/percorso ODONTO.CNF (pacchetto "C"):

Chiave Uso
Formattazione-COGZ83 Sequenza di formattazione stampante (tm-cfg-formatta)
ISTRUZIONI-USO-LOGO "SI" per stampare il logo azienda (w-logo)
copie-istruzioni-uso Numero copie (tm-cfg-n-copie)
MODO-STAMPA-ALLEGATI "WORD" delega a COGZ82M
apo / operatore-clinica-su-lab (sud = operatore) Clinica dell'operatore (tm-cfg-clinica-ope)

CALL

Programma Scopo
COGS54 Apertura/chiusura file di stampa e richiesta periferica
COGS98W Ricerca/accept generico prescrizione-commessa in maschera
COGZDEW Rendering righe descrizione a misura (impaginazione testo)
COGFNT Calcolo lunghezza frase per centratura titoli
COGZS3 Determina il modello di allegato previsto (zs3-tip-doc = "Istruzioni")
COGZ82M Stampa allegato in modalita' Word (allegato "IS")
RNEWCONF Lettura configurazioni ODONTO / operatore
ENCRYPT (Presente ma disabilitato: gestione azienda criptata rimossa, PBUG-1925)

Note

  • La gestione dell'azienda criptata (confronto az-int) e' stata rimossa con PBUG-1925 (02/07/2024); resta solo move az-int to tm-int.
  • Il modello di allegato (A..E) mappa a coppie di caratteri w-titolo/w-testo (caratteri extended ISO-8859-1) usati come chiave di tipo su LODDESCR.
  • L'output e' HP-GL/2 (emulazione HPLJ3), impaginato su tre colonne (col1/col2/col3) con salti pagina governati dalla posizione verticale w-v-pos.