[613] | 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
|
---|