Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RMPFET7

RMPFET7.m

Go to the documentation of this file.
  1. RMPFET7 ;DDC/KAW-SPECIAL EDIT SUB-ROUTINES [ 06/16/95 3:06 PM ]
  1. ;;2.0;REMOTE ORDER/ENTRY SYSTEM;**17**;06/06/01
  1. ISSUE ;; input: RMPFX,RMPFTYP,RMPFHAT,DFN
  1. ;;output: None
  1. S NB=12 D AUTH^RMPFET71 G END:$D(RMPFOUT) D PAT^RMPFUTL
  1. START W @IOF,!?36,"EXISTING ORDER"
  1. W !,"Patient: ",RMPFNAM,?64,"SSN: ",RMPFSSN
  1. W ! F I=1:1:80 W "-"
  1. D ^RMPFDT2 K RMPF S (X,CK)=0 F S X=$O(RMPFO(X)) Q:'X D
  1. .Q:'$D(^RMPF(791810,RMPFX,101,X,0)) S S0=^(0),SN=$P(S0,U,5)
  1. .I SN'="",$D(SN(SN)) W $C(7),!!,"*** DUPLICATE SERIAL NUMBERS IN ORDER ***" Q
  1. .I SN'="" S SN(SN)=""
  1. .Q:$P(S0,U,15)="C" S Y=$P(S0,U,18)
  1. .I Y,$D(^RMPF(791810.2,Y,0)) S Y=$P(^(0),U,2) I Y'="","EDS"[Y S CK=CK+1,RMPF(CK)=X
  1. K SN
  1. I CK=0 W !!,"*** NO LINE ITEMS TO ISSUE ***",!!,"Enter <RETURN> to continue." D READ G END
  1. A1 W !!,"Enter <I>ssue or <RETURN> to exit. "
  1. D READ G END:$D(RMPFOUT)
  1. A11 I $D(RMPFQUT) W !!,"Enter an <I> to issue line item(s) or <RETURN> to exit." G A1
  1. G END:Y="" S Y=$E(Y,1) G END:"Ii"'[Y
  1. I CK=1 S PT=1,RMPFY=RMPF(1) D CAN G END:$D(RMPFOUT) G START
  1. ASK W !!,"Issue ",CK," line items? YES// " D READ G END:$D(RMPFOUT)
  1. ASK1 I $D(RMPFQUT) W !!,"Enter a <Y> or <RETURN> to issue ",CK," line items",!?5,"an <N> to exit." G ASK
  1. S:Y="" Y="Y" S Y=$E(Y,1)
  1. I "YyNn"'[Y S RMPFQUT="" G ASK1
  1. G SEL:"Nn"[Y S PT=0
  1. LOOP S PT=$O(RMPF(PT)) G LOOPE:'PT
  1. S RMPFY=RMPF(PT) D CAN G LOOPE:$D(RMPFOUT),LOOP
  1. LOOPE G START
  1. SEL W !!,"Select number of item to issue: "
  1. D READ G END:$D(RMPFOUT)
  1. SEL1 I $D(RMPFQUT) W !!,"Enter the number to the left of the item you wish to issue",!,"or <RETURN> to continue." G SEL
  1. G END:Y="" I '$D(RMPFMD(Y)) S RMPFQUT="" G SEL1
  1. S (DA,RMPFY)=RMPFMD(Y),PT=Y D CAN G END:$D(RMPFOUT)
  1. G START
  1. CAN ;; input: RMPFX,RMPFY,PT,CK,RMPFMD,RMPFTYP
  1. ;;output: None
  1. I $P(^RMPF(791810,RMPFX,101,RMPFY,0),U,15)="C" W $C(7),!!,"*** THIS LINE ITEM HAS BEEN CANCELED ***" Q
  1. S X=$P(^RMPF(791810,RMPFX,101,RMPFY,0),U,18) Q:'X
  1. Q:'$D(^RMPF(791810.2,X,0)) S RMPFSTO=$P(^(0),U,2)
  1. I "ED"[RMPFSTO D CLEAR^RMPFET61 Q:'$D(RMPFSTO)
  1. I "DES"'[RMPFSTO W $C(7),!!,"*** LINE ITEMS WITH THIS STATUS CANNOT BE ISSUED ***" H 1 K RMPFY Q
  1. I '$P($G(^RMPF(791810,RMPFX,101,RMPFY,90)),U,9) W $C(7),!!,"*** THIS LINE ITEM HAS NOT BEEN CERTIFIED *** " H 1 K RMPFY Q
  1. D ^RMPFET71 Q:$D(RMPFOUT)
  1. EXIT1 K X,RMPFSTO,DIE,DA,DR Q
  1. END K %,%DT,%Y,CK,CX,D,D0,D1,DA,DI,DIC,DIE,DQ,DR,RMPFMD,RMPFO,RMPFDOB,NB
  1. K RMPFNAM,RMPFSSN,PT,SN,Y,RMPFLA,RMPFSTO,S,X,RMPFY,RMPFDOD,RMPF,S0,CM,K Q
  1. COMPON ;;Add/Edit a component
  1. ;; input: RMPFX,RMPFY,RMPFADD (opt.),RMPFRE (opt.)
  1. ;;output: RMPFRE
  1. D ARRAY2^RMPFDT2 S:'$D(RMPFRE) RMPFRE=""
  1. S IT=$P(^RMPF(791810,RMPFX,101,RMPFY,0),U,1) Q:IT=1
  1. S DIC("S")="I $D(^RMPF(791811,IT,101,""B"",Y))"
  1. COM1 ;W !,"SELECT COMPONENT: "
  1. D READ1 G COME:$D(RMPFOUT)
  1. COM11 ;I $D(RMPFQUT) S X="?" G COM12
  1. G COME:Y=""
  1. S X=Y
  1. COM12 I '$D(^RMPF(791810,RMPFX,101,RMPFY,102,0)) S ^RMPF(791810,RMPFX,101,RMPFY,102,0)="^791810.101102P"
  1. ;S DIC=791811.2,DIC(0)="EQM" D ^DIC K DIC G COMPON:Y=-1
  1. S IX=0 F I=1:1 S IX=$O(RMPFC(IX)) Q:'IX I $P(RMPFC(IX),U,1)=+Y D DEL G COMPON
  1. D NEW S X=+Y,DIC="^RMPF(791810,"_RMPFX_",101,"_RMPFY_",102,"
  1. S DA(2)=RMPFX,DA(1)=RMPFY,DIC(0)="LN",DLAYGO=791810
  1. K DD,DO D FILE^DICN I Y=-1 W $C(7),!!,"*** COMPONENT NOT ADDED ***" H 2 G COMPON
  1. S RMPFZ=+Y,SX=^RMPF(791810,RMPFX,101,RMPFY,102,RMPFZ,0)
  1. S $P(SX,U,3)=$S('$D(RMPFADD):"O",1:"A"),$P(SX,U,4)=+Y
  1. G COM2:'$D(RMPFADD) S $P(SX,U,5)=DUZ,$P(SX,U,7)=RMPFRE
  1. S X="NOW",%DT="T" D ^%DT S $P(SX,U,6)=Y
  1. COM2 S ^RMPF(791810,RMPFX,101,RMPFY,102,RMPFZ,0)=SX G COMPON
  1. COME K IT,DIC,X,Y,IX,I,RMPFC,DA,RMPFZ,SX,RMPFADD,%,%DT,DIR
  1. K DISYS,DLAYGO,DIK,M,RMPFQUT Q
  1. DEL S CM=$P(^RMPF(791811.2,+Y,0),U,1)
  1. W !!,"The component you chose (",CM,") has already been added to this aid."
  1. W !!,"Do you wish to delete the ",CM,"? NO// " D READ Q:$D(RMPFOUT)
  1. DEL1 I $D(RMPFQUT) W !!,"Enter a <Y> to delete the component",!?6,"a <N> or <RETURN> to keep the component on order." G DEL
  1. S:Y="" Y="N" S Y=$E(Y,1) I "YyNn"'[Y S RMPFQUT="" G DEL1
  1. Q:"Nn"[Y
  1. S DIK="^RMPF(791810,"_RMPFX_",101,"_RMPFY_",102,",DA=IX,DA(1)=RMPFY,DA(2)=RMPFX
  1. D ^DIK
  1. Q
  1. SECOND Q:'$D(RMPFX) Q:'$D(RMPFY)
  1. Q:'$D(^RMPF(791810,RMPFX,101,RMPFY,0)) S SZ=^(0)
  1. S SU=$P(SZ,U,1) I SU,$D(^RMPF(791811,SU,0)),$P(^(0),U,7) D
  1. .I $D(^RMPF(791810,RMPFX,101,RMPFY,2)) S X=$P(^(2),U,3) I X,$D(^RMPF(791811.3,X,0)) S DIC("B")=$P(^(0),U,1)
  1. .S DIC=791811.3,DIC("A")="SECOND BATTERY TYPE: "
  1. .S DIC(0)="AEQM"
  1. .D ^DIC I Y'=-1 S $P(^RMPF(791810,RMPFX,101,RMPFY,2),U,3)=+Y
  1. .Q
  1. K SU,SZ,X,Y,DIC Q
  1. READ K RMPFOUT,RMPFQUT
  1. R Y:DTIME I '$T W $C(7) R Y:5 G READ:Y="." S:'$T Y=U
  1. I Y?1"^".E S (RMPFOUT,Y)="" Q
  1. S:Y?1"?".E (RMPFQUT,Y)=""
  1. Q
  1. READ1 K DIR,RMPFOUT,RMPFQUT
  1. S DIR(0)="PO^791811.2:EMZ"
  1. S DIR("A")="SELECT COMPONENT"
  1. S:$P($G(^RMPF(791810.1,RMPFTYP,0)),U,2)="C" DIR("S")="I $P(^RMPF(791811.2,Y,0),U,4)=1"
  1. S:$P($G(^RMPF(791810.1,RMPFTYP,0)),U,2)="X" DIR("S")="I $P(^RMPF(791811.2,Y,0),U,5)'=1"
  1. D ^DIR
  1. S:$E(X,1)="^" (RMPFOUT,Y)=""
  1. S:X="" Y=""
  1. Q
  1. NEW N DIC,DA,DR,DO,DD,DQ,D0,DP Q
  1. CHECK ;; input: RMPFTYP
  1. ;;output: DIC("S"),RMPF
  1. K DIC("S") Q:'$D(RMPFTYP) Q:RMPFTYP=15 K RM S K=0
  1. F S K=$O(^RMPF(791810.1,RMPFTYP,103,K)) Q:'K I $D(^(K,0)) S RMPF($E($P(^(0),U,1),1))=""
  1. S DIC("S")="S Z1=$E(X,1) I $D(RMPF(Z1))"
  1. CHECKE Q