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/TEXT_INTEGRATION_UTILITIES-GMRP-TIU/TIURM.m

    r613 r623  
    1 TIURM   ; SLC/JER - MIS Document Review ;9/24/03
    2         ;;1.0;TEXT INTEGRATION UTILITIES;**74,79,58,100,113,216,224**;Jun 20, 1997;Build 7
    3         ;12/7/00 split TIURM into TIURM & TIURM1
    4 MAKELIST(TIUCLASS)      ; Get Search Criteria
    5         N DIRUT,DTOUT,DUOUT,TIUI,STATUS,TIUTYP,TIUSTAT,TIUEDFLT,TIUDCL
    6         N TIUDPRMT,STATWORD,STATIFN,NOWFLAG,TIUK
    7         K DIROUT
    8         D INITRR^TIULRR(0)
    9 DIVISION        ; Select Division(s)
    10         D SELDIV^TIULA
    11         I SELDIV'>0 S VALMQUIT=1 Q
    12         I $D(TIUDI) D
    13         . S TIUK=0 F  S TIUK=$O(TIUDI(TIUK)) Q:'TIUK  D
    14         . . S TIUDI("ENTRIES")=$G(TIUDI("ENTRIES"))_TIUK_";"
    15         E  S TIUDI("ENTRIES")="ALL DIVISIONS"
    16 STATUS  S STATUS=$S($D(TIUQUIK):$$SELSTAT^TIULA(.TIUSTAT,"F","UNSIGNED,UNCOSIGNED"),1:$$SELSTAT^TIULA(.TIUSTAT,"A",$$DFLTSTAT(DUZ)))
    17         ;VMP/ELR changed status ck from <0 TO <1 to account for entering an *  p224
    18         I +STATUS<1 S VALMQUIT=1 Q
    19         S TIUI=0
    20         F  S TIUI=$O(TIUSTAT(TIUI)) Q:'TIUI  D
    21         . S STATIFN=$O(^TIU(8925.6,"B",$$UPPER^TIULS($P(TIUSTAT(TIUI),U,3)),0))
    22         . Q:'STATIFN
    23         . S STATUS("IFNS")=$G(STATUS("IFNS"))_STATIFN_";"
    24         S TIUI=1,STATWORD=$$UPPER^TIULS($P(TIUSTAT(1),U,3))
    25         I +$G(TIUSTAT(4))'>0 F  S TIUI=$O(TIUSTAT(TIUI)) Q:+TIUI'>0  D
    26         . S STATWORD=STATWORD_$S(TIUI=+TIUSTAT(1):" & ",1:", ")_$$UPPER^TIULS($P(TIUSTAT(TIUI),U,3))
    27         I +$G(TIUSTAT(4))>0 S STATWORD=$S($P(TIUSTAT(4),U,4)="ALL":"ALL",1:STATWORD_", OTHER")
    28         S STATUS("WORDS")=STATWORD
    29 DOCTYPE ; Select Document Type(s)
    30         N TIUDCL
    31         ; -- Ask user for docmt types and set ^TMP("TIUTYP",$J):
    32         D SELTYP^TIULA(TIUCLASS,.TIUTYP,"A","LAST","DOC",0,.TIUDCL)
    33         I +$G(DIROUT) S VALMQUIT=1 Q
    34         I +$G(@TIUTYP)'>0,'$D(TIUQUIK) K @TIUTYP G STATUS
    35         D CHECKADD
    36 ERLY    S TIUEDFLT=$S(TIUCLASS=3:"T-2",TIUCLASS=244:"T-30",1:"T-7")
    37         S TIUDPRMT="Entry"
    38         S TIUEDT=$S($D(TIUQUIK):1,1:$$EDATE^TIULA(TIUDPRMT,"",TIUEDFLT))
    39         I +$G(DIROUT) S VALMQUIT=1 Q
    40         I TIUEDT'>0 K @TIUTYP G DOCTYPE
    41 LATE    S TIULDT=$S($D(TIUQUIK):9999999,1:$$LDATE^TIULA(TIUDPRMT))
    42         I +$G(DIROUT) S VALMQUIT=1 Q
    43         I TIULDT'>0 G ERLY
    44         I TIUEDT>TIULDT D SWAP(.TIUEDT,.TIULDT)
    45         I $L(TIULDT,".")=1 D EXPRANGE(.TIUEDT,.TIULDT) ; P74.  Add late date time whether or not late date is same as early date.
    46         ; -- Reset late date to NOW on rebuild:
    47         S NOWFLAG=$S(TIULDT-$$NOW^XLFDT<.0001:1,1:0)
    48         I '$G(TIURBLD) W !,"Searching for the documents."
    49         D BUILD(TIUCLASS,.STATUS,TIUEDT,TIULDT,NOWFLAG,.TIUDI)
    50         ; -- If attaching ID note & changed view,
    51         ;    update video for line to be attached: --
    52         I $G(TIUGLINK) D RESTOREG^TIULM(.TIUGLINK)
    53         K TIUDI,SELDIV
    54         Q
    55 CHECKADD        ; Checks whether Addendum is included in the list of types
    56         N TIUI,HIT,NUMTYPS
    57         S (TIUI,HIT)=0
    58         F  S TIUI=$O(^TMP("TIUTYP",$J,TIUI)) Q:+TIUI'>0!+HIT  I $$UP^XLFSTR(^TMP("TIUTYP",$J,TIUI))["ADDENDUM" S HIT=1
    59         S NUMTYPS=^TMP("TIUTYP",$J)
    60         I +HIT'>0 S ^TMP("TIUTYP",$J,NUMTYPS+1)=+^TMP("TIUTYP",$J,NUMTYPS)+1_U_"81^Addendum^NOT PICKED",^TMP("TIUTYP",$J)=^TMP("TIUTYP",$J)+1
    61         Q
    62 SWAP(TIUX,TIUY) ; Swap any two variables
    63         N TIUTMP S TIUTMP=TIUX,TIUX=TIUY,TIUY=TIUTMP
    64         Q
    65 EXPRANGE(TIUX,TIUY)     ; Expand late date to include time
    66         ;P74 If user entered date/time = T, then numerical date time is FIRST ^ PIECE ONLY of TIUX & TIUY.
    67         I $P(TIUY,U)=DT S TIUY=$$NOW^XLFDT I 1
    68         E  S TIUY=$P(TIUY,U)_"."_235959 ;P74 Add seconds
    69         Q
    70 BUILD(TIUCLASS,STATUS,EARLY,LATE,NOWFLAG,TIUDI) ; Build List
    71         N TIUPREF
    72         S TIUPREF=$$PERSPRF^TIULE(DUZ)
    73         K ^TMP("TIUR",$J),^TMP("TIURIDX",$J),^TMP("TIUI",$J)
    74         ; If user entered NOW at first build, update NOW for rebuild;
    75         ; Save data in ^TMP("TIURIDX",$J,0) for rebuild:
    76         I $G(TIURBLD),$G(NOWFLAG) S LATE=$$NOW^XLFDT
    77         S ^TMP("TIURIDX",$J,0)=+EARLY_U_+LATE_U_$G(STATUS("IFNS"))_U_NOWFLAG
    78         S ^TMP("TIUR",$J,"RTN")="TIURM"
    79         I '$D(TIUPRM0)!'$D(TIUPRM0) D SETPARM^TIULE
    80         S EARLY=+$G(EARLY,0),LATE=+$G(LATE,3333333)
    81         D GATHER^TIURM1(TIUPREF,TIUCLASS,STATUS("IFNS"),EARLY,LATE,.TIUDI)
    82         D PUTLIST^TIURM1(TIUPREF,TIUCLASS,.STATUS,.TIUDI)
    83         K ^TMP("TIUI",$J)
    84         Q
    85 CLEAN   ; Clean up your mess!
    86         K ^TMP("TIUR",$J),^TMP("TIURIDX",$J) D CLEAN^VALM10,KILLRR^TIULRR
    87         K VALMY
    88         K ^TMP("TIUTYP",$J)
    89         Q
    90 URGENCY(TIUDA)  ; What is the urgency of the current document
    91         N TIUY,TIUD0,TIUDSTAT,TIUDURG
    92         S TIUD0=$G(^TIU(8925,+TIUDA,0)),TIUDSTAT=$P(TIUD0,U,5)
    93         S TIUDURG=$P(TIUD0,U,9)
    94         S TIUY=$S(TIUDSTAT<7:$S(TIUDURG="P":1,1:2),1:3)
    95         Q TIUY
    96 DFLTSTAT(USER)  ; Set default STATUS for current user
    97         N TIUMIS,TIUMD,TIUY,TIUDPRM D DOCPRM^TIULC1(244,.TIUDPRM)
    98         S TIUMIS=$$ISA^USRLM(DUZ,"MEDICAL INFORMATION SECTION")
    99         I +TIUMIS,+$P($G(TIUDPRM(0)),U,3) S TIUY="UNVERIFIED" G DFLTX
    100         I $$ISA^USRLM(DUZ,"PROVIDER") S TIUY="COMPLETED" G DFLTX
    101         S TIUY="COMPLETED"
    102 DFLTX   Q TIUY
    103         ;
    104 RBLD    ; Rebuild list after actions 11/30/00
    105         N TIUEXP,TIUR0,TIURIDX0,TIUEDT,TIULDT
    106         N TIURBLD,TIUI,TIUCLASS,TIUDI,TIUSCRN
    107         S TIURBLD=1
    108         D FIXLSTNW^TIULM ;restore video for elements added to end of list
    109         I +$O(^TMP("TIUR",$J,"EXPAND",0)) D
    110         . M TIUEXP=^TMP("TIUR",$J,"EXPAND")
    111         S TIUR0=^TMP("TIUR",$J,0),TIURIDX0=^TMP("TIURIDX",$J,0)
    112         S TIUCLASS=^TMP("TIUR",$J,"CLASS")
    113         S STATUS("WORDS")=$P(TIUR0,U,2)
    114         S STATUS("IFNS")=$P(TIURIDX0,U,3)
    115         S TIUEDT=$P(TIURIDX0,U),TIULDT=$P(TIURIDX0,U,2),NOWFLAG=+$P(TIURIDX0,U,4)
    116         M TIUDI=^TMP("TIUR",$J,"DIV")
    117         ;VMP/ELR ADDED THE FOLLOWING LINE IN PATCH 224
    118         S TIUSCRN="ALL"
    119         D BUILD(TIUCLASS,.STATUS,TIUEDT,TIULDT,NOWFLAG,.TIUDI)
    120         ; Reexpand previously expanded items:
    121         D RELOAD^TIUROR1(.TIUEXP)
    122         D BREATHE^TIUROR1(1)
    123         Q
     1TIURM ; SLC/JER - MIS Document Review ;9/24/03
     2 ;;1.0;TEXT INTEGRATION UTILITIES;**74,79,58,100,113,216**;Jun 20, 1997
     3 ;12/7/00 split TIURM into TIURM & TIURM1
     4MAKELIST(TIUCLASS) ; Get Search Criteria
     5 N DIRUT,DTOUT,DUOUT,TIUI,STATUS,TIUTYP,TIUSTAT,TIUEDFLT,TIUDCL
     6 N TIUDPRMT,STATWORD,STATIFN,NOWFLAG,TIUK
     7 K DIROUT
     8 D INITRR^TIULRR(0)
     9DIVISION ; Select Division(s)
     10 D SELDIV^TIULA
     11 I SELDIV'>0 S VALMQUIT=1 Q
     12 I $D(TIUDI) D
     13 . S TIUK=0 F  S TIUK=$O(TIUDI(TIUK)) Q:'TIUK  D
     14 . . S TIUDI("ENTRIES")=$G(TIUDI("ENTRIES"))_TIUK_";"
     15 E  S TIUDI("ENTRIES")="ALL DIVISIONS"
     16STATUS S STATUS=$S($D(TIUQUIK):$$SELSTAT^TIULA(.TIUSTAT,"F","UNSIGNED,UNCOSIGNED"),1:$$SELSTAT^TIULA(.TIUSTAT,"A",$$DFLTSTAT(DUZ)))
     17 I +STATUS<0 S VALMQUIT=1 Q
     18 S TIUI=0
     19 F  S TIUI=$O(TIUSTAT(TIUI)) Q:'TIUI  D
     20 . S STATIFN=$O(^TIU(8925.6,"B",$$UPPER^TIULS($P(TIUSTAT(TIUI),U,3)),0))
     21 . Q:'STATIFN
     22 . S STATUS("IFNS")=$G(STATUS("IFNS"))_STATIFN_";"
     23 S TIUI=1,STATWORD=$$UPPER^TIULS($P(TIUSTAT(1),U,3))
     24 I +$G(TIUSTAT(4))'>0 F  S TIUI=$O(TIUSTAT(TIUI)) Q:+TIUI'>0  D
     25 . S STATWORD=STATWORD_$S(TIUI=+TIUSTAT(1):" & ",1:", ")_$$UPPER^TIULS($P(TIUSTAT(TIUI),U,3))
     26 I +$G(TIUSTAT(4))>0 S STATWORD=$S($P(TIUSTAT(4),U,4)="ALL":"ALL",1:STATWORD_", OTHER")
     27 S STATUS("WORDS")=STATWORD
     28DOCTYPE ; Select Document Type(s)
     29 N TIUDCL
     30 ; -- Ask user for docmt types and set ^TMP("TIUTYP",$J):
     31 D SELTYP^TIULA(TIUCLASS,.TIUTYP,"A","LAST","DOC",0,.TIUDCL)
     32 I +$G(DIROUT) S VALMQUIT=1 Q
     33 I +$G(@TIUTYP)'>0,'$D(TIUQUIK) K @TIUTYP G STATUS
     34 D CHECKADD
     35ERLY S TIUEDFLT=$S(TIUCLASS=3:"T-2",TIUCLASS=244:"T-30",1:"T-7")
     36 S TIUDPRMT="Entry"
     37 S TIUEDT=$S($D(TIUQUIK):1,1:$$EDATE^TIULA(TIUDPRMT,"",TIUEDFLT))
     38 I +$G(DIROUT) S VALMQUIT=1 Q
     39 I TIUEDT'>0 K @TIUTYP G DOCTYPE
     40LATE S TIULDT=$S($D(TIUQUIK):9999999,1:$$LDATE^TIULA(TIUDPRMT))
     41 I +$G(DIROUT) S VALMQUIT=1 Q
     42 I TIULDT'>0 G ERLY
     43 I TIUEDT>TIULDT D SWAP(.TIUEDT,.TIULDT)
     44 I $L(TIULDT,".")=1 D EXPRANGE(.TIUEDT,.TIULDT) ; P74.  Add late date time whether or not late date is same as early date.
     45 ; -- Reset late date to NOW on rebuild:
     46 S NOWFLAG=$S(TIULDT-$$NOW^XLFDT<.0001:1,1:0)
     47 I '$G(TIURBLD) W !,"Searching for the documents."
     48 D BUILD(TIUCLASS,.STATUS,TIUEDT,TIULDT,NOWFLAG,.TIUDI)
     49 ; -- If attaching ID note & changed view,
     50 ;    update video for line to be attached: --
     51 I $G(TIUGLINK) D RESTOREG^TIULM(.TIUGLINK)
     52 K TIUDI,SELDIV
     53 Q
     54CHECKADD ; Checks whether Addendum is included in the list of types
     55 N TIUI,HIT,NUMTYPS
     56 S (TIUI,HIT)=0
     57 F  S TIUI=$O(^TMP("TIUTYP",$J,TIUI)) Q:+TIUI'>0!+HIT  I $$UP^XLFSTR(^TMP("TIUTYP",$J,TIUI))["ADDENDUM" S HIT=1
     58 S NUMTYPS=^TMP("TIUTYP",$J)
     59 I +HIT'>0 S ^TMP("TIUTYP",$J,NUMTYPS+1)=+^TMP("TIUTYP",$J,NUMTYPS)+1_U_"81^Addendum^NOT PICKED",^TMP("TIUTYP",$J)=^TMP("TIUTYP",$J)+1
     60 Q
     61SWAP(TIUX,TIUY) ; Swap any two variables
     62 N TIUTMP S TIUTMP=TIUX,TIUX=TIUY,TIUY=TIUTMP
     63 Q
     64EXPRANGE(TIUX,TIUY) ; Expand late date to include time
     65 ;P74 If user entered date/time = T, then numerical date time is FIRST ^ PIECE ONLY of TIUX & TIUY.
     66 I $P(TIUY,U)=DT S TIUY=$$NOW^XLFDT I 1
     67 E  S TIUY=$P(TIUY,U)_"."_235959 ;P74 Add seconds
     68 Q
     69BUILD(TIUCLASS,STATUS,EARLY,LATE,NOWFLAG,TIUDI) ; Build List
     70 N TIUPREF
     71 S TIUPREF=$$PERSPRF^TIULE(DUZ)
     72 K ^TMP("TIUR",$J),^TMP("TIURIDX",$J),^TMP("TIUI",$J)
     73 ; If user entered NOW at first build, update NOW for rebuild;
     74 ; Save data in ^TMP("TIURIDX",$J,0) for rebuild:
     75 I $G(TIURBLD),$G(NOWFLAG) S LATE=$$NOW^XLFDT
     76 S ^TMP("TIURIDX",$J,0)=+EARLY_U_+LATE_U_$G(STATUS("IFNS"))_U_NOWFLAG
     77 S ^TMP("TIUR",$J,"RTN")="TIURM"
     78 I '$D(TIUPRM0)!'$D(TIUPRM0) D SETPARM^TIULE
     79 S EARLY=+$G(EARLY,0),LATE=+$G(LATE,3333333)
     80 D GATHER^TIURM1(TIUPREF,TIUCLASS,STATUS("IFNS"),EARLY,LATE,.TIUDI)
     81 D PUTLIST^TIURM1(TIUPREF,TIUCLASS,.STATUS,.TIUDI)
     82 K ^TMP("TIUI",$J)
     83 Q
     84CLEAN ; Clean up your mess!
     85 K ^TMP("TIUR",$J),^TMP("TIURIDX",$J) D CLEAN^VALM10,KILLRR^TIULRR
     86 K VALMY
     87 K ^TMP("TIUTYP",$J)
     88 Q
     89URGENCY(TIUDA) ; What is the urgency of the current document
     90 N TIUY,TIUD0,TIUDSTAT,TIUDURG
     91 S TIUD0=$G(^TIU(8925,+TIUDA,0)),TIUDSTAT=$P(TIUD0,U,5)
     92 S TIUDURG=$P(TIUD0,U,9)
     93 S TIUY=$S(TIUDSTAT<7:$S(TIUDURG="P":1,1:2),1:3)
     94 Q TIUY
     95DFLTSTAT(USER) ; Set default STATUS for current user
     96 N TIUMIS,TIUMD,TIUY,TIUDPRM D DOCPRM^TIULC1(244,.TIUDPRM)
     97 S TIUMIS=$$ISA^USRLM(DUZ,"MEDICAL INFORMATION SECTION")
     98 I +TIUMIS,+$P($G(TIUDPRM(0)),U,3) S TIUY="UNVERIFIED" G DFLTX
     99 I $$ISA^USRLM(DUZ,"PROVIDER") S TIUY="COMPLETED" G DFLTX
     100 S TIUY="COMPLETED"
     101DFLTX Q TIUY
     102 ;
     103RBLD ; Rebuild list after actions 11/30/00
     104 N TIUEXP,TIUR0,TIURIDX0,TIUEDT,TIULDT
     105 N TIURBLD,TIUI,TIUCLASS,TIUDI
     106 S TIURBLD=1
     107 D FIXLSTNW^TIULM ;restore video for elements added to end of list
     108 I +$O(^TMP("TIUR",$J,"EXPAND",0)) D
     109 . M TIUEXP=^TMP("TIUR",$J,"EXPAND")
     110 S TIUR0=^TMP("TIUR",$J,0),TIURIDX0=^TMP("TIURIDX",$J,0)
     111 S TIUCLASS=^TMP("TIUR",$J,"CLASS")
     112 S STATUS("WORDS")=$P(TIUR0,U,2)
     113 S STATUS("IFNS")=$P(TIURIDX0,U,3)
     114 S TIUEDT=$P(TIURIDX0,U),TIULDT=$P(TIURIDX0,U,2),NOWFLAG=+$P(TIURIDX0,U,4)
     115 M TIUDI=^TMP("TIUR",$J,"DIV")
     116 D BUILD(TIUCLASS,.STATUS,TIUEDT,TIULDT,NOWFLAG,.TIUDI)
     117 ; Reexpand previously expanded items:
     118 D RELOAD^TIUROR1(.TIUEXP)
     119 D BREATHE^TIUROR1(1)
     120 Q
Note: See TracChangeset for help on using the changeset viewer.