Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

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  ;ALB/MRL/MJK - PATIENT VARIABLES [REG]; 14 DEC 1988 ; 8/6/04 7:42am
    2         ;;5.3;Registration;**54,63,242,584,749**;Aug 13, 1993;Build 10
    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,VANOW
    30         S VANOW=$$NOW^XLFDT
    31         S VASDSV("F")=$S($G(VASD("F"))?7N.E:VASD("F"),1:VANOW)
    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
     1VADPT5 ;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
     310 ;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
     13101 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
     15102 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 ;
     2011 ;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
     23111 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 ;
     2812 ;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
     68121 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
     72122 ;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.