[613] | 1 | ACKQASU6 ;HCIOFO/AG - New/Edit Visit Utilities ; 04/01/99
|
---|
| 2 | ;;3.0;QUASAR;;Feb 11, 2000
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
|
---|
| 4 | ;
|
---|
| 5 | ;
|
---|
| 6 | SETPRIM(ACKVIEN,ACKQPRV) ; add primary provider to A&SP Clinic Visit
|
---|
| 7 | ; inputs: ACKVIEN - A&SP visit ien
|
---|
| 8 | ; ACKQPRV - provider ien from Quasar or null
|
---|
| 9 | ; outputs: 1^ - everything ok
|
---|
| 10 | ; 0^xxxxxxx - update failed (reason=xxxxxx)
|
---|
| 11 | ; NB. This function checks the visit date for the visit against the
|
---|
| 12 | ; activation and inactivation dates for the Provider. it therefore
|
---|
| 13 | ; assumes that the visit date has already been filed.
|
---|
| 14 | N ACKPRIM,ACKPRVN,ACKARR,ACKVD,ACKPACT,ACKPINA,ACKSTAT
|
---|
| 15 | S ACKPRIM="" ; return string
|
---|
| 16 | ;
|
---|
| 17 | S ACKPRVN=ACKQPRV
|
---|
| 18 | ;
|
---|
| 19 | ; if not found then set error message and exit
|
---|
| 20 | I 'ACKPRVN D G SETPRIMX
|
---|
| 21 | . S ACKPRIM="0^Provider not defined for Audiology and Speech Pathology"
|
---|
| 22 | ;
|
---|
| 23 | ; if defined get status (clinician/fee basis/other provider/student)
|
---|
| 24 | S ACKSTAT=$$GET1^DIQ(509850.3,ACKPRVN_",",.02,"I")
|
---|
| 25 | ;
|
---|
| 26 | ; if not a clinician or fee basis then not allowed as primary provider
|
---|
| 27 | I ACKSTAT'="C",ACKSTAT'="F" D G SETPRIMX
|
---|
| 28 | . S ACKPRIM="0^Primary Provider must be a Clinician or Fee Basis Clinician"
|
---|
| 29 | ;
|
---|
| 30 | ; get the visit date and the provider activation/inactivation dates
|
---|
| 31 | S ACKVD=$$GET1^DIQ(509850.6,ACKVIEN_",",.01,"I")
|
---|
| 32 | S ACKPACT=$$GET1^DIQ(509850.3,ACKPRVN_",",.03,"I")
|
---|
| 33 | S ACKPINA=$$GET1^DIQ(509850.3,ACKPRVN_",",.04,"I")
|
---|
| 34 | ;
|
---|
| 35 | ; if the provider is not active then set error and exit
|
---|
| 36 | I (ACKPACT="")!(ACKPACT>ACKVD) D G SETPRIMX
|
---|
| 37 | . S ACKPRIM="0^Provider not Active on the Visit Date"
|
---|
| 38 | ;
|
---|
| 39 | ; if the provider is inactive then set error and exit
|
---|
| 40 | I ACKPINA'="",ACKPINA<ACKVD D G SETPRIMX
|
---|
| 41 | . S ACKPRIM="0^Provider made Inactive prior to the Visit Date"
|
---|
| 42 | ;
|
---|
| 43 | ; all ok, then add the provider to the visit
|
---|
| 44 | S ACKARR(509850.6,ACKVIEN_",",6)=ACKPRVN
|
---|
| 45 | D FILE^DIE("","ACKARR","")
|
---|
| 46 | S ACKPRIM="1^" ; set return flag to OK
|
---|
| 47 | ;
|
---|
| 48 | SETPRIMX ; exit point
|
---|
| 49 | Q ACKPRIM
|
---|
| 50 | ;
|
---|
| 51 | SETSCND(ACKVIEN,ACKQPRV) ; add secondary provider to A&SP Clinic Visit
|
---|
| 52 | ; inputs: ACKVIEN - A&SP visit ien
|
---|
| 53 | ; ACKQPRV - provider ien from Quasar file or null
|
---|
| 54 | ; outputs: 1^ - everything ok
|
---|
| 55 | ; 0^xxxxxxx - update failed (reason=xxxxxx)
|
---|
| 56 | ; NB. This function checks the visit date for the visit against the
|
---|
| 57 | ; activation and inactivation dates for the Provider. it therefore
|
---|
| 58 | ; assumes that the visit date has already been filed.
|
---|
| 59 | N ACKSCND,ACKPRVN,ACKARR,ACKVD,ACKPACT,ACKPINA,ACKSTAT
|
---|
| 60 | S ACKSCND="" ; return string
|
---|
| 61 | ;
|
---|
| 62 | S ACKPRVN=ACKQPRV
|
---|
| 63 | ;
|
---|
| 64 | ; if not found then set error message and exit
|
---|
| 65 | I 'ACKPRVN D G SETSCNDX
|
---|
| 66 | . S ACKSCND="0^Provider not defined for Audiology and Speech Pathology"
|
---|
| 67 | ;
|
---|
| 68 | ; if found, get status (clinician/fee basis/other provider/student)
|
---|
| 69 | S ACKSTAT=$$GET1^DIQ(509850.3,ACKPRVN_",",.02,"I")
|
---|
| 70 | ;
|
---|
| 71 | ; if not a clinician, fee basis or other provider then not allowed as second provider
|
---|
| 72 | I ACKSTAT'="C",ACKSTAT'="F",ACKSTAT'="O" D G SETSCNDX
|
---|
| 73 | . S ACKSCND="0^Secondary Provider must be a Clinician, Fee Basis or Other Provider"
|
---|
| 74 | ;
|
---|
| 75 | ; get the visit date and the provider activation/inactivation dates
|
---|
| 76 | S ACKVD=$$GET1^DIQ(509850.6,ACKVIEN_",",.01,"I")
|
---|
| 77 | S ACKPACT=$$GET1^DIQ(509850.3,ACKPRVN_",",.03,"I")
|
---|
| 78 | S ACKPINA=$$GET1^DIQ(509850.3,ACKPRVN_",",.04,"I")
|
---|
| 79 | ;
|
---|
| 80 | ; if the provider is not active then set error and exit
|
---|
| 81 | I (ACKPACT="")!(ACKPACT>ACKVD) D G SETSCNDX
|
---|
| 82 | . S ACKSCND="0^Provider not Active on the Visit Date"
|
---|
| 83 | ;
|
---|
| 84 | ; if the provider is inactive then set error and exit
|
---|
| 85 | I ACKPINA'="",ACKPINA<ACKVD D G SETSCNDX
|
---|
| 86 | . S ACKSCND="0^Provider made Inactive prior to the Visit Date"
|
---|
| 87 | ;
|
---|
| 88 | ; all ok, then add the provider to the visit
|
---|
| 89 | S ACKARR(509850.66,"+1,"_ACKVIEN_",",.01)=ACKPRVN
|
---|
| 90 | D UPDATE^DIE("","ACKARR","","")
|
---|
| 91 | S ACKSCND="1^" ; set return flag to OK
|
---|
| 92 | ;
|
---|
| 93 | SETSCNDX ; exit point
|
---|
| 94 | Q ACKSCND
|
---|
| 95 | ;
|
---|
| 96 | SETSTUD(ACKVIEN,ACKQPRV) ; add student to A&SP Clinic Visit
|
---|
| 97 | ; inputs: ACKVIEN - A&SP visit ien
|
---|
| 98 | ; ACKQPRV - provider ien from Quasar file or null
|
---|
| 99 | ; outputs: 1^ - everything ok
|
---|
| 100 | ; 0^xxxxxxx - update failed (reason=xxxxxx)
|
---|
| 101 | ; NB. This function checks the visit date for the visit against the
|
---|
| 102 | ; activation and inactivation dates for the Provider. it therefore
|
---|
| 103 | ; assumes that the visit date has already been filed.
|
---|
| 104 | N ACKSTUD,ACKPRVN,ACKARR,ACKVD,ACKPACT,ACKPINA,ACKSTAT
|
---|
| 105 | S ACKSTUD="" ; return string
|
---|
| 106 | ;
|
---|
| 107 | S ACKPRVN=ACKQPRV
|
---|
| 108 | ;
|
---|
| 109 | ; if not found then set error message and exit
|
---|
| 110 | I 'ACKPRVN D G SETSTUDX
|
---|
| 111 | . S ACKSTUD="0^Provider not defined for Audiology and Speech Pathology"
|
---|
| 112 | ;
|
---|
| 113 | ; if found, get status (clinician/fee basis/other provider/student)
|
---|
| 114 | S ACKSTAT=$$GET1^DIQ(509850.3,ACKPRVN_",",.02,"I")
|
---|
| 115 | ;
|
---|
| 116 | ; if not a student then set error message and quit
|
---|
| 117 | I ACKSTAT'="S" D G SETSTUDX
|
---|
| 118 | . S ACKSTUD="0^Provider must be defined as a Student in the A&SP Staff File."
|
---|
| 119 | ;
|
---|
| 120 | ; get the visit date and the provider activation/inactivation dates
|
---|
| 121 | S ACKVD=$$GET1^DIQ(509850.6,ACKVIEN_",",.01,"I")
|
---|
| 122 | S ACKPACT=$$GET1^DIQ(509850.3,ACKPRVN_",",.03,"I")
|
---|
| 123 | S ACKPINA=$$GET1^DIQ(509850.3,ACKPRVN_",",.04,"I")
|
---|
| 124 | ;
|
---|
| 125 | ; if the provider is not active then set error and exit
|
---|
| 126 | I (ACKPACT="")!(ACKPACT>ACKVD) D G SETSTUDX
|
---|
| 127 | . S ACKSTUD="0^Provider not Active on the Visit Date"
|
---|
| 128 | ;
|
---|
| 129 | ; if the provider is inactive then set error and exit
|
---|
| 130 | I ACKPINA'="",ACKPINA<ACKVD D G SETSTUDX
|
---|
| 131 | . S ACKSTUD="0^Provider made Inactive prior to the Visit Date"
|
---|
| 132 | ;
|
---|
| 133 | ; all ok, then add the provider to the visit
|
---|
| 134 | S ACKARR(509850.6,ACKVIEN_",",7)=ACKPRVN
|
---|
| 135 | D FILE^DIE("","ACKARR","")
|
---|
| 136 | S ACKSTUD="1^" ; set return flag to OK
|
---|
| 137 | ;
|
---|
| 138 | SETSTUDX ; exit point
|
---|
| 139 | Q ACKSTUD
|
---|
| 140 | ;
|
---|