- MCAR7P2 ; HIRMFO/REL-MedGraphics Pulmonary ;3/3/00 09:57
- ;;2.3;Medicine;**24**;09/13/1996
- OBX ; Process OBX
- S X=$G(MSG(NUM)) G:X="" UPDATE I $E(X,1,3)'="OBX" S ERRTX="OBX not found when expected" G ^MCAR7X
- S SEG("OBX")=X
- S STYP=$P(X,"|",3) I STYP="TX" G IMP
- S ID=$P(X,"|",5),CODE=$P(X,"|",4),VAL=$P(X,"|",6),UNITS=$P(X,"|",7) I CODE["^" S CODE=$P(CODE,"^",1)
- I CODE=""!(VAL="") G NEXT
- I $E(CODE,1,3)'?2.3U G NEXT
- S STR=$P($T(@$E(CODE,1,3)),";;",2) I STR="" G NEXT
- S S=$P(STR,"^",2),P=$P(STR,"^",3),EXE=$P(STR,"^",4) I EXE'="" X EXE
- I S="P" S $P(SET(S,+P),"^",$P(P,";",2))=VAL G NEXT
- I ID>1 S $P(SET(S,ID-1),"^",$P(P,";",2))=VAL
- NEXT S NUM=NUM+1 G OBX
- IMP ; Get Impression
- S NUM=NUM+1 S:$P(X,"|",4)[("&IMP") ICNT=ICNT+1,IMP(ICNT)=$P(X,"|",6) G OBX
- Q
- UPDATE ; Update File
- S FIL=700 D PROC^MCAR7A ; Set Procedure Entry
- S P="" F S P=$O(SET("P",P)) Q:P="" F K=1:1:$L(SET("P",P),"^") S VAL=$P(SET("P",P),"^",K) I VAL'="" S $P(^MCAR(700,DA,P),"^",K)=VAL
- F ID="F","V" I $D(SET(ID)) D U1
- I $D(IMP) F P=1:1:ICNT S ^MCAR(700,DA,25,P,0)=IMP(P)
- I S ^MCAR(700,DA,25,0)="^^"_ICNT_"^"_ICNT_"^"_DT
- S DIK="^MCAR(700," D IX1^DIK
- D GENACK^MCAR7X
- Q
- U1 ; Set Study values
- S S=$S(ID="F":4,ID="V":3,1:"") Q:'S
- I ID="F" F P=1,2 I $D(SET(ID,P)) S $P(SET(ID,P),"^",1)=$S(P=1:"S",1:"B")
- I ID="V" F P=1,2 I $D(SET(ID,P)) I $P(SET(ID,P),"^",1)="" S $P(SET(ID,P),"^",1)="B"
- I '$D(^MCAR(700,DA,S,0)) S ^MCAR(700,DA,S,0)="^"_$S(S=3:"700.017SA",1:"700.018SA")_"^0^0"
- S P=0 F S P=$O(SET(ID,P)) Q:P="" F K=1:1:$L(SET(ID,P),"^") S VAL=$P(SET(ID,P),"^",K) I VAL'="" S $P(^MCAR(700,DA,S,P,0),"^",K)=VAL
- S P=$O(SET(ID,""),-1),$P(^MCAR(700,DA,S,0),"^",3,4)=(P_"^"_P)
- Q
- VARS ;;
- FVC ;;FVC^F^0;2
- FEV ;;FEV1^F^0;3
- FEF ;;FEF25-75%^F^0;5
- PEF ;;PEF^F^0;4
- MVV ;;MVV^F^0;7
- TLC ;;TLC^V^0;2
- RV ;;RV^V^0;5
- FRC ;;FRC^V^0;4
- DLC ;;DLCO^P^5;1
- HEI ;;HEIGHT^P^0;4
- WEI ;;WEIGHT^P^0;5
- SMO ;;SMOKER^P^0;8^S VAL=$E($G(VAL),1)
- TEM ;;TEMP^P^0;12
- PBA ;;PBAR^P^0;7
- SVC ;;VC^V^0;3
- MCAR7P2 ; HIRMFO/REL-MedGraphics Pulmonary ;3/3/00 09:57
- +1 ;;2.3;Medicine;**24**;09/13/1996
- OBX ; Process OBX
- +1 SET X=$GET(MSG(NUM))
- IF X=""
- GOTO UPDATE
- IF $EXTRACT(X,1,3)'="OBX"
- SET ERRTX="OBX not found when expected"
- GOTO ^MCAR7X
- +2 SET SEG("OBX")=X
- +3 SET STYP=$PIECE(X,"|",3)
- IF STYP="TX"
- GOTO IMP
- +4 SET ID=$PIECE(X,"|",5)
- SET CODE=$PIECE(X,"|",4)
- SET VAL=$PIECE(X,"|",6)
- SET UNITS=$PIECE(X,"|",7)
- IF CODE["^"
- SET CODE=$PIECE(CODE,"^",1)
- +5 IF CODE=""!(VAL="")
- GOTO NEXT
- +6 IF $EXTRACT(CODE,1,3)'?2.3U
- GOTO NEXT
- +7 SET STR=$PIECE($TEXT(@$EXTRACT(CODE,1,3)),";;",2)
- IF STR=""
- GOTO NEXT
- +8 SET S=$PIECE(STR,"^",2)
- SET P=$PIECE(STR,"^",3)
- SET EXE=$PIECE(STR,"^",4)
- IF EXE'=""
- XECUTE EXE
- +9 IF S="P"
- SET $PIECE(SET(S,+P),"^",$PIECE(P,";",2))=VAL
- GOTO NEXT
- +10 IF ID>1
- SET $PIECE(SET(S,ID-1),"^",$PIECE(P,";",2))=VAL
- NEXT SET NUM=NUM+1
- GOTO OBX
- IMP ; Get Impression
- +1 SET NUM=NUM+1
- IF $PIECE(X,"|",4)[("&IMP")
- SET ICNT=ICNT+1
- SET IMP(ICNT)=$PIECE(X,"|",6)
- GOTO OBX
- +2 QUIT
- UPDATE ; Update File
- +1 ; Set Procedure Entry
- SET FIL=700
- DO PROC^MCAR7A
- +2 SET P=""
- FOR
- SET P=$ORDER(SET("P",P))
- IF P=""
- QUIT
- FOR K=1:1:$LENGTH(SET("P",P),"^")
- SET VAL=$PIECE(SET("P",P),"^",K)
- IF VAL'=""
- SET $PIECE(^MCAR(700,DA,P),"^",K)=VAL
- +3 FOR ID="F","V"
- IF $DATA(SET(ID))
- DO U1
- +4 IF $DATA(IMP)
- FOR P=1:1:ICNT
- SET ^MCAR(700,DA,25,P,0)=IMP(P)
- +5 IF $TEST
- SET ^MCAR(700,DA,25,0)="^^"_ICNT_"^"_ICNT_"^"_DT
- +6 SET DIK="^MCAR(700,"
- DO IX1^DIK
- +7 DO GENACK^MCAR7X
- +8 QUIT
- U1 ; Set Study values
- +1 SET S=$SELECT(ID="F":4,ID="V":3,1:"")
- IF 'S
- QUIT
- +2 IF ID="F"
- FOR P=1,2
- IF $DATA(SET(ID,P))
- SET $PIECE(SET(ID,P),"^",1)=$SELECT(P=1:"S",1:"B")
- +3 IF ID="V"
- FOR P=1,2
- IF $DATA(SET(ID,P))
- IF $PIECE(SET(ID,P),"^",1)=""
- SET $PIECE(SET(ID,P),"^",1)="B"
- +4 IF '$DATA(^MCAR(700,DA,S,0))
- SET ^MCAR(700,DA,S,0)="^"_$SELECT(S=3:"700.017SA",1:"700.018SA")_"^0^0"
- +5 SET P=0
- FOR
- SET P=$ORDER(SET(ID,P))
- IF P=""
- QUIT
- FOR K=1:1:$LENGTH(SET(ID,P),"^")
- SET VAL=$PIECE(SET(ID,P),"^",K)
- IF VAL'=""
- SET $PIECE(^MCAR(700,DA,S,P,0),"^",K)=VAL
- +6 SET P=$ORDER(SET(ID,""),-1)
- SET $PIECE(^MCAR(700,DA,S,0),"^",3,4)=(P_"^"_P)
- +7 QUIT
- VARS ;;
- FVC ;;FVC^F^0;2
- FEV ;;FEV1^F^0;3
- FEF ;;FEF25-75%^F^0;5
- PEF ;;PEF^F^0;4
- MVV ;;MVV^F^0;7
- TLC ;;TLC^V^0;2
- RV ;;RV^V^0;5
- FRC ;;FRC^V^0;4
- DLC ;;DLCO^P^5;1
- HEI ;;HEIGHT^P^0;4
- WEI ;;WEIGHT^P^0;5
- SMO ;;SMOKER^P^0;8^S VAL=$E($G(VAL),1)
- TEM ;;TEMP^P^0;12
- PBA ;;PBAR^P^0;7
- SVC ;;VC^V^0;3