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

ORQQVI2.m

Go to the documentation of this file.
  1. ORQQVI2 ;SLC/dee- RPC calls to GMRVPCE0, Vitals data event drivers ;2/2/98
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10**;Dec 17, 1997
  1. ;
  1. Q
  1. ;
  1. ; ORQDATA is in the format
  1. ; ORQDATA(i)="VST^DT^encounter date" required
  1. ; ORQDATA(i)="VST^PT^pointer to patient" required
  1. ; ORQDATA(i)="VST^HL^pointer to Hospital Location" required
  1. ; ORQDATA(i)="VIT^vital type^^^value^provider^units^date/time"
  1. ; ORVITALS is the array passed to GMRV in the PCE Device Interface
  1. ; format.
  1. ; ORQVIT is an array subscipted by the index in ORVITALS that contains
  1. ; the subscript of the data gotten from ORQDATA. This is used to tell
  1. ; the caller which item had an ERROR or WARNING.
  1. ; ORRETURN(0) is 1 if no ERRORs or WARNINGs
  1. ; 0 if there are WARNING(s) but no ERRORs
  1. ; -1 if there are ERROR(s)
  1. ; ORRETURN(n) where n>0 is an error or warning in validating the data
  1. ; 1 piece: subscript of ORQDATA that the error or warning is on
  1. ; 2 piece: "ERROR" or "WARNING"
  1. ; 3 piece: text message about error or warning
  1. ; 4 piece: data item that generated the error or warning
  1. ;
  1. VALIDATE(ORRETURN,ORQDATA) ;
  1. ; Given the array ORQDATA passed in by PCE Device Interface whose
  1. ; format is described in the PCE Device Interface documentation, this
  1. ; procedure will validate the Vitals data. If the data is invalid,
  1. ; the procedure will return the errors in the form given above.
  1. ;
  1. N ORVITALS,ORQVIT
  1. ;Initialize RETURN to no errors
  1. K ORRETURN
  1. S ORRETURN(0)=1
  1. D PREVITAL(.ORRETURN,.ORVITALS,.ORQVIT,.ORQDATA)
  1. D VALIDATE^GMRVPCE0(.ORVITALS)
  1. D POSTVIT(.ORRETURN,.ORQVIT,.ORVITALS)
  1. Q
  1. ;
  1. VALSTORE(ORRETURN,ORQDATA) ;Calls VALIDATE and if no errors calls STORE
  1. ; Given the array ORQDATA passed in by PCE Device Interface whose
  1. ; format is described in the PCE Device Interface documentation, this
  1. ; procedure will validate the Vitals data. If the data is invalid,
  1. ; the procedure will return the errors in the form given above.
  1. ; If there are no errors then this procedure will call
  1. ; Vitals/Measurements to store the data in the GMRV's
  1. ; Patient Measurements (120.5) file.
  1. ;
  1. N ORVITALS,ORQVIT
  1. ;Initialize RETURN to no errors
  1. K ORRETURN
  1. S ORRETURN(0)=1
  1. D PREVITAL(.ORRETURN,.ORVITALS,.ORQVIT,.ORQDATA)
  1. D VALIDATE^GMRVPCE0(.ORVITALS)
  1. D POSTVIT(.ORRETURN,.ORQVIT,.ORVITALS)
  1. I ORRETURN(0)=1 D STORE^GMRVPCE0(.ORVITALS)
  1. Q
  1. ;
  1. PREVITAL(ORRETURN,ORVITALS,ORQVIT,ORQDATA) ;format array for call to Vitlals
  1. N ORQTYPE,ORQCODE,ORINDEX1,ORINDEX2,ORRETINX,ORQITEM
  1. N ORQNODT,ORQNOPT,ORQNOHL
  1. S (ORQNODT,ORQNOPT,ORQNOHL)=1
  1. S ORVITALS("SOURCE")="^"_DUZ
  1. S ORINDEX2=0
  1. S ORRETINX=$O(ORRETURN(""),-1)
  1. S ORINDEX1=""
  1. F S ORINDEX1=$O(ORQDATA(ORINDEX1)) Q:'ORINDEX1 D
  1. . S ORQDATAX=ORQDATA(ORINDEX1),ORQTYPE=$P(ORQDATAX,"^"),ORQCODE=$P(ORQDATAX,"^",2)
  1. . I ORQTYPE="PRV" S ORVITALS("PROVIDER",1)=ORQCODE Q
  1. . I ORQTYPE="VST" D Q
  1. .. I ORQCODE="DT" D Q
  1. ... S ORQNODT=0
  1. ... S ORQITEM=$P(ORQDATAX,"^",3)
  1. ... S $P(ORVITALS("ENCOUNTER"),"^",1)=ORQITEM
  1. ... I ORQITEM>$$NOW^XLFDT D
  1. .... S ORRETINX=ORRETINX+1
  1. .... S ORRETURN(ORRETINX)=ORINDEX1_"^ERROR^Date/Time entered cannot be in the future^"_$$FMTE^XLFDT(ORQITEM)
  1. .... S ORRETURN(0)=-1
  1. ... I ORQITEM'>1800000 D
  1. .... S ORRETINX=ORRETINX+1
  1. .... S ORRETURN(ORRETINX)=ORINDEX1_"^ERROR^Encounter Date/Time not valid^"_ORQITEM
  1. .... S ORRETURN(0)=-1
  1. .. I ORQCODE="PT" D Q
  1. ... S ORQNOPT=0
  1. ... S ORQITEM=$P(ORQDATAX,"^",3)
  1. ... S $P(ORVITALS("ENCOUNTER"),"^",2)=ORQITEM
  1. ... I '($D(^DPT(+ORQITEM,0))#2) D
  1. .... S ORRETINX=ORRETINX+1
  1. .... S ORRETURN(ORRETINX)=ORINDEX1_"^ERROR^Patient missing or invalid in file 2^"_ORQITEM
  1. .... S ORRETURN(0)=-1
  1. .. I ORQCODE="HL" D Q
  1. ... S ORQNOHL=0
  1. ... S ORQITEM=$P(ORQDATAX,"^",3)
  1. ... S $P(ORVITALS("ENCOUNTER"),"^",3)=ORQITEM
  1. ... I '$D(^SC(ORQITEM,0)) D
  1. .... S ORRETINX=ORRETINX+1
  1. .... S ORRETURN(ORRETINX)=ORINDEX1_"^ERROR^HOSPITAL LOCATION Missing is not in file 44^"_ORQITEM
  1. .... S ORRETURN(0)=-1
  1. ...; I $D(^PX(815,1,"DHL","B",ORQITEM)) D
  1. ...;. S ORRETINX=ORRETINX+1
  1. ...;. S ORRETURN(ORRETINX)=ORINDEX1_"^ERROR^HOSPITAL LOCATION Can not be a disposition clinic^"_ORQITEM
  1. ...;. S ORRETURN(0)=-1
  1. . I ORQTYPE="VIT" D Q
  1. .. S ORINDEX2=ORINDEX2+1
  1. .. S ORQVIT(ORINDEX2)=ORINDEX1
  1. .. S ORVITALS("VITALS",+$P(ORQDATAX,"^",6),ORINDEX2)=ORQCODE_"^"_$P(ORQDATAX,"^",5)_"^"_$P(ORQDATAX,"^",7,8)
  1. I ORQNODT D
  1. . S ORRETINX=ORRETINX+1
  1. . S ORRETURN(ORRETINX)="^ERROR^Required data item, ENCOUNTER DATE/TIME, is missing^"
  1. . S ORRETURN(0)=-1
  1. I ORQNOPT D
  1. . S ORRETINX=ORRETINX+1
  1. . S ORRETURN(ORRETINX)="^ERROR^Required data item, PATIENT, is missing^"
  1. . S ORRETURN(0)=-1
  1. I ORQNOHL D
  1. . S ORRETINX=ORRETINX+1
  1. . S ORRETURN(ORRETINX)="^ERROR^Required data item, HOSPITAL LOCATION, is missing^"
  1. . S ORRETURN(0)=-1
  1. Q
  1. ;
  1. POSTVIT(ORRETURN,ORQVIT,ORVITALS) ;return errors and warnings
  1. N ORVAR,ORINDEX,ORQTYPE
  1. S ORINDEX=$O(ORRETURN(""),-1)
  1. F ORQTYPE="WARNING","ERROR" D
  1. . S ORVAR="ORVITALS("""_ORQTYPE_""")"
  1. . F S ORVAR=$Q(@ORVAR) Q:ORVAR'[("ORVITALS("""_ORQTYPE_"""") D
  1. .. S ORINDEX=ORINDEX+1
  1. .. S ORRETURN(ORINDEX)=$G(ORQVIT($P(ORVAR,",",4)))_"^"_ORQTYPE_"^"_@ORVAR
  1. .. I ORQTYPE="WARNING" S:ORRETURN(0)>0 ORRETURN(0)=0
  1. .. E S ORRETURN(0)=-1
  1. Q
  1. ;
  1. HELP(ORQLST,ORQTYPE) ; This procedure will return help for a particular
  1. ; measurement type in an array.
  1. ; Input
  1. ; Variables: ORQTYPE=Type of measurement (abbreviation
  1. ; (req.) from PCE Device Interface Specification).
  1. ; ORQLST=Array root to store help text in
  1. ;
  1. D HELP^GMRVPCE0(ORQTYPE,"ORQLST")
  1. Q
  1. ;
  1. RATECHK(ORRETURN,ORQTYPE,ORQRATE,ORQUNIT) ;
  1. ; Extrinsic function to validate the
  1. ; rate for a particular measurement
  1. ; Input
  1. ; Variables: ORQTYPE=Type of measurement (abbreviation
  1. ; (req.) from PCE Device Interface Specification).
  1. ; ORQRATE=Measurement rate to be validated.
  1. ; (req.)
  1. ; ORQUNIT=Unit of measurement for rate, if specified.
  1. ; (opt.)
  1. ; Return value: 1 if rate is valid.
  1. ; 0 if rate is invalid.
  1. ;
  1. S ORRETURN=$$RATECHK^GMRVPCE0(ORQTYPE,ORQRATE,$G(ORQUNIT))
  1. Q
  1. ;
  1. VMTYPES(ORRETURN,ORQTYPE) ;
  1. ; This function returns one if ORQTYPE is a valid type abbrev.
  1. ; from the PCE Device Interface Specification.
  1. S ORRETURN=$$VMTYPES^GMRVPCE0(ORQTYPE)
  1. Q