| 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:"")
 | 
|---|