| 1 | PXRMETXU ; SLC/PJH - Extract utilities ;09/06/2007
 | 
|---|
| 2 |  ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | HELP(CALL) ;General help text routine
 | 
|---|
| 5 |  N HTEXT
 | 
|---|
| 6 |  I CALL=1 D
 | 
|---|
| 7 |  .S HTEXT(1)="Enter 'Y' to overwrite this existing list. Enter 'N' to"
 | 
|---|
| 8 |  .S HTEXT(2)="use a different patient list name."
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  I CALL=3 D
 | 
|---|
| 11 |  .S HTEXT(1)="Enter 'Y' to transmit extract. Otherwise enter 'N'."
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  I CALL=4 D
 | 
|---|
| 14 |  .S HTEXT(1)="The selected period is the same as next scheduled extract."
 | 
|---|
| 15 |  .S HTEXT(2)="Enter 'Y' if this extract will replace the scheduled"
 | 
|---|
| 16 |  .S HTEXT(3)="extract. Enter 'N' if you still want the scheduled extract"
 | 
|---|
| 17 |  .S HTEXT(4)="to run."
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  D HELP^PXRMEUT(.HTEXT)
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | DELETE(IEN) ;Delete an extract summary.
 | 
|---|
| 23 |  I IEN="" Q
 | 
|---|
| 24 |  N DA,DELOK,DIK,NAME
 | 
|---|
| 25 |  S DELOK=1
 | 
|---|
| 26 |  S NAME=$P(^PXRMXT(810.3,IEN,0),U,1)
 | 
|---|
| 27 |  ;Must have PXRM MANAGER key in order to delete national extracts.
 | 
|---|
| 28 |  I $P($G(^PXRMXT(810.3,IEN,100)),U,1)="N" D
 | 
|---|
| 29 |  . S DELOK=$S($D(^XUSEC("PXRM MANAGER",DUZ)):1,1:0)
 | 
|---|
| 30 |  . I 'DELOK D
 | 
|---|
| 31 |  .. W !!,NAME," is national."
 | 
|---|
| 32 |  .. W !,"You cannot delete a national extract summary."
 | 
|---|
| 33 |  .. H 2
 | 
|---|
| 34 |  I 'DELOK Q
 | 
|---|
| 35 |  ;Double check the user really wants to delete.
 | 
|---|
| 36 |  S TEXT="Are you sure you want to delete "_NAME
 | 
|---|
| 37 |  S DELOK=$$ASKYN^PXRMEUT("N","Are you sure you want to delete "_NAME)
 | 
|---|
| 38 |  I 'DELOK Q
 | 
|---|
| 39 |  S DA=IEN
 | 
|---|
| 40 |  S DIK="^PXRMXT(810.3,"
 | 
|---|
| 41 |  D ^DIK
 | 
|---|
| 42 |  W !,"Deleting ",NAME
 | 
|---|
| 43 |  H 2
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | PRGES ;Delete any Extract Summaries over 5 years old
 | 
|---|
| 47 |  N DIFF,EDATE,OLD
 | 
|---|
| 48 |  S OLD=0
 | 
|---|
| 49 |  F  S OLD=$O(^PXRMXT(810.3,OLD)) Q:'OLD  D
 | 
|---|
| 50 |  .I +$G(^PXRMXT(810.3,OLD,50))'=1 Q
 | 
|---|
| 51 |  .;Extract Date
 | 
|---|
| 52 |  .S EDATE=$P($G(^PXRMXT(810.3,OLD,0)),U,6)
 | 
|---|
| 53 |  .;Ignore if < 5 years (1826 days) since creation
 | 
|---|
| 54 |  .I $$FMDIFF^XLFDT(DT,EDATE,1)<1826 Q
 | 
|---|
| 55 |  .;Otherwise delete
 | 
|---|
| 56 |  .N DIK,DA
 | 
|---|
| 57 |  .S DIK="^PXRMXT(810.3,",DA=OLD D ^DIK
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | PRGPL ;Delete any Patient Lists over 5 years old
 | 
|---|
| 61 |  N LDATE,OLD
 | 
|---|
| 62 |  S OLD=0
 | 
|---|
| 63 |  F  S OLD=$O(^PXRMXP(810.5,OLD)) Q:'OLD  D
 | 
|---|
| 64 |  .I +$G(^PXRMXP(810.5,OLD,50))'=1 Q
 | 
|---|
| 65 |  .;Patient List Date
 | 
|---|
| 66 |  .S LDATE=$P($G(^PXRMXP(810.5,OLD,0)),U,4)
 | 
|---|
| 67 |  .;Ignore if < 5 years (1826 days) since creation
 | 
|---|
| 68 |  .I $$FMDIFF^XLFDT(DT,LDATE,1)<1826 Q
 | 
|---|
| 69 |  .;Otherwise delete
 | 
|---|
| 70 |  .N DIK,DA
 | 
|---|
| 71 |  .S DIK="^PXRMXP(810.5,",DA=OLD D ^DIK
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 |  ;
 | 
|---|