56 lines
1.6 KiB
Mathematica
56 lines
1.6 KiB
Mathematica
GECSSGET ;WISC/RFJ/KLD-get data from stack file ;13 Oct 98
|
|
;;2.0;GCS;**19,28**;MAR 14, 1995
|
|
Q
|
|
;
|
|
;
|
|
DATA(DOCID,CODESHET) ; return data from stack file for docid (.01 field)
|
|
; pass codeshet=1 for code sheet data also
|
|
; data will be returned in gecsdata
|
|
K GECSDATA
|
|
N %,D0,DA,DIC,DIQ,DIQ2,DR
|
|
S DOCID=$$PADSPACE(DOCID)
|
|
S DA=+$O(^GECS(2100.1,"B",DOCID,0)) Q:'DA
|
|
S DIC="^GECS(2100.1,",DR=".01:26",DIQ="GECSDATA",DIQ(0)="E"
|
|
I '$G(CODESHET) S DR=".01:7;11:26"
|
|
S GECSDATA=DA
|
|
D EN^DIQ1
|
|
Q
|
|
;
|
|
;
|
|
STATUS(DOCID) ; return status of docid (.01 field)
|
|
; return -1 if entry not found
|
|
N %,DA,STATUS
|
|
S DOCID=$$PADSPACE(DOCID)
|
|
S DA=+$O(^GECS(2100.1,"B",DOCID,0)) I 'DA Q -1
|
|
S STATUS=$P($G(^GECS(2100.1,DA,0)),"^",4)
|
|
Q $P($P($P(^DD(2100.1,3,0),"^",3),STATUS_":",2),";")
|
|
;
|
|
;
|
|
PADSPACE(DOCID) ; return docid with padded spaces
|
|
N %
|
|
S %=$P(DOCID,"-")_$E(" ",1,2-$L($P(DOCID,"-")))_"-"_$P(DOCID,"-",2)_$E(" ",1,11-$L($P(DOCID,"-",2)))
|
|
I $P(DOCID,"-",3)'="" S %=%_"-"_$P(DOCID,"-",3)_$E(" ",1,6-$L($P(DOCID,"-",3)))
|
|
Q %
|
|
;
|
|
;
|
|
KEYLOOK(GECSKEY,CODESHET) ; lookup and return document data based on a lookup key
|
|
; codeshet passed to data to return the document code sheet data
|
|
N GECSDA,GECSDOC
|
|
I $L(GECSKEY)="" Q
|
|
; find the document ien based on input key
|
|
S GECSDA=$O(^GECS(2100.1,"KEY",GECSKEY,0))
|
|
I 'GECSDA Q
|
|
; find the document identifier (.01 field)
|
|
S GECSDOC=$P($G(^GECS(2100.1,GECSDA,0)),"^")
|
|
I GECSDOC="" Q
|
|
; get the data
|
|
D DATA(GECSDOC,CODESHET)
|
|
Q
|
|
;
|
|
;
|
|
GETID(IEN) ; return .01 field of file #2100.1
|
|
;
|
|
N ID
|
|
S ID=$$GET1^DIQ(2100.1,IEN,.01)
|
|
Q ID
|