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

ORVIMM.m

Go to the documentation of this file.
ORVIMM ;SLC/AGP - VIMM RPCS;Mar 08, 2022@15:32:28
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**405**;Dec 17, 1997;Build 211
 Q
 ;
 ;ICR
 ;4478    ^TIU(8925.1,IEN,0)
 ;4476    8925.1, FM call
 ;
 ;
CHKTITLE(RESULT,USER,ENCUSER,DATETIME) ;
 N NAME,OROKAY,ORTITLE
 S ORTITLE=$$GET^XPAR("ALL","OR IMMUNIZATION DOCUMENT TITLE",1,"I")
 I ORTITLE'>0 S RESULT="-1^No Immunization note title defined" Q
 S NAME=$P($G(^TIU(8925.1,+ORTITLE,0)),U)
 I NAME="" S RESULT="-1^Immunization note title cannot be found" Q
 I $P(^TIU(8925.1,+ORTITLE,0),U,4)'="DOC" S RESULT="-1^Note entry "_NAME_" has the wrong document class" Q
 I +$$GET1^DIQ(8925.1,+ORTITLE,.07,"I")'=11 S RESULT="-1^Note title "_NAME_" is inactive" Q
 D REQCOS^TIUSRVA(.OROKAY,+ORTITLE,"",USER,DATETIME)
 I OROKAY=0 S RESULT=ORTITLE Q
 I USER=ENCUSER S RESULT="0^"_+ORTITLE Q
 K OROKAY D REQCOS^TIUSRVA(.OROKAY,+ORTITLE,"",ENCUSER,DATETIME)
 I OROKAY=0 S RESULT="1^"_ORTITLE_U_ENCUSER Q
 S RESULT="0^"_+ORTITLE
 Q
 ;
GETCODES(RESULTS,VISIT,ITEMLIST) ;
 D IMMADMCODES^PXVRPC4(.RESULTS,VISIT,.ITEMLIST,1)
 Q
 ;
GETCTINF(RESULT,LOC) ;
 N DIV,ENT,TEMP
 S DIV=DUZ(2)
 S TEMP=+$P($G(^SC(+LOC,0)),U,15) I TEMP>0,$P($G(^DG(40.8,TEMP,0)),U,7)'="" S DIV=$P($G(^DG(40.8,TEMP,0)),U,7)
 S ENT="DIV.`"_DIV_"^SYS^PKG"
 S RESULT=$$GET^XPAR(ENT,"OR IMM CONTACT INFORMATION")
 Q
 ;
GETITEMS(RESULTS,DEFIEN,TYPE) ;
 N CNT,IEN,ORITEMS
 D DEF^PXRMFLST(.ORITEMS,DEFIEN)
 I '$D(ORITEMS(TYPE)) Q
 S CNT=0,IEN=0 F  S IEN=$O(ORITEMS(TYPE,IEN)) Q:IEN'>0  S CNT=CNT+1,RESULTS(CNT)=IEN
 Q
 ;
GETHIST(RESULTS,DEFIEN,PAT,TYPE) ;
 N CNT,IEN,ORLIST,ORITEMS
 D DEF^PXRMFLST(.ORITEMS,+DEFIEN)
 I '$D(ORITEMS(TYPE)) Q
 S CNT=0,IEN=0 F  S IEN=$O(ORITEMS(TYPE,IEN)) Q:IEN'>0  S CNT=CNT+1,ORLIST(IEN)=""
 I TYPE="ST" S TYPE="SK"
 ;agp dummy data
 D HIST^PXAPIIM(.RESULTS,TYPE,.ORLIST,PAT,1)
 Q
 ;
MAKENOTE(OUT,INPUT,DATE,LOC,TYPE,VSTR,PAT,USER,COSIGNER) ;
 ;scheduling ICR 10040
 N CHANGE,CNT,DATETIME,LCNT,DFN,TITLE,TIUX,VSIT,TIUX,SUPPRESS,NOASF
 S DFN=PAT
 S TITLE=$$GET^XPAR("ALL","OR IMMUNIZATION DOCUMENT TITLE",1,"I")
 I TITLE'>0 Q
 S DATETIME=$$NOW^XLFDT
 ;Request needed for ICR 2321
 I $P(^TIU(8925.1,+TITLE,0),U,4)'="DOC" Q
 I +$$GET1^DIQ(8925.1,TITLE,.07,"I")'=11 Q
 S NOASF=1
 S TIUX(1201)=DATETIME ; entry date and time
 S TIUX(1202)=USER ; author
 S TIUX(1204)=USER ; expected signer
 I +COSIGNER>0 S TIUX(1208)=COSIGNER
 S TIUX(1301)=$$NOW^XLFDT ; reference date/time (this can be something other than NOW)
 S CNT=0,LCNT=0 F  S CNT=$O(INPUT(CNT)) Q:CNT'>0  S LCNT=LCNT+1,TIUX("TEXT",LCNT,0)=$G(INPUT(CNT))
 D MAKE^TIUSRVP(.OUT,DFN,TITLE,DATE,LOC,0,.TIUX,VSTR,"",NOASF)
 I OUT>0 D
 .S CHANGE=$P($$FMTE^XLFDT(DATE,2),"@")
 .S CHANGE=CHANGE_" "_$P(^TIU(8925.1,+TITLE,0),U)_", "_$P(^SC(LOC,0),U)_" "_$$TITLE^XLFSTR($P(^VA(200,USER,0),U))
 .S OUT=OUT_U_CHANGE_U_DATETIME
 Q
 ;
PLOC(RESULT,LOCIEN) ;
 S RESULT=+$$GET^XPAR("LOC.`"_LOCIEN,"OR IMM COVERSHEET DIAGNOSIS",1,"I")
 Q
 ;
USEICE(RESULT) ;
 S RESULT=+$$GET^XPAR("ALL","OR VIMM USE ICE",1,"I")
 Q
 ;
VIMMREM(RESULT,PAT,USER,LOC,ISSKIN) ;
 N CNT,DEFARR,ERR,FIEVAL,ENT,NODE,PARAM,PXRMARY,RIEN,REMARR,RNAME,RSTAT,TEMPARR,X,Y
 S PARAM=$S(ISSKIN:"OR VIMM SKIN REMINDERS",1:"OR VIMM IMM REMINDERS")
 D GETLST^XPAR(.PXRMARY,"PKG",PARAM,"Q",.ERR)
 F X=1:1:PXRMARY S REMARR($P(PXRMARY(X),U,2))=""
 S ENT="USR^LOC.`"_LOC_"^DIV^SYS"
 K PXRMARY
 D GETLST^XPAR(.PXRMARY,ENT,PARAM,"Q",.ERR)
 F X=1:1:PXRMARY S REMARR($P(PXRMARY(X),U,2))=""
 S RIEN=0 F  S RIEN=$O(REMARR(RIEN)) Q:RIEN'>0  D
 .S NODE=$G(^PXD(811.9,RIEN,0))
 .S RNAME=$S($P(NODE,U,3)'="":$P(NODE,U,3),1:$P(NODE,U))
 .D DEF^PXRMLDR(RIEN,.DEFARR)
 .K FIEVAL
 .D EVAL^PXRM(PAT,.DEFARR,1,1,.FIEVAL,DT)
 .S RSTAT=$G(^TMP("PXRHM",$J,RIEN,RNAME))
 .K ^TMP("PXRHM",$J,RIEN)
 .F Y=1,2,3 D
 ..I +$P(RSTAT,U,Y)=0 Q
 ..S $P(RSTAT,U,Y)=$$FMTE^XLFDT($P(RSTAT,U,Y),5)
 .S TEMPARR($P(RSTAT,U),RIEN)=RNAME_U_RSTAT
 ;
 S CNT=0
 F X="DUE","DONE","RESOLVE","APPLICABLE","CONTRA","REFUSED","N/A","CNBD","ERROR" D
 .I X="DUE" D  Q
 ..F Y="DUE NOW","DUE SOON" D
 ...S RIEN=0 F  S RIEN=$O(TEMPARR(Y,RIEN)) Q:RIEN'>0  D
 ....S CNT=CNT+1,RESULT(CNT)=RIEN_U_TEMPARR(Y,RIEN)
 .S RIEN=0 F  S RIEN=$O(TEMPARR(X,RIEN)) Q:RIEN'>0  D
 ..S CNT=CNT+1,RESULT(CNT)=RIEN_U_TEMPARR(X,RIEN)
 Q
 ;