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

VAQCON95.m

Go to the documentation of this file.
VAQCON95 ;ALB/JRP - MESSAGE CONSTRUCTION;20-APR-93
 ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
PHA10 ;BUILD PHARMACY DATA BLOCK FOR 1.0 MESSAGE
 ;  DECLARATIONS DONE IN $$DATA10^VAQCON97
 S SEGABB="PDX*MPL"
 ;LONG FORMAT NOT PRESENT - SWITCH TO SHORT FORMAT (SAME INFO)
 S:('$D(@ROOT@(SEGABB))) SEGABB="PDX*MPS"
 ;PHARMACY DATA NOT PRESENT - PLACE NULLS INTO MESSAGE
 I ('$D(@ROOT@(SEGABB))) D NULLS Q
 ;PLACE NARRATIVE INTO MESSAGE
 S FILE=55
 S FIELD=1
 S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,0))
 S INFO="PHA"_"^"_FILE_"^"_FIELD_"^"_VALUE
 S:('MESSNUM) @ARRAY@(LINE)=INFO
 S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 S LINE=LINE+1
 ;PLACE ALERGIES & REACTIONS INTO MESSAGE (STORE IN 2.55;.01)
 S FILE=120.8
 S FIELD=.02
 S INFO="PHA"_"^"_(2.55)_"^"_(.01)
 S SEQ=""
 F  S SEQ=$O(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ)) Q:(SEQ="")  D
 .S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ))
 .I (($L(INFO)+$L(VALUE)+$L(FIELD)+1)>239) D
 ..S:('MESSNUM) @ARRAY@(LINE)=INFO
 ..S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 ..S LINE=LINE+1
 ..S INFO="PHA"_"^"_(2.55)_"^"_(.01)
 .S INFO=INFO_"^"_VALUE
 S:('MESSNUM) @ARRAY@(LINE)=INFO
 S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 S LINE=LINE+1
 ;STORE NULL VALUES FOR 2.57;.01
 S INFO="PHA"_"^"_(2.57)_"^"_(.01)
 S:('MESSNUM) @ARRAY@(LINE)=INFO
 S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 S LINE=LINE+1
 ;PLACE DISABILITIES INTO MESSAGE
 ;ASSUMES THAT ALL SEQUENCES IN THE SUBFILE ARE THE SAME
 S FILE=2.04
 S SEQFIELD=.01
 S SEQ=""
 S INFO="PHA"_"^"_FILE_"^"_".01;2;3"
 F  S SEQ=$O(@ROOT@(SEGABB,"VALUE",FILE,SEQFIELD,SEQ)) Q:(SEQ="")  D
 .S INFO="PHA"_"^"_FILE_"^"_".01;2;3"
 .F FIELD=.01,2,3 D
 ..S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ))
 ..S INFO=INFO_"^"_VALUE
 .S:('MESSNUM) @ARRAY@(LINE)=INFO
 .S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 .S LINE=LINE+1
 ;STORE NULL DISABILITIES (IF NEEDED)
 I ($L(INFO,"^")<4) D
 .S:('MESSNUM) @ARRAY@(LINE)=INFO
 .S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 .S LINE=LINE+1
 ;NO PRESCRIPTION INFORMATION - STORE NULLS
 I ('$D(@ROOT@(SEGABB,"VALUE",52,.01))) D NULLRX Q
 ;STORE PRESCRIPTION INFORMATION
 ;ASSUMES ALL PRESCRIPTION INFO HAVE SAME SEQUENCE
 S FILE=52
 S SEQFIELD=.01
 S SEQ=""
 F  S SEQ=$O(@ROOT@(SEGABB,"VALUE",FILE,SEQFIELD,SEQ)) Q:(SEQ="")  D
 .;GET RX#
 .S FIELD=.01
 .S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ))
 .Q:(VALUE="")
 .S INFO="PHA"_"^"_FILE_"^"_FIELD_"^"_VALUE
 .;GET REST OF PRESCRIPTION INFO
 .F  S FIELD=$O(@ROOT@(SEGABB,"VALUE",FILE,FIELD)) Q:(FIELD="")  D
 ..S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ))
 ..;CONVERT DATES TO FILEMAN FORMAT
 ..I (VALUE'="") S:($P($G(^DD(FILE,FIELD,0)),"^",2)["D") VALUE=$$DATE^VAQUTL99(VALUE)
 ..I (($L(INFO)+$L(VALUE)+$L(FIELD)+2)>239) D
 ...S:('MESSNUM) @ARRAY@(LINE)=INFO
 ...S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 ...S LINE=LINE+1
 ...S X=INFO
 ...S INFO="PHA"_"^"_(52)_"^"_(.01)_"^"_($P(X,"^",4))
 ..S X=$P(INFO,"^",3)
 ..S $P(INFO,"^",3)=$S((X=""):FIELD,1:(X_";"_FIELD))
 ..S INFO=INFO_"^"_VALUE
 .I ($P(INFO,"^",3)[";") D
 ..S:('MESSNUM) @ARRAY@(LINE)=INFO
 ..S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 ..S LINE=LINE+1
 ;STORE REFILL INFORMATION
 S FILE=52.1
 S FIELD=.01
 S SEQ=""
 F  S SEQ=$O(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ)) Q:(SEQ="")  D
 .;GET RX
 .S TMP=$G(@ROOT@(SEGABB,"ID",FILE,FIELD,SEQ))
 .Q:(TMP="")
 .;SPECIAL CASE DATA LINE
 .S INFO="PHA"_"^"_FILE_"^"_FIELD_"~"_TMP
 .S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ))
 .;CONVERT DATE TO FILEMAN FORMAT
 .S:(VALUE'="") VALUE=$$DATE^VAQUTL99(VALUE)
 .S INFO=INFO_"^"_VALUE
 .S:('MESSNUM) @ARRAY@(LINE)=INFO
 .S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 .S LINE=LINE+1
 Q
NULLS ;NO PRESCRIPTION INFO (STORE NULLS)
 ;PATIENT INFO
 F SEQ=1:1 D  Q:('SEQ)
 .S TMP=$P($T(RXPAT+SEQ^VAQDBII1),";;",2)
 .I (TMP="") S SEQ=0 Q
 .S TMP=$TR(TMP,";","^")
 .S TMP=$TR(TMP,",",";")
 .S INFO="PHA"_"^"_TMP
 .S:('MESSNUM) @ARRAY@(LINE)=INFO
 .S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 .S LINE=LINE+1
NULLRX ;PRESCRIPTION INFO
 F SEQ=1:1 D  Q:('SEQ)
 .S TMP=$P($T(PROFILE+SEQ^VAQDBII1),";;",2)
 .I (TMP="") S SEQ=0 Q
 .S TMP=$TR(TMP,";","^")
 .S TMP=$TR(TMP,",",";")
 .;.01 MUST BE FIRST FIELD FOR FILE 52
 .I ($P(TMP,"^",1)=52) D
 ..S X=$P(TMP,"^",2)
 ..S:($P(X,";",1)'=".01") X=".01;"_X
 ..S $P(TMP,"^",2)=X
 .S INFO="PHA"_"^"_TMP
 .S:('MESSNUM) @ARRAY@(LINE)=INFO
 .S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE)
 .S LINE=LINE+1
 Q