[613] | 1 | IVMLDEM ;ALB/KCL - IVM DEMOGRAPHIC UPLOAD PATIENT DISPLAY ; 11-APR-94
|
---|
| 2 | ;;Version 2.0 ; INCOME VERIFICATION MATCH ;; 21-OCT-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | ;
|
---|
| 6 | EN ; - main entry point
|
---|
| 7 | N IVMENT
|
---|
| 8 | D BUILD
|
---|
| 9 | I IVMCTR=0 G EXIT ; if no patients with demographic info - quit
|
---|
| 10 | D EN^VALM("IVM DEMOGRAPHIC")
|
---|
| 11 | Q
|
---|
| 12 | ;
|
---|
| 13 | ;
|
---|
| 14 | BUILD ; - build an array of IVM patients with demographic data for uploading
|
---|
| 15 | K ^TMP("IVMDUPL",$J)
|
---|
| 16 | W !,"Building patient list for display..."
|
---|
| 17 | S IVMCTR=0
|
---|
| 18 | ;
|
---|
| 19 | ; - get patients with demographic fields from ASEG x-ref
|
---|
| 20 | S IVMI=0 F S IVMI=$O(^IVM(301.5,"ASEG","PID",IVMI)) Q:'IVMI D
|
---|
| 21 | .S IVMJ=0 F S IVMJ=$O(^IVM(301.5,"ASEG","PID",IVMI,IVMJ)) Q:'IVMJ D
|
---|
| 22 | ..S IVMCTR=IVMCTR+1 W:'(IVMCTR#15) "."
|
---|
| 23 | ..;
|
---|
| 24 | ..; - grab node from file #301.5
|
---|
| 25 | ..S IVM0NODE=$G(^IVM(301.5,IVMI,0)) I IVM0NODE']"" Q
|
---|
| 26 | ..;
|
---|
| 27 | ..; - get DFN and grab node from file #2
|
---|
| 28 | ..S DFN=+IVM0NODE,IVM0DPT=$G(^DPT(+DFN,0)) I IVM0DPT']"" Q
|
---|
| 29 | ..;
|
---|
| 30 | ..; - patient name and ssn
|
---|
| 31 | ..S IVMNAME=$P(IVM0DPT,"^"),IVMSSN=$P(IVM0DPT,"^",9),IVMSSN=$E(IVMSSN,1,3)_"-"_$E(IVMSSN,4,5)_"-"_$E(IVMSSN,6,9)
|
---|
| 32 | ..;
|
---|
| 33 | ..; - check for uploadable and non-uploadable fields
|
---|
| 34 | ..S IVMUP=$S($$DEMO^IVMLDEM5(IVMI,IVMJ,1)=1:"YES",1:"NO")
|
---|
| 35 | ..S IVMINFO=$S($$DEMO^IVMLDEM5(IVMI,IVMJ,0)=1:"YES",1:"NO")
|
---|
| 36 | ..;
|
---|
| 37 | ..; - build line for list manager display
|
---|
| 38 | ..D BUILDLN
|
---|
| 39 | ;
|
---|
| 40 | I IVMCTR=0 W !!,"There is no IVM demographic information to be uploaded at this time.",!,*7
|
---|
| 41 | ;
|
---|
| 42 | BUILDQ ; - clean up variables
|
---|
| 43 | K DFN,IVM0NODE,IVM0DPT,IVMCHK,IVMI,IVMINFO,IVMJ,IVMNAME,IVMSSN,IVMUP
|
---|
| 44 | Q
|
---|
| 45 | ;
|
---|
| 46 | ;
|
---|
| 47 | BUILDLN ; - build storage array with data for List Manager (called from BLD)
|
---|
| 48 | ;
|
---|
| 49 | S ^TMP("IVMDUPL",$J,IVMNAME,IVMI,IVMJ)=DFN_"^"_IVMNAME_"^"_IVMSSN_"^"_IVMUP_"^"_IVMINFO
|
---|
| 50 | ;
|
---|
| 51 | ; ^tmp("ivmdupl",$j,pat name, ivm ien, ivm sub ien)=dfn^patient name^patient ssn^demo uploadable^demo info only
|
---|
| 52 | Q
|
---|
| 53 | ;
|
---|
| 54 | ;
|
---|
| 55 | HDR ; - header code for list manager display
|
---|
| 56 | S VALMHDR(1)="Patient Demographic Information" ; header line 1
|
---|
| 57 | S VALMHDR(2)=" Uploadable Non-uploadable" ; header line 2
|
---|
| 58 | Q
|
---|
| 59 | ;
|
---|
| 60 | ;
|
---|
| 61 | INIT ; - init variables and list array
|
---|
| 62 | K ^TMP("IVMLST",$J)
|
---|
| 63 | S IVMBL="",$P(IVMBL," ",30)="",IVMCTR=0
|
---|
| 64 | S IVMNAME="" F S IVMNAME=$O(^TMP("IVMDUPL",$J,IVMNAME)) Q:IVMNAME']"" S IVMI="" D
|
---|
| 65 | .F S IVMI=$O(^TMP("IVMDUPL",$J,IVMNAME,IVMI)) Q:'IVMI S IVMJ="" D
|
---|
| 66 | ..F S IVMJ=$O(^TMP("IVMDUPL",$J,IVMNAME,IVMI,IVMJ)) Q:'IVMJ D
|
---|
| 67 | ...;
|
---|
| 68 | ...; - IVMLN as the line for the list manager display
|
---|
| 69 | ...S IVMLN=$G(^TMP("IVMDUPL",$J,IVMNAME,IVMI,IVMJ)) I IVMLN']"" Q
|
---|
| 70 | ...;
|
---|
| 71 | ...; - increment counter and write line
|
---|
| 72 | ...S IVMCTR=IVMCTR+1 D WRLN(IVMLN,IVMCTR)
|
---|
| 73 | ...;
|
---|
| 74 | ...; - build index record to use for processing as
|
---|
| 75 | ...; ^tmp("ivmlst",$j,"idx",ctr,ctr)=dfn^pat name^ien (#301.5) file^ien (#301.501) sub file
|
---|
| 76 | ...S ^TMP("IVMLST",$J,"IDX",IVMCTR,IVMCTR)=$P(IVMLN,"^",1)_"^"_IVMNAME_"^"_IVMI_"^"_IVMJ
|
---|
| 77 | ;
|
---|
| 78 | ; - list manager variable as number of lines in the list
|
---|
| 79 | S VALMCNT=IVMCTR
|
---|
| 80 | ;
|
---|
| 81 | INITQ ; - clean up variables
|
---|
| 82 | K DFN,IVMBL,IVMCTR,IVMI,IVMJ,IVMLINE,IVMLN,IVMNAME,IVMNUM
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | ;
|
---|
| 86 | WRLN(IVMLINE,IVMNUM) ; - write line out for list manager display
|
---|
| 87 | ;
|
---|
| 88 | ; Input: IVMLINE -- as line for display
|
---|
| 89 | ; dfn^pat name^pat ssn^uploadable (yes/no)^non-uploadable (yes/no)
|
---|
| 90 | ; IVMNUM -- as the line number
|
---|
| 91 | ; Output: None
|
---|
| 92 | ;
|
---|
| 93 | N IVMLN
|
---|
| 94 | S IVMLN=$E($P(IVMLINE,"^",2)_IVMBL,1,30)_" "_$E($P(IVMLINE,"^",3)_IVMBL,1,15)_" "_$E($P(IVMLINE,"^",4)_IVMBL,1,13)_" "_$P(IVMLINE,"^",5)
|
---|
| 95 | I $P(IVMLINE,"^",4)["YES" D CNTRL^VALM10(IVMNUM,55,3,IOINHI,IOINORM) ; highlight
|
---|
| 96 | S @VALMAR@(IVMNUM,0)=$E(IVMNUM_" ",1,5)_IVMLN
|
---|
| 97 | Q
|
---|
| 98 | ;
|
---|
| 99 | ;
|
---|
| 100 | HELP ; - help code
|
---|
| 101 | S X="?" D DISP^XQORM1 W !!
|
---|
| 102 | Q
|
---|
| 103 | ;
|
---|
| 104 | ;
|
---|
| 105 | EXIT ; - exit code
|
---|
| 106 | K ^TMP("IVMLST",$J),^TMP("IVMDUPL",$J)
|
---|
| 107 | Q
|
---|