| [613] | 1 | QACI4 ; OAKOIFO/TKW - DATA MIGRATION - VISTALINK RPC CODE ;9/28/04  11:54
 | 
|---|
 | 2 |  ;;2.0;Patient Representative;**19**;07/25/1995;Build 55
 | 
|---|
 | 3 | EN(PATSBY,PATSLIST) ;
 | 
|---|
 | 4 |  ; Read list of migrated ROCs in PATSLIST, put into ^XTMP. Then
 | 
|---|
 | 5 |  ;   return the next list of ROCs to be migrated into global ^TMP.
 | 
|---|
 | 6 |  ;   NOTE: This routine is always called after QACI3, so there is
 | 
|---|
 | 7 |  ;   no need to check the 'ready to migrate' flag.
 | 
|---|
 | 8 |  ; PATSBY = the name of the output global
 | 
|---|
 | 9 |  ; PATSLIST = If defined, contains a list of ROC numbers
 | 
|---|
 | 10 |  ;     for ROCs that have been successfully migrated to PATS.
 | 
|---|
 | 11 |  ;
 | 
|---|
 | 12 |  ; Process incoming list. Move list of migrated ROCs into
 | 
|---|
 | 13 |  ; ^XTMP("QACMIGR","ROC","D"), remove them from the list of ROCs
 | 
|---|
 | 14 |  ; to be migrated ^XTMP("QACMIGR","ROC","U").
 | 
|---|
 | 15 |  D LISTIN
 | 
|---|
 | 16 |  ; Now return the next set of ROCs to be migrated.
 | 
|---|
 | 17 |  S PATSBY=$NA(^TMP("ROC",$J))
 | 
|---|
 | 18 |  D LISTOUT
 | 
|---|
 | 19 |  Q
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 | LISTIN ;
 | 
|---|
 | 22 |  N I,ROCNO,CNT S I="",CNT=0
 | 
|---|
 | 23 |  F  S I=$O(PATSLIST(I)) Q:I=""  S ROCNO=PATSLIST(I) I ROCNO]"" D
 | 
|---|
 | 24 |  . K ^XTMP("QACMIGR","ROC","U",ROCNO_" ")
 | 
|---|
 | 25 |  . S ^XTMP("QACMIGR","ROC","D",ROCNO)=""
 | 
|---|
 | 26 |  . S CNT=CNT+1
 | 
|---|
 | 27 |  . Q
 | 
|---|
 | 28 |  I CNT>0 D
 | 
|---|
 | 29 |  . S ^XTMP("QACMIGR","ROC","D")=$G(^XTMP("QACMIGR","ROC","D"))+CNT
 | 
|---|
 | 30 |  . I $O(^XTMP("QACMIGR","ROC","U",0))="" K ^XTMP("QACMIGR","ROC","U") Q
 | 
|---|
 | 31 |  . S ^XTMP("QACMIGR","ROC","U")=$G(^XTMP("QACMIGR","ROC","U"))-CNT
 | 
|---|
 | 32 |  . Q
 | 
|---|
 | 33 |  Q
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 | LISTOUT ;
 | 
|---|
 | 36 |  K ^TMP("ROC",$J)
 | 
|---|
 | 37 |  ; The output array will be empty if there is no data to migrate
 | 
|---|
 | 38 |  Q:$O(^XTMP("QACMIGR","ROC","U",0))=""
 | 
|---|
 | 39 |  ; The 0 node should contain VISN name and Station Numbers
 | 
|---|
 | 40 |  ;  if not, return the output array empty.
 | 
|---|
 | 41 |  N X S X=$G(^XTMP("QACMIGR","ROC","U",0))
 | 
|---|
 | 42 |  Q:X=""
 | 
|---|
 | 43 |  S ^TMP("ROC",$J,1)=X
 | 
|---|
 | 44 |  N ROCNO,I,CNT S CNT=1,ROCNO=0
 | 
|---|
 | 45 |  F  S ROCNO=$O(^XTMP("QACMIGR","ROC","U",ROCNO)) Q:ROCNO=""!(CNT>1500)  D
 | 
|---|
 | 46 |  . S I=$O(^XTMP("QACMIGR","ROC","U",ROCNO,"A"),-1)
 | 
|---|
 | 47 |  . I (I+CNT)>1500 S CNT=9999 Q
 | 
|---|
 | 48 |  . F I=0:0 S I=$O(^XTMP("QACMIGR","ROC","U",ROCNO,I)) Q:'I  S X=^(I) D
 | 
|---|
 | 49 |  .. S CNT=CNT+1
 | 
|---|
 | 50 |  .. S ^TMP("ROC",$J,CNT)=X Q
 | 
|---|
 | 51 |  . Q
 | 
|---|
 | 52 |  Q
 | 
|---|
 | 53 |  ;
 | 
|---|