[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)
|
---|