1 | MPIFUTL ;BHM/RGY-CMOR Utilities ;FEB 26, 1998
|
---|
2 | ;;1.0; MASTER PATIENT INDEX VISTA ;**11**;30 Apr 99
|
---|
3 | ;
|
---|
4 | ; Integration Agreements Utilized:
|
---|
5 | ;
|
---|
6 | ; ^DGCN(391.91 IA #2751
|
---|
7 | ;
|
---|
8 | TYPE ;Set type of CMOR request change
|
---|
9 | NEW DIE,DR,DA
|
---|
10 | S DIE="^RGSITE(991.8,",DR="[MPIF SITE PARAMETERS]",DA=1 D ^DIE
|
---|
11 | Q
|
---|
12 | MAIL() ;Get mailgroup for new requests
|
---|
13 | N IEN,MGROUP
|
---|
14 | S IEN=$P($G(^RGSITE(991.8,1,0)),"^",3)
|
---|
15 | Q:IEN="" "-1^No Mailgroup defined"
|
---|
16 | S MGROUP=$$EXTERNAL^DILFD(991.8,.03,,IEN)
|
---|
17 | Q:MGROUP="" "-1^No Mailgroup defined"
|
---|
18 | Q MGROUP
|
---|
19 | CHK1(D0) ;Check out a new request for patient data
|
---|
20 | NEW PAT,X,OPEN
|
---|
21 | S OPEN=0
|
---|
22 | S PAT=+$P($G(^MPIF(984.9,D0,0)),"^",4)
|
---|
23 | I PAT=0 W !!,"*** Patient not defined for this request ***" Q 1
|
---|
24 | I '$$PAT^MPIFNQ(PAT) W !!,"*** Patient has not been assigned a CMOR Site ***",! Q 1
|
---|
25 | F X=0:0 S X=$O(^MPIF(984.9,"C",PAT,X)) Q:'X D:X'=D0 Q:OPEN
|
---|
26 | .I $P(^MPIF(984.9,X,0),"^",6)'=4,$P(^(0),"^",6)'=5 S OPEN=X
|
---|
27 | I OPEN W !,"*** Patient already has an open request (",$P(^MPIF(984.9,OPEN,0),"^"),") ***" Q 1
|
---|
28 | Q 0
|
---|
29 | ;
|
---|
30 | CHK2(D0) ;Check out a new requeste for site
|
---|
31 | I $P(^MPIF(984.9,D0,0),"^",7)="" W !!,"*** You must enter a site to send this request to ***" Q 1
|
---|
32 | I $P(^MPIF(984.9,D0,0),"^",7)=+$$SITE^VASITE() W !!,"*** You cannot send a request to your own site ***" Q 1
|
---|
33 | N SITE,PT
|
---|
34 | S SITE=$P(^MPIF(984.9,D0,0),"^",7),PT=$P(^MPIF(984.9,D0,0),"^",4)
|
---|
35 | I '$D(^DGCN(391.91,"APAT",PT,SITE)) W !!,"*** You cannot send a request to a site that isn't a treating facility for this patient ***" Q 1
|
---|
36 | Q 0
|
---|
37 | ;
|
---|
38 | CCRDAT(PAT,ARR) ; API to return all known CMOR Change Request Information
|
---|
39 | ; PAT - DFN of patient in Patient file (#2)
|
---|
40 | ; ARR - Array to return information. First subscript will be request number, next will be the field number. field 9999 will be the display text
|
---|
41 | ; ARR(0) will equal -1 eror message if there was a problem or no data found. If data is found, ARR(0) will equal the number of requests found.
|
---|
42 | ;
|
---|
43 | I '$D(PAT)!('$D(ARR)) Q
|
---|
44 | I $O(^MPIF(984.9,"C",PAT,""))="" S @ARR@(0)="-1^No Requests on File" Q
|
---|
45 | N SITE,IEN,MPIFA,CNT,IENT,TEXT,REQN
|
---|
46 | S IEN=0,CNT=0
|
---|
47 | F S IEN=$O(^MPIF(984.9,"C",PAT,IEN)) Q:IEN="" D
|
---|
48 | .I '$D(^MPIF(984.9,IEN)) Q
|
---|
49 | .D GETS^DIQ(984.9,IEN,".01;.02;.03;.04;.05;.06;.07;.08;.09;1.01;1.02;1.03;2.01;2.02;2.03;3.01;3.02","","MPIFA")
|
---|
50 | .S IENT=IEN_","
|
---|
51 | .Q:MPIFA(984.9,IENT,.01)=""
|
---|
52 | .S CNT=CNT+1
|
---|
53 | .S REQN=MPIFA(984.9,IENT,.01)
|
---|
54 | .M @ARR@(REQN)=MPIFA(984.9,IENT)
|
---|
55 | .N SIEN S SIEN=$P(^MPIF(984.9,IEN,0),"^",7)
|
---|
56 | .N STN I SIEN'="" S STN=$P($$NS^XUAF4(SIEN),"^",2)
|
---|
57 | .N SIEN2 S SIEN2=$P(^MPIF(984.9,IEN,0),"^",9)
|
---|
58 | .N STN2 I SIEN2'="" S STN2=$P($$NS^XUAF4(SIEN2),"^",2)
|
---|
59 | .S TEXT=@ARR@(REQN,1.03)_" "_@ARR@(REQN,.07)_" (#"_$G(STN)_") to change CMOR to "_@ARR@(REQN,.09)_" (#"_$G(STN2)_")."
|
---|
60 | .S @ARR@(REQN,999)=TEXT
|
---|
61 | S @ARR@(0)=CNT
|
---|
62 | Q
|
---|