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/IMAGING-MAG-ZMAG/MAGGTSR.m

    r613 r623  
    1 MAGGTSR ;WOIFO/GEK - SURGERY CASE LIST ; [ 06/20/2001 08:57 ]
    2         ;;3.0;IMAGING;**8,59**;Nov 27, 2007;Build 20
    3         ;;Per VHA Directive 2004-038, this routine should not be modified.
    4         ;; +---------------------------------------------------------------+
    5         ;; | Property of the US Government.                                |
    6         ;; | No permission to copy or redistribute this software is given. |
    7         ;; | Use of unreleased versions of this software requires the user |
    8         ;; | to execute a written test agreement with the VistA Imaging    |
    9         ;; | Development Office of the Department of Veterans Affairs,     |
    10         ;; | telephone (301) 734-0100.                                     |
    11         ;; |                                                               |
    12         ;; | The Food and Drug Administration classifies this software as  |
    13         ;; | a medical device.  As such, it may not be changed in any way. |
    14         ;; | Modifications to this software may result in an adulterated   |
    15         ;; | medical device under 21CFR820, the use of which is considered |
    16         ;; | to be a violation of US Federal Statutes.                     |
    17         ;; +---------------------------------------------------------------+
    18         ;;
    19         Q
    20 GET(MAGRY,MAGDFN,DATA)  ;RPC [MAGGSUR GET]
    21         ; Call to get list of Patient Surgery procedures
    22         ;  MAGDFN       =       Patient DFN
    23         ;  DATA         =       For Future Use.
    24         N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
    25         N Y,NAME,AI,CASES,SDAT,DTX,SRFDA
    26         K ^TMP($J,"MAGGTSR")
    27         S NAME=$P($G(^DPT(MAGDFN,0)),U) I NAME="" S MAGRY(0)="0^INVALID Patient ID" Q
    28         ; This is the Old Call we have always made.  Doesn't have Non-OR
    29         D GET^SROGTSR(.MAGRY,MAGDFN)
    30         I 'MAGRY(0) S MAGRY(0)=MAGRY(0)_" for "_NAME G C1
    31         ; Image count is for future use by Display
    32         S MAGRY(1)="#^Date^Case description^Case #^Images"
    33         S I=1 F  S I=$O(MAGRY(I)) Q:'I  D
    34         . S DTX=$$FMTE^XLFDT($P(MAGRY(I),U,5),"5MZ")
    35         . S ^TMP($J,"MAGGTSR",$P(MAGRY(I),U,5),$P(MAGRY(I),U,4))=DTX_"^"_$P(MAGRY(I),U,3)_"^"_$P(MAGRY(I),"^",4)_"^"_$P(MAGRY(I),U,6)_U_"|"_$P(MAGRY(I),U,4,5)_U
    36         ;
    37         ;This is the New Call, which has Non-OR, but doesn't have (Scheduled) so we merge the two calls.
    38 C1      D LIST^SROESTV(.CASES,MAGDFN)
    39         I '$D(@CASES)  G E1
    40         S MAGRY(0)="1^"
    41         S MAGRY(1)="#^Date^Case description^Case #^Images"
    42         S I=0 F  S I=$O(@CASES@(I)) Q:'I  D
    43         . S SDAT=@CASES@(I)
    44         . ; SDAT = SURIEN  ^ SURDESC  ^ SURDT ^ DFN;NAME ^
    45         . I $D(^TMP($J,"MAGGTSR",$P(SDAT,U,3),$P(SDAT,U,1))) Q
    46         . S ^TMP($J,"MAGGTSR",$P(SDAT,U,3),$P(SDAT,U,1))=$$FMTE^XLFDT($P(SDAT,U,3),"5MZ")_U_$P(SDAT,U,2)_U_$P(SDAT,U,1)_U_$$IMGCT($P(SDAT,U,1))_U_"|"_$P(SDAT,U,1)_U_$P(SDAT,U,3)_U
    47         . Q
    48         ;
    49         ; Now Returned the Merged List of the results of Old Call, with Results of New Call.
    50 E1      ;
    51         I '$D(^TMP($J,"MAGGTSR")) S MAGRY(0)="0^No Cases for "_$G(NAME) Q
    52         S I=1,DTX=0,SRFDA=0
    53         F  S DTX=$O(^TMP($J,"MAGGTSR",DTX)) Q:'DTX  D
    54         . S SRFDA="" F  S SRFDA=$O(^TMP($J,"MAGGTSR",DTX,SRFDA),-1) Q:'SRFDA  D
    55         . . S I=I+1,MAGRY(I)=I-1_"^"_^TMP($J,"MAGGTSR",DTX,SRFDA)
    56         . . Q
    57         . Q
    58         S $P(MAGRY(0),"^",1)=I-1
    59         Q
    60 IMGCT(SRFIEN)   ;
    61         ;  Count of images for this Surgery Case
    62         ;  If more than one group (or image)
    63         ;  then return "Group count : total images"  i.e.   "3:134"
    64         ;  else return count of Images i.e. "4"
    65         ;
    66         N CT,GCT,ICT,J
    67         S J=0,CT=0,GCT=0
    68         F  S J=$O(^SRF(SRFIEN,2005,"B",J)) Q:'J  D
    69         . S ICT=+$P($G(^MAG(2005,J,1,0)),U,4)
    70         . S ICT=$S(ICT:ICT,1:1) ;If no group images, set count =1 (single image)
    71         . S GCT=GCT+1
    72         . S CT=CT+ICT
    73         I (GCT>1) Q GCT_":"_CT
    74         Q CT
    75         ;       
    76 IMAGE(MAGRY,DATA)       ;
    77         ;  Called with the IEN of the Surgery package ^SRF(170,x
    78         ;  We'll return a list of images.
    79         N SRFIEN,MAGIEN
    80         S SRFIEN=+DATA
    81         I '$D(^SRF(SRFIEN)) S MAGRY(0)="0^INVALID Surgery File entry" Q
    82         I '$O(^SRF(SRFIEN,2005,0)) S MAGRY(0)="0^No Images for this Operation." Q
    83         D GETLIST
    84         Q
    85 GETLIST ; called from other points in this routine, when SRFIEN is defined
    86         ; and returns a list in MAGRY(1..n)
    87         ; We'll make a tmp list of just the image IEN's
    88         ;  splitting groups into individual image entries.
    89         K ^TMP($J,"MAGGX")
    90         S I=0,CT=1 F  S I=$O(^SRF(SRFIEN,2005,I)) Q:'I  D
    91         . S MAGIEN=$P(^SRF(SRFIEN,2005,I,0),U,1)
    92         . Q:'$D(^MAG(2005,MAGIEN,0))
    93         . I '$O(^MAG(2005,MAGIEN,1,0)) S ^TMP($J,"MAGGX",MAGIEN)=""
    94         . E  S Z=0 F  S Z=$O(^MAG(2005,MAGIEN,1,Z)) Q:Z=""  S ^TMP($J,"MAGGX",$P(^MAG(2005,MAGIEN,1,Z,0),U,1))=""
    95         I '$D(^TMP($J,"MAGGX")) S MAGRY(0)="0^Surgery File Entry "_SRFIEN_": has INVALID Image Pointers" Q
    96         S Z="",CT=0
    97         S MAGQUIET=1
    98         F  S Z=$O(^TMP($J,"MAGGX",Z)) Q:Z=""  D
    99         . S CT=CT+1,MAGXX=Z D INFO^MAGGTII
    100         . S MAGRY(CT)="B2^"_MAGFILE
    101         K MAGQUIET
    102         S MAGRY(0)=CT_"^Images for the selected Surgery File entry"
    103         K ^TMP("MAGGX")
    104         Q
     1MAGGTSR ;WOIFO/GEK - SURGERY CASE LIST ; [ 06/20/2001 08:57 ]
     2 ;;3.0;IMAGING;**8**;Sep 15, 2004
     3 ;; +---------------------------------------------------------------+
     4 ;; | Property of the US Government.                                |
     5 ;; | No permission to copy or redistribute this software is given. |
     6 ;; | Use of unreleased versions of this software requires the user |
     7 ;; | to execute a written test agreement with the VistA Imaging    |
     8 ;; | Development Office of the Department of Veterans Affairs,     |
     9 ;; | telephone (301) 734-0100.                                     |
     10 ;; |                                                               |
     11 ;; | The Food and Drug Administration classifies this software as  |
     12 ;; | a medical device.  As such, it may not be changed in any way. |
     13 ;; | Modifications to this software may result in an adulterated   |
     14 ;; | medical device under 21CFR820, the use of which is considered |
     15 ;; | to be a violation of US Federal Statutes.                     |
     16 ;; +---------------------------------------------------------------+
     17 ;;
     18 Q
     19GET(MAGRY,MAGDFN) ;RPC [MAGGSUR GET]
     20 ; Call to get list of Patient Surgery procedures
     21 ; MAGDFN is Patient DFN
     22 ;
     23 IF $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
     24 E  S X="ERRA^MAGGTERR",@^%ZOSF("TRAP")
     25 N Y,DFN,MAGNAME
     26 S MAGNAME=$P($G(^DPT(MAGDFN,0)),U)
     27 I MAGNAME="" S MAGGRY(0)="0^INVALID Patient ID" Q
     28 D GET^SROGTSR(.MAGRY,MAGDFN)
     29 I 'MAGRY(0) S MAGRY(0)=MAGRY(0)_" for "_MAGNAME Q
     30 ; Here we are changing the data returned in the array, from SROGTSR
     31 ; , it will now also return the count of images associated with the
     32 ; surgery report.  This is in advance of the change for Display, to
     33 ; list the patient's surgery reports, like we list radiology reports.
     34 ;
     35 I (+$G(MAGJOB("VERSION"))<2.5) Q
     36 S MAGRY(1)=$P(MAGRY(1),U,1,3)_"^Images"
     37 S I=1 F  S I=$O(MAGRY(I)) Q:'I  D
     38 . S MAGRY(I)=$P(MAGRY(I),U,1,3)_U_$P(MAGRY(I),U,6)_U_$C(124)_$P(MAGRY(I),U,4,5)_U
     39 Q
     40IMAGE(MAGRY,DATA) ;
     41 ;  Called with the IEN of the Surgery package ^SRF(170,x
     42 ;  We'll return a list of images.
     43 N SRFIEN,MAGIEN
     44 S SRFIEN=+DATA
     45 I '$D(^SRF(SRFIEN)) S MAGRY(0)="0^INVALID Surgery File entry" Q
     46 I '$O(^SRF(SRFIEN,2005,0)) S MAGRY(0)="0^No Images for this Operation." Q
     47 D GETLIST
     48 Q
     49GETLIST ; called from other points in this routine, when SRFIEN is defined
     50 ; and returns a list in MAGRY(1..n)
     51 ; We'll make a tmp list of just the image IEN's
     52 ;  splitting groups into individual image entries.
     53 K ^TMP("MAGGX",$J)
     54 S I=0,CT=1 F  S I=$O(^SRF(SRFIEN,2005,I)) Q:'I  D
     55 . S MAGIEN=$P(^SRF(SRFIEN,2005,I,0),U,1)
     56 . Q:'$D(^MAG(2005,MAGIEN,0))
     57 . I '$O(^MAG(2005,MAGIEN,1,0)) S ^TMP("MAGGX",$J,MAGIEN)=""
     58 . E  S Z=0 F  S Z=$O(^MAG(2005,MAGIEN,1,Z)) Q:Z=""  S ^TMP("MAGGX",$J,$P(^MAG(2005,MAGIEN,1,Z,0),U,1))=""
     59 I '$D(^TMP("MAGGX",$J)) S MAGRY(0)="0^Surgery File Entry "_SRFIEN_": has INVALID Image Pointers" Q
     60 S Z="",CT=0
     61 S MAGQUIET=1
     62 F  S Z=$O(^TMP("MAGGX",$J,Z)) Q:Z=""  D
     63 . S CT=CT+1,MAGXX=Z D INFO^MAGGTII
     64 . S MAGRY(CT)="B2^"_MAGFILE
     65 K MAGQUIET
     66 S MAGRY(0)=CT_"^Images for the selected Surgery File entry"
     67 K ^TMP("MAGGX")
     68 Q
Note: See TracChangeset for help on using the changeset viewer.