| 1 | SDPFSS2 ;ALD/SCK - Patient Financial Services System cont. ; 22-April-2005 | 
|---|
| 2 | ;;5.3;Scheduling;**430**;Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | GETARN(SDT,DFN,SDCL) ; Get the PFSS Account Number Reference from file #409.55 for the matching Appt. D/T, | 
|---|
| 7 | ; patient DFN, and clinic location. | 
|---|
| 8 | ;   Input | 
|---|
| 9 | ;      SDT  - Appointment Date/Time | 
|---|
| 10 | ;      DFN  - Patient IEN to File #2 | 
|---|
| 11 | ;      SDCL - Clinic IEN to File #44 | 
|---|
| 12 | ; | 
|---|
| 13 | ;   Output | 
|---|
| 14 | ;      If an error occurred : -1^Error message | 
|---|
| 15 | ;      0 if no match found | 
|---|
| 16 | ;      SDANR if a match is found | 
|---|
| 17 | ; | 
|---|
| 18 | N SDANR,SDIEN | 
|---|
| 19 | ; | 
|---|
| 20 | S DFN=$G(DFN) I 'DFN S SDANR="-1^No DFN was provided" G ARNQ | 
|---|
| 21 | S SDT=$G(SDT) I 'SDT S SDANR="-1^No Appointment Date/Time provided" G ARNQ | 
|---|
| 22 | S SDCL=$G(SDCL) I 'SDCL S SDANR="-1^No Clinic information was provided"  G ARNQ | 
|---|
| 23 | ; | 
|---|
| 24 | S SDIEN=0 | 
|---|
| 25 | S SDIEN=$O(^SD(409.55,"D",SDT,DFN,SDCL,0)) | 
|---|
| 26 | I SDIEN>0 D | 
|---|
| 27 | . S SDANR=$$GET1^DIQ(409.55,SDIEN,.04) | 
|---|
| 28 | E  D | 
|---|
| 29 | . S SDANR=0 | 
|---|
| 30 | ARNQ Q $G(SDANR) | 
|---|
| 31 | ; | 
|---|
| 32 | ENCPRV(DFN,SDVSIT) ; Returns the encounter provider associated with the visit. | 
|---|
| 33 | ; Input | 
|---|
| 34 | ;    DFN    - Patient IEN from the PATIENT File (#2) | 
|---|
| 35 | ;    SDVSIT - Visit IEN from the VISIT File (#9000010) | 
|---|
| 36 | ;      DFN and SDVSIT are references to global variables which are available as part | 
|---|
| 37 | ; of the SD application. | 
|---|
| 38 | ; | 
|---|
| 39 | ; Output | 
|---|
| 40 | ;    Visit Provider from the NEW PERSON File (#200) | 
|---|
| 41 | ;    IEN^Provider Name or Null | 
|---|
| 42 | ; | 
|---|
| 43 | N PRVIEN,SDX,PRVNAME,RSLT | 
|---|
| 44 | ; | 
|---|
| 45 | I $G(SDVSIT)>0 S SDX=$O(^AUPNVPRV("AD",SDVSIT,0)) | 
|---|
| 46 | I +$G(SDX)>0 D | 
|---|
| 47 | . S PRVIEN=$P($G(^AUPNVPRV(SDX,0)),U) | 
|---|
| 48 | . I PRVIEN>0,$P($G(^AUPNVPRV(SDX,0)),U,2)=DFN S PRVNAME=$$GET1^DIQ(200,PRVIEN,.01) | 
|---|
| 49 | . S RSLT=$G(PRVIEN)_"^"_$G(PRVNAME) | 
|---|
| 50 | Q $G(RSLT) | 
|---|
| 51 | ; | 
|---|
| 52 | DEFPRV(SDCLN) ; Return the default provider for a clinic if one is specified | 
|---|
| 53 | ; Input | 
|---|
| 54 | ;    SDCLN - Clinic IEN for HOSPITAL LOCATION File (#44) | 
|---|
| 55 | ; Output | 
|---|
| 56 | ;    Provider from NEW PERSON File (#200): | 
|---|
| 57 | ;    IEN^Provider Name or Null | 
|---|
| 58 | ; | 
|---|
| 59 | N SDX,PRVIEN,PRVNAME,RSLT | 
|---|
| 60 | ; | 
|---|
| 61 | S SDX=0 | 
|---|
| 62 | F  S SDX=$O(^SC(SDCLN,"PR",SDX)) Q:'SDX  D | 
|---|
| 63 | . Q:'$P($G(^SC(SDCLN,"PR",SDX,0)),U,2) | 
|---|
| 64 | . S PRVIEN=$P($G(^SC(SDCLN,"PR",SDX,0)),U) | 
|---|
| 65 | . S PRVNAME=$$GET1^DIQ(200,PRVIEN,.01) | 
|---|
| 66 | . S RSLT=$G(PRVIEN)_"^"_$G(PRVNAME) | 
|---|
| 67 | Q $G(RSLT) | 
|---|
| 68 | ; | 
|---|
| 69 | ERRMSG(ERRCODE) ; Generate bulletin when an error condition is processed | 
|---|
| 70 | ; Bulletins will be sent only if the receiving mail group SD RSA API ERRORS | 
|---|
| 71 | ; contains at least 1 member | 
|---|
| 72 | ; | 
|---|
| 73 | N XMDUZ,XMSUB,XMTEXT,XMB,X,Y,MSG,SDMG,XMY | 
|---|
| 74 | ; | 
|---|
| 75 | S SDMG=$O(^XMB(3.8,"B","SD RSA API ERRORS",0)) | 
|---|
| 76 | Q:'SDMG | 
|---|
| 77 | ; Check mail group for members.  Quit if there are no members assigned to the group | 
|---|
| 78 | Q:'$D(^XMB(3.8,SDMG,1,"B")) | 
|---|
| 79 | ; | 
|---|
| 80 | ; Get the error message, or set a generic message | 
|---|
| 81 | S MSG=$P($G(ERRCODE),U,2) | 
|---|
| 82 | I MSG']"" S MSG="A general error condition occurred during the PFSS Event Driver processing" | 
|---|
| 83 | ; | 
|---|
| 84 | S XMDUZ="PFSS EVENT DRIVER" | 
|---|
| 85 | S XMY("G.SD RSA API ERRORS")="" | 
|---|
| 86 | S XMB="SD API ERROR NOTICE" | 
|---|
| 87 | S XMB(1)=$$GET1^DIQ(2,DFN,.01) | 
|---|
| 88 | S XMB(2)=$$FMTE^XLFDT(SDT) | 
|---|
| 89 | S XMB(3)=$$GET1^DIQ(44,SDCL,.01) | 
|---|
| 90 | S XMB(4)=IBBEVENT | 
|---|
| 91 | S XMB(5)=MSG | 
|---|
| 92 | D ^XMB | 
|---|
| 93 | Q | 
|---|
| 94 | ; | 
|---|
| 95 | GETEVT(EVT) ; Return message type for appointment event | 
|---|
| 96 | ; The following appoint events will return the indicated message type | 
|---|
| 97 | ;   MAKE              A05 | 
|---|
| 98 | ;   CHECK-IN          A04 | 
|---|
| 99 | ;   CHECK-OUT         A03 | 
|---|
| 100 | ;   NO-SHOW           A38 | 
|---|
| 101 | ; | 
|---|
| 102 | ;   CANCEL APPT.      A38 | 
|---|
| 103 | ;   CANCEL CHECK-IN   A11 | 
|---|
| 104 | ;   CANCEL CHECK-OUT  A13 | 
|---|
| 105 | ;   CANCEL NO-SHOW    A05 | 
|---|
| 106 | ; | 
|---|
| 107 | Q $S(EVT="MAKE":"A05",EVT="CHECK-IN":"A04",EVT="CHECK-OUT":"A03",EVT="NO-SHOW":"A38",EVT="CANCEL":"A38",EVT="DELETE CO":"A13",EVT="DELETE CI":"A11",EVT="DELETE NS":"A05",1:"") | 
|---|