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