Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

Location:
FOIAVistA/tag/r
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • FOIAVistA/tag/r/CLINICAL_REMINDERS-PXRM/PXRMPDR.m

    r628 r636  
    1 PXRMPDR ;SLC/AGP,PKR - Patient List Demographic report main routine ;11/16/2007
    2  ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123
     1PXRMPDR ;SLC/AGP,PKR - Patient List Demographic report main routine ;07/17/2006
     2 ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
    33 ;
    44EN(PLIEN) ; -- main entry point for PXRM PATIENT LIST DEMOGRAPHIC
    5  N ARRAY,DC,DDATA,DELIM,DTOUT,DUOUT
     5 N ADDDATA,APPDATA,ARRAY,BACK,CNT,DC,DEMDATA,DELIM,DIC,DIR,DTOUT,DUOUT
     6 N ELIGDATA,IEN,INPDATA
     7 N FINDDATA,NAME,NODE,PFACDATA,PTIEN
     8 N QUIT,REMDATA
     9 N X,Y,YESNO
    610 W @IOF
    711 K ^TMP("PXRMPLD",$J),^TMP("PXRMPLN",$J)
    8  S DELIM=0
     12 S BACK=0,DELIM=0,QUIT=0
    913OPTION ;
    1014 W !,"Select the items to include on the report."
    11 ADDSEL D ADDSEL^PXRMPDRS(.DDATA,"ADD")
     15ADDSEL D ADDSEL^PXRMPDRS(.ADDDATA)
    1216 I $D(DTOUT)!$D(DUOUT) Q
    13 APPSEL D APPSEL^PXRMPDRS(.DDATA,"APP")
     17APPSEL D APPSEL^PXRMPDRS(.APPDATA)
    1418 I $D(DTOUT)!$D(DUOUT) G ADDSEL
    15 DEMSEL D DEMSEL^PXRMPDRS(.DDATA,"DEM")
     19DEMSEL D DEMSEL^PXRMPDRS(.DEMDATA)
    1620 I $D(DTOUT)!$D(DUOUT) G APPSEL
    17 PFACSEL S DDATA("PFAC",0)=$$ASKYN^PXRMEUT("N","Include the patient's preferred facility")
     21PFACSEL S PFACDATA(0)=$$ASKYN^PXRMEUT("N","Include the patient's preferred facility")
    1822 I $D(DTOUT)!$D(DUOUT) G DEMSEL
    19  S DDATA("PFAC","LEN")=$S(DDATA("PFAC",0)=1:1,1:0)
    20 ELIGSEL D ELIGSEL^PXRMPDRS(.DDATA,"ELIG")
     23 S PFACDATA("LEN")=$S(PFACDATA(0)=1:1,1:0)
     24ELIGSEL D ELIGSEL^PXRMPDRS(.ELIGDATA)
    2125 I $D(DTOUT)!$D(DUOUT) G PFACSEL
    22 DATASEL D DATASEL^PXRMPDRS(PLIEN,.DDATA,"FIND")
     26DATASEL D DATASEL^PXRMPDRS(PLIEN,.FINDDATA)
    2327 I $D(DTOUT)!$D(DUOUT) G ELIGSEL
    24 INPSEL D INPSEL^PXRMPDRS(.DDATA,"INP")
     28INPSEL D INPSEL^PXRMPDRS(.INPDATA)
    2529 I $D(DTOUT)!$D(DUOUT) G DATASEL
    26 REMDATA D REMSEL^PXRMPDRS(PLIEN,.DDATA,"REM")
     30REMDATA D REMSEL^PXRMPDRS(PLIEN,.REMDATA)
    2731 I $D(DTOUT)!$D(DUOUT) G INPSEL
    2832 S DELIM=$$ASKYN^PXRMEUT("Y","Delimited Report:")
    2933 I $D(DTOUT)!$D(DUOUT) G REMDATA
    30  S DC=$S(DELIM:$$DELIMSEL^PXRMXSD,1:U)
     34 I DELIM S DC=$$DELIMSEL^PXRMXSD
    3135 I $D(DTOUT)!$D(DUOUT) G OPTION
    3236DEVICE ;
    33  N DESC,DIR,PXRMQUE,RTN,SAVE,%ZIS
     37 N DIR,PXRMQUE,%ZIS,ZTDESC,ZTRTN,ZTSAVE
    3438 S %ZIS="M"
    35  S DESC="Patient List Demographic Report"
    36  S RTN="GETPDATA^PXRMPDR(DELIM,DC,PLIEN,.DDATA)"
    37  S SAVE("DELIM")="",SAVE("DC")="",SAVE("PLIEN")=""
    38  S SAVE("DDATA(")=""
    39  S PXRMQUE=$$DEVICE^PXRMXQUE(RTN,DESC,.SAVE,.%ZIS,1)
    40  I PXRMQUE'="" G EXIT
     39 S ZTDESC="Patient List Demographic"
     40 S ZTRTN="GETDATA^PXRMPDR(DELIM,PLIEN,.DEMDATA,.PFACDATA,.ADDDATA,.INPDATA,.APPDATA,.FINDDATA,.REMDATA)"
     41 S ZTSAVE("*")=""
     42 S PXRMQUE=0
     43 S PXRMQUE=$$DEVICE^PXRMXQUE(ZTRTN,ZTDESC,.ZTSAVE,.%ZIS,.ZTSK)
     44 I PXRMQUE=1 G EXIT
    4145 I $D(DTOUT)!$D(DUOUT) G EXIT
     46 ;
    4247 S DIR(0)="E" D ^DIR
    4348EXIT D KVA^VADPT
     
    4550 Q
    4651 ;
    47 GETPDATA(DELIM,DC,PLIEN,DDATA) ;
     52GETDATA(DELIM,PLIEN,DEMDATA,PFACDATA,ADDDATA,INPDATA,APPDATA,FINDDATA,REMDATA) ;
    4853 N DATA,DATE,DCREAT,DFN,DTYPE,ERRMSG
    4954 N GETADD,GETAPP,GETDEM,GETELIG,GETFIND,GETINP,GETREM
     
    5459 S LISTNAME=$P(^PXRMXP(810.5,PLIEN,0),U,1)
    5560 S DCREAT=$P(^PXRMXP(810.5,PLIEN,0),U,4)
    56  S GETDEM=$S(DDATA("DEM","LEN")>0:1,1:0)
    57  S GETADD=$S(DDATA("ADD","LEN")>0:1,1:0)
    58  S GETINP=$S(DDATA("INP","LEN")>0:1,1:0)
    59  S GETELIG=$S(DDATA("ELIG","LEN")>0:1,1:0)
    60  S GETAPP=$S(DDATA("APP","LEN")>0:1,1:0)
    61  S GETFIND=$S(DDATA("FIND","LEN")>0:1,1:0)
    62  S GETREM=$S(DDATA("REM","LEN")>0:1,1:0)
     61 S GETDEM=$S(DEMDATA("LEN")>0:1,1:0)
     62 S GETADD=$S(ADDDATA("LEN")>0:1,1:0)
     63 S GETINP=$S(INPDATA("LEN")>0:1,1:0)
     64 S GETELIG=$S(ELIGDATA("LEN")>0:1,1:0)
     65 S GETAPP=$S(APPDATA("LEN")>0:1,1:0)
     66 S GETFIND=$S(FINDDATA("LEN")>0:1,1:0)
     67 S GETREM=$S(REMDATA("LEN")>0:1,1:0)
    6368 S IEN=0
    6469 F  S IEN=+$O(^PXRMXP(810.5,PLIEN,30,IEN)) Q:IEN=0  D
     
    7277 .. N VADM
    7378 .. D DEM^VADPT
    74  .. F IND=1:1:DDATA("DEM","LEN") D
    75  ... S JND=$P(DDATA("DEM"),",",IND)
    76  ... S KND=0
    77  ... F  S KND=$O(DDATA("DEM",JND,KND)) Q:KND=""  D
    78  .... S PIECE=$P(DDATA("DEM",JND,KND),U,2)
     79 .. F IND=1:1:DEMDATA("LEN") D
     80 ... S JND=$P(DEMDATA,",",IND)
     81 ... S KND=0
     82 ... F  S KND=$O(DEMDATA(JND,KND)) Q:KND=""  D
     83 .... S PIECE=$P(DEMDATA(JND,KND),U,2)
    7984 .... S TDATA=$P(VADM(KND),U,PIECE)
    8085 .... S LND=""
     
    8287 ..... I TDATA'="" S TDATA=TDATA_"~"
    8388 ..... S TDATA=TDATA_$P(VADM(KND,LND),U,PIECE)
    84  .... I KND=2,'DDATA("DEM","FULLSSN") S TDATA=$E(TDATA,8,11)
    85  .... S $P(PDATA,U,KND)=TDATA
    86  .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"DEM")=PDATA,PDATA=""
    87  . I DDATA("PFAC",0)=1 D
     89 .... I KND=2,'DEMDATA("FULLSSN") S TDATA=$E(TDATA,8,11)
     90 .... S $P(PDATA,U,KND)=TDATA
     91 .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"DEMDATA")=PDATA,PDATA=""
     92 . I PFACDATA(0)=1 D
    8893 ..;DBIA #1850
    8994 .. S TDATA=$$GET1^DIQ(2,DFN,27.02,"E","","ERRMSG")
    9095 .. I TDATA="" S TDATA="NONE"
    91  .. S ^TMP("PXRMPLD",$J,DFN,"PFAC")=TDATA
     96 .. S ^TMP("PXRMPLD",$J,DFN,"PFACDATA")=TDATA
    9297 . I GETADD D
    9398 .. N VAPA
    9499 .. D ADD^VADPT
    95  .. F IND=1:1:DDATA("ADD","LEN") D
    96  ... S JND=$P(DDATA("ADD"),",",IND)
    97  ... S KND=0
    98  ... F  S KND=$O(DDATA("ADD",JND,KND)) Q:KND=""  D
    99  .... S PIECE=$P(DDATA("ADD",JND,KND),U,2)
     100 .. F IND=1:1:ADDDATA("LEN") D
     101 ... S JND=$P(ADDDATA,",",IND)
     102 ... S KND=0
     103 ... F  S KND=$O(ADDDATA(JND,KND)) Q:KND=""  D
     104 .... S PIECE=$P(ADDDATA(JND,KND),U,2)
    100105 .... S TDATA=$P(VAPA(KND),U,PIECE)
    101106 .... S $P(PDATA,U,KND)=TDATA
    102  .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"ADD")=PDATA,PDATA=""
     107 .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"ADDDATA")=PDATA,PDATA=""
    103108 . I GETINP D
    104109 .. N VAIP
    105110 .. D INP^VADPT
    106  .. F IND=1:1:DDATA("INP","LEN") D
    107  ... S JND=$P(DDATA("INP"),",",IND)
    108  ... S KND=0
    109  ... F  S KND=$O(DDATA("INP",JND,KND)) Q:KND=""  D
    110  .... S PIECE=$P(DDATA("INP",JND,KND),U,2)
     111 .. F IND=1:1:INPDATA("LEN") D
     112 ... S JND=$P(INPDATA,",",IND)
     113 ... S KND=0
     114 ... F  S KND=$O(INPDATA(JND,KND)) Q:KND=""  D
     115 .... S PIECE=$P(INPDATA(JND,KND),U,2)
    111116 .... S TDATA=$P(VAIN(KND),U,PIECE)
    112117 .... S $P(PDATA,U,KND)=TDATA
    113  .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"INP")=PDATA,PDATA=""
     118 .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"INPDATA")=PDATA,PDATA=""
    114119 . I GETELIG D
    115120 .. N VAEL
    116121 .. D ELIG^VADPT
    117  .. F IND=1:1:DDATA("ELIG","LEN") D
    118  ... S JND=$P(DDATA("ELIG"),",",IND)
    119  ... S KND=0
    120  ... F  S KND=$O(DDATA("ELIG",JND,KND)) Q:KND=""  D
    121  .... S PIECE=$P(DDATA("ELIG",JND,KND),U,2)
     122 .. F IND=1:1:ELIGDATA("LEN") D
     123 ... S JND=$P(ELIGDATA,",",IND)
     124 ... S KND=0
     125 ... F  S KND=$O(ELIGDATA(JND,KND)) Q:KND=""  D
     126 .... S PIECE=$P(ELIGDATA(JND,KND),U,2)
    122127 .... S TDATA=$P(VAEL(KND),U,PIECE)
    123128 .... I KND=4 S TDATA=$S(TDATA=1:"YES",1:"NO")
    124129 .... S $P(PDATA,U,KND)=TDATA
    125  .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"ELIG")=PDATA,PDATA=""
     130 .. I PDATA'="" S ^TMP("PXRMPLD",$J,DFN,"ELIGDATA")=PDATA,PDATA=""
    126131 . D KVA^VADPT
    127132 . I GETREM D
    128133 .. S IND=0
    129  .. F  S IND=$O(DDATA("REM","IEN",IND)) Q:IND=""  D
     134 .. F  S IND=$O(REMDATA("IEN",IND)) Q:IND=""  D
    130135 ... S PDATA=$G(^PXRMXP(810.5,PLIEN,30,IEN,"REM",IND,0))
    131136 ... I PDATA="" Q
    132137 ... S RIEN=$P(PDATA,U,1)
    133  ... S ^TMP("PXRMPLD",$J,DFN,"REM",RIEN)=PDATA,PDATA=""
     138 ... S ^TMP("PXRMPLD",$J,DFN,"REMDATA",RIEN)=PDATA,PDATA=""
    134139 . I GETFIND D
    135140 .. N DL
    136  .. F IND=1:1:DDATA("FIND","LEN") D
    137  ... S JND=$P(DDATA("FIND"),",",IND)
    138  ... S DTYPE=DDATA("FIND",JND,JND)
     141 .. F IND=1:1:FINDDATA("LEN") D
     142 ... S JND=$P(FINDDATA,",",IND)
     143 ... S DTYPE=FINDDATA(JND,JND)
    139144 ... S KND=$O(^PXRMXP(810.5,PLIEN,30,IEN,"DATA","B",DTYPE,""))
    140145 ... S DL=$S(KND="":0,1:$L(^PXRMXP(810.5,PLIEN,30,IEN,"DATA",KND,0),U))
    141146 ... S DATA=$S(KND="":"",1:$P(^PXRMXP(810.5,PLIEN,30,IEN,"DATA",KND,0),U,2,DL))
    142  ... S ^TMP("PXRMPLD",$J,DFN,"FIND",JND)=DATA
     147 ... S ^TMP("PXRMPLD",$J,DFN,"FINDDATA",JND)=DATA
    143148 ;Get appointment data for all patients on the list.
    144149 I GETAPP D
     
    146151 . S ARRAY(1)=DT,ARRAY(3)="I;R"
    147152 . S ARRAY(4)="^TMP($J,""PXRMPL""",ARRAY("FLDS")=""
    148  . F IND=1:1:DDATA("APP","LEN") D
    149  .. S JND=$P(DDATA("APP"),",",IND)
     153 . F IND=1:1:APPDATA("LEN") D
     154 .. S JND=$P(APPDATA,",",IND)
    150155 .. S KND=0
    151  .. F  S KND=$O(DDATA("APP",JND,KND)) Q:KND=""  S ARRAY("FLDS")=ARRAY("FLDS")_KND_";"
     156 .. F  S KND=$O(APPDATA(JND,KND)) Q:KND=""  S ARRAY("FLDS")=ARRAY("FLDS")_KND_";"
    152157 . K ^TMP($J,"PXRMPL"),^TMP($J,"SDAMA301")
    153158 . S IND=0
     
    158163 . I COUNT=-1 D  Q
    159164 .. D APPERR^PXRMPDRS
    160  .. S DDATA("APP","ERROR")=""
     165 .. S APPDATA("ERROR")=""
    161166 .. K ^TMP($J,"PXRMPL"),^TMP($J,"SDAMA301")
    162167 . F IND=1:1:COUNT D
     
    172177 ..... S TDATA=$P(TDATA,U,2),TDATA=$P(TDATA,";",2)
    173178 ..... S PDATA=PDATA_U_TDATA
    174  ..... S ^TMP("PXRMPLD",$J,DFN,"APP",KND)=PDATA
     179 ..... S ^TMP("PXRMPLD",$J,DFN,"APPDATA",KND)=PDATA
    175180 . K ^TMP($J,"PXRMPL"),^TMP($J,"SDAMA301")
    176  I DELIM=1 D DELIMPR^PXRMPDRP(DC,PLIEN,.DDATA)
    177  I DELIM=0 D REGPR^PXRMPDRP(PLIEN,.DDATA)
     181 I DELIM=1 D DELIMPR^PXRMPDRP(DC,PLIEN,.ADDDATA,.APPDATA,.DEMDATA,.FINDDATA,.INPDATA,.PFACDATA,.REMDATA)
     182 I DELIM=0 D REGPR^PXRMPDRP(PLIEN,.ADDDATA,.APPDATA,.DEMDATA,.FINDDATA,.INPDATA,.PFACDATA,.REMDATA)
    178183 Q
    179184 ;
     
    184189 ;
    185190PAGE ;
    186  I ($E(IOST,1,2)="C-")&(IO=IO(0)) D
     191 I ($E(IOST)="C")&(IO=IO(0)) D
    187192 .S DIR(0)="E"
    188193 .W !
     
    191196 W:$D(IOF) @IOF
    192197 S PAGE=PAGE+1
    193  I ($E(IOST,1,2)="C-")&(IO=IO(0)) W @IOF
    194  Q
    195  ;
     198 I $E(IOST)="C",IO=IO(0) W @IOF
     199 Q
     200 ;
Note: See TracChangeset for help on using the changeset viewer.