[623] | 1 | VADPT5 ;ALB/MRL/MJK - PATIENT VARIABLES [REG]; 14 DEC 1988 ; 8/6/04 7:42am
|
---|
| 2 | ;;5.3;Registration;**54,63,242,584**;Aug 13, 1993
|
---|
| 3 | 10 ;Registration/Disposition [REG]
|
---|
| 4 | N VARPSV
|
---|
| 5 | S VARPSV("C")=$S('$G(VARP("C")):999999999,1:+VARP("C"))
|
---|
| 6 | S VARPSV("F")=9999999-$S($G(VARP("F"))?7N.E:VARP("F"),1:0)
|
---|
| 7 | S VARPSV("T")=$S($G(VARP("T"))?7N.E:VARP("T"),1:7777777) I '$P(VARPSV("T"),".",2) S $P(VARPSV("T"),".",2)=999999
|
---|
| 8 | S VARPSV("T")=9999999-VARPSV("T")
|
---|
| 9 | S VAX=VARPSV("T"),VAX(1)=0
|
---|
| 10 | I '$D(^DPT(DFN,"DIS")) Q
|
---|
| 11 | F I=0:0 S VAX=$O(^DPT(DFN,"DIS",VAX)) Q:VAX=""!(VAX>VARPSV("F"))!(VAX(1)+1>VARPSV("C")) S VAX(2)=$G(^DPT(DFN,"DIS",VAX,0)),VAX(1)=VAX(1)+1 D 101:+VAX(2)>0
|
---|
| 12 | Q
|
---|
| 13 | 101 S (VAX("I"),VAX("E"))="",VAX(3)=0 F I=1,2,3,4,5,6,7,9 S VAX(3)=VAX(3)+1,$P(VAX("I"),"^",VAX(3))=$P(VAX(2),"^",I) D 102
|
---|
| 14 | S @VAV@(VAX(1),"I")=VAX("I"),@VAV@(VAX(1),"E")=VAX("E") Q
|
---|
| 15 | 102 I "^1^6^"[("^"_VAX(3)_"^") S Y=$P(VAX("I"),"^",VAX(3)) I Y]"" X ^DD("DD") S $P(VAX("E"),"^",VAX(3))=Y Q
|
---|
| 16 | S X(1)=$S($D(^DD(2.101,$S(I<9:(I-1),1:I),0)):$P(^(0),"^",3),1:"") I "^2^3^"[("^"_VAX(3)_"^"),$P(VAX("I"),"^",VAX(3))]"",X(1)]"" S $P(VAX("E"),"^",VAX(3))=$P($P(X(1),$P(VAX("I"),"^",VAX(3))_":",2),";",1) Q
|
---|
| 17 | I "^4^5^7^8^"[("^"_VAX(3)_"^"),$P(VAX("I"),"^",VAX(3))]"",X(1)]"" S X(1)="^"_X(1)_$P(VAX("I"),"^",VAX(3))_",0)" I $D(@(X(1))) S $P(VAX("E"),"^",VAX(3))=$P(^(0),"^",1)
|
---|
| 18 | Q
|
---|
| 19 | ;
|
---|
| 20 | 11 ;Clinic Enrollments [SDE]
|
---|
| 21 | S (VAX,VAX(1))=0 F I=0:0 S VAX=$O(^DPT(DFN,"DE",VAX)) Q:VAX'>0 S VAZ=$S($D(^DPT(DFN,"DE",VAX,0)):^(0),1:"") I +VAZ,$P(VAZ,"^",2)'="I" S VAX(3)=0 D 111
|
---|
| 22 | Q
|
---|
| 23 | 111 S VAX(4)=0 F I1=0:0 S VAX(4)=$O(^DPT(DFN,"DE",VAX,1,VAX(4))) Q:VAX(4)'>0!(VAX(3)) S VAZ(1)=$S($D(^DPT(DFN,"DE",VAX,1,VAX(4),0)):^(0),1:"") I +VAZ(1),$P(VAZ(1),"^",3)']"" S VAX(3)=VAZ(1)
|
---|
| 24 | Q:'VAX(3) S (VAX("I"),VAX("E"))="",Y=+VAX(3),$P(VAX("I"),"^",2)=Y X ^DD("DD") S $P(VAX("E"),"^",2)=Y
|
---|
| 25 | S $P(VAX("I"),"^",3)=$P(VAX(3),"^",2) I $P(VAX("I"),"^",3)]"" S $P(VAX("E"),"^",3)=$S($P(VAX("I"),"^",3)="O":"OPT",$P(VAX("I"),"^",3)="A":"AC",1:"")
|
---|
| 26 | S $P(VAX("I"),"^",1)=+VAZ,$P(VAX("E"),"^",1)=$S($D(^SC(+VAZ,0)):$P(^(0),"^",1),1:""),VAX(1)=VAX(1)+1,@VAV@(VAX(1),"I")=VAX("I"),@VAV@(VAX(1),"E")=VAX("E") Q
|
---|
| 27 | ;
|
---|
| 28 | 12 ;Appointments [SDA]
|
---|
| 29 | N VASDSV,SDCNT,SDARRAY
|
---|
| 30 | D NOW^%DTC
|
---|
| 31 | S VASDSV("F")=$S($G(VASD("F"))?7N.E:VASD("F"),1:%)
|
---|
| 32 | S VASDSV("T")=$S(+$G(VASD("T")):+VASD("T"),1:9999999) I '$P(VASDSV("T"),".",2) S $P(VASDSV("T"),".",2)=999999
|
---|
| 33 | S VASDSV("W")=$S('$G(VASD("W")):12,1:VASD("W"))
|
---|
| 34 | S VAZ(2)=$S($D(VASD("N")):VASD("N"),1:9999)
|
---|
| 35 | ;Set STATUS Codes (VistA;RSA)
|
---|
| 36 | S VAZ=";R^I;I^N;NS^NA;NSR^C;CC^CA;CCR^PC;CP^PCA;CPR^NT;NT^",VAZ(1)=""
|
---|
| 37 | ;Extract User Required STATUS Codes in RSA format
|
---|
| 38 | F I=1:1 S I1=+$E(VASDSV("W"),I) Q:'I1 D
|
---|
| 39 | .S VAZ(1)=VAZ(1)_$P($P(VAZ,"^",I1),";",2)_";"
|
---|
| 40 | ;Create parameter list for the extrinsic call to the Appointment API
|
---|
| 41 | ;Note: Appointment API can only accept a maximum of 3 fields
|
---|
| 42 | ; to filter on.
|
---|
| 43 | ; 1 : "FROM;TO" Appointment Date Range to Search
|
---|
| 44 | ; 2 : Clinic IEN or Array of Clinic IENs if defined (Pass the Root)
|
---|
| 45 | ; 3 : Requested STATUS Codes (Passed if VASD("C") is not defined.)
|
---|
| 46 | ; 4 : Patient IEN
|
---|
| 47 | S SDARRAY="",SDARRAY(1)=VASDSV("F")_";"_VASDSV("T")
|
---|
| 48 | I $O(VASD("C",0))>0 S SDARRAY(2)="VASD(""C"","
|
---|
| 49 | E S SDARRAY(3)=VAZ(1)
|
---|
| 50 | S SDARRAY(4)=DFN
|
---|
| 51 | ;Set Fields for API to Return
|
---|
| 52 | ; 1 : Appointment Date/Time
|
---|
| 53 | ; 2 : Clinic
|
---|
| 54 | ; 3 : Appointment Status
|
---|
| 55 | ; 10 : Appointment Type
|
---|
| 56 | S SDARRAY("FLDS")="1;2;3;10"
|
---|
| 57 | ;Remove Clinic IEN from Global Reference
|
---|
| 58 | S SDARRAY("SORT")="P"
|
---|
| 59 | ;Call Appointment API (Pass Array by reference)
|
---|
| 60 | S SDCNT=$$SDAPI^SDAMA301(.SDARRAY)
|
---|
| 61 | S VAX="",VAX(1)=0
|
---|
| 62 | ;If error returned, determine error and set VAERR appropriately
|
---|
| 63 | ; 1 : For any error other than 101
|
---|
| 64 | ; 2 : If error is 101 : Database is unavailable
|
---|
| 65 | I SDCNT<0 S VAX=$O(^TMP($J,"SDAMA301",VAX)) S VAERR=$S(VAX=101:2,1:1) K ^TMP($J,"SDAMA301") Q
|
---|
| 66 | D 122:SDCNT>0
|
---|
| 67 | Q
|
---|
| 68 | 121 S VAX(5)=1 I VASDSV("W")'[1,$P(VAZ,"^",2)']"" S VAX(5)=0 Q
|
---|
| 69 | I VASDSV("C"),'$D(VASD("C",+VAZ)) S VAX(5)=0 Q
|
---|
| 70 | S (VAX("I"),VAX("E"))="",VAX(2)=1,$P(VAX("I"),"^",1)=+VAX F I1=1,2,16 S VAX(2)=VAX(2)+1,$P(VAX("I"),"^",VAX(2))=$P(VAZ,"^",I1)
|
---|
| 71 | Q
|
---|
| 72 | 122 ;Build Internal/External Output Globals
|
---|
| 73 | ;
|
---|
| 74 | N SDCIEN,SDDTM,SDNODE
|
---|
| 75 | S (SDCIEN,SDDTM)=""
|
---|
| 76 | ;Redefine VAZ (STATUS Codes(RSA;VistA))
|
---|
| 77 | S VAZ="R;^I;I^NS;N^NSR;NA^CC;C^CCR;CA^CP;PC^CPR;PCA^NT;NT^"
|
---|
| 78 | S SDDTM=""
|
---|
| 79 | ;Loop through appointments and convert for output
|
---|
| 80 | F S SDDTM=$O(^TMP($J,"SDAMA301",DFN,SDDTM)) Q:'SDDTM D
|
---|
| 81 | .;Get Appointment Information and clear VAX("I") & VAX("E")
|
---|
| 82 | .S SDNODE=^(SDDTM),(VAX("I"),VAX("E"))=""
|
---|
| 83 | .;If Clinics were passed to appointment API,
|
---|
| 84 | .; Filter on Appointment Status Codes
|
---|
| 85 | .I $O(VASD("C",0))>0,(VAZ(1)'[($P($P(SDNODE,"^",3),";")_";")) Q
|
---|
| 86 | .;Extract and format Appointment Date/Time
|
---|
| 87 | .S Y=$P(SDNODE,"^",1)
|
---|
| 88 | .S $P(VAX("I"),"^",1)=Y
|
---|
| 89 | .X ^DD("DD") S $P(VAX("E"),"^",1)=Y
|
---|
| 90 | .;Extract and format Clinic Information
|
---|
| 91 | .S $P(VAX("I"),"^",2)=$P($P(SDNODE,"^",2),";",1)
|
---|
| 92 | .S $P(VAX("E"),"^",2)=$P($P(SDNODE,"^",2),";",2)
|
---|
| 93 | .;Extract and format Appointment Type
|
---|
| 94 | .S $P(VAX("I"),"^",4)=$P($P(SDNODE,"^",10),";",1)
|
---|
| 95 | .S $P(VAX("E"),"^",4)=$P($P(SDNODE,"^",10),";",2)
|
---|
| 96 | .;Extract and format Appointment Status
|
---|
| 97 | .S Y=$P($P(VAZ,$P($P(SDNODE,"^",3),";")_";",2),"^"),$P(VAX("I"),"^",3)=Y
|
---|
| 98 | .I Y]"" S X=$S($D(^DD(2.98,3,0)):$P(^(0),"^",3),1:""),$P(VAX("E"),"^",3)=$P($P(X,Y_":",2),";",1)
|
---|
| 99 | .S VAX(1)=VAX(1)+1
|
---|
| 100 | .;Store information in global
|
---|
| 101 | .S @VAV@(VAX(1),"I")=VAX("I"),@VAV@(VAX(1),"E")=VAX("E")
|
---|
| 102 | K ^TMP($J,"SDAMA301")
|
---|
| 103 | Q
|
---|