| [613] | 1 | HDISVU02 ;BPFO/JRP - STORE VUIDS FOR SET OF CODES;5/12/2005 | 
|---|
|  | 2 | ;;1.0;HEALTH DATA & INFORMATICS;**1,2**;Feb 22, 2005 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | VUIDL(TAG,ROUTINE) ;Instantiate VUIDs for set of code fields | 
|---|
|  | 5 | ; Input: TAG - Line tag under which VUID data has been placed | 
|---|
|  | 6 | ;        ROUTINE - Routine line tag is in | 
|---|
|  | 7 | ;                  Leave blank if in this routine | 
|---|
|  | 8 | ;Output: 0 = Stop post-install (error) | 
|---|
|  | 9 | ;        1 = Continue with post-install | 
|---|
|  | 10 | ; Notes: Data lines must be in the format | 
|---|
|  | 11 | ;          File~Field~Code~VUID~Status~EffectiveDateTime | 
|---|
|  | 12 | ;          (Status and EffectiveDateTime must be in internal format) | 
|---|
|  | 13 | ;          (Default value for Status is 0 - Inactive) | 
|---|
|  | 14 | ;          (Default value for EffectiveDateTime is NOW) | 
|---|
|  | 15 | ;      : Call assumes that all input (TAG & ROUTINE) is valid | 
|---|
|  | 16 | ;      : Call assumes that data lines are valid | 
|---|
|  | 17 | ;        (i.e. no missing/bad data) | 
|---|
|  | 18 | ;      : The incoming status/date will not be stored in an existing | 
|---|
|  | 19 | ;        entry for the VUID if the currently stored status is the | 
|---|
|  | 20 | ;        same as the input status. | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | N OFFSET,DATA,FILE,FIELD,IREF,VUID,STAT,STDT,DONE,RESULT,HDIMSG | 
|---|
|  | 23 | S ROUTINE=$G(ROUTINE) | 
|---|
|  | 24 | S RESULT=1 | 
|---|
|  | 25 | S DONE=0 | 
|---|
|  | 26 | F OFFSET=1:1 D  Q:DONE | 
|---|
|  | 27 | .S DATA=$S(ROUTINE="":$T(@TAG+OFFSET),1:$T(@TAG+OFFSET^@ROUTINE)) | 
|---|
|  | 28 | .S DATA=$P(DATA,";;",2) | 
|---|
|  | 29 | .I DATA="" S DONE=1 Q | 
|---|
|  | 30 | .S FILE=$P(DATA,"~",1) | 
|---|
|  | 31 | .S FIELD=$P(DATA,"~",2) | 
|---|
|  | 32 | .S IREF=$P(DATA,"~",3) | 
|---|
|  | 33 | .S VUID=$P(DATA,"~",4) | 
|---|
|  | 34 | .S STAT=$P(DATA,"~",5) | 
|---|
|  | 35 | .I STAT="" S STAT=0 | 
|---|
|  | 36 | .S STDT=$P(DATA,"~",6) | 
|---|
|  | 37 | .I STDT="" S STDT=$$NOW^XLFDT() | 
|---|
|  | 38 | .I '$$STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT) D | 
|---|
|  | 39 | ..S HDIMSG(1)="**" | 
|---|
|  | 40 | ..S HDIMSG(2)="** Unable to store VUID and/or status information for file" | 
|---|
|  | 41 | ..S HDIMSG(3)="** "_FILE_", field "_FIELD_", and internal value "_IREF | 
|---|
|  | 42 | ..S HDIMSG(4)="**" | 
|---|
|  | 43 | ..D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
|  | 44 | ..S RESULT=0 | 
|---|
|  | 45 | Q RESULT | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT) ;Store VUID info | 
|---|
|  | 48 | ; Input: FILE - File number | 
|---|
|  | 49 | ;        FIELD - Field number | 
|---|
|  | 50 | ;        IREF - Internal reference | 
|---|
|  | 51 | ;        VUID - VUID | 
|---|
|  | 52 | ;        STAT - Status | 
|---|
|  | 53 | ;               0 = Inacive (default)     1 = Active | 
|---|
|  | 54 | ;        STDT - Status Date/Time (FileMan) | 
|---|
|  | 55 | ;               (Defaults to NOW) | 
|---|
|  | 56 | ;Output: 1 = Success | 
|---|
|  | 57 | ;        0 = Failure | 
|---|
|  | 58 | ; Notes: Existance/validity of input assumed (internal call) | 
|---|
|  | 59 | ;      : Call will automatically inactivate terms when appropriate | 
|---|
|  | 60 | ;      : The input status/date will not be stored in an existing | 
|---|
|  | 61 | ;        entry for the VUID if the currently stored status is the | 
|---|
|  | 62 | ;        same as the input status.  Success (1) will be returned. | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | N MASTER,CURSTAT | 
|---|
|  | 65 | S STAT=+$G(STAT) | 
|---|
|  | 66 | S STDT=+$G(STDT) | 
|---|
|  | 67 | I 'STDT S STDT=$$NOW^XLFDT() | 
|---|
|  | 68 | ;Is VUID already on file | 
|---|
|  | 69 | S CURSTAT=$$GETSTAT^XTID(FILE,FIELD,IREF) | 
|---|
|  | 70 | ;Don't store new date for same status (return SUCCESS) | 
|---|
|  | 71 | I $P(CURSTAT,"^",1)=STAT Q 1 | 
|---|
|  | 72 | ;Store VUID (also sets master entry flag, if appropriate) | 
|---|
|  | 73 | I '$$SETVUID^XTID(FILE,FIELD,IREF,VUID) Q 0 | 
|---|
|  | 74 | ;Inactivate non-master entries | 
|---|
|  | 75 | I '$$GETMASTR^XTID(FILE,FIELD,IREF) D | 
|---|
|  | 76 | .S STAT=0 | 
|---|
|  | 77 | .S STDT=$$NOW^XLFDT() | 
|---|
|  | 78 | ;Store status | 
|---|
|  | 79 | Q $$SETSTAT^XTID(FILE,FIELD,IREF,STAT,STDT) | 
|---|