| 1 | IVMLDEM3 ;ALB/KCL - IVM DEMOGRAPHIC NON-UPLOADABLE FIELDS ; 15-APR-94
 | 
|---|
| 2 |  ;;Version 2.0 ; INCOME VERIFICATION MATCH ;**5**; 21-OCT-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | EN ; - main entry point for IVM DEMOGRAPHIC NON-UPLOADABLE
 | 
|---|
| 7 |  D EN^VALM("IVM DEMOGRAPHIC NON-UPLOADABLE")
 | 
|---|
| 8 |  Q
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | HDR ; - header code for list manager display
 | 
|---|
| 12 |  S IVMBLNK="",$P(IVMBLNK," ",45)=""
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ; - header line 1
 | 
|---|
| 15 |  S VALMHDR(1)="Patient: "_$E($E($P(^DPT(DFN,0),"^"),1,20)_" "_"("_$E($P(^DPT(DFN,0),"^",9),6,9)_")"_IVMBLNK,1,35)_" "_"Non-uploadable Demographic Fields"
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ; - header line 2
 | 
|---|
| 18 |  S VALMHDR(2)=" "
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | INIT ; - init variables and list array
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ;  Input:  IVMDA2  --  Pointer to case record in file #301.5
 | 
|---|
| 25 |  ;          IVMDA1  --  Pointer to PID msg in sub-file #301.501
 | 
|---|
| 26 |  ;             DFN  --  Pointer to patient in file #2
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ; - flag used for delete demographic field action (DF)
 | 
|---|
| 30 |  S IVMWHERE="NON"
 | 
|---|
| 31 |  S IVMSTAT2=""
 | 
|---|
| 32 |  K ^TMP("IVMNONUP",$J)
 | 
|---|
| 33 |  S IVMBL="",$P(IVMBL," ",58)="",IVMCNTR=0,IVM27=0
 | 
|---|
| 34 |  D DEM^VADPT,ADD^VADPT S IVMSTATE=$P(VAPA(5),"^")
 | 
|---|
| 35 |  F IVMDA=0:0 S IVMDA=$O(^IVM(301.5,IVMDA2,"IN",IVMDA1,"DEM",IVMDA)) Q:'IVMDA  D
 | 
|---|
| 36 |  .;
 | 
|---|
| 37 |  .; - grab node with IVM-supplied data
 | 
|---|
| 38 |  .S IVMDEMO=$G(^IVM(301.5,IVMDA2,"IN",IVMDA1,"DEM",IVMDA,0)) I IVMDEMO="" Q
 | 
|---|
| 39 |  .;
 | 
|---|
| 40 |  .; - quit if data element is uploadable
 | 
|---|
| 41 |  .S IVMTABLE=$G(^IVM(301.92,+$P(IVMDEMO,"^"),0))
 | 
|---|
| 42 |  .Q:$P(IVMTABLE,"^",3)=1
 | 
|---|
| 43 |  .;
 | 
|---|
| 44 |  .; - if ivm state data then set IVMSTAT2 for decoding county code
 | 
|---|
| 45 |  .I $P(IVMTABLE,"^")["STATE" S IVMSTAT2=$P(IVMDEMO,"^",2)
 | 
|---|
| 46 |  .;
 | 
|---|
| 47 |  .S IVMCNTR=IVMCNTR+1
 | 
|---|
| 48 |  .;
 | 
|---|
| 49 |  .; - primary eligibility code
 | 
|---|
| 50 |  .S:$P(IVMDEMO,"^")=27 IVM27=IVM27+1
 | 
|---|
| 51 |  .;
 | 
|---|
| 52 |  .; - extract DHCP value in displayable format
 | 
|---|
| 53 |  .S IVMDHCP="" X:$D(^IVM(301.92,$P(IVMDEMO,"^"),2)) ^(2) S IVMDHCP=Y
 | 
|---|
| 54 |  .;
 | 
|---|
| 55 |  .; - build index record to use for processing as
 | 
|---|
| 56 |  .;   ctr is line # and ctr1 is entry #
 | 
|---|
| 57 |  .;    ^tmp("ivmnonup",$j,"idx",ctr,ctr1)=dfn^da(2)^da(1)^da^ivm data^pointer to file (#1)^dhcp field number^dhcp field name
 | 
|---|
| 58 |  .;
 | 
|---|
| 59 |  .S IVMCNTR1=$S(IVM27<2:IVMCNTR,1:IVMCNTR-IVM27+1)
 | 
|---|
| 60 |  .S ^TMP("IVMNONUP",$J,"IDX",IVMCNTR,IVMCNTR1)=DFN_"^"_IVMDA2_"^"_IVMDA1_"^"_IVMDA_"^"_$P(IVMDEMO,"^",2)_"^"_$P(IVMTABLE,"^",4)_"^"_$P(IVMTABLE,"^",5)_"^"_$P(IVMTABLE,"^")
 | 
|---|
| 61 |  .;
 | 
|---|
| 62 |  .; - build list manager display line
 | 
|---|
| 63 |  .D WRITLINE($P(IVMTABLE,"^")_"^"_IVMDHCP_"^"_$P(IVMDEMO,"^",2),IVMCNTR)
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  I '$O(@VALMAR@(0)) D
 | 
|---|
| 67 |  .;
 | 
|---|
| 68 |  .; - check for uploadable fields, if no fields do DELETE
 | 
|---|
| 69 |  .I '$$DEMO^IVMLDEM5(IVMDA2,IVMDA1,1) D DELETE^IVMLDEM5(IVMDA2,IVMDA1,IVMNAME)
 | 
|---|
| 70 |  .;
 | 
|---|
| 71 |  .; - if uploadable fields set array field from 'YES' to 'NO' for list manager display
 | 
|---|
| 72 |  .I $$DEMO^IVMLDEM5(IVMDA2,IVMDA1,1) S $P(^TMP("IVMDUPL",$J,IVMNAME,IVMDA2,IVMDA1),"^",5)="NO"
 | 
|---|
| 73 |  .;
 | 
|---|
| 74 |  .; - display msg to user that no uploadable data to view
 | 
|---|
| 75 |  .D KILL^VALM10(1)
 | 
|---|
| 76 |  .D KILL^VALM10(2)
 | 
|---|
| 77 |  .S @VALMAR@(1,0)=" "
 | 
|---|
| 78 |  .S @VALMAR@(2,0)="There is no non-uploadable demographic information to view."
 | 
|---|
| 79 |  .S IVMCNTR=2
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  ; - list manager variable as number of lines in the list
 | 
|---|
| 82 |  S VALMCNT=IVMCNTR
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 | INITQ ; - clean up variables
 | 
|---|
| 86 |  D KVA^VADPT ; kill all variables defined by VADPT routine
 | 
|---|
| 87 |  K IVMBL,IVMBLNK,IVMCNTR,IVMCNTR1,IVMDA,IVMDEMO,IVMDHCP,IVMFIELD
 | 
|---|
| 88 |  K IVMSTAT2,IVMSTATE,IVMTABLE,IVM27
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | WRITLINE(IVMLINE,IVMNUM) ; - write line out for list manager display
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  ;  Input:  IVMLINE  --  as the line for display:
 | 
|---|
| 95 |  ;                       dhcp field name^dhcp field value^ivm field value
 | 
|---|
| 96 |  ;           IVMNUM  --  as the line number
 | 
|---|
| 97 |  ; Output:  None
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 |  N IVMLN,IVMOUT1,IVMOUT2,IVMNUM1
 | 
|---|
| 100 |  S IVMOUT1=$P(IVMLINE,"^",2)
 | 
|---|
| 101 |  I $P(IVMTABLE,"^",7) S IVMOUT1=$$OUTTR^IVMUFNC(IVMOUT1,IVMTABLE,IVMSTATE)
 | 
|---|
| 102 |  S:IVMOUT1="" IVMOUT1="(* NONE ON FILE *)"
 | 
|---|
| 103 |  S IVMOUT2=$$OUTTR^IVMUFNC($P(IVMLINE,"^",3),IVMTABLE,IVMSTAT2)
 | 
|---|
| 104 |  S IVMLN=$E($P(IVMLINE,"^",1)_IVMBL,1,30)_"  "_$E(IVMOUT1_IVMBL,1,20)_"  "_$E(IVMOUT2_IVMBL,1,20)
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 |  ; - highlight IVM field value
 | 
|---|
| 107 |  D CNTRL^VALM10(IVMNUM,58,22,IOINHI,IOINORM)
 | 
|---|
| 108 |  I $P(IVMDEMO,"^")=27,IVM27>1 S @VALMAR@(IVMNUM,0)=IVMBL_$E(IVMOUT2_IVMBL,1,20) Q
 | 
|---|
| 109 |  S IVMNUM1=$S(IVM27>1:IVMNUM-IVM27+1,1:IVMNUM)
 | 
|---|
| 110 |  S @VALMAR@(IVMNUM,0)=$E(IVMNUM1_"   ",1,3)_IVMLN
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 | HELP ; - help code
 | 
|---|
| 115 |  S X="?" D DISP^XQORM1 W !!
 | 
|---|
| 116 |  Q
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 | EXIT ; - exit code
 | 
|---|
| 119 |  K ^TMP("IVMNONUP",$J)
 | 
|---|
| 120 |  Q
 | 
|---|