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

BGOVSTR1.m

Go to the documentation of this file.
  1. BGOVSTR1 ; MSC/JS - Utility calls for V STROKE ;14-Oct-2014 11:09;DU
  1. ;;1.1;BGO COMPONENTS;**13,14**;Mar 20, 2007;Build 16
  1. ;1.10.14 MSC/JS - Move MIDGET and MIDSET calls here, add ICD10 conversion date check for Stroke Symptoms multiple subfld .01, .02
  1. ;1.13.14 MSC/JS - Move GETVFIEN and NARR here to keep routine BGOVSTR within 15k size limits
  1. ;1.14.14 MSC/JS - Delete MIDSET,MIDGET,KEYLIST,LEYFLDS,KEYNAME,KEYNAMS code since no longer used.
  1. ;1.24.14 MSC/JS - Changed loop to sum up 'VALUE' from 1:1:19 to 1:1:20 for filing Stroke Score in V Measurement file
  1. ;2.6.14 MSC/MGH- Changed refusal to try and find existing one on edit
  1. ;
  1. NARR(DESCT,NARR) ;Provider narrative is now provider text | descriptive SNOMED CT
  1. N NARRPTR
  1. S NARRPTR=0
  1. S NARR=NARR_"|"_DESCT
  1. I $L(NARR) D Q:RET
  1. .S RET=$$FNDNARR^BGOUTL2(NARR)
  1. .S:RET>0 NARRPTR=RET,RET=""
  1. Q NARRPTR
  1. ; Fetch V File entries
  1. ; INP = Patient IEN (for entries associated with a patient) [1] ^
  1. ; V File IEN (for single entry) [2] ^
  1. ; Visit IEN (for entries associated with a visit) [3]
  1. GETVFIEN(RET,INP) ;EP
  1. N DFN,GBL,VFIEN,VIEN,XREF
  1. S RET=0,GBL=$$ROOT^DILFD($$FNUM,,1)
  1. I '$L(GBL) S RET=$$ERR^BGOUTL(1069) Q
  1. S DFN=+INP
  1. S VFIEN=$P(INP,U,2)
  1. S VIEN=$P(INP,U,3)
  1. ; If the VFIEN is present, then use that
  1. I VFIEN D
  1. .I '$D(@GBL@(VFIEN,0)) S RET=$$ERR^BGOUTL(1070)
  1. .E S RET=1,RET(1)=VFIEN
  1. E I VIEN D
  1. .S (RET,VFIEN)=0
  1. .F S VFIEN=$O(@GBL@("AD",VIEN,VFIEN)) Q:'VFIEN S RET=RET+1,RET(RET)=VFIEN
  1. E I DFN D
  1. .S VFIEN="",XREF=$$VFPTXREF^BGOUTL2
  1. .; Return the records newest to oldest
  1. .F S VFIEN=$O(@GBL@(XREF,DFN,VFIEN),-1) Q:'VFIEN S RET=RET+1,RET(RET)=VFIEN
  1. E S RET=$$ERR^BGOUTL(1008)
  1. Q
  1. ;Check/Reset Stroke Symptoms multiple .01 CONCEPT ID value, .02 DESCRIPTION ID if VISIT date VDTE is before ICD10 conversion date (10.1.14)
  1. ; If Stroke record is created before 10.1.14 and edited afterwards, the Snomed CT value and ICD code lookup is ICD9.
  1. ; 1400 STROKE SYMPTOMS (Multiple-9000010.6314), [14;0]
  1. ; .01 CONCEPT ID (F), [0;1]
  1. ; .02 DESCRIPTION ID (F), [0;2]
  1. ;
  1. ; INP = Visit ien (VIEN)
  1. ; Returns: 0 (Visit date is after ICD10 implementation date)
  1. ; 1 ^ ICD9 Snomed Concept ID ^ ICD9 Snomed Description ID ^ ICD9 code
  1. CHKICDT(RET,INP) ;
  1. N IMP,VDTE
  1. S RET=0
  1. S VDTE=$P($G(^AUPNVSIT(VIEN,0)),U,1)
  1. ;Changes added for ICD-10 conversion
  1. I $$AICD^BGOUTL2 D
  1. .S IMP=$$IMP^ICDEX("10D",DT)
  1. I $G(IMP)="" Q RET
  1. I VDTE>IMP Q RET
  1. ; -- add call to BSTS to get ICD9 version of Snomed Concept ID, Snomed Description ID, and ICD9 code --
  1. Q RET
  1. ;Add entry to file #9000022 PATIENT REFUSALS FOR SERVICE/NMI for patient refused Therapy
  1. ; INP = Refusal IEN [1] ^ Refusal Type [2] ^ Item IEN [3] ^ Patient IEN [4] ^
  1. ; Refusal Date [5] ^ Comment [6] ^ Provider IEN [7] ^ Reason [8]
  1. SETREF(DFN,REFRES,REFDT,VFNEW) ; EP
  1. S RET=""
  1. I $G(DFN)="" Q RET
  1. N TYPE,DTDONE,CPT,RIEN,FOUND
  1. S RIEN=""
  1. S TYPE="CPT"
  1. S CPT=$$GET^XPAR("ALL","BGO STROKE TROMBO NOT DONE",1,"E")
  1. S CPT=$O(^ICPT("BA",$G(CPT)_" ",0))
  1. S:CPT="" CPT=37195 ; default to CPT code THROMBOLYTIC THERAPY, STROKE
  1. I '+REFRES S REFRES=23
  1. S DTDONE=$P(REFDT,".",1)
  1. I DTDONE="" S DTDONE="TODAY",DTDONE=$$DT^CIAU(DTDONE)
  1. I 'VFNEW D
  1. .S FOUND=0
  1. .N INV,Y
  1. .S INV="" F S INV=$O(^AUPNPREF("AA",DFN,81,CPT,INV)) Q:INV=""!(FOUND=1) D
  1. ..S Y=9999999-INV
  1. ..Q:Y'=DTDONE
  1. ..S REFIEN=$O(^AUPNPREF("AA",DFN,81,CPT,INV,""))
  1. ..I +REFIEN S RIEN=REFIEN,FOUND=1
  1. S INP=RIEN_U_TYPE_U_CPT_U_DFN_U_DTDONE_U_U_DUZ_U_REFRES ; 23 = Refused
  1. D SET^BGOREF(.RET,INP)
  1. I RET="" S RET=1
  1. Q RET
  1. ;Delete entry from PATIENT REFUSALS FOR SERVICE/NMI file #9000022 for V Stroke record logical delete
  1. ; INP = V Stroke file ien VFIEN
  1. DELREF(VFIEN) ; EP
  1. S RET=""
  1. I $G(VFIEN)="" Q RET
  1. ;I $G(^AUPNVSTR(VFIEN,5))="" Q RET ; not a deleted record
  1. N DECDT,DFN,DNIRDT,DNIRDUZ,FNUM,INVDATE,NOD0,FILIEN,REFIEN,TYPE,CPT
  1. S NOD0=$G(^AUPNVSTR(VFIEN,0))
  1. S DFN=$P(NOD0,"^",2),DNIRDT=$P($P(NOD0,"^",15),".",1),DNIRDUZ=$P(NOD0,"^",16)
  1. I DNIRDT="" S DNIRDT=$P($P(NOD0,"^",12),".",1) ;Get entered date if it was an edit
  1. ;I $G(DFN)=""!($G(DNIRDT)="")!($G(DNIRDUZ)="") Q RET
  1. I $G(DFN)=""!($G(DNIRDT)="") Q RET
  1. S INVDATE=9999999-DNIRDT
  1. S CPT=$$GET^XPAR("ALL","BGO STROKE THROMBO NOT DONE",1,"E")
  1. S TYPE=+$$CPT^ICPTCOD(CPT)
  1. I TYPE<0 Q RET
  1. N FNUM S FNUM=81 ; p13 CPT codes only
  1. S DECDT=0
  1. F S DECDT=$O(^AUPNPREF("AA",DFN,FNUM,TYPE,DECDT)) Q:'DECDT D
  1. .Q:DECDT'=INVDATE
  1. .S FILIEN="",FILIEN=$O(^AUPNPREF("AA",DFN,FNUM,TYPE,DECDT,FILIEN))
  1. .N ENTBY,NOD12
  1. .S NOD12=$G(^AUPNPREF(FILIEN,12)),ENTBY=$P(NOD12,U,17)
  1. .Q:ENTBY=""
  1. .I ENTBY=DNIRDUZ!(DNIRDUZ="") S REFIEN=FILIEN
  1. I $G(REFIEN)="" Q RET
  1. N DELRET
  1. D DEL^BGOREF(.DELRET,REFIEN)
  1. I DELRET="" S RET=1
  1. Q RET
  1. ;Display V STROKE entry fld#.17 DID NOT INIT FIB REASON Snomed code + XPAR CPT code
  1. ; DNIR = fld #.17 Snomed code [1]
  1. ; checks DNIR value with API call to verify CONCEPT ID code is valid, if not defaults to:
  1. ; REFUSAL REASONS file #9999999.102 IEN 17 CONCEPT ID: 275936005
  1. ; USE WITH MEDICATION REFUSAL: YES .07 CODE VALUE: DECLINED SERVICE
  1. ; SCREEN: ALL
  1. ; CONCEPT ID PREFERRED TERM (c): Patient noncompliance - general (situation)
  1. GETREF(DNIR) ; EP
  1. N SNOINFO
  1. S SNOINFO=""
  1. I +$G(DNIR)="" Q SNOINFO
  1. NEW CPT,CPTDESC,IN,SNOCHEK,SNODESC
  1. ;check for valid Snomed ID, input IN (Snomed ID)
  1. ;Output -
  1. ; Function returns - [1]^[2]^[3]^[4]
  1. ; [1] - Description Id of Fully Specified Name
  1. ; [2] - Fully Specified Name
  1. ; [3] - Description Id of Preferred Term
  1. ; [4] - Preferred Term
  1. S IN=$G(DNIR)_"^^^1" D
  1. .K ^TMP("BSTSCMCL",$J)
  1. .S SNOCHEK=$$CONC^BSTSAPI(IN)
  1. .K ^TMP("BSTSCMCL",$J)
  1. .S SNODESC=$P(SNOCHEK,"^",2)
  1. .I SNODESC="" D ; stored V Stroke field invalid, use default ID
  1. ..S IN=275936005_"^^^1"
  1. ..K ^TMP("BSTSCMCL",$J)
  1. ..S SNOCHEK=$$CONC^BSTSAPI(IN)
  1. ..K ^TMP("BSTSCMCL",$J)
  1. ..S SNODESC=$P(SNOCHEK,"^",2)
  1. S CPT=$$GET^XPAR("SYS","BGO STROKE TROMBO NOT DONE")
  1. S:CPT="" CPT=37195
  1. S CPTDESC=$$GET1^DIQ(81,CPT,2,"E")
  1. S SNOINFO=$G(SNODESC)_" - "_$G(CPTDESC)
  1. Q SNOINFO
  1. ;Add new LKW entry if onset of symptoms is entered
  1. SETLKW(INP) ; EP
  1. N EVDATE,VIEN,FNUM,LKWDATE,NUM,MIEN,TYPE,VALUE,VI,VFSTR,VMIEN,VMINP,WITNESS,FOUND
  1. N INVDT,MEAIEN,MEAVIEN,IEN
  1. S FOUND=0
  1. S DFN=$P(INP,U,1)
  1. S VIEN=$P(INP,U,2)
  1. S VMIEN=$P(INP,U,4)
  1. I $G(VIEN)="" S RET="-1^Missing Visit IEN" Q RET
  1. I '$D(^AUPNVSIT(VIEN)) S RET=$$ERR^BGOUTL(1035) Q RET ; Item not found
  1. S RET="" S FNUM=9000010.01
  1. S TYPE="LKW"
  1. S VALUE="WELL"
  1. S EVDATE=$P(INP,U,3)
  1. I VMIEN'="" D
  1. .I '$D(^AUPNVMSR(VMIEN)) S VMIEN=""
  1. .I $$GET1^DIQ(9000010.01,VMIEN,2,"I")=1 S VMIEN=""
  1. ;S MIEN=$O(^AUTTMSR("B","LKW",""))
  1. ;Q:MIEN=""
  1. ;S INVDT="" F S INVDT=$O(^AUPNVMSR("AA",DFN,MIEN,INVDT)) Q:INVDT=""!(FOUND=1) D
  1. ;.S MEAIEN="" F S MEAIEN=$O(^AUPNVMSR("AA",DFN,MIEN,INVDT,MEAIEN)) Q:MEAIEN=""!(FOUND=1) D
  1. ;..S MEAVIEN=$P($G(^AUPNVMSR(MEAIEN,0)),U,3)
  1. ;..I MEAVIEN=VIEN S VMIEN=MEAIEN,FOUND=1
  1. ; VMINP= Visit IEN [1] ^ V File IEN [2] ^ Type [3] ^ Value [4] ^ Date/Time [5]
  1. S VMINP=$G(VIEN)_U_$G(VMIEN)_U_$G(TYPE)_U_$G(VALUE)_U_$G(EVDATE)
  1. D SET^BGOVMSR(.RET,.VMINP)
  1. S VMIEN=RET
  1. Q RET
  1. ;Add/edit V Measurement NIH entry:
  1. ; 1. Add entry if VFNEW and 'N' string exists (new V STROKE entry can be added w/o NIH data)
  1. ; 2. Add entry if 'VFNEW and 'N' string exists (existing V STROKE entry update, 'N' sent only if update)
  1. SETNIH(VFIEN,VIEN,INP) ; EP
  1. I $G(VIEN)="" S RET="-1^Missing Visit IEN" Q RET
  1. I '$D(^AUPNVSIT(VIEN)) S RET=$$ERR^BGOUTL(1035) Q RET ; Item not found
  1. N EVDATE,FNUM,I,VALUE,NUM,QIEN,QUAL,QUALS,SUM,TYPE,VMIEN,VCODE,VI,VFSTR,VMIEN,VMINP,SIEN,DEL,OLDVAL
  1. S RET="" S FNUM=9000010.01
  1. S NUM="" F S NUM=$O(INP(NUM)) Q:NUM="" D
  1. .S VFSTR=$G(INP(NUM)) Q:VFSTR=""
  1. .S VCODE=$P(VFSTR,U)
  1. .I VCODE="N" D
  1. ..;S VALUE=0 F SUM=5:1:19 S VALUE=VALUE+$P($G(VFSTR),U,SUM) ;.19 TotalStrokeScale;
  1. ..S VALUE=0 F SUM=6:1:20 S VALUE=VALUE+$P($G(VFSTR),U,SUM) ;.19 TotalStrokeScale; 1.24.14
  1. ..S IEN=$P(VFSTR,U,2)
  1. ..S DEL=$P(VFSTR,U,5)
  1. ..Q:DEL="@"
  1. ..S QUALS=$P(VFSTR,U,22,99)
  1. ..S TYPE="NSST"
  1. ..I IEN="" D
  1. ...S VMIEN=$$STRNIH($G(VIEN),$G(TYPE),$G(VALUE)) ;New Item to add
  1. ...S IEN=9999999
  1. ...S IEN=$O(^AUPNVSTR(VFIEN,15,IEN),-1)
  1. ..E D
  1. ...S VMIEN=$$GET1^DIQ(9000010.6315,IEN_","_VFIEN_",",.2,"I") ;Get current value
  1. ...I VMIEN="" S VMIEN=$$STRNIH($G(VIEN),$G(TYPE),$G(VALUE)) ;Add if nothing there
  1. ...E D
  1. ....S OLDVAL=$$GET1^DIQ(9000010.01,VMIEN,.04)
  1. ....I '$D(^AUPNVMSR(VMIEN)) S VMIEN=$$STRNIH($G(VIEN),$G(TYPE),$G(VALUE)) Q ;add if non-existent measurement
  1. ....I $$GET1^DIQ(9000010.01,VMIEN,2,"I")=1 S VMIEN=$$STRNIH($G(VIEN),$G(TYPE),$G(VALUE)) ;Add if measurement is EIE
  1. ....I OLDVAL'=VALUE D STRDEL(VMIEN) S VMIEN=$$STRNIH($G(VIEN),$G(TYPE),$G(VALUE)) ;Delete old and add new if changed
  1. ..D HOOK(IEN,$G(VMIEN)) S RET=VMIEN
  1. Q RET
  1. STRDEL(VMIEN) ;Do the delete
  1. N INP
  1. S INP=VMIEN_"^4"
  1. D SETEIE
  1. Q
  1. STRNIH(VIEN,TYPE,VALUE) ;Store the NSST
  1. N NIHEV S NIHEV=$P(VFSTR,U,3) ;.02 NIH EventDateTime
  1. I NIHEV N Y S Y=NIHEV X ^DD("DD") S NIHEV=Y
  1. N EVDATE S EVDATE=$E($P(VFSTR,U,4),1,12) ;Don't include seconds
  1. I EVDATE N Y S Y=EVDATE X ^DD("DD") S EVDATE=Y
  1. ; VMINP= Visit IEN [1] ^ V File IEN [2] ^ Type [3] ^ Value [4] ^ Date/Time [5]
  1. S VMIEN=""
  1. S VMINP=$G(VIEN)_U_$G(VMIEN)_U_$G(TYPE)_U_$G(VALUE)_U_$G(EVDATE)
  1. D SET^BGOVMSR(.RET,.VMINP)
  1. I RET'>0 S RET="-1^V Measurement NIH entry was not added" Q RET
  1. S VMIEN=RET
  1. S FDA=$NA(FDA(FNUM,VMIEN_","))
  1. S @FDA@(.07)=$S($G(NIHEV)]"":NIHEV,1:EVDATE) ; [.07] DATE/TIME VITALS ENTERED (D)
  1. S @FDA@(.08)="`"_DUZ ; [.08] ENTERED BY (P200')
  1. S @FDA@(1216)=$S($G(EVDATE)]"":EVDATE,1:"N") ; [1216] DATE/TIME ENTERED (D)
  1. S @FDA@(1217)="`"_DUZ ; [1217] ENTERED BY (P200')
  1. S @FDA@(1218)=$S($G(EVDATE)]"":EVDATE,1:"N") ; [1218] DATE/TIME LAST MODIFIED (D)
  1. S RET=$$UPDATE^BGOUTL(.FDA,"E")
  1. I RET,VFNEW,$$DELETE^BGOUTL(FNUM,VMIEN) Q RET
  1. D:'RET VFEVT^BGOUTL2(FNUM,VMIEN,'$G(VFNEW))
  1. S:'RET RET=VMIEN
  1. ;Add in the Qualifier multiple, QUALS array = N array $P22, $P23, $P24, etc.
  1. F I=1:1 S QUAL=$P(QUALS,U,I) Q:QUAL="" D
  1. .S QIEN="+"_I_","_VMIEN_","
  1. .N FDA,ERR,IEN2
  1. .S FDA(FNUM_5,QIEN,.01)=QUAL ; [5] QUALIFIER (Multiple-9000010.015)
  1. .D UPDATE^DIE(,"FDA","IEN2","ERR")
  1. .I $G(ERR("DIERR",1)) S RET=-ERR("DIERR",1)_U_ERR("DIERR",1,"TEXT",1)
  1. Q RET
  1. HOOK(IEN,VMIEN) ;Hook it back to the parent
  1. I +VMIEN D
  1. .N SIEN,FDA,ERR,IEN2
  1. .I DEL="@" S VMIEN="@"
  1. .S SIEN=IEN_","_VFIEN_","
  1. .S FDA(9000010.6315,SIEN,.2)=VMIEN
  1. .D UPDATE^DIE(,"FDA","IEN2","ERR")
  1. Q
  1. ; EIE V Measurement file entries for LKW or NSST
  1. ; VFIEN = V STROKE file ien VFIEN
  1. ; Flag the entry as Entered in Error
  1. EIEVM(RET2,VFIEN) ;EP
  1. N VIEN,VMARR
  1. K VMARR
  1. S VIEN=$P($G(^AUPNVSTR(VFIEN,0)),"^",3)
  1. I $G(VIEN)="" S RET=0 Q
  1. D GETVM(VIEN)
  1. I RET=0 Q RET ; no VM entries for Visit IEN found
  1. N VMFIEN
  1. S VMFIEN=""
  1. F S VMFIEN=$O(VMARR(VMFIEN)) Q:VMFIEN="" D
  1. .N INP
  1. .S INP=VMFIEN_"^4" ; Reason = 4 = INVALID RECORD (default)
  1. .D SETEIE
  1. Q
  1. ; Return V Measurement file entries for visit VIEN
  1. ; Input = VIEN
  1. ; Returns: 1/entries in VMARR array, 0/No entries found
  1. ; Screen for TYPE = LKW or NSST entries
  1. ; For NSST entries field match criteria:
  1. ; [NIHDAT] .02 EVENT DATE/TIME (D), [0;2] = [VITALDT] .07 DATE/TIME VITALS ENTERED (D), [0;7]
  1. ; [NIHVALUE] .19 TOTAL STROKE SCORE (NJ2,0),[0;19] = [VALUE] .04 VALUE (RFXO), [0;4]
  1. GETVM(VIEN) ;
  1. N CNT,VMIEN,VALUE,VITALDT
  1. I 'VIEN S VMARR(1)=$$ERR^BGOUTL(1002) Q
  1. S (CNT,VMIEN,RET)=0
  1. F S VMIEN=$O(^AUPNVMSR("AD",VIEN,VMIEN)) Q:'VMIEN D
  1. .N X,USR,DAT,TYPE,TYPENM
  1. .S X=$G(^AUPNVMSR(VMIEN,0))
  1. .Q:X=""
  1. .S VALUE=$P(X,"^",4),VITALDT=$P($G(^AUPNVMSR(VMIEN,12)),"^",1)
  1. .S DAT=+$G(^(12)),USR=+$P($G(^(12)),U,4)
  1. .S TYPE=+X
  1. .S TYPENM=$P($G(^AUTTMSR(TYPE,0)),U)
  1. .Q:TYPENM=""
  1. .Q:TYPENM'="LKW"&(TYPENM'="NSST") ; only LKW and NSST records
  1. .N NAME
  1. .S NAME=$P($G(^VA(200,USR,0)),U)
  1. .S:'DAT DAT=+$G(^AUPNVSIT(VIEN,0))
  1. .I TYPENM="NSST" D
  1. ..N NIHDT,NIHREC
  1. ..S NIHDT=0
  1. ..F S NIHDT=$O(^AUPNVSTR(VFIEN,15,"B",NIHDT)) Q:'NIHDT D
  1. ...S NIHREC=0,NIHREC=$O(^AUPNVSTR(VFIEN,15,"B",NIHDT,NIHREC))
  1. ...N NIHNODE,NIHVALUE,NIHDAT
  1. ...S NIHNODE=$G(^AUPNVSTR(VFIEN,15,NIHREC,0)),NIHDAT=$E($P(NIHNODE,"^",2),1,12),NIHVALUE=$P(NIHNODE,"^",19)
  1. ...Q:NIHDAT'=VITALDT!(NIHVALUE'=VALUE)
  1. ...S VMARR(VMIEN)=TYPENM_U_DAT_U_$$ISLOCKED^BEHOENCX(VIEN) ; NSST ENTRY
  1. .S:TYPENM="LKW" VMARR(VMIEN)=TYPENM_U_DAT_U_$$ISLOCKED^BEHOENCX(VIEN) ; LKW ENTRY
  1. .S CNT=CNT+1
  1. I $D(VMARR) S RET=1
  1. Q RET
  1. ; Update EIE for V Measurement file entry
  1. SETEIE ;
  1. N FDA,REASON,VFIEN
  1. S VFIEN=$P(INP,U)
  1. S REASON=$P(INP,U,2)
  1. I REASON<0 I REASON>4 S RET="-1^Reason EIE out of range" Q ; Input out of range
  1. I VFIEN="" S RET=$$ERR^BGOUTL(1008) Q ; Missing input data
  1. I '$D(^AUPNVMSR(VFIEN)) S RET=$$ERR^BGOUTL(1035) Q ; Item not found
  1. S FDA=$NA(FDA(9000010.01,VFIEN_","))
  1. S @FDA@(2)=1
  1. S @FDA@(3)=DUZ
  1. S RET=$$UPDATE^BGOUTL(.FDA,,VFIEN)
  1. N EIEN S EIEN="+1,"_VFIEN_","
  1. N FDA,ERR,IEN2
  1. ;S FDA($$FNUM_4,EIEN,.01)=REASON
  1. S FDA(9000010.014,EIEN,.01)=REASON
  1. D UPDATE^DIE(,"FDA","IEN2","ERR")
  1. I $G(ERR("DIERR",1)) S RET=-ERR("DIERR",1)_U_ERR("DIERR",1,"TEXT",1)
  1. S:RET="" RET=1
  1. Q
  1. ;Return V File #
  1. FNUM(RET,INP) S RET=9000010.63
  1. Q RET
  1. ;
  1. DMULT(RET,VFIEN,SUBIEN,NODE) ; Delete a multiple entry from V file
  1. I $G(VFIEN)=""!($G(SUBIEN)="")!($G(NODE)="") S RET="-1^""missing delete multiple parameter""" Q RET
  1. N ERR,DA,DIK
  1. S ERR=""
  1. S RET=""
  1. S DA(1)=VFIEN,DA=+SUBIEN
  1. S DIK="^AUPNVSTR("_DA(1)_NODE
  1. S:DA ERR=$$DELETE^BGOUTL(DIK,.DA)
  1. I ERR'="" S RET=RET_"^"_ERR
  1. Q