[613] | 1 | ORQQVI1 ;SLC/STAFF- Vitals rpc grid ;2/4/99 21:11
|
---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10**;Dec 17, 1997
|
---|
| 3 | ;
|
---|
| 4 | TEST ; test use only
|
---|
| 5 | N CNT,I K ^TMP("ORQQVX",$J)
|
---|
| 6 | S ^TMP("ORQQVX",$J,"INPUT",1)="16^2970902^2920202^3"
|
---|
| 7 | S CNT=1
|
---|
| 8 | F I="WEIGHT","RESPIRATION","PULSE","HEIGHT" S CNT=CNT+1,^TMP("ORQQVX",$J,"INPUT",CNT)=I
|
---|
| 9 | D GRIDDATA
|
---|
| 10 | S I=0 F S I=$O(^TMP("ORQQVX",$J,"OUTPUT",I)) Q:I<1 W !,^(I)
|
---|
| 11 | K ^TMP("ORQQVX",$J)
|
---|
| 12 | Q
|
---|
| 13 | ;
|
---|
| 14 | DETAIL(ROOT,DFN,DATE1,DATE2,RTIMES,TESTS) ; from Remote Procedure file
|
---|
| 15 | N CNT,NUM,TEMPDATE
|
---|
| 16 | I DATE1<DATE2 S TEMPDATE=DATE1,DATE1=DATE2,DATE2=TEMPDATE
|
---|
| 17 | K ^TMP("ORQQVX",$J,"INPUT"),^("OUTPUT")
|
---|
| 18 | S ROOT=$NA(^TMP("ORQQVX",$J,"OUTPUT"))
|
---|
| 19 | S ^TMP("ORQQVX",$J,"INPUT",1)=DFN_U_DATE1_U_DATE2_U_RTIMES
|
---|
| 20 | S CNT=1,NUM=0 F S NUM=$O(TESTS(NUM)) Q:NUM<1 D
|
---|
| 21 | .S CNT=CNT+1
|
---|
| 22 | .S ^TMP("ORQQVX",$J,"INPUT",CNT)=TESTS(NUM)
|
---|
| 23 | D MEMODATA
|
---|
| 24 | Q
|
---|
| 25 | ;
|
---|
| 26 | MEMODATA ;
|
---|
| 27 | ; input format
|
---|
| 28 | ; ^TMP("ORQQVX",$J,"INPUT",1)=dfn^start date^end date^restrict # time values
|
---|
| 29 | ; ^TMP("ORQQVX",$J,"INPUT",#)=test# (tests displayed in this order)
|
---|
| 30 | ;
|
---|
| 31 | S ^TMP("ORQQVX",$J,"OUTPUT",1)=""
|
---|
| 32 | N CHECKOK,DATANUM,DATESEQ,DATETIME,DFN,EDATE,EDT,ENTERBY,IDT,LINE,LINE1,LOC,MAIN,NUM,OUTCNT,RCNT,RQUIT,RESULT,RTIMES,SDATE,TESTNAME,TESTNUM,TESTSEQ,VCNT,ZERO
|
---|
| 33 | K ^TMP("ORQQV",$J)
|
---|
| 34 | S DFN=+^TMP("ORQQVX",$J,"INPUT",1),SDATE=+$P(^(1),U,2),EDATE=+$P(^(1),U,3),RTIMES=+$P(^(1),U,4)
|
---|
| 35 | Q:'DFN I 'SDATE,'EDATE,'RTIMES Q
|
---|
| 36 | I RTIMES,'SDATE,'EDATE S SDATE=DT,EDATE=2750101
|
---|
| 37 | I SDATE,'EDATE Q
|
---|
| 38 | I EDATE,'SDATE Q
|
---|
| 39 | S OUTCNT=1,TESTSEQ=0
|
---|
| 40 | S NUM=1 F S NUM=$O(^TMP("ORQQVX",$J,"INPUT",NUM)) Q:NUM<1 S TESTNAME=^(NUM) D
|
---|
| 41 | .S TESTNAME=$$UP^XLFSTR(TESTNAME)
|
---|
| 42 | .S TESTNUM=$$FIND1^DIC(120.51,"","BX",TESTNAME,"","","ERR")
|
---|
| 43 | .I 'TESTNUM Q
|
---|
| 44 | .S TESTSEQ=TESTSEQ+1
|
---|
| 45 | .S LINE=TESTSEQ_U_TESTNUM_U_$$MIXED^ORU(TESTNAME)
|
---|
| 46 | .S ^TMP("ORQQV",$J,"TEST",TESTSEQ)=LINE
|
---|
| 47 | .S OUTCNT=OUTCNT+1
|
---|
| 48 | S EDATE=EDATE\1
|
---|
| 49 | S EDT=9999999-EDATE
|
---|
| 50 | S TESTSEQ=0 F S TESTSEQ=$O(^TMP("ORQQV",$J,"TEST",TESTSEQ)) Q:TESTSEQ<1 S TESTNUM=$P(^(TESTSEQ),U,2) D
|
---|
| 51 | .S IDT=9999999-SDATE,(RCNT,RQUIT)=0
|
---|
| 52 | .F S IDT=$O(^GMR(120.5,"AA",DFN,TESTNUM,IDT)) Q:IDT<1 Q:IDT>EDT D Q:RQUIT
|
---|
| 53 | ..S DATANUM=0 F S DATANUM=$O(^GMR(120.5,"AA",DFN,TESTNUM,IDT,DATANUM)) Q:DATANUM<1 D Q:RQUIT
|
---|
| 54 | ...Q:$P($G(^GMR(120.5,DATANUM,2)),U) S ZERO=$G(^(0))
|
---|
| 55 | ...Q:$P(ZERO,U,2)'=DFN Q:$P(ZERO,U,3)'=TESTNUM
|
---|
| 56 | ...S RESULT=$$STRIP^ORCMEDIT($P(ZERO,U,8)),DATETIME=$P(ZERO,U),LOC=+$P(ZERO,U,5),ENTERBY=+$P(ZERO,U,6)
|
---|
| 57 | ...S ^TMP("ORQQV",$J,"RESULTS",IDT)=DATETIME_U_LOC_U_ENTERBY ;$$FMTE^XLFDT(DATETIME)_" Location: "_$P($G(^SC(+$P(ZERO,U,5),0)),U)_" Entered by: "_$P($G(^VA(200,+$P(ZERO,U,6),0)),U)
|
---|
| 58 | ...S LINE=" "_$P(^TMP("ORQQV",$J,"TEST",TESTSEQ),U,3)
|
---|
| 59 | ...S LINE=$$SETSTR^VALM1(RESULT,LINE,22,1+$L(RESULT))_U_LOC_U_ENTERBY
|
---|
| 60 | ...S ^TMP("ORQQV",$J,"RESULTS",IDT,TESTSEQ)=LINE
|
---|
| 61 | ...I RTIMES S RCNT=RCNT+1 I RCNT=RTIMES S RQUIT=1
|
---|
| 62 | S (DATESEQ,RCNT,RQUIT,VCNT)=0
|
---|
| 63 | S IDT=0 F S IDT=$O(^TMP("ORQQV",$J,"RESULTS",IDT)) Q:IDT<1 S LINE=^(IDT) D Q:RQUIT
|
---|
| 64 | .S CHECKOK=1 D
|
---|
| 65 | ..S MAIN=$P(LINE,U,2,3)
|
---|
| 66 | ..S TESTSEQ=0 F S TESTSEQ=$O(^TMP("ORQQV",$J,"RESULTS",IDT,TESTSEQ)) Q:TESTSEQ<1 S RESULT=$P(^(TESTSEQ),U,2,3) I RESULT'=MAIN S CHECKOK=0 Q
|
---|
| 67 | .I CHECKOK D
|
---|
| 68 | ..S DATETIME=$$FMTE^XLFDT($P(LINE,U)),DATETIME=$P(DATETIME,":",1,2)
|
---|
| 69 | ..S DATETIME=DATETIME_" Location: "_$P($G(^SC($P(LINE,U,2),0)),U)
|
---|
| 70 | ..S DATETIME=$$SETSTR^VALM1(" Entered by: "_$P($G(^VA(200,$P(LINE,U,3),0)),U),DATETIME,50,30)
|
---|
| 71 | .E S DATETIME=$$FMTE^XLFDT($P(LINE,U)),DATETIME=$P(DATETIME,":",1,2)
|
---|
| 72 | .S DATESEQ=DATESEQ+1
|
---|
| 73 | .S OUTCNT=OUTCNT+1
|
---|
| 74 | .S ^TMP("ORQQVX",$J,"OUTPUT",OUTCNT)=DATETIME
|
---|
| 75 | .S TESTSEQ=0 F S TESTSEQ=$O(^TMP("ORQQV",$J,"RESULTS",IDT,TESTSEQ)) Q:TESTSEQ<1 S LINE1=^(TESTSEQ) D
|
---|
| 76 | ..I CHECKOK S RESULT=$P(LINE1,U)
|
---|
| 77 | ..E D
|
---|
| 78 | ...S RESULT=$$SETSTR^VALM1(" Location: "_$P($G(^SC($P(LINE1,U,2),0)),U),$P(LINE1,U),30,25)
|
---|
| 79 | ...S RESULT=$$SETSTR^VALM1(" Entered by; "_$P($G(^VA(200,$P(LINE1,U,3),0)),U),RESULT,50,30)
|
---|
| 80 | ..S OUTCNT=OUTCNT+1
|
---|
| 81 | ..S ^TMP("ORQQVX",$J,"OUTPUT",OUTCNT)=RESULT
|
---|
| 82 | .I RTIMES S RCNT=RCNT+1 I RCNT=RTIMES S RQUIT=1
|
---|
| 83 | K ^TMP("ORQQV",$J)
|
---|
| 84 | Q
|
---|
| 85 | ;
|
---|
| 86 | GRID(ROOT,DFN,DATE1,DATE2,RTIMES,TESTS) ; from Remote Procedure file
|
---|
| 87 | N CNT,NUM,TEMPDATE
|
---|
| 88 | I DATE1<DATE2 S TEMPDATE=DATE1,DATE1=DATE2,DATE2=TEMPDATE
|
---|
| 89 | K ^TMP("ORQQVX",$J,"INPUT"),^("OUTPUT")
|
---|
| 90 | S ROOT=$NA(^TMP("ORQQVX",$J,"OUTPUT"))
|
---|
| 91 | S ^TMP("ORQQVX",$J,"INPUT",1)=DFN_U_DATE1_U_DATE2_U_RTIMES
|
---|
| 92 | S CNT=1,NUM=0 F S NUM=$O(TESTS(NUM)) Q:NUM<1 D
|
---|
| 93 | .S CNT=CNT+1
|
---|
| 94 | .S ^TMP("ORQQVX",$J,"INPUT",CNT)=TESTS(NUM)
|
---|
| 95 | D GRIDDATA
|
---|
| 96 | Q
|
---|
| 97 | ;
|
---|
| 98 | GRIDDATA ;
|
---|
| 99 | ; input format
|
---|
| 100 | ; ^TMP("ORQQVX",$J,"INPUT",1)=dfn^start date^end date^restrict # time values
|
---|
| 101 | ; ^TMP("ORQQVX",$J,"INPUT",#)=test# (tests displayed in this order)
|
---|
| 102 | ;
|
---|
| 103 | S ^TMP("ORQQVX",$J,"OUTPUT",1)="0^0^0"
|
---|
| 104 | N DATANUM,DATESEQ,DATETIME,DFN,EDATE,EDT,IDT,LINE,NUM,OUTCNT,RCNT,RQUIT,RESULT,RTIMES,SDATE,TESTNAME,TESTNUM,TESTSEQ,VALUES,VCNT,ZERO
|
---|
| 105 | K ^TMP("ORQQV",$J)
|
---|
| 106 | S DFN=+^TMP("ORQQVX",$J,"INPUT",1),SDATE=+$P(^(1),U,2),EDATE=+$P(^(1),U,3),RTIMES=+$P(^(1),U,4)
|
---|
| 107 | Q:'DFN I 'SDATE,'EDATE,'RTIMES Q
|
---|
| 108 | I RTIMES,'SDATE,'EDATE S SDATE=DT,EDATE=2750101
|
---|
| 109 | I SDATE,'EDATE Q
|
---|
| 110 | I EDATE,'SDATE Q
|
---|
| 111 | S OUTCNT=1,TESTSEQ=0
|
---|
| 112 | S NUM=1 F S NUM=$O(^TMP("ORQQVX",$J,"INPUT",NUM)) Q:NUM<1 S TESTNAME=^(NUM) D
|
---|
| 113 | .S TESTNAME=$$UP^XLFSTR(TESTNAME)
|
---|
| 114 | .S TESTNUM=$$FIND1^DIC(120.51,"","BX",TESTNAME,"","","ERR")
|
---|
| 115 | .I 'TESTNUM Q
|
---|
| 116 | .S TESTSEQ=TESTSEQ+1
|
---|
| 117 | .S LINE=TESTSEQ_U_TESTNUM_U_TESTNAME
|
---|
| 118 | .S ^TMP("ORQQV",$J,"TEST",TESTSEQ)=LINE
|
---|
| 119 | .S OUTCNT=OUTCNT+1
|
---|
| 120 | .S ^TMP("ORQQVX",$J,"OUTPUT",OUTCNT)=LINE
|
---|
| 121 | S ^TMP("ORQQVX",$J,"OUTPUT",1)=TESTSEQ
|
---|
| 122 | S EDATE=EDATE\1
|
---|
| 123 | S EDT=9999999-EDATE
|
---|
| 124 | S TESTSEQ=0 F S TESTSEQ=$O(^TMP("ORQQV",$J,"TEST",TESTSEQ)) Q:TESTSEQ<1 S TESTNUM=$P(^(TESTSEQ),U,2) D
|
---|
| 125 | .S IDT=9999999-SDATE,(RCNT,RQUIT)=0
|
---|
| 126 | .F S IDT=$O(^GMR(120.5,"AA",DFN,TESTNUM,IDT)) Q:IDT<1 Q:IDT>EDT D Q:RQUIT
|
---|
| 127 | ..S DATANUM=0 F S DATANUM=$O(^GMR(120.5,"AA",DFN,TESTNUM,IDT,DATANUM)) Q:DATANUM<1 D Q:RQUIT
|
---|
| 128 | ...Q:$P($G(^GMR(120.5,DATANUM,2)),U) S ZERO=$G(^(0))
|
---|
| 129 | ...Q:$P(ZERO,U,2)'=DFN Q:$P(ZERO,U,3)'=TESTNUM
|
---|
| 130 | ...S RESULT=$$STRIP^ORCMEDIT($P(ZERO,U,8)),DATETIME=$P(ZERO,U)
|
---|
| 131 | ...S ^TMP("ORQQV",$J,"RESULTS",IDT)=DATETIME
|
---|
| 132 | ...S ^TMP("ORQQV",$J,"RESULTS",IDT,TESTSEQ)=RESULT
|
---|
| 133 | ...I RTIMES S RCNT=RCNT+1 I RCNT=RTIMES S RQUIT=1
|
---|
| 134 | S (DATESEQ,RCNT,RQUIT,VCNT)=0
|
---|
| 135 | S IDT="A" F S IDT=$O(^TMP("ORQQV",$J,"RESULTS",IDT),-1) Q:IDT="" S DATETIME=^(IDT) D Q:RQUIT
|
---|
| 136 | .S DATESEQ=DATESEQ+1
|
---|
| 137 | .S OUTCNT=OUTCNT+1
|
---|
| 138 | .S ^TMP("ORQQVX",$J,"OUTPUT",OUTCNT)=DATESEQ_U_DATETIME
|
---|
| 139 | .S TESTSEQ=0 F S TESTSEQ=$O(^TMP("ORQQV",$J,"RESULTS",IDT,TESTSEQ)) Q:TESTSEQ<1 S RESULT=^(TESTSEQ) D
|
---|
| 140 | ..S VCNT=VCNT+1
|
---|
| 141 | ..S ^TMP("ORQQV",$J,"VALUES",VCNT)=DATESEQ_U_TESTSEQ_U_RESULT
|
---|
| 142 | .I RTIMES S RCNT=RCNT+1 I RCNT=RTIMES S RQUIT=1
|
---|
| 143 | S $P(^TMP("ORQQVX",$J,"OUTPUT",1),U,2,3)=DATESEQ_U_VCNT
|
---|
| 144 | S VCNT=0 F S VCNT=$O(^TMP("ORQQV",$J,"VALUES",VCNT)) Q:VCNT<1 S VALUES=^(VCNT) D
|
---|
| 145 | .S OUTCNT=OUTCNT+1
|
---|
| 146 | .S ^TMP("ORQQVX",$J,"OUTPUT",OUTCNT)=VALUES
|
---|
| 147 | K ^TMP("ORQQV",$J)
|
---|
| 148 | Q
|
---|