[613] | 1 | YTQAPI4 ;ASF/ALB MHQ REMOTE PROCEEDURES CHOICE/CHOICETYPE ; 4/3/07 1:44pm
|
---|
| 2 | ;;5.01;MENTAL HEALTH;**85**;DEC 30,1994;Build 49
|
---|
| 3 | Q
|
---|
| 4 | IDENTAE(YSDATA,YS) ;choiceidentifier add/edit
|
---|
| 5 | ;input:CT as Choicetype IEN
|
---|
| 6 | ; ID a N,0 or 1
|
---|
| 7 | ;Output: added or eddited
|
---|
| 8 | N DA,YSID
|
---|
| 9 | S YSCT=$G(YS("CT"))
|
---|
| 10 | I YSCT'?1N.N S YSDATA(1)="[ERROR]",YSDATA(2)="bad CT" Q ;-->out
|
---|
| 11 | I '$D(^YTT(601.751,"B",YSCT)) S YSDATA(1)="[ERROR]",YSDATA(2)=YSCT_"^not found" Q ;-->out
|
---|
| 12 | S YSID=$G(YS("ID"))
|
---|
| 13 | I (YSID'="1")&(YSID'="0")&(YSID'="N") S YSDATA(1)="[ERROR]",YSDATA(1)="bad id" Q ;--out
|
---|
| 14 | I $D(^YTT(601.89,"B",YSCT)) S DA=$O(^YTT(601.89,"B",YSCT,0)) S $P(^YTT(601.89,DA,0),U,2)=YSID,YSDATA(2)="eddited" Q ;good edit
|
---|
| 15 | L +^YTT(601.89):30
|
---|
| 16 | S DA=$$NEW^YTQLIB(601.89)
|
---|
| 17 | S ^YTT(601.89,DA,0)=YSCT_U_YSID
|
---|
| 18 | S DIK="^YTT(601.89,"
|
---|
| 19 | D IX1^DIK
|
---|
| 20 | L -^YTT(601.89)
|
---|
| 21 | S YSDATA(1)="[DATA]",YSDATA(2)=DA_"^added"
|
---|
| 22 | Q
|
---|
| 23 | TESTADD(YSDATA,YS) ;add new instrument
|
---|
| 24 | ;input:CODE must be unique
|
---|
| 25 | ;Output: new ien^added
|
---|
| 26 | N DA,YSCODE
|
---|
| 27 | S YSCODE=$G(YS("CODE"))
|
---|
| 28 | I ($L(YSCODE)>50)!($L(YSCODE)<3) S YSDATA(1)="[ERROR]",YSDATA(2)="bad ins name" Q ;-->out
|
---|
| 29 | I $D(^YTT(601.71,"B",YSCODE)) S DA=$O(^YTT(601.75,"B",YSCODE,0)),YSDATA(1)="[ERROR]",YSDATA(2)=DA_"^duplicate" Q ;-->out
|
---|
| 30 | L +^YTT(601.71):30
|
---|
| 31 | S DA=$$NEW^YTQLIB(601.71)
|
---|
| 32 | S ^YTT(601.71,DA,0)=YSCODE
|
---|
| 33 | S DIK="^YTT(601.71,"
|
---|
| 34 | D IX1^DIK
|
---|
| 35 | L -^YTT(601.71)
|
---|
| 36 | S YSDATA(1)="[DATA]",YSDATA(2)=DA_"^added"
|
---|
| 37 | Q
|
---|
| 38 | ADDCH(YSDATA,YS) ; check, report, force add a choice
|
---|
| 39 | N YSFORCE,YSTXT,YSIEN,DIK,DA,X,YSLEG
|
---|
| 40 | S YSFORCE=$G(YS("FORCE"),"N")
|
---|
| 41 | S YSTXT=$G(YS("TEXT"))
|
---|
| 42 | S YSLEG=$G(YS("LEGACY"))
|
---|
| 43 | I YSTXT="" S YSDATA(1)="[ERROR]",YSDATA(2)="no choice text" Q ;-->out
|
---|
| 44 | I $D(^YTT(601.75,"C",YSTXT)) S YSIEN=$O(^YTT(601.75,"C",YSTXT,0)) S YSDATA(1)="[DATA]",YSDATA(2)=YSIEN_"^existed",YSDATA(3)=YSTXT Q ;--> out
|
---|
| 45 | S X=YSTXT X ^DD("FUNC",13,1)
|
---|
| 46 | I (YSFORCE'?1"Y".E)&($D(^YTT(601.75,"AU",X))) S YSIEN=$O(^YTT(601.75,"AU",X,0)),YSDATA(1)="[DATA]",YSDATA(2)=YSIEN_"^question force",YSDATA(3)=^YTT(601.75,YSIEN,1) Q ;-->out
|
---|
| 47 | S DA=$$NEW^YTQLIB(601.75)
|
---|
| 48 | L +^YTT(601.75,DA):30
|
---|
| 49 | S ^YTT(601.75,DA,0)=DA,^YTT(601.75,DA,1)=YSTXT,$P(^YTT(601.75,DA,0),U,2)=YSLEG
|
---|
| 50 | S DIK="^YTT(601.75," D IX1^DIK
|
---|
| 51 | L -^YTT(601.75,DA)
|
---|
| 52 | S YSDATA(1)="[DATA]",YSDATA(2)=DA_"^added",YSDATA(3)=YSTXT
|
---|
| 53 | Q
|
---|
| 54 | CTADD(YSDATA,YS) ;add new choicetype
|
---|
| 55 | ;input: list of choice iens in numbered sequence ex YS(1)=3,YS(2)=22
|
---|
| 56 | ;output NEW choice type number
|
---|
| 57 | N YSI,YSERR,DA,YSFOUND,YSCTDA,YSCTX,I
|
---|
| 58 | S YSERR=0 F YSI=1:1 Q:'$D(YS(YSI)) S:'$D(^YTT(601.75,YS(YSI),0)) YSERR=YSI_";"_$G(YS(YSI))
|
---|
| 59 | I YSI=1 S YSDATA(1)="[ERROR]",YSDATA(2)="no choice list" Q ;-->out
|
---|
| 60 | I YSERR'=0 S YSDATA(1)="[ERROR]",YSDATA(2)="bad choice in list/"_YSERR Q ;-->out
|
---|
| 61 | S YSDATA(1)="[DATA]",YSFOUND=0
|
---|
| 62 | L +^YTT(601.751):30
|
---|
| 63 | S YSCT=$O(^YTT(601.751,"B",""),-1)
|
---|
| 64 | S YSCT=YSCT+1
|
---|
| 65 | F YSI=1:1 Q:'$D(YS(YSI)) D
|
---|
| 66 | . S DA=$$NEW^YTQLIB(601.751)
|
---|
| 67 | . S ^YTT(601.751,DA,0)=YSCT_U_YSI_U_YS(YSI)
|
---|
| 68 | . S DIK="^YTT(601.751,"
|
---|
| 69 | . D IX1^DIK
|
---|
| 70 | L -^YTT(601.751)
|
---|
| 71 | S YSDATA(2)=YSCT_"^added"
|
---|
| 72 | Q
|
---|
| 73 | CKEX ;check for existing choiceType
|
---|
| 74 | S YSCTDA=0
|
---|
| 75 | F Q:YSFOUND>0 S YSCTDA=$O(^YTT(601.751,"ACT",YS(1),YSCTDA)) Q:YSCTDA'>0 S YSCTX=$P(^YTT(601.751,YSCTDA,0),U) D
|
---|
| 76 | . S YSFOUND=0 F I=1:1 Q:'$D(YS(I)) S YSFOUND=$S($D(^YTT(601.751,"AC",YSCTX,I,YS(I))):YSFOUND+1,1:-999)
|
---|
| 77 | S:YSFOUND>1 YSFOUND=YSCTX
|
---|
| 78 | Q
|
---|
| 79 | CTDEL(YSDATA,YS) ;delete a choicetype
|
---|
| 80 | ;Input: CHOICETYPE
|
---|
| 81 | ;output: DELETED if sucessful
|
---|
| 82 | ; LIST OF question iens if in use
|
---|
| 83 | N YSCT,DA,DIK,N
|
---|
| 84 | S YSCT=$G(YS("CHOICETYPE"),0)
|
---|
| 85 | I '$D(^YTT(601.751,"B",YSCT)) S YSDATA(1)="[ERROR]",YSDATA(2)="bad ct" Q ;-->out
|
---|
| 86 | I $D(^YTT(601.72,"ACT",YSCT)) D S YSDATA(1)="[ERROR]" Q ;--> out
|
---|
| 87 | . S N=1,YSQ=0 F S YSQ=$O(^YTT(601.72,"ACT",YSCT,YSQ)) Q:YSQ'>0 S N=N+1,YSDATA(N)=YSQ
|
---|
| 88 | S DA=0,DIK="^YTT(601.751,"
|
---|
| 89 | F S DA=$O(^YTT(601.751,"B",YSCT,DA)) Q:DA'>0 D ^DIK
|
---|
| 90 | S YSDATA(1)="[DATA]",YSDATA(2)=YSCT_" deleted"
|
---|
| 91 | Q
|
---|
| 92 | CHFIND(YSDATA,YS) ;find a choice in choicetypes
|
---|
| 93 | ;input CHOICE AS ien of 601.75
|
---|
| 94 | ;output: list of CHOCIETYPE iens
|
---|
| 95 | N YSCT,YSCH,N
|
---|
| 96 | S YSCH=$G(YS("CHOICE"),0)
|
---|
| 97 | I '$D(^YTT(601.75,YSCH,0)) S YSDATA(1)="[ERROR]",YSDATA(2)="bad choice IEN" Q ;-->out
|
---|
| 98 | S YSDATA(1)="[DATA]",YSDATA(2)="none found",YSCT=0,N=1
|
---|
| 99 | F S YSCT=$O(^YTT(601.751,"ACT",YSCH,YSCT)) Q:YSCT'>0 S N=N+1,YSDATA(N)=YSCT
|
---|
| 100 | Q
|
---|
| 101 | CTDESC(YSDATA,YS) ;describe choicetype
|
---|
| 102 | ;input; CHOICETYPE
|
---|
| 103 | ;output: CHOICETYPE^choicetype ien^sequence^choice ien^choice text
|
---|
| 104 | N YSCTN,YSCT,YSCH,N,YSQ,G
|
---|
| 105 | S YSCT=$G(YS("CHOICETYPE"),0)
|
---|
| 106 | I '$D(^YTT(601.751,"B",YSCT)) S YSDATA(1)="[ERROR]",YSDATA(2)="bad ct ien" Q ;-->out
|
---|
| 107 | S YSCTN=0,N=1,YSDATA(1)="[DATA]"
|
---|
| 108 | F S YSCTN=$O(^YTT(601.751,"B",YSCT,YSCTN)) Q:YSCTN'>0 D
|
---|
| 109 | . S G=$G(^YTT(601.751,YSCTN,0))
|
---|
| 110 | . S YSQ=$P(G,U,2),YSCH=$P(G,U,3)
|
---|
| 111 | . S N=N+1,YSDATA(N)=YSCT_U_YSCTN_U_YSQ_U_YSCH_U
|
---|
| 112 | . I YSCH?1N.N S YSDATA(N)=YSDATA(N)_$G(^YTT(601.75,YSCH,1))
|
---|
| 113 | Q
|
---|
| 114 | ORPHCT(YSDATA) ;find and delete orphan choiceTypes
|
---|
| 115 | ;INPUT: none
|
---|
| 116 | ;OUTPUT: list of choicetypes deleted
|
---|
| 117 | N N,YSCT,YSDA,DA
|
---|
| 118 | L ^YTT(601.751):30
|
---|
| 119 | S YSCT=0,N=1,DIK="^YTT(601.751,",YSDATA(1)="[DATA]",YSDATA(2)="none"
|
---|
| 120 | F S YSCT=$O(^YTT(601.751,"B",YSCT)) Q:YSCT'>0 I '$D(^YTT(601.72,"ACT",YSCT)) D
|
---|
| 121 | . S YSDA=0 F S YSDA=$O(^YTT(601.751,"B",YSCT,YSDA)) Q:YSDA'>0 S N=N+1,YSDATA(N)=YSCT_U_YSDA,DA=YSDA D ^DIK
|
---|
| 122 | L -^YTT(601.751)
|
---|
| 123 | Q
|
---|
| 124 | ORPHCH(YSDATA) ;find and delete orphan choices
|
---|
| 125 | ;INPUT none
|
---|
| 126 | ;OUTPUT list of choices deleted
|
---|
| 127 | N N,YSCH,YSDA,DA
|
---|
| 128 | L ^YTT(601.75):30
|
---|
| 129 | S YSCH=0,N=1,YSDATA="[DATA]",YSDATA(2)="none",DIK="^YTT(601.75,"
|
---|
| 130 | F S YSCH=$O(^YTT(601.75,YSCH)) Q:YSCH'>0 I '$D(^YTT(601.751,"ACT",YSCH)) D
|
---|
| 131 | . S N=N+1,YSDATA(N)=YSCH,DA=YSCH D ^DIK
|
---|
| 132 | L -^YTT(601.75)
|
---|
| 133 | Q
|
---|