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/OUTPATIENT_PHARMACY-PSO-APSP-HUIP/PSOORFI5.m

    r613 r623  
    1 PSOORFI5        ;BIR/SJA-finish cprs orders ;11/06/06 10:49am
    2         ;;7.0;OUTPATIENT PHARMACY;**225**;DEC 1997;Build 29
    3         ;External references UL^PSSLOCK supported by DBIA 2789
    4         ;External reference to ^DPT supported by DBIA 10035
    5         ;
    6 FLG     W ! K MEDP,MEDA,POERR("DFLG"),DIR D KQ S PSOSORT="FLAGGED^FLAGGED"
    7         S LG=0,PATA=0 F  S LG=$O(^PS(52.41,"AD",LG)) Q:'LG!($G(POERR("QFLG")))  F PSOD=0:0 S PSOD=$O(^PS(52.41,"AD",LG,PSOPINST,PSOD)) Q:'PSOD!($G(POERR("QFLG")))  D
    8         .Q:'$D(^PS(52.41,PSOD,0))!('$P($G(^PS(52.41,PSOD,0)),"^",23))
    9         .Q:$G(PAT($P(^PS(52.41,PSOD,0),"^",2)))=$P(^PS(52.41,PSOD,0),"^",2)  S PAT=$P(^PS(52.41,PSOD,0),"^",2)
    10         .I PAT'=PATA,$O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
    11         .D LK I $G(POERR("QFLG")) K POERR("QFLG") S PSOLK=1,PAT(PAT)=PAT Q
    12         .I $$CHK^PSODPT(PAT_"^"_$P($G(^DPT(PAT,0)),"^"),1,1)<0 S PSOLK=1,PAT(PAT)=PAT S X=PAT D ULP K PSOQFLG,PSOQQ Q
    13         .S (PSODFN,Y)=PAT_"^"_$P($G(^DPT(PAT,0)),"^"),PATA=PAT
    14         .D:'$G(MEDA) PROFILE^PSOORFI2 S Y=PSODFN I $G(MEDP) D SPL D OERR^PSORX1 S PSOFIN=1 D QU S X=PSOPTLOK D KLLP,ULP,KLL Q
    15         .D SDFN D POST^PSOORFI1 I $G(PSOQFLG)!($G(PSOQUIT)) S:$G(PSOQUIT) POERR("QFLG")=1 S:$G(PSOQFLG) PAT(PAT)=PAT S X=PAT D ULP K PSOQFLG Q
    16         .S PAT(PAT)=PAT
    17         .F ORD=0:0 S ORD=$O(^PS(52.41,"AOR",PAT,PSOPINST,ORD)) Q:'ORD!($G(POERR("QFLG")))!($G(PSOQQ))  D
    18         ..I $P($G(^PS(52.41,ORD,0)),"^",23) D PP,LK1,ORD^PSOORFIN
    19         .S X=PAT D ULP K PSOQQ
    20         I $O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
    21         I $G(PSOQUIT) K PSOQUIT D EX G ^PSOORFIN
    22         G EX
    23         ;
    24 PRI     ; Called from PSOORFIN due to it's routine size.
    25         K DIR S PSOSORT="PRIORITY"
    26         S DIR("A")="Select Priority",DIR(0)="SBM^S:STAT;E:EMERGENCY;R:ROUTINE",DIR("B")="ROUTINE"
    27         D ^DIR G:$D(DIRUT) EX S PSOSORT=PSOSORT_"^"_Y,PSRT=Y
    28         S LG=0,PATA=0 F  S LG=$O(^PS(52.41,"AD",LG)) Q:'LG!($G(POERR("QFLG")))  F PSOD=0:0 S PSOD=$O(^PS(52.41,"AD",LG,PSOPINST,PSOD)) Q:'PSOD!($G(POERR("QFLG")))  D
    29         .Q:$P($G(^PS(52.41,PSOD,0)),"^",23)
    30         .Q:$G(PAT($P(^PS(52.41,PSOD,0),"^",2)))=$P(^PS(52.41,PSOD,0),"^",2)  S PAT=$P(^PS(52.41,PSOD,0),"^",2)
    31         .I PAT'=PATA,$O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
    32         .I '$O(^PS(52.41,"AP",PAT,PSRT,0)) S PSOLK=1,PAT(PAT)=PAT Q
    33         .D PRI^PSOORFI2 I $G(PSZFIN) S PSOLK=1,PAT(PAT)=PAT Q
    34         .D LK I $G(POERR("QFLG")) K POERR("QFLG") S PSOLK=1,PAT(PAT)=PAT Q
    35         .I $$CHK^PSODPT(PAT_"^"_$P($G(^DPT(PAT,0)),"^"),1,1)<0 S PSOLK=1,PAT(PAT)=PAT S X=PAT D ULP Q
    36         .S (PSODFN,Y)=PAT_"^"_$P($G(^DPT(PAT,0)),"^"),PATA=PAT
    37         .D:'$G(MEDA) PROFILE^PSOORFI2 S Y=PSODFN I $G(MEDP) D SPL D OERR^PSORX1 S PSOFIN=1 D QU S X=PSOPTLOK D KLLP,ULP,KLL Q
    38         .D SDFN D POST^PSOORFI1 I $G(PSOQFLG)!($G(PSOQUIT)) S:$G(PSOQUIT) POERR("QFLG")=1 S:$G(PSOQFLG) PAT(PAT)=PAT S X=PAT D ULP K PSOQFLG Q
    39         .D PP S ORD=0 D @PSRT S PAT(PAT)=PAT
    40         .S X=PAT D ULP
    41         I $O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
    42         I $G(PSOQUIT) K PSOQUIT D EX G ^PSOORFIN
    43 EX      D EX^PSOORFI1
    44         Q
    45 LK      D LOCK^PSOORFI1
    46         Q
    47 LK1     D LOCK1^PSOORFI1 Q
    48 QU      I $G(PSOQUIT) S POERR("QFLG")=1 K PSOQUIT
    49         S:$G(PSOQFLG) PAT(PAT)=PAT
    50         Q
    51 ULP     K PSORX("MAIL/WINDOW"),PSORX("METHOD OF PICK-UP")
    52         D CLEAN^PSOVER1
    53         I '$G(X) Q
    54         D UL^PSSLOCK(X) Q
    55 KLL     K PSOPTLOK
    56         Q
    57 KLLP    K PSONOLCK
    58         Q
    59 SPL     D SPL^PSOORFI4
    60         Q
    61 SDFN    S PSODFN=+$G(PSODFN)
    62         Q
    63 PP      D PP^PSOORFI4
    64         Q
    65 KQ      K PSOQUIT,POERR("QFLG")
    66         Q
    67         ;
    68 LMDISP(ORD)     ; Backdoor ListManager Display of Flag/Unflag Informaiton
    69         N FLAG
    70         K FLAGLINE S ORD=+$G(ORD) I 'ORD Q
    71         ;
    72         I '$G(^PS(52.41,ORD,"FLG")) Q
    73         ; S X=IORVON_"Flagged"_IORVOFF
    74         D GETS^DIQ(52.41,ORD,"33;34;35;36;37;38","IE","FLAG")
    75         S L1="Flagged by "_$E(FLAG(52.41,ORD_",",34,"E"),1,30)_" on "_$$FMTE^XLFDT(FLAG(52.41,ORD_",",33,"I"),2)_": "
    76         S LEN=80-$L(L1),L1=L1_$E(FLAG(52.41,ORD_",",35,"E"),1,LEN),L2=$E(FLAG(52.41,ORD_",",35,"E"),LEN+1,999)
    77         S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L1,FLAGLINE(IEN)=7
    78         I L2'="" S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L2
    79         I FLAG(52.41,ORD_",",36,"I")'="" D
    80         . S L1="Unflagged by "_$E(FLAG(52.41,ORD_",",37,"E"),1,30)_" on "_$$FMTE^XLFDT(FLAG(52.41,ORD_",",36,"I"),2)_": "
    81         . S LEN=80-$L(L1),L1=L1_$E(FLAG(52.41,ORD_",",38,"E"),1,LEN),L2=$E(FLAG(52.41,ORD_",",38,"E"),LEN+1,999)
    82         . S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L1,FLAGLINE(IEN)=9
    83         . I L2'="" S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L2
    84         S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" "
    85         Q
     1PSOORFI5 ;VOE/mpa -finish cprs orders ; 1/15/07 5:40pm
     2 ;;7.0;OUTPATIENT PHARMACY;**208**;DEC 2006;Build 39
     3 ; Copyright (C) 2007 WorldVistA
     4 ;
     5 ; This program is free software; you can redistribute it and/or modify
     6 ; it under the terms of the GNU General Public License as published by
     7 ; the Free Software Foundation; either version 2 of the License, or
     8 ; (at your option) any later version.
     9 ;
     10 ; This program is distributed in the hope that it will be useful,
     11 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
     12 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13 ; GNU General Public License for more details.
     14 ;
     15 ; You should have received a copy of the GNU General Public License
     16 ; along with this program; if not, write to the Free Software
     17 ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
     18 ;'Modified' MAS Patient Look-up Check Cross-References June 1987
     19 ;Split from PSOORFIN
     20SUCC ;
     21 D UL1^PSOORFI3,FULL^VALM1
     22 D:$P($G(^PS(52.41,+$G(ORD),0)),"^",3)'="NW"&($P($G(^(0)),"^",3)'="RNW")&($P($G(^(0)),"^",3)'="HD")&($P($G(^(0)),"^",3)'="RF")
     23 .K PSOSD("PENDING",$S('$G(OID):$P(^PS(50.7,$P(OR0,"^",8),0),"^")_" "_$P(^PS(50.606,$P(^PS(50.7,$P(OR0,"^",8),0),"^",2),0),"^"),1:$P(^PSDRUG($P(OR0,"^",9),0),"^")))
     24 S:$G(POERR("DFLG")) POERR("QFLG")=1 K POERR("DFLG"),PSONEW,ACP,OR0,DRET,SIG,OID,OI,PSORX("SC"),PSORX("CLINIC"),PSODRUG
     25 Q
     26LBL ;Begin DAOU
     27 S PSOFROM="NEW" D ^PSORXL
     28 K PSORX("PSOL"),PPL,RXRS
     29 ;End  5/4/2005
     30 Q
     31CHK ;
     32 D:'$D(PSOPAR) ^PSOLSET I '$D(PSOPAR) W !,$C(7),"Outpatient Division MUST be selected!",! G EX^PSOORFIN
     33 D INST1^PSOORFI2
     34 S PSZCNT=0 F PSZZI=0:0 S PSZZI=$O(^PS(59,PSZZI)) Q:'PSZZI  S PSZCNT=PSZCNT+1
     35 S TC=0 F TO=0:0 S TO=$O(^PS(52.41,"AOR",TO)) Q:'TO  F TZ=0:0 S TZ=$O(^PS(52.41,"AOR",TO,TZ)) Q:'TZ  F PSTZ=0:0 S PSTZ=$O(^PS(52.41,"AOR",TO,TZ,PSTZ)) Q:'PSTZ  S TC=TC+1
     36 W !!?10,$C(7),"Orders to be completed"_$S(PSZCNT=1:": ",1:" for all divisions: ")_TC,! Q:'TC
     37 D SUMM^PSOORNE1 K PSZZI,PSZCNT,PSTZ
     38 Q
Note: See TracChangeset for help on using the changeset viewer.