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/SURGERY-SR/SROGMTS.m

    r613 r623  
    1 SROGMTS ;BIR/ADM - SURGERY HEALTH SUMMARY ; [ 08/08/01  7:12 AM ]
    2         ;;3.0; Surgery ;**100,127,162**;24 Jun 93;Build 4
    3         ;
    4         ;** NOTICE: This routine is part of an implementation of a nationally
    5         ;**         controlled procedure.  Local modifications to this routine
    6         ;**         are prohibited.
    7         ;
    8         ; Reference to $$MOD^ICPTMOD supported by DBIA #1996
    9         ; Reference to $$CPT^ICPTCOD supported by DBIA #1995
    10         ;
    11         Q
    12 HS(X)   ; return case information for a surical or non-OR case
    13         ; X - case number (IEN) in file 130
    14         K REC N SRCPTM,SRSG,DA,DR,DIC,DIQ,IEN,IENS,FILE,FLD,FLDS,FLDI
    15         N FLDA,FLDB,FLDR,FLDRT,IEN,SRI,SRRT,SRT,SRS,SRC,SRCS
    16         S SRCPTM=1
    17         Q:'$D(^SRF(X,0))  S (IENS,IEN,X)=+($G(X)),U="^"
    18         S:'$D(DT) DT=$$HTFM^XLFDT($H,1) S:'$D(DTIME) DTIME=300
    19         S (FILE,DIC)=130,DA=+($G(X)),DIQ="REC(",DIQ(0)="IE"
    20         S SRSG=$$SG(IEN),REC(130,IEN,118,"E")=$S(SRSG=0:"YES",1:""),REC(130,IEN,118,"I")=$S(SRSG=0:"Y",1:"")
    21         S:+SRSG DR=".09;.04;.14;.164;.205;.22;.23;.31;10;15;17;26;27;32;34;36;39;43;49;50"
    22         S:'SRSG DR=".09;.31;26;27;33;50;55;59;66;121;122;123;124;125"
    23         D EN^DIQ1 S REC(130,IEN,"STATUS")=$$OS(IEN) S:+SRSG REC(130,IEN,"VERIFIED")=$S($G(REC(130,IEN,43,"I"))'="Y":"(Unverified)",1:"")
    24         S SRM=$G(REC(130,IEN,27,"I")) I SRM>0 D CPT(SRM,$P($G(^SRF(IEN,0)),"^",9),130,27)
    25         D DICT^SROGMTS0,SUB,SPD
    26         S:$D(REC(130,IEN,32)) REC(130,IEN,32,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,32,"E")))
    27         S:$D(REC(130,IEN,33)) REC(130,IEN,33,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,33,"E")))
    28         S:$D(REC(130,IEN,34)) REC(130,IEN,34,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,34,"E")))
    29         S:$D(REC(130,IEN,.04)) REC(130,IEN,.04,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,.04,"E")))
    30         S:$D(REC(130,IEN,125)) REC(130,IEN,125,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,125,"E")))
    31         I $L($G(REC(130,IEN,33,"S"))) D
    32         . S:'$L($G(REC(130,IEN,66,"E"))) REC(130,IEN,33,"S")=$G(REC(130,IEN,33,"S"))_" (Unknown)"
    33         . S:$L($G(REC(130,IEN,66,"E"))) REC(130,IEN,33,"S")=$G(REC(130,IEN,33,"S"))_" (ICD "_$G(REC(130,IEN,66,"E"))_")"
    34         S:+($G(REC(130,IEN,.09,"I")))>0 REC(130,IEN,.09,"S")=$$ED^SROGMTS0($G(REC(130,IEN,.09,"I")))
    35         S:+($G(REC(130,IEN,15,"I")))>0 REC(130,IEN,15,"S")=$$EDT^SROGMTS0($G(REC(130,IEN,15,"I")))
    36         S:+($G(REC(130,IEN,39,"I"))) REC(130,IEN,39,"S")=$$EDT^SROGMTS0($G(REC(130,IEN,39,"I")))
    37         S:+SRSG REC(130,IEN,"LAB")=$S($O(REC(130,IEN,49,0))>0:"Yes",1:"")
    38         I 'SRSG D:+($O(REC(130,IEN,55,0)))>0 WP(IEN,55,58) D:+($O(REC(130,IEN,59,0)))>0 WP(IEN,59,58)
    39         Q
    40 ED(X)   ; external date
    41         S X=$G(X) Q:'$L(X) ""
    42         S X=$TR($$FMTE^XLFDT(X,"5DZ"),"@"," ")
    43         Q X
    44 EDT(X)  ; external date and time
    45         S X=$G(X) Q:'$L(X) ""
    46         S X=$TR($$FMTE^XLFDT(X,"2ZM"),"@"," ")
    47         Q X
    48 WP(X,Y,Z)       ;
    49         N SRI,SRF,SRW,SRGI,DIWF,DIWL,DIWR
    50         S SRI=+($G(X)) Q:SRI=0!('$D(REC(130,SRI)))
    51         S SRF=+($G(Y)) Q:SRF=0!('$D(REC(130,SRI,SRF)))
    52         S SRW=+($G(Z)) Q:SRW'>0!(SRW>79)
    53         Q:+($O(REC(130,SRI,SRF,0)))'>0
    54         K ^UTILITY($J,"W") S DIWF="C"_SRW,DIWL=0,DIWR=0,SRGI=0
    55         F  S SRGI=$O(REC(130,SRI,SRF,SRGI)) Q:+SRGI=0  D
    56         . S X=$G(REC(130,SRI,SRF,SRGI))
    57         . D ^DIWP
    58         S SRGI=0 F  S SRGI=$O(^UTILITY($J,"W",0,SRGI)) Q:+SRGI=0  D
    59         . S REC(130,SRI,SRF,"S",SRGI)=$G(^UTILITY($J,"W",0,SRGI,0))
    60         . S REC(130,SRI,SRF,"S",0)=$G(REC(130,SRI,SRF,"S",0))+1
    61         K ^UTILITY($J,"W")
    62         Q
    63 OS(X)   ; Obtains status for OR procedures
    64         N SRN S SRN=+($G(X)) S X="" I $G(REC(130,SRN,118,"I"))="Y" D  Q X
    65         . S:+($G(REC(130,SRN,122,"I")))>0 X="(Completed)"
    66         . S:+($G(REC(130,SRN,121,"I")))>0&(+($G(REC(130,SRN,122,"I")))'>0) X="Incomplete"
    67         . S:X="" X="Unknown"
    68         I +($G(REC(130,SRN,17,"I")))>0 D  Q X
    69         . S X=$S(+($G(REC(130,SRN,.205,"I")))>0:"(Aborted)",1:"Cancelled")
    70         I +($G(REC(130,SRN,.23,"I")))>0 S X="(Completed)" Q X
    71         I +($G(REC(130,SRN,.22,"I")))>0 S X="Incomplete" Q X
    72         I +($G(REC(130,SRN,10,"I")))>0 S X="Scheduled" Q X
    73         I +($G(REC(130,SRN,36,"I")))>0,+($G(REC(130,SRN,.22,"I")))'>0 S X="Requested" Q X
    74         S X="Unknown"
    75         Q X
    76 SUB     ;
    77         N DA,DR,DIC,DIQ,IENS,FILE,FLD,FLDS,FLDI,FLDA,FLDB,FLDR,FLDRT,SRM,SRC,SRI,SRJ,STXT,SNAM,SCOD,SUB
    78         I +SRSG D
    79         . ;
    80         . ; ^SRF(DO,14,I)                .72  Other Preop Diag    14;0  130.17
    81         . ; $P(^SRF(DO,14,I,0),U)        .01  Other Preop Diag     0;1  Text
    82         . ;
    83         . S DA=IEN,(FILE,DIC)=130,SUB=130.17,DR=.72,DR(SUB)=".01",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
    84         . K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),14,SRI)) Q:+SRI=0  D
    85         . . S DA(SUB)=SRI
    86         . . D EN^DIQ1
    87         . . S REC(130,IEN,130.17,SRI,.01,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,130.17,SRI,.01,"E")))
    88         . ;
    89         . ; ^SRF(DO,15,I)                .74  Other Postop Diags  15;0  130.18
    90         . ; $P(^SRF(DO,15,I,0),U)        .01  Other Postop Diags   0;1  Text
    91         . ;
    92         . S DA=IEN,(FILE,DIC)=130,SUB=130.18,DR=.74,DR(SUB)=".01",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
    93         . K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),15,SRI)) Q:+SRI=0  D
    94         . . S DA(SUB)=SRI
    95         . . D EN^DIQ1
    96         . . S REC(130,IEN,130.18,SRI,.01,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,130.18,SRI,.01,"E")))
    97         ;
    98         ; ^SRF(SRN,"OPMOD",I)           28  Pri Pro CPT Mod  OPMOD;0  130.028
    99         ; $P(^SRF(SRN,"OPMOD",I,0),U)  .01  Pri Pro CPT Mod      0;1  Ptr 81.3
    100         ;
    101         I SRCPTM D
    102         . S DA=IEN,(FILE,DIC)=130,SUB=130.028,DR=28,DR(SUB)=".01",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
    103         . K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),"OPMOD",SRI)) Q:+SRI=0  D
    104         . . S DA(SUB)=SRI
    105         . . D EN^DIQ1
    106         . . S SRM=+($G(REC(130,+($G(IEN)),SUB,+($G(SRI)),.01,"I"))) I SRM>0 D MOD(SRM,FILE,SUB)
    107         ;
    108         ; ^SRF(DO,13,I)                .42  Other Proc          13;0  130.16
    109         ; $P(^SRF(DO,13,I,0),U)        .01  Other Proc           0;1  Text     
    110         ; $P(^SRF(DO,13,I,2),U)          3  Other Proc CPT Code  2;1  Ptr 81
    111         ;
    112         S DA=IEN,(FILE,DIC)=130,SUB=130.16,DR=.42,DR(SUB)=".01;3",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
    113         K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),13,SRI)) Q:+SRI=0  D
    114         . S DA(SUB)=SRI
    115         . D EN^DIQ1 S SRM=+($G(REC(130,IEN,130.16,SRI,3,"I")))
    116         . S:SRM>0 REC(130,IEN,130.16,SRI,3,"N")=$P($$CPT^ICPTCOD(+SRM,$P($G(^SRF(IEN,0)),"^",9)),"^",3)
    117         . N SRT,SRS,SRC S SRM=$G(REC(130,IEN,130.16,SRI,3,"I")) I SRM>0 D
    118         . . S SRC=$$CPT^ICPTCOD(SRM,$P($G(^SRF(IEN,0)),"^",9)),(SRCS,SRS)=$$EN2^SROGMTS0($P(SRC,"^",3))
    119         . . S REC(130,IEN,130.16,SRI,3,"X")=$P(SRC,"^",2)_"^"_$P(SRC,"^",3)
    120         . . S SRC=$P(SRC,"^",2)
    121         . . S SRT=$$EN2^SROGMTS0($G(REC(130,IEN,130.16,SRI,.01,"E")))
    122         . . S:$L(SRS)&(SRS'=SRT) SRT=SRT_" - "_$$EN2^SROGMTS0(SRS)
    123         . . S:$L(SRC)=5 SRT=SRT_" (CPT "_SRC_")",SRCS=SRCS_" (CPT "_SRC_")"
    124         . . S REC(130,IEN,130.16,SRI,3,"N")=SRS
    125         . . S REC(130,IEN,130.16,SRI,.01,"S")=SRT
    126         . . S REC(130,IEN,130.16,SRI,3,"S")=SRCS
    127         . ;
    128         . ;     ^SRF(8,13,2,"MOD",0)       4  Oth Proc CPT Mod   MOD;0  130.164
    129         . ;     ^SRF(8,13,2,"MOD",1,0)   .01  Oth Proc CPT Mod     0;1  Ptr 81.3
    130         . ;
    131         . I SRCPTM D
    132         . . N SRJ S SRJ=0 F  S SRJ=$O(^SRF(+($G(IEN)),13,SRI,"MOD",SRJ)) Q:+SRJ=0  D
    133         . . . N DA,FILE,DIC,SUB,DR,DIQ S DA=IEN,DR=.42,FILE=130,SUB=130.16,DR(SUB)="4",DA(SUB)=SRI,SUB=130.164,DR(SUB)=".01",DA(SUB)=SRJ,DIC=130,DIQ="REC(130,"_IEN_",130.16,"_SRI_",",DIQ(0)="IE"
    134         . . . D EN^DIQ1
    135         . . . S SRM=+($G(REC(130,IEN,130.16,SRI,130.164,SRJ,.01,"I")))
    136         . . . I SRM>0 N SRMOD1 D
    137         . . . . S SRMOD1=$$MOD^ICPTMOD(+SRM,"I",$P($G(^SRF(IEN,0)),"^",9))
    138         . . . . S SRC=$P(SRMOD1,"^",2)
    139         . . . . S SRS=$P(SRMOD1,"^",3)
    140         . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"MID")=SRC
    141         . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"MOD")=SRS
    142         . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"X")=SRC_"^"_SRS
    143         . . . . S SRT=$$EN2^SROGMTS0(SRS) S:$L(SRC) SRT=SRT_" (CPT Mod "_SRC_")"
    144         . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"S")=SRT
    145         . . . K REC(130,IEN,130.16,SRI,130)
    146         Q
    147 SG(X)   ; Surgical (Operative) Record
    148         S X=$$GET1^DIQ(130,+($G(X)),118,"I") S X=$S(X["Y":0,1:1) Q X
    149 CPT(SRM,SRDOO,SRFIL,SRFLD)      ;Set CPT code into REC array
    150         S SRC=$$CPT^ICPTCOD(SRM,SRDOO),(SRCS,SRS)=$$EN2^SROGMTS0($P(SRC,"^",3))
    151         S REC(SRFIL,IEN,SRFLD,"X")=$P(SRC,"^",2)_"^"_$P(SRC,"^",3)
    152         S SRC=$P(SRC,"^",2),SRT=$$EN2^SROGMTS0($G(REC(130,IEN,26,"E")))
    153         S:$L(SRS)&(SRS'=SRT) SRT=SRT_" - "_SRS
    154         S:$L(SRC)=5 SRT=SRT_" (CPT "_SRC_")",SRCS=SRCS_" (CPT "_SRC_")"
    155         S REC(SRFIL,IEN,SRFLD,"N")=SRS
    156         S:SRFIL=130 REC(130,IEN,26,"S")=SRT
    157         S REC(SRFIL,IEN,SRFLD,"S")=SRT
    158         S REC(SRFIL,IEN,SRFLD,"S")=SRCS
    159         Q
    160 MOD(SRM,SRFIL,SUB)      ;Set CPT Modifier into REC array
    161         S SRMOD=$$MOD^ICPTMOD(+SRM,"I",$P($G(^SRF(IEN,0)),"^",9))
    162         S SRC=$P(SRMOD,"^",2)
    163         S SRS=$P(SRMOD,"^",3)
    164         S REC(SRFIL,IEN,SUB,SRI,.01,"MID")=SRC
    165         S REC(SRFIL,IEN,SUB,SRI,.01,"MOD")=SRS
    166         S SRT=$$EN2^SROGMTS0(SRS)
    167         S:$L(SRC) SRT=SRT_" (CPT Mod "_SRC_")"
    168         S REC(SRFIL,IEN,SUB,SRI,.01,"S")=SRT
    169         Q
    170 SPD     ;Obtain Surgery Procedure/Diagnosis Code File entry
    171         S (FILE,DIC)=136,DA=+($G(IEN)),DIQ="REC(",DIQ(0)="IE"
    172         S DR=".01;.02;.03;10"
    173         D EN^DIQ1
    174         Q:'+$G(REC(FILE,IEN,10,"I"))
    175         S SRM=+$G(REC(FILE,IEN,.02,"I"))
    176         Q:'(SRM>0)  D CPT(SRM,$P($G(^SRF(IEN,0)),"^",9),FILE,.02)
    177         S SUB=136.01,DR=1,DR(SUB)=".01",DIQ="REC(136,"_IEN_","
    178         K REC(FILE,IEN,SUB) S SRI=0 F  S SRI=$O(^SRO(FILE,(+$G(IEN)),DR,SRI))  Q:+SRI=0  D
    179         .S DA(SUB)=SRI
    180         .D EN^DIQ1
    181         .S SRM=REC(FILE,IEN,SUB,SRI,.01,"I") I SRM>0 D MOD(SRM,FILE,SUB)
    182         N DA S DA=IEN,SUB=136.011,DR=11,DR(SUB)=".01;1"
    183         K REC(FILE,IEN,SUB) S SRI=0 F  S SRI=$O(^SRO(FILE,(+$G(IEN)),DR,SRI)) Q:+SRI=0  D
    184         . S DA(SUB)=SRI
    185         . D EN^DIQ1
    186         S $P(REC(130,IEN,26,"S"),"-",2)=" "_REC(FILE,IEN,.02,"S")
    187         K REC(130,IEN,130.028) M REC(130,IEN,130.028)=REC(FILE,IEN,136.01)
    188         Q
     1SROGMTS ;BIR/ADM - SURGERY HEALTH SUMMARY ; [ 08/08/01  7:12 AM ]
     2 ;;3.0; Surgery ;**100,127**;24 Jun 93
     3 ;
     4 ;** NOTICE: This routine is part of an implementation of a nationally
     5 ;**         controlled procedure.  Local modifications to this routine
     6 ;**         are prohibited.
     7 ;
     8 ; Reference to $$MOD^ICPTMOD supported by DBIA #1996
     9 ; Reference to $$CPT^ICPTCOD supported by DBIA #1995
     10 ;
     11 Q
     12HS(X) ; return case information for a surical or non-OR case
     13 ; X - case number (IEN) in file 130
     14 K REC N SRCPTM,SRSG,DA,DR,DIC,DIQ,IEN,IENS,FILE,FLD,FLDS,FLDI
     15 N FLDA,FLDB,FLDR,FLDRT,IEN,SRI,SRRT,SRT,SRS,SRC,SRCS
     16 S SRCPTM=1
     17 Q:'$D(^SRF(X,0))  S (IENS,IEN,X)=+($G(X)),U="^"
     18 S:'$D(DT) DT=$$HTFM^XLFDT($H,1) S:'$D(DTIME) DTIME=300
     19 S (FILE,DIC)=130,DA=+($G(X)),DIQ="REC(",DIQ(0)="IE"
     20 S SRSG=$$SG(IEN),REC(130,IEN,118,"E")=$S(SRSG=0:"YES",1:""),REC(130,IEN,118,"I")=$S(SRSG=0:"Y",1:"")
     21 S:+SRSG DR=".09;.04;.14;.164;.205;.22;.23;.31;10;15;17;26;27;32;34;36;39;43;49;50"
     22 S:'SRSG DR=".09;.31;26;27;33;50;55;59;66;121;122;123;124;125"
     23 D EN^DIQ1 S REC(130,IEN,"STATUS")=$$OS(IEN) S:+SRSG REC(130,IEN,"VERIFIED")=$S($G(REC(130,IEN,43,"I"))'="Y":"(Unverified)",1:"")
     24 S SRM=$G(REC(130,IEN,27,"I")) I SRM>0 D
     25 . S SRC=$$CPT^ICPTCOD(SRM,$P($G(^SRF(IEN,0)),"^",9)),(SRCS,SRS)=$$EN2^SROGMTS0($P(SRC,"^",3))
     26 . S REC(130,IEN,27,"X")=$P(SRC,"^",2)_"^"_$P(SRC,"^",3)
     27 . S SRC=$P(SRC,"^",2),SRT=$$EN2^SROGMTS0($G(REC(130,IEN,26,"E")))
     28 . S:$L(SRS)&(SRS'=SRT) SRT=SRT_" - "_SRS
     29 . S:$L(SRC)=5 SRT=SRT_" (CPT "_SRC_")",SRCS=SRCS_" (CPT "_SRC_")"
     30 . S REC(130,IEN,27,"N")=SRS
     31 . S (REC(130,IEN,26,"S"),REC(130,IEN,27,"S"))=SRT
     32 . S REC(130,IEN,27,"S")=SRCS
     33 D DICT^SROGMTS0,SUB
     34 S:$D(REC(130,IEN,32)) REC(130,IEN,32,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,32,"E")))
     35 S:$D(REC(130,IEN,33)) REC(130,IEN,33,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,33,"E")))
     36 S:$D(REC(130,IEN,34)) REC(130,IEN,34,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,34,"E")))
     37 S:$D(REC(130,IEN,.04)) REC(130,IEN,.04,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,.04,"E")))
     38 S:$D(REC(130,IEN,125)) REC(130,IEN,125,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,125,"E")))
     39 I $L($G(REC(130,IEN,33,"S"))) D
     40 . S:'$L($G(REC(130,IEN,66,"E"))) REC(130,IEN,33,"S")=$G(REC(130,IEN,33,"S"))_" (Unknown)"
     41 . S:$L($G(REC(130,IEN,66,"E"))) REC(130,IEN,33,"S")=$G(REC(130,IEN,33,"S"))_" (ICD "_$G(REC(130,IEN,66,"E"))_")"
     42 S:+($G(REC(130,IEN,.09,"I")))>0 REC(130,IEN,.09,"S")=$$ED^SROGMTS0($G(REC(130,IEN,.09,"I")))
     43 S:+($G(REC(130,IEN,15,"I")))>0 REC(130,IEN,15,"S")=$$EDT^SROGMTS0($G(REC(130,IEN,15,"I")))
     44 S:+($G(REC(130,IEN,39,"I"))) REC(130,IEN,39,"S")=$$EDT^SROGMTS0($G(REC(130,IEN,39,"I")))
     45 S:+SRSG REC(130,IEN,"LAB")=$S($O(REC(130,IEN,49,0))>0:"Yes",1:"")
     46 I 'SRSG D:+($O(REC(130,IEN,55,0)))>0 WP(IEN,55,58) D:+($O(REC(130,IEN,59,0)))>0 WP(IEN,59,58)
     47 Q
     48ED(X) ; external date
     49 S X=$G(X) Q:'$L(X) ""
     50 S X=$TR($$FMTE^XLFDT(X,"5DZ"),"@"," ")
     51 Q X
     52EDT(X) ; external date and time
     53 S X=$G(X) Q:'$L(X) ""
     54 S X=$TR($$FMTE^XLFDT(X,"2ZM"),"@"," ")
     55 Q X
     56WP(X,Y,Z) ;
     57 N SRI,SRF,SRW,SRGI,DIWF,DIWL,DIWR
     58 S SRI=+($G(X)) Q:SRI=0!('$D(REC(130,SRI)))
     59 S SRF=+($G(Y)) Q:SRF=0!('$D(REC(130,SRI,SRF)))
     60 S SRW=+($G(Z)) Q:SRW'>0!(SRW>79)
     61 Q:+($O(REC(130,SRI,SRF,0)))'>0
     62 K ^UTILITY($J,"W") S DIWF="C"_SRW,DIWL=0,DIWR=0,SRGI=0
     63 F  S SRGI=$O(REC(130,SRI,SRF,SRGI)) Q:+SRGI=0  D
     64 . S X=$G(REC(130,SRI,SRF,SRGI))
     65 . D ^DIWP
     66 S SRGI=0 F  S SRGI=$O(^UTILITY($J,"W",0,SRGI)) Q:+SRGI=0  D
     67 . S REC(130,SRI,SRF,"S",SRGI)=$G(^UTILITY($J,"W",0,SRGI,0))
     68 . S REC(130,SRI,SRF,"S",0)=$G(REC(130,SRI,SRF,"S",0))+1
     69 K ^UTILITY($J,"W")
     70 Q
     71OS(X) ; Obtains status for OR procedures
     72 N SRN S SRN=+($G(X)) S X="" I $G(REC(130,SRN,118,"I"))="Y" D  Q X
     73 . S:+($G(REC(130,SRN,122,"I")))>0 X="(Completed)"
     74 . S:+($G(REC(130,SRN,121,"I")))>0&(+($G(REC(130,SRN,122,"I")))'>0) X="Incomplete"
     75 . S:X="" X="Unknown"
     76 I +($G(REC(130,SRN,17,"I")))>0 D  Q X
     77 . S X=$S(+($G(REC(130,SRN,.205,"I")))>0:"(Aborted)",1:"Cancelled")
     78 I +($G(REC(130,SRN,.23,"I")))>0 S X="(Completed)" Q X
     79 I +($G(REC(130,SRN,.22,"I")))>0 S X="Incomplete" Q X
     80 I +($G(REC(130,SRN,10,"I")))>0 S X="Scheduled" Q X
     81 I +($G(REC(130,SRN,36,"I")))>0,+($G(REC(130,SRN,.22,"I")))'>0 S X="Requested" Q X
     82 S X="Unknown"
     83 Q X
     84SUB ;
     85 N DA,DR,DIC,DIQ,IENS,FILE,FLD,FLDS,FLDI,FLDA,FLDB,FLDR,FLDRT,SRM,SRC,SRI,SRJ,STXT,SNAM,SCOD,SUB
     86 I +SRSG D
     87 . ;
     88 . ; ^SRF(DO,14,I)                .72  Other Preop Diag    14;0  130.17
     89 . ; $P(^SRF(DO,14,I,0),U)        .01  Other Preop Diag     0;1  Text
     90 . ;
     91 . S DA=IEN,(FILE,DIC)=130,SUB=130.17,DR=.72,DR(SUB)=".01",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
     92 . K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),14,SRI)) Q:+SRI=0  D
     93 . . S DA(SUB)=SRI
     94 . . D EN^DIQ1
     95 . . S REC(130,IEN,130.17,SRI,.01,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,130.17,SRI,.01,"E")))
     96 . ;
     97 . ; ^SRF(DO,15,I)                .74  Other Postop Diags  15;0  130.18
     98 . ; $P(^SRF(DO,15,I,0),U)        .01  Other Postop Diags   0;1  Text
     99 . ;
     100 . S DA=IEN,(FILE,DIC)=130,SUB=130.18,DR=.74,DR(SUB)=".01",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
     101 . K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),15,SRI)) Q:+SRI=0  D
     102 . . S DA(SUB)=SRI
     103 . . D EN^DIQ1
     104 . . S REC(130,IEN,130.18,SRI,.01,"S")=$$EN2^SROGMTS0($G(REC(130,IEN,130.18,SRI,.01,"E")))
     105 ;
     106 ; ^SRF(SRN,"OPMOD",I)           28  Pri Pro CPT Mod  OPMOD;0  130.028
     107 ; $P(^SRF(SRN,"OPMOD",I,0),U)  .01  Pri Pro CPT Mod      0;1  Ptr 81.3
     108 ;
     109 I SRCPTM D
     110 . S DA=IEN,(FILE,DIC)=130,SUB=130.028,DR=28,DR(SUB)=".01",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
     111 . K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),"OPMOD",SRI)) Q:+SRI=0  D
     112 . . S DA(SUB)=SRI
     113 . . D EN^DIQ1
     114 . . S SRM=+($G(REC(130,+($G(IEN)),SUB,+($G(SRI)),.01,"I")))
     115 . . I SRM>0 N SRMOD D
     116 . . . S SRMOD=$$MOD^ICPTMOD(+SRM,"I",$P($G(^SRF(IEN,0)),"^",9))
     117 . . . S SRC=$P(SRMOD,"^",2)
     118 . . . S SRS=$P(SRMOD,"^",3)
     119 . . . S REC(130,IEN,SUB,SRI,.01,"MID")=SRC
     120 . . . S REC(130,IEN,SUB,SRI,.01,"MOD")=SRS
     121 . . . S SRT=$$EN2^SROGMTS0(SRS)
     122 . . . S:$L(SRC) SRT=SRT_" (CPT Mod "_SRC_")"
     123 . . . S REC(130,IEN,SUB,SRI,.01,"S")=SRT
     124 ;
     125 ; ^SRF(DO,13,I)                .42  Other Proc          13;0  130.16
     126 ; $P(^SRF(DO,13,I,0),U)        .01  Other Proc           0;1  Text     
     127 ; $P(^SRF(DO,13,I,2),U)          3  Other Proc CPT Code  2;1  Ptr 81
     128 ;
     129 S DA=IEN,(FILE,DIC)=130,SUB=130.16,DR=.42,DR(SUB)=".01;3",DIQ="REC(130,"_IEN_",",DIQ(0)="IE"
     130 K REC(SUB) S SRI=0 F  S SRI=$O(^SRF(+($G(IEN)),13,SRI)) Q:+SRI=0  D
     131 . S DA(SUB)=SRI
     132 . D EN^DIQ1 S SRM=+($G(REC(130,IEN,130.16,SRI,3,"I")))
     133 . S:SRM>0 REC(130,IEN,130.16,SRI,3,"N")=$P($$CPT^ICPTCOD(+SRM,$P($G(^SRF(IEN,0)),"^",9)),"^",3)
     134 . N SRT,SRS,SRC S SRM=$G(REC(130,IEN,130.16,SRI,3,"I")) I SRM>0 D
     135 . . S SRC=$$CPT^ICPTCOD(SRM,$P($G(^SRF(IEN,0)),"^",9)),(SRCS,SRS)=$$EN2^SROGMTS0($P(SRC,"^",3))
     136 . . S REC(130,IEN,130.16,SRI,3,"X")=$P(SRC,"^",2)_"^"_$P(SRC,"^",3)
     137 . . S SRC=$P(SRC,"^",2)
     138 . . S SRT=$$EN2^SROGMTS0($G(REC(130,IEN,130.16,SRI,.01,"E")))
     139 . . S:$L(SRS)&(SRS'=SRT) SRT=SRT_" - "_$$EN2^SROGMTS0(SRS)
     140 . . S:$L(SRC)=5 SRT=SRT_" (CPT "_SRC_")",SRCS=SRCS_" (CPT "_SRC_")"
     141 . . S REC(130,IEN,130.16,SRI,3,"N")=SRS
     142 . . S REC(130,IEN,130.16,SRI,.01,"S")=SRT
     143 . . S REC(130,IEN,130.16,SRI,3,"S")=SRCS
     144 . ;
     145 . ;     ^SRF(8,13,2,"MOD",0)       4  Oth Proc CPT Mod   MOD;0  130.164
     146 . ;     ^SRF(8,13,2,"MOD",1,0)   .01  Oth Proc CPT Mod     0;1  Ptr 81.3
     147 . ;
     148 . I SRCPTM D
     149 . . N SRJ S SRJ=0 F  S SRJ=$O(^SRF(+($G(IEN)),13,SRI,"MOD",SRJ)) Q:+SRJ=0  D
     150 . . . N DA,FILE,DIC,SUB,DR,DIQ S DA=IEN,DR=.42,FILE=130,SUB=130.16,DR(SUB)="4",DA(SUB)=SRI,SUB=130.164,DR(SUB)=".01",DA(SUB)=SRJ,DIC=130,DIQ="REC(130,"_IEN_",130.16,"_SRI_",",DIQ(0)="IE"
     151 . . . D EN^DIQ1
     152 . . . S SRM=+($G(REC(130,IEN,130.16,SRI,130.164,SRJ,.01,"I")))
     153 . . . I SRM>0 N SRMOD1 D
     154 . . . . S SRMOD1=$$MOD^ICPTMOD(+SRM,"I",$P($G(^SRF(IEN,0)),"^",9))
     155 . . . . S SRC=$P(SRMOD1,"^",2)
     156 . . . . S SRS=$P(SRMOD1,"^",3)
     157 . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"MID")=SRC
     158 . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"MOD")=SRS
     159 . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"X")=SRC_"^"_SRS
     160 . . . . S SRT=$$EN2^SROGMTS0(SRS) S:$L(SRC) SRT=SRT_" (CPT Mod "_SRC_")"
     161 . . . . S REC(130,IEN,130.16,SRI,SUB,SRJ,.01,"S")=SRT
     162 . . . K REC(130,IEN,130.16,SRI,130)
     163 Q
     164SG(X) ; Surgical (Operative) Record
     165 S X=$$GET1^DIQ(130,+($G(X)),118,"I") S X=$S(X["Y":0,1:1) Q X
Note: See TracChangeset for help on using the changeset viewer.