| 1 | PXRMSTAT ; SLC/PKR - Routines for dealing with status. ;07/11/2005
 | 
|---|
| 2 |  ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;===============================================
 | 
|---|
| 5 | DEFAULT(FILENUM,STATUSA) ;Given the file number return the default
 | 
|---|
| 6 |  ;statuses.
 | 
|---|
| 7 |  ;Outpatient medications
 | 
|---|
| 8 |  I FILENUM=52 D  Q
 | 
|---|
| 9 |  . S STATUSA(0)=5,STATUSA(1)="ACTIVE",STATUSA(2)="DISCONTINUED"
 | 
|---|
| 10 |  . S STATUSA(3)="DISCONTINUED (EDIT)",STATUSA(4)="EXPIRED"
 | 
|---|
| 11 |  . S STATUSA(5)="SUSPENDED"
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  ;Inpatient medications
 | 
|---|
| 14 |  I FILENUM=55 D  Q
 | 
|---|
| 15 |  . S STATUSA(0)=4,STATUSA(1)="ACTIVE",STATUSA(2)="DISCONTINUED (EDIT)"
 | 
|---|
| 16 |  . S STATUSA(3)="DISCONTINUED (RENEWAL)",STATUSA(4)="EXPIRED"
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;Non-VA meds
 | 
|---|
| 19 |  I FILENUM="55NVA" D  Q
 | 
|---|
| 20 |  . S STATUSA(0)=1,STATUSA(1)="ACTIVE"
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  ;Radiology procedures
 | 
|---|
| 23 |  I FILENUM=70 D  Q
 | 
|---|
| 24 |  .  S STATUSA(0)=1,STATUSA(1)="COMPLETE"
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ;Orders
 | 
|---|
| 27 |  I FILENUM=100 D  Q
 | 
|---|
| 28 |  .  S STATUSA(0)=2,STATUSA(1)="ACTIVE",STATUSA(2)="PENDING"
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  ;Problem List
 | 
|---|
| 31 |  I FILENUM=9000011 D  Q
 | 
|---|
| 32 |  . S STATUSA(0)=1,STATUSA(1)="A"
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  ;===============================================
 | 
|---|
| 36 | GETSTATI(FILENUM,FINDPA,STATUSA) ;Return the list of statuses to search
 | 
|---|
| 37 |  ;for in the array STATUSA. STATUSA(0) will contain the number found.
 | 
|---|
| 38 |  N IND,NUM
 | 
|---|
| 39 |  K STATUSA
 | 
|---|
| 40 |  S (IND,NUM)=0
 | 
|---|
| 41 |  ;Do Problem List first because it is a special case.
 | 
|---|
| 42 |  I FILENUM=9000011 D  Q
 | 
|---|
| 43 |  . N STAT
 | 
|---|
| 44 |  . F  S IND=+$O(FINDPA(5,IND)) Q:IND=0  D
 | 
|---|
| 45 |  .. S STAT=$S(FINDPA(5,IND)="ACTIVE":"A",FINDPA(5,IND)="INACTIVE":"I",1:"")
 | 
|---|
| 46 |  .. I STAT'="" S NUM=NUM+1,STATUSA(NUM)=STAT
 | 
|---|
| 47 |  . I NUM>0 S STATUSA(0)=NUM
 | 
|---|
| 48 |  . I NUM=0 S STATUSA(0)=1,STATUSA(1)="A"
 | 
|---|
| 49 |  .;If the status multiple is not defined check USE INACTIVE PROBLEMS
 | 
|---|
| 50 |  . I '$D(FINDPA(5)),$P($G(FINDPA(0)),U,9) S STATUSA(0)=2,STATUSA(2)="I"
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ;See if a status list is defined, if it is use it.
 | 
|---|
| 53 |  F  S IND=+$O(FINDPA(5,IND)) Q:IND=0  D
 | 
|---|
| 54 |  . S NUM=NUM+1,STATUSA(NUM)=FINDPA(5,IND)
 | 
|---|
| 55 |  I NUM>0 S STATUSA(0)=NUM Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  ;If no list is defined set the default statuses.
 | 
|---|
| 58 |  D DEFAULT(FILENUM,.STATUSA)
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|