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