| 1 | VAQDBIM ;ALB/JRP - MEANS TEST EXTRACTION;1-MAR-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;**38**;NOV 17, 1993 | 
|---|
| 3 | ; ********** | 
|---|
| 4 | ; * PARTS OF THIS ROUTINE HAVE BEEN COPIED AND ALTERED FROM THE | 
|---|
| 5 | ; * DGMTSC* ROUTINES.  FOR MODULES THIS WAS DONE FOR, A REFERENCE | 
|---|
| 6 | ; * TO THE DGMTSC* ROUTINE WILL BE INCLUDE. | 
|---|
| 7 | ; ********** | 
|---|
| 8 | ; | 
|---|
| 9 | EXTRACT(TRAN,DFN,ARRAY,OFFSET) ;EXTRACT MEANS TEST (DISPLAY READY) | 
|---|
| 10 | ;INPUT  : TRAN - Pointer to VAQ - TRANSACTION file | 
|---|
| 11 | ;         DFN - Pointer to patient in PATIENT file | 
|---|
| 12 | ;         ARRAY - Where to store information (full global reference) | 
|---|
| 13 | ;         OFFSET - Where to start adding lines (defaults to 0) | 
|---|
| 14 | ;OUTPUT : n - Number of lines in display | 
|---|
| 15 | ;         -1^Error_text - Error | 
|---|
| 16 | ;NOTE   : If TRAN is passed | 
|---|
| 17 | ;           The patient pointer of the transaction will be used | 
|---|
| 18 | ;           Encryption will be based on the transaction | 
|---|
| 19 | ;         If DFN is passed | 
|---|
| 20 | ;           Encryption will be based on the site parameter | 
|---|
| 21 | ;       : Pointer to transaction takes precedence over DFN ... if | 
|---|
| 22 | ;         TRAN>0 the DFN will be based on the transaction | 
|---|
| 23 | ; | 
|---|
| 24 | ;This module is not based on any single DGMTSC* routine.  Setting | 
|---|
| 25 | ;up of information required to extract Means Test information was | 
|---|
| 26 | ;drawn from several routines/utilitities. | 
|---|
| 27 | ; | 
|---|
| 28 | ;CHECK INPUT | 
|---|
| 29 | S TRAN=+$G(TRAN) | 
|---|
| 30 | S DFN=+$G(DFN) | 
|---|
| 31 | Q:(('TRAN)&('DFN)) "-1^Did not pass pointer to transaction or patient" | 
|---|
| 32 | I (TRAN) Q:('$D(^VAT(394.61,TRAN))) "-1^Did not pass valid pointer to VAQ - TRANSACTION file" | 
|---|
| 33 | I (TRAN) S DFN=+$P($G(^VAT(394.61,TRAN,0)),"^",3) Q:('DFN) "-1^Transaction did not contain pointer to PATIENT file" | 
|---|
| 34 | Q:('$D(^DPT(DFN))) "-1^Did not pass valid pointer to PATIENT file" | 
|---|
| 35 | Q:($G(ARRAY)="") "-1^Did not pass output array" | 
|---|
| 36 | S OFFSET=+$G(OFFSET) | 
|---|
| 37 | ;DECLARE VARIABLES | 
|---|
| 38 | N DGMTDT,DGMTSC,DGVPRI,DGVINI,DGVIRI,DGMTPAR,DGERR,DGFL,DGDEP | 
|---|
| 39 | N DGMTYPT,DGMTI,LINES,TMP,VAQMT | 
|---|
| 40 | ;SAVE STARTING OFFSET | 
|---|
| 41 | S LINES=OFFSET | 
|---|
| 42 | ;SET MEANS TEST TYPE | 
|---|
| 43 | S DGMTYPT=1 | 
|---|
| 44 | ;GET DATE OF LAST MEANS TEST | 
|---|
| 45 | S VAQMT=$$LST^DGMTU(DFN) | 
|---|
| 46 | S DGMTI=$P(VAQMT,U,1),DGMTDT=$P(VAQMT,U,2) | 
|---|
| 47 | Q:(DGMTDT="") $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,"Could not determine date of last Means Test") | 
|---|
| 48 | ;SET UP MEANS TEST VARIABLES | 
|---|
| 49 | D SETUP^DGMTSCU | 
|---|
| 50 | Q:(DGERR) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,"Unable to set up Means Test variables") | 
|---|
| 51 | ;PUT IN TITLE | 
|---|
| 52 | S TMP=$$TITLE^VAQDBIM0(ARRAY,OFFSET) | 
|---|
| 53 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2)) | 
|---|
| 54 | S OFFSET=OFFSET+TMP | 
|---|
| 55 | ;EXTRACT SCREEN 1 | 
|---|
| 56 | S TMP=$$XTRCT1^VAQDBIM1(DFN,ARRAY,OFFSET) | 
|---|
| 57 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2)) | 
|---|
| 58 | S OFFSET=OFFSET+TMP | 
|---|
| 59 | F TMP=1:1:3 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1 | 
|---|
| 60 | ;EXTRACT SCREEN 2 | 
|---|
| 61 | S TMP=$$XTRCT2^VAQDBIM2(DFN,ARRAY,OFFSET) | 
|---|
| 62 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2)) | 
|---|
| 63 | S OFFSET=OFFSET+TMP | 
|---|
| 64 | F TMP=1:1:3 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1 | 
|---|
| 65 | ;EXTRACT SCREEN 3 | 
|---|
| 66 | S TMP=$$XTRCT3^VAQDBIM3(DFN,ARRAY,OFFSET) | 
|---|
| 67 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2)) | 
|---|
| 68 | S OFFSET=OFFSET+TMP | 
|---|
| 69 | F TMP=1:1:3 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1 | 
|---|
| 70 | ;EXTRACT SCREEN 4 | 
|---|
| 71 | S TMP=$$XTRCT4^VAQDBIM4(DFN,ARRAY,OFFSET) | 
|---|
| 72 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2)) | 
|---|
| 73 | S OFFSET=OFFSET+TMP | 
|---|
| 74 | F TMP=1:1:2 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1 | 
|---|
| 75 | ;CHECK TO SEE IF ENCRYPTION IS ON - ENCRYPT ARRAY IF IT IS | 
|---|
| 76 | S:(TRAN) TMP=$$TRANENC^VAQUTL3(TRAN,0) | 
|---|
| 77 | S:('TRAN) TMP=$$NCRYPTON^VAQUTL2(0) | 
|---|
| 78 | S:(TMP) TMP=$$ENCDSP^VAQHSH(TRAN,ARRAY,TMP,LINES,(OFFSET-LINES)) | 
|---|
| 79 | ;RETURN NUMBER OF LINES IN DISPLAY | 
|---|
| 80 | Q (OFFSET-LINES) | 
|---|