VistA-WorldVistAEHR/r/GEN_MED_OTHER-GMV/GMVGETQ.m

63 lines
2.0 KiB
Mathematica

GMVGETQ ;HOIFO/YH,FT-UTILITIES TO OBTAIN DATE/TIME, HOSPITAL, DUZ, VITAL CATEGORY AND EDIT V/M ;9/6/02 09:35
;;5.0;GEN. MED. REC. - VITALS;**3**;Oct 31, 2002
;
; This routine uses the following IAs:
; #10103 - ^XLFDT calls (supported)
;
; This routine supports the following IAs:
; #4353 - GMV CONVERT DATE RPC is called at GETDT (private)
;
GETDT(RESULT,GMRDATE) ;GMV CONVERT DATE [RPC entry point]
;INPUT VARIABLE:
;GMRDATE - DATE/TIME FROM EDIT.TEXT ENTERED BY USER
;OUTPUT VARIABLE:
;RESULT - CONTAINS INTERNAL AND EXTERNAL DATE/TIME
N GDATE D DT^DILF("ETS",GMRDATE,.GDATE)
I $G(GDATE)'>0 S RESULT="" Q
I $G(GDATE)>$$NOW^XLFDT S RESULT="" Q
S RESULT=$G(GDATE)_"^"_$G(GDATE(0))
Q
;
ADDQUAL(RESULT,GMRVDATA) ; Add qualifiers to FILE 120.5 entry
; ADD QUALIFIER TO 120.505 SUBFILE
; Input:
; GMRVDATA=120.5 IEN^QUALIFIER (120.52) IEN
; Output:
; RESULT = "" or the IEN of the subfile entry
;
N GMVCNT,GMVERR,GMVFDA,GMVOKAY,GMRVIEN,GMRVQUAL
S GMRVIEN=+$P(GMRVDATA,"^",1) ;File 120.5 ien
S GMRVQUAL=+$P(GMRVDATA,"^",2) ;File 120.52 ien
; Does File 120.5 entry exist?
I '$D(^GMR(120.5,GMRVIEN,0)) D Q
.S RESULT=""
.;or S RESULT="-1^Vitals entry not found."
.Q
; Is the qualifier already stored?
I $O(^GMR(120.5,GMRVIEN,5,"B",GMRVQUAL,0))>0 D Q
.S RESULT=""
.;or S RESULT="-1^Qualifier already filed. No change made."
.Q
; Legitimate Qualifier?
I '$D(^GMRD(120.52,GMRVQUAL,0)) D Q
.S RESULT=""
.; or S RESULT="-1^"_$P(GMRVDATA,U,2)_" is not a legitimate qualifier"
.Q
S GMVCNT=0 ;counter for number of tries to lock an entry
B2 ; Lock the entry
I GMVCNT>3 D Q ;4 strikes and you're out
.S RESULT=""
.;or S RESULT="-1^Could not lock entry to file qualifiers."
.L -^GMR(120.5,GMRVIEN,0)
.Q
L +^GMR(120.5,GMRVIEN,0):1
S GMVCNT=GMVCNT+1
I '$T L -^GMR(120.5,GMRVIEN,0) G B2
; Store the qualifier
S GMVFDA(120.505,"+1,"_GMRVIEN_",",.01)=GMRVQUAL
D UPDATE^DIE("","GMVFDA","GMVOKAY","GMVERR")
L -^GMR(120.5,GMRVIEN,0)
I $D(GMVERR) S RESULT="" ; or S RESULT="-1^*fileman error message*"
E S RESULT=+$G(GMVOKAY(1))
Q