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

AMQQTX.m

Go to the documentation of this file.
  1. AMQQTX ; IHS/CMI/THL - MAKES AD HOC TAXONOMY ;
  1. ;;2.0;IHS PCC SUITE;**11**;MAY 14, 2009;Build 58
  1. VAR S AMQQURGN=AMQQURGN+1
  1. S AMQQTTOT=0
  1. S AMQQTAX=AMQQURGN
  1. S AMQQTAXT=$P(^AMQQ(5,AMQQATN,0),U,14)
  1. S AMQQCTXS=0
  1. S AMQQTGBL=$P(AMQQTLOK,"(")
  1. S AMQQHILO="^UTILITY(""AMQQ"",$J,""HILO"")"
  1. I AMQQTLOK["," S AMQQTGBL=$P(AMQQTLOK,",")_")"
  1. K AMQQISYS
  1. I $P(^AMQQ(1,AMQQLINK,0),U,7) S AMQQMULT="",AMQQCTXS=1
  1. K AMQQTXTR
  1. I $D(^AMQQ(1,AMQQLINK,4,1,1)) S AMQQTXTR=^(1)
  1. I '$D(AMQQMULT),$G(AMQQONE)'="" S AMQQTAX=AMQQURGN,AMQQCOMP=";;;"_AMQQTAX_";ALL",^UTILITY("AMQQ TAX",$J,AMQQURGN,"*")="" G EXIT
  1. GET K AMQQSCMP
  1. I AMQQTAXT=4 S %=^AMQQ(1,AMQQLINK,0),%=$P(%,U,6),%=^DD(+%,$P(%,",",2),0),%=";"_$P(%,U,3),AMQQSSET=%
  1. D @("EN"_AMQQTAXT_"^AMQQTXG")
  1. I $D(AMQQQUIT) G EXIT
  1. I $D(AMQQSCMP) D SCMP G EXIT
  1. I '$D(^UTILITY("AMQQ TAX",$J,AMQQURGN)) K AMQQTAX S AMQQURGN=AMQQURGN-1 W !! G EXIT
  1. SAVE I AMQQTTOT<2 S %="" F I=0:1 S %=$O(^UTILITY("AMQQ TAX",$J,AMQQURGN,%)) Q:%="" I I=2 S AMQQTTOT=I Q
  1. I AMQQTTOT>1 D ^AMQQTX0 I $D(AMQQQUIT) G EXIT
  1. S AMQQTAX=AMQQURGN
  1. I $D(AMQQTLFL) K AMQQTLFL G EXIT
  1. S $P(AMQQCOMP,";",4)=AMQQURGN
  1. EXIT I $G(AMQQTAX)="" K AMQQTAX,AMQQTXGR,AMQQCOMP,AMQQB
  1. S X=$G(AMQQATNM)
  1. K AMQQTNAR,AMQQTTX,AMQQTTOT,AMQQTDIC,AMQQTGNO
  1. K AMQQPOV1,AMQQPOV2,AMQQTLOK,AMQQTGNA,AMQQTGNO,AMQQTAXT,AMQQTXTR,DIPGM,^UTILITY("AMQQ RANGE",$J),^UTILITY("AMQQ DELETE",$J),@AMQQHILO,AMQQTGBL,AMQQSCMP,AMQQSSET,AMQQHILO,%,%Y,A,B,I,Z
  1. I $D(AMQQDF) S AMQQQUIT=""
  1. Q
  1. ;
  1. SCMP ; ENTRY POINT FROM AMQQ0
  1. I AMQQSCMP'="NULL",AMQQSCMP'="INVERSE" K ^UTILITY("AMQQ TAX",$J,AMQQURGN) S ^(AMQQURGN,"*")=""
  1. S AMQQCOMP=";;;"_AMQQURGN_";"_AMQQSCMP
  1. S AMQQTAX=AMQQURGN
  1. F %="NULL","INVERSE" I AMQQSCMP=% S ^UTILITY("AMQQ TAX",$J,AMQQURGN,$S(%="NULL":"-",1:"--"))="" Q
  1. Q
  1. ;
  1. WHATG ; ENTRY POINT FROM AMQQTX SUBROUTINES
  1. N DIC,DZ,D,A,B
  1. S DIC="^ATXAX("
  1. S DIC(0)=""
  1. S D="B"
  1. S DIC("S")="I $P(^(0),U,12)=AMQQLINK"
  1. S DZ="??"
  1. D DQ^DICQ
  1. Q
  1. ;
  1. LIST ; ENTRY POINT FROM AMQQTX SUBROUTINES
  1. I $O(^UTILITY("AMQQ TAX",$J,AMQQURGN,""))="" W !!,?($D(AMQQZNM)*5)," You have not made a selection yet...Try again",!! Q
  1. S %="The following have been selected =>"
  1. W !!,%,!
  1. S (%,X)=""
  1. F I=1:1 S %=$O(^UTILITY("AMQQ TAX",$J,AMQQURGN,%)) Q:%="" W ! D:'(I#(IOSL-4)) LIST1 Q:X=U S X=% D
  1. .I $G(AMQQTTX)="" X:$D(AMQQTXTR) AMQQTXTR W ?5,X Q
  1. .I $G(AMQQTTX)]"" X AMQQTTX W ?5,X
  1. S AMQQTTOT=AMQQTTOT+I
  1. W !!
  1. Q
  1. ;
  1. LIST1 W "<>"
  1. R X:DTIME
  1. W $C(13),?5,$C(13)
  1. Q
  1. ;
  1. SET ; ENTRY POINT FROM AMQQTX SUBROUTINES
  1. S Y=1
  1. I $D(AMQQTXEX) W " (DELETED)" K AMQQTXEX,^UTILITY("AMQQ TAX",$J,AMQQURGN,X) Q
  1. S ^UTILITY("AMQQ TAX",$J,AMQQURGN,X)=""
  1. I AMQQTLOK="^PSDRUG(" D DCLASS
  1. I AMQQTLOK="^AUTTREFT(" D REFT
  1. Q
  1. ;
  1. DCLASS ; Handles drug classes
  1. N AMQQCLAS,I
  1. I $D(^PSDRUG(X,"ND")) S AMQQCLAS=$P(^("ND"),U,6) I AMQQCLAS
  1. E Q
  1. I '$D(^UTILITY("AMQQ DRUG CLASS",$J,AMQQURGN,AMQQCLAS))
  1. E Q
  1. W !
  1. S DIR("A")="Do you want meds that are members of the same class as this medication"
  1. S DIR(0)="Y"
  1. D ^DIR
  1. K DIR
  1. W !
  1. I Y=1
  1. E Q
  1. S ^UTILITY("AMQQ DRUG CLASS",$J,AMQQURGN,AMQQCLAS)=""
  1. S I=0
  1. F S I=$O(^PSDRUG("VAC",AMQQCLAS,I)) Q:'I I '$D(^UTILITY("AMQQ TAX",$J,AMQQURGN,I)) S ^(I)=""
  1. Q
  1. ;
  1. NULL ; ENTRY POINT FROM AMQQTX SUBROUTINES
  1. N AMQQNNAM
  1. S AMQQNNAM=$S($E(AMQQCNAM,$L(AMQQCNAM))="S":$E(AMQQCNAM,1,$L(AMQQCNAM)-1),1:AMQQCNAM)
  1. I $D(^UTILITY("AMQQ TAX",$J,AMQQURGN)) G N0
  1. W !,"Do you want me to find all ",AMQQNNAM,"S with no ",AMQQTNAR," entered"
  1. S %=1
  1. D YN^DICN
  1. I $D(DTOUT) S %Y=U
  1. I $E(%Y)=U S AMQQQUIT="" K DTOUT,DUOUT Q
  1. I "Yy"[$E(%Y) S AMQQSCMP="NULL" Q
  1. W !,"Well then..."
  1. N0 I AMQQCTXS W !,"I take it you want me to search for only those ",AMQQNNAM,"S who DO NOT have",!,"any ",AMQQTNAR,"S in this taxonomy" G N1
  1. W !,"I take it you want me to find only those ",AMQQNNAM,"S whose",!,AMQQTNAR," is NOT in this taxonomy"
  1. N1 S %=1
  1. D YN^DICN
  1. I $D(DTOUT) S %Y=U
  1. I $E(%Y)=U S AMQQQUIT="" Q
  1. I %Y="" S %Y="Y"
  1. I "yY"[$E(%Y) S AMQQSCMP="INVERSE"
  1. W !
  1. Q
  1. ;
  1. EN1 ; PROGRAMMER ENTRY POINT FOR TAXONOMY SYSTEM
  1. N %,A,AMQQ,AMQQA,AMQQATN,AMQQB,AMQQCASE,AMQQCLAS,AMQQCNT,AMQQCOMP,AMQQCTXS,AMQQDF,AMQQDFN,AMQQDONE,AMQQECHO,AMQQHEL1,AMQQHELP,AMQQHILO,AMQQI,AMQQLINK,AMQQLKUP,AMQQLMOR,AMQQMULT,AMQQNDB,AMQQNDBC,AMQQNECO,AMQQNEXT,AMQQNNAM,AMQQNTAX
  1. N AMQQONE,AMQQPOV1,AMQQPOV2,AMQQQUIT,AMQQR,AMQQSAVE,AMQQSCMP,AMQQSHNO,AMQQSQSJ,AMQQSSET,AMQQSTP,AMQQSUB,AMQQTAXI,AMQQTAXT,AMQQTDIC,AMQQTGBL,AMQQTGFG,AMQQTGNA,AMQQTGNO,AMQQTJMP,AMQQTLFL,AMQQTLOK,AMQQTNAR,AMQQTTOT,AMQQTTX,AMQQTXEX
  1. I '$D(APCLCRIT) NEW AMQQSQNM
  1. N AMQQTXGR,AMQQTXTR,AMQQTYP,AMQQVAL,AMQQX,AMQQXX,AMQQXXN,AMQQXXTT,AMQQZNM,B,C,D,DA,DIADD,DIC,DIE,DIK,DINUM,DIPGM,DIR,DLAYGO,DR,DTOUT,DUOUT,DZ,I,N,T,Y,Z,ATXFLG,AMQQATNM
  1. S AMQQATN=X
  1. S %=^AMQQ(5,X,0)
  1. S AMQQTTX=$G(^(3))
  1. S AMQQLINK=$P(%,U,5)
  1. S AMQQTNAR=$P(%,U,15)
  1. S AMQQTDIC=U_$P(%,U,16)
  1. S AMQQTLOK=U_$P(%,U,18)
  1. S AMQQATNM=$P(%,U)
  1. S AMQQURGN=+$G(AMQQURGN)
  1. K ^UTILITY("AMQQ TAX",$J,AMQQURGN+1)
  1. I '$G(IOSL) S IOSL=24
  1. D AMQQTX
  1. I +$G(AMQQTAX),'$D(^UTILITY("AMQQ TAX",$J,AMQQTAX)) K AMQQTAX
  1. Q
  1. ;
  1. REFT ;FIND SPECFIC TYPE OF REFUSAL
  1. W !!
  1. N REFT
  1. S REFT=X
  1. N AMQQQUIT,X,Y
  1. F D REFT1 Q:$D(AMQQQUIT)
  1. W !!
  1. Q
  1. REFT1 N GLDA,GL,GLNAM
  1. S GLDA=$P($G(^AUTTREFT(REFT,0)),U,2)
  1. S GL=$G(^DIC(+GLDA,0,"GL"))
  1. S GLNAM=$P($G(^DIC(+GLDA,0)),U)
  1. S GLN=$S($E(GL,$L(GL))="(":$E(GL,1,$L(GL)-1),1:$E(GL,1,$L(GL)-1)_")")
  1. Q:GL=""
  1. N DIC
  1. S DIC=GL
  1. S DIC(0)="AEMQZ"
  1. S DIC("A")="Select "_GLNAM_" refused: "
  1. S DIC("S")="I $D(^AUPNPREF(""AE"",+GLDA,+Y))"
  1. D ^DIC
  1. I Y<1 S AMQQQUIT="" Q
  1. S ^UTILITY("AMQQ TAX",$J,AMQQURGN,REFT,"REFUSAL",+Y)=""
  1. S ^UTILITY("AMQQ TAX",$J,AMQQURGN)="REFUSAL"
  1. Q