- GMVHW0 ;HIOFO/YH,FT-HP LASER WEIGHT CHART - DATA ARRAY ;12/6/01 11:35
- ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
- ;
- ; This routine uses the following IAs:
- ; #10061 - ^VADPT calls (supported)
- ;
- EN1 ;
- S GMRHT=0 K ^TMP($J,"GMR"),^TMP($J,"GMRK"),^TMP($J,"GDT"),^TMP($J,"GTNM"),GWT S GWT=0
- S GSTART1=(9999999-GMRFIN)-.0001,GEND1=9999999-GMRSTRT
- F GTYPE="H","W" D SETT^GMVWT0
- F I=1:1:8 S GWT(I)=""
- I GWT>0 S GWT=GWT\10*10-40,J=0 F I=1:1:8 S GWT(I)=GWT+(10*J),J=J+1,GWT(I)=GWT(I)_"/"_$J(GWT(I)/2.2,0,2)
- U IO D GRAPH
- Q1 D Q1^GMVWT0 K GRAPHW Q
- GRAPH ;
- D DEM^VADPT,INP^VADPT S SSN=$P(VADM(2),"^",2)
- S GPG=0 D SETV^GMVWT1 F GK="H","W" S ^TMP($J,"GTNM",GK)=0 F GI=0:0 S GI=$O(^TMP($J,"GMRVG",GK,GI)) Q:GI'>0 S GJ="" F X=0:0 S GJ=$O(^TMP($J,"GMRVG",GK,GI,GJ)) Q:GJ="" S ^TMP($J,"GTNM",GK)=^TMP($J,"GTNM",GK)+1,^TMP($J,"GDT",GI)=""
- S GTNM=0 F X=0:0 S X=$O(^TMP($J,"GDT",X)) Q:X'>0 S GTNM=GTNM+1
- S GPG=$S(GTNM=0:1,1:GTNM\10+''(GTNM#10)),GDT1=0
- F GPGS=1:1:GPG K GMRQUAL S ^TMP($J,"GMRK","G199")="Page "_GPGS D SETP^GMVWT1,DATE,PAGE D ^GMVHW1
- D KVAR^VADPT K VA Q
- PAGE ;
- ;DATA FOR WEIGHT GRAPH
- K GRAPHW S GRAPHW=0,I=1,J=161,GPA=0 F GI=141:1:150 S GRAPHW=0.6+(1.6*(I-1)) D:^TMP($J,"GMRK","G"_GI)'="" S I=I+1,J=J+1
- .S GRAPHW(I)=$S(GPA=0:"PA",1:"PD")_GRAPHW_","_^TMP($J,"GMRK","G"_GI)_";LB"_^TMP($J,"GMRK","G"_J)_"#;",GPA=1
- I $D(GMRQUAL) D LEGEND^GMVLGQU
- K GPA Q
- DATE F GCNTD=1:1:10 S:$L(GDT1) GDT1=$O(^TMP($J,"GDT",GDT1)) S ^TMP($J,"GMRK","G"_GCNTD)=$S($L(GDT1):$E(GDT1,4,5)_"-"_$E(GDT1,6,7)_"-"_$E(GDT1,2,3),1:"") D DATE1
- Q
- DATE1 S Y=$E($P(GDT1,".",2)_"0000",1,4),^TMP($J,"GMRK","G"_(GCNTD+16))=$S($L(GDT1):$E(Y,1,2)_":"_$E(Y,3,4),1:"") D SETD
- Q
- SETD F GI="H","W" S GJ=$S(GI="W":100,1:160),GK=$S($L(GDT1):$O(^TMP($J,"GMRVG",GI,GDT1,"")),1:"") D SETA
- Q
- SETA ;
- I GK="Unavailable" S GK="Unavail"
- S (GMRSITE,GMRSITE(1),GMRSITE(2),GMRINF,GMRVJ)=""
- I GK'="" D
- . S GMRSITE(1)=$P($G(^TMP($J,"GMRVG",GI,GDT1,GK)),"^"),GMRVJ=$P($G(^(GK)),"^",2),GMRINF=$P($G(^(GK)),"^",4)
- . I GMRSITE(1)'="" D SYNOARY^GMVLGQU
- I GI="H" S ^TMP($J,"GMRK","G"_(300+GCNTD))=GK,^("G"_(340+GCNTD))=GMRSITE,^TMP($J,"GMRK","G"_(320+GCNTD))=$S(GK>0:$J(GK*2.54,0,2),1:"") S:GK>0 GMRHT=GK*2.54/100 Q
- S ^TMP($J,"GMRK","G"_(180+GCNTD))=GMRSITE
- I GK>0 D
- . S GMRBMI="",GMRBMI(1)=GDT1,GMRBMI(2)=GK D CALBMI^GMVBMI(.GMRBMI)
- . S ^TMP($J,"GMRK","G"_(210+GCNTD))=$S(GMRBMI>0:GMRBMI,1:"") K GMRBMI
- S ^TMP($J,"GMRK","G"_(100+GCNTD))=GK,^TMP($J,"GMRK","G"_(120+GCNTD))=$S(GK>0:$J(GK/2.2,0,2),1:"")
- S ^TMP($J,"GMRK","G"_(140+GCNTD))=$S(GK>0:GK-(GWT-10)/5,1:"") S:GK>0 ^TMP($J,"GMRK","G"_(160+GCNTD))="W"
- I GK>0 S ^TMP($J,"GMRK","G"_(140+GCNTD))=$S(^TMP($J,"GMRK","G"_(140+GCNTD))<0.4:0.4,^("G"_(140+GCNTD))>16.5:16.5,1:^("G"_(140+GCNTD))) S:^("G"_(140+GCNTD))<0.5!(^("G"_(140+GCNTD))>16.4) ^TMP($J,"GMRK","G"_(160+GCNTD))="W**"
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMVHW0 2861 printed Feb 18, 2025@23:25:44 Page 2
- GMVHW0 ;HIOFO/YH,FT-HP LASER WEIGHT CHART - DATA ARRAY ;12/6/01 11:35
- +1 ;;5.0;GEN. MED. REC. - VITALS;;Oct 31, 2002
- +2 ;
- +3 ; This routine uses the following IAs:
- +4 ; #10061 - ^VADPT calls (supported)
- +5 ;
- EN1 ;
- +1 SET GMRHT=0
- KILL ^TMP($JOB,"GMR"),^TMP($JOB,"GMRK"),^TMP($JOB,"GDT"),^TMP($JOB,"GTNM"),GWT
- SET GWT=0
- +2 SET GSTART1=(9999999-GMRFIN)-.0001
- SET GEND1=9999999-GMRSTRT
- +3 FOR GTYPE="H","W"
- DO SETT^GMVWT0
- +4 FOR I=1:1:8
- SET GWT(I)=""
- +5 IF GWT>0
- SET GWT=GWT\10*10-40
- SET J=0
- FOR I=1:1:8
- SET GWT(I)=GWT+(10*J)
- SET J=J+1
- SET GWT(I)=GWT(I)_"/"_$JUSTIFY(GWT(I)/2.2,0,2)
- +6 USE IO
- DO GRAPH
- Q1 DO Q1^GMVWT0
- KILL GRAPHW
- QUIT
- GRAPH ;
- +1 DO DEM^VADPT
- DO INP^VADPT
- SET SSN=$PIECE(VADM(2),"^",2)
- +2 SET GPG=0
- DO SETV^GMVWT1
- FOR GK="H","W"
- SET ^TMP($JOB,"GTNM",GK)=0
- FOR GI=0:0
- SET GI=$ORDER(^TMP($JOB,"GMRVG",GK,GI))
- if GI'>0
- QUIT
- SET GJ=""
- FOR X=0:0
- SET GJ=$ORDER(^TMP($JOB,"GMRVG",GK,GI,GJ))
- if GJ=""
- QUIT
- SET ^TMP($JOB,"GTNM",GK)=^TMP($JOB,"GTNM",GK)+1
- SET ^TMP($JOB,"GDT",GI)=""
- +3 SET GTNM=0
- FOR X=0:0
- SET X=$ORDER(^TMP($JOB,"GDT",X))
- if X'>0
- QUIT
- SET GTNM=GTNM+1
- +4 SET GPG=$SELECT(GTNM=0:1,1:GTNM\10+''(GTNM#10))
- SET GDT1=0
- +5 FOR GPGS=1:1:GPG
- KILL GMRQUAL
- SET ^TMP($JOB,"GMRK","G199")="Page "_GPGS
- DO SETP^GMVWT1
- DO DATE
- DO PAGE
- DO ^GMVHW1
- +6 DO KVAR^VADPT
- KILL VA
- QUIT
- PAGE ;
- +1 ;DATA FOR WEIGHT GRAPH
- +2 KILL GRAPHW
- SET GRAPHW=0
- SET I=1
- SET J=161
- SET GPA=0
- FOR GI=141:1:150
- SET GRAPHW=0.6+(1.6*(I-1))
- if ^TMP($JOB,"GMRK","G"_GI)'=""
- Begin DoDot:1
- +3 SET GRAPHW(I)=$SELECT(GPA=0:"PA",1:"PD")_GRAPHW_","_^TMP($JOB,"GMRK","G"_GI)_";LB"_^TMP($JOB,"GMRK","G"_J)_"#;"
- SET GPA=1
- End DoDot:1
- SET I=I+1
- SET J=J+1
- +4 IF $DATA(GMRQUAL)
- DO LEGEND^GMVLGQU
- +5 KILL GPA
- QUIT
- DATE FOR GCNTD=1:1:10
- if $LENGTH(GDT1)
- SET GDT1=$ORDER(^TMP($JOB,"GDT",GDT1))
- SET ^TMP($JOB,"GMRK","G"_GCNTD)=$SELECT($LENGTH(GDT1):$EXTRACT(GDT1,4,5)_"-"_$EXTRACT(GDT1,6,7)_"-"_$EXTRACT(GDT1,2,3),1:"")
- DO DATE1
- +1 QUIT
- DATE1 SET Y=$EXTRACT($PIECE(GDT1,".",2)_"0000",1,4)
- SET ^TMP($JOB,"GMRK","G"_(GCNTD+16))=$SELECT($LENGTH(GDT1):$EXTRACT(Y,1,2)_":"_$EXTRACT(Y,3,4),1:"")
- DO SETD
- +1 QUIT
- SETD FOR GI="H","W"
- SET GJ=$SELECT(GI="W":100,1:160)
- SET GK=$SELECT($LENGTH(GDT1):$ORDER(^TMP($JOB,"GMRVG",GI,GDT1,"")),1:"")
- DO SETA
- +1 QUIT
- SETA ;
- +1 IF GK="Unavailable"
- SET GK="Unavail"
- +2 SET (GMRSITE,GMRSITE(1),GMRSITE(2),GMRINF,GMRVJ)=""
- +3 IF GK'=""
- Begin DoDot:1
- +4 SET GMRSITE(1)=$PIECE($GET(^TMP($JOB,"GMRVG",GI,GDT1,GK)),"^")
- SET GMRVJ=$PIECE($GET(^(GK)),"^",2)
- SET GMRINF=$PIECE($GET(^(GK)),"^",4)
- +5 IF GMRSITE(1)'=""
- DO SYNOARY^GMVLGQU
- End DoDot:1
- +6 IF GI="H"
- SET ^TMP($JOB,"GMRK","G"_(300+GCNTD))=GK
- SET ^("G"_(340+GCNTD))=GMRSITE
- SET ^TMP($JOB,"GMRK","G"_(320+GCNTD))=$SELECT(GK>0:$JUSTIFY(GK*2.54,0,2),1:"")
- if GK>0
- SET GMRHT=GK*2.54/100
- QUIT
- +7 SET ^TMP($JOB,"GMRK","G"_(180+GCNTD))=GMRSITE
- +8 IF GK>0
- Begin DoDot:1
- +9 SET GMRBMI=""
- SET GMRBMI(1)=GDT1
- SET GMRBMI(2)=GK
- DO CALBMI^GMVBMI(.GMRBMI)
- +10 SET ^TMP($JOB,"GMRK","G"_(210+GCNTD))=$SELECT(GMRBMI>0:GMRBMI,1:"")
- KILL GMRBMI
- End DoDot:1
- +11 SET ^TMP($JOB,"GMRK","G"_(100+GCNTD))=GK
- SET ^TMP($JOB,"GMRK","G"_(120+GCNTD))=$SELECT(GK>0:$JUSTIFY(GK/2.2,0,2),1:"")
- +12 SET ^TMP($JOB,"GMRK","G"_(140+GCNTD))=$SELECT(GK>0:GK-(GWT-10)/5,1:"")
- if GK>0
- SET ^TMP($JOB,"GMRK","G"_(160+GCNTD))="W"
- +13 IF GK>0
- SET ^TMP($JOB,"GMRK","G"_(140+GCNTD))=$SELECT(^TMP($JOB,"GMRK","G"_(140+GCNTD))<0.4:0.4,^("G"_(140+GCNTD))>16.5:16.5,1:^("G"_(140+GCNTD)))
- if ^("G"_(140+GCNTD))<0.5!(^("G"_(140+GCNTD))>16.4)
- SET ^TMP($JOB,"GMRK","G"_(160+GCNTD))="W**"
- +14 QUIT