| [958] | 1 | GMVDCSAV        ;HOIFO/DAD-VITALS COMPONENT: SAVE DATA ;11/15/07  11:11 | 
|---|
|  | 2 | ;;5.0;GEN. MED. REC. - VITALS;**9,3**;Oct 31, 2002;Build 15 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | ; This routine uses the following IAs: | 
|---|
|  | 5 | ; #10103 - ^XLFDT calls           (supported) | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | ; This routine supports the following IAs: | 
|---|
|  | 8 | ; #3996 - GMV ADD VM RPC called at EN1  (private) | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | ; 01/28/2005 KAM GMRV*5*9 Record midnight with 1 second added | 
|---|
|  | 11 | ;                         Stop adding second on multiple patent entry | 
|---|
|  | 12 | ; | 
|---|
|  | 13 | EN1(RESULT,GMVDATA)     ; GMV ADD VM [RPC entry point] | 
|---|
|  | 14 | ; Saves vitals data | 
|---|
|  | 15 | N GMVCNT,GMVD0,GMVFDA,GMVINUM,GMVQNUM,GMVRNUM,GMVIEN,GMVDUN | 
|---|
|  | 16 | N GMVVNUM,GMVVMEAS,GMVVQUAL,GMVVREAS | 
|---|
|  | 17 | D QUALTWO | 
|---|
|  | 18 | Q | 
|---|
|  | 19 | ;I $O(@GMVDATA@("V",0))>0 D VITMEA | 
|---|
|  | 20 | ;I $O(@GMVDATA@("I",0))>0 D ENTERR | 
|---|
|  | 21 | ;I $G(RESULT(0))="OK" D MSG("OK: Data saved") | 
|---|
|  | 22 | ;Q | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | VITMEA  ; *** Save vital measurement data *** | 
|---|
|  | 25 | S GMVVNUM=0 K GMVFDA | 
|---|
|  | 26 | S GMVCNT=+$O(@GMVDATA@("V",1E25),-1) | 
|---|
|  | 27 | F  S GMVVNUM=$O(@GMVDATA@("V",GMVVNUM)) Q:GMVVNUM'>0  D | 
|---|
|  | 28 | . S GMVVMEAS=$G(@GMVDATA@("V",GMVVNUM)) | 
|---|
|  | 29 | . S GMVFDA(120.5,"+"_GMVVNUM_",",.01)=GMVDTDUN ; Date time taken | 
|---|
|  | 30 | . S GMVFDA(120.5,"+"_GMVVNUM_",",.02)=GMVDFN   ; Patient | 
|---|
|  | 31 | . S GMVFDA(120.5,"+"_GMVVNUM_",",.03)=$P(GMVVMEAS,U) ; | 
|---|
|  | 32 | . S GMVFDA(120.5,"+"_GMVVNUM_",",.04)=GMVDTENT  ; Date Time entered | 
|---|
|  | 33 | . S GMVFDA(120.5,"+"_GMVVNUM_",",.05)=GMVHOSPL  ; Hospital | 
|---|
|  | 34 | . S GMVFDA(120.5,"+"_GMVVNUM_",",.06)=GMVENTBY  ; Entered by (DUZ) | 
|---|
|  | 35 | . S GMVFDA(120.5,"+"_GMVVNUM_",",1.2)=$P($P(GMVVMEAS,U,2),";",1) ; Rate | 
|---|
|  | 36 | . S GMVFDA(120.5,"+"_GMVVNUM_",",1.4)=$P($P(GMVVMEAS,U,2),";",2) ; Sup 02 | 
|---|
|  | 37 | . S GMVQNUM=0 | 
|---|
|  | 38 | . F  S GMVQNUM=$O(@GMVDATA@("Q",GMVVNUM,GMVQNUM)) Q:GMVQNUM'>0  D | 
|---|
|  | 39 | .. S GMVVQUAL=$G(@GMVDATA@("Q",GMVVNUM,GMVQNUM)) | 
|---|
|  | 40 | .. S GMVCNT=GMVCNT+1 | 
|---|
|  | 41 | .. S GMVFDA(120.505,"+"_GMVCNT_",","+"_GMVVNUM_",",.01)=GMVVQUAL | 
|---|
|  | 42 | .. Q | 
|---|
|  | 43 | . Q | 
|---|
|  | 44 | D UPDATE^DIE("","GMVFDA"),FMERROR | 
|---|
|  | 45 | S RESULT(0)="OK" | 
|---|
|  | 46 | Q | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | ENTERR  ; *** Save entered in error data *** | 
|---|
|  | 49 | S GMVINUM=0 K GMVFDA | 
|---|
|  | 50 | S GMVCNT=+$O(@GMVDATA@("I",1E25),-1) | 
|---|
|  | 51 | F  S GMVINUM=$O(@GMVDATA@("I",GMVINUM)) Q:GMVINUM'>0  D | 
|---|
|  | 52 | . S GMVD0=$G(@GMVDATA@("I",GMVINUM)) | 
|---|
|  | 53 | . S GMVFDA(120.5,GMVD0_",",2)=1 | 
|---|
|  | 54 | . S GMVFDA(120.5,GMVD0_",",3)=GMVERRBY | 
|---|
|  | 55 | . S GMVRNUM=0 | 
|---|
|  | 56 | . F  S GMVRNUM=$O(@GMVDATA@("R",GMVINUM,GMVRNUM)) Q:GMVRNUM'>0  D | 
|---|
|  | 57 | .. S GMVVREAS=$G(@GMVDATA@("R",GMVINUM,GMVRNUM)) | 
|---|
|  | 58 | .. S GMVCNT=GMVCNT+1 | 
|---|
|  | 59 | .. S GMVFDA(120.506,"+"_GMVCNT_","_GMVD0_",",.01)=GMVVREAS | 
|---|
|  | 60 | .. Q | 
|---|
|  | 61 | . Q | 
|---|
|  | 62 | D UPDATE^DIE("","GMVFDA"),FMERROR | 
|---|
|  | 63 | S RESULT(0)="OK" | 
|---|
|  | 64 | Q | 
|---|
|  | 65 | QUALTWO ; Add a new entry to FILE 120.5 | 
|---|
|  | 66 | S GMVVNUM=0 K GMVFDA | 
|---|
|  | 67 | S GMVVMEAS=$P(GMVDATA,"*",1) ; | 
|---|
|  | 68 | S GMVDTDUN=$P(GMVVMEAS,"^",1) ; Date time | 
|---|
|  | 69 | ;01/28/2005 KAM GMRV*5*9 Added next Line PAL-0105-60940 | 
|---|
|  | 70 | I +$P(GMVDTDUN,".",2)'>0 S GMVDTDUN=$$FMADD^XLFDT(GMVDTDUN,"","","",1) | 
|---|
|  | 71 | S GMVDFN=$P(GMVVMEAS,"^",2) ; Patient DFN | 
|---|
|  | 72 | S GMVVTYP=$P(GMVVMEAS,"^",3) ; Vital type | 
|---|
|  | 73 | S GMVDTDUN=$$CHKDT(GMVDTDUN,$P(GMVVTYP,";",1)) | 
|---|
|  | 74 | S GMVDTENT=$$NOW^XLFDT ; Current date time | 
|---|
|  | 75 | S GMVHOSPL=$P(GMVVMEAS,"^",4) ; Hospital | 
|---|
|  | 76 | S GMVENTBY=$P(GMVVMEAS,"^",5) ; DUZ | 
|---|
|  | 77 | S GMVFDA(120.5,"+1,",.01)=GMVDTDUN ; Date time taken | 
|---|
|  | 78 | S GMVFDA(120.5,"+1,",.02)=GMVDFN   ; Patient | 
|---|
|  | 79 | S GMVFDA(120.5,"+1,",.03)=$P(GMVVTYP,";",1)   ; Vital Type | 
|---|
|  | 80 | S GMVFDA(120.5,"+1,",.04)=GMVDTENT  ; Date Time entered | 
|---|
|  | 81 | S GMVFDA(120.5,"+1,",.05)=GMVHOSPL  ; Hospital | 
|---|
|  | 82 | S GMVFDA(120.5,"+1,",.06)=GMVENTBY  ; Entered by (DUZ) | 
|---|
|  | 83 | S GMVFDA(120.5,"+1,",1.2)=$P(GMVVTYP,";",2) ; Rate | 
|---|
|  | 84 | S GMVFDA(120.5,"+1,",1.4)=$P(GMVVTYP,";",3) ; Sup 02 | 
|---|
|  | 85 | S GMVIEN="" | 
|---|
|  | 86 | D UPDATE^DIE("","GMVFDA","GMVIEN"),FMERROR | 
|---|
|  | 87 | S GMVCNT=1 | 
|---|
|  | 88 | S GMVQUALS=$P(GMVDATA,"*",2) | 
|---|
|  | 89 | F GMVLOOP=1:1:$L(GMVQUALS,":")+1 D | 
|---|
|  | 90 | . S GMVVQUAL=$P(GMVQUALS,":",GMVLOOP) | 
|---|
|  | 91 | . Q:GMVVQUAL="" | 
|---|
|  | 92 | . S GMVCNT=GMVCNT+1 | 
|---|
|  | 93 | . D ADDQUAL^GMVGETQ(.GMVRES,GMVIEN(1)_"^"_GMVVQUAL) | 
|---|
|  | 94 | . Q | 
|---|
|  | 95 | I "^HT^WT^CG^"[$P($G(^GMRD(120.51,+GMVVTYP,0)),U,2) D EN^GMRVPGC(GMVDFN) | 
|---|
|  | 96 | Q | 
|---|
|  | 97 | ; | 
|---|
|  | 98 | CHKDT(GMVDT,GMVSAV)     ;Check id there ios a vital entered for that date and time | 
|---|
|  | 99 | N GMVA,GMVQ | 
|---|
|  | 100 | S GMVQ=0 | 
|---|
|  | 101 | S GMVA="" | 
|---|
|  | 102 | F  S GMVA=$O(^GMR(120.5,"B",GMVDT,GMVA)) Q:GMVA=""  D | 
|---|
|  | 103 | . ;01/28/2005 KAM GMRV*5*9 Added next Line BHS-0504-10643 | 
|---|
|  | 104 | . I GMVDFN'=$P($G(^GMR(120.5,GMVA,0)),U,2) Q | 
|---|
|  | 105 | . S GMVTY=$P($G(^GMR(120.5,GMVA,0)),"^",3) | 
|---|
|  | 106 | . I GMVTY=GMVSAV D | 
|---|
|  | 107 | . . S GMVDT=$$FMADD^XLFDT(GMVDT,"","","",1) | 
|---|
|  | 108 | . . Q | 
|---|
|  | 109 | . Q | 
|---|
|  | 110 | Q GMVDT | 
|---|
|  | 111 | MSG(X)  ; *** Add a line to the message array *** | 
|---|
|  | 112 | S (GMVMSG,RESULT(-1))=1+$G(RESULT(-1),0) | 
|---|
|  | 113 | S RESULT(GMVMSG)=X | 
|---|
|  | 114 | I $P(X,":")="ERROR" S RESULT(0)="ERROR" | 
|---|
|  | 115 | Q | 
|---|
|  | 116 | ; | 
|---|
|  | 117 | FMERROR ; | 
|---|
|  | 118 | I $O(^TMP("DIERR",$J,0))>0 D | 
|---|
|  | 119 | . N GMVER1,GMVER2 | 
|---|
|  | 120 | . S GMVER1=0 | 
|---|
|  | 121 | . F  S GMVER1=$O(^TMP("DIERR",$J,GMVER1)) Q:GMVER1'>0  D | 
|---|
|  | 122 | .. S GMVER2=0 | 
|---|
|  | 123 | .. F  S GMVER2=$O(^TMP("DIERR",$J,GMVER1,"TEXT",GMVER2)) Q:GMVER2'>0  D | 
|---|
|  | 124 | ... D MSG("ERROR: "_$G(^TMP("DIERR",$J,GMVER1,"TEXT",GMVER2))) | 
|---|
|  | 125 | ... Q | 
|---|
|  | 126 | .. Q | 
|---|
|  | 127 | . Q | 
|---|
|  | 128 | D CLEAN^DILF | 
|---|
|  | 129 | Q | 
|---|