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/SCHEDULING-SD-SC/SCMCHLB2.m

    r613 r623  
    1 SCMCHLB2        ;BPOI/DJB - PCMM HL7 Bld Segment Array Deletes;3/6/00
    2         ;;5.3;Scheduling;**177,204,210,224,524**;08/13/93;Build 29
    3         ;
    4 PTP     ;Entry has been deleted from file 404.43. Send deletes to NPCD.
    5         ;
    6         NEW DFN,TP
    7         D GETEVENT Q:'DFN  ;..Get DFN & TP from PCMM HL7 EVENT file
    8         D PTPD(SCIEN) ;.......Send delete
    9         ;alb/rpm;Patch 224 Decrement max msg counter
    10         I $D(SCLIMIT) S SCLIMIT=SCLIMIT-1
    11         Q
    12         ;
    13 PTPD(PTPI)      ;From PCMM HL7 ID file, get all ID's whose 1st piece equals PTPI,
    14         ;and send a delete segment.
    15         ;Input: PTPI - 404.43 IEN (1st piece of ID)
    16         ;
    17         ;djb/bp Added SCSEQ per Patch 210[rel 204].
    18         NEW DATA,ID,LINETAG,SCSEQ,VAFZPC
    19         ;
    20         S ID=PTPI_"-"
    21         F  S ID=$O(^SCPT(404.49,"B",ID)) Q:ID=""!($P(ID,"-",1)'=PTPI)  D  ;
    22         . N SUB  ; og/sd/524
    23         . S SUB=PTPI,DATA="^^^" ;........A Delete type ZPC segment
    24         . ;djb/bp Patch 210. Eliminate indirection[rel 204]
    25         . D BLDZPC^SCMCHLS ;..Build segment (needs ID & DATA)
    26         . D CPYZPC^SCMCHLS ;..Copy segment into array (needs ID & VAFZPC)
    27         Q:'$D(@XMITARRY)
    28         D SEGMENTS^SCMCHLB1(DFN,PTPI) ;Bld array of EVN,PID segments
    29         Q
    30         ;
    31 POS     ;Entry has been deleted from file 404.52. Send deletes to NPCD.
    32         ;
    33         NEW DATA,DFN,ID,LINETAG,ND,POS,PTPI,VAFZPC
    34         ;
    35         ;From PCMM HL7 ID file, get all ID's whose 2nd piece equals SCIEN,
    36         ;Build array sorted by:  DFN
    37         ;                        404.43 IEN
    38         ;                        ID
    39         ;djb/bp Fix <STORE> errors for NOIS BIG-1199-71271.
    40         ;       Replace local array POS() with global array.
    41         S POS="^TMP(""PCMM"",""POS"","_$J_")"
    42         KILL @POS
    43         ;
    44         S ID=""
    45         F  S ID=$O(^SCPT(404.49,"B",ID)) Q:ID=""  D  ;
    46         . Q:$P(ID,"-",2)'=SCIEN
    47         . S PTPI=$P(ID,"-",1) ;...............404.43 IEN
    48         . S ND=$G(^SCPT(404.43,PTPI,0))
    49         . Q:($P(ND,U,5)'=1)  ;................Must be Primary Care
    50         . S DFN=$$DFN^SCMCHLB1(ND) Q:'DFN  ;..Get patient
    51         . ;
    52         . S @POS@(DFN,PTPI,ID)="" ;djb/bp BIG-1199-71271
    53         . ;
    54         Q:'$D(@POS)
    55         ;
    56         ;Process array
    57         S DFN=0
    58         F  S DFN=$O(@POS@(DFN)) Q:'DFN  D  ;djb/bp BIG-1199-71271
    59         . S PTPI=0
    60         . F  S PTPI=$O(@POS@(DFN,PTPI)) Q:'PTPI  D  ;djb/bp BIG-1199-71271
    61         .. NEW SCSEQ ;djb/bp Added per Patch 210.
    62         .. ;alb/rpm;Patch 224 Decrement max msg counter
    63         .. I $D(SCLIMIT) S SCLIMIT=SCLIMIT-1
    64         .. D SEGMENTS^SCMCHLB1(DFN,PTPI) ;Bld array of EVN,PID segments
    65         .. S ID=""
    66         .. F  S ID=$O(@POS@(DFN,PTPI,ID)) Q:ID=""  D  ;djb/bp BIG-1199-71271
    67         ... N SUB  ; og/sd/524
    68         ... S SUB=PTPI,DATA="^^^" ;........A Delete type ZPC segment
    69         ... ;djb/bp Patch 210. Eliminate indirection[rel 204]
    70         ... D BLDZPC^SCMCHLS ;..Build segment (needs ID & DATA)
    71         ... D CPYZPC^SCMCHLS ;..Copy segment into array (needs ID & VAFZPC)
    72         ;
    73         KILL @POS ;djb/bp BIG-1199-71271
    74         Q
    75         ;
    76 PRE     ;Entry has been deleted from file 404.53. Send deletes to NPCD.
    77         ;****
    78         ;Currently, deletes to 404.53 are not allowed if there are
    79         ;patients assigned.
    80         ;****
    81         ;alb/rpm;Patch 224 Decrement max msg counter
    82         ;Uncomment the following line if this tag becomes active
    83         ;I $D(SCLIMIT) S SCLIMIT=SCLIMIT-1
    84         Q
    85         ;
    86 GETEVENT        ;Get data from PCMM HL7 EVENT file
    87         ;Return: DFN - Patient IEN
    88         ;        TP  - Team Position
    89         ;
    90         NEW IEN,ND,PTR
    91         ;
    92         ;If in manual mode, get SCEVIEN (404.48 IEN).
    93         I $G(SCMANUAL) D  ;
    94         . S (IEN,SCEVIEN)=0
    95         . F  S IEN=$O(^SCPT(404.48,IEN)) Q:'IEN!SCEVIEN  D  ;
    96         .. S PTR=$P($G(^(IEN,0)),U,7) Q:PTR=""
    97         .. Q:PTR'=VARPTR
    98         .. S SCEVIEN=IEN
    99         ;
    100         S ND=$G(^SCPT(404.48,SCEVIEN,0))
    101         S DFN=$P(ND,U,2) ;..Patient (DFN)
    102         S TP=$P(ND,U,4) ;...Team Position
    103         Q
     1SCMCHLB2 ;BP/DJB - PCMM HL7 Bld Segment Array Deletes ; 3/6/00 8:41am
     2 ;;5.3;Scheduling;**177,204,210,224**;AUG 13, 1993
     3 ;
     4PTP ;Entry has been deleted from file 404.43. Send deletes to NPCD.
     5 ;
     6 NEW DFN,TP
     7 D GETEVENT Q:'DFN  ;..Get DFN & TP from PCMM HL7 EVENT file
     8 D PTPD(SCIEN) ;.......Send delete
     9 ;alb/rpm;Patch 224 Decrement max msg counter
     10 I $D(SCLIMIT) S SCLIMIT=SCLIMIT-1
     11 Q
     12 ;
     13PTPD(PTPI) ;From PCMM HL7 ID file, get all ID's whose 1st piece equals PTPI,
     14 ;and send a delete segment.
     15 ;Input: PTPI - 404.43 IEN (1st piece of ID)
     16 ;
     17 ;djb/bp Added SCSEQ per Patch 210[rel 204].
     18 NEW DATA,ID,LINETAG,SCSEQ,VAFZPC
     19 ;
     20 S ID=PTPI_"-"
     21 F  S ID=$O(^SCPT(404.49,"B",ID)) Q:ID=""!($P(ID,"-",1)'=PTPI)  D  ;
     22 . S DATA="^^^" ;........A Delete type ZPC segment
     23 . ;djb/bp Patch 210. Eliminate indirection[rel 204]
     24 . D BLDZPC^SCMCHLS ;..Build segment (needs ID & DATA)
     25 . D CPYZPC^SCMCHLS ;..Copy segment into array (needs ID & VAFZPC)
     26 Q:'$D(@XMITARRY)
     27 D SEGMENTS^SCMCHLB1(DFN,PTPI) ;Bld array of EVN,PID segments
     28 Q
     29 ;
     30POS ;Entry has been deleted from file 404.52. Send deletes to NPCD.
     31 ;
     32 NEW DATA,DFN,ID,LINETAG,ND,POS,PTPI,VAFZPC
     33 ;
     34 ;From PCMM HL7 ID file, get all ID's whose 2nd piece equals SCIEN,
     35 ;Build array sorted by:  DFN
     36 ;                        404.43 IEN
     37 ;                        ID
     38 ;djb/bp Fix <STORE> errors for NOIS BIG-1199-71271.
     39 ;       Replace local array POS() with global array.
     40 S POS="^TMP(""PCMM"",""POS"","_$J_")"
     41 KILL @POS
     42 ;
     43 S ID=""
     44 F  S ID=$O(^SCPT(404.49,"B",ID)) Q:ID=""  D  ;
     45 . Q:$P(ID,"-",2)'=SCIEN
     46 . S PTPI=$P(ID,"-",1) ;...............404.43 IEN
     47 . S ND=$G(^SCPT(404.43,PTPI,0))
     48 . Q:($P(ND,U,5)'=1)  ;................Must be Primary Care
     49 . S DFN=$$DFN^SCMCHLB1(ND) Q:'DFN  ;..Get patient
     50 . ;
     51 . S @POS@(DFN,PTPI,ID)="" ;djb/bp BIG-1199-71271
     52 . ;
     53 Q:'$D(@POS)
     54 ;
     55 ;Process array
     56 S DFN=0
     57 F  S DFN=$O(@POS@(DFN)) Q:'DFN  D  ;djb/bp BIG-1199-71271
     58 . S PTPI=0
     59 . F  S PTPI=$O(@POS@(DFN,PTPI)) Q:'PTPI  D  ;djb/bp BIG-1199-71271
     60 .. NEW SCSEQ ;djb/bp Added per Patch 210.
     61 .. ;alb/rpm;Patch 224 Decrement max msg counter
     62 .. I $D(SCLIMIT) S SCLIMIT=SCLIMIT-1
     63 .. D SEGMENTS^SCMCHLB1(DFN,PTPI) ;Bld array of EVN,PID segments
     64 .. S ID=""
     65 .. F  S ID=$O(@POS@(DFN,PTPI,ID)) Q:ID=""  D  ;djb/bp BIG-1199-71271
     66 ... S DATA="^^^" ;........A Delete type ZPC segment
     67 ... ;djb/bp Patch 210. Eliminate indirection[rel 204]
     68 ... D BLDZPC^SCMCHLS ;..Build segment (needs ID & DATA)
     69 ... D CPYZPC^SCMCHLS ;..Copy segment into array (needs ID & VAFZPC)
     70 ;
     71 KILL @POS ;djb/bp BIG-1199-71271
     72 Q
     73 ;
     74PRE ;Entry has been deleted from file 404.53. Send deletes to NPCD.
     75 ;****
     76 ;Currently, deletes to 404.53 are not allowed if there are
     77 ;patients assigned.
     78 ;****
     79 ;alb/rpm;Patch 224 Decrement max msg counter
     80 ;Uncomment the following line if this tag becomes active
     81 ;I $D(SCLIMIT) S SCLIMIT=SCLIMIT-1
     82 Q
     83 ;
     84GETEVENT ;Get data from PCMM HL7 EVENT file
     85 ;Return: DFN - Patient IEN
     86 ;        TP  - Team Position
     87 ;
     88 NEW IEN,ND,PTR
     89 ;
     90 ;If in manual mode, get SCEVIEN (404.48 IEN).
     91 I $G(SCMANUAL) D  ;
     92 . S (IEN,SCEVIEN)=0
     93 . F  S IEN=$O(^SCPT(404.48,IEN)) Q:'IEN!SCEVIEN  D  ;
     94 .. S PTR=$P($G(^(IEN,0)),U,7) Q:PTR=""
     95 .. Q:PTR'=VARPTR
     96 .. S SCEVIEN=IEN
     97 ;
     98 S ND=$G(^SCPT(404.48,SCEVIEN,0))
     99 S DFN=$P(ND,U,2) ;..Patient (DFN)
     100 S TP=$P(ND,U,4) ;...Team Position
     101 Q
Note: See TracChangeset for help on using the changeset viewer.