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