| 1 | VAQFILE ;ALB/JRP/KLD - MESSAGE FILING;12-MAY-93 [ 10/04/96  1:10 PM ]
 | 
|---|
| 2 |  ;;1.5;PATIENT DATA EXCHANGE;**22,26,28,32**;NOV 17, 1993
 | 
|---|
| 3 | NEWTRAN() ;MAKE STUB ENTRY IN TRANSACTION FILE
 | 
|---|
| 4 |  ;INPUT  : NONE
 | 
|---|
| 5 |  ;OUTPUT : IFN^Transaction_Number - Success
 | 
|---|
| 6 |  ;         -1^Error_text - Error
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ;DECLARE VARIABLES
 | 
|---|
| 9 |  N DD,DIC,X,DINUM,Y,DLAYGO
 | 
|---|
| 10 |  S X="+" ;-- auto numbering - see ^DD(394.61,.01,7.5).  It involves $$AUTO^VAQXRF2(1) and file 394.86.
 | 
|---|
| 11 |  S DIC="^VAT(394.61,",DIC(0)="L",DLAYGO=394.61
 | 
|---|
| 12 |  D ^DIC
 | 
|---|
| 13 |  I Y<0 Q "-1^Could not determine new transaction number"
 | 
|---|
| 14 |  Q $P(Y,U,1,2)
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | DELTRAN(TRANPTR) ;DELETE TRANSACTION
 | 
|---|
| 17 |  ;INPUT  : TRANPTR - Pointer to VAQ - TRANSACTION file
 | 
|---|
| 18 |  ;OUTPUT : 0 - Success
 | 
|---|
| 19 |  ;        -1^Error_text - Error
 | 
|---|
| 20 |  ;NOTES  : This will also delete all entries in the VAQ - DATA file
 | 
|---|
| 21 |  ;         that are associated with the transaction.
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ;CHECK INPUT
 | 
|---|
| 24 |  Q:('(+$G(TRANPTR))) "-1^Did not pass pointer to transaction"
 | 
|---|
| 25 |  ;DECLARE VARIABLES
 | 
|---|
| 26 |  N DIK,SEGMENT,DA,DATAPTR,TMP
 | 
|---|
| 27 |  ;DELETE ENTRIES IN DATA FILE
 | 
|---|
| 28 |  S (DATAPTR,SEGMENT)=""
 | 
|---|
| 29 |  F  S SEGMENT=$O(^VAT(394.62,"A-SEGMENT",TRANPTR,SEGMENT)) Q:'SEGMENT  D
 | 
|---|
| 30 |  . F  S DATAPTR=+$O(^VAT(394.62,"A-SEGMENT",TRANPTR,SEGMENT,DATAPTR)) Q:'DATAPTR  D
 | 
|---|
| 31 |  . . I ('$D(^VAT(394.62,DATAPTR,0))&($D(^VAT(394.62,"A-SEGMENT",TRANPTR,SEGMENT,DATAPTR))=1)) D
 | 
|---|
| 32 |  . . . K ^VAT(394.62,"A-SEGMENT",TRANPTR,SEGMENT,DATAPTR)
 | 
|---|
| 33 |  . . Q:'DATAPTR
 | 
|---|
| 34 |  . . S TMP=$$DELDATA^VAQFILE1(DATAPTR)
 | 
|---|
| 35 |  . . Q:(TMP)
 | 
|---|
| 36 |  ;IF TRANSACTION DOES NOT EXIST RETURN SUCCESS
 | 
|---|
| 37 |  Q:('$D(^VAT(394.61,TRANPTR))) 0
 | 
|---|
| 38 |  ;DELETE ENTRY IN TRANSACTION FILE
 | 
|---|
| 39 |  S DIK="^VAT(394.61,"
 | 
|---|
| 40 |  S DA=TRANPTR
 | 
|---|
| 41 |  D ^DIK
 | 
|---|
| 42 |  Q:($D(^VAT(394.61,TRANPTR))) "-1^Unable to delete transaction"
 | 
|---|
| 43 |  Q 0
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | FILEINFO(FILE,DA,FIELD,VALUE,SUBFIELD,SUBVALUE) ;FILE INFORMATION
 | 
|---|
| 46 |  ;INPUT  : FILE - File number
 | 
|---|
| 47 |  ;         DA - IFN of entry to edit
 | 
|---|
| 48 |  ;         FIELD - Field number
 | 
|---|
| 49 |  ;         VALUE - Information to be filed (defaults to '@')
 | 
|---|
| 50 |  ;         SUBFIELD - Field number in multiple
 | 
|---|
| 51 |  ;         SUBVALUE - Information to be filed in SUBFIELD of multiple
 | 
|---|
| 52 |  ;                    (defaults to '@')
 | 
|---|
| 53 |  ;OUTPUT : 0 - Success
 | 
|---|
| 54 |  ;        -1^Error_text - Error
 | 
|---|
| 55 |  ;NOTES  : If SUBFIELD is not passed, editing of a multiple will be
 | 
|---|
| 56 |  ;         ignored.  If SUBFIELD is passed, the multiple under VALUE
 | 
|---|
| 57 |  ;         will be edited.
 | 
|---|
| 58 |  ;       : If working with a multiple, it is the responsibility of
 | 
|---|
| 59 |  ;         the calling routine to verify that VALUE can be added as
 | 
|---|
| 60 |  ;         an entry in the multiple.  It is also the responsibility
 | 
|---|
| 61 |  ;         of the calling routine to verify that VALUE is an entry in
 | 
|---|
| 62 |  ;         the subfile when deleting/editing.
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  ;CHECK INPUT
 | 
|---|
| 65 |  N IFN,NAME,SSN,PID,SITE,DOMAIN
 | 
|---|
| 66 |  Q:('$G(FILE)) "-1^Did not pass file number"
 | 
|---|
| 67 |  Q:('$D(^DD(FILE))) "-1^Did not pass valid file number"
 | 
|---|
| 68 |  Q:('$G(DA)) "-1^Did not pass entry number"
 | 
|---|
| 69 |  Q:('$G(FIELD)) "-1^Did not pass field number"
 | 
|---|
| 70 |  Q:('$D(^DD(FILE,FIELD))) "-1^Did not pass valid field number"
 | 
|---|
| 71 |  S VALUE=$G(VALUE)
 | 
|---|
| 72 |  ;REMOVE ';' FROM VALUE (CONFUSES CALL TO DIE)
 | 
|---|
| 73 |  S VALUE=$TR(VALUE,";","")
 | 
|---|
| 74 |  S:(VALUE="") VALUE="@"
 | 
|---|
| 75 |  S SUBFIELD=+$G(SUBFIELD)
 | 
|---|
| 76 |  S SUBVALUE=$G(SUBVALUE)
 | 
|---|
| 77 |  S:(SUBVALUE="") SUBVALUE="@"
 | 
|---|
| 78 |  ;DECLARE VARIABLES
 | 
|---|
| 79 |  N DIE,DR,Y,X,SUBFILE,ERR
 | 
|---|
| 80 |  S DIE=$G(^DIC(FILE,0,"GL"))
 | 
|---|
| 81 |  Q:(DIE="") "-1^Could not determine global root of file"
 | 
|---|
| 82 |  Q:('$D(@(DIE_DA_")"))) "-1^Did not pass valid entry number"
 | 
|---|
| 83 |  S DR=FIELD_"///"_VALUE
 | 
|---|
| 84 |  ;SET UP FOR MULTIPLE
 | 
|---|
| 85 |  S ERR=0
 | 
|---|
| 86 |  I (SUBFIELD) D  Q:(ERR) ERR
 | 
|---|
| 87 |  .S SUBFILE=+$P($G(^DD(FILE,FIELD,0)),"^",2)
 | 
|---|
| 88 |  .I ('SUBFILE) S ERR="-1^Main field is not a multiple" Q
 | 
|---|
| 89 |  .I ('$D(^DD(SUBFILE,SUBFIELD))) S ERR="-1^Did not pass valid field in multiple" Q
 | 
|---|
| 90 |  .S DR(2,SUBFILE)=SUBFIELD_"///"_SUBVALUE
 | 
|---|
| 91 |  ;MAKE SURE OTHER USER ISN'T EDITING ENTRY
 | 
|---|
| 92 |  L +(@(DIE_DA_")")):60 Q:('$T) "-1^Could not edit entry (locked by other user)"
 | 
|---|
| 93 |  D ^DIE
 | 
|---|
| 94 |  L -(@(DIE_DA_")"))
 | 
|---|
| 95 |  Q:($D(Y)#2) "-1^Could not file new value"
 | 
|---|
| 96 |  Q 0
 | 
|---|