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