| 1 | PXRMV2I ; SLC/PKR - Version 2.0 init routine. ;11/05/2004
 | 
|---|
| 2 |  ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;===============================================================
 | 
|---|
| 6 | CPCL ;Convert the internal patient cohort logic to the new form that
 | 
|---|
| 7 |  ;includes sex and age.
 | 
|---|
| 8 |  N CPCL,IEN
 | 
|---|
| 9 |  S IEN=0
 | 
|---|
| 10 |  F  S IEN=+$O(^PXD(811.9,IEN)) Q:IEN=0  D
 | 
|---|
| 11 |  . S CPCL=$G(^PXD(811.9,IEN,30))
 | 
|---|
| 12 |  . I CPCL'="" D CPPCLS^PXRMLOGX(IEN,CPCL)
 | 
|---|
| 13 |  . E  D BLDPCLS^PXRMLOGX(IEN,"","")
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ;===============================================================
 | 
|---|
| 17 | CRXTYPE ;Convert the RXTYPE to the new form.
 | 
|---|
| 18 |  N FI,IND,RXTYPE
 | 
|---|
| 19 |  D BMES^XPDUTL("Converting definition RXTYPES to new form.")
 | 
|---|
| 20 |  S IEN=0
 | 
|---|
| 21 |  F  S IEN=+$O(^PXD(811.9,IEN)) Q:IEN=0  D
 | 
|---|
| 22 |  . S FI=0
 | 
|---|
| 23 |  . F  S FI=+$O(^PXD(811.9,IEN,20,FI)) Q:FI=0  D
 | 
|---|
| 24 |  .. S RXTYPE=$P(^PXD(811.9,IEN,20,FI,0),U,13)
 | 
|---|
| 25 |  .. I RXTYPE="B" S $P(^PXD(811.9,IEN,20,FI,0),U,13)="A"
 | 
|---|
| 26 |  D BMES^XPDUTL("Converting term RXTYPES to new form.")
 | 
|---|
| 27 |  S IEN=0
 | 
|---|
| 28 |  F  S IEN=+$O(^PXRMD(811.5,IEN)) Q:IEN=0  D
 | 
|---|
| 29 |  . S FI=0
 | 
|---|
| 30 |  . F  S FI=+$O(^PXRMD(811.5,IEN,20,FI)) Q:FI=0  D
 | 
|---|
| 31 |  .. S RXTYPE=$P(^PXRMD(811.5,IEN,20,FI,0),U,13)
 | 
|---|
| 32 |  .. I RXTYPE="B" S $P(^PXRMD(811.5,IEN,20,FI,0),U,13)="A"
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  ;===============================================================
 | 
|---|
| 36 | CSVPE ;Execute the CSV protocol event points.
 | 
|---|
| 37 |  D ICDPE^PXRMCSPE
 | 
|---|
| 38 |  D CPTPE^PXRMCSPE
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  ;===============================================================
 | 
|---|
| 42 | DELCF ;Delete erroneous computed finding entries.
 | 
|---|
| 43 |  N DA,DIK,NAME
 | 
|---|
| 44 |  S DIK="^PXRMD(811.4,"
 | 
|---|
| 45 |  F NAME="VA-WH MAMMOGRAM REV IN WH PKG","VA-WH PAP SMEAR REV IN WH PKG","VA-WH REVIEW OR RESULT","VA-WH ULTRASOUND","VA-WH ULTRASOUND REVIEW" D
 | 
|---|
| 46 |  . S DA=+$O(^PXRMD(811.4,"B",NAME,"")) Q:DA'>0
 | 
|---|
| 47 |  . D BMES^XPDUTL("Deleting Computed Finding: "_NAME)
 | 
|---|
| 48 |  . D ^DIK
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  ;===============================================================
 | 
|---|
| 52 | DELDD ;Delete the old data dictionaries.
 | 
|---|
| 53 |  N DIU,TEXT
 | 
|---|
| 54 |  D EN^DDIOL("Removing old data dictionaries.")
 | 
|---|
| 55 |  S DIU(0)=""
 | 
|---|
| 56 |  F DIU=800,801.3,801.41,801.42,801.43,801.45,801.5,801.9,801.95,802.4,810.1,810.2,810.3,810.4,810.5,810.6,810.7,810.8,810.9,811.2,811.3,811.4,811.5,811.6,811.7,811.8,811.9 D
 | 
|---|
| 57 |  . S TEXT=" Deleting data dictionary for file # "_DIU
 | 
|---|
| 58 |  . D EN^DDIOL(TEXT)
 | 
|---|
| 59 |  . D EN^DIU2
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  ;===============================================================
 | 
|---|
| 63 | EXTRACT ;
 | 
|---|
| 64 |  N DA,DIE,DR,NAME,PERIOD
 | 
|---|
| 65 |  S PERIOD="M1/2005",DIE="^PXRM(810.2,"
 | 
|---|
| 66 |  F NAME="VA-IHD QUERI","VA-MH QUERI" D
 | 
|---|
| 67 |  . S DA=$O(^PXRM(810.2,"B",NAME,"")) Q:DA'>0
 | 
|---|
| 68 |  . S DR="4///^S X=PERIOD" D ^DIE
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  ;===============================================================
 | 
|---|
| 72 | FFFIX ;Clean up the function finding file at test sites.
 | 
|---|
| 73 |  N DA,DIK,NAME
 | 
|---|
| 74 |  S DIK="^PXRMD(802.4,"
 | 
|---|
| 75 |  F NAME="FND","FI","DUR" D
 | 
|---|
| 76 |  . S DA=+$O(^PXRMD(802.4,"B",NAME,"")) Q:DA'>0
 | 
|---|
| 77 |  . D BMES^XPDUTL("Deleting Function Finding: "_NAME)
 | 
|---|
| 78 |  . D ^DIK
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  ;===============================================================
 | 
|---|
| 82 | FIXTERM ;
 | 
|---|
| 83 |  N IEN,TEMP0
 | 
|---|
| 84 |  S IEN=0 F  S IEN=$O(^PXRMD(811.5,IEN)) Q:IEN'>0  D
 | 
|---|
| 85 |  . S TEMP0=$P($G(^PXRMD(811.5,IEN,0)),U,1,4)
 | 
|---|
| 86 |  . S $P(TEMP0,U,2)="",$P(TEMP0,U,3)=""
 | 
|---|
| 87 |  . S ^PXRMD(811.5,IEN,0)=TEMP0
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 |  ;===============================================================
 | 
|---|
| 91 | FOMRD ;Flag all definitions using the old-style MRD.
 | 
|---|
| 92 |  N CPCL,IEN,NAME,NL,XMSUB
 | 
|---|
| 93 |  K ^TMP("PXRMXMZ",$J)
 | 
|---|
| 94 |  S XMSUB="Old-style MRD obsolete"
 | 
|---|
| 95 |  S ^TMP("PXRMXMZ",$J,1,0)="The old-style MRD function is obsolete and will be removed in a subsequent"
 | 
|---|
| 96 |  S ^TMP("PXRMXMZ",$J,2,0)="patch. Please do not use it anymore; use a function finding instead."
 | 
|---|
| 97 |  S ^TMP("PXRMXMZ",$J,3,0)="The following reminder definitions use the old-style MRD function;"
 | 
|---|
| 98 |  S ^TMP("PXRMXMZ",$J,4,0)="please change them to use a function finding."
 | 
|---|
| 99 |  S NL=4
 | 
|---|
| 100 |  S IEN=0
 | 
|---|
| 101 |  F  S IEN=+$O(^PXD(811.9,IEN)) Q:IEN=0  D
 | 
|---|
| 102 |  . S CPCL=$G(^PXD(811.9,IEN,30))
 | 
|---|
| 103 |  . I CPCL'["MRD" Q
 | 
|---|
| 104 |  . S NAME=$P(^PXD(811.9,IEN,0),U,1)
 | 
|---|
| 105 |  . S NL=NL+1
 | 
|---|
| 106 |  . S ^TMP("PXRMXMZ",$J,NL,0)=" "
 | 
|---|
| 107 |  . S NL=NL+1
 | 
|---|
| 108 |  . S ^TMP("PXRMXMZ",$J,NL,0)="Reminder: "_NAME_", ien - "_IEN
 | 
|---|
| 109 |  . S NL=NL+1
 | 
|---|
| 110 |  . S ^TMP("PXRMXMZ",$J,NL,0)="Custom cohort logic: "_CPCL
 | 
|---|
| 111 |  I NL=4 K ^TMP("PXRMXMZ",$J,3,0),^TMP("PXRMXMZ",$J,4,0)
 | 
|---|
| 112 |  D SEND^PXRMMSG(XMSUB)
 | 
|---|
| 113 |  Q
 | 
|---|
| 114 |  ;===============================================================
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 | MAIL ;Add remote member to mail group IHD SEND
 | 
|---|
| 117 |  D ADDMBRS^XMXAPIG(DUZ,"IHD SEND","XXX@Q-IHD.MED.VA.GOV")
 | 
|---|
| 118 |  D ADDMBRS^XMXAPIG(DUZ,"IHD","S.HL MS SERVER")
 | 
|---|
| 119 |  D INIT^PXRMGECW
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  ;===============================================================
 | 
|---|
| 123 | PRE ;
 | 
|---|
| 124 |  D RENAMIR
 | 
|---|
| 125 |  D RENAMTRM
 | 
|---|
| 126 |  D DELCF
 | 
|---|
| 127 |  D FFFIX
 | 
|---|
| 128 |  D DELETE^PXRMV2IL
 | 
|---|
| 129 |  D DELEI^PXRMV2IE
 | 
|---|
| 130 |  D DELDD
 | 
|---|
| 131 |  Q
 | 
|---|
| 132 |  ;
 | 
|---|
| 133 |  ;===============================================================
 | 
|---|
| 134 | POST ;
 | 
|---|
| 135 |  D SVRSN
 | 
|---|
| 136 |  D DELEXB^PXRMV2IE
 | 
|---|
| 137 |  D CNAK^PXRMV2IE
 | 
|---|
| 138 |  D SMEXINS^PXRMV2IE
 | 
|---|
| 139 |  D FOMRD
 | 
|---|
| 140 |  D RTAXEXP
 | 
|---|
| 141 |  D MAIL
 | 
|---|
| 142 |  ;D XPARAMS
 | 
|---|
| 143 |  D CPCL
 | 
|---|
| 144 |  D CEFFDATE^PXRMV2ID
 | 
|---|
| 145 |  D CFDATE^PXRMV2ID
 | 
|---|
| 146 |  D CSVPE
 | 
|---|
| 147 |  D WEB
 | 
|---|
| 148 |  D COND^PXRMV2IC
 | 
|---|
| 149 |  D SFNFTC^PXRMV2IA
 | 
|---|
| 150 |  D DELGEC^PXRMV2IE
 | 
|---|
| 151 |  D EN^PXRMV2IR
 | 
|---|
| 152 |  D CRXTYPE^PXRMV2I
 | 
|---|
| 153 |  D FIXTERM
 | 
|---|
| 154 |  D EXTRACT
 | 
|---|
| 155 |  Q
 | 
|---|
| 156 |  ;
 | 
|---|
| 157 |  ;===============================================================
 | 
|---|
| 158 | RENAMIR ;If the VA-IRAQ &AFGHAN POST-DEPLOY SCREEN reminder exists rename it.
 | 
|---|
| 159 |  N DA,DIE,DR,PXRMINST,TEXT
 | 
|---|
| 160 |  S DA=$O(^PXD(811.9,"B","VA-IRAQ &AFGHAN POST-DEPLOY SCREEN",""))
 | 
|---|
| 161 |  I DA="" Q
 | 
|---|
| 162 |  S TEXT="Renaming reminder VA-IRAQ &AFGHAN POST-DEPLOY SCREEN to VA-IRAQ & AFGHAN POST-DEPLOY SCREEN"
 | 
|---|
| 163 |  D BMES^XPDUTL(TEXT)
 | 
|---|
| 164 |  S DIE=811.9,DR=".01///VA-IRAQ & AFGHAN POST-DEPLOY SCREEN",PXRMINST=1
 | 
|---|
| 165 |  D ^DIE
 | 
|---|
| 166 |  Q
 | 
|---|
| 167 |  ;
 | 
|---|
| 168 |  ;===============================================================
 | 
|---|
| 169 | RENAMTRM ;Rename all national terms so they start with VA-
 | 
|---|
| 170 |  N DA,DIE,DR,IEN,OLDNAME,NEWNAME,X
 | 
|---|
| 171 |  D BMES^XPDUTL("Renaming National Terms:")
 | 
|---|
| 172 |  S IEN=0 F  S IEN=$O(^PXRMD(811.5,IEN)) Q:IEN'>0  D
 | 
|---|
| 173 |  . I $P($G(^PXRMD(811.5,IEN,100)),U)'="N" Q
 | 
|---|
| 174 |  . S OLDNAME=$P($G(^PXRMD(811.5,IEN,0)),U,1)
 | 
|---|
| 175 |  . I OLDNAME["VA-" Q
 | 
|---|
| 176 |  . D BMES^XPDUTL("Renaming Term: "_OLDNAME)
 | 
|---|
| 177 |  . S NEWNAME="VA-"_OLDNAME,DIE="^PXRMD(811.5,",DA=IEN,DR=".01///^S X=NEWNAME"
 | 
|---|
| 178 |  .;lock record
 | 
|---|
| 179 |  . L +^PXRMD(811.5,IEN):0 I $T D ^DIE L -^PXRMD(811.5,IEN)
 | 
|---|
| 180 |  S DIE="^PXRMD(811.4,"
 | 
|---|
| 181 |  S DA=$O(^PXRMD(811.4,"B","VA-IRAQ & AFGHAN SEP. DATE",""))
 | 
|---|
| 182 |  I $G(DA)="" Q
 | 
|---|
| 183 |  S DR=".01////VA-DISCHARGE DATE" D ^DIE
 | 
|---|
| 184 |  Q
 | 
|---|
| 185 |  ;===============================================================
 | 
|---|
| 186 | RTAXEXP ;Rebuild all taxonomy expansions.
 | 
|---|
| 187 |  N ALOW,AHIGH,FILENUM,HIGH,LOW,IEN,IND,TEMP,TEXT,X,X1,X2
 | 
|---|
| 188 |  S (X1,X2)="TAX"
 | 
|---|
| 189 |  D BMES^XPDUTL("Rebuilding taxonomy expansions and setting adjacent values.")
 | 
|---|
| 190 |  S IEN=0
 | 
|---|
| 191 |  F  S IEN=+$O(^PXD(811.2,IEN)) Q:IEN=0  D
 | 
|---|
| 192 |  . S TEXT=" Working on taxonomy "_IEN
 | 
|---|
| 193 |  . D BMES^XPDUTL(TEXT)
 | 
|---|
| 194 |  . D DELEXTL^PXRMBXTL(IEN)
 | 
|---|
| 195 |  . D EXPAND^PXRMBXTL(IEN,"")
 | 
|---|
| 196 |  . F FILENUM=80,80.1,81 D
 | 
|---|
| 197 |  .. S IND=0
 | 
|---|
| 198 |  .. F  S IND=+$O(^PXD(811.2,IEN,FILENUM,IND)) Q:IND=0  D
 | 
|---|
| 199 |  ... S TEMP=^PXD(811.2,IEN,FILENUM,IND,0)
 | 
|---|
| 200 |  ... S LOW=$P(TEMP,U,1),HIGH=$P(TEMP,U,2)
 | 
|---|
| 201 |  ... S ALOW=$S(FILENUM=80:$$PREV^ICDAPIU(LOW),FILENUM=80.1:$$PREV^ICDAPIU(LOW),FILENUM=81:$$PREV^ICPTAPIU(LOW))
 | 
|---|
| 202 |  ... S AHIGH=$S(FILENUM=80:$$NEXT^ICDAPIU(HIGH),FILENUM=80.1:$$NEXT^ICDAPIU(HIGH),FILENUM=81:$$NEXT^ICPTAPIU(HIGH))
 | 
|---|
| 203 |  ... S $P(^PXD(811.2,IEN,FILENUM,IND,0),U,3,4)=ALOW_U_AHIGH
 | 
|---|
| 204 |  D BMES^XPDUTL(" DONE")
 | 
|---|
| 205 |  Q
 | 
|---|
| 206 |  ;
 | 
|---|
| 207 |  ;===============================================================
 | 
|---|
| 208 | SENODE ;Rebuild the "E" index on definitions and terms.
 | 
|---|
| 209 |  ;This code probably does not need to be run, keep it in case there
 | 
|---|
| 210 |  ;is a problem at test sites.
 | 
|---|
| 211 |  N DA,DIK,IND,TEXT
 | 
|---|
| 212 |  S TEXT="Rebuilding E index for reminder definitions"
 | 
|---|
| 213 |  D BMES^XPDUTL(TEXT)
 | 
|---|
| 214 |  S IND=0
 | 
|---|
| 215 |  F  S IND=+$O(^PXD(811.9,IND)) Q:IND=0  D
 | 
|---|
| 216 |  . S TEXT=" Working on reminder "_IND
 | 
|---|
| 217 |  . D BMES^XPDUTL(TEXT)
 | 
|---|
| 218 |  . K ^PXD(811.9,IND,20,"E")
 | 
|---|
| 219 |  . S DIK="^PXD(811.9,"_IND_",20,"
 | 
|---|
| 220 |  . S DA(1)=IND,DIK(1)=".01^E"
 | 
|---|
| 221 |  . D ENALL^DIK
 | 
|---|
| 222 |  S TEXT="Rebuilding E index for terms"
 | 
|---|
| 223 |  D BMES^XPDUTL(TEXT)
 | 
|---|
| 224 |  S IND=0
 | 
|---|
| 225 |  F  S IND=+$O(^PXRMD(811.5,IND)) Q:IND=0  D
 | 
|---|
| 226 |  . S TEXT=" Working on term "_IND
 | 
|---|
| 227 |  . D BMES^XPDUTL(TEXT)
 | 
|---|
| 228 |  . K ^PXRMD(811.5,IND,20,"E")
 | 
|---|
| 229 |  . S DIK="^PXRMD(811.5,"_IND_",20,"
 | 
|---|
| 230 |  . S DA(1)=IND,DIK(1)=".01^E"
 | 
|---|
| 231 |  . D ENALL^DIK
 | 
|---|
| 232 |  Q
 | 
|---|
| 233 |  ;
 | 
|---|
| 234 |  ;===============================================================
 | 
|---|
| 235 | SVRSN ;Set the package version number.
 | 
|---|
| 236 |  N VRSN
 | 
|---|
| 237 |  S VRSN=$P($T(+2^PXRM),";",3)
 | 
|---|
| 238 |  S ^PXRM(800,1,"VERSION")=VRSN
 | 
|---|
| 239 |  Q
 | 
|---|
| 240 |  ;
 | 
|---|
| 241 |  ;===============================================================
 | 
|---|
| 242 | WEB ;Change the default web page from the prevention handbook
 | 
|---|
| 243 |  ;to the oqp page.
 | 
|---|
| 244 |  N IND,NEW,OLD
 | 
|---|
| 245 |  S OLD="http://vaww.va.gov/publ/direc/health/handbook/1120-2hk.htm"
 | 
|---|
| 246 |  S NEW="http://www.oqp.med.va.gov/cpg/cpg.htm"
 | 
|---|
| 247 |  S IND=$O(^PXRM(800,1,1,"B",$E(OLD,1,30),""))
 | 
|---|
| 248 |  I IND="" Q
 | 
|---|
| 249 |  K ^PXRM(800,1,1,IND,0)
 | 
|---|
| 250 |  K ^PXRM(800,1,1,"B",$E(OLD,1,30),IND)
 | 
|---|
| 251 |  S ^PXRM(800,1,1,"B",$E(NEW,1,30),IND)=""
 | 
|---|
| 252 |  S $P(^PXRM(800,1,1,IND,0),U,1)=NEW
 | 
|---|
| 253 |  S $P(^PXRM(800,1,1,IND,0),U,2)="OQP Clinical Guidelines"
 | 
|---|
| 254 |  Q
 | 
|---|
| 255 |  ;
 | 
|---|
| 256 |  ;===============================================================
 | 
|---|
| 257 | XPARAMS ;Set the next extract date in the IHD QUERI parameters
 | 
|---|
| 258 |  ;
 | 
|---|
| 259 |  ;Site must schedule extract with XU OPTION SCHEDULE option when ready
 | 
|---|
| 260 |  N IEN,LUVALUE
 | 
|---|
| 261 |  ;
 | 
|---|
| 262 |  ;IHD QUERI
 | 
|---|
| 263 |  S LUVALUE(1)="VA-IHD QUERI"
 | 
|---|
| 264 |  S IEN=+$$FIND1^DIC(810.2,"","KU",.LUVALUE)
 | 
|---|
| 265 |  ;Update next extract period as current period
 | 
|---|
| 266 |  I IEN S $P(^PXRM(810.2,IEN,0),U,6)=$$PERIOD^PXRMEUT("M")
 | 
|---|
| 267 |  ;
 | 
|---|
| 268 |  ;MH QUERI
 | 
|---|
| 269 |  S LUVALUE(1)="VA-MH QUERI"
 | 
|---|
| 270 |  S IEN=+$$FIND1^DIC(810.2,"","KU",.LUVALUE)
 | 
|---|
| 271 |  ;Update next extract period as current period
 | 
|---|
| 272 |  I IEN S $P(^PXRM(810.2,IEN,0),U,6)=$$PERIOD^PXRMEUT("M")
 | 
|---|
| 273 |  ;
 | 
|---|
| 274 |  Q
 | 
|---|
| 275 |  ;
 | 
|---|