[613] | 1 | YTAPI8 ;ASF/ALB- ASI PROCEEDURES ;7/26/01 11:35
|
---|
| 2 | ;;5.01;MENTAL HEALTH;**67,71**;Dec 30, 1994
|
---|
| 3 | ADDER(YSDATA) ;add new record
|
---|
| 4 | N DIC,DLAYGO,X,Y
|
---|
| 5 | S DLAYGO=604,DIC(0)="L",DIC="^YSTX(604,",X="NEW"
|
---|
| 6 | D ^DIC
|
---|
| 7 | I Y'>0 S YSDATA(1)="[ERROR]",YSDATA(2)=-1 Q ;->out
|
---|
| 8 | S YSDATA(1)="[DATA]",YSDATA(2)=+Y
|
---|
| 9 | Q
|
---|
| 10 | ;GET ASI STORED DATA
|
---|
| 11 | GETASI(YSDATA,YS) ;NEEDS IEN FOR FILE 604,DFN
|
---|
| 12 | ;Field #^Question^Required^Answer
|
---|
| 13 | N YSIEN,DFN,G,N,N1,X,YSN
|
---|
| 14 | S YSIEN=$G(YS("IEN"))
|
---|
| 15 | S DFN=$G(YS("DFN"))
|
---|
| 16 | I YSIEN'>0!('$D(^YSTX(604,YSIEN))) S YSDATA(1)="[ERROR]",YSDATA(2)="BAD IEN" Q ; --->
|
---|
| 17 | I $P(^YSTX(604,YSIEN,0),U,2)'=DFN S YSDATA(1)="[ERROR]",YSDATA(2)="BAD DFN MATCH" Q ;--->OUT
|
---|
| 18 | S YSDATA(1)="[DATA]"
|
---|
| 19 | S YSDATA(2)=.02_U_"NAME"_U_1_U_$$GET1^DIQ(604,YSIEN_",",.02,"E")
|
---|
| 20 | S YSDATA(3)=.51_U_"ELECTRONICALLY SIGNED"_U_1_U_$$GET1^DIQ(604,YSIEN_",",.51,"E")
|
---|
| 21 | S YSN=3
|
---|
| 22 | DCROSS S N=0
|
---|
| 23 | F S N=$O(^YSTX(604.66,"D",N)) Q:N'>0 D
|
---|
| 24 | . S N1=$O(^YSTX(604.66,"D",N,0))
|
---|
| 25 | . S G=^YSTX(604.66,N1,0)
|
---|
| 26 | . S X=$$GET1^DIQ(604,YSIEN_",",N,"E")
|
---|
| 27 | . S YSN=YSN+1
|
---|
| 28 | . S YSDATA(YSN)=N_U_$P(G,U,2)_U_$P(G,U,8)_U_X
|
---|
| 29 | Q
|
---|
| 30 | LISTASI(YSDATA,YS) ;ASI LISTER
|
---|
| 31 | ;REQUIRES: DFN
|
---|
| 32 | ;RETURNS: IEN^DATE OF INTERVIEW^CLASS^SPECIAL^ESIGNED
|
---|
| 33 | ;0 RETURNED IF NO ADMINS
|
---|
| 34 | N DFN,YSIEN,YSN
|
---|
| 35 | S DFN=$G(YS("DFN"))
|
---|
| 36 | I DFN<1 S YSDATA(1)="[ERROR]",YSDATA(2)="BAD DFN" Q ;--->OUT
|
---|
| 37 | S YSDATA(1)="[DATA]",YSDATA(2)=0
|
---|
| 38 | S YSN=1
|
---|
| 39 | S YSIEN=0
|
---|
| 40 | F S YSIEN=$O(^YSTX(604,"C",DFN,YSIEN)) Q:YSIEN'>0 D
|
---|
| 41 | . S YSN=YSN+1
|
---|
| 42 | . S YSDATA(YSN)=YSIEN_U_$$FMTE^XLFDT($$GET1^DIQ(604,YSIEN_",",.05,"I"),"5ZD")_U_$$GET1^DIQ(604,YSIEN_",",.04,"E")_U_$$GET1^DIQ(604,YSIEN_",",.11,"E")_U_$$GET1^DIQ(604,YSIEN_",",.51,"E")_U_$$GET1^DIQ(604,YSIEN_",",.09,"E")
|
---|
| 43 | Q
|
---|
| 44 | SIGNOK(YSDATA,YSIEN) ; all reqiured fields
|
---|
| 45 | ;ysflag 1= ok 0= missing 2=SPECIAL
|
---|
| 46 | N N1,YSASCLS,X,YSASFLD,YSF,YSASSPL,YSN,YSFLAG
|
---|
| 47 | S YSFLAG=1
|
---|
| 48 | I '$D(^YSTX(604,YSIEN,0)) S YSDATA(1)="[ERROR]",YSDATA(2)="BAD IEN" Q
|
---|
| 49 | S YSDATA(1)="[DATA]",YSDATA(2)="1^OK TO SIGN"
|
---|
| 50 | S YSN=2
|
---|
| 51 | S YSASCLS=$$GET1^DIQ(604,YSIEN_",",.04,"I")
|
---|
| 52 | S YSASCLS=YSASCLS+3
|
---|
| 53 | S N1=0 F S N1=$O(^YSTX(604.66,N1)) Q:N1'>0 D:($P(^YSTX(604.66,N1,0),U,8)&($P(^YSTX(604.66,N1,0),U,YSASCLS)))
|
---|
| 54 | . S YSASFLD=$P(^YSTX(604.66,N1,0),U,3)
|
---|
| 55 | . D TYPE
|
---|
| 56 | .; S YSF=$S(YSASFLD>10.02&(YSASFLD<10.44):"I",$P(^DD(604,YSASFLD,0),U,2)?1"P".E:"",1:"I")
|
---|
| 57 | . S YSF=$S(YSASFLD>10.02&(YSASFLD<10.44):"I",YSTYPE=1:"",1:"I")
|
---|
| 58 | . S X=$$GET1^DIQ(604,YSIEN,YSASFLD,YSF)
|
---|
| 59 | . S:X="" YSFLAG=0,YSN=YSN+1,YSDATA(YSN)=^YSTX(604,66,N1,0)
|
---|
| 60 | S X=$$GET1^DIQ(604,YSIEN,YSASFLD,.11)
|
---|
| 61 | S:X="X"!(X="N") YSFLAG=2
|
---|
| 62 | S:YSFLAG=0 YSDATA(2)="0^MISSING REQUIRED FIELDS"
|
---|
| 63 | S:YSFLAG=2 YSDATA(2)="2^A G12 RECORD"
|
---|
| 64 | Q
|
---|
| 65 | TYPE ;check field type
|
---|
| 66 | ;O = NOT A POINTER 1 = POINTER
|
---|
| 67 | N YSFLD,YSTYPE
|
---|
| 68 | S YSTYPE=0
|
---|
| 69 | D FIELD^DID(604,YSASFLD,"","TYPE","YSFLD")
|
---|
| 70 | S:YSFLD("TYPE")="POINTER" YSTYPE=1
|
---|
| 71 | Q
|
---|
| 72 | SIGN(YSDATA,YS) ; API for /es/
|
---|
| 73 | N YSCODE,YSASINTV,YSASTRS,VALID
|
---|
| 74 | S YSCODE=$G(YS("CODE"))
|
---|
| 75 | I YSCODE="" S YSDATA(1)="[ERROR]",YSDATA(2)="NO SIG SENT" Q
|
---|
| 76 | S YSIEN=$G(YS("YSIEN"))
|
---|
| 77 | I YSIEN'>0 S YSDATA(1)="[ERROR]",YSDATA(2)="NO REC NUMBER" Q
|
---|
| 78 | I '$D(^YSTX(604,YSIEN)) S YSDATA(1)="[ERROR]",YSDATA(2)="NO REC FOUND" Q
|
---|
| 79 | S VALID=$$VALIDATE($$DECRYP^XUSRB1(YSCODE))
|
---|
| 80 | I +VALID'>0 S YSDATA(1)="[DATA]",YSDATA(2)="0^Bad EScode, not signed" Q
|
---|
| 81 | S YSASINTV=$$GET1^DIQ(604,YSIEN_",",.09,"I") ;INTERVERER
|
---|
| 82 | S YSASTRS=$$GET1^DIQ(604,YSIEN_",",.14,"I") ;TRANSCRIBER
|
---|
| 83 | I YSASINTV=DUZ,DUZ>0 D Q ;---> OUT
|
---|
| 84 | . D CR^YSASCR(YSIEN,YSASINTV,"")
|
---|
| 85 | . S YSDATA(1)="[DATA]",YSDATA(2)="1^ASI SIGNED"
|
---|
| 86 | I YSASTRS=DUZ,DUZ>0 D Q ;---> OUT
|
---|
| 87 | . D CONV^YSASCR(YSIEN,YSASINTV)
|
---|
| 88 | . D BUL^YSASBUL(YSIEN,YSASTRS,YSASINTV)
|
---|
| 89 | . S YSDATA(1)="[DATA]",YSDATA(2)="0^TRANSCRIBER SEND BULLETIN"
|
---|
| 90 | S YSDATA(1)="[ERROR]",YSDATA(2)="BAD LOGIC"
|
---|
| 91 | Q
|
---|
| 92 | VALIDATE(X) ; Validate /es/-code
|
---|
| 93 | N YSY S YSY=0
|
---|
| 94 | D HASH^XUSHSHP I X]"",(X=$P($G(^VA(200,+DUZ,20)),U,4)) S YSY=1
|
---|
| 95 | Q YSY
|
---|