Changeset 623 for WorldVistAEHR/trunk/r/REGISTRATION-DGQE-DG-DPT-GRPX-VAD-VAF-VAS-VAT-VAU--VA-VIC--DGBT--DGJ--DGYA--VALM/VADPT5.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/REGISTRATION-DGQE-DG-DPT-GRPX-VAD-VAF-VAS-VAT-VAU--VA-VIC--DGBT--DGJ--DGYA--VALM/VADPT5.m
r613 r623 1 VADPT5 2 ;;5.3;Registration;**54,63,242,584,749**;Aug 13, 1993;Build 10 3 10 4 5 6 7 8 9 10 11 12 13 101 14 15 102 16 17 18 19 20 11 21 22 23 111 24 25 26 27 28 12 29 N VASDSV,SDCNT,SDARRAY,VANOW 30 S VANOW=$$NOW^XLFDT 31 S VASDSV("F")=$S($G(VASD("F"))?7N.E:VASD("F"),1:VANOW)32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 121 69 70 71 72 122 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 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
Note:
See TracChangeset
for help on using the changeset viewer.