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