| 1 | ORWPFSS4 ;SLC-GDU CPRS HL7 PROCESSING FOR RAD PRE-CERT;[08/29/05];
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**228**;Dec 17, 1997
 | 
|---|
| 3 |  ;Determine if the order is to have an PFSS Account Reference
 | 
|---|
| 4 |  ;associated with it. This is for orders that are not event delayed
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;DBIA References for external calls
 | 
|---|
| 7 |  ; $$GETS^DIQ         - DBIA 2056 
 | 
|---|
| 8 |  ; $$GETS1^DIQ        - DBIA 2056
 | 
|---|
| 9 |  ; $$PKGTYP^ORWPFSS   - Internal to CPRS PFSS
 | 
|---|
| 10 |  ; PFSSACTV^ORWPFSS   - Internal to CPRS PFSS
 | 
|---|
| 11 |  ; $$ACCTREF^ORWPFSS1 - Internal to CPRS PFSS
 | 
|---|
| 12 |  ; $$GETARN^SDPFSS2   - DBIA 4668
 | 
|---|
| 13 |  ; INP^VADPT          - DBIA 10061
 | 
|---|
| 14 |  ; ^VSIT              - DBIA 1900-A
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | EN(ORIEN) ;Primary entry point of this routine
 | 
|---|
| 17 |  ;Input Variable
 | 
|---|
| 18 |  ; ORIEN    The Order Internal Entry Number
 | 
|---|
| 19 |  ;Local Variables
 | 
|---|
| 20 |  ; ORAR        Order Account Reference (PFSS AR)
 | 
|---|
| 21 |  ; ORDFN       Order Patient's DFN (IEN)
 | 
|---|
| 22 |  ; ORPFSS      Order PFSS Active Indicator
 | 
|---|
| 23 |  ; ORUPDT      Order Update Indicator from record update
 | 
|---|
| 24 |  ; ORVS        Order Visit String
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  N ORAR,ORDFN,ORPFSS,ORUPDT,ORVS,X,Y
 | 
|---|
| 27 |  S (ORAR,ORPFSS)=""
 | 
|---|
| 28 |  ;If PFSS is inactive goto exit
 | 
|---|
| 29 |  D PFSSACTV^ORWPFSS(.ORPFSS) I ORPFSS=0 G EXIT
 | 
|---|
| 30 |  ;If Order already has PFSS Account Reference goto exit
 | 
|---|
| 31 |  S ORAR=$$GET1^DIQ(100,ORIEN,97) I ORAR'="" G EXIT
 | 
|---|
| 32 |  ;If Order package is not one of the currently supported goto exit
 | 
|---|
| 33 |  I $$PKGTYP^ORWPFSS(ORIEN)=0 G EXIT
 | 
|---|
| 34 |  ;If Visit String not found goto EXIT.
 | 
|---|
| 35 |  S ORVS=$$GETVS(ORIEN) I ORVS="" G EXIT
 | 
|---|
| 36 |  ;Get Patient's DFN from the Order
 | 
|---|
| 37 |  S ORDFN=+$$GET1^DIQ(100,ORIEN,.02,"I")
 | 
|---|
| 38 |  ;If Historical set PFSS Account Reference to null and goto Save
 | 
|---|
| 39 |  I $P(ORVS,";",3)="E" S ORAR="" G SAVE
 | 
|---|
| 40 |  ;If Scheduled Appointment get PFSS Account Reference and goto Save
 | 
|---|
| 41 |  I $P(ORVS,";",3)="A" S ORAR=$$SAAR(ORVS,ORDFN) I ORAR'="" G SAVE
 | 
|---|
| 42 |  ;If Hospital Admission get PFSS Account Reference and goto Save
 | 
|---|
| 43 |  I $P(ORVS,";",3)="H" S ORAR=$$HAAR(ORDFN) I ORAR'="" G SAVE
 | 
|---|
| 44 |  ;Check PCE for PFSS Account Reference
 | 
|---|
| 45 |  S ORAR=$$PCEAR(ORVS,ORDFN)
 | 
|---|
| 46 | SAVE ;Save PFSS Account Reference or null value to the Order record
 | 
|---|
| 47 |  S ORUPDT=$$ACCTREF^ORWPFSS1(ORIEN,ORAR)
 | 
|---|
| 48 | EXIT ;Exit point for this routine
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 | GETVS(X1) ;Get Order Visit String
 | 
|---|
| 51 |  ;Get the data from the Order's Responses multi-valued field.
 | 
|---|
| 52 |  ;Look for Prompt text of OR GTX VISITSTR
 | 
|---|
| 53 |  ;If Prompt text found get the Visit String
 | 
|---|
| 54 |  ;If Prompt text not found return a null value
 | 
|---|
| 55 |  ;Input variable required, if missing this will return a null value
 | 
|---|
| 56 |  ;Input Variable for this function
 | 
|---|
| 57 |  ; X1    The Order IEN
 | 
|---|
| 58 |  ;Return Variable for this function
 | 
|---|
| 59 |  ; VS    The Order Visit String
 | 
|---|
| 60 |  ;Local Variable for this function
 | 
|---|
| 61 |  ; IENS  Index variable for REC array
 | 
|---|
| 62 |  ; PT    Prompt Text being searched for
 | 
|---|
| 63 |  ; REC   Output variable for GETS^DIQ that will contain the Order
 | 
|---|
| 64 |  ;       Responses data.
 | 
|---|
| 65 |  N IENS,PT,REC,VS
 | 
|---|
| 66 |  I X1="" S VS="" Q VS
 | 
|---|
| 67 |  S (IENS,VS)=""
 | 
|---|
| 68 |  S PT=$P($T(VSPT),";",3)
 | 
|---|
| 69 |  D GETS^DIQ(100,X1,"4.5*","E","REC")
 | 
|---|
| 70 |  F  S IENS=$O(REC(100.045,IENS)) Q:IENS=""  D
 | 
|---|
| 71 |  . I $G(REC(100.045,IENS,.02,"E"))=PT S VS=$G(REC(100.045,IENS,1,"E"))
 | 
|---|
| 72 |  Q VS
 | 
|---|
| 73 | VSPT ;Visit String Prompt Text;OR GTX VISITSTR
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 | SAAR(X1,X2) ;Scheduled Appointment Account Reference for PFSS
 | 
|---|
| 76 |  ;Get the PFSS Account Reference for scheduled appointments
 | 
|---|
| 77 |  ;All inputs required, any missing this will return a null value
 | 
|---|
| 78 |  ;Input Variables
 | 
|---|
| 79 |  ; X1    The Visit String from the Order 
 | 
|---|
| 80 |  ; X2    The Patient's IEN
 | 
|---|
| 81 |  ;Output Variable
 | 
|---|
| 82 |  ; AR    PFSS Account Reference returned by $$GETARN^SDPFSS2
 | 
|---|
| 83 |  ;       Set to null in any input is missing
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  N AR
 | 
|---|
| 86 |  I X1=""!(X2="") S AR="" Q AR
 | 
|---|
| 87 |  ;Get the PFSS Account Reference from Scheduling
 | 
|---|
| 88 |  S AR=+$$GETARN^SDPFSS2($P(X1,";",2),X2,$P(X1,";"))
 | 
|---|
| 89 |  I AR>0 Q AR      ;If found return Account Reference
 | 
|---|
| 90 |  S AR="" Q AR     ;If not found return null for Account Reference
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | HAAR(X1) ;Hospital Admission Account Reference for PFSS
 | 
|---|
| 93 |  ;Returns the PFSS Account Reference for the Hospital Admission
 | 
|---|
| 94 |  ;Input is required. If missing null value returned.
 | 
|---|
| 95 |  ;Returns PFSS Account Reference returned if found.
 | 
|---|
| 96 |  ;Returns null if PFSS Account Reference not found null.
 | 
|---|
| 97 |  ;Input Variable for this function
 | 
|---|
| 98 |  ; X1    The Patient's DFN
 | 
|---|
| 99 |  ;Output Variables for this function
 | 
|---|
| 100 |  ; ER    Set to null and returned if missing input
 | 
|---|
| 101 |  ; VAIN("NR") The node of VAIN that contains the PFSS Account Reference
 | 
|---|
| 102 |  ;Internal Variables for this function
 | 
|---|
| 103 |  ; DFN   VADPT input variable, Patient's record number
 | 
|---|
| 104 |  ; VAHOW VADPT input variable, sends output to array variable VAIN
 | 
|---|
| 105 |  ; VAIN  Output array variable with results of INP^VAIN
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 |  N ER,DFN,VAHOW,VAIN
 | 
|---|
| 108 |  I X1="" S ER="" Q ER
 | 
|---|
| 109 |  S DFN=X1
 | 
|---|
| 110 |  S VAHOW=1
 | 
|---|
| 111 |  D INP^VADPT
 | 
|---|
| 112 |  Q $G(VAIN("NR"))
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 | PCEAR(X1,X2) ;PCE Account Reference for PFSS
 | 
|---|
| 115 |  ;Returns the PFSS Account Reference from PCE
 | 
|---|
| 116 |  ;All input required, if any missing this will a null.
 | 
|---|
| 117 |  ;Returns PFSS Account Reference returned if found.
 | 
|---|
| 118 |  ;Returns null if PFSS Account Reference not found null.
 | 
|---|
| 119 |  ;Input Variable for this function
 | 
|---|
| 120 |  ; X1    The Visit String from the Order
 | 
|---|
| 121 |  ; X2    The Patient's IEN
 | 
|---|
| 122 |  ; VSIT  The input and output array variable for ^VSIT
 | 
|---|
| 123 |  ;Output Variables for this function
 | 
|---|
| 124 |  ; ER    Set to null and returned if missing input
 | 
|---|
| 125 |  ; VSIT("ACT") The node of array variable VSIT that contains
 | 
|---|
| 126 |  ;       the PFSS Account Reference returned by ^VSIT
 | 
|---|
| 127 |  ;Local Variable for this function
 | 
|---|
| 128 |  ; VSIT  The input and output array variable for ^VSIT
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 |  N ER,VSIT
 | 
|---|
| 131 |  I X1=""!(X2="") S ER="" Q ER
 | 
|---|
| 132 |  S VSIT(0)="D0EM"
 | 
|---|
| 133 |  S VSIT("VDT")=$P(X1,";",2)
 | 
|---|
| 134 |  S VSIT("LOC")=$P(X1,";")
 | 
|---|
| 135 |  S VSIT("PKG")="OR"
 | 
|---|
| 136 |  S VSIT("PAT")=X2
 | 
|---|
| 137 |  D ^VSIT
 | 
|---|
| 138 |  I $G(VSIT("IEN"))<0 S ER="" Q ER
 | 
|---|
| 139 |  Q $G(VSIT("ACT"))
 | 
|---|